zenml-nightly 0.64.0.dev20240811__py3-none-any.whl → 0.66.0.dev20240910__py3-none-any.whl
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.
- README.md +1 -1
- RELEASE_NOTES.md +126 -4
- zenml/VERSION +1 -1
- zenml/artifacts/utils.py +13 -6
- zenml/cli/__init__.py +1 -1
- zenml/cli/base.py +4 -4
- zenml/cli/integration.py +48 -9
- zenml/cli/pipeline.py +9 -2
- zenml/cli/stack.py +39 -27
- zenml/cli/utils.py +13 -0
- zenml/client.py +15 -17
- zenml/config/compiler.py +34 -0
- zenml/config/server_config.py +30 -0
- zenml/config/source.py +3 -7
- zenml/constants.py +5 -3
- zenml/entrypoints/base_entrypoint_configuration.py +41 -27
- zenml/entrypoints/step_entrypoint_configuration.py +5 -2
- zenml/enums.py +2 -0
- zenml/environment.py +31 -0
- zenml/feature_stores/base_feature_store.py +4 -6
- zenml/integrations/__init__.py +3 -0
- zenml/integrations/airflow/flavors/airflow_orchestrator_flavor.py +9 -0
- zenml/integrations/aws/__init__.py +2 -2
- zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +2 -1
- zenml/integrations/azure/__init__.py +2 -2
- zenml/integrations/azure/azureml_utils.py +201 -0
- zenml/integrations/azure/flavors/azureml.py +139 -0
- zenml/integrations/azure/flavors/azureml_orchestrator_flavor.py +20 -118
- zenml/integrations/azure/flavors/azureml_step_operator_flavor.py +67 -14
- zenml/integrations/azure/orchestrators/azureml_orchestrator.py +58 -172
- zenml/integrations/azure/orchestrators/azureml_orchestrator_entrypoint_config.py +1 -0
- zenml/integrations/azure/service_connectors/azure_service_connector.py +4 -0
- zenml/integrations/azure/step_operators/azureml_step_operator.py +78 -177
- zenml/integrations/constants.py +3 -0
- zenml/integrations/databricks/__init__.py +22 -4
- zenml/integrations/databricks/flavors/databricks_orchestrator_flavor.py +9 -0
- zenml/integrations/deepchecks/__init__.py +29 -11
- zenml/integrations/deepchecks/materializers/deepchecks_dataset_materializer.py +3 -1
- zenml/integrations/deepchecks/validation_checks.py +0 -30
- zenml/integrations/evidently/__init__.py +17 -2
- zenml/integrations/facets/__init__.py +21 -5
- zenml/integrations/feast/__init__.py +19 -6
- zenml/integrations/gcp/__init__.py +2 -2
- zenml/integrations/gcp/flavors/vertex_orchestrator_flavor.py +9 -0
- zenml/integrations/gcp/orchestrators/vertex_orchestrator.py +10 -1
- zenml/integrations/great_expectations/__init__.py +21 -7
- zenml/integrations/huggingface/__init__.py +39 -15
- zenml/integrations/huggingface/materializers/__init__.py +3 -0
- zenml/integrations/huggingface/materializers/huggingface_datasets_materializer.py +3 -1
- zenml/integrations/huggingface/materializers/huggingface_pt_model_materializer.py +1 -1
- zenml/integrations/huggingface/materializers/huggingface_t5_materializer.py +107 -0
- zenml/integrations/huggingface/materializers/huggingface_tf_model_materializer.py +1 -1
- zenml/integrations/huggingface/materializers/huggingface_tokenizer_materializer.py +2 -2
- zenml/integrations/huggingface/steps/accelerate_runner.py +108 -85
- zenml/integrations/hyperai/flavors/hyperai_orchestrator_flavor.py +9 -0
- zenml/integrations/kubeflow/flavors/kubeflow_orchestrator_flavor.py +9 -0
- zenml/integrations/kubeflow/orchestrators/kubeflow_orchestrator.py +10 -1
- zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +9 -0
- zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py +10 -1
- zenml/integrations/lightning/__init__.py +48 -0
- zenml/integrations/lightning/flavors/__init__.py +23 -0
- zenml/integrations/lightning/flavors/lightning_orchestrator_flavor.py +148 -0
- zenml/integrations/lightning/orchestrators/__init__.py +23 -0
- zenml/integrations/lightning/orchestrators/lightning_orchestrator.py +596 -0
- zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint.py +307 -0
- zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint_configuration.py +77 -0
- zenml/integrations/lightning/orchestrators/utils.py +67 -0
- zenml/integrations/mlflow/__init__.py +43 -5
- zenml/integrations/mlflow/services/mlflow_deployment.py +26 -0
- zenml/integrations/numpy/__init__.py +32 -0
- zenml/integrations/numpy/materializers/__init__.py +18 -0
- zenml/integrations/numpy/materializers/numpy_materializer.py +246 -0
- zenml/integrations/pandas/__init__.py +32 -0
- zenml/integrations/pandas/materializers/__init__.py +18 -0
- zenml/integrations/pandas/materializers/pandas_materializer.py +192 -0
- zenml/integrations/prodigy/annotators/prodigy_annotator.py +1 -1
- zenml/integrations/seldon/__init__.py +18 -3
- zenml/integrations/sklearn/__init__.py +1 -1
- zenml/integrations/skypilot_azure/__init__.py +1 -1
- zenml/integrations/tensorboard/__init__.py +1 -1
- zenml/integrations/tensorflow/__init__.py +2 -2
- zenml/integrations/tensorflow/materializers/tf_dataset_materializer.py +2 -2
- zenml/integrations/whylogs/__init__.py +18 -2
- zenml/logging/step_logging.py +9 -2
- zenml/materializers/__init__.py +0 -4
- zenml/materializers/base_materializer.py +4 -0
- zenml/materializers/numpy_materializer.py +23 -234
- zenml/materializers/pandas_materializer.py +22 -179
- zenml/model/model.py +91 -2
- zenml/model/utils.py +5 -5
- zenml/models/__init__.py +16 -3
- zenml/models/v2/core/model_version.py +1 -1
- zenml/models/v2/core/pipeline_run.py +31 -1
- zenml/models/v2/core/stack.py +51 -20
- zenml/models/v2/core/step_run.py +28 -0
- zenml/models/v2/misc/info_models.py +78 -0
- zenml/new/pipelines/pipeline.py +65 -25
- zenml/new/pipelines/run_utils.py +57 -136
- zenml/new/steps/step_context.py +17 -6
- zenml/orchestrators/base_orchestrator.py +9 -0
- zenml/orchestrators/step_launcher.py +37 -14
- zenml/orchestrators/step_runner.py +14 -13
- zenml/orchestrators/utils.py +107 -7
- zenml/service_connectors/service_connector_utils.py +2 -2
- zenml/stack/utils.py +11 -2
- zenml/stack_deployments/azure_stack_deployment.py +2 -1
- zenml/steps/base_step.py +62 -25
- zenml/steps/utils.py +115 -3
- zenml/utils/cloud_utils.py +8 -8
- zenml/utils/code_utils.py +130 -32
- zenml/utils/function_utils.py +7 -7
- zenml/utils/notebook_utils.py +14 -0
- zenml/utils/pipeline_docker_image_builder.py +1 -11
- zenml/utils/pydantic_utils.py +3 -3
- zenml/utils/secret_utils.py +2 -2
- zenml/utils/settings_utils.py +1 -1
- zenml/utils/source_utils.py +67 -21
- zenml/utils/string_utils.py +29 -0
- zenml/zen_server/dashboard/assets/{404-CRAA_Lew.js → 404-iO8vpun1.js} +1 -1
- zenml/zen_server/dashboard/assets/{@radix-BXWm7HOa.js → @radix-DnFH_oo1.js} +1 -1
- zenml/zen_server/dashboard/assets/{@react-router-l3lMcXA2.js → @react-router-APVeuk-U.js} +1 -1
- zenml/zen_server/dashboard/assets/{@reactflow-CeVxyqYT.js → @reactflow-B6kq9fJZ.js} +2 -2
- zenml/zen_server/dashboard/assets/{@tanstack-FmcYZMuX.js → @tanstack-QbMbTrh5.js} +1 -1
- zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-BXeSvmMY.js +1 -0
- zenml/zen_server/dashboard/assets/{CodeSnippet-D0VLxT2A.js → CodeSnippet-DNWdQmbo.js} +2 -2
- zenml/zen_server/dashboard/assets/CollapsibleCard-B2OVjWYE.js +1 -0
- zenml/zen_server/dashboard/assets/Commands-DsoaVElZ.js +1 -0
- zenml/zen_server/dashboard/assets/CopyButton-BqE_-PHO.js +2 -0
- zenml/zen_server/dashboard/assets/{CsvVizualization-D3kAypDj.js → CsvVizualization-Dyasr2jU.js} +6 -6
- zenml/zen_server/dashboard/assets/{edit-C0MVvPD2.js → DialogItem-Cz1VLRwa.js} +1 -1
- zenml/zen_server/dashboard/assets/{DisplayDate-DizbSeT-.js → DisplayDate-DkCy54Bp.js} +1 -1
- zenml/zen_server/dashboard/assets/EditSecretDialog-Du423_3U.js +1 -0
- zenml/zen_server/dashboard/assets/{EmptyState-BHblM39I.js → EmptyState-Cs3DEmso.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-C6LeJSER.js → Error-DorJD_va.js} +1 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-CIfQTutR.js +1 -0
- zenml/zen_server/dashboard/assets/{Helpbox-aAB2XP-z.js → Helpbox-CmfvtNeq.js} +1 -1
- zenml/zen_server/dashboard/assets/Infobox-BL9NOS37.js +1 -0
- zenml/zen_server/dashboard/assets/{InlineAvatar-DpTLgM3Q.js → InlineAvatar-Ds2ZFHPc.js} +1 -1
- zenml/zen_server/dashboard/assets/{Lock-CNyJvf2r.js → Lock-CmIn0szs.js} +1 -1
- zenml/zen_server/dashboard/assets/{MarkdownVisualization-Bajxn0HY.js → MarkdownVisualization-DS05sfBm.js} +1 -1
- zenml/zen_server/dashboard/assets/{NumberBox-BmKE0qnO.js → NumberBox-CrN0_kqI.js} +1 -1
- zenml/zen_server/dashboard/assets/Partials-DX-8iEa1.js +1 -0
- zenml/zen_server/dashboard/assets/{PasswordChecker-yGGoJSB-.js → PasswordChecker-DE71J_3F.js} +1 -1
- zenml/zen_server/dashboard/assets/ProviderIcon-BOQJgapd.js +1 -0
- zenml/zen_server/dashboard/assets/ProviderRadio-BsYBw9YA.js +1 -0
- zenml/zen_server/dashboard/assets/SearchField-W3GXpLlI.js +1 -0
- zenml/zen_server/dashboard/assets/SetPassword-B-0a8UCj.js +1 -0
- zenml/zen_server/dashboard/assets/{Tick-uxv80Q6a.js → Tick-i1DYsVcX.js} +1 -1
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-oN4G3sKz.js → UpdatePasswordSchemas-C6Zb7ASL.js} +1 -1
- zenml/zen_server/dashboard/assets/UsageReason-CCnzmwS8.js +1 -0
- zenml/zen_server/dashboard/assets/WizardFooter-BHbO7zOa.js +1 -0
- zenml/zen_server/dashboard/assets/all-pipeline-runs-query-BBEe6I9-.js +1 -0
- zenml/zen_server/dashboard/assets/{check-circle-1_I207rW.js → check-circle-DOoS4yhF.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-down-BpaF8JqM.js → chevron-down-Cwb-W_B_.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-right-double-Dk8e2L99.js → chevron-right-double-c9H46Kl8.js} +1 -1
- zenml/zen_server/dashboard/assets/{cloud-only-BkUuI0lZ.js → cloud-only-BuP4Kt_7.js} +1 -1
- zenml/zen_server/dashboard/assets/code-browser-BJYErIjr.js +1 -0
- zenml/zen_server/dashboard/assets/codespaces-BitYDX9d.gif +0 -0
- zenml/zen_server/dashboard/assets/{copy-f3XGPPxt.js → copy-CaGlDsUy.js} +1 -1
- zenml/zen_server/dashboard/assets/create-stack-B2x2d4r1.js +1 -0
- zenml/zen_server/dashboard/assets/{docker-8uj__HHK.js → docker-BFAFXr2_.js} +1 -1
- zenml/zen_server/dashboard/assets/{dots-horizontal-sKQlWEni.js → dots-horizontal-C6K59vUm.js} +1 -1
- zenml/zen_server/dashboard/assets/flyte-Cj-xy_8I.svg +10 -0
- zenml/zen_server/dashboard/assets/form-schemas-Bap0f854.js +1 -0
- zenml/zen_server/dashboard/assets/gcp-Dj6ntk0L.js +1 -0
- zenml/zen_server/dashboard/assets/{help-FuHlZwn0.js → help-CwN931fX.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-Bd1xgUQG.js → index-5GJ5ysEZ.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-DaGknux4.css → index-6DYjZgDn.css} +1 -1
- zenml/zen_server/dashboard/assets/index-B9wVwe7u.js +55 -0
- zenml/zen_server/dashboard/assets/index-DFi8BroH.js +1 -0
- zenml/zen_server/dashboard/assets/{index.esm-DT4uyn2i.js → index.esm-BE1uqCX5.js} +1 -1
- zenml/zen_server/dashboard/assets/kubernetes-BjbR6D-1.js +1 -0
- zenml/zen_server/dashboard/assets/{layout-D6oiSbfd.js → layout-Dru15_XR.js} +1 -1
- zenml/zen_server/dashboard/assets/link-external-BT2L8hAQ.js +1 -0
- zenml/zen_server/dashboard/assets/{login-mutation-13A_JSVA.js → login-mutation-DwxUz8VA.js} +1 -1
- zenml/zen_server/dashboard/assets/{logs-CgeE2vZP.js → logs-GiDJXbLS.js} +1 -1
- zenml/zen_server/dashboard/assets/metaflow-weOkWNyT.svg +10 -0
- zenml/zen_server/dashboard/assets/{not-found-B0Mmb90p.js → not-found-D5i9DunU.js} +1 -1
- zenml/zen_server/dashboard/assets/{package-DdkziX79.js → package-DYKZ5jKW.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BFuJICXM.js +9 -0
- zenml/zen_server/dashboard/assets/{page-BGwA9B1M.js → page-BiF8hLbO.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DugsjcQ_.js → page-BitfWsiW.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CDOQLrPC.js +1 -0
- zenml/zen_server/dashboard/assets/page-CEJWu1YO.js +1 -0
- zenml/zen_server/dashboard/assets/page-CIbehp7V.js +1 -0
- zenml/zen_server/dashboard/assets/page-CLiRGfWo.js +1 -0
- zenml/zen_server/dashboard/assets/page-CV44mQn9.js +1 -0
- zenml/zen_server/dashboard/assets/page-CrSdkteO.js +2 -0
- zenml/zen_server/dashboard/assets/page-D5F3DJjm.js +1 -0
- zenml/zen_server/dashboard/assets/page-DE03uZZR.js +1 -0
- zenml/zen_server/dashboard/assets/page-DFCK65G9.js +1 -0
- zenml/zen_server/dashboard/assets/{page-RnG-qhv9.js → page-DGMa3ZQL.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DI-qTWrm.js +1 -0
- zenml/zen_server/dashboard/assets/page-DQGCHKrQ.js +1 -0
- zenml/zen_server/dashboard/assets/{page-DSTQnBk-.js → page-DQdwZZ9x.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DgM-N9RL.js +1 -0
- zenml/zen_server/dashboard/assets/page-Dt8VgzbE.js +1 -0
- zenml/zen_server/dashboard/assets/{page-DLpOnf7u.js → page-J0s8Sq3N.js} +1 -1
- zenml/zen_server/dashboard/assets/page-WCQ659by.js +1 -0
- zenml/zen_server/dashboard/assets/page-bimkItOg.js +1 -0
- zenml/zen_server/dashboard/assets/{page-hQaiQXfg.js → page-iwoJnwPv.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-YiF_fNbe.js → page-oS4hqS8M.js} +1 -1
- zenml/zen_server/dashboard/assets/page-oSqx9dkH.js +1 -0
- zenml/zen_server/dashboard/assets/page-p3GqEAUW.js +1 -0
- zenml/zen_server/dashboard/assets/page-qvcUVPE-.js +1 -0
- zenml/zen_server/dashboard/assets/page-xQG6GmFJ.js +1 -0
- zenml/zen_server/dashboard/assets/{persist-3-5nOJ6m.js → persist-mEZN_fgH.js} +1 -1
- zenml/zen_server/dashboard/assets/persist-xsYgVtR1.js +1 -0
- zenml/zen_server/dashboard/assets/{plus-FB9-lEq_.js → plus-Bc8eLSDM.js} +1 -1
- zenml/zen_server/dashboard/assets/{refresh-COb6KYDi.js → refresh-hfgWPeto.js} +1 -1
- zenml/zen_server/dashboard/assets/rocket-SESCGQXm.js +1 -0
- zenml/zen_server/dashboard/assets/sharedSchema-BfZcy7aP.js +14 -0
- zenml/zen_server/dashboard/assets/stack-detail-query-CU4egfhp.js +1 -0
- zenml/zen_server/dashboard/assets/templates-1S_8WeSK.webp +0 -0
- zenml/zen_server/dashboard/assets/{trash-Cd5CSFqA.js → trash-DUWZWzse.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-server-settings-mutation-B8GB_ubU.js → update-server-settings-mutation-DNqmQXDM.js} +1 -1
- zenml/zen_server/dashboard/assets/{url-hcMJkz8p.js → url-DwbuKk1b.js} +1 -1
- zenml/zen_server/dashboard/assets/{zod-CnykDKJj.js → zod-uFd1wBcd.js} +1 -1
- zenml/zen_server/dashboard/index.html +7 -7
- zenml/zen_server/dashboard_legacy/asset-manifest.json +4 -4
- zenml/zen_server/dashboard_legacy/index.html +1 -1
- zenml/zen_server/dashboard_legacy/{precache-manifest.9c473c96a43298343a7ce1256183123b.js → precache-manifest.290b95d5b43efa3368b3dc63d20c4782.js} +4 -4
- zenml/zen_server/dashboard_legacy/service-worker.js +1 -1
- zenml/zen_server/dashboard_legacy/static/js/{main.463c90b9.chunk.js → main.840d1bf0.chunk.js} +2 -2
- zenml/zen_server/dashboard_legacy/static/js/{main.463c90b9.chunk.js.map → main.840d1bf0.chunk.js.map} +1 -1
- zenml/zen_server/deploy/helm/Chart.yaml +1 -1
- zenml/zen_server/deploy/helm/README.md +2 -2
- zenml/zen_server/routers/service_connectors_endpoints.py +2 -4
- zenml/zen_server/routers/workspaces_endpoints.py +20 -66
- zenml/zen_server/secure_headers.py +120 -0
- zenml/zen_server/template_execution/runner_entrypoint_configuration.py +0 -2
- zenml/zen_server/template_execution/utils.py +1 -0
- zenml/zen_server/utils.py +0 -100
- zenml/zen_server/zen_server_api.py +4 -2
- zenml/zen_stores/migrations/versions/0.65.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/0.66.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/bf2120261b5a_add_configured_model_version_id.py +74 -0
- zenml/zen_stores/rest_zen_store.py +4 -21
- zenml/zen_stores/schemas/constants.py +16 -0
- zenml/zen_stores/schemas/model_schemas.py +9 -3
- zenml/zen_stores/schemas/pipeline_run_schemas.py +22 -8
- zenml/zen_stores/schemas/step_run_schemas.py +23 -12
- zenml/zen_stores/sql_zen_store.py +312 -300
- zenml/zen_stores/zen_store_interface.py +0 -16
- {zenml_nightly-0.64.0.dev20240811.dist-info → zenml_nightly-0.66.0.dev20240910.dist-info}/METADATA +10 -12
- {zenml_nightly-0.64.0.dev20240811.dist-info → zenml_nightly-0.66.0.dev20240910.dist-info}/RECORD +249 -217
- zenml/models/v2/misc/full_stack.py +0 -129
- zenml/new/pipelines/model_utils.py +0 -72
- zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-ErO9aOgK.js +0 -1
- zenml/zen_server/dashboard/assets/AwarenessChannel-CLXo5rKM.js +0 -1
- zenml/zen_server/dashboard/assets/CollapsibleCard-BaUPiVg0.js +0 -1
- zenml/zen_server/dashboard/assets/Commands-JrcZK-3j.js +0 -1
- zenml/zen_server/dashboard/assets/CopyButton-Dbo52T1K.js +0 -2
- zenml/zen_server/dashboard/assets/EditSecretDialog-Bd7mFLS4.js +0 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-jH4OrWBq.js +0 -1
- zenml/zen_server/dashboard/assets/Infobox-BQ0aty32.js +0 -1
- zenml/zen_server/dashboard/assets/ProviderRadio-BBqkIuTd.js +0 -1
- zenml/zen_server/dashboard/assets/RadioItem-xLhXoiFV.js +0 -1
- zenml/zen_server/dashboard/assets/SearchField-C9R0mdaX.js +0 -1
- zenml/zen_server/dashboard/assets/SetPassword-52sNxNiO.js +0 -1
- zenml/zen_server/dashboard/assets/SuccessStep-DlkItqYG.js +0 -1
- zenml/zen_server/dashboard/assets/aws-0_3UsPif.js +0 -1
- zenml/zen_server/dashboard/assets/database-cXYNX9tt.js +0 -1
- zenml/zen_server/dashboard/assets/file-text-B9JibxTs.js +0 -1
- zenml/zen_server/dashboard/assets/index-DhIZtpxB.js +0 -55
- zenml/zen_server/dashboard/assets/page-7-v2OBm-.js +0 -1
- zenml/zen_server/dashboard/assets/page-B3ozwdD1.js +0 -1
- zenml/zen_server/dashboard/assets/page-BkjAUyTA.js +0 -1
- zenml/zen_server/dashboard/assets/page-BnacgBiy.js +0 -1
- zenml/zen_server/dashboard/assets/page-BxF_KMQ3.js +0 -2
- zenml/zen_server/dashboard/assets/page-C4POHC0K.js +0 -1
- zenml/zen_server/dashboard/assets/page-C9kudd44.js +0 -9
- zenml/zen_server/dashboard/assets/page-CA1j3GpJ.js +0 -1
- zenml/zen_server/dashboard/assets/page-CCY6yfmu.js +0 -1
- zenml/zen_server/dashboard/assets/page-CgTe7Bme.js +0 -1
- zenml/zen_server/dashboard/assets/page-Cgn-6v2Y.js +0 -1
- zenml/zen_server/dashboard/assets/page-CxQmQqDw.js +0 -1
- zenml/zen_server/dashboard/assets/page-D2Goey3H.js +0 -1
- zenml/zen_server/dashboard/assets/page-DTysUGOy.js +0 -1
- zenml/zen_server/dashboard/assets/page-D_EXUFJb.js +0 -1
- zenml/zen_server/dashboard/assets/page-Db15QzsM.js +0 -1
- zenml/zen_server/dashboard/assets/page-OFKSPyN7.js +0 -1
- zenml/zen_server/dashboard/assets/page-T2BtjwPl.js +0 -1
- zenml/zen_server/dashboard/assets/page-TXe1Eo3Z.js +0 -1
- zenml/zen_server/dashboard/assets/play-circle-XSkLR12B.js +0 -1
- zenml/zen_server/dashboard/assets/sharedSchema-BoYx_B_L.js +0 -14
- zenml/zen_server/dashboard/assets/stack-detail-query-B-US_-wa.js +0 -1
- zenml/zen_server/dashboard/assets/terminal-grtjrIEJ.js +0 -1
- {zenml_nightly-0.64.0.dev20240811.dist-info → zenml_nightly-0.66.0.dev20240910.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.64.0.dev20240811.dist-info → zenml_nightly-0.66.0.dev20240910.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.64.0.dev20240811.dist-info → zenml_nightly-0.66.0.dev20240910.dist-info}/entry_points.txt +0 -0
zenml/utils/secret_utils.py
CHANGED
@@ -146,7 +146,7 @@ def is_secret_field(field: "FieldInfo") -> bool:
|
|
146
146
|
logger.warning(
|
147
147
|
f"The 'json_schema_extra' of the field '{field.title}' is "
|
148
148
|
"not defined as a dict. This might lead to unexpected "
|
149
|
-
"
|
149
|
+
"behavior as we are checking it is a secret text field. "
|
150
150
|
"Returning 'False' as default..."
|
151
151
|
)
|
152
152
|
|
@@ -177,7 +177,7 @@ def is_clear_text_field(field: "FieldInfo") -> bool:
|
|
177
177
|
logger.warning(
|
178
178
|
f"The 'json_schema_extra' of the field '{field.title}' is "
|
179
179
|
"not defined as a dict. This might lead to unexpected "
|
180
|
-
"
|
180
|
+
"behavior as we are checking it is a clear text field. "
|
181
181
|
"Returning 'False' as default..."
|
182
182
|
)
|
183
183
|
|
zenml/utils/settings_utils.py
CHANGED
zenml/utils/source_utils.py
CHANGED
@@ -22,15 +22,8 @@ import sys
|
|
22
22
|
from distutils.sysconfig import get_python_lib
|
23
23
|
from pathlib import Path, PurePath
|
24
24
|
from types import BuiltinFunctionType, FunctionType, ModuleType
|
25
|
-
from typing import
|
26
|
-
|
27
|
-
Callable,
|
28
|
-
Iterator,
|
29
|
-
Optional,
|
30
|
-
Type,
|
31
|
-
Union,
|
32
|
-
cast,
|
33
|
-
)
|
25
|
+
from typing import Any, Callable, Dict, Iterator, Optional, Type, Union, cast
|
26
|
+
from uuid import UUID
|
34
27
|
|
35
28
|
from zenml.config.source import (
|
36
29
|
CodeRepositorySource,
|
@@ -69,6 +62,8 @@ _CUSTOM_SOURCE_ROOT: Optional[str] = os.getenv(
|
|
69
62
|
)
|
70
63
|
|
71
64
|
_SHARED_TEMPDIR: Optional[str] = None
|
65
|
+
_resolved_notebook_sources: Dict[str, str] = {}
|
66
|
+
_notebook_modules: Dict[str, UUID] = {}
|
72
67
|
|
73
68
|
|
74
69
|
def load(source: Union[Source, str]) -> Any:
|
@@ -237,13 +232,23 @@ def resolve(
|
|
237
232
|
source_type = SourceType.UNKNOWN
|
238
233
|
elif source_type == SourceType.NOTEBOOK:
|
239
234
|
source = NotebookSource(
|
240
|
-
module=
|
235
|
+
module="__main__",
|
241
236
|
attribute=attribute_name,
|
242
237
|
type=source_type,
|
243
238
|
)
|
244
|
-
|
245
|
-
|
246
|
-
|
239
|
+
|
240
|
+
if module_name in _notebook_modules:
|
241
|
+
source.replacement_module = module_name
|
242
|
+
source.artifact_store_id = _notebook_modules[module_name]
|
243
|
+
elif cell_code := notebook_utils.load_notebook_cell_code(obj):
|
244
|
+
replacement_module = (
|
245
|
+
notebook_utils.compute_cell_replacement_module_name(
|
246
|
+
cell_code=cell_code
|
247
|
+
)
|
248
|
+
)
|
249
|
+
source.replacement_module = replacement_module
|
250
|
+
_resolved_notebook_sources[source.import_path] = cell_code
|
251
|
+
|
247
252
|
return source
|
248
253
|
|
249
254
|
return Source(
|
@@ -387,6 +392,9 @@ def get_source_type(module: ModuleType) -> SourceType:
|
|
387
392
|
Returns:
|
388
393
|
The source type.
|
389
394
|
"""
|
395
|
+
if module.__name__ in _notebook_modules:
|
396
|
+
return SourceType.NOTEBOOK
|
397
|
+
|
390
398
|
try:
|
391
399
|
file_path = inspect.getfile(module)
|
392
400
|
except (TypeError, OSError):
|
@@ -582,33 +590,61 @@ def _try_to_load_notebook_source(source: NotebookSource) -> Any:
|
|
582
590
|
|
583
591
|
Raises:
|
584
592
|
RuntimeError: If the source can't be loaded.
|
593
|
+
FileNotFoundError: If the file containing the notebook cell code can't
|
594
|
+
be found.
|
585
595
|
|
586
596
|
Returns:
|
587
597
|
The loaded object.
|
588
598
|
"""
|
589
|
-
if not source.
|
599
|
+
if not source.replacement_module:
|
590
600
|
raise RuntimeError(
|
591
601
|
f"Failed to load {source.import_path}. This object was defined in "
|
592
602
|
"a notebook and you're trying to load it outside of a notebook. "
|
593
|
-
"This is currently only enabled for ZenML steps."
|
603
|
+
"This is currently only enabled for ZenML steps and materializers. "
|
604
|
+
"To enable this for your custom classes or functions, use the "
|
605
|
+
"`zenml.utils.notebook_utils.enable_notebook_code_extraction` "
|
606
|
+
"decorator."
|
594
607
|
)
|
595
608
|
|
596
609
|
extract_dir = _get_shared_temp_dir()
|
597
|
-
|
610
|
+
file_name = f"{source.replacement_module}.py"
|
611
|
+
file_path = os.path.join(extract_dir, file_name)
|
598
612
|
|
599
613
|
if not os.path.exists(file_path):
|
614
|
+
from zenml.client import Client
|
600
615
|
from zenml.utils import code_utils
|
601
616
|
|
617
|
+
artifact_store = Client().active_stack.artifact_store
|
618
|
+
|
619
|
+
if (
|
620
|
+
source.artifact_store_id
|
621
|
+
and source.artifact_store_id != artifact_store.id
|
622
|
+
):
|
623
|
+
raise RuntimeError(
|
624
|
+
"Notebook cell code not stored in active artifact store."
|
625
|
+
)
|
626
|
+
|
602
627
|
logger.info(
|
603
|
-
"Downloading notebook cell content
|
604
|
-
source.code_path,
|
628
|
+
"Downloading notebook cell content to load `%s`.",
|
605
629
|
source.import_path,
|
606
630
|
)
|
607
631
|
|
608
|
-
|
609
|
-
|
610
|
-
|
632
|
+
try:
|
633
|
+
code_utils.download_notebook_code(
|
634
|
+
artifact_store=artifact_store,
|
635
|
+
file_name=file_name,
|
636
|
+
download_path=file_path,
|
637
|
+
)
|
638
|
+
except FileNotFoundError:
|
639
|
+
if not source.artifact_store_id:
|
640
|
+
raise FileNotFoundError(
|
641
|
+
"Unable to find notebook code file. This might be because "
|
642
|
+
"the file is stored in a different artifact store."
|
643
|
+
)
|
611
644
|
|
645
|
+
raise
|
646
|
+
else:
|
647
|
+
_notebook_modules[source.replacement_module] = artifact_store.id
|
612
648
|
try:
|
613
649
|
module = _load_module(
|
614
650
|
module_name=source.replacement_module, import_root=extract_dir
|
@@ -734,3 +770,13 @@ def validate_source_class(
|
|
734
770
|
return True
|
735
771
|
else:
|
736
772
|
return False
|
773
|
+
|
774
|
+
|
775
|
+
def get_resolved_notebook_sources() -> Dict[str, str]:
|
776
|
+
"""Get all notebook sources that were resolved in this process.
|
777
|
+
|
778
|
+
Returns:
|
779
|
+
Dictionary mapping the import path of notebook sources to the code
|
780
|
+
of their notebook cell.
|
781
|
+
"""
|
782
|
+
return _resolved_notebook_sources.copy()
|
zenml/utils/string_utils.py
CHANGED
@@ -14,6 +14,7 @@
|
|
14
14
|
"""Utils for strings."""
|
15
15
|
|
16
16
|
import base64
|
17
|
+
import datetime
|
17
18
|
import random
|
18
19
|
import string
|
19
20
|
|
@@ -138,3 +139,31 @@ def validate_name(model: BaseModel) -> None:
|
|
138
139
|
f"The class `{cls_name}` has no attribute `name` "
|
139
140
|
"or it is set to `None`. Cannot validate the name."
|
140
141
|
)
|
142
|
+
|
143
|
+
|
144
|
+
def format_name_template(
|
145
|
+
name_template: str,
|
146
|
+
**kwargs: str,
|
147
|
+
) -> str:
|
148
|
+
"""Formats a name template with the given arguments.
|
149
|
+
|
150
|
+
By default, ZenML support Date and Time placeholders.
|
151
|
+
E.g. `my_run_{date}_{time}` will be formatted as `my_run_1970_01_01_00_00_00`.
|
152
|
+
Extra placeholders need to be explicitly passed in as kwargs.
|
153
|
+
|
154
|
+
Args:
|
155
|
+
name_template: The name template to format.
|
156
|
+
**kwargs: The arguments to replace in the template.
|
157
|
+
|
158
|
+
Returns:
|
159
|
+
The formatted name template.
|
160
|
+
"""
|
161
|
+
kwargs["date"] = kwargs.get(
|
162
|
+
"date",
|
163
|
+
datetime.datetime.now(datetime.timezone.utc).strftime("%Y_%m_%d"),
|
164
|
+
)
|
165
|
+
kwargs["time"] = kwargs.get(
|
166
|
+
"time",
|
167
|
+
datetime.datetime.now(datetime.timezone.utc).strftime("%H_%M_%S_%f"),
|
168
|
+
)
|
169
|
+
return name_template.format(**kwargs)
|
@@ -1 +1 @@
|
|
1
|
-
import{j as e}from"./@radix-
|
1
|
+
import{j as e}from"./@radix-DnFH_oo1.js";import{f as s,r as t}from"./index-B9wVwe7u.js";import{E as r}from"./EmptyState-Cs3DEmso.js";import{H as a}from"./help-CwN931fX.js";import{L as o}from"./@react-router-APVeuk-U.js";import"./@tanstack-QbMbTrh5.js";import"./@reactflow-B6kq9fJZ.js";function d(){return e.jsx("div",{className:"flex min-h-screen w-full flex-col",children:e.jsx(r,{icon:e.jsx(a,{className:"h-[120px] w-[120px] fill-neutral-300"}),children:e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"mb-2 text-display-xs font-semibold",children:"We can't find the page you are looking for"}),e.jsx("p",{className:"text-lg text-theme-text-secondary",children:"You can try typing a different URL or we can bring you back to your Homepage."}),e.jsx("div",{className:"mt-5 flex justify-center",children:e.jsx(s,{size:"md",asChild:!0,children:e.jsx(o,{className:"w-min self-center whitespace-nowrap",to:t.home,children:e.jsx("span",{className:"px-0.5",children:"Go to Home"})})})})]})})})}export{d as default};
|
@@ -82,4 +82,4 @@ Error generating stack: `+i.message+`
|
|
82
82
|
- less than the value passed to \`max\` (or ${Rl} if no \`max\` prop is set)
|
83
83
|
- \`null\` if the progress is indeterminate.
|
84
84
|
|
85
|
-
Defaulting to \`null\`.`}const Db=th,Nb=Gx;function Kd(e,[t,n]){return Math.min(n,Math.max(t,e))}const Zx=[" ","Enter","ArrowUp","ArrowDown"],qx=[" ","Enter"],kl="Select",[Ol,ou,Jx]=gl(kl),[Or,Ib]=ze(kl,[Jx,Rr]),iu=Rr(),[eS,Un]=Or(kl),[tS,nS]=Or(kl),rS=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:o,onOpenChange:i,value:l,defaultValue:a,onValueChange:c,dir:u,name:f,autoComplete:d,disabled:m,required:g}=e,h=iu(t),[y,$]=s.useState(null),[v,p]=s.useState(null),[w,E]=s.useState(!1),x=bc(u),[b=!1,S]=_t({prop:r,defaultProp:o,onChange:i}),[C,R]=_t({prop:l,defaultProp:a,onChange:c}),O=s.useRef(null),F=y?!!y.closest("form"):!0,[z,V]=s.useState(new Set),A=Array.from(z).map(L=>L.props.value).join(";");return s.createElement(Ic,h,s.createElement(eS,{required:g,scope:t,trigger:y,onTriggerChange:$,valueNode:v,onValueNodeChange:p,valueNodeHasChildren:w,onValueNodeHasChildrenChange:E,contentId:Pt(),value:C,onValueChange:R,open:b,onOpenChange:S,dir:x,triggerPointerDownPosRef:O,disabled:m},s.createElement(Ol.Provider,{scope:t},s.createElement(tS,{scope:e.__scopeSelect,onNativeOptionAdd:s.useCallback(L=>{V(H=>new Set(H).add(L))},[]),onNativeOptionRemove:s.useCallback(L=>{V(H=>{const U=new Set(H);return U.delete(L),U})},[])},n)),F?s.createElement(lh,{key:A,"aria-hidden":!0,required:g,tabIndex:-1,name:f,autoComplete:d,value:C,onChange:L=>R(L.target.value),disabled:m},C===void 0?s.createElement("option",{value:""}):null,Array.from(z)):null))},oS="SelectTrigger",iS=s.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...o}=e,i=iu(n),l=Un(oS,n),a=l.disabled||r,c=Y(t,l.onTriggerChange),u=ou(n),[f,d,m]=sh(h=>{const y=u().filter(p=>!p.disabled),$=y.find(p=>p.value===l.value),v=ah(y,h,$);v!==void 0&&l.onValueChange(v.value)}),g=()=>{a||(l.onOpenChange(!0),m())};return s.createElement(Mc,P({asChild:!0},i),s.createElement(B.button,P({type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:a,"data-disabled":a?"":void 0,"data-placeholder":ih(l.value)?"":void 0},o,{ref:c,onClick:D(o.onClick,h=>{h.currentTarget.focus()}),onPointerDown:D(o.onPointerDown,h=>{const y=h.target;y.hasPointerCapture(h.pointerId)&&y.releasePointerCapture(h.pointerId),h.button===0&&h.ctrlKey===!1&&(g(),l.triggerPointerDownPosRef.current={x:Math.round(h.pageX),y:Math.round(h.pageY)},h.preventDefault())}),onKeyDown:D(o.onKeyDown,h=>{const y=f.current!=="";!(h.ctrlKey||h.altKey||h.metaKey)&&h.key.length===1&&d(h.key),!(y&&h.key===" ")&&Zx.includes(h.key)&&(g(),h.preventDefault())})})))}),lS="SelectValue",sS=s.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,children:i,placeholder:l="",...a}=e,c=Un(lS,n),{onValueNodeHasChildrenChange:u}=c,f=i!==void 0,d=Y(t,c.onValueNodeChange);return Me(()=>{u(f)},[u,f]),s.createElement(B.span,P({},a,{ref:d,style:{pointerEvents:"none"}}),ih(c.value)?s.createElement(s.Fragment,null,l):i)}),aS=s.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...o}=e;return s.createElement(B.span,P({"aria-hidden":!0},o,{ref:t}),r||"▼")}),cS=e=>s.createElement($l,P({asChild:!0},e)),xr="SelectContent",uS=s.forwardRef((e,t)=>{const n=Un(xr,e.__scopeSelect),[r,o]=s.useState();if(Me(()=>{o(new DocumentFragment)},[]),!n.open){const i=r;return i?Rt.createPortal(s.createElement(oh,{scope:e.__scopeSelect},s.createElement(Ol.Slot,{scope:e.__scopeSelect},s.createElement("div",null,e.children))),i):null}return s.createElement(dS,P({},e,{ref:t}))}),At=10,[oh,Al]=Or(xr),dS=s.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:i,onPointerDownOutside:l,side:a,sideOffset:c,align:u,alignOffset:f,arrowPadding:d,collisionBoundary:m,collisionPadding:g,sticky:h,hideWhenDetached:y,avoidCollisions:$,...v}=e,p=Un(xr,n),[w,E]=s.useState(null),[x,b]=s.useState(null),S=Y(t,j=>E(j)),[C,R]=s.useState(null),[O,F]=s.useState(null),z=ou(n),[V,A]=s.useState(!1),L=s.useRef(!1);s.useEffect(()=>{if(w)return zc(w)},[w]),Pc();const H=s.useCallback(j=>{const[Q,...Z]=z().map(ee=>ee.ref.current),[q]=Z.slice(-1),J=document.activeElement;for(const ee of j)if(ee===J||(ee==null||ee.scrollIntoView({block:"nearest"}),ee===Q&&x&&(x.scrollTop=0),ee===q&&x&&(x.scrollTop=x.scrollHeight),ee==null||ee.focus(),document.activeElement!==J))return},[z,x]),U=s.useCallback(()=>H([C,w]),[H,C,w]);s.useEffect(()=>{V&&U()},[V,U]);const{onOpenChange:T,triggerPointerDownPosRef:_}=p;s.useEffect(()=>{if(w){let j={x:0,y:0};const Q=q=>{var J,ee,he,_e;j={x:Math.abs(Math.round(q.pageX)-((J=(ee=_.current)===null||ee===void 0?void 0:ee.x)!==null&&J!==void 0?J:0)),y:Math.abs(Math.round(q.pageY)-((he=(_e=_.current)===null||_e===void 0?void 0:_e.y)!==null&&he!==void 0?he:0))}},Z=q=>{j.x<=10&&j.y<=10?q.preventDefault():w.contains(q.target)||T(!1),document.removeEventListener("pointermove",Q),_.current=null};return _.current!==null&&(document.addEventListener("pointermove",Q),document.addEventListener("pointerup",Z,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Q),document.removeEventListener("pointerup",Z,{capture:!0})}}},[w,T,_]),s.useEffect(()=>{const j=()=>T(!1);return window.addEventListener("blur",j),window.addEventListener("resize",j),()=>{window.removeEventListener("blur",j),window.removeEventListener("resize",j)}},[T]);const[I,W]=sh(j=>{const Q=z().filter(J=>!J.disabled),Z=Q.find(J=>J.ref.current===document.activeElement),q=ah(Q,j,Z);q&&setTimeout(()=>q.ref.current.focus())}),K=s.useCallback((j,Q,Z)=>{const q=!L.current&&!Z;(p.value!==void 0&&p.value===Q||q)&&(R(j),q&&(L.current=!0))},[p.value]),ae=s.useCallback(()=>w==null?void 0:w.focus(),[w]),ie=s.useCallback((j,Q,Z)=>{const q=!L.current&&!Z;(p.value!==void 0&&p.value===Q||q)&&F(j)},[p.value]),we=r==="popper"?Gd:fS,re=we===Gd?{side:a,sideOffset:c,align:u,alignOffset:f,arrowPadding:d,collisionBoundary:m,collisionPadding:g,sticky:h,hideWhenDetached:y,avoidCollisions:$}:{};return s.createElement(oh,{scope:n,content:w,viewport:x,onViewportChange:b,itemRefCallback:K,selectedItem:C,onItemLeave:ae,itemTextRefCallback:ie,focusSelectedItem:U,selectedItemText:O,position:r,isPositioned:V,searchRef:I},s.createElement(jc,{as:Dn,allowPinchZoom:!0},s.createElement(_c,{asChild:!0,trapped:p.open,onMountAutoFocus:j=>{j.preventDefault()},onUnmountAutoFocus:D(o,j=>{var Q;(Q=p.trigger)===null||Q===void 0||Q.focus({preventScroll:!0}),j.preventDefault()})},s.createElement(_o,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:j=>j.preventDefault(),onDismiss:()=>p.onOpenChange(!1)},s.createElement(we,P({role:"listbox",id:p.contentId,"data-state":p.open?"open":"closed",dir:p.dir,onContextMenu:j=>j.preventDefault()},v,re,{onPlaced:()=>A(!0),ref:S,style:{display:"flex",flexDirection:"column",outline:"none",...v.style},onKeyDown:D(v.onKeyDown,j=>{const Q=j.ctrlKey||j.altKey||j.metaKey;if(j.key==="Tab"&&j.preventDefault(),!Q&&j.key.length===1&&W(j.key),["ArrowUp","ArrowDown","Home","End"].includes(j.key)){let q=z().filter(J=>!J.disabled).map(J=>J.ref.current);if(["ArrowUp","End"].includes(j.key)&&(q=q.slice().reverse()),["ArrowUp","ArrowDown"].includes(j.key)){const J=j.target,ee=q.indexOf(J);q=q.slice(ee+1)}setTimeout(()=>H(q)),j.preventDefault()}})}))))))}),fS=s.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...o}=e,i=Un(xr,n),l=Al(xr,n),[a,c]=s.useState(null),[u,f]=s.useState(null),d=Y(t,S=>f(S)),m=ou(n),g=s.useRef(!1),h=s.useRef(!0),{viewport:y,selectedItem:$,selectedItemText:v,focusSelectedItem:p}=l,w=s.useCallback(()=>{if(i.trigger&&i.valueNode&&a&&u&&y&&$&&v){const S=i.trigger.getBoundingClientRect(),C=u.getBoundingClientRect(),R=i.valueNode.getBoundingClientRect(),O=v.getBoundingClientRect();if(i.dir!=="rtl"){const J=O.left-C.left,ee=R.left-J,he=S.left-ee,_e=S.width+he,ut=Math.max(_e,C.width),Gt=window.innerWidth-At,wn=Kd(ee,[At,Gt-ut]);a.style.minWidth=_e+"px",a.style.left=wn+"px"}else{const J=C.right-O.right,ee=window.innerWidth-R.right-J,he=window.innerWidth-S.right-ee,_e=S.width+he,ut=Math.max(_e,C.width),Gt=window.innerWidth-At,wn=Kd(ee,[At,Gt-ut]);a.style.minWidth=_e+"px",a.style.right=wn+"px"}const F=m(),z=window.innerHeight-At*2,V=y.scrollHeight,A=window.getComputedStyle(u),L=parseInt(A.borderTopWidth,10),H=parseInt(A.paddingTop,10),U=parseInt(A.borderBottomWidth,10),T=parseInt(A.paddingBottom,10),_=L+H+V+T+U,I=Math.min($.offsetHeight*5,_),W=window.getComputedStyle(y),K=parseInt(W.paddingTop,10),ae=parseInt(W.paddingBottom,10),ie=S.top+S.height/2-At,we=z-ie,re=$.offsetHeight/2,j=$.offsetTop+re,Q=L+H+j,Z=_-Q;if(Q<=ie){const J=$===F[F.length-1].ref.current;a.style.bottom="0px";const ee=u.clientHeight-y.offsetTop-y.offsetHeight,he=Math.max(we,re+(J?ae:0)+ee+U),_e=Q+he;a.style.height=_e+"px"}else{const J=$===F[0].ref.current;a.style.top="0px";const he=Math.max(ie,L+y.offsetTop+(J?K:0)+re)+Z;a.style.height=he+"px",y.scrollTop=Q-ie+y.offsetTop}a.style.margin=`${At}px 0`,a.style.minHeight=I+"px",a.style.maxHeight=z+"px",r==null||r(),requestAnimationFrame(()=>g.current=!0)}},[m,i.trigger,i.valueNode,a,u,y,$,v,i.dir,r]);Me(()=>w(),[w]);const[E,x]=s.useState();Me(()=>{u&&x(window.getComputedStyle(u).zIndex)},[u]);const b=s.useCallback(S=>{S&&h.current===!0&&(w(),p==null||p(),h.current=!1)},[w,p]);return s.createElement(pS,{scope:n,contentWrapper:a,shouldExpandOnScrollRef:g,onScrollButtonChange:b},s.createElement("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:E}},s.createElement(B.div,P({},o,{ref:d,style:{boxSizing:"border-box",maxHeight:"100%",...o.style}}))))}),Gd=s.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:o=At,...i}=e,l=iu(n);return s.createElement(Lc,P({},l,i,{ref:t,align:r,collisionPadding:o,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}}))}),[pS,mS]=Or(xr,{}),Yd="SelectViewport",vS=s.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=Al(Yd,n),i=mS(Yd,n),l=Y(t,o.onViewportChange),a=s.useRef(0);return s.createElement(s.Fragment,null,s.createElement("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"}}),s.createElement(Ol.Slot,{scope:n},s.createElement(B.div,P({"data-radix-select-viewport":"",role:"presentation"},r,{ref:l,style:{position:"relative",flex:1,overflow:"auto",...r.style},onScroll:D(r.onScroll,c=>{const u=c.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:d}=i;if(d!=null&&d.current&&f){const m=Math.abs(a.current-u.scrollTop);if(m>0){const g=window.innerHeight-At*2,h=parseFloat(f.style.minHeight),y=parseFloat(f.style.height),$=Math.max(h,y);if($<g){const v=$+m,p=Math.min(g,v),w=v-p;f.style.height=p+"px",f.style.bottom==="0px"&&(u.scrollTop=w>0?w:0,f.style.justifyContent="flex-end")}}}a.current=u.scrollTop})}))))}),hS="SelectGroup",[Mb,gS]=Or(hS),yS="SelectLabel",wS=s.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=gS(yS,n);return s.createElement(B.div,P({id:o.id},r,{ref:t}))}),_a="SelectItem",[$S,ES]=Or(_a),xS=s.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:o=!1,textValue:i,...l}=e,a=Un(_a,n),c=Al(_a,n),u=a.value===r,[f,d]=s.useState(i??""),[m,g]=s.useState(!1),h=Y(t,v=>{var p;return(p=c.itemRefCallback)===null||p===void 0?void 0:p.call(c,v,r,o)}),y=Pt(),$=()=>{o||(a.onValueChange(r),a.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return s.createElement($S,{scope:n,value:r,disabled:o,textId:y,isSelected:u,onItemTextChange:s.useCallback(v=>{d(p=>{var w;return p||((w=v==null?void 0:v.textContent)!==null&&w!==void 0?w:"").trim()})},[])},s.createElement(Ol.ItemSlot,{scope:n,value:r,disabled:o,textValue:f},s.createElement(B.div,P({role:"option","aria-labelledby":y,"data-highlighted":m?"":void 0,"aria-selected":u&&m,"data-state":u?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1},l,{ref:h,onFocus:D(l.onFocus,()=>g(!0)),onBlur:D(l.onBlur,()=>g(!1)),onPointerUp:D(l.onPointerUp,$),onPointerMove:D(l.onPointerMove,v=>{if(o){var p;(p=c.onItemLeave)===null||p===void 0||p.call(c)}else v.currentTarget.focus({preventScroll:!0})}),onPointerLeave:D(l.onPointerLeave,v=>{if(v.currentTarget===document.activeElement){var p;(p=c.onItemLeave)===null||p===void 0||p.call(c)}}),onKeyDown:D(l.onKeyDown,v=>{var p;((p=c.searchRef)===null||p===void 0?void 0:p.current)!==""&&v.key===" "||(qx.includes(v.key)&&$(),v.key===" "&&v.preventDefault())})}))))}),ri="SelectItemText",SS=s.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,...i}=e,l=Un(ri,n),a=Al(ri,n),c=ES(ri,n),u=nS(ri,n),[f,d]=s.useState(null),m=Y(t,v=>d(v),c.onItemTextChange,v=>{var p;return(p=a.itemTextRefCallback)===null||p===void 0?void 0:p.call(a,v,c.value,c.disabled)}),g=f==null?void 0:f.textContent,h=s.useMemo(()=>s.createElement("option",{key:c.value,value:c.value,disabled:c.disabled},g),[c.disabled,c.value,g]),{onNativeOptionAdd:y,onNativeOptionRemove:$}=u;return Me(()=>(y(h),()=>$(h)),[y,$,h]),s.createElement(s.Fragment,null,s.createElement(B.span,P({id:c.textId},i,{ref:m})),c.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Rt.createPortal(i.children,l.valueNode):null)}),CS=s.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return s.createElement(B.div,P({"aria-hidden":!0},r,{ref:t}))});function ih(e){return e===""||e===void 0}const lh=s.forwardRef((e,t)=>{const{value:n,...r}=e,o=s.useRef(null),i=Y(t,o),l=nu(n);return s.useEffect(()=>{const a=o.current,c=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(c,"value").set;if(l!==n&&f){const d=new Event("change",{bubbles:!0});f.call(a,n),a.dispatchEvent(d)}},[l,n]),s.createElement(Cl,{asChild:!0},s.createElement("select",P({},r,{ref:i,defaultValue:n})))});lh.displayName="BubbleSelect";function sh(e){const t=Ae(e),n=s.useRef(""),r=s.useRef(0),o=s.useCallback(l=>{const a=n.current+l;t(a),function c(u){n.current=u,window.clearTimeout(r.current),u!==""&&(r.current=window.setTimeout(()=>c(""),1e3))}(a)},[t]),i=s.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return s.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,o,i]}function ah(e,t,n){const o=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let l=bS(e,Math.max(i,0));o.length===1&&(l=l.filter(u=>u!==n));const c=l.find(u=>u.textValue.toLowerCase().startsWith(o.toLowerCase()));return c!==n?c:void 0}function bS(e,t){return e.map((n,r)=>e[(t+r)%e.length])}const Lb=rS,Fb=iS,zb=sS,jb=aS,Ub=cS,Hb=uS,Wb=vS,Bb=wS,Vb=xS,Kb=SS,Gb=CS,ch="Switch",[PS,Yb]=ze(ch),[_S,TS]=PS(ch),RS=s.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:o,defaultChecked:i,required:l,disabled:a,value:c="on",onCheckedChange:u,...f}=e,[d,m]=s.useState(null),g=Y(t,p=>m(p)),h=s.useRef(!1),y=d?!!d.closest("form"):!0,[$=!1,v]=_t({prop:o,defaultProp:i,onChange:u});return s.createElement(_S,{scope:n,checked:$,disabled:a},s.createElement(B.button,P({type:"button",role:"switch","aria-checked":$,"aria-required":l,"data-state":uh($),"data-disabled":a?"":void 0,disabled:a,value:c},f,{ref:g,onClick:D(e.onClick,p=>{v(w=>!w),y&&(h.current=p.isPropagationStopped(),h.current||p.stopPropagation())})})),y&&s.createElement(AS,{control:d,bubbles:!h.current,name:r,value:c,checked:$,required:l,disabled:a,style:{transform:"translateX(-100%)"}}))}),kS="SwitchThumb",OS=s.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,o=TS(kS,n);return s.createElement(B.span,P({"data-state":uh(o.checked),"data-disabled":o.disabled?"":void 0},r,{ref:t}))}),AS=e=>{const{control:t,checked:n,bubbles:r=!0,...o}=e,i=s.useRef(null),l=nu(n),a=Nc(t);return s.useEffect(()=>{const c=i.current,u=window.HTMLInputElement.prototype,d=Object.getOwnPropertyDescriptor(u,"checked").set;if(l!==n&&d){const m=new Event("click",{bubbles:r});d.call(c,n),c.dispatchEvent(m)}},[l,n,r]),s.createElement("input",P({type:"checkbox","aria-hidden":!0,defaultChecked:n},o,{tabIndex:-1,ref:i,style:{...e.style,...a,position:"absolute",pointerEvents:"none",opacity:0,margin:0}}))};function uh(e){return e?"checked":"unchecked"}const Xb=RS,Qb=OS,DS="AlertDialog",[NS,Zb]=ze(DS,[yv]),Kt=yv(),IS=e=>{const{__scopeAlertDialog:t,...n}=e,r=Kt(t);return s.createElement(fE,P({},r,n,{modal:!0}))},MS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(pE,P({},o,r,{ref:t}))}),LS=e=>{const{__scopeAlertDialog:t,...n}=e,r=Kt(t);return s.createElement(mE,P({},r,n))},FS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(vE,P({},o,r,{ref:t}))}),dh="AlertDialogContent",[zS,jS]=NS(dh),US=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...o}=e,i=Kt(n),l=s.useRef(null),a=Y(t,l),c=s.useRef(null);return s.createElement(dE,{contentName:dh,titleName:HS,docsSlug:"alert-dialog"},s.createElement(zS,{scope:n,cancelRef:c},s.createElement(hE,P({role:"alertdialog"},i,o,{ref:a,onOpenAutoFocus:D(o.onOpenAutoFocus,u=>{var f;u.preventDefault(),(f=c.current)===null||f===void 0||f.focus({preventScroll:!0})}),onPointerDownOutside:u=>u.preventDefault(),onInteractOutside:u=>u.preventDefault()}),s.createElement(Sc,null,r),!1)))}),HS="AlertDialogTitle",WS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(gE,P({},o,r,{ref:t}))}),BS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(yE,P({},o,r,{ref:t}))}),VS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(Sv,P({},o,r,{ref:t}))}),KS="AlertDialogCancel",GS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:o}=jS(KS,n),i=Kt(n),l=Y(t,o);return s.createElement(Sv,P({},i,r,{ref:l}))}),qb=IS,Jb=MS,e2=LS,t2=FS,n2=US,r2=VS,o2=GS,i2=WS,l2=BS;function YS(e,[t,n]){return Math.min(n,Math.max(t,e))}function XS(e,t){return s.useReducer((n,r)=>t[n][r]??n,e)}var lu="ScrollArea",[fh,s2]=kr(lu),[QS,ct]=fh(lu),ph=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:o,scrollHideDelay:i=600,...l}=e,[a,c]=s.useState(null),[u,f]=s.useState(null),[d,m]=s.useState(null),[g,h]=s.useState(null),[y,$]=s.useState(null),[v,p]=s.useState(0),[w,E]=s.useState(0),[x,b]=s.useState(!1),[S,C]=s.useState(!1),R=Ie(t,F=>c(F)),O=Yc(o);return N.jsx(QS,{scope:n,type:r,dir:O,scrollHideDelay:i,scrollArea:a,viewport:u,onViewportChange:f,content:d,onContentChange:m,scrollbarX:g,onScrollbarXChange:h,scrollbarXEnabled:x,onScrollbarXEnabledChange:b,scrollbarY:y,onScrollbarYChange:$,scrollbarYEnabled:S,onScrollbarYEnabledChange:C,onCornerWidthChange:p,onCornerHeightChange:E,children:N.jsx(Pe.div,{dir:O,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":v+"px","--radix-scroll-area-corner-height":w+"px",...e.style}})})});ph.displayName=lu;var mh="ScrollAreaViewport",vh=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:o,...i}=e,l=ct(mh,n),a=s.useRef(null),c=Ie(t,a,l.onViewportChange);return N.jsxs(N.Fragment,{children:[N.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),N.jsx(Pe.div,{"data-radix-scroll-area-viewport":"",...i,ref:c,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:N.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});vh.displayName=mh;var kt="ScrollAreaScrollbar",ZS=s.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ct(kt,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:l}=o,a=e.orientation==="horizontal";return s.useEffect(()=>(a?i(!0):l(!0),()=>{a?i(!1):l(!1)}),[a,i,l]),o.type==="hover"?N.jsx(qS,{...r,ref:t,forceMount:n}):o.type==="scroll"?N.jsx(JS,{...r,ref:t,forceMount:n}):o.type==="auto"?N.jsx(hh,{...r,ref:t,forceMount:n}):o.type==="always"?N.jsx(su,{...r,ref:t}):null});ZS.displayName=kt;var qS=s.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ct(kt,e.__scopeScrollArea),[i,l]=s.useState(!1);return s.useEffect(()=>{const a=o.scrollArea;let c=0;if(a){const u=()=>{window.clearTimeout(c),l(!0)},f=()=>{c=window.setTimeout(()=>l(!1),o.scrollHideDelay)};return a.addEventListener("pointerenter",u),a.addEventListener("pointerleave",f),()=>{window.clearTimeout(c),a.removeEventListener("pointerenter",u),a.removeEventListener("pointerleave",f)}}},[o.scrollArea,o.scrollHideDelay]),N.jsx(jn,{present:n||i,children:N.jsx(hh,{"data-state":i?"visible":"hidden",...r,ref:t})})}),JS=s.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ct(kt,e.__scopeScrollArea),i=e.orientation==="horizontal",l=Nl(()=>c("SCROLL_END"),100),[a,c]=XS("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return s.useEffect(()=>{if(a==="idle"){const u=window.setTimeout(()=>c("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(u)}},[a,o.scrollHideDelay,c]),s.useEffect(()=>{const u=o.viewport,f=i?"scrollLeft":"scrollTop";if(u){let d=u[f];const m=()=>{const g=u[f];d!==g&&(c("SCROLL"),l()),d=g};return u.addEventListener("scroll",m),()=>u.removeEventListener("scroll",m)}},[o.viewport,i,c,l]),N.jsx(jn,{present:n||a!=="hidden",children:N.jsx(su,{"data-state":a==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:ne(e.onPointerEnter,()=>c("POINTER_ENTER")),onPointerLeave:ne(e.onPointerLeave,()=>c("POINTER_LEAVE"))})})}),hh=s.forwardRef((e,t)=>{const n=ct(kt,e.__scopeScrollArea),{forceMount:r,...o}=e,[i,l]=s.useState(!1),a=e.orientation==="horizontal",c=Nl(()=>{if(n.viewport){const u=n.viewport.offsetWidth<n.viewport.scrollWidth,f=n.viewport.offsetHeight<n.viewport.scrollHeight;l(a?u:f)}},10);return Sr(n.viewport,c),Sr(n.content,c),N.jsx(jn,{present:r||i,children:N.jsx(su,{"data-state":i?"visible":"hidden",...o,ref:t})})}),su=s.forwardRef((e,t)=>{const{orientation:n="vertical",...r}=e,o=ct(kt,e.__scopeScrollArea),i=s.useRef(null),l=s.useRef(0),[a,c]=s.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=$h(a.viewport,a.content),f={...r,sizes:a,onSizesChange:c,hasThumb:u>0&&u<1,onThumbChange:m=>i.current=m,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:m=>l.current=m};function d(m,g){return lC(m,l.current,a,g)}return n==="horizontal"?N.jsx(eC,{...f,ref:t,onThumbPositionChange:()=>{if(o.viewport&&i.current){const m=o.viewport.scrollLeft,g=Xd(m,a,o.dir);i.current.style.transform=`translate3d(${g}px, 0, 0)`}},onWheelScroll:m=>{o.viewport&&(o.viewport.scrollLeft=m)},onDragScroll:m=>{o.viewport&&(o.viewport.scrollLeft=d(m,o.dir))}}):n==="vertical"?N.jsx(tC,{...f,ref:t,onThumbPositionChange:()=>{if(o.viewport&&i.current){const m=o.viewport.scrollTop,g=Xd(m,a);i.current.style.transform=`translate3d(0, ${g}px, 0)`}},onWheelScroll:m=>{o.viewport&&(o.viewport.scrollTop=m)},onDragScroll:m=>{o.viewport&&(o.viewport.scrollTop=d(m))}}):null}),eC=s.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...o}=e,i=ct(kt,e.__scopeScrollArea),[l,a]=s.useState(),c=s.useRef(null),u=Ie(t,c,i.onScrollbarXChange);return s.useEffect(()=>{c.current&&a(getComputedStyle(c.current))},[c]),N.jsx(yh,{"data-orientation":"horizontal",...o,ref:u,sizes:n,style:{bottom:0,left:i.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:i.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Dl(n)+"px",...e.style},onThumbPointerDown:f=>e.onThumbPointerDown(f.x),onDragScroll:f=>e.onDragScroll(f.x),onWheelScroll:(f,d)=>{if(i.viewport){const m=i.viewport.scrollLeft+f.deltaX;e.onWheelScroll(m),xh(m,d)&&f.preventDefault()}},onResize:()=>{c.current&&i.viewport&&l&&r({content:i.viewport.scrollWidth,viewport:i.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:Zi(l.paddingLeft),paddingEnd:Zi(l.paddingRight)}})}})}),tC=s.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...o}=e,i=ct(kt,e.__scopeScrollArea),[l,a]=s.useState(),c=s.useRef(null),u=Ie(t,c,i.onScrollbarYChange);return s.useEffect(()=>{c.current&&a(getComputedStyle(c.current))},[c]),N.jsx(yh,{"data-orientation":"vertical",...o,ref:u,sizes:n,style:{top:0,right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Dl(n)+"px",...e.style},onThumbPointerDown:f=>e.onThumbPointerDown(f.y),onDragScroll:f=>e.onDragScroll(f.y),onWheelScroll:(f,d)=>{if(i.viewport){const m=i.viewport.scrollTop+f.deltaY;e.onWheelScroll(m),xh(m,d)&&f.preventDefault()}},onResize:()=>{c.current&&i.viewport&&l&&r({content:i.viewport.scrollHeight,viewport:i.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:Zi(l.paddingTop),paddingEnd:Zi(l.paddingBottom)}})}})}),[nC,gh]=fh(kt),yh=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:o,onThumbChange:i,onThumbPointerUp:l,onThumbPointerDown:a,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:f,onResize:d,...m}=e,g=ct(kt,n),[h,y]=s.useState(null),$=Ie(t,R=>y(R)),v=s.useRef(null),p=s.useRef(""),w=g.viewport,E=r.content-r.viewport,x=Ue(f),b=Ue(c),S=Nl(d,10);function C(R){if(v.current){const O=R.clientX-v.current.left,F=R.clientY-v.current.top;u({x:O,y:F})}}return s.useEffect(()=>{const R=O=>{const F=O.target;(h==null?void 0:h.contains(F))&&x(O,E)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[w,h,E,x]),s.useEffect(b,[r,b]),Sr(h,S),Sr(g.content,S),N.jsx(nC,{scope:n,scrollbar:h,hasThumb:o,onThumbChange:Ue(i),onThumbPointerUp:Ue(l),onThumbPositionChange:b,onThumbPointerDown:Ue(a),children:N.jsx(Pe.div,{...m,ref:$,style:{position:"absolute",...m.style},onPointerDown:ne(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),v.current=h.getBoundingClientRect(),p.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",g.viewport&&(g.viewport.style.scrollBehavior="auto"),C(R))}),onPointerMove:ne(e.onPointerMove,C),onPointerUp:ne(e.onPointerUp,R=>{const O=R.target;O.hasPointerCapture(R.pointerId)&&O.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=p.current,g.viewport&&(g.viewport.style.scrollBehavior=""),v.current=null})})})}),Qi="ScrollAreaThumb",rC=s.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=gh(Qi,e.__scopeScrollArea);return N.jsx(jn,{present:n||o.hasThumb,children:N.jsx(oC,{ref:t,...r})})}),oC=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...o}=e,i=ct(Qi,n),l=gh(Qi,n),{onThumbPositionChange:a}=l,c=Ie(t,d=>l.onThumbChange(d)),u=s.useRef(),f=Nl(()=>{u.current&&(u.current(),u.current=void 0)},100);return s.useEffect(()=>{const d=i.viewport;if(d){const m=()=>{if(f(),!u.current){const g=sC(d,a);u.current=g,a()}};return a(),d.addEventListener("scroll",m),()=>d.removeEventListener("scroll",m)}},[i.viewport,f,a]),N.jsx(Pe.div,{"data-state":l.hasThumb?"visible":"hidden",...o,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:ne(e.onPointerDownCapture,d=>{const g=d.target.getBoundingClientRect(),h=d.clientX-g.left,y=d.clientY-g.top;l.onThumbPointerDown({x:h,y})}),onPointerUp:ne(e.onPointerUp,l.onThumbPointerUp)})});rC.displayName=Qi;var au="ScrollAreaCorner",wh=s.forwardRef((e,t)=>{const n=ct(au,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?N.jsx(iC,{...e,ref:t}):null});wh.displayName=au;var iC=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,o=ct(au,n),[i,l]=s.useState(0),[a,c]=s.useState(0),u=!!(i&&a);return Sr(o.scrollbarX,()=>{var d;const f=((d=o.scrollbarX)==null?void 0:d.offsetHeight)||0;o.onCornerHeightChange(f),c(f)}),Sr(o.scrollbarY,()=>{var d;const f=((d=o.scrollbarY)==null?void 0:d.offsetWidth)||0;o.onCornerWidthChange(f),l(f)}),u?N.jsx(Pe.div,{...r,ref:t,style:{width:i,height:a,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Zi(e){return e?parseInt(e,10):0}function $h(e,t){const n=e/t;return isNaN(n)?0:n}function Dl(e){const t=$h(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function lC(e,t,n,r="ltr"){const o=Dl(n),i=o/2,l=t||i,a=o-l,c=n.scrollbar.paddingStart+l,u=n.scrollbar.size-n.scrollbar.paddingEnd-a,f=n.content-n.viewport,d=r==="ltr"?[0,f]:[f*-1,0];return Eh([c,u],d)(e)}function Xd(e,t,n="ltr"){const r=Dl(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,i=t.scrollbar.size-o,l=t.content-t.viewport,a=i-r,c=n==="ltr"?[0,l]:[l*-1,0],u=YS(e,c);return Eh([0,l],[0,a])(u)}function Eh(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function xh(e,t){return e>0&&e<t}var sC=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function o(){const i={left:e.scrollLeft,top:e.scrollTop},l=n.left!==i.left,a=n.top!==i.top;(l||a)&&t(),n=i,r=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(r)};function Nl(e,t){const n=Ue(e),r=s.useRef(0);return s.useEffect(()=>()=>window.clearTimeout(r.current),[]),s.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Sr(e,t){const n=Ue(t);In(()=>{let r=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return o.observe(e),()=>{window.cancelAnimationFrame(r),o.unobserve(e)}}},[e,n])}var a2=ph,c2=vh,u2=wh,aC="Arrow",Sh=s.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...i}=e;return N.jsx(Pe.svg,{...i,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:N.jsx("polygon",{points:"0,0 30,0 15,10"})})});Sh.displayName=aC;var cC=Sh;function uC(e){const[t,n]=s.useState(void 0);return In(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const i=o[0];let l,a;if("borderBoxSize"in i){const c=i.borderBoxSize,u=Array.isArray(c)?c[0]:c;l=u.inlineSize,a=u.blockSize}else l=e.offsetWidth,a=e.offsetHeight;n({width:l,height:a})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var cu="Popper",[Ch,bh]=kr(cu),[dC,Ph]=Ch(cu),_h=e=>{const{__scopePopper:t,children:n}=e,[r,o]=s.useState(null);return N.jsx(dC,{scope:t,anchor:r,onAnchorChange:o,children:n})};_h.displayName=cu;var Th="PopperAnchor",Rh=s.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,i=Ph(Th,n),l=s.useRef(null),a=Ie(t,l);return s.useEffect(()=>{i.onAnchorChange((r==null?void 0:r.current)||l.current)}),r?null:N.jsx(Pe.div,{...o,ref:a})});Rh.displayName=Th;var uu="PopperContent",[fC,pC]=Ch(uu),kh=s.forwardRef((e,t)=>{var j,Q,Z,q,J,ee;const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:i="center",alignOffset:l=0,arrowPadding:a=0,avoidCollisions:c=!0,collisionBoundary:u=[],collisionPadding:f=0,sticky:d="partial",hideWhenDetached:m=!1,updatePositionStrategy:g="optimized",onPlaced:h,...y}=e,$=Ph(uu,n),[v,p]=s.useState(null),w=Ie(t,he=>p(he)),[E,x]=s.useState(null),b=uC(E),S=(b==null?void 0:b.width)??0,C=(b==null?void 0:b.height)??0,R=r+(i!=="center"?"-"+i:""),O=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},F=Array.isArray(u)?u:[u],z=F.length>0,V={padding:O,boundary:F.filter(vC),altBoundary:z},{refs:A,floatingStyles:L,placement:H,isPositioned:U,middlewareData:T}=zm({strategy:"fixed",placement:R,whileElementsMounted:(...he)=>Om(...he,{animationFrame:g==="always"}),elements:{reference:$.anchor},middleware:[xm({mainAxis:o+C,alignmentAxis:l}),c&&Am({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?Mm():void 0,...V}),c&&Dm({...V}),Nm({...V,apply:({elements:he,rects:_e,availableWidth:ut,availableHeight:Gt})=>{const{width:wn,height:Ml}=_e.reference,Hn=he.floating.style;Hn.setProperty("--radix-popper-available-width",`${ut}px`),Hn.setProperty("--radix-popper-available-height",`${Gt}px`),Hn.setProperty("--radix-popper-anchor-width",`${wn}px`),Hn.setProperty("--radix-popper-anchor-height",`${Ml}px`)}}),E&&Lm({element:E,padding:a}),hC({arrowWidth:S,arrowHeight:C}),m&&Im({strategy:"referenceHidden",...V})]}),[_,I]=Dh(H),W=Ue(h);In(()=>{U&&(W==null||W())},[U,W]);const K=(j=T.arrow)==null?void 0:j.x,ae=(Q=T.arrow)==null?void 0:Q.y,ie=((Z=T.arrow)==null?void 0:Z.centerOffset)!==0,[we,re]=s.useState();return In(()=>{v&&re(window.getComputedStyle(v).zIndex)},[v]),N.jsx("div",{ref:A.setFloating,"data-radix-popper-content-wrapper":"",style:{...L,transform:U?L.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:we,"--radix-popper-transform-origin":[(q=T.transformOrigin)==null?void 0:q.x,(J=T.transformOrigin)==null?void 0:J.y].join(" "),...((ee=T.hide)==null?void 0:ee.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:N.jsx(fC,{scope:n,placedSide:_,onArrowChange:x,arrowX:K,arrowY:ae,shouldHideArrow:ie,children:N.jsx(Pe.div,{"data-side":_,"data-align":I,...y,ref:w,style:{...y.style,animation:U?void 0:"none"}})})})});kh.displayName=uu;var Oh="PopperArrow",mC={top:"bottom",right:"left",bottom:"top",left:"right"},Ah=s.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,i=pC(Oh,r),l=mC[i.placedSide];return N.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:N.jsx(cC,{...o,ref:n,style:{...o.style,display:"block"}})})});Ah.displayName=Oh;function vC(e){return e!==null}var hC=e=>({name:"transformOrigin",options:e,fn(t){var $,v,p;const{placement:n,rects:r,middlewareData:o}=t,l=(($=o.arrow)==null?void 0:$.centerOffset)!==0,a=l?0:e.arrowWidth,c=l?0:e.arrowHeight,[u,f]=Dh(n),d={start:"0%",center:"50%",end:"100%"}[f],m=(((v=o.arrow)==null?void 0:v.x)??0)+a/2,g=(((p=o.arrow)==null?void 0:p.y)??0)+c/2;let h="",y="";return u==="bottom"?(h=l?d:`${m}px`,y=`${-c}px`):u==="top"?(h=l?d:`${m}px`,y=`${r.floating.height+c}px`):u==="right"?(h=`${-c}px`,y=l?d:`${g}px`):u==="left"&&(h=`${r.floating.width+c}px`,y=l?d:`${g}px`),{data:{x:h,y}}}});function Dh(e){const[t,n="center"]=e.split("-");return[t,n]}var gC=_h,yC=Rh,wC=kh,$C=Ah;function EC(e,t=globalThis==null?void 0:globalThis.document){const n=Ue(e);s.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var xC="DismissableLayer",Ta="dismissableLayer.update",SC="dismissableLayer.pointerDownOutside",CC="dismissableLayer.focusOutside",Qd,Nh=s.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Ih=s.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:l,onDismiss:a,...c}=e,u=s.useContext(Nh),[f,d]=s.useState(null),m=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,g]=s.useState({}),h=Ie(t,S=>d(S)),y=Array.from(u.layers),[$]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=y.indexOf($),p=f?y.indexOf(f):-1,w=u.layersWithOutsidePointerEventsDisabled.size>0,E=p>=v,x=_C(S=>{const C=S.target,R=[...u.branches].some(O=>O.contains(C));!E||R||(o==null||o(S),l==null||l(S),S.defaultPrevented||a==null||a())},m),b=TC(S=>{const C=S.target;[...u.branches].some(O=>O.contains(C))||(i==null||i(S),l==null||l(S),S.defaultPrevented||a==null||a())},m);return EC(S=>{p===u.layers.size-1&&(r==null||r(S),!S.defaultPrevented&&a&&(S.preventDefault(),a()))},m),s.useEffect(()=>{if(f)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Qd=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),Zd(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=Qd)}},[f,m,n,u]),s.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),Zd())},[f,u]),s.useEffect(()=>{const S=()=>g({});return document.addEventListener(Ta,S),()=>document.removeEventListener(Ta,S)},[]),N.jsx(Pe.div,{...c,ref:h,style:{pointerEvents:w?E?"auto":"none":void 0,...e.style},onFocusCapture:ne(e.onFocusCapture,b.onFocusCapture),onBlurCapture:ne(e.onBlurCapture,b.onBlurCapture),onPointerDownCapture:ne(e.onPointerDownCapture,x.onPointerDownCapture)})});Ih.displayName=xC;var bC="DismissableLayerBranch",PC=s.forwardRef((e,t)=>{const n=s.useContext(Nh),r=s.useRef(null),o=Ie(t,r);return s.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),N.jsx(Pe.div,{...e,ref:o})});PC.displayName=bC;function _C(e,t=globalThis==null?void 0:globalThis.document){const n=Ue(e),r=s.useRef(!1),o=s.useRef(()=>{});return s.useEffect(()=>{const i=a=>{if(a.target&&!r.current){let c=function(){Mh(SC,n,u,{discrete:!0})};const u={originalEvent:a};a.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=c,t.addEventListener("click",o.current,{once:!0})):c()}else t.removeEventListener("click",o.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function TC(e,t=globalThis==null?void 0:globalThis.document){const n=Ue(e),r=s.useRef(!1);return s.useEffect(()=>{const o=i=>{i.target&&!r.current&&Mh(CC,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Zd(){const e=new CustomEvent(Ta);document.dispatchEvent(e)}function Mh(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?CE(o,i):o.dispatchEvent(i)}var ws,du="HoverCard",[Lh,d2]=kr(du,[bh]),Il=bh(),[RC,fu]=Lh(du),Fh=e=>{const{__scopeHoverCard:t,children:n,open:r,defaultOpen:o,onOpenChange:i,openDelay:l=700,closeDelay:a=300}=e,c=Il(t),u=s.useRef(0),f=s.useRef(0),d=s.useRef(!1),m=s.useRef(!1),[g=!1,h]=Gc({prop:r,defaultProp:o,onChange:i}),y=s.useCallback(()=>{clearTimeout(f.current),u.current=window.setTimeout(()=>h(!0),l)},[l,h]),$=s.useCallback(()=>{clearTimeout(u.current),!d.current&&!m.current&&(f.current=window.setTimeout(()=>h(!1),a))},[a,h]),v=s.useCallback(()=>h(!1),[h]);return s.useEffect(()=>()=>{clearTimeout(u.current),clearTimeout(f.current)},[]),N.jsx(RC,{scope:t,open:g,onOpenChange:h,onOpen:y,onClose:$,onDismiss:v,hasSelectionRef:d,isPointerDownOnContentRef:m,children:N.jsx(gC,{...c,children:n})})};Fh.displayName=du;var zh="HoverCardTrigger",jh=s.forwardRef((e,t)=>{const{__scopeHoverCard:n,...r}=e,o=fu(zh,n),i=Il(n);return N.jsx(yC,{asChild:!0,...i,children:N.jsx(Pe.a,{"data-state":o.open?"open":"closed",...r,ref:t,onPointerEnter:ne(e.onPointerEnter,Ji(o.onOpen)),onPointerLeave:ne(e.onPointerLeave,Ji(o.onClose)),onFocus:ne(e.onFocus,o.onOpen),onBlur:ne(e.onBlur,o.onClose),onTouchStart:ne(e.onTouchStart,l=>l.preventDefault())})})});jh.displayName=zh;var kC="HoverCardPortal",[f2,OC]=Lh(kC,{forceMount:void 0}),qi="HoverCardContent",Uh=s.forwardRef((e,t)=>{const n=OC(qi,e.__scopeHoverCard),{forceMount:r=n.forceMount,...o}=e,i=fu(qi,e.__scopeHoverCard);return N.jsx(jn,{present:r||i.open,children:N.jsx(AC,{"data-state":i.open?"open":"closed",...o,onPointerEnter:ne(e.onPointerEnter,Ji(i.onOpen)),onPointerLeave:ne(e.onPointerLeave,Ji(i.onClose)),ref:t})})});Uh.displayName=qi;var AC=s.forwardRef((e,t)=>{const{__scopeHoverCard:n,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:l,...a}=e,c=fu(qi,n),u=Il(n),f=s.useRef(null),d=Ie(t,f),[m,g]=s.useState(!1);return s.useEffect(()=>{if(m){const h=document.body;return ws=h.style.userSelect||h.style.webkitUserSelect,h.style.userSelect="none",h.style.webkitUserSelect="none",()=>{h.style.userSelect=ws,h.style.webkitUserSelect=ws}}},[m]),s.useEffect(()=>{if(f.current){const h=()=>{g(!1),c.isPointerDownOnContentRef.current=!1,setTimeout(()=>{var $;(($=document.getSelection())==null?void 0:$.toString())!==""&&(c.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",h),()=>{document.removeEventListener("pointerup",h),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!1}}},[c.isPointerDownOnContentRef,c.hasSelectionRef]),s.useEffect(()=>{f.current&&IC(f.current).forEach(y=>y.setAttribute("tabindex","-1"))}),N.jsx(Ih,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:l,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:ne(i,h=>{h.preventDefault()}),onDismiss:c.onDismiss,children:N.jsx(wC,{...u,...a,onPointerDown:ne(a.onPointerDown,h=>{h.currentTarget.contains(h.target)&&g(!0),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!0}),ref:d,style:{...a.style,userSelect:m?"text":void 0,WebkitUserSelect:m?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})}),DC="HoverCardArrow",NC=s.forwardRef((e,t)=>{const{__scopeHoverCard:n,...r}=e,o=Il(n);return N.jsx($C,{...o,...r,ref:t})});NC.displayName=DC;function Ji(e){return t=>t.pointerType==="touch"?void 0:e()}function IC(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;n.nextNode();)t.push(n.currentNode);return t}var p2=Fh,m2=jh,v2=Uh;export{zC as $,Pb as A,_b as B,cb as C,kb as D,Ob as E,Tb as F,Rb as G,Db as H,Nb as I,Fb as J,jb as K,sb as L,Ub as M,Hb as N,Wb as O,Bb as P,Vb as Q,df as R,vy as S,ab as T,Kb as U,Gb as V,Xb as W,Qb as X,t2 as Y,n2 as Z,i2 as _,LC as a,l2 as a0,a2 as a1,c2 as a2,u2 as a3,ZS as a4,rC as a5,v2 as a6,KC as a7,GC as a8,mE as a9,lb as aa,pb as ab,db as ac,fb as ad,fE as ae,pE as af,Sv as ag,qb as ah,Jb as ai,e2 as aj,o2 as ak,gb as al,yb as am,wb as an,Lb as ao,zb as ap,r2 as aq,bb as ar,Wi as as,p2 as at,m2 as au,mm as av,Fv as aw,Nv as ax,Mv as ay,Av as az,$e as b,MC as c,Rt as d,jC as e,UC as f,Jd as g,nb as h,rb as i,N as j,YC as k,XC as l,ZC as m,qC as n,eb as o,JC as p,QC as q,s as r,tb as s,vE as t,hE as u,gE as v,yE as w,$b as x,xb as y,Sb as z};
|
85
|
+
Defaulting to \`null\`.`}const Db=th,Nb=Gx;function Kd(e,[t,n]){return Math.min(n,Math.max(t,e))}const Zx=[" ","Enter","ArrowUp","ArrowDown"],qx=[" ","Enter"],kl="Select",[Ol,ou,Jx]=gl(kl),[Or,Ib]=ze(kl,[Jx,Rr]),iu=Rr(),[eS,Un]=Or(kl),[tS,nS]=Or(kl),rS=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:o,onOpenChange:i,value:l,defaultValue:a,onValueChange:c,dir:u,name:f,autoComplete:d,disabled:m,required:g}=e,h=iu(t),[y,$]=s.useState(null),[v,p]=s.useState(null),[w,E]=s.useState(!1),x=bc(u),[b=!1,S]=_t({prop:r,defaultProp:o,onChange:i}),[C,R]=_t({prop:l,defaultProp:a,onChange:c}),O=s.useRef(null),F=y?!!y.closest("form"):!0,[z,V]=s.useState(new Set),A=Array.from(z).map(L=>L.props.value).join(";");return s.createElement(Ic,h,s.createElement(eS,{required:g,scope:t,trigger:y,onTriggerChange:$,valueNode:v,onValueNodeChange:p,valueNodeHasChildren:w,onValueNodeHasChildrenChange:E,contentId:Pt(),value:C,onValueChange:R,open:b,onOpenChange:S,dir:x,triggerPointerDownPosRef:O,disabled:m},s.createElement(Ol.Provider,{scope:t},s.createElement(tS,{scope:e.__scopeSelect,onNativeOptionAdd:s.useCallback(L=>{V(H=>new Set(H).add(L))},[]),onNativeOptionRemove:s.useCallback(L=>{V(H=>{const U=new Set(H);return U.delete(L),U})},[])},n)),F?s.createElement(lh,{key:A,"aria-hidden":!0,required:g,tabIndex:-1,name:f,autoComplete:d,value:C,onChange:L=>R(L.target.value),disabled:m},C===void 0?s.createElement("option",{value:""}):null,Array.from(z)):null))},oS="SelectTrigger",iS=s.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...o}=e,i=iu(n),l=Un(oS,n),a=l.disabled||r,c=Y(t,l.onTriggerChange),u=ou(n),[f,d,m]=sh(h=>{const y=u().filter(p=>!p.disabled),$=y.find(p=>p.value===l.value),v=ah(y,h,$);v!==void 0&&l.onValueChange(v.value)}),g=()=>{a||(l.onOpenChange(!0),m())};return s.createElement(Mc,P({asChild:!0},i),s.createElement(B.button,P({type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:a,"data-disabled":a?"":void 0,"data-placeholder":ih(l.value)?"":void 0},o,{ref:c,onClick:D(o.onClick,h=>{h.currentTarget.focus()}),onPointerDown:D(o.onPointerDown,h=>{const y=h.target;y.hasPointerCapture(h.pointerId)&&y.releasePointerCapture(h.pointerId),h.button===0&&h.ctrlKey===!1&&(g(),l.triggerPointerDownPosRef.current={x:Math.round(h.pageX),y:Math.round(h.pageY)},h.preventDefault())}),onKeyDown:D(o.onKeyDown,h=>{const y=f.current!=="";!(h.ctrlKey||h.altKey||h.metaKey)&&h.key.length===1&&d(h.key),!(y&&h.key===" ")&&Zx.includes(h.key)&&(g(),h.preventDefault())})})))}),lS="SelectValue",sS=s.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,children:i,placeholder:l="",...a}=e,c=Un(lS,n),{onValueNodeHasChildrenChange:u}=c,f=i!==void 0,d=Y(t,c.onValueNodeChange);return Me(()=>{u(f)},[u,f]),s.createElement(B.span,P({},a,{ref:d,style:{pointerEvents:"none"}}),ih(c.value)?s.createElement(s.Fragment,null,l):i)}),aS=s.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...o}=e;return s.createElement(B.span,P({"aria-hidden":!0},o,{ref:t}),r||"▼")}),cS=e=>s.createElement($l,P({asChild:!0},e)),xr="SelectContent",uS=s.forwardRef((e,t)=>{const n=Un(xr,e.__scopeSelect),[r,o]=s.useState();if(Me(()=>{o(new DocumentFragment)},[]),!n.open){const i=r;return i?Rt.createPortal(s.createElement(oh,{scope:e.__scopeSelect},s.createElement(Ol.Slot,{scope:e.__scopeSelect},s.createElement("div",null,e.children))),i):null}return s.createElement(dS,P({},e,{ref:t}))}),At=10,[oh,Al]=Or(xr),dS=s.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:i,onPointerDownOutside:l,side:a,sideOffset:c,align:u,alignOffset:f,arrowPadding:d,collisionBoundary:m,collisionPadding:g,sticky:h,hideWhenDetached:y,avoidCollisions:$,...v}=e,p=Un(xr,n),[w,E]=s.useState(null),[x,b]=s.useState(null),S=Y(t,j=>E(j)),[C,R]=s.useState(null),[O,F]=s.useState(null),z=ou(n),[V,A]=s.useState(!1),L=s.useRef(!1);s.useEffect(()=>{if(w)return zc(w)},[w]),Pc();const H=s.useCallback(j=>{const[Q,...Z]=z().map(ee=>ee.ref.current),[q]=Z.slice(-1),J=document.activeElement;for(const ee of j)if(ee===J||(ee==null||ee.scrollIntoView({block:"nearest"}),ee===Q&&x&&(x.scrollTop=0),ee===q&&x&&(x.scrollTop=x.scrollHeight),ee==null||ee.focus(),document.activeElement!==J))return},[z,x]),U=s.useCallback(()=>H([C,w]),[H,C,w]);s.useEffect(()=>{V&&U()},[V,U]);const{onOpenChange:T,triggerPointerDownPosRef:_}=p;s.useEffect(()=>{if(w){let j={x:0,y:0};const Q=q=>{var J,ee,he,_e;j={x:Math.abs(Math.round(q.pageX)-((J=(ee=_.current)===null||ee===void 0?void 0:ee.x)!==null&&J!==void 0?J:0)),y:Math.abs(Math.round(q.pageY)-((he=(_e=_.current)===null||_e===void 0?void 0:_e.y)!==null&&he!==void 0?he:0))}},Z=q=>{j.x<=10&&j.y<=10?q.preventDefault():w.contains(q.target)||T(!1),document.removeEventListener("pointermove",Q),_.current=null};return _.current!==null&&(document.addEventListener("pointermove",Q),document.addEventListener("pointerup",Z,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Q),document.removeEventListener("pointerup",Z,{capture:!0})}}},[w,T,_]),s.useEffect(()=>{const j=()=>T(!1);return window.addEventListener("blur",j),window.addEventListener("resize",j),()=>{window.removeEventListener("blur",j),window.removeEventListener("resize",j)}},[T]);const[I,W]=sh(j=>{const Q=z().filter(J=>!J.disabled),Z=Q.find(J=>J.ref.current===document.activeElement),q=ah(Q,j,Z);q&&setTimeout(()=>q.ref.current.focus())}),K=s.useCallback((j,Q,Z)=>{const q=!L.current&&!Z;(p.value!==void 0&&p.value===Q||q)&&(R(j),q&&(L.current=!0))},[p.value]),ae=s.useCallback(()=>w==null?void 0:w.focus(),[w]),ie=s.useCallback((j,Q,Z)=>{const q=!L.current&&!Z;(p.value!==void 0&&p.value===Q||q)&&F(j)},[p.value]),we=r==="popper"?Gd:fS,re=we===Gd?{side:a,sideOffset:c,align:u,alignOffset:f,arrowPadding:d,collisionBoundary:m,collisionPadding:g,sticky:h,hideWhenDetached:y,avoidCollisions:$}:{};return s.createElement(oh,{scope:n,content:w,viewport:x,onViewportChange:b,itemRefCallback:K,selectedItem:C,onItemLeave:ae,itemTextRefCallback:ie,focusSelectedItem:U,selectedItemText:O,position:r,isPositioned:V,searchRef:I},s.createElement(jc,{as:Dn,allowPinchZoom:!0},s.createElement(_c,{asChild:!0,trapped:p.open,onMountAutoFocus:j=>{j.preventDefault()},onUnmountAutoFocus:D(o,j=>{var Q;(Q=p.trigger)===null||Q===void 0||Q.focus({preventScroll:!0}),j.preventDefault()})},s.createElement(_o,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:l,onFocusOutside:j=>j.preventDefault(),onDismiss:()=>p.onOpenChange(!1)},s.createElement(we,P({role:"listbox",id:p.contentId,"data-state":p.open?"open":"closed",dir:p.dir,onContextMenu:j=>j.preventDefault()},v,re,{onPlaced:()=>A(!0),ref:S,style:{display:"flex",flexDirection:"column",outline:"none",...v.style},onKeyDown:D(v.onKeyDown,j=>{const Q=j.ctrlKey||j.altKey||j.metaKey;if(j.key==="Tab"&&j.preventDefault(),!Q&&j.key.length===1&&W(j.key),["ArrowUp","ArrowDown","Home","End"].includes(j.key)){let q=z().filter(J=>!J.disabled).map(J=>J.ref.current);if(["ArrowUp","End"].includes(j.key)&&(q=q.slice().reverse()),["ArrowUp","ArrowDown"].includes(j.key)){const J=j.target,ee=q.indexOf(J);q=q.slice(ee+1)}setTimeout(()=>H(q)),j.preventDefault()}})}))))))}),fS=s.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...o}=e,i=Un(xr,n),l=Al(xr,n),[a,c]=s.useState(null),[u,f]=s.useState(null),d=Y(t,S=>f(S)),m=ou(n),g=s.useRef(!1),h=s.useRef(!0),{viewport:y,selectedItem:$,selectedItemText:v,focusSelectedItem:p}=l,w=s.useCallback(()=>{if(i.trigger&&i.valueNode&&a&&u&&y&&$&&v){const S=i.trigger.getBoundingClientRect(),C=u.getBoundingClientRect(),R=i.valueNode.getBoundingClientRect(),O=v.getBoundingClientRect();if(i.dir!=="rtl"){const J=O.left-C.left,ee=R.left-J,he=S.left-ee,_e=S.width+he,ut=Math.max(_e,C.width),Gt=window.innerWidth-At,wn=Kd(ee,[At,Gt-ut]);a.style.minWidth=_e+"px",a.style.left=wn+"px"}else{const J=C.right-O.right,ee=window.innerWidth-R.right-J,he=window.innerWidth-S.right-ee,_e=S.width+he,ut=Math.max(_e,C.width),Gt=window.innerWidth-At,wn=Kd(ee,[At,Gt-ut]);a.style.minWidth=_e+"px",a.style.right=wn+"px"}const F=m(),z=window.innerHeight-At*2,V=y.scrollHeight,A=window.getComputedStyle(u),L=parseInt(A.borderTopWidth,10),H=parseInt(A.paddingTop,10),U=parseInt(A.borderBottomWidth,10),T=parseInt(A.paddingBottom,10),_=L+H+V+T+U,I=Math.min($.offsetHeight*5,_),W=window.getComputedStyle(y),K=parseInt(W.paddingTop,10),ae=parseInt(W.paddingBottom,10),ie=S.top+S.height/2-At,we=z-ie,re=$.offsetHeight/2,j=$.offsetTop+re,Q=L+H+j,Z=_-Q;if(Q<=ie){const J=$===F[F.length-1].ref.current;a.style.bottom="0px";const ee=u.clientHeight-y.offsetTop-y.offsetHeight,he=Math.max(we,re+(J?ae:0)+ee+U),_e=Q+he;a.style.height=_e+"px"}else{const J=$===F[0].ref.current;a.style.top="0px";const he=Math.max(ie,L+y.offsetTop+(J?K:0)+re)+Z;a.style.height=he+"px",y.scrollTop=Q-ie+y.offsetTop}a.style.margin=`${At}px 0`,a.style.minHeight=I+"px",a.style.maxHeight=z+"px",r==null||r(),requestAnimationFrame(()=>g.current=!0)}},[m,i.trigger,i.valueNode,a,u,y,$,v,i.dir,r]);Me(()=>w(),[w]);const[E,x]=s.useState();Me(()=>{u&&x(window.getComputedStyle(u).zIndex)},[u]);const b=s.useCallback(S=>{S&&h.current===!0&&(w(),p==null||p(),h.current=!1)},[w,p]);return s.createElement(pS,{scope:n,contentWrapper:a,shouldExpandOnScrollRef:g,onScrollButtonChange:b},s.createElement("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:E}},s.createElement(B.div,P({},o,{ref:d,style:{boxSizing:"border-box",maxHeight:"100%",...o.style}}))))}),Gd=s.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:o=At,...i}=e,l=iu(n);return s.createElement(Lc,P({},l,i,{ref:t,align:r,collisionPadding:o,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}}))}),[pS,mS]=Or(xr,{}),Yd="SelectViewport",vS=s.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=Al(Yd,n),i=mS(Yd,n),l=Y(t,o.onViewportChange),a=s.useRef(0);return s.createElement(s.Fragment,null,s.createElement("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"}}),s.createElement(Ol.Slot,{scope:n},s.createElement(B.div,P({"data-radix-select-viewport":"",role:"presentation"},r,{ref:l,style:{position:"relative",flex:1,overflow:"auto",...r.style},onScroll:D(r.onScroll,c=>{const u=c.currentTarget,{contentWrapper:f,shouldExpandOnScrollRef:d}=i;if(d!=null&&d.current&&f){const m=Math.abs(a.current-u.scrollTop);if(m>0){const g=window.innerHeight-At*2,h=parseFloat(f.style.minHeight),y=parseFloat(f.style.height),$=Math.max(h,y);if($<g){const v=$+m,p=Math.min(g,v),w=v-p;f.style.height=p+"px",f.style.bottom==="0px"&&(u.scrollTop=w>0?w:0,f.style.justifyContent="flex-end")}}}a.current=u.scrollTop})}))))}),hS="SelectGroup",[Mb,gS]=Or(hS),yS="SelectLabel",wS=s.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=gS(yS,n);return s.createElement(B.div,P({id:o.id},r,{ref:t}))}),_a="SelectItem",[$S,ES]=Or(_a),xS=s.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:o=!1,textValue:i,...l}=e,a=Un(_a,n),c=Al(_a,n),u=a.value===r,[f,d]=s.useState(i??""),[m,g]=s.useState(!1),h=Y(t,v=>{var p;return(p=c.itemRefCallback)===null||p===void 0?void 0:p.call(c,v,r,o)}),y=Pt(),$=()=>{o||(a.onValueChange(r),a.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return s.createElement($S,{scope:n,value:r,disabled:o,textId:y,isSelected:u,onItemTextChange:s.useCallback(v=>{d(p=>{var w;return p||((w=v==null?void 0:v.textContent)!==null&&w!==void 0?w:"").trim()})},[])},s.createElement(Ol.ItemSlot,{scope:n,value:r,disabled:o,textValue:f},s.createElement(B.div,P({role:"option","aria-labelledby":y,"data-highlighted":m?"":void 0,"aria-selected":u&&m,"data-state":u?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1},l,{ref:h,onFocus:D(l.onFocus,()=>g(!0)),onBlur:D(l.onBlur,()=>g(!1)),onPointerUp:D(l.onPointerUp,$),onPointerMove:D(l.onPointerMove,v=>{if(o){var p;(p=c.onItemLeave)===null||p===void 0||p.call(c)}else v.currentTarget.focus({preventScroll:!0})}),onPointerLeave:D(l.onPointerLeave,v=>{if(v.currentTarget===document.activeElement){var p;(p=c.onItemLeave)===null||p===void 0||p.call(c)}}),onKeyDown:D(l.onKeyDown,v=>{var p;((p=c.searchRef)===null||p===void 0?void 0:p.current)!==""&&v.key===" "||(qx.includes(v.key)&&$(),v.key===" "&&v.preventDefault())})}))))}),ri="SelectItemText",SS=s.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,...i}=e,l=Un(ri,n),a=Al(ri,n),c=ES(ri,n),u=nS(ri,n),[f,d]=s.useState(null),m=Y(t,v=>d(v),c.onItemTextChange,v=>{var p;return(p=a.itemTextRefCallback)===null||p===void 0?void 0:p.call(a,v,c.value,c.disabled)}),g=f==null?void 0:f.textContent,h=s.useMemo(()=>s.createElement("option",{key:c.value,value:c.value,disabled:c.disabled},g),[c.disabled,c.value,g]),{onNativeOptionAdd:y,onNativeOptionRemove:$}=u;return Me(()=>(y(h),()=>$(h)),[y,$,h]),s.createElement(s.Fragment,null,s.createElement(B.span,P({id:c.textId},i,{ref:m})),c.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Rt.createPortal(i.children,l.valueNode):null)}),CS=s.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return s.createElement(B.div,P({"aria-hidden":!0},r,{ref:t}))});function ih(e){return e===""||e===void 0}const lh=s.forwardRef((e,t)=>{const{value:n,...r}=e,o=s.useRef(null),i=Y(t,o),l=nu(n);return s.useEffect(()=>{const a=o.current,c=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(c,"value").set;if(l!==n&&f){const d=new Event("change",{bubbles:!0});f.call(a,n),a.dispatchEvent(d)}},[l,n]),s.createElement(Cl,{asChild:!0},s.createElement("select",P({},r,{ref:i,defaultValue:n})))});lh.displayName="BubbleSelect";function sh(e){const t=Ae(e),n=s.useRef(""),r=s.useRef(0),o=s.useCallback(l=>{const a=n.current+l;t(a),function c(u){n.current=u,window.clearTimeout(r.current),u!==""&&(r.current=window.setTimeout(()=>c(""),1e3))}(a)},[t]),i=s.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return s.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,o,i]}function ah(e,t,n){const o=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let l=bS(e,Math.max(i,0));o.length===1&&(l=l.filter(u=>u!==n));const c=l.find(u=>u.textValue.toLowerCase().startsWith(o.toLowerCase()));return c!==n?c:void 0}function bS(e,t){return e.map((n,r)=>e[(t+r)%e.length])}const Lb=rS,Fb=iS,zb=sS,jb=aS,Ub=cS,Hb=uS,Wb=vS,Bb=wS,Vb=xS,Kb=SS,Gb=CS,ch="Switch",[PS,Yb]=ze(ch),[_S,TS]=PS(ch),RS=s.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:o,defaultChecked:i,required:l,disabled:a,value:c="on",onCheckedChange:u,...f}=e,[d,m]=s.useState(null),g=Y(t,p=>m(p)),h=s.useRef(!1),y=d?!!d.closest("form"):!0,[$=!1,v]=_t({prop:o,defaultProp:i,onChange:u});return s.createElement(_S,{scope:n,checked:$,disabled:a},s.createElement(B.button,P({type:"button",role:"switch","aria-checked":$,"aria-required":l,"data-state":uh($),"data-disabled":a?"":void 0,disabled:a,value:c},f,{ref:g,onClick:D(e.onClick,p=>{v(w=>!w),y&&(h.current=p.isPropagationStopped(),h.current||p.stopPropagation())})})),y&&s.createElement(AS,{control:d,bubbles:!h.current,name:r,value:c,checked:$,required:l,disabled:a,style:{transform:"translateX(-100%)"}}))}),kS="SwitchThumb",OS=s.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,o=TS(kS,n);return s.createElement(B.span,P({"data-state":uh(o.checked),"data-disabled":o.disabled?"":void 0},r,{ref:t}))}),AS=e=>{const{control:t,checked:n,bubbles:r=!0,...o}=e,i=s.useRef(null),l=nu(n),a=Nc(t);return s.useEffect(()=>{const c=i.current,u=window.HTMLInputElement.prototype,d=Object.getOwnPropertyDescriptor(u,"checked").set;if(l!==n&&d){const m=new Event("click",{bubbles:r});d.call(c,n),c.dispatchEvent(m)}},[l,n,r]),s.createElement("input",P({type:"checkbox","aria-hidden":!0,defaultChecked:n},o,{tabIndex:-1,ref:i,style:{...e.style,...a,position:"absolute",pointerEvents:"none",opacity:0,margin:0}}))};function uh(e){return e?"checked":"unchecked"}const Xb=RS,Qb=OS,DS="AlertDialog",[NS,Zb]=ze(DS,[yv]),Kt=yv(),IS=e=>{const{__scopeAlertDialog:t,...n}=e,r=Kt(t);return s.createElement(fE,P({},r,n,{modal:!0}))},MS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(pE,P({},o,r,{ref:t}))}),LS=e=>{const{__scopeAlertDialog:t,...n}=e,r=Kt(t);return s.createElement(mE,P({},r,n))},FS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(vE,P({},o,r,{ref:t}))}),dh="AlertDialogContent",[zS,jS]=NS(dh),US=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...o}=e,i=Kt(n),l=s.useRef(null),a=Y(t,l),c=s.useRef(null);return s.createElement(dE,{contentName:dh,titleName:HS,docsSlug:"alert-dialog"},s.createElement(zS,{scope:n,cancelRef:c},s.createElement(hE,P({role:"alertdialog"},i,o,{ref:a,onOpenAutoFocus:D(o.onOpenAutoFocus,u=>{var f;u.preventDefault(),(f=c.current)===null||f===void 0||f.focus({preventScroll:!0})}),onPointerDownOutside:u=>u.preventDefault(),onInteractOutside:u=>u.preventDefault()}),s.createElement(Sc,null,r),!1)))}),HS="AlertDialogTitle",WS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(gE,P({},o,r,{ref:t}))}),BS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(yE,P({},o,r,{ref:t}))}),VS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Kt(n);return s.createElement(Sv,P({},o,r,{ref:t}))}),KS="AlertDialogCancel",GS=s.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:o}=jS(KS,n),i=Kt(n),l=Y(t,o);return s.createElement(Sv,P({},i,r,{ref:l}))}),qb=IS,Jb=MS,e2=LS,t2=FS,n2=US,r2=VS,o2=GS,i2=WS,l2=BS;function YS(e,[t,n]){return Math.min(n,Math.max(t,e))}function XS(e,t){return s.useReducer((n,r)=>t[n][r]??n,e)}var lu="ScrollArea",[fh,s2]=kr(lu),[QS,ct]=fh(lu),ph=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:o,scrollHideDelay:i=600,...l}=e,[a,c]=s.useState(null),[u,f]=s.useState(null),[d,m]=s.useState(null),[g,h]=s.useState(null),[y,$]=s.useState(null),[v,p]=s.useState(0),[w,E]=s.useState(0),[x,b]=s.useState(!1),[S,C]=s.useState(!1),R=Ie(t,F=>c(F)),O=Yc(o);return N.jsx(QS,{scope:n,type:r,dir:O,scrollHideDelay:i,scrollArea:a,viewport:u,onViewportChange:f,content:d,onContentChange:m,scrollbarX:g,onScrollbarXChange:h,scrollbarXEnabled:x,onScrollbarXEnabledChange:b,scrollbarY:y,onScrollbarYChange:$,scrollbarYEnabled:S,onScrollbarYEnabledChange:C,onCornerWidthChange:p,onCornerHeightChange:E,children:N.jsx(Pe.div,{dir:O,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":v+"px","--radix-scroll-area-corner-height":w+"px",...e.style}})})});ph.displayName=lu;var mh="ScrollAreaViewport",vh=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:o,...i}=e,l=ct(mh,n),a=s.useRef(null),c=Ie(t,a,l.onViewportChange);return N.jsxs(N.Fragment,{children:[N.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),N.jsx(Pe.div,{"data-radix-scroll-area-viewport":"",...i,ref:c,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:N.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});vh.displayName=mh;var kt="ScrollAreaScrollbar",ZS=s.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ct(kt,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:l}=o,a=e.orientation==="horizontal";return s.useEffect(()=>(a?i(!0):l(!0),()=>{a?i(!1):l(!1)}),[a,i,l]),o.type==="hover"?N.jsx(qS,{...r,ref:t,forceMount:n}):o.type==="scroll"?N.jsx(JS,{...r,ref:t,forceMount:n}):o.type==="auto"?N.jsx(hh,{...r,ref:t,forceMount:n}):o.type==="always"?N.jsx(su,{...r,ref:t}):null});ZS.displayName=kt;var qS=s.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ct(kt,e.__scopeScrollArea),[i,l]=s.useState(!1);return s.useEffect(()=>{const a=o.scrollArea;let c=0;if(a){const u=()=>{window.clearTimeout(c),l(!0)},f=()=>{c=window.setTimeout(()=>l(!1),o.scrollHideDelay)};return a.addEventListener("pointerenter",u),a.addEventListener("pointerleave",f),()=>{window.clearTimeout(c),a.removeEventListener("pointerenter",u),a.removeEventListener("pointerleave",f)}}},[o.scrollArea,o.scrollHideDelay]),N.jsx(jn,{present:n||i,children:N.jsx(hh,{"data-state":i?"visible":"hidden",...r,ref:t})})}),JS=s.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ct(kt,e.__scopeScrollArea),i=e.orientation==="horizontal",l=Nl(()=>c("SCROLL_END"),100),[a,c]=XS("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return s.useEffect(()=>{if(a==="idle"){const u=window.setTimeout(()=>c("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(u)}},[a,o.scrollHideDelay,c]),s.useEffect(()=>{const u=o.viewport,f=i?"scrollLeft":"scrollTop";if(u){let d=u[f];const m=()=>{const g=u[f];d!==g&&(c("SCROLL"),l()),d=g};return u.addEventListener("scroll",m),()=>u.removeEventListener("scroll",m)}},[o.viewport,i,c,l]),N.jsx(jn,{present:n||a!=="hidden",children:N.jsx(su,{"data-state":a==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:ne(e.onPointerEnter,()=>c("POINTER_ENTER")),onPointerLeave:ne(e.onPointerLeave,()=>c("POINTER_LEAVE"))})})}),hh=s.forwardRef((e,t)=>{const n=ct(kt,e.__scopeScrollArea),{forceMount:r,...o}=e,[i,l]=s.useState(!1),a=e.orientation==="horizontal",c=Nl(()=>{if(n.viewport){const u=n.viewport.offsetWidth<n.viewport.scrollWidth,f=n.viewport.offsetHeight<n.viewport.scrollHeight;l(a?u:f)}},10);return Sr(n.viewport,c),Sr(n.content,c),N.jsx(jn,{present:r||i,children:N.jsx(su,{"data-state":i?"visible":"hidden",...o,ref:t})})}),su=s.forwardRef((e,t)=>{const{orientation:n="vertical",...r}=e,o=ct(kt,e.__scopeScrollArea),i=s.useRef(null),l=s.useRef(0),[a,c]=s.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=$h(a.viewport,a.content),f={...r,sizes:a,onSizesChange:c,hasThumb:u>0&&u<1,onThumbChange:m=>i.current=m,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:m=>l.current=m};function d(m,g){return lC(m,l.current,a,g)}return n==="horizontal"?N.jsx(eC,{...f,ref:t,onThumbPositionChange:()=>{if(o.viewport&&i.current){const m=o.viewport.scrollLeft,g=Xd(m,a,o.dir);i.current.style.transform=`translate3d(${g}px, 0, 0)`}},onWheelScroll:m=>{o.viewport&&(o.viewport.scrollLeft=m)},onDragScroll:m=>{o.viewport&&(o.viewport.scrollLeft=d(m,o.dir))}}):n==="vertical"?N.jsx(tC,{...f,ref:t,onThumbPositionChange:()=>{if(o.viewport&&i.current){const m=o.viewport.scrollTop,g=Xd(m,a);i.current.style.transform=`translate3d(0, ${g}px, 0)`}},onWheelScroll:m=>{o.viewport&&(o.viewport.scrollTop=m)},onDragScroll:m=>{o.viewport&&(o.viewport.scrollTop=d(m))}}):null}),eC=s.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...o}=e,i=ct(kt,e.__scopeScrollArea),[l,a]=s.useState(),c=s.useRef(null),u=Ie(t,c,i.onScrollbarXChange);return s.useEffect(()=>{c.current&&a(getComputedStyle(c.current))},[c]),N.jsx(yh,{"data-orientation":"horizontal",...o,ref:u,sizes:n,style:{bottom:0,left:i.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:i.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Dl(n)+"px",...e.style},onThumbPointerDown:f=>e.onThumbPointerDown(f.x),onDragScroll:f=>e.onDragScroll(f.x),onWheelScroll:(f,d)=>{if(i.viewport){const m=i.viewport.scrollLeft+f.deltaX;e.onWheelScroll(m),xh(m,d)&&f.preventDefault()}},onResize:()=>{c.current&&i.viewport&&l&&r({content:i.viewport.scrollWidth,viewport:i.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:Zi(l.paddingLeft),paddingEnd:Zi(l.paddingRight)}})}})}),tC=s.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...o}=e,i=ct(kt,e.__scopeScrollArea),[l,a]=s.useState(),c=s.useRef(null),u=Ie(t,c,i.onScrollbarYChange);return s.useEffect(()=>{c.current&&a(getComputedStyle(c.current))},[c]),N.jsx(yh,{"data-orientation":"vertical",...o,ref:u,sizes:n,style:{top:0,right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Dl(n)+"px",...e.style},onThumbPointerDown:f=>e.onThumbPointerDown(f.y),onDragScroll:f=>e.onDragScroll(f.y),onWheelScroll:(f,d)=>{if(i.viewport){const m=i.viewport.scrollTop+f.deltaY;e.onWheelScroll(m),xh(m,d)&&f.preventDefault()}},onResize:()=>{c.current&&i.viewport&&l&&r({content:i.viewport.scrollHeight,viewport:i.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:Zi(l.paddingTop),paddingEnd:Zi(l.paddingBottom)}})}})}),[nC,gh]=fh(kt),yh=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:o,onThumbChange:i,onThumbPointerUp:l,onThumbPointerDown:a,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:f,onResize:d,...m}=e,g=ct(kt,n),[h,y]=s.useState(null),$=Ie(t,R=>y(R)),v=s.useRef(null),p=s.useRef(""),w=g.viewport,E=r.content-r.viewport,x=Ue(f),b=Ue(c),S=Nl(d,10);function C(R){if(v.current){const O=R.clientX-v.current.left,F=R.clientY-v.current.top;u({x:O,y:F})}}return s.useEffect(()=>{const R=O=>{const F=O.target;(h==null?void 0:h.contains(F))&&x(O,E)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[w,h,E,x]),s.useEffect(b,[r,b]),Sr(h,S),Sr(g.content,S),N.jsx(nC,{scope:n,scrollbar:h,hasThumb:o,onThumbChange:Ue(i),onThumbPointerUp:Ue(l),onThumbPositionChange:b,onThumbPointerDown:Ue(a),children:N.jsx(Pe.div,{...m,ref:$,style:{position:"absolute",...m.style},onPointerDown:ne(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),v.current=h.getBoundingClientRect(),p.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",g.viewport&&(g.viewport.style.scrollBehavior="auto"),C(R))}),onPointerMove:ne(e.onPointerMove,C),onPointerUp:ne(e.onPointerUp,R=>{const O=R.target;O.hasPointerCapture(R.pointerId)&&O.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=p.current,g.viewport&&(g.viewport.style.scrollBehavior=""),v.current=null})})})}),Qi="ScrollAreaThumb",rC=s.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=gh(Qi,e.__scopeScrollArea);return N.jsx(jn,{present:n||o.hasThumb,children:N.jsx(oC,{ref:t,...r})})}),oC=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...o}=e,i=ct(Qi,n),l=gh(Qi,n),{onThumbPositionChange:a}=l,c=Ie(t,d=>l.onThumbChange(d)),u=s.useRef(),f=Nl(()=>{u.current&&(u.current(),u.current=void 0)},100);return s.useEffect(()=>{const d=i.viewport;if(d){const m=()=>{if(f(),!u.current){const g=sC(d,a);u.current=g,a()}};return a(),d.addEventListener("scroll",m),()=>d.removeEventListener("scroll",m)}},[i.viewport,f,a]),N.jsx(Pe.div,{"data-state":l.hasThumb?"visible":"hidden",...o,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:ne(e.onPointerDownCapture,d=>{const g=d.target.getBoundingClientRect(),h=d.clientX-g.left,y=d.clientY-g.top;l.onThumbPointerDown({x:h,y})}),onPointerUp:ne(e.onPointerUp,l.onThumbPointerUp)})});rC.displayName=Qi;var au="ScrollAreaCorner",wh=s.forwardRef((e,t)=>{const n=ct(au,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?N.jsx(iC,{...e,ref:t}):null});wh.displayName=au;var iC=s.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,o=ct(au,n),[i,l]=s.useState(0),[a,c]=s.useState(0),u=!!(i&&a);return Sr(o.scrollbarX,()=>{var d;const f=((d=o.scrollbarX)==null?void 0:d.offsetHeight)||0;o.onCornerHeightChange(f),c(f)}),Sr(o.scrollbarY,()=>{var d;const f=((d=o.scrollbarY)==null?void 0:d.offsetWidth)||0;o.onCornerWidthChange(f),l(f)}),u?N.jsx(Pe.div,{...r,ref:t,style:{width:i,height:a,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Zi(e){return e?parseInt(e,10):0}function $h(e,t){const n=e/t;return isNaN(n)?0:n}function Dl(e){const t=$h(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function lC(e,t,n,r="ltr"){const o=Dl(n),i=o/2,l=t||i,a=o-l,c=n.scrollbar.paddingStart+l,u=n.scrollbar.size-n.scrollbar.paddingEnd-a,f=n.content-n.viewport,d=r==="ltr"?[0,f]:[f*-1,0];return Eh([c,u],d)(e)}function Xd(e,t,n="ltr"){const r=Dl(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,i=t.scrollbar.size-o,l=t.content-t.viewport,a=i-r,c=n==="ltr"?[0,l]:[l*-1,0],u=YS(e,c);return Eh([0,l],[0,a])(u)}function Eh(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function xh(e,t){return e>0&&e<t}var sC=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function o(){const i={left:e.scrollLeft,top:e.scrollTop},l=n.left!==i.left,a=n.top!==i.top;(l||a)&&t(),n=i,r=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(r)};function Nl(e,t){const n=Ue(e),r=s.useRef(0);return s.useEffect(()=>()=>window.clearTimeout(r.current),[]),s.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Sr(e,t){const n=Ue(t);In(()=>{let r=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return o.observe(e),()=>{window.cancelAnimationFrame(r),o.unobserve(e)}}},[e,n])}var a2=ph,c2=vh,u2=wh,aC="Arrow",Sh=s.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...i}=e;return N.jsx(Pe.svg,{...i,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:N.jsx("polygon",{points:"0,0 30,0 15,10"})})});Sh.displayName=aC;var cC=Sh;function uC(e){const[t,n]=s.useState(void 0);return In(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const i=o[0];let l,a;if("borderBoxSize"in i){const c=i.borderBoxSize,u=Array.isArray(c)?c[0]:c;l=u.inlineSize,a=u.blockSize}else l=e.offsetWidth,a=e.offsetHeight;n({width:l,height:a})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var cu="Popper",[Ch,bh]=kr(cu),[dC,Ph]=Ch(cu),_h=e=>{const{__scopePopper:t,children:n}=e,[r,o]=s.useState(null);return N.jsx(dC,{scope:t,anchor:r,onAnchorChange:o,children:n})};_h.displayName=cu;var Th="PopperAnchor",Rh=s.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,i=Ph(Th,n),l=s.useRef(null),a=Ie(t,l);return s.useEffect(()=>{i.onAnchorChange((r==null?void 0:r.current)||l.current)}),r?null:N.jsx(Pe.div,{...o,ref:a})});Rh.displayName=Th;var uu="PopperContent",[fC,pC]=Ch(uu),kh=s.forwardRef((e,t)=>{var j,Q,Z,q,J,ee;const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:i="center",alignOffset:l=0,arrowPadding:a=0,avoidCollisions:c=!0,collisionBoundary:u=[],collisionPadding:f=0,sticky:d="partial",hideWhenDetached:m=!1,updatePositionStrategy:g="optimized",onPlaced:h,...y}=e,$=Ph(uu,n),[v,p]=s.useState(null),w=Ie(t,he=>p(he)),[E,x]=s.useState(null),b=uC(E),S=(b==null?void 0:b.width)??0,C=(b==null?void 0:b.height)??0,R=r+(i!=="center"?"-"+i:""),O=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},F=Array.isArray(u)?u:[u],z=F.length>0,V={padding:O,boundary:F.filter(vC),altBoundary:z},{refs:A,floatingStyles:L,placement:H,isPositioned:U,middlewareData:T}=zm({strategy:"fixed",placement:R,whileElementsMounted:(...he)=>Om(...he,{animationFrame:g==="always"}),elements:{reference:$.anchor},middleware:[xm({mainAxis:o+C,alignmentAxis:l}),c&&Am({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?Mm():void 0,...V}),c&&Dm({...V}),Nm({...V,apply:({elements:he,rects:_e,availableWidth:ut,availableHeight:Gt})=>{const{width:wn,height:Ml}=_e.reference,Hn=he.floating.style;Hn.setProperty("--radix-popper-available-width",`${ut}px`),Hn.setProperty("--radix-popper-available-height",`${Gt}px`),Hn.setProperty("--radix-popper-anchor-width",`${wn}px`),Hn.setProperty("--radix-popper-anchor-height",`${Ml}px`)}}),E&&Lm({element:E,padding:a}),hC({arrowWidth:S,arrowHeight:C}),m&&Im({strategy:"referenceHidden",...V})]}),[_,I]=Dh(H),W=Ue(h);In(()=>{U&&(W==null||W())},[U,W]);const K=(j=T.arrow)==null?void 0:j.x,ae=(Q=T.arrow)==null?void 0:Q.y,ie=((Z=T.arrow)==null?void 0:Z.centerOffset)!==0,[we,re]=s.useState();return In(()=>{v&&re(window.getComputedStyle(v).zIndex)},[v]),N.jsx("div",{ref:A.setFloating,"data-radix-popper-content-wrapper":"",style:{...L,transform:U?L.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:we,"--radix-popper-transform-origin":[(q=T.transformOrigin)==null?void 0:q.x,(J=T.transformOrigin)==null?void 0:J.y].join(" "),...((ee=T.hide)==null?void 0:ee.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:N.jsx(fC,{scope:n,placedSide:_,onArrowChange:x,arrowX:K,arrowY:ae,shouldHideArrow:ie,children:N.jsx(Pe.div,{"data-side":_,"data-align":I,...y,ref:w,style:{...y.style,animation:U?void 0:"none"}})})})});kh.displayName=uu;var Oh="PopperArrow",mC={top:"bottom",right:"left",bottom:"top",left:"right"},Ah=s.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,i=pC(Oh,r),l=mC[i.placedSide];return N.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:N.jsx(cC,{...o,ref:n,style:{...o.style,display:"block"}})})});Ah.displayName=Oh;function vC(e){return e!==null}var hC=e=>({name:"transformOrigin",options:e,fn(t){var $,v,p;const{placement:n,rects:r,middlewareData:o}=t,l=(($=o.arrow)==null?void 0:$.centerOffset)!==0,a=l?0:e.arrowWidth,c=l?0:e.arrowHeight,[u,f]=Dh(n),d={start:"0%",center:"50%",end:"100%"}[f],m=(((v=o.arrow)==null?void 0:v.x)??0)+a/2,g=(((p=o.arrow)==null?void 0:p.y)??0)+c/2;let h="",y="";return u==="bottom"?(h=l?d:`${m}px`,y=`${-c}px`):u==="top"?(h=l?d:`${m}px`,y=`${r.floating.height+c}px`):u==="right"?(h=`${-c}px`,y=l?d:`${g}px`):u==="left"&&(h=`${r.floating.width+c}px`,y=l?d:`${g}px`),{data:{x:h,y}}}});function Dh(e){const[t,n="center"]=e.split("-");return[t,n]}var gC=_h,yC=Rh,wC=kh,$C=Ah;function EC(e,t=globalThis==null?void 0:globalThis.document){const n=Ue(e);s.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var xC="DismissableLayer",Ta="dismissableLayer.update",SC="dismissableLayer.pointerDownOutside",CC="dismissableLayer.focusOutside",Qd,Nh=s.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Ih=s.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:l,onDismiss:a,...c}=e,u=s.useContext(Nh),[f,d]=s.useState(null),m=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,g]=s.useState({}),h=Ie(t,S=>d(S)),y=Array.from(u.layers),[$]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=y.indexOf($),p=f?y.indexOf(f):-1,w=u.layersWithOutsidePointerEventsDisabled.size>0,E=p>=v,x=_C(S=>{const C=S.target,R=[...u.branches].some(O=>O.contains(C));!E||R||(o==null||o(S),l==null||l(S),S.defaultPrevented||a==null||a())},m),b=TC(S=>{const C=S.target;[...u.branches].some(O=>O.contains(C))||(i==null||i(S),l==null||l(S),S.defaultPrevented||a==null||a())},m);return EC(S=>{p===u.layers.size-1&&(r==null||r(S),!S.defaultPrevented&&a&&(S.preventDefault(),a()))},m),s.useEffect(()=>{if(f)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Qd=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),Zd(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=Qd)}},[f,m,n,u]),s.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),Zd())},[f,u]),s.useEffect(()=>{const S=()=>g({});return document.addEventListener(Ta,S),()=>document.removeEventListener(Ta,S)},[]),N.jsx(Pe.div,{...c,ref:h,style:{pointerEvents:w?E?"auto":"none":void 0,...e.style},onFocusCapture:ne(e.onFocusCapture,b.onFocusCapture),onBlurCapture:ne(e.onBlurCapture,b.onBlurCapture),onPointerDownCapture:ne(e.onPointerDownCapture,x.onPointerDownCapture)})});Ih.displayName=xC;var bC="DismissableLayerBranch",PC=s.forwardRef((e,t)=>{const n=s.useContext(Nh),r=s.useRef(null),o=Ie(t,r);return s.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),N.jsx(Pe.div,{...e,ref:o})});PC.displayName=bC;function _C(e,t=globalThis==null?void 0:globalThis.document){const n=Ue(e),r=s.useRef(!1),o=s.useRef(()=>{});return s.useEffect(()=>{const i=a=>{if(a.target&&!r.current){let c=function(){Mh(SC,n,u,{discrete:!0})};const u={originalEvent:a};a.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=c,t.addEventListener("click",o.current,{once:!0})):c()}else t.removeEventListener("click",o.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function TC(e,t=globalThis==null?void 0:globalThis.document){const n=Ue(e),r=s.useRef(!1);return s.useEffect(()=>{const o=i=>{i.target&&!r.current&&Mh(CC,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Zd(){const e=new CustomEvent(Ta);document.dispatchEvent(e)}function Mh(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?CE(o,i):o.dispatchEvent(i)}var ws,du="HoverCard",[Lh,d2]=kr(du,[bh]),Il=bh(),[RC,fu]=Lh(du),Fh=e=>{const{__scopeHoverCard:t,children:n,open:r,defaultOpen:o,onOpenChange:i,openDelay:l=700,closeDelay:a=300}=e,c=Il(t),u=s.useRef(0),f=s.useRef(0),d=s.useRef(!1),m=s.useRef(!1),[g=!1,h]=Gc({prop:r,defaultProp:o,onChange:i}),y=s.useCallback(()=>{clearTimeout(f.current),u.current=window.setTimeout(()=>h(!0),l)},[l,h]),$=s.useCallback(()=>{clearTimeout(u.current),!d.current&&!m.current&&(f.current=window.setTimeout(()=>h(!1),a))},[a,h]),v=s.useCallback(()=>h(!1),[h]);return s.useEffect(()=>()=>{clearTimeout(u.current),clearTimeout(f.current)},[]),N.jsx(RC,{scope:t,open:g,onOpenChange:h,onOpen:y,onClose:$,onDismiss:v,hasSelectionRef:d,isPointerDownOnContentRef:m,children:N.jsx(gC,{...c,children:n})})};Fh.displayName=du;var zh="HoverCardTrigger",jh=s.forwardRef((e,t)=>{const{__scopeHoverCard:n,...r}=e,o=fu(zh,n),i=Il(n);return N.jsx(yC,{asChild:!0,...i,children:N.jsx(Pe.a,{"data-state":o.open?"open":"closed",...r,ref:t,onPointerEnter:ne(e.onPointerEnter,Ji(o.onOpen)),onPointerLeave:ne(e.onPointerLeave,Ji(o.onClose)),onFocus:ne(e.onFocus,o.onOpen),onBlur:ne(e.onBlur,o.onClose),onTouchStart:ne(e.onTouchStart,l=>l.preventDefault())})})});jh.displayName=zh;var kC="HoverCardPortal",[f2,OC]=Lh(kC,{forceMount:void 0}),qi="HoverCardContent",Uh=s.forwardRef((e,t)=>{const n=OC(qi,e.__scopeHoverCard),{forceMount:r=n.forceMount,...o}=e,i=fu(qi,e.__scopeHoverCard);return N.jsx(jn,{present:r||i.open,children:N.jsx(AC,{"data-state":i.open?"open":"closed",...o,onPointerEnter:ne(e.onPointerEnter,Ji(i.onOpen)),onPointerLeave:ne(e.onPointerLeave,Ji(i.onClose)),ref:t})})});Uh.displayName=qi;var AC=s.forwardRef((e,t)=>{const{__scopeHoverCard:n,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:l,...a}=e,c=fu(qi,n),u=Il(n),f=s.useRef(null),d=Ie(t,f),[m,g]=s.useState(!1);return s.useEffect(()=>{if(m){const h=document.body;return ws=h.style.userSelect||h.style.webkitUserSelect,h.style.userSelect="none",h.style.webkitUserSelect="none",()=>{h.style.userSelect=ws,h.style.webkitUserSelect=ws}}},[m]),s.useEffect(()=>{if(f.current){const h=()=>{g(!1),c.isPointerDownOnContentRef.current=!1,setTimeout(()=>{var $;(($=document.getSelection())==null?void 0:$.toString())!==""&&(c.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",h),()=>{document.removeEventListener("pointerup",h),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!1}}},[c.isPointerDownOnContentRef,c.hasSelectionRef]),s.useEffect(()=>{f.current&&IC(f.current).forEach(y=>y.setAttribute("tabindex","-1"))}),N.jsx(Ih,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:l,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:ne(i,h=>{h.preventDefault()}),onDismiss:c.onDismiss,children:N.jsx(wC,{...u,...a,onPointerDown:ne(a.onPointerDown,h=>{h.currentTarget.contains(h.target)&&g(!0),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!0}),ref:d,style:{...a.style,userSelect:m?"text":void 0,WebkitUserSelect:m?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})}),DC="HoverCardArrow",NC=s.forwardRef((e,t)=>{const{__scopeHoverCard:n,...r}=e,o=Il(n);return N.jsx($C,{...o,...r,ref:t})});NC.displayName=DC;function Ji(e){return t=>t.pointerType==="touch"?void 0:e()}function IC(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;n.nextNode();)t.push(n.currentNode);return t}var p2=Fh,m2=jh,v2=Uh;export{zC as $,Pb as A,_b as B,cb as C,kb as D,Ob as E,Tb as F,Rb as G,Db as H,Nb as I,Fb as J,jb as K,sb as L,Ub as M,Hb as N,Wb as O,Bb as P,Vb as Q,df as R,vy as S,ab as T,Kb as U,Gb as V,Xb as W,Qb as X,t2 as Y,n2 as Z,i2 as _,LC as a,l2 as a0,a2 as a1,c2 as a2,u2 as a3,ZS as a4,rC as a5,v2 as a6,KC as a7,GC as a8,mE as a9,lb as aa,pb as ab,db as ac,fb as ad,gb as ae,yb as af,wb as ag,fE as ah,pE as ai,Sv as aj,qb as ak,Jb as al,e2 as am,o2 as an,Lb as ao,zb as ap,r2 as aq,bb as ar,Wi as as,p2 as at,m2 as au,mm as av,Fv as aw,Nv as ax,Mv as ay,Av as az,$e as b,MC as c,Rt as d,jC as e,UC as f,Jd as g,nb as h,rb as i,N as j,YC as k,XC as l,ZC as m,qC as n,eb as o,JC as p,QC as q,s as r,tb as s,vE as t,hE as u,gE as v,yE as w,$b as x,xb as y,Sb as z};
|