diff --git a/404.html b/404.html index 08c1bc83f3..8051ea2271 100644 --- a/404.html +++ b/404.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/about-langflow.html b/about-langflow.html index 5fcfc38052..5a47786a6f 100644 --- a/about-langflow.html +++ b/about-langflow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/agent-tutorial.html b/agent-tutorial.html index ce37274fcd..73aa63ae93 100644 --- a/agent-tutorial.html +++ b/agent-tutorial.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/agents-tools.html b/agents-tools.html index 4a4b31e44e..810324d5fc 100644 --- a/agents-tools.html +++ b/agents-tools.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/agents.html b/agents.html index 096fc84c59..8f4804385b 100644 --- a/agents.html +++ b/agents.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api-build.html b/api-build.html index ff5af3c607..ad8e5fe1fe 100644 --- a/api-build.html +++ b/api-build.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api-files.html b/api-files.html index 574a207513..c4c94e3508 100644 --- a/api-files.html +++ b/api-files.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api-flows-run.html b/api-flows-run.html index 5dd1dff669..0f7fd91039 100644 --- a/api-flows-run.html +++ b/api-flows-run.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api-flows.html b/api-flows.html index f061c3a2ac..c113754ced 100644 --- a/api-flows.html +++ b/api-flows.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api-logs.html b/api-logs.html index 49136c1c8d..a6ffd878e6 100644 --- a/api-logs.html +++ b/api-logs.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api-monitor.html b/api-monitor.html index ba8b41d2c6..c59172412d 100644 --- a/api-monitor.html +++ b/api-monitor.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api-projects.html b/api-projects.html index 7dcd7282e2..6bf71d73b8 100644 --- a/api-projects.html +++ b/api-projects.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api-reference-api-examples.html b/api-reference-api-examples.html index 6bc67c11c0..f48cff5d16 100644 --- a/api-reference-api-examples.html +++ b/api-reference-api-examples.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api-users.html b/api-users.html index 38fa499cd1..de2cad4296 100644 --- a/api-users.html +++ b/api-users.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api.html b/api.html index 98a286899f..3ebea29951 100644 --- a/api.html +++ b/api.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/add-server.html b/api/add-server.html index bac959b5e7..45dac03824 100644 --- a/api/add-server.html +++ b/api/add-server.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/add-user.html b/api/add-user.html index dcac67b1e8..cc23afeb7a 100644 --- a/api/add-user.html +++ b/api/add-user.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/auto-login.html b/api/auto-login.html index d1eaedd3e5..e166271e90 100644 --- a/api/auto-login.html +++ b/api/auto-login.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/build-flow.html b/api/build-flow.html index 5f6ee31d22..452f29b0f1 100644 --- a/api/build-flow.html +++ b/api/build-flow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/build-public-tmp.html b/api/build-public-tmp.html index aff288d245..0e1fac1047 100644 --- a/api/build-public-tmp.html +++ b/api/build-public-tmp.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/build-vertex-stream.html b/api/build-vertex-stream.html index f8734c617a..5ba7f70de0 100644 --- a/api/build-vertex-stream.html +++ b/api/build-vertex-stream.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/build-vertex.html b/api/build-vertex.html index c2220b2854..768a37ea84 100644 --- a/api/build-vertex.html +++ b/api/build-vertex.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/cancel-build.html b/api/cancel-build.html index ce2fc1f23e..bc43bf5c6a 100644 --- a/api/cancel-build.html +++ b/api/cancel-build.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/check-if-store-has-api-key.html b/api/check-if-store-has-api-key.html index 12ac3fa288..4ac844ef3c 100644 --- a/api/check-if-store-has-api-key.html +++ b/api/check-if-store-has-api-key.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/check-if-store-is-enabled.html b/api/check-if-store-is-enabled.html index d486d2424e..432776f691 100644 --- a/api/check-if-store-is-enabled.html +++ b/api/check-if-store-is-enabled.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/check-installed-mcp-servers.html b/api/check-installed-mcp-servers.html index 2cdac32d82..50bce2f4ff 100644 --- a/api/check-installed-mcp-servers.html +++ b/api/check-installed-mcp-servers.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/create-api-key-route.html b/api/create-api-key-route.html index 45947635a0..82cfb10cf4 100644 --- a/api/create-api-key-route.html +++ b/api/create-api-key-route.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/create-flow.html b/api/create-flow.html index a589bc172e..ea8196b935 100644 --- a/api/create-flow.html +++ b/api/create-flow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/create-flows.html b/api/create-flows.html index 669cc91bdb..35e841f3eb 100644 --- a/api/create-flows.html +++ b/api/create-flows.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/create-folder-redirect.html b/api/create-folder-redirect.html index 56f5f404a6..d668a5134f 100644 --- a/api/create-folder-redirect.html +++ b/api/create-folder-redirect.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/create-project.html b/api/create-project.html index 9244c5054c..faff764b75 100644 --- a/api/create-project.html +++ b/api/create-project.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/create-upload-file.html b/api/create-upload-file.html index a8e7612823..5604f897ff 100644 --- a/api/create-upload-file.html +++ b/api/create-upload-file.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/create-variable.html b/api/create-variable.html index d641a73686..af0fd03055 100644 --- a/api/create-variable.html +++ b/api/create-variable.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/custom-component-update.html b/api/custom-component-update.html index 3d06fa33cf..1af20489c3 100644 --- a/api/custom-component-update.html +++ b/api/custom-component-update.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/custom-component.html b/api/custom-component.html index d333c1a8d3..416ceb670e 100644 --- a/api/custom-component.html +++ b/api/custom-component.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-all-files-1.html b/api/delete-all-files-1.html index 47af0e06b5..20f2dfcc6c 100644 --- a/api/delete-all-files-1.html +++ b/api/delete-all-files-1.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-all-files.html b/api/delete-all-files.html index 8cbeaacd7b..a74bd14f4c 100644 --- a/api/delete-all-files.html +++ b/api/delete-all-files.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-api-key-route.html b/api/delete-api-key-route.html index 2b19e51d9a..082c743d95 100644 --- a/api/delete-api-key-route.html +++ b/api/delete-api-key-route.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-file-1.html b/api/delete-file-1.html index 1dd4dc1cad..da53e695db 100644 --- a/api/delete-file-1.html +++ b/api/delete-file-1.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-file.html b/api/delete-file.html index a57015df2e..805a3566a6 100644 --- a/api/delete-file.html +++ b/api/delete-file.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-files-batch.html b/api/delete-files-batch.html index 1c24ff9d69..065d7f07fe 100644 --- a/api/delete-files-batch.html +++ b/api/delete-files-batch.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-flow.html b/api/delete-flow.html index 8320dfaf0a..23eac24c2a 100644 --- a/api/delete-flow.html +++ b/api/delete-flow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-folder-redirect.html b/api/delete-folder-redirect.html index 9791f9dd06..17beb203c8 100644 --- a/api/delete-folder-redirect.html +++ b/api/delete-folder-redirect.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-messages-session.html b/api/delete-messages-session.html index 7f0ce37b53..fdce80fd77 100644 --- a/api/delete-messages-session.html +++ b/api/delete-messages-session.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-messages.html b/api/delete-messages.html index 729de57b7c..d9bedea44d 100644 --- a/api/delete-messages.html +++ b/api/delete-messages.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-multiple-flows.html b/api/delete-multiple-flows.html index 786ce0a164..0a9e9ee5b5 100644 --- a/api/delete-multiple-flows.html +++ b/api/delete-multiple-flows.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-project.html b/api/delete-project.html index b063553e6e..d138cce267 100644 --- a/api/delete-project.html +++ b/api/delete-project.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-server.html b/api/delete-server.html index 9cd442d915..e045601d14 100644 --- a/api/delete-server.html +++ b/api/delete-server.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-user.html b/api/delete-user.html index bf88b22cba..d6ec525979 100644 --- a/api/delete-user.html +++ b/api/delete-user.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-variable.html b/api/delete-variable.html index f0352b1d98..877060364c 100644 --- a/api/delete-variable.html +++ b/api/delete-variable.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/delete-vertex-builds.html b/api/delete-vertex-builds.html index e5bf0936de..f78dca0999 100644 --- a/api/delete-vertex-builds.html +++ b/api/delete-vertex-builds.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/download-component.html b/api/download-component.html index e799f0dc04..0c7f99383a 100644 --- a/api/download-component.html +++ b/api/download-component.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/download-file-1.html b/api/download-file-1.html index 5907eefa8b..07361b1004 100644 --- a/api/download-file-1.html +++ b/api/download-file-1.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/download-file-2.html b/api/download-file-2.html index 1933a2a689..09cd977b9c 100644 --- a/api/download-file-2.html +++ b/api/download-file-2.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/download-file-redirect.html b/api/download-file-redirect.html index 28da86576b..4269791507 100644 --- a/api/download-file-redirect.html +++ b/api/download-file-redirect.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/download-file.html b/api/download-file.html index 9685d9f092..779e73dbe1 100644 --- a/api/download-file.html +++ b/api/download-file.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/download-files-batch.html b/api/download-files-batch.html index 9acc982010..acb9c11358 100644 --- a/api/download-files-batch.html +++ b/api/download-files-batch.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/download-image.html b/api/download-image.html index 39cbd302b2..34eb9870c9 100644 --- a/api/download-image.html +++ b/api/download-image.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/download-multiple-file.html b/api/download-multiple-file.html index 2f9a8b22f4..741e32592e 100644 --- a/api/download-multiple-file.html +++ b/api/download-multiple-file.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/download-profile-picture.html b/api/download-profile-picture.html index 7f9b3691ac..72151b8822 100644 --- a/api/download-profile-picture.html +++ b/api/download-profile-picture.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/edit-file-name.html b/api/edit-file-name.html index 428e2446cd..2bb5fc16f8 100644 --- a/api/edit-file-name.html +++ b/api/edit-file-name.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/experimental-run-flow.html b/api/experimental-run-flow.html index a6752f1e7d..36e864921a 100644 --- a/api/experimental-run-flow.html +++ b/api/experimental-run-flow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-all.html b/api/get-all.html index 0cd3fa807f..50faa584c7 100644 --- a/api/get-all.html +++ b/api/get-all.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-api-keys-route.html b/api/get-api-keys-route.html index 77245d9dcf..97a9a158c4 100644 --- a/api/get-api-keys-route.html +++ b/api/get-api-keys-route.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-build-events.html b/api/get-build-events.html index 6eb5d6e8d0..67d26c568b 100644 --- a/api/get-build-events.html +++ b/api/get-build-events.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-components.html b/api/get-components.html index e227f35241..9d9f6ad303 100644 --- a/api/get-components.html +++ b/api/get-components.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-config.html b/api/get-config.html index e284f9fd9e..cd258e5c51 100644 --- a/api/get-config.html +++ b/api/get-config.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-elevenlabs-voice-ids.html b/api/get-elevenlabs-voice-ids.html index eb6dad4a28..7dd6538ed5 100644 --- a/api/get-elevenlabs-voice-ids.html +++ b/api/get-elevenlabs-voice-ids.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-list-of-components-liked-by-user.html b/api/get-list-of-components-liked-by-user.html index 1149b065c5..a50671d4b1 100644 --- a/api/get-list-of-components-liked-by-user.html +++ b/api/get-list-of-components-liked-by-user.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-message-sessions.html b/api/get-message-sessions.html index 5bb2ab4f7b..82e02855b0 100644 --- a/api/get-message-sessions.html +++ b/api/get-message-sessions.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-messages.html b/api/get-messages.html index 1684c8cb49..e9bf550261 100644 --- a/api/get-messages.html +++ b/api/get-messages.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-server-endpoint.html b/api/get-server-endpoint.html index 2b90c89834..a990e7f694 100644 --- a/api/get-server-endpoint.html +++ b/api/get-server-endpoint.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-servers.html b/api/get-servers.html index 75dca00f23..b0bed1ed8e 100644 --- a/api/get-servers.html +++ b/api/get-servers.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-starter-projects.html b/api/get-starter-projects.html index 85f377f132..f1c5ad2735 100644 --- a/api/get-starter-projects.html +++ b/api/get-starter-projects.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-tags.html b/api/get-tags.html index 6411464637..d5a5eed64f 100644 --- a/api/get-tags.html +++ b/api/get-tags.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-task-status.html b/api/get-task-status.html index 2453cb42cd..3e233671e2 100644 --- a/api/get-task-status.html +++ b/api/get-task-status.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-transactions.html b/api/get-transactions.html index a8bac8f136..274e80d3e5 100644 --- a/api/get-transactions.html +++ b/api/get-transactions.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-version.html b/api/get-version.html index d6a3c58fe4..096a5f2689 100644 --- a/api/get-version.html +++ b/api/get-version.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/get-vertex-builds.html b/api/get-vertex-builds.html index 63023704a6..bcc14a2880 100644 --- a/api/get-vertex-builds.html +++ b/api/get-vertex-builds.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/handle-messages-1.html b/api/handle-messages-1.html index 43b7aa8944..68e3393cd7 100644 --- a/api/handle-messages-1.html +++ b/api/handle-messages-1.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/handle-messages.html b/api/handle-messages.html index 2d6410e61e..1b40e33fb9 100644 --- a/api/handle-messages.html +++ b/api/handle-messages.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/handle-project-messages-with-slash.html b/api/handle-project-messages-with-slash.html index d6eab8b198..ebc290da69 100644 --- a/api/handle-project-messages-with-slash.html +++ b/api/handle-project-messages-with-slash.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/handle-project-messages.html b/api/handle-project-messages.html index 3c310ed8af..df6a875136 100644 --- a/api/handle-project-messages.html +++ b/api/handle-project-messages.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/handle-project-sse.html b/api/handle-project-sse.html index d12f464148..5bc3d4b1e5 100644 --- a/api/handle-project-sse.html +++ b/api/handle-project-sse.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/handle-sse-1.html b/api/handle-sse-1.html index 16fe3751ff..e2d2a03322 100644 --- a/api/handle-sse-1.html +++ b/api/handle-sse-1.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/handle-sse.html b/api/handle-sse.html index af43acafb5..50f0e57f19 100644 --- a/api/handle-sse.html +++ b/api/handle-sse.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/health-check.html b/api/health-check.html index e3cb633088..d215b5cec2 100644 --- a/api/health-check.html +++ b/api/health-check.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/health.html b/api/health.html index 48953a4497..6ac921b430 100644 --- a/api/health.html +++ b/api/health.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/install-mcp-config.html b/api/install-mcp-config.html index 99b05544b8..17a8960ce8 100644 --- a/api/install-mcp-config.html +++ b/api/install-mcp-config.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/like-component.html b/api/like-component.html index 1fe8e369d2..58901b7e86 100644 --- a/api/like-component.html +++ b/api/like-component.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/list-files-1.html b/api/list-files-1.html index a6c9b93560..77c1b2b840 100644 --- a/api/list-files-1.html +++ b/api/list-files-1.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/list-files-2.html b/api/list-files-2.html index 6fa5903cf3..16cc2897f8 100644 --- a/api/list-files-2.html +++ b/api/list-files-2.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/list-files.html b/api/list-files.html index 87e1249e20..a69f346adc 100644 --- a/api/list-files.html +++ b/api/list-files.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/list-profile-pictures.html b/api/list-profile-pictures.html index b6168d3c76..4c9ececf07 100644 --- a/api/list-profile-pictures.html +++ b/api/list-profile-pictures.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/list-project-tools.html b/api/list-project-tools.html index 684b95972b..65c77f07cf 100644 --- a/api/list-project-tools.html +++ b/api/list-project-tools.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/login-to-get-access-token.html b/api/login-to-get-access-token.html index 34fb592e96..1a0d607b50 100644 --- a/api/login-to-get-access-token.html +++ b/api/login-to-get-access-token.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/logout.html b/api/logout.html index 42bea09096..664ae8201c 100644 --- a/api/logout.html +++ b/api/logout.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/logs.html b/api/logs.html index 4f6dc75001..d42a0705dc 100644 --- a/api/logs.html +++ b/api/logs.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/patch-user.html b/api/patch-user.html index fd30726b3d..7f4a6dc9f6 100644 --- a/api/patch-user.html +++ b/api/patch-user.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/post-validate-code.html b/api/post-validate-code.html index 0808feac04..5cdcf4a86a 100644 --- a/api/post-validate-code.html +++ b/api/post-validate-code.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/post-validate-prompt.html b/api/post-validate-prompt.html index e3bd97fa99..239b2d6268 100644 --- a/api/post-validate-prompt.html +++ b/api/post-validate-prompt.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/process-1.html b/api/process-1.html index 85d8c1ccf9..54f3ba7f67 100644 --- a/api/process-1.html +++ b/api/process-1.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/process.html b/api/process.html index ea6a4579bc..333f6f4693 100644 --- a/api/process.html +++ b/api/process.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-all-users.html b/api/read-all-users.html index 345def9331..0f32230b5f 100644 --- a/api/read-all-users.html +++ b/api/read-all-users.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-basic-examples.html b/api/read-basic-examples.html index 536d46de09..1bbd149aa1 100644 --- a/api/read-basic-examples.html +++ b/api/read-basic-examples.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-current-user.html b/api/read-current-user.html index 81e9b37f5b..521d8df229 100644 --- a/api/read-current-user.html +++ b/api/read-current-user.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-flow.html b/api/read-flow.html index 63af57d0b7..309c8d3231 100644 --- a/api/read-flow.html +++ b/api/read-flow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-flows.html b/api/read-flows.html index 37db5ae922..a8966f451c 100644 --- a/api/read-flows.html +++ b/api/read-flows.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-folder-redirect.html b/api/read-folder-redirect.html index 1f65251149..b0b37407af 100644 --- a/api/read-folder-redirect.html +++ b/api/read-folder-redirect.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-folders-redirect.html b/api/read-folders-redirect.html index 33c974337f..9b74e3e916 100644 --- a/api/read-folders-redirect.html +++ b/api/read-folders-redirect.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-project.html b/api/read-project.html index f2db598431..0408b216a0 100644 --- a/api/read-project.html +++ b/api/read-project.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-projects.html b/api/read-projects.html index 4b29fe4eeb..90df183d89 100644 --- a/api/read-projects.html +++ b/api/read-projects.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-public-flow.html b/api/read-public-flow.html index ac0a4bf872..5f1732be92 100644 --- a/api/read-public-flow.html +++ b/api/read-public-flow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/read-variables.html b/api/read-variables.html index 945d5bf12a..f79e707cd9 100644 --- a/api/read-variables.html +++ b/api/read-variables.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/refresh-token.html b/api/refresh-token.html index 3126baea0f..9d20e1020b 100644 --- a/api/refresh-token.html +++ b/api/refresh-token.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/reset-password.html b/api/reset-password.html index d7b9e9d413..ed7859ad16 100644 --- a/api/reset-password.html +++ b/api/reset-password.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/retrieve-vertices-order.html b/api/retrieve-vertices-order.html index 5bc18c6d49..4bd223d02b 100644 --- a/api/retrieve-vertices-order.html +++ b/api/retrieve-vertices-order.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/save-store-api-key.html b/api/save-store-api-key.html index 1574c7a924..34529f08af 100644 --- a/api/save-store-api-key.html +++ b/api/save-store-api-key.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/share-component.html b/api/share-component.html index f4612a336b..f7aaf519a9 100644 --- a/api/share-component.html +++ b/api/share-component.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/simplified-run-flow.html b/api/simplified-run-flow.html index d93251beda..6aa6e048ea 100644 --- a/api/simplified-run-flow.html +++ b/api/simplified-run-flow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/stream-logs.html b/api/stream-logs.html index e8738385cd..404f4f1824 100644 --- a/api/stream-logs.html +++ b/api/stream-logs.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/update-flow.html b/api/update-flow.html index 992fd190a4..c8afb623bb 100644 --- a/api/update-flow.html +++ b/api/update-flow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/update-folder-redirect.html b/api/update-folder-redirect.html index c257a8e7b2..90abafba12 100644 --- a/api/update-folder-redirect.html +++ b/api/update-folder-redirect.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/update-message.html b/api/update-message.html index dffab91756..407f04622e 100644 --- a/api/update-message.html +++ b/api/update-message.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/update-project-mcp-settings.html b/api/update-project-mcp-settings.html index e5a3735852..3b54de8200 100644 --- a/api/update-project-mcp-settings.html +++ b/api/update-project-mcp-settings.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/update-project.html b/api/update-project.html index 8d4be6530a..e5ce57396e 100644 --- a/api/update-project.html +++ b/api/update-project.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/update-server-endpoint.html b/api/update-server-endpoint.html index afe6a492bc..cde1151981 100644 --- a/api/update-server-endpoint.html +++ b/api/update-server-endpoint.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/update-session-id.html b/api/update-session-id.html index e63c7e8deb..d101fee29b 100644 --- a/api/update-session-id.html +++ b/api/update-session-id.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/update-shared-component.html b/api/update-shared-component.html index ddec15be67..50eb057f76 100644 --- a/api/update-shared-component.html +++ b/api/update-shared-component.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/update-variable.html b/api/update-variable.html index ffb083a71e..ffc3752f76 100644 --- a/api/update-variable.html +++ b/api/update-variable.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/upload-file-1.html b/api/upload-file-1.html index 2097f14b60..cdec169bc4 100644 --- a/api/upload-file-1.html +++ b/api/upload-file-1.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/upload-file-2.html b/api/upload-file-2.html index c8286099be..6c98914c17 100644 --- a/api/upload-file-2.html +++ b/api/upload-file-2.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/upload-file-redirect.html b/api/upload-file-redirect.html index 14fd643a55..a0e5ae5548 100644 --- a/api/upload-file-redirect.html +++ b/api/upload-file-redirect.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/upload-file.html b/api/upload-file.html index 9fa4a5aebb..947cf404bd 100644 --- a/api/upload-file.html +++ b/api/upload-file.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/upload-user-file-1.html b/api/upload-user-file-1.html index 268e22f7fa..e8c2aabfbf 100644 --- a/api/upload-user-file-1.html +++ b/api/upload-user-file-1.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/upload-user-file.html b/api/upload-user-file.html index 4b25610e50..ac1f02a1cc 100644 --- a/api/upload-user-file.html +++ b/api/upload-user-file.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/api/webhook-run-flow.html b/api/webhook-run-flow.html index 39e28476ff..2f70d34c83 100644 --- a/api/webhook-run-flow.html +++ b/api/webhook-run-flow.html @@ -22,9 +22,9 @@ - - - + + + diff --git a/assets/css/styles.530387df.css b/assets/css/styles.e756ed1e.css similarity index 76% rename from assets/css/styles.530387df.css rename to assets/css/styles.e756ed1e.css index 5001335da2..8caff17e34 100644 --- a/assets/css/styles.530387df.css +++ b/assets/css/styles.e756ed1e.css @@ -1 +1 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}*,.ch-code-line-number,.ch-terminal{box-sizing:border-box}#hero,#hero-apply{background-image:linear-gradient(var(--ifm-footer-background-color),var(--ifm-navbar-background-color))}.markdown li,body{word-wrap:break-word}.gif_player img,.markdown img,img{max-width:100%}.gif_player,.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}:root,html[data-theme=dark]{--openapi-required:var(--openapi-code-red);--openapi-optional:var(--openapi-code-dim)}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm,.theme-doc-sidebar-item-category.menu__list-item:not(:first-child){margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol,ol ul,ul ol,ul ul{margin:0}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom);text-align:start}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_uzNF .wordWrapButtonIcon_b1P5{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.ch-editor-terminal-tab,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.DocSearch-Container a,.dropdown__link--active,.dropdown__link:hover,.footer-links a,.menu__link:hover,.navbar__brand:hover,.navbar__link--active,.navbar__link:hover,.pagination-nav__link:hover,.pagination__link:hover,.tag_zVej:hover{-webkit-text-decoration:none;text-decoration:none}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child),.theme-doc-sidebar-container nav.menu{padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color)}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.ch-code-browser,.ch-terminal{font-family:Ubuntu,Droid Sans,-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,sans-serif}.apiItemContainer_gBt2 article>:first-child,.apiItemContainer_gBt2 header+*,.ch-scrollycoding-step-content>:first-child,.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item,.formItem_DtZA:first-child,.showMoreButton_Ry1D:first-child,.showMoreButton_SWLU:first-child{margin-top:0}.admonitionContent_BuS1>:last-child,.ch-scrollycoding-step-content>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.tabItem_Ymn6>:last-child,.theme-api-markdown table :last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{opacity:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;top:0;left:0;bottom:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color)}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color)}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.ch-mini-browser,.navbar__logo img,body,html{height:100%}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.ch-terminal-content,.navbar__items--center .navbar__brand{margin:0}.ch-scrollycoding-with-preview .ch-scrollycoding-sticker .ch-codeblock,.ch-scrollycoding-with-preview .ch-scrollycoding-sticker .ch-codegroup,.ch-slideshow-range input,.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color)}.ch-code-inline-link,.ch-code-link :not(span)>span,.ch-section-link,.ch-section-link *,.footer-links a:hover{-webkit-text-decoration:underline;text-decoration:underline}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:1rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.floatingButton_tCt1:hover button,.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.ch-codeblock,.ch-codegroup,.ch-preview,.ch-simple-frame{box-shadow:0 13px 27px -5px #32325d40,0 8px 16px -8px #0000004d,0 -6px 16px -6px rgba(0,0,0,.025)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover)}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.ch-no-scroll,.ch-terminal{overflow:hidden}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497;--openapi-code-dim:var(--openapi-code-dim-dark);--openapi-code-red:var(--openapi-code-red-dark);--openapi-code-orange:var(--openapi-code-orange-dark);--openapi-code-green:var(--openapi-code-green-dark);--openapi-code-blue:var(--openapi-code-blue-dark);--openapi-code-purple:var(--openapi-code-purple-dark);--openapi-monaco-background-color:var(--openapi-monaco-background-color-dark);--openapi-monaco-border-color:#606770;--openapi-card-background-color:var(--ifm-card-background-color);--openapi-input-background:#393939;--openapi-input-border:#fff;--openapi-button-dissabled:#525252;--openapi-dropzone-color:#ffffff4d;--openapi-dropzone-hover-shim:#393939cc;--openapi-inverse-color:var(--ifm-color-gray-900)}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-background-color:var(--token-primary-bg-c);--ifm-color-primary:#ec4699;--ifm-navbar-link-hover-color:initial;--ifm-navbar-padding-vertical:0;--ifm-navbar-item-padding-vertical:0;--ifm-font-family-base:Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI emoji";--ifm-font-family-monospace:"SFMono-Regular","Roboto Mono",Consolas,"Liberation Mono",Menlo,Courier,monospace;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.ch-terminal{background:#1e1e1e;color:#fafafa;font-size:14px;height:100%;padding:0 8px 8px}.ch-terminal-container .ch-frame-content{background-color:inherit}.ch-terminal-prompt{color:#8fa2db;-webkit-user-select:none;user-select:none}.ch-terminal-output{opacity:.66}.ch-code-line-number{color:var(--ch-t-editorLineNumber-foreground);display:inline-block;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-right:1.5ch;text-align:right;-webkit-user-select:none;user-select:none}.ch-code-scroll-parent{background-color:unset;border:none;border-radius:0;box-sizing:initial;color:unset;display:block;font-size:14px;font-weight:400;letter-spacing:0;line-height:19px;padding:0}.ch-code-button,.ch-expand-close{background-image:none;font-size:inherit;padding:0;top:10px;-webkit-appearance:button;right:10px;margin:0;cursor:pointer}.ch-code-scroll-parent ::selection{background-color:var(--ch-t-editor-selectionBackground);color:inherit}.ch-code-button{background-color:initial;border:none;color:inherit;height:1.1em;position:absolute;width:1.1em}.ch-code-button:focus-visible{outline-color:currentColor}.ch-code-wrapper{background-color:var(--ch-t-background);box-sizing:initial;color:var(--ch-t-foreground);color-scheme:var(--ch-t-colorScheme);margin:0;padding:0;position:relative;white-space:pre}.DocSearch-Container,.DocSearch-Container *,.ch-editor-tab,.ch-editor-terminal,.ch-frame-button,.ch-scrollycoding-content{box-sizing:border-box}.ch-code-wrapper[data-ch-measured=false]{overflow:auto}.ch-code-wrapper[data-ch-measured=false]>*{opacity:0}.ch-expand-dialog{background-color:initial;border:0;height:100vh;max-width:900px;width:100vw}.ch-expand-dialog::backdrop{background-color:#000c}.ch-expand-close{background-color:initial;border:none;color:#fff;height:26px;position:absolute;width:26px}.ch-expand-close:focus-visible{outline-color:currentColor}.ch-expand-dialog-content{border:1px solid;border-color:var(--ch-t-sideBar-border);border-radius:8px;color:#fff;inset:40px;overflow:hidden;position:absolute}.ch-code-browser{color:var(--ch-t-editor-foreground);display:flex;height:100%}.ch-code-browser-sidebar{background:var(--ch-t-sideBar-background);border-bottom-color:var(--ch-t-sideBar-border);border-left-color:var(--ch-t-sideBar-border);border-right:1px solid;border-right-color:var(--ch-t-sideBar-border);border-top-color:var(--ch-t-sideBar-border);color:var(--ch-t-sideBar-foreground);font-size:.95rem;min-width:100px;padding:1em 0}.ch-code-browser-content{background:var(--ch-t-background);color:var(--ch-t-foreground);color-scheme:var(--ch-t-colorScheme);flex:1;font-family:monospace;font-size:1rem;font-weight:400;letter-spacing:0;line-height:1.2rem;overflow:auto;padding:1em;position:relative;white-space:pre}.ch-editor-frame,.ch-frame,.ch-simple-frame{break-inside:avoid;font-family:Ubuntu,Droid Sans,-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,sans-serif;page-break-inside:avoid;--ch-title-bar-height:30px}.ch-code-browser-content ::selection{background-color:var(--ch-t-editor-selectionBackground);color:inherit}.ch-code-browser-sidebar-file,.ch-code-browser-sidebar-folder{padding:.1em 1em}.ch-code-browser-sidebar-file,.dropdownNavbarItemMobile_J0Sd{cursor:pointer}.ch-code-browser-sidebar-file[data-selected=true]{background:var(--ch-t-list-activeSelectionBackground);color:var(--ch-t-list-activeSelectionForeground)}.ch-code-browser-sidebar-file:hover{background-color:var(--ch-t-list-hoverBackground);color:var(--ch-t-list-hoverForeground)}.ch-code-browser-button{-webkit-appearance:button;background-color:initial;background-image:none;border:none;color:inherit;cursor:pointer;font-size:inherit;height:1.5em;margin:0;min-height:1.5em;min-width:1.5em;padding:0;position:absolute;right:.8em;top:.8em;width:1.5em}.ch-code-browser-button:focus-visible{outline-color:currentColor}.ch-editor-tab{background:var(--ch-t-tab-inactiveBackground);border-bottom:1px solid;border-bottom-color:var(--ch-t-tab-inactiveBackground);border-right:1px solid #252526;border-right-color:var(--ch-t-tab-border);color:var(--ch-t-tab-inactiveForeground);cursor:pointer;display:flex;flex-shrink:1;height:100%;min-width:0;padding-left:15px;padding-right:15px;position:relative;white-space:nowrap}.ch-editor-tab[data-active=true]{background:var(--ch-t-tab-activeBackground);border-bottom-color:var(--ch-t-tab-activeBorder);color:var(--ch-t-tab-activeForeground);min-width:unset}.ch-editor-tab>div{font-size:12px;line-height:1.4em;margin-bottom:auto;margin-top:auto;overflow:hidden;text-overflow:ellipsis}.ch-editor-group-border{background:var(--ch-t-editorGroup-border);height:1px;position:absolute;top:0;width:100%;z-index:1}.ch-editor-frame{display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--ch-t-editor-background);height:100%}.ch-editor-frame .ch-frame-title-bar{background:none;background:var(--ch-t-editorGroupHeader-tabsBackground);color:var(--ch-t-icon-foreground)}.ch-editor-terminal{background-color:#1e1e1e;border-top:1px solid #80808059;bottom:0;color:#e7e7e7;overflow:hidden;padding:0 8px;position:absolute;width:100%}.ch-editor-terminal-tab{display:flex;font-size:11px;line-height:24px;padding:4px 10px 3px}.ch-editor-terminal-tab>span{border-bottom:1px solid #e7e7e7}.ch-editor-terminal-content{box-sizing:border-box;height:calc(100% - 40px);margin-top:8px}.ch-editor-terminal-content .ch-terminal{font-size:12px;margin:0}.ch-editor-button{-webkit-appearance:button;background-color:initial;background-image:none;border:none;color:inherit;cursor:pointer;font-size:inherit;height:1.5em;margin:0 .8em 0 0;min-height:1.5em;min-width:1.5em;padding:0;width:1.5em}.ch-editor-button:focus-visible{outline-color:currentColor}.ch-frame,.theme-doc-sidebar-menu{display:flex;flex-direction:column;height:100%}.ch-simple-frame{border-radius:6px;overflow:hidden}.ch-frame-content{background-color:var(--ch-content-background,#fafafa);flex-basis:0;flex-grow:1;flex-shrink:1;min-height:0}.ch-frame-zoom{--ch-frame-zoom:1;height:calc(100%/var(--ch-frame-zoom));overflow:auto;position:relative;transform:scale(var(--ch-frame-zoom));transform-origin:left top;width:calc(100%/var(--ch-frame-zoom))}.ch-frame-title-bar{align-items:center;background-color:var(--ch-content-background,#252526);color:#ebebed;display:flex;flex-grow:0;flex-shrink:0;font-size:12px;height:var(--ch-title-bar-height);min-height:var(--ch-title-bar-height);position:relative;width:100%}.ch-frame-middle-bar{font-size:1.2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ch-frame-left-bar,.ch-frame-right-bar{align-items:center;display:flex;flex-basis:1em;flex-grow:1;height:100%;width:max-content}.ch-frame-buttons{display:flex;flex-shrink:0;height:1em;margin:0 .8em;width:4.16em}.ch-frame-button{border:.08em solid;border-radius:50%;display:inline-block;height:1em;width:1em}.ch-frame-button-space{width:.56em}.ch-frame-button-left{background-color:#ed6b60;border-color:#ce5347}.ch-frame-button-middle{background-color:#f5be4f;border-color:#d6a243}.ch-frame-button-right{background-color:#62c554;border-color:#58a942}.ch-mini-browser .ch-frame-content iframe,.ch-mini-browser .ch-frame-content video{border:none;height:100%;position:absolute;width:100%}.ch-mini-browser .ch-frame-title-bar input{background:var(--ch-t-input-background);border:1px solid var(--ch-t-input-border);border-radius:.5em;box-shadow:none;color:#544;color:var(--ch-t-input-foreground);flex:1;font-size:1em;height:1.4em;min-width:5px;padding:0 10px;width:5px}.buttonGroup_geD8 button.selected_F9cJ,.buttonGroup_geD8 button:hover{background:var(--ifm-menu-color-background-active)}.ch-browser-button{color:#999;margin:0 1em}.ch-browser-back-button{margin-left:.2em}.ch-browser-forward-button{margin-left:0}.ch-browser-open-button{color:var(--ch-t-icon-foreground)}.ch-browser-open-icon,.ch-code-label-annotation:hover .ch-code-label-annotation-text,.tocCollapsibleContent_vkbj a{display:block}.ch-spotlight{display:flex;gap:1.1rem;margin:1rem 0}.ch-spotlight-tabs{align-items:stretch;display:flex;flex:1;flex-flow:column;gap:.5rem}.ch-spotlight-tab{border:1px solid #e3e3e3;border-radius:.25rem;margin:0 -.5rem;padding:0 .5rem}.ch-spotlight-tab:hover{border-color:#222}.ch-scrollycoding-step-content[data-selected],.ch-spotlight-tab[data-selected]{border-color:#0070f3}.ch-spotlight-sticker{align-self:stretch;display:flex;flex-flow:column;justify-content:center;max-height:80vh;min-height:min(100%,80vh);position:sticky;top:10vh;width:420px}.ch-spotlight-sticker .ch-codeblock,.ch-spotlight-sticker .ch-codegroup{flex:1;margin-bottom:0;margin-top:0;max-height:80vh;min-height:min(100%,80vh);min-width:100%;width:100%}.ch-scrollycoding-with-preview .ch-scrollycoding-sticker,.ch-spotlight-with-preview .ch-spotlight-sticker{gap:.5rem;height:80vh}.ch-spotlight-with-preview .ch-spotlight-sticker .ch-codeblock,.ch-spotlight-with-preview .ch-spotlight-sticker .ch-codegroup{flex:1;min-height:0}.ch-scrollycoding-with-preview .ch-scrollycoding-preview,.ch-spotlight-with-preview .ch-spotlight-preview{height:280px}.ch-scrollycoding{display:flex;gap:1rem;margin:1rem 0;position:relative}.ch-scrollycoding-content{flex:1}.ch-scrollycoding-step-content{border:1.5px solid #0000;border-radius:8px;margin:0 -.5rem;padding:1rem .5rem}.ch-scrollycoding-sticker{align-self:start;display:flex;flex-flow:column;justify-content:center;max-height:80vh;position:sticky;top:10vh;width:var(--ch-scrollycoding-sticker-width,420px)}.ch-scrollycoding-sticker .ch-codeblock,.ch-scrollycoding-sticker .ch-codegroup{margin-bottom:0;margin-top:0;max-height:80vh;min-height:var(--ch-scrollycoding-code-min-height,200px);min-width:100%;width:100%}.ch-scrollycoding-static .ch-preview{height:150px}.ch-slideshow{margin:1rem 0}.ch-slideshow-slide{align-items:stretch;aspect-ratio:16/9;display:flex;flex-flow:row;gap:.5rem}.ch-slideshow-slide .ch-codeblock,.ch-slideshow-slide .ch-codegroup{flex:2;height:auto;margin-bottom:0;margin-top:0}.ch-slideshow .ch-slideshow-preview{flex:1;height:auto;min-width:0}.ch-slideshow-range{display:flex;flex-flow:row;gap:.5rem}.ch-slideshow-notes{border:1px solid #e3e3e3;border-radius:.25rem;margin-top:1rem;padding:1rem}.ch-slideshow-note{max-height:140px;min-height:140px;overflow:auto;padding:.05px}.ch-codeblock,.ch-codegroup,.ch-preview{border-radius:6px;height:max-content;overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}.ch-codeblock>*,.ch-codegroup>*,.ch-preview>*{height:100%;max-height:inherit;min-height:inherit}.ch-codeblock,.ch-codegroup{margin-bottom:1.25em;margin-top:1.25em}.ch-inline-code>code{background:var(--ch-t-lighter-inlineBackground);border-radius:.25em;color:var(--ch-t-foreground);font-size:.9rem;margin:.1em -.05em;padding:.2em .15em}.ch-inline-code .ch-section-link,.ch-inline-code .ch-section-link *{text-decoration-color:var(--ch-t-foreground)}.ch-section-link,.ch-section-link *{text-decoration-color:initial;text-decoration-style:dotted;text-decoration-thickness:1px}.ch-section-link[data-active=true]{background-color:#bae6fd66}.ch-section-link[data-active=true],.ch-section-link[data-active=true] *{text-decoration-thickness:1.5px}.ch-code-inline-mark{border-radius:.25rem;margin:0 -.15rem;padding:.2rem .15rem .1rem}.ch-code-inline-mark,.ch-code-multiline-mark{background:var(--ch-t-editor-rangeHighlightBackground)}.ch-code-multiline-mark-border{background:var(--ch-t-editor-infoForeground);height:100%;left:0;position:absolute;width:3px}.ch-code-multiline-mark .ch-code-button{display:none;font-size:1.2em;position:absolute;right:10px;top:1px}.ch-code-inline-link,.ch-code-link :not(span)>span{color:inherit;text-decoration-style:dotted}.ch-code-box-annotation{outline:2px solid var(--ch-t-editor-infoForeground)}.ch-code-label-annotation:hover{background:var(--ch-t-editor-lineHighlightBackground)}.ch-code-label-annotation-text{display:none;opacity:.7;padding-right:16px;position:absolute;right:0}.docusaurus-highlight-code-line{background-color:#0000001a;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.diagonal-box{transform:skewY(-6deg)}.diagonal-content{transform:skewY(6deg)}[class^=announcementBar]{z-index:10}.showcase{background-color:#fff}.showcase-border{border-color:#f3f4f6}.sidebar-ad,.tocCollapsibleContent_vkbj>ul,[data-theme=light] .footer{border-top:1px solid var(--ifm-color-emphasis-300)}.text-description{color:#6b7280}#hero-apply{z-index:-1}.apply-form{background-image:linear-gradient(#fff,#f5f5fa);max-width:600px}.apply-text{color:#36395a}.hero-title{color:#1c1e21;font-family:var(--ifm-heading-font-family)}h1{font-size:26px}h2{font-size:22px}h3{font-size:18px}body{margin:0;font-size:16px}.docsearch-logo{color:#21243d}.footer-links a,.footer__copyright{color:var(--ifm-toc-link-color)}.apply-button:hover{color:#fff}.header-discord-link:hover,.header-github-link:hover,.header-twitter-link:hover{opacity:.6}.header-github-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNvbG9yPSIjMDAwIiBzdHlsZT0idXNlci1zZWxlY3Q6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZpbGw6IzAwMDtmbGV4LXNocmluazowIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMiAuM2ExMiAxMiAwIDAgMC0zLjggMjMuNGMuNi4xLjgtLjMuOC0uNnYtMmMtMy4zLjctNC0xLjYtNC0xLjYtLjYtMS40LTEuNC0xLjgtMS40LTEuOC0xLS43LjEtLjcuMS0uNyAxLjIgMCAxLjkgMS4yIDEuOSAxLjIgMSAxLjggMi44IDEuMyAzLjUgMSAwLS44LjQtMS4zLjctMS42LTIuNy0uMy01LjUtMS4zLTUuNS02IDAtMS4yLjUtMi4zIDEuMy0zLjEtLjItLjQtLjYtMS42IDAtMy4yIDAgMCAxLS4zIDMuNCAxLjJhMTEuNSAxMS41IDAgMCAxIDYgMGMyLjMtMS41IDMuMy0xLjIgMy4zLTEuMi42IDEuNi4yIDIuOCAwIDMuMi45LjggMS4zIDEuOSAxLjMgMy4yIDAgNC42LTIuOCA1LjYtNS41IDUuOS41LjQuOSAxIC45IDIuMnYzLjNjMCAuMy4xLjcuOC42QTEyIDEyIDAgMCAwIDEyIC4zIi8+PC9zdmc+) no-repeat;content:"";display:flex;height:24px;width:24px}[data-theme=dark] .header-github-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNvbG9yPSIjMDAwIiBzdHlsZT0idXNlci1zZWxlY3Q6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZpbGw6I2ZmZjtmbGV4LXNocmluazowIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMiAuM2ExMiAxMiAwIDAgMC0zLjggMjMuNGMuNi4xLjgtLjMuOC0uNnYtMmMtMy4zLjctNC0xLjYtNC0xLjYtLjYtMS40LTEuNC0xLjgtMS40LTEuOC0xLS43LjEtLjcuMS0uNyAxLjIgMCAxLjkgMS4yIDEuOSAxLjIgMSAxLjggMi44IDEuMyAzLjUgMSAwLS44LjQtMS4zLjctMS42LTIuNy0uMy01LjUtMS4zLTUuNS02IDAtMS4yLjUtMi4zIDEuMy0zLjEtLjItLjQtLjYtMS42IDAtMy4yIDAgMCAxLS4zIDMuNCAxLjJhMTEuNSAxMS41IDAgMCAxIDYgMGMyLjMtMS41IDMuMy0xLjIgMy4zLTEuMi42IDEuNi4yIDIuOCAwIDMuMi45LjggMS4zIDEuOSAxLjMgMy4yIDAgNC42LTIuOCA1LjYtNS41IDUuOS41LjQuOSAxIC45IDIuMnYzLjNjMCAuMy4xLjcuOC42QTEyIDEyIDAgMCAwIDEyIC4zIi8+PC9zdmc+) no-repeat;content:"";display:flex;height:24px;width:24px}.header-twitter-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwLjI1MSI+PHBhdGggZD0iTTE3OC41NyAxMjcuMTUgMjkwLjI3IDBoLTI2LjQ2bC05Ny4wMyAxMTAuMzhMODkuMzQgMEgwbDExNy4xMyAxNjYuOTNMMCAzMDAuMjVoMjYuNDZsMTAyLjQtMTE2LjU5IDgxLjggMTE2LjU5SDMwME0zNi4wMSAxOS41NGg0MC42NWwxODcuMTMgMjYyLjEzaC00MC42NiIvPjwvc3ZnPg==) 0 0/contain;content:"";display:flex;height:24px;width:24px}[data-theme=dark] .header-twitter-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwLjI1MSIgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTE3OC41NyAxMjcuMTUgMjkwLjI3IDBoLTI2LjQ2bC05Ny4wMyAxMTAuMzhMODkuMzQgMEgwbDExNy4xMyAxNjYuOTNMMCAzMDAuMjVoMjYuNDZsMTAyLjQtMTE2LjU5IDgxLjggMTE2LjU5SDMwME0zNi4wMSAxOS41NGg0MC42NWwxODcuMTMgMjYyLjEzaC00MC42NiIvPjwvc3ZnPg==) 0 0/contain;content:"";display:flex;height:24px;width:24px}.header-discord-link{margin-right:.5rem}[data-theme=dark] .header-discord-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MDAiIGhlaWdodD0iODAwIiBmaWxsPSIjZmZmIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIgdmlld0JveD0iMCAtMjguNSAyNTYgMjU2Ij48cGF0aCBkPSJNMjE2Ljg1NiAxNi41OTdBMjA4LjUgMjA4LjUgMCAwIDAgMTY0LjA0MiAwYy0yLjI3NSA0LjExMy00LjkzMyA5LjY0NS02Ljc2NiAxNC4wNDZxLTI5LjUzOC00LjQ0Mi01OC41MzMgMGMtMS44MzItNC40LTQuNTUtOS45MzMtNi44NDYtMTQuMDQ2YTIwNy44IDIwNy44IDAgMCAwLTUyLjg1NSAxNi42MzhDNS42MTggNjcuMTQ3LTMuNDQzIDExNi40IDEuMDg3IDE2NC45NTZjMjIuMTY5IDE2LjU1NSA0My42NTMgMjYuNjEyIDY0Ljc3NSAzMy4xOTNBMTYxIDE2MSAwIDAgMCA3OS43MzUgMTc1LjNhMTM2LjQgMTM2LjQgMCAwIDEtMjEuODQ2LTEwLjYzMiAxMDkgMTA5IDAgMCAwIDUuMzU2LTQuMjM3YzQyLjEyMiAxOS43MDIgODcuODkgMTkuNzAyIDEyOS41MSAwYTEzMiAxMzIgMCAwIDAgNS4zNTUgNC4yMzcgMTM2IDEzNiAwIDAgMS0yMS44ODYgMTAuNjUzYzQuMDA2IDguMDIgOC42MzggMTUuNjcgMTMuODczIDIyLjg0OCAyMS4xNDItNi41OCA0Mi42NDYtMTYuNjM3IDY0LjgxNS0zMy4yMTMgNS4zMTYtNTYuMjg4LTkuMDgtMTA1LjA5LTM4LjA1Ni0xNDguMzZNODUuNDc0IDEzNS4wOTVjLTEyLjY0NSAwLTIzLjAxNS0xMS44MDUtMjMuMDE1LTI2LjE4czEwLjE0OS0yNi4yIDIzLjAxNS0yNi4yIDIzLjIzNiAxMS44MDQgMjMuMDE1IDI2LjJjLjAyIDE0LjM3NS0xMC4xNDggMjYuMTgtMjMuMDE1IDI2LjE4bTg1LjA1MSAwYy0xMi42NDUgMC0yMy4wMTQtMTEuODA1LTIzLjAxNC0yNi4xOHMxMC4xNDgtMjYuMiAyMy4wMTQtMjYuMmMxMi44NjcgMCAyMy4yMzYgMTEuODA0IDIzLjAxNSAyNi4yIDAgMTQuMzc1LTEwLjE0OCAyNi4xOC0yMy4wMTUgMjYuMTgiLz48L3N2Zz4=) 0 0/contain;content:"";display:flex;height:24px;width:24px}.header-discord-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MDAiIGhlaWdodD0iODAwIiBmaWxsPSIjZmZmIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIgdmlld0JveD0iMCAtMjguNSAyNTYgMjU2Ij48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMjE2Ljg1NiAxNi41OTdBMjA4LjUgMjA4LjUgMCAwIDAgMTY0LjA0MiAwYy0yLjI3NSA0LjExMy00LjkzMyA5LjY0NS02Ljc2NiAxNC4wNDZxLTI5LjUzOC00LjQ0Mi01OC41MzMgMGMtMS44MzItNC40LTQuNTUtOS45MzMtNi44NDYtMTQuMDQ2YTIwNy44IDIwNy44IDAgMCAwLTUyLjg1NSAxNi42MzhDNS42MTggNjcuMTQ3LTMuNDQzIDExNi40IDEuMDg3IDE2NC45NTZjMjIuMTY5IDE2LjU1NSA0My42NTMgMjYuNjEyIDY0Ljc3NSAzMy4xOTNBMTYxIDE2MSAwIDAgMCA3OS43MzUgMTc1LjNhMTM2LjQgMTM2LjQgMCAwIDEtMjEuODQ2LTEwLjYzMiAxMDkgMTA5IDAgMCAwIDUuMzU2LTQuMjM3YzQyLjEyMiAxOS43MDIgODcuODkgMTkuNzAyIDEyOS41MSAwYTEzMiAxMzIgMCAwIDAgNS4zNTUgNC4yMzcgMTM2IDEzNiAwIDAgMS0yMS44ODYgMTAuNjUzYzQuMDA2IDguMDIgOC42MzggMTUuNjcgMTMuODczIDIyLjg0OCAyMS4xNDItNi41OCA0Mi42NDYtMTYuNjM3IDY0LjgxNS0zMy4yMTMgNS4zMTYtNTYuMjg4LTkuMDgtMTA1LjA5LTM4LjA1Ni0xNDguMzZNODUuNDc0IDEzNS4wOTVjLTEyLjY0NSAwLTIzLjAxNS0xMS44MDUtMjMuMDE1LTI2LjE4czEwLjE0OS0yNi4yIDIzLjAxNS0yNi4yIDIzLjIzNiAxMS44MDQgMjMuMDE1IDI2LjJjLjAyIDE0LjM3NS0xMC4xNDggMjYuMTgtMjMuMDE1IDI2LjE4bTg1LjA1MSAwYy0xMi42NDUgMC0yMy4wMTQtMTEuODA1LTIzLjAxNC0yNi4xOHMxMC4xNDgtMjYuMiAyMy4wMTQtMjYuMmMxMi44NjcgMCAyMy4yMzYgMTEuODA0IDIzLjAxNSAyNi4yIDAgMTQuMzc1LTEwLjE0OCAyNi4xOC0yMy4wMTUgMjYuMTgiLz48L3N2Zz4=) 0 0/contain;content:"";display:flex;height:24px;width:24px}.image-rendering-crisp{image-rendering:crisp-edges;image-rendering:-webkit-optimize-contrast}.image-rendering-pixel{image-rendering:pixelated}.img-center{display:flex;justify-content:center;width:100%}.markdown img{display:block;height:auto;margin:1rem auto;max-height:600px;object-fit:contain}.markdown img:not(.resized-image){max-width:600px;width:auto}.resized-image{max-height:500px;width:300px}.ch-scrollycoding-content{max-width:55%!important;min-width:40%!important}.ch-scrollycoding-sticker{max-width:60%!important;min-width:45%!important}.ch-scrollycoding-step-content{min-height:70px}.theme-doc-sidebar-item-category.theme-doc-sidebar-item-category-level-2.menu__list-item:not(:first-child){margin-top:.15rem!important}.footer{background-color:var(--ifm-navbar-background-color);padding:8px 0}.footer-content{align-items:center;display:flex;font-size:12px;justify-content:space-between;margin:0 auto;max-width:var(--ifm-container-width);padding:0 var(--ifm-navbar-padding-horizontal)}.footer-links{display:flex;font-size:13px;gap:.5rem}.footer .container{align-items:center;display:flex;flex-direction:row-reverse;justify-content:space-between;padding:0 5rem}.theme-doc-sidebar-menu>:nth-last-child(2){margin-bottom:auto}.sidebar-ad{border-radius:0;bottom:0;margin-left:-.5rem;margin-right:-.5rem;margin-top:1rem;position:sticky}[data-theme=dark] .sidebar-ad{background-color:var(--ifm-background-color)}[data-theme=light] .sidebar-ad{background-color:var(--ifm-color-white)}.sidebar-ad a{align-items:center;display:flex;gap:1rem;justify-content:center;padding-bottom:.75rem;padding-top:.75rem}.sidebar-ad-text-container{display:flex;flex-direction:column;gap:.5rem}.sidebar-ad-text{font-family:Sora,serif;font-size:.875rem}.sidebar-ad-text-gradient{-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(to right,#a855f7,var(--ifm-color-primary));color:#0000}.markdown details{background:var(--ifm-background-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);margin-bottom:1rem;width:100%}.markdown details summary{align-items:center;cursor:pointer;display:flex;gap:.5em;list-style:none;outline:0}.markdown details summary:focus-visible{outline:2px solid var(--ifm-color-primary,#a855f7);outline-offset:2px}.markdown details [class^=collapsibleContent]{border-top:none!important;padding:0}.notion-column{display:flex;flex-direction:column;padding-bottom:12px;padding-top:12px}.notion-column>:first-child{margin-left:0;margin-right:0;margin-top:0}.notion-column>:last-child{margin-bottom:0;margin-left:0;margin-right:0}.notion-row{display:flex;max-width:100%;overflow:hidden;width:100%}.notion-spacer{width:calc(min(32px,4vw))}.notion-spacer:last-child,.optionsPanel_c56F:empty,.optionsPanel_kER9:empty{display:none}.gif_player{display:inline-block;position:relative;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.buttonGroup_geD8 button,.showMoreButton_Ry1D{cursor:pointer;-webkit-user-select:none;white-space:nowrap}.gif_player .play_button{background-color:#00000080;border:2px dashed #fff;border-radius:50%;box-shadow:0 0 0 3px #00000080;color:#fff;cursor:pointer;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:24px;left:50%;opacity:1;padding:14px 10px;position:absolute;top:50%;transform:translate(-50%,-50%) scale(1) rotate(0);transition:transform .4s,opacity .4s}.gif_player .play_button:hover{background-color:#000000b3;box-shadow:0 0 0 3px #000000b3}.gif_player .play_button:after{content:"GIF"}.gif_player.playing .play_button{opacity:.5;transform:translate(-50%,-50%) scale(0) rotate(180deg)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.floatingButton_tCt1{position:relative}.floatingButton_tCt1 button{background:#191a1be6;border:none;border-radius:var(--ifm-global-radius);color:var(--ifm-color-white);cursor:pointer;opacity:0;outline:0;padding:.4rem .5rem;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,bottom .2s ease-in-out;visibility:hidden}.buttonGroup_geD8{background:var(--openapi-card-background-color);border-radius:var(--openapi-card-border-radius) var(--openapi-card-border-radius) 2px 2px;color:var(--ifm-pre-color);display:flex;flex-wrap:wrap;font-family:var(--ifm-font-family-monospace);justify-content:center;margin-bottom:1px;margin-top:0}.buttonGroup_geD8 button{appearance:none;background:#0000;border:0 solid #0000;color:var(--ifm-menu-color);font-size:13.3333px;font-weight:var(--ifm-font-weight-semibold);line-height:var(--ifm-pre-line-height);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition:color var(--ifm-button-transition-duration) cubic-bezier(.08,.52,.52,1),background var(--ifm-button-transition-duration) cubic-bezier(.08,.52,.52,1),border-color var(--ifm-button-transition-duration) cubic-bezier(.08,.52,.52,1);user-select:none;--margin:0.25rem;border-radius:calc(var(--margin));display:block;margin:var(--margin);margin-right:0}.buttonGroup_geD8 button:last-child{margin-right:.25rem}.buttonDelete_vG3A:focus,.buttonGroup_geD8 button:focus,.buttonThin_a10m:focus,.showMoreButton_Ry1D:focus,.showMoreButton_SWLU:focus,body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.buttonGroup_geD8 button.selected_F9cJ{color:var(--ifm-menu-color-active)}.selectInput_vS5v,html[data-theme=dark] .selectInput_vS5v{background-position:right var(--ifm-pre-padding) top 50%;background-repeat:no-repeat;background-size:initial;appearance:none}.formItem_DtZA{margin-top:var(--ifm-pre-padding)}.inputBase_mKhX,.inputBase_qv87,.inputBase_yXPZ,html[data-theme=dark] .selectInput_vS5v{background-color:var(--openapi-input-background);margin-top:calc(var(--ifm-pre-padding)/2);color:var(--ifm-pre-color);font-size:var(--ifm-code-font-size);width:100%;outline:0}.inputBase_qv87{padding:12px 48px 12px var(--ifm-pre-padding)}.inputBase_qv87,html[data-theme=dark] .selectInput_vS5v{border:none;border-radius:4px}html[data-theme=dark] .selectInput_vS5v{background-image:url('data:image/svg+xml;charset=US-ASCII,')}html[data-theme=light] .input_ygXe,html[data-theme=light] .selectInput_vS5v,html[data-theme=light] .selectInput_ya64{border-color:var(--ifm-color-primary-lightest);border-style:solid;border-width:1px}.selectInput_vS5v{background-image:url('data:image/svg+xml;charset=US-ASCII,')}.buttonDelete_vG3A:active,.input_TTw5:focus,.input_ygXe:focus,.selectInput_vS5v:focus{box-shadow:inset 0 0 0 2px var(--openapi-input-border)}.inputBase_mKhX,.inputBase_yXPZ{border:none;border-radius:4px;padding:12px var(--ifm-pre-padding)}.optionsPanel_c56F,.optionsPanel_kER9{background:var(--openapi-card-background-color);border-radius:var(--openapi-card-border-radius);color:var(--ifm-pre-color);line-height:var(--ifm-pre-line-height);margin-bottom:var(--ifm-spacing-vertical);margin-top:0;overflow:auto;padding:var(--ifm-pre-padding);position:relative}.dropzone_dwtv{border:2px dashed var(--openapi-monaco-border-color)}.dropzoneHover_X65A,.dropzone_dwtv{align-items:center;background-color:var(--openapi-input-background);border-radius:4px;cursor:pointer;display:inline-flex;font-size:var(--ifm-code-font-size);justify-content:center;padding:var(--ifm-pre-padding);width:100%}.dropzoneHover_X65A,.dropzone_dwtv:hover{background:linear-gradient(var(--openapi-dropzone-hover-shim),var(--openapi-dropzone-hover-shim)),linear-gradient(var(--ifm-color-primary),var(--ifm-color-primary));border:2px dashed var(--ifm-color-primary)}.dropzoneContent_QObU{align-items:center;color:var(--openapi-dropzone-color);display:flex;flex-wrap:wrap;justify-content:center;margin:var(--ifm-pre-padding) 0}.dropzone_dwtv:hover .dropzoneContent_QObU,.inputBase_pxKA{color:var(--ifm-pre-color)}.dropzoneHover_X65A .dropzoneContent_QObU{align-items:center;color:var(--ifm-pre-color);display:flex;flex-wrap:wrap;justify-content:center;margin:var(--ifm-pre-padding) 0}.filename_zGyv{flex:1;margin:0 calc(var(--ifm-pre-padding)*1.5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inputBase_pxKA,.monacoBase_T17Z{margin-top:calc(var(--ifm-pre-padding)/2)}.monacoBase_T17Z{background-color:var(--openapi-monaco-background-color);border-radius:4px;padding:var(--ifm-pre-padding)}.monaco_Jeel{border:2px solid #0000;box-shadow:0 0 0 1px var(--openapi-monaco-border-color)}.monacoFocus_W372,.selectInput_ya64:focus{border:2px solid var(--openapi-input-border)}.inputBase_pxKA{background-color:var(--openapi-input-background);border:2px solid #0000;border-radius:4px;font-size:var(--ifm-code-font-size);outline:0;padding:12px var(--ifm-pre-padding);width:100%}.selectInput_ya64{appearance:none}.selectInput_ya64 option{border-radius:.25rem;color:var(--ifm-menu-color);margin:.25rem 0;padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.plus_XYuX{display:inline-block;margin-right:6px;transform:rotate(0);transform-origin:center;transition:transform .2s}.plusExpanded_wYkc{transform:rotate(45deg)}.showMoreButton_Ry1D{appearance:none;background-color:initial;border:0 solid #0000;color:var(--ifm-color-primary);display:block;font-size:var(--ifm-code-font-size);margin-bottom:0;margin-top:var(--ifm-pre-padding);padding:0;text-align:left;user-select:none;width:100%}.buttonDelete_vG3A,.buttonThin_a10m{cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:400;line-height:1.5;margin-top:calc(var(--ifm-pre-padding)/2);transition-duration:.1s,.1s,.1s,var(--ifm-button-transition-duration);transition-property:color,background,border-color,box-shadow;transition-timing-function:cubic-bezier(.08,.52,.52,1);-webkit-user-select:none}.showMoreButton_Ry1D:hover,.showMoreButton_SWLU:hover{color:var(--ifm-color-primary-hover)}.buttonDelete_vG3A{align-items:center;appearance:none;background-color:var(--openapi-input-background);border:none;border-radius:4px;color:var(--ifm-pre-color);display:flex;justify-content:center;margin-left:4px;outline:0;padding:0 12px;user-select:none;white-space:nowrap}.buttonThin_a10m,.showMoreButton_SWLU{background-color:initial;appearance:none;white-space:nowrap}.buttonThin_a10m{border:1px solid var(--openapi-input-border);border-radius:var(--ifm-pre-border-radius);color:var(--openapi-input-border);display:block;margin-bottom:var(--ifm-pre-padding);padding:3px 60px 3px 12px;user-select:none}.DocSearch-Button,.showMoreButton_SWLU{-webkit-user-select:none;cursor:pointer}.buttonThin_a10m:hover{background-color:var(--openapi-input-border);color:var(--openapi-inverse-color)}.buttonThin_a10m:active{box-shadow:inset 0 0 0 1px var(--openapi-input-border),inset 0 0 0 2px var(--openapi-inverse-color)}.showOptions_Ln5O{margin-top:var(--ifm-pre-padding);visibility:visible}.hideOptions_Eruu{display:none;visibility:hidden}.showMoreButton_SWLU{border:0 solid #0000;color:var(--ifm-color-primary);display:block;font-size:var(--ifm-code-font-size);margin-bottom:0;margin-top:var(--ifm-pre-padding);padding:0;text-align:left;user-select:none}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.tableOfContentsInline_prmo ul{font-size:medium;list-style-type:disc;padding-top:0}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);display:flex;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;transition-duration:.1s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Hit[aria-selected=true] mark,.DocSearch-Prefill:focus,.DocSearch-Prefill:hover,.content_knG7 a{-webkit-text-decoration:underline;text-decoration:underline}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards a;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a,.api-wrapper{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative;scroll-margin-top:40px}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc,.themedComponent_mlkZ,.toggleIcon_g3eP,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j,svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Container,.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1)}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@keyframes a{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}[data-theme-choice=dark] .darkToggleIcon_wfgR,[data-theme-choice=light] .lightToggleIcon_pyhR,[data-theme-choice=system] .systemToggleIcon_QzmC,[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.iconExternalLink_nPIU{margin-left:.3rem}.apiMainContainer_L2xG,.apiPage_KQrU,.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.navbar__items--right>:last-child{padding-right:0}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.buttonGroup_M5ko button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_Vdqa{opacity:1!important}.copyButtonIcons_IEyt{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_TrPX,.copyButtonSuccessIcon_cVMy{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_cVMy{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_Vdqa .copyButtonIcon_TrPX{opacity:0;transform:scale(.33)}.copyButtonCopied_Vdqa .copyButtonSuccessIcon_cVMy{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_b1P5{height:1.2rem;width:1.2rem}.buttonGroup_M5ko{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_M5ko button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup_M5ko button:focus-visible,.buttonGroup_M5ko button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_M5ko button{opacity:.4}.codeBlockContent_QJqH{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_OeMC{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlockTitle_OeMC+.codeBlockContent_QJqH .codeBlock_a8dz{border-top-left-radius:0;border-top-right-radius:0}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{color:var(--ifm-color-content-secondary);font-size:.8rem;--ifm-breadcrumb-separator-size-multiplier:1}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite b;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes b{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}:root{--docusaurus-announcement-bar-height:auto;--openapi-code-dim-dark:#7f7f7f;--openapi-code-red-dark:#fc929e;--openapi-code-orange-dark:#f8b886;--openapi-code-green-dark:#85d996;--openapi-code-blue-dark:#a4cdfe;--openapi-code-purple-dark:#d9a0f9;--openapi-monaco-background-color-dark:#18191a;--openapi-code-dim-light:#aaa;--openapi-code-red-light:#f44336;--openapi-code-orange-light:var(--ifm-code-color);--openapi-code-green-light:#388e3c;--openapi-code-blue-light:#1976d2;--openapi-code-purple-light:#ab47bc;--openapi-monaco-background-color-light:#fff;--openapi-code-dim:var(--openapi-code-dim-light);--openapi-code-red:var(--openapi-code-red-light);--openapi-code-orange:var(--openapi-code-orange-light);--openapi-code-green:var(--openapi-code-green-light);--openapi-code-blue:var(--openapi-code-blue-light);--openapi-code-purple:var(--openapi-code-purple-light);--openapi-monaco-background-color:var(--openapi-monaco-background-color-light);--openapi-monaco-border-color:#dadde1;--api-sidebar-width:300px;--api-sidebar-hidden-width:30px;--openapi-card-background-color:#f6f8fa;--openapi-card-border-radius:var(--ifm-pre-border-radius);--openapi-input-background:var(--ifm-code-background);--openapi-input-border:var(--ifm-color-primary);--openapi-button-dissabled:#c6c6c6;--openapi-dropzone-color:#00000080;--openapi-dropzone-hover-shim:#ebedf0cc;--openapi-inverse-color:var(--ifm-color-gray-100)}.apiSidebarContainer_Korj{display:none}.menu__list-item--deprecated>:not(.menu__link--active){opacity:.3;-webkit-text-decoration:line-through;text-decoration:line-through}.button.disabled,.button:disabled,.button[disabled]{opacity:.35}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}.lastUpdated_JAkA{text-align:right}.tocMobile_EiPU,.tocMobile_ITEo{display:none}.docItemCol_VOVn,.docItemCol_t_cT{max-width:75%!important}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,.expandSidebarButtonIcon_Z2po,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);-webkit-text-decoration:none!important;text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}.collapsedApiSidebar_Ic1j,.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.apiSidebarContainer_Korj,.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;will-change:width}[dir=rtl] .expandButtonIcon_i1dp,html[dir=rtl] .expandSidebarButtonIcon_Z2po{transform:rotate(180deg)}.docSidebarContainer_YfHR{width:var(--doc-sidebar-width)}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.apiMainContainer_L2xG{flex-grow:1;max-width:calc(100% - var(--api-sidebar-width))}.apiMainContainerEnhanced_KekW{max-width:calc(100% - var(--api-sidebar-hidden-width))}.apiSidebarContainer_Korj{width:var(--api-sidebar-width)}.apiSidebarContainerHidden_KLHn{cursor:pointer;width:var(--api-sidebar-hidden-width)}.collapsedApiSidebar_Ic1j{align-items:center;display:flex;justify-content:center;transition:background-color var(--ifm-transition-fast) ease}.collapsedApiSidebar_Ic1j:focus,.collapsedApiSidebar_Ic1j:hover{background-color:var(--ifm-color-emphasis-200)}html[data-theme=dark] .collapsedApiSidebar_Ic1j:focus,html[data-theme=dark] .collapsedApiSidebar_Ic1j:hover{background-color:var(--collapse-button-bg-color-dark)}.apiItemWrapperEnhanced_aX4w{max-width:calc(var(--ifm-container-width) + var(--api-sidebar-width))!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block;width:max-content}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.docItemContainer_F8PC{padding:0 .3rem}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.markdown img:not(.resized-image){max-height:500px;max-width:100%}.resized-image{max-height:400px;max-width:300px;width:100%}.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:767px){.mendable-search{width:200px}}@media (max-width:640px){.notion-row{flex-direction:column}.notion-row .notion-column{width:100%!important}.notion-row .notion-spacer{display:none}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (max-width:500px){.mendable-search{width:150px}}@media (max-width:380px){.mendable-search{width:140px}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media (prefers-reduced-motion){.DocSearch-Button-Key{transition:none}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}*,.ch-code-line-number,.ch-terminal{box-sizing:border-box}#hero,#hero-apply{background-image:linear-gradient(var(--ifm-footer-background-color),var(--ifm-navbar-background-color))}.markdown li,body{word-wrap:break-word}.gif_player img,.markdown img,img{max-width:100%}.gif_player,.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}:root,html[data-theme=dark]{--openapi-required:var(--openapi-code-red);--openapi-optional:var(--openapi-code-dim)}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm,.theme-doc-sidebar-item-category.menu__list-item:not(:first-child){margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol,ol ul,ul ol,ul ul{margin:0}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom);text-align:start}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_uzNF .wordWrapButtonIcon_b1P5{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.ch-editor-terminal-tab,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.DocSearch-Container a,.dropdown__link--active,.dropdown__link:hover,.footer-links a,.menu__link:hover,.navbar__brand:hover,.navbar__link--active,.navbar__link:hover,.pagination-nav__link:hover,.pagination__link:hover,.tag_zVej:hover{-webkit-text-decoration:none;text-decoration:none}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child),.theme-doc-sidebar-container nav.menu{padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color)}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.ch-code-browser,.ch-terminal{font-family:Ubuntu,Droid Sans,-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,sans-serif}.apiItemContainer_gBt2 article>:first-child,.apiItemContainer_gBt2 header+*,.ch-scrollycoding-step-content>:first-child,.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item,.formItem_DtZA:first-child,.showMoreButton_Ry1D:first-child,.showMoreButton_SWLU:first-child{margin-top:0}.admonitionContent_BuS1>:last-child,.ch-scrollycoding-step-content>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.tabItem_Ymn6>:last-child,.theme-api-markdown table :last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{opacity:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;top:0;left:0;bottom:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color)}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color)}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.ch-mini-browser,.navbar__logo img,body,html{height:100%}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.ch-terminal-content,.navbar__items--center .navbar__brand{margin:0}.ch-scrollycoding-with-preview .ch-scrollycoding-sticker .ch-codeblock,.ch-scrollycoding-with-preview .ch-scrollycoding-sticker .ch-codegroup,.ch-slideshow-range input,.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color)}.ch-code-inline-link,.ch-code-link :not(span)>span,.ch-section-link,.ch-section-link *,.footer-links a:hover{-webkit-text-decoration:underline;text-decoration:underline}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:1rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.floatingButton_tCt1:hover button,.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.ch-codeblock,.ch-codegroup,.ch-preview,.ch-simple-frame{box-shadow:0 13px 27px -5px #32325d40,0 8px 16px -8px #0000004d,0 -6px 16px -6px rgba(0,0,0,.025)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover)}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.ch-no-scroll,.ch-terminal{overflow:hidden}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497;--openapi-code-dim:var(--openapi-code-dim-dark);--openapi-code-red:var(--openapi-code-red-dark);--openapi-code-orange:var(--openapi-code-orange-dark);--openapi-code-green:var(--openapi-code-green-dark);--openapi-code-blue:var(--openapi-code-blue-dark);--openapi-code-purple:var(--openapi-code-purple-dark);--openapi-monaco-background-color:var(--openapi-monaco-background-color-dark);--openapi-monaco-border-color:#606770;--openapi-card-background-color:var(--ifm-card-background-color);--openapi-input-background:#393939;--openapi-input-border:#fff;--openapi-button-dissabled:#525252;--openapi-dropzone-color:#ffffff4d;--openapi-dropzone-hover-shim:#393939cc;--openapi-inverse-color:var(--ifm-color-gray-900)}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-background-color:var(--token-primary-bg-c);--ifm-color-primary:#ec4699;--ifm-navbar-link-hover-color:initial;--ifm-navbar-padding-vertical:0;--ifm-navbar-item-padding-vertical:0;--ifm-font-family-base:Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI emoji";--ifm-font-family-monospace:"SFMono-Regular","Roboto Mono",Consolas,"Liberation Mono",Menlo,Courier,monospace;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.ch-terminal{background:#1e1e1e;color:#fafafa;font-size:14px;height:100%;padding:0 8px 8px}.ch-terminal-container .ch-frame-content{background-color:inherit}.ch-terminal-prompt{color:#8fa2db;-webkit-user-select:none;user-select:none}.ch-terminal-output{opacity:.66}.ch-code-line-number{color:var(--ch-t-editorLineNumber-foreground);display:inline-block;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-right:1.5ch;text-align:right;-webkit-user-select:none;user-select:none}.ch-code-scroll-parent{background-color:unset;border:none;border-radius:0;box-sizing:initial;color:unset;display:block;font-size:14px;font-weight:400;letter-spacing:0;line-height:19px;padding:0}.ch-code-button,.ch-expand-close{background-image:none;font-size:inherit;padding:0;top:10px;-webkit-appearance:button;right:10px;margin:0;cursor:pointer}.ch-code-scroll-parent ::selection{background-color:var(--ch-t-editor-selectionBackground);color:inherit}.ch-code-button{background-color:initial;border:none;color:inherit;height:1.1em;position:absolute;width:1.1em}.ch-code-button:focus-visible{outline-color:currentColor}.ch-code-wrapper{background-color:var(--ch-t-background);box-sizing:initial;color:var(--ch-t-foreground);color-scheme:var(--ch-t-colorScheme);margin:0;padding:0;position:relative;white-space:pre}.DocSearch-Container,.DocSearch-Container *,.ch-editor-tab,.ch-editor-terminal,.ch-frame-button,.ch-scrollycoding-content{box-sizing:border-box}.ch-code-wrapper[data-ch-measured=false]{overflow:auto}.ch-code-wrapper[data-ch-measured=false]>*{opacity:0}.ch-expand-dialog{background-color:initial;border:0;height:100vh;max-width:900px;width:100vw}.ch-expand-dialog::backdrop{background-color:#000c}.ch-expand-close{background-color:initial;border:none;color:#fff;height:26px;position:absolute;width:26px}.ch-expand-close:focus-visible{outline-color:currentColor}.ch-expand-dialog-content{border:1px solid;border-color:var(--ch-t-sideBar-border);border-radius:8px;color:#fff;inset:40px;overflow:hidden;position:absolute}.ch-code-browser{color:var(--ch-t-editor-foreground);display:flex;height:100%}.ch-code-browser-sidebar{background:var(--ch-t-sideBar-background);border-bottom-color:var(--ch-t-sideBar-border);border-left-color:var(--ch-t-sideBar-border);border-right:1px solid;border-right-color:var(--ch-t-sideBar-border);border-top-color:var(--ch-t-sideBar-border);color:var(--ch-t-sideBar-foreground);font-size:.95rem;min-width:100px;padding:1em 0}.ch-code-browser-content{background:var(--ch-t-background);color:var(--ch-t-foreground);color-scheme:var(--ch-t-colorScheme);flex:1;font-family:monospace;font-size:1rem;font-weight:400;letter-spacing:0;line-height:1.2rem;overflow:auto;padding:1em;position:relative;white-space:pre}.ch-editor-frame,.ch-frame,.ch-simple-frame{break-inside:avoid;font-family:Ubuntu,Droid Sans,-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,sans-serif;page-break-inside:avoid;--ch-title-bar-height:30px}.ch-code-browser-content ::selection{background-color:var(--ch-t-editor-selectionBackground);color:inherit}.ch-code-browser-sidebar-file,.ch-code-browser-sidebar-folder{padding:.1em 1em}.ch-code-browser-sidebar-file,.dropdownNavbarItemMobile_J0Sd{cursor:pointer}.ch-code-browser-sidebar-file[data-selected=true]{background:var(--ch-t-list-activeSelectionBackground);color:var(--ch-t-list-activeSelectionForeground)}.ch-code-browser-sidebar-file:hover{background-color:var(--ch-t-list-hoverBackground);color:var(--ch-t-list-hoverForeground)}.ch-code-browser-button{-webkit-appearance:button;background-color:initial;background-image:none;border:none;color:inherit;cursor:pointer;font-size:inherit;height:1.5em;margin:0;min-height:1.5em;min-width:1.5em;padding:0;position:absolute;right:.8em;top:.8em;width:1.5em}.ch-code-browser-button:focus-visible{outline-color:currentColor}.ch-editor-tab{background:var(--ch-t-tab-inactiveBackground);border-bottom:1px solid;border-bottom-color:var(--ch-t-tab-inactiveBackground);border-right:1px solid #252526;border-right-color:var(--ch-t-tab-border);color:var(--ch-t-tab-inactiveForeground);cursor:pointer;display:flex;flex-shrink:1;height:100%;min-width:0;padding-left:15px;padding-right:15px;position:relative;white-space:nowrap}.ch-editor-tab[data-active=true]{background:var(--ch-t-tab-activeBackground);border-bottom-color:var(--ch-t-tab-activeBorder);color:var(--ch-t-tab-activeForeground);min-width:unset}.ch-editor-tab>div{font-size:12px;line-height:1.4em;margin-bottom:auto;margin-top:auto;overflow:hidden;text-overflow:ellipsis}.ch-editor-group-border{background:var(--ch-t-editorGroup-border);height:1px;position:absolute;top:0;width:100%;z-index:1}.ch-editor-frame{display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--ch-t-editor-background);height:100%}.ch-editor-frame .ch-frame-title-bar{background:none;background:var(--ch-t-editorGroupHeader-tabsBackground);color:var(--ch-t-icon-foreground)}.ch-editor-terminal{background-color:#1e1e1e;border-top:1px solid #80808059;bottom:0;color:#e7e7e7;overflow:hidden;padding:0 8px;position:absolute;width:100%}.ch-editor-terminal-tab{display:flex;font-size:11px;line-height:24px;padding:4px 10px 3px}.ch-editor-terminal-tab>span{border-bottom:1px solid #e7e7e7}.ch-editor-terminal-content{box-sizing:border-box;height:calc(100% - 40px);margin-top:8px}.ch-editor-terminal-content .ch-terminal{font-size:12px;margin:0}.ch-editor-button{-webkit-appearance:button;background-color:initial;background-image:none;border:none;color:inherit;cursor:pointer;font-size:inherit;height:1.5em;margin:0 .8em 0 0;min-height:1.5em;min-width:1.5em;padding:0;width:1.5em}.ch-editor-button:focus-visible{outline-color:currentColor}.ch-frame,.theme-doc-sidebar-menu{display:flex;flex-direction:column;height:100%}.ch-simple-frame{border-radius:6px;overflow:hidden}.ch-frame-content{background-color:var(--ch-content-background,#fafafa);flex-basis:0;flex-grow:1;flex-shrink:1;min-height:0}.ch-frame-zoom{--ch-frame-zoom:1;height:calc(100%/var(--ch-frame-zoom));overflow:auto;position:relative;transform:scale(var(--ch-frame-zoom));transform-origin:left top;width:calc(100%/var(--ch-frame-zoom))}.ch-frame-title-bar{align-items:center;background-color:var(--ch-content-background,#252526);color:#ebebed;display:flex;flex-grow:0;flex-shrink:0;font-size:12px;height:var(--ch-title-bar-height);min-height:var(--ch-title-bar-height);position:relative;width:100%}.ch-frame-middle-bar{font-size:1.2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ch-frame-left-bar,.ch-frame-right-bar{align-items:center;display:flex;flex-basis:1em;flex-grow:1;height:100%;width:max-content}.ch-frame-buttons{display:flex;flex-shrink:0;height:1em;margin:0 .8em;width:4.16em}.ch-frame-button{border:.08em solid;border-radius:50%;display:inline-block;height:1em;width:1em}.ch-frame-button-space{width:.56em}.ch-frame-button-left{background-color:#ed6b60;border-color:#ce5347}.ch-frame-button-middle{background-color:#f5be4f;border-color:#d6a243}.ch-frame-button-right{background-color:#62c554;border-color:#58a942}.ch-mini-browser .ch-frame-content iframe,.ch-mini-browser .ch-frame-content video{border:none;height:100%;position:absolute;width:100%}.ch-mini-browser .ch-frame-title-bar input{background:var(--ch-t-input-background);border:1px solid var(--ch-t-input-border);border-radius:.5em;box-shadow:none;color:#544;color:var(--ch-t-input-foreground);flex:1;font-size:1em;height:1.4em;min-width:5px;padding:0 10px;width:5px}.buttonGroup_geD8 button.selected_F9cJ,.buttonGroup_geD8 button:hover{background:var(--ifm-menu-color-background-active)}.ch-browser-button{color:#999;margin:0 1em}.ch-browser-back-button{margin-left:.2em}.ch-browser-forward-button{margin-left:0}.ch-browser-open-button{color:var(--ch-t-icon-foreground)}.ch-browser-open-icon,.ch-code-label-annotation:hover .ch-code-label-annotation-text,.tocCollapsibleContent_vkbj a{display:block}.ch-spotlight{display:flex;gap:1.1rem;margin:1rem 0}.ch-spotlight-tabs{align-items:stretch;display:flex;flex:1;flex-flow:column;gap:.5rem}.ch-spotlight-tab{border:1px solid #e3e3e3;border-radius:.25rem;margin:0 -.5rem;padding:0 .5rem}.ch-spotlight-tab:hover{border-color:#222}.ch-scrollycoding-step-content[data-selected],.ch-spotlight-tab[data-selected]{border-color:#0070f3}.ch-spotlight-sticker{align-self:stretch;display:flex;flex-flow:column;justify-content:center;max-height:80vh;min-height:min(100%,80vh);position:sticky;top:10vh;width:420px}.ch-spotlight-sticker .ch-codeblock,.ch-spotlight-sticker .ch-codegroup{flex:1;margin-bottom:0;margin-top:0;max-height:80vh;min-height:min(100%,80vh);min-width:100%;width:100%}.ch-scrollycoding-with-preview .ch-scrollycoding-sticker,.ch-spotlight-with-preview .ch-spotlight-sticker{gap:.5rem;height:80vh}.ch-spotlight-with-preview .ch-spotlight-sticker .ch-codeblock,.ch-spotlight-with-preview .ch-spotlight-sticker .ch-codegroup{flex:1;min-height:0}.ch-scrollycoding-with-preview .ch-scrollycoding-preview,.ch-spotlight-with-preview .ch-spotlight-preview{height:280px}.ch-scrollycoding{display:flex;gap:1rem;margin:1rem 0;position:relative}.ch-scrollycoding-content{flex:1}.ch-scrollycoding-step-content{border:1.5px solid #0000;border-radius:8px;margin:0 -.5rem;padding:1rem .5rem}.ch-scrollycoding-sticker{align-self:start;display:flex;flex-flow:column;justify-content:center;max-height:80vh;position:sticky;top:10vh;width:var(--ch-scrollycoding-sticker-width,420px)}.ch-scrollycoding-sticker .ch-codeblock,.ch-scrollycoding-sticker .ch-codegroup{margin-bottom:0;margin-top:0;max-height:80vh;min-height:var(--ch-scrollycoding-code-min-height,200px);min-width:100%;width:100%}.ch-scrollycoding-static .ch-preview{height:150px}.ch-slideshow{margin:1rem 0}.ch-slideshow-slide{align-items:stretch;aspect-ratio:16/9;display:flex;flex-flow:row;gap:.5rem}.ch-slideshow-slide .ch-codeblock,.ch-slideshow-slide .ch-codegroup{flex:2;height:auto;margin-bottom:0;margin-top:0}.ch-slideshow .ch-slideshow-preview{flex:1;height:auto;min-width:0}.ch-slideshow-range{display:flex;flex-flow:row;gap:.5rem}.ch-slideshow-notes{border:1px solid #e3e3e3;border-radius:.25rem;margin-top:1rem;padding:1rem}.ch-slideshow-note{max-height:140px;min-height:140px;overflow:auto;padding:.05px}.ch-codeblock,.ch-codegroup,.ch-preview{border-radius:6px;height:max-content;overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}.ch-codeblock>*,.ch-codegroup>*,.ch-preview>*{height:100%;max-height:inherit;min-height:inherit}.ch-codeblock,.ch-codegroup{margin-bottom:1.25em;margin-top:1.25em}.ch-inline-code>code{background:var(--ch-t-lighter-inlineBackground);border-radius:.25em;color:var(--ch-t-foreground);font-size:.9rem;margin:.1em -.05em;padding:.2em .15em}.ch-inline-code .ch-section-link,.ch-inline-code .ch-section-link *{text-decoration-color:var(--ch-t-foreground)}.ch-section-link,.ch-section-link *{text-decoration-color:initial;text-decoration-style:dotted;text-decoration-thickness:1px}.ch-section-link[data-active=true]{background-color:#bae6fd66}.ch-section-link[data-active=true],.ch-section-link[data-active=true] *{text-decoration-thickness:1.5px}.ch-code-inline-mark{border-radius:.25rem;margin:0 -.15rem;padding:.2rem .15rem .1rem}.ch-code-inline-mark,.ch-code-multiline-mark{background:var(--ch-t-editor-rangeHighlightBackground)}.ch-code-multiline-mark-border{background:var(--ch-t-editor-infoForeground);height:100%;left:0;position:absolute;width:3px}.ch-code-multiline-mark .ch-code-button{display:none;font-size:1.2em;position:absolute;right:10px;top:1px}.ch-code-inline-link,.ch-code-link :not(span)>span{color:inherit;text-decoration-style:dotted}.ch-code-box-annotation{outline:2px solid var(--ch-t-editor-infoForeground)}.ch-code-label-annotation:hover{background:var(--ch-t-editor-lineHighlightBackground)}.ch-code-label-annotation-text{display:none;opacity:.7;padding-right:16px;position:absolute;right:0}.docusaurus-highlight-code-line{background-color:#0000001a;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.diagonal-box{transform:skewY(-6deg)}.diagonal-content{transform:skewY(6deg)}[class^=announcementBar]{z-index:10}.showcase{background-color:#fff}.showcase-border{border-color:#f3f4f6}.sidebar-ad,.tocCollapsibleContent_vkbj>ul,[data-theme=light] .footer{border-top:1px solid var(--ifm-color-emphasis-300)}.text-description{color:#6b7280}#hero-apply{z-index:-1}.apply-form{background-image:linear-gradient(#fff,#f5f5fa);max-width:600px}.apply-text{color:#36395a}.hero-title{color:#1c1e21;font-family:var(--ifm-heading-font-family)}h1{font-size:26px}h2{font-size:22px}h3{font-size:18px}body{margin:0;font-size:16px}.docsearch-logo{color:#21243d}.footer-links a,.footer__copyright{color:var(--ifm-toc-link-color)}.apply-button:hover{color:#fff}.header-discord-link:hover,.header-github-link:hover,.header-twitter-link:hover{opacity:.6}.header-github-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNvbG9yPSIjMDAwIiBzdHlsZT0idXNlci1zZWxlY3Q6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZpbGw6IzAwMDtmbGV4LXNocmluazowIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMiAuM2ExMiAxMiAwIDAgMC0zLjggMjMuNGMuNi4xLjgtLjMuOC0uNnYtMmMtMy4zLjctNC0xLjYtNC0xLjYtLjYtMS40LTEuNC0xLjgtMS40LTEuOC0xLS43LjEtLjcuMS0uNyAxLjIgMCAxLjkgMS4yIDEuOSAxLjIgMSAxLjggMi44IDEuMyAzLjUgMSAwLS44LjQtMS4zLjctMS42LTIuNy0uMy01LjUtMS4zLTUuNS02IDAtMS4yLjUtMi4zIDEuMy0zLjEtLjItLjQtLjYtMS42IDAtMy4yIDAgMCAxLS4zIDMuNCAxLjJhMTEuNSAxMS41IDAgMCAxIDYgMGMyLjMtMS41IDMuMy0xLjIgMy4zLTEuMi42IDEuNi4yIDIuOCAwIDMuMi45LjggMS4zIDEuOSAxLjMgMy4yIDAgNC42LTIuOCA1LjYtNS41IDUuOS41LjQuOSAxIC45IDIuMnYzLjNjMCAuMy4xLjcuOC42QTEyIDEyIDAgMCAwIDEyIC4zIi8+PC9zdmc+) no-repeat;content:"";display:flex;height:24px;width:24px}[data-theme=dark] .header-github-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNvbG9yPSIjMDAwIiBzdHlsZT0idXNlci1zZWxlY3Q6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZpbGw6I2ZmZjtmbGV4LXNocmluazowIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMiAuM2ExMiAxMiAwIDAgMC0zLjggMjMuNGMuNi4xLjgtLjMuOC0uNnYtMmMtMy4zLjctNC0xLjYtNC0xLjYtLjYtMS40LTEuNC0xLjgtMS40LTEuOC0xLS43LjEtLjcuMS0uNyAxLjIgMCAxLjkgMS4yIDEuOSAxLjIgMSAxLjggMi44IDEuMyAzLjUgMSAwLS44LjQtMS4zLjctMS42LTIuNy0uMy01LjUtMS4zLTUuNS02IDAtMS4yLjUtMi4zIDEuMy0zLjEtLjItLjQtLjYtMS42IDAtMy4yIDAgMCAxLS4zIDMuNCAxLjJhMTEuNSAxMS41IDAgMCAxIDYgMGMyLjMtMS41IDMuMy0xLjIgMy4zLTEuMi42IDEuNi4yIDIuOCAwIDMuMi45LjggMS4zIDEuOSAxLjMgMy4yIDAgNC42LTIuOCA1LjYtNS41IDUuOS41LjQuOSAxIC45IDIuMnYzLjNjMCAuMy4xLjcuOC42QTEyIDEyIDAgMCAwIDEyIC4zIi8+PC9zdmc+) no-repeat;content:"";display:flex;height:24px;width:24px}.header-twitter-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwLjI1MSI+PHBhdGggZD0iTTE3OC41NyAxMjcuMTUgMjkwLjI3IDBoLTI2LjQ2bC05Ny4wMyAxMTAuMzhMODkuMzQgMEgwbDExNy4xMyAxNjYuOTNMMCAzMDAuMjVoMjYuNDZsMTAyLjQtMTE2LjU5IDgxLjggMTE2LjU5SDMwME0zNi4wMSAxOS41NGg0MC42NWwxODcuMTMgMjYyLjEzaC00MC42NiIvPjwvc3ZnPg==) 0 0/contain;content:"";display:flex;height:24px;width:24px}[data-theme=dark] .header-twitter-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwLjI1MSIgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTE3OC41NyAxMjcuMTUgMjkwLjI3IDBoLTI2LjQ2bC05Ny4wMyAxMTAuMzhMODkuMzQgMEgwbDExNy4xMyAxNjYuOTNMMCAzMDAuMjVoMjYuNDZsMTAyLjQtMTE2LjU5IDgxLjggMTE2LjU5SDMwME0zNi4wMSAxOS41NGg0MC42NWwxODcuMTMgMjYyLjEzaC00MC42NiIvPjwvc3ZnPg==) 0 0/contain;content:"";display:flex;height:24px;width:24px}.header-discord-link{margin-right:.5rem}[data-theme=dark] .header-discord-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MDAiIGhlaWdodD0iODAwIiBmaWxsPSIjZmZmIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIgdmlld0JveD0iMCAtMjguNSAyNTYgMjU2Ij48cGF0aCBkPSJNMjE2Ljg1NiAxNi41OTdBMjA4LjUgMjA4LjUgMCAwIDAgMTY0LjA0MiAwYy0yLjI3NSA0LjExMy00LjkzMyA5LjY0NS02Ljc2NiAxNC4wNDZxLTI5LjUzOC00LjQ0Mi01OC41MzMgMGMtMS44MzItNC40LTQuNTUtOS45MzMtNi44NDYtMTQuMDQ2YTIwNy44IDIwNy44IDAgMCAwLTUyLjg1NSAxNi42MzhDNS42MTggNjcuMTQ3LTMuNDQzIDExNi40IDEuMDg3IDE2NC45NTZjMjIuMTY5IDE2LjU1NSA0My42NTMgMjYuNjEyIDY0Ljc3NSAzMy4xOTNBMTYxIDE2MSAwIDAgMCA3OS43MzUgMTc1LjNhMTM2LjQgMTM2LjQgMCAwIDEtMjEuODQ2LTEwLjYzMiAxMDkgMTA5IDAgMCAwIDUuMzU2LTQuMjM3YzQyLjEyMiAxOS43MDIgODcuODkgMTkuNzAyIDEyOS41MSAwYTEzMiAxMzIgMCAwIDAgNS4zNTUgNC4yMzcgMTM2IDEzNiAwIDAgMS0yMS44ODYgMTAuNjUzYzQuMDA2IDguMDIgOC42MzggMTUuNjcgMTMuODczIDIyLjg0OCAyMS4xNDItNi41OCA0Mi42NDYtMTYuNjM3IDY0LjgxNS0zMy4yMTMgNS4zMTYtNTYuMjg4LTkuMDgtMTA1LjA5LTM4LjA1Ni0xNDguMzZNODUuNDc0IDEzNS4wOTVjLTEyLjY0NSAwLTIzLjAxNS0xMS44MDUtMjMuMDE1LTI2LjE4czEwLjE0OS0yNi4yIDIzLjAxNS0yNi4yIDIzLjIzNiAxMS44MDQgMjMuMDE1IDI2LjJjLjAyIDE0LjM3NS0xMC4xNDggMjYuMTgtMjMuMDE1IDI2LjE4bTg1LjA1MSAwYy0xMi42NDUgMC0yMy4wMTQtMTEuODA1LTIzLjAxNC0yNi4xOHMxMC4xNDgtMjYuMiAyMy4wMTQtMjYuMmMxMi44NjcgMCAyMy4yMzYgMTEuODA0IDIzLjAxNSAyNi4yIDAgMTQuMzc1LTEwLjE0OCAyNi4xOC0yMy4wMTUgMjYuMTgiLz48L3N2Zz4=) 0 0/contain;content:"";display:flex;height:24px;width:24px}.header-discord-link:before{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MDAiIGhlaWdodD0iODAwIiBmaWxsPSIjZmZmIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIgdmlld0JveD0iMCAtMjguNSAyNTYgMjU2Ij48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMjE2Ljg1NiAxNi41OTdBMjA4LjUgMjA4LjUgMCAwIDAgMTY0LjA0MiAwYy0yLjI3NSA0LjExMy00LjkzMyA5LjY0NS02Ljc2NiAxNC4wNDZxLTI5LjUzOC00LjQ0Mi01OC41MzMgMGMtMS44MzItNC40LTQuNTUtOS45MzMtNi44NDYtMTQuMDQ2YTIwNy44IDIwNy44IDAgMCAwLTUyLjg1NSAxNi42MzhDNS42MTggNjcuMTQ3LTMuNDQzIDExNi40IDEuMDg3IDE2NC45NTZjMjIuMTY5IDE2LjU1NSA0My42NTMgMjYuNjEyIDY0Ljc3NSAzMy4xOTNBMTYxIDE2MSAwIDAgMCA3OS43MzUgMTc1LjNhMTM2LjQgMTM2LjQgMCAwIDEtMjEuODQ2LTEwLjYzMiAxMDkgMTA5IDAgMCAwIDUuMzU2LTQuMjM3YzQyLjEyMiAxOS43MDIgODcuODkgMTkuNzAyIDEyOS41MSAwYTEzMiAxMzIgMCAwIDAgNS4zNTUgNC4yMzcgMTM2IDEzNiAwIDAgMS0yMS44ODYgMTAuNjUzYzQuMDA2IDguMDIgOC42MzggMTUuNjcgMTMuODczIDIyLjg0OCAyMS4xNDItNi41OCA0Mi42NDYtMTYuNjM3IDY0LjgxNS0zMy4yMTMgNS4zMTYtNTYuMjg4LTkuMDgtMTA1LjA5LTM4LjA1Ni0xNDguMzZNODUuNDc0IDEzNS4wOTVjLTEyLjY0NSAwLTIzLjAxNS0xMS44MDUtMjMuMDE1LTI2LjE4czEwLjE0OS0yNi4yIDIzLjAxNS0yNi4yIDIzLjIzNiAxMS44MDQgMjMuMDE1IDI2LjJjLjAyIDE0LjM3NS0xMC4xNDggMjYuMTgtMjMuMDE1IDI2LjE4bTg1LjA1MSAwYy0xMi42NDUgMC0yMy4wMTQtMTEuODA1LTIzLjAxNC0yNi4xOHMxMC4xNDgtMjYuMiAyMy4wMTQtMjYuMmMxMi44NjcgMCAyMy4yMzYgMTEuODA0IDIzLjAxNSAyNi4yIDAgMTQuMzc1LTEwLjE0OCAyNi4xOC0yMy4wMTUgMjYuMTgiLz48L3N2Zz4=) 0 0/contain;content:"";display:flex;height:24px;width:24px}.image-rendering-crisp{image-rendering:crisp-edges;image-rendering:-webkit-optimize-contrast}.image-rendering-pixel{image-rendering:pixelated}.img-center{display:flex;justify-content:center;width:100%}.markdown img{display:block;height:auto;margin:1rem auto;max-height:600px;object-fit:contain}.markdown img:not(.resized-image){max-width:600px;width:auto}.resized-image{max-height:500px;width:300px}.ch-scrollycoding-content{max-width:55%!important;min-width:40%!important}.ch-scrollycoding-sticker{max-width:60%!important;min-width:45%!important}.ch-scrollycoding-step-content{min-height:70px}.theme-doc-sidebar-item-category.theme-doc-sidebar-item-category-level-2.menu__list-item:not(:first-child){margin-top:.15rem!important}.footer{background-color:var(--ifm-navbar-background-color);padding:8px 0}.footer-content{align-items:center;display:flex;font-size:12px;justify-content:space-between;margin:0 auto;max-width:var(--ifm-container-width);padding:0 var(--ifm-navbar-padding-horizontal)}.footer-links{display:flex;font-size:13px;gap:.5rem}.footer .container{align-items:center;display:flex;flex-direction:row-reverse;justify-content:space-between;padding:0 5rem}.theme-doc-sidebar-menu>:nth-last-child(2){margin-bottom:auto}.sidebar-ad{border-radius:0;bottom:0;margin-left:-.5rem;margin-right:-.5rem;margin-top:1rem;position:sticky}[data-theme=dark] .sidebar-ad{background-color:var(--ifm-background-color)}[data-theme=light] .sidebar-ad{background-color:var(--ifm-color-white)}.sidebar-ad a{align-items:center;display:flex;gap:1rem;justify-content:center;padding-bottom:.75rem;padding-top:.75rem}.sidebar-ad-text-container{display:flex;flex-direction:column;gap:.5rem}.sidebar-ad-text{font-family:Sora,serif;font-size:.875rem}.sidebar-ad-text-gradient{-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(to right,#a855f7,var(--ifm-color-primary));color:#0000}.markdown details{background:var(--ifm-background-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);margin-bottom:1rem;width:100%}.markdown details summary{align-items:center;cursor:pointer;display:flex;gap:.5em;list-style:none;outline:0}.markdown details summary:focus-visible{outline:2px solid var(--ifm-color-primary,#a855f7);outline-offset:2px}.markdown details [class^=collapsibleContent]{border-top:none!important;padding:0}.notion-column{display:flex;flex-direction:column;padding-bottom:12px;padding-top:12px}.notion-column>:first-child{margin-left:0;margin-right:0;margin-top:0}.notion-column>:last-child{margin-bottom:0;margin-left:0;margin-right:0}.notion-row{display:flex;max-width:100%;overflow:hidden;width:100%}.notion-spacer{width:calc(min(32px,4vw))}.notion-spacer:last-child,.optionsPanel_c56F:empty,.optionsPanel_kER9:empty{display:none}.gif_player{display:inline-block;position:relative;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.buttonGroup_geD8 button,.showMoreButton_Ry1D{cursor:pointer;-webkit-user-select:none;white-space:nowrap}.gif_player .play_button{background-color:#00000080;border:2px dashed #fff;border-radius:50%;box-shadow:0 0 0 3px #00000080;color:#fff;cursor:pointer;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:24px;left:50%;opacity:1;padding:14px 10px;position:absolute;top:50%;transform:translate(-50%,-50%) scale(1) rotate(0);transition:transform .4s,opacity .4s}.gif_player .play_button:hover{background-color:#000000b3;box-shadow:0 0 0 3px #000000b3}.gif_player .play_button:after{content:"GIF"}.gif_player.playing .play_button{opacity:.5;transform:translate(-50%,-50%) scale(0) rotate(180deg)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.floatingButton_tCt1{position:relative}.floatingButton_tCt1 button{background:#191a1be6;border:none;border-radius:var(--ifm-global-radius);color:var(--ifm-color-white);cursor:pointer;opacity:0;outline:0;padding:.4rem .5rem;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,bottom .2s ease-in-out;visibility:hidden}.buttonGroup_geD8{background:var(--openapi-card-background-color);border-radius:var(--openapi-card-border-radius) var(--openapi-card-border-radius) 2px 2px;color:var(--ifm-pre-color);display:flex;flex-wrap:wrap;font-family:var(--ifm-font-family-monospace);justify-content:center;margin-bottom:1px;margin-top:0}.buttonGroup_geD8 button{appearance:none;background:#0000;border:0 solid #0000;color:var(--ifm-menu-color);font-size:13.3333px;font-weight:var(--ifm-font-weight-semibold);line-height:var(--ifm-pre-line-height);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition:color var(--ifm-button-transition-duration) cubic-bezier(.08,.52,.52,1),background var(--ifm-button-transition-duration) cubic-bezier(.08,.52,.52,1),border-color var(--ifm-button-transition-duration) cubic-bezier(.08,.52,.52,1);user-select:none;--margin:0.25rem;border-radius:calc(var(--margin));display:block;margin:var(--margin);margin-right:0}.buttonGroup_geD8 button:last-child{margin-right:.25rem}.buttonDelete_vG3A:focus,.buttonGroup_geD8 button:focus,.buttonThin_a10m:focus,.showMoreButton_Ry1D:focus,.showMoreButton_SWLU:focus,body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.buttonGroup_geD8 button.selected_F9cJ{color:var(--ifm-menu-color-active)}.selectInput_vS5v,html[data-theme=dark] .selectInput_vS5v{background-position:right var(--ifm-pre-padding) top 50%;background-repeat:no-repeat;background-size:initial;appearance:none}.formItem_DtZA{margin-top:var(--ifm-pre-padding)}.inputBase_mKhX,.inputBase_qv87,.inputBase_yXPZ,html[data-theme=dark] .selectInput_vS5v{background-color:var(--openapi-input-background);margin-top:calc(var(--ifm-pre-padding)/2);color:var(--ifm-pre-color);font-size:var(--ifm-code-font-size);width:100%;outline:0}.inputBase_qv87{padding:12px 48px 12px var(--ifm-pre-padding)}.inputBase_qv87,html[data-theme=dark] .selectInput_vS5v{border:none;border-radius:4px}html[data-theme=dark] .selectInput_vS5v{background-image:url('data:image/svg+xml;charset=US-ASCII,')}html[data-theme=light] .input_ygXe,html[data-theme=light] .selectInput_vS5v,html[data-theme=light] .selectInput_ya64{border-color:var(--ifm-color-primary-lightest);border-style:solid;border-width:1px}.selectInput_vS5v{background-image:url('data:image/svg+xml;charset=US-ASCII,')}.buttonDelete_vG3A:active,.input_TTw5:focus,.input_ygXe:focus,.selectInput_vS5v:focus{box-shadow:inset 0 0 0 2px var(--openapi-input-border)}.inputBase_mKhX,.inputBase_yXPZ{border:none;border-radius:4px;padding:12px var(--ifm-pre-padding)}.optionsPanel_c56F,.optionsPanel_kER9{background:var(--openapi-card-background-color);border-radius:var(--openapi-card-border-radius);color:var(--ifm-pre-color);line-height:var(--ifm-pre-line-height);margin-bottom:var(--ifm-spacing-vertical);margin-top:0;overflow:auto;padding:var(--ifm-pre-padding);position:relative}.dropzone_dwtv{border:2px dashed var(--openapi-monaco-border-color)}.dropzoneHover_X65A,.dropzone_dwtv{align-items:center;background-color:var(--openapi-input-background);border-radius:4px;cursor:pointer;display:inline-flex;font-size:var(--ifm-code-font-size);justify-content:center;padding:var(--ifm-pre-padding);width:100%}.dropzoneHover_X65A,.dropzone_dwtv:hover{background:linear-gradient(var(--openapi-dropzone-hover-shim),var(--openapi-dropzone-hover-shim)),linear-gradient(var(--ifm-color-primary),var(--ifm-color-primary));border:2px dashed var(--ifm-color-primary)}.dropzoneContent_QObU{align-items:center;color:var(--openapi-dropzone-color);display:flex;flex-wrap:wrap;justify-content:center;margin:var(--ifm-pre-padding) 0}.dropzone_dwtv:hover .dropzoneContent_QObU,.inputBase_pxKA{color:var(--ifm-pre-color)}.dropzoneHover_X65A .dropzoneContent_QObU{align-items:center;color:var(--ifm-pre-color);display:flex;flex-wrap:wrap;justify-content:center;margin:var(--ifm-pre-padding) 0}.filename_zGyv{flex:1;margin:0 calc(var(--ifm-pre-padding)*1.5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inputBase_pxKA,.monacoBase_T17Z{margin-top:calc(var(--ifm-pre-padding)/2)}.monacoBase_T17Z{background-color:var(--openapi-monaco-background-color);border-radius:4px;padding:var(--ifm-pre-padding)}.monaco_Jeel{border:2px solid #0000;box-shadow:0 0 0 1px var(--openapi-monaco-border-color)}.monacoFocus_W372,.selectInput_ya64:focus{border:2px solid var(--openapi-input-border)}.inputBase_pxKA{background-color:var(--openapi-input-background);border:2px solid #0000;border-radius:4px;font-size:var(--ifm-code-font-size);outline:0;padding:12px var(--ifm-pre-padding);width:100%}.selectInput_ya64{appearance:none}.selectInput_ya64 option{border-radius:.25rem;color:var(--ifm-menu-color);margin:.25rem 0;padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.plus_XYuX{display:inline-block;margin-right:6px;transform:rotate(0);transform-origin:center;transition:transform .2s}.plusExpanded_wYkc{transform:rotate(45deg)}.showMoreButton_Ry1D{appearance:none;background-color:initial;border:0 solid #0000;color:var(--ifm-color-primary);display:block;font-size:var(--ifm-code-font-size);margin-bottom:0;margin-top:var(--ifm-pre-padding);padding:0;text-align:left;user-select:none;width:100%}.buttonDelete_vG3A,.buttonThin_a10m{cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:400;line-height:1.5;margin-top:calc(var(--ifm-pre-padding)/2);transition-duration:.1s,.1s,.1s,var(--ifm-button-transition-duration);transition-property:color,background,border-color,box-shadow;transition-timing-function:cubic-bezier(.08,.52,.52,1);-webkit-user-select:none}.showMoreButton_Ry1D:hover,.showMoreButton_SWLU:hover{color:var(--ifm-color-primary-hover)}.buttonDelete_vG3A{align-items:center;appearance:none;background-color:var(--openapi-input-background);border:none;border-radius:4px;color:var(--ifm-pre-color);display:flex;justify-content:center;margin-left:4px;outline:0;padding:0 12px;user-select:none;white-space:nowrap}.buttonThin_a10m,.showMoreButton_SWLU{background-color:initial;appearance:none;white-space:nowrap}.buttonThin_a10m{border:1px solid var(--openapi-input-border);border-radius:var(--ifm-pre-border-radius);color:var(--openapi-input-border);display:block;margin-bottom:var(--ifm-pre-padding);padding:3px 60px 3px 12px;user-select:none}.DocSearch-Button,.showMoreButton_SWLU{-webkit-user-select:none;cursor:pointer}.buttonThin_a10m:hover{background-color:var(--openapi-input-border);color:var(--openapi-inverse-color)}.buttonThin_a10m:active{box-shadow:inset 0 0 0 1px var(--openapi-input-border),inset 0 0 0 2px var(--openapi-inverse-color)}.showOptions_Ln5O{margin-top:var(--ifm-pre-padding);visibility:visible}.hideOptions_Eruu{display:none;visibility:hidden}.showMoreButton_SWLU{border:0 solid #0000;color:var(--ifm-color-primary);display:block;font-size:var(--ifm-code-font-size);margin-bottom:0;margin-top:var(--ifm-pre-padding);padding:0;text-align:left;user-select:none}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);display:flex;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;transition-duration:.1s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Hit[aria-selected=true] mark,.DocSearch-Prefill:focus,.DocSearch-Prefill:hover,.content_knG7 a{-webkit-text-decoration:underline;text-decoration:underline}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards a;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a,.api-wrapper{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative;scroll-margin-top:40px}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc,.themedComponent_mlkZ,.toggleIcon_g3eP,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j,svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Container,.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1)}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@keyframes a{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}[data-theme-choice=dark] .darkToggleIcon_wfgR,[data-theme-choice=light] .lightToggleIcon_pyhR,[data-theme-choice=system] .systemToggleIcon_QzmC,[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.iconExternalLink_nPIU{margin-left:.3rem}.apiMainContainer_L2xG,.apiPage_KQrU,.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.navbar__items--right>:last-child{padding-right:0}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.buttonGroup_M5ko button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_Vdqa{opacity:1!important}.copyButtonIcons_IEyt{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_TrPX,.copyButtonSuccessIcon_cVMy{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_cVMy{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_Vdqa .copyButtonIcon_TrPX{opacity:0;transform:scale(.33)}.copyButtonCopied_Vdqa .copyButtonSuccessIcon_cVMy{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_b1P5{height:1.2rem;width:1.2rem}.buttonGroup_M5ko{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup_M5ko button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup_M5ko button:focus-visible,.buttonGroup_M5ko button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_M5ko button{opacity:.4}.codeBlockContent_QJqH{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_OeMC{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlockTitle_OeMC+.codeBlockContent_QJqH .codeBlock_a8dz{border-top-left-radius:0;border-top-right-radius:0}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{color:var(--ifm-color-content-secondary);font-size:.8rem;--ifm-breadcrumb-separator-size-multiplier:1}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite b;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes b{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}:root{--docusaurus-announcement-bar-height:auto;--openapi-code-dim-dark:#7f7f7f;--openapi-code-red-dark:#fc929e;--openapi-code-orange-dark:#f8b886;--openapi-code-green-dark:#85d996;--openapi-code-blue-dark:#a4cdfe;--openapi-code-purple-dark:#d9a0f9;--openapi-monaco-background-color-dark:#18191a;--openapi-code-dim-light:#aaa;--openapi-code-red-light:#f44336;--openapi-code-orange-light:var(--ifm-code-color);--openapi-code-green-light:#388e3c;--openapi-code-blue-light:#1976d2;--openapi-code-purple-light:#ab47bc;--openapi-monaco-background-color-light:#fff;--openapi-code-dim:var(--openapi-code-dim-light);--openapi-code-red:var(--openapi-code-red-light);--openapi-code-orange:var(--openapi-code-orange-light);--openapi-code-green:var(--openapi-code-green-light);--openapi-code-blue:var(--openapi-code-blue-light);--openapi-code-purple:var(--openapi-code-purple-light);--openapi-monaco-background-color:var(--openapi-monaco-background-color-light);--openapi-monaco-border-color:#dadde1;--api-sidebar-width:300px;--api-sidebar-hidden-width:30px;--openapi-card-background-color:#f6f8fa;--openapi-card-border-radius:var(--ifm-pre-border-radius);--openapi-input-background:var(--ifm-code-background);--openapi-input-border:var(--ifm-color-primary);--openapi-button-dissabled:#c6c6c6;--openapi-dropzone-color:#00000080;--openapi-dropzone-hover-shim:#ebedf0cc;--openapi-inverse-color:var(--ifm-color-gray-100)}.apiSidebarContainer_Korj{display:none}.menu__list-item--deprecated>:not(.menu__link--active){opacity:.3;-webkit-text-decoration:line-through;text-decoration:line-through}.button.disabled,.button:disabled,.button[disabled]{opacity:.35}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}.lastUpdated_JAkA{text-align:right}.tocMobile_EiPU,.tocMobile_ITEo{display:none}.docItemCol_VOVn,.docItemCol_t_cT{max-width:75%!important}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,.expandSidebarButtonIcon_Z2po,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);-webkit-text-decoration:none!important;text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}.collapsedApiSidebar_Ic1j,.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.apiSidebarContainer_Korj,.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;will-change:width}[dir=rtl] .expandButtonIcon_i1dp,html[dir=rtl] .expandSidebarButtonIcon_Z2po{transform:rotate(180deg)}.docSidebarContainer_YfHR{width:var(--doc-sidebar-width)}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.apiMainContainer_L2xG{flex-grow:1;max-width:calc(100% - var(--api-sidebar-width))}.apiMainContainerEnhanced_KekW{max-width:calc(100% - var(--api-sidebar-hidden-width))}.apiSidebarContainer_Korj{width:var(--api-sidebar-width)}.apiSidebarContainerHidden_KLHn{cursor:pointer;width:var(--api-sidebar-hidden-width)}.collapsedApiSidebar_Ic1j{align-items:center;display:flex;justify-content:center;transition:background-color var(--ifm-transition-fast) ease}.collapsedApiSidebar_Ic1j:focus,.collapsedApiSidebar_Ic1j:hover{background-color:var(--ifm-color-emphasis-200)}html[data-theme=dark] .collapsedApiSidebar_Ic1j:focus,html[data-theme=dark] .collapsedApiSidebar_Ic1j:hover{background-color:var(--collapse-button-bg-color-dark)}.apiItemWrapperEnhanced_aX4w{max-width:calc(var(--ifm-container-width) + var(--api-sidebar-width))!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block;width:max-content}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.docItemContainer_F8PC{padding:0 .3rem}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media (max-width:768px){.markdown img:not(.resized-image){max-height:500px;max-width:100%}.resized-image{max-height:400px;max-width:300px;width:100%}.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:767px){.mendable-search{width:200px}}@media (max-width:640px){.notion-row{flex-direction:column}.notion-row .notion-column{width:100%!important}.notion-row .notion-spacer{display:none}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (max-width:500px){.mendable-search{width:150px}}@media (max-width:380px){.mendable-search{width:140px}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media (prefers-reduced-motion){.DocSearch-Button-Key{transition:none}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/images/create-a-google-cloud-project-cb1730f824bb28b1caa950c492726f87.gif b/assets/images/create-a-google-cloud-project-cb1730f824bb28b1caa950c492726f87.gif deleted file mode 100644 index 177225a6a3..0000000000 Binary files a/assets/images/create-a-google-cloud-project-cb1730f824bb28b1caa950c492726f87.gif and /dev/null differ diff --git a/assets/images/create-oauth-client-id-57b94aad2bf2859ae9011f6f2a0d52d3.gif b/assets/images/create-oauth-client-id-57b94aad2bf2859ae9011f6f2a0d52d3.gif deleted file mode 100644 index 857976985d..0000000000 Binary files a/assets/images/create-oauth-client-id-57b94aad2bf2859ae9011f6f2a0d52d3.gif and /dev/null differ diff --git a/assets/images/select-output-f7d64629d278098e3fba32fe79f79ed6.png b/assets/images/select-output-f7d64629d278098e3fba32fe79f79ed6.png new file mode 100644 index 0000000000..a2398f32ca Binary files /dev/null and b/assets/images/select-output-f7d64629d278098e3fba32fe79f79ed6.png differ diff --git a/assets/js/17896441.23c55f2d.js b/assets/js/17896441.23c55f2d.js new file mode 100644 index 0000000000..862da90447 --- /dev/null +++ b/assets/js/17896441.23c55f2d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8401],{73619:(e,t,n)=>{n.r(t),n.d(t,{default:()=>De});var s=n(96540),a=n(45500),i=n(89532),l=n(74848);const o=s.createContext(null);function r({children:e,content:t}){const n=function(e){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}),[e])}(t);return(0,l.jsx)(o.Provider,{value:n,children:e})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=c();return(0,l.jsx)(a.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(18215),m=n(24581),h=n(86929);function x(){const{metadata:e}=c();return(0,l.jsx)(h.A,{className:"docusaurus-mt-lg",previous:e.previous,next:e.next})}var b=n(44586),p=n(28774),g=n(21312),v=n(44070),f=n(17559),j=n(53886),A=n(23025);const N={unreleased:function({siteTitle:e,versionMetadata:t}){return(0,l.jsx)(g.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:t}){return(0,l.jsx)(g.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function C(e){const t=N[e.versionMetadata.banner];return(0,l.jsx)(t,{...e})}function L({versionLabel:e,to:t,onClick:n}){return(0,l.jsx)(g.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,l.jsx)("b",{children:(0,l.jsx)(p.A,{to:t,onClick:n,children:(0,l.jsx)(g.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function _({className:e,versionMetadata:t}){const{siteConfig:{title:n}}=(0,b.A)(),{pluginId:s}=(0,v.vT)({failfast:!0}),{savePreferredVersionName:a}=(0,j.g1)(s),{latestDocSuggestion:i,latestVersionSuggestion:o}=(0,v.HW)(s),r=i??(c=o).docs.find(e=>e.id===c.mainDocId);var c;return(0,l.jsxs)("div",{className:(0,u.A)(e,f.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,l.jsx)("div",{children:(0,l.jsx)(C,{siteTitle:n,versionMetadata:t})}),(0,l.jsx)("div",{className:"margin-top--md",children:(0,l.jsx)(L,{versionLabel:o.label,to:r.path,onClick:()=>a(o.name)})})]})}function T({className:e}){const t=(0,A.r)();return t.banner?(0,l.jsx)(_,{className:e,versionMetadata:t}):null}function k({className:e}){const t=(0,A.r)();return t.badge?(0,l.jsx)("span",{className:(0,u.A)(e,f.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(g.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}const y={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function H({permalink:e,label:t,count:n,description:s}){return(0,l.jsxs)(p.A,{rel:"tag",href:e,title:s,className:(0,u.A)(y.tag,n?y.tagWithCount:y.tagRegular),children:[t,n&&(0,l.jsx)("span",{children:n})]})}const w={tags:"tags_jXut",tag:"tag_QGVx"};function U({tags:e}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(g.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,u.A)(w.tags,"padding--none","margin-left--sm"),children:e.map(e=>(0,l.jsx)("li",{className:w.tag,children:(0,l.jsx)(H,{...e})},e.permalink))})]})}const B={iconEdit:"iconEdit_Z9Sw"};function M({className:e,...t}){return(0,l.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(B.iconEdit,e),"aria-hidden":"true",...t,children:(0,l.jsx)("g",{children:(0,l.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function I({editUrl:e}){return(0,l.jsxs)(p.A,{to:e,className:f.G.common.editThisPage,children:[(0,l.jsx)(M,{}),(0,l.jsx)(g.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}function E(e={}){const{i18n:{currentLocale:t}}=(0,b.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,b.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}function V({lastUpdatedAt:e}){const t=new Date(e),n=E({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,l.jsx)(g.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,l.jsx)("b",{children:(0,l.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:n})})},children:" on {date}"})}function O({lastUpdatedBy:e}){return(0,l.jsx)(g.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,l.jsx)("b",{children:e})},children:" by {user}"})}function G({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,l.jsxs)("span",{className:f.G.common.lastUpdated,children:[(0,l.jsx)(g.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,l.jsx)(V,{lastUpdatedAt:e}):"",byUser:t?(0,l.jsx)(O,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const D={lastUpdated:"lastUpdated_JAkA"};function F({className:e,editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s}){return(0,l.jsxs)("div",{className:(0,u.A)("row",e),children:[(0,l.jsx)("div",{className:"col",children:t&&(0,l.jsx)(I,{editUrl:t})}),(0,l.jsx)("div",{className:(0,u.A)("col",D.lastUpdated),children:(n||s)&&(0,l.jsx)(G,{lastUpdatedAt:n,lastUpdatedBy:s})})]})}function S(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(t||n||s);return i||o?(0,l.jsxs)("footer",{className:(0,u.A)(f.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,l.jsx)("div",{className:(0,u.A)("row margin-top--sm",f.G.docs.docFooterTagsRow),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(U,{tags:a})})}),o&&(0,l.jsx)(F,{className:(0,u.A)("margin-top--sm",f.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var R=n(41422),P=n(6342);function z(e){const t=e.map(e=>({...e,parentIndex:-1,children:[]})),n=Array(7).fill(-1);t.forEach((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t});const s=[];return t.forEach(e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)}),s}function q({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return e.flatMap(e=>{const s=q({toc:e.children,minHeadingLevel:t,maxHeadingLevel:n});return function(e){return e.level>=t&&e.level<=n}(e)?[{...e,children:s}]:s})}function $(e){const t=e.getBoundingClientRect();return t.top===t.bottom?$(e.parentNode):t}function W(e,{anchorTopOffset:t}){const n=e.find(e=>$(e).top>=t);if(n){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}function J(e){const t=(0,s.useRef)(void 0),n=Z();(0,s.useEffect)(()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function({minHeadingLevel:e,maxHeadingLevel:t}){const n=[];for(let s=e;s<=t;s+=1)n.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(n.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),r=W(o,{anchorTopOffset:n.current}),c=e.find(e=>r&&r.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e));e.forEach(e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===c)})}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}},[e,n])}function Q({toc:e,className:t,linkClassName:n,isChild:s}){return e.length?(0,l.jsx)("ul",{className:s?void 0:t,children:e.map(e=>(0,l.jsxs)("li",{children:[(0,l.jsx)(p.A,{to:`#${e.id}`,className:n??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,l.jsx)(Q,{isChild:!0,toc:e.children,className:t,linkClassName:n})]},e.id))}):null}const X=s.memo(Q);function Y({toc:e,className:t="table-of-contents table-of-contents__left-border",linkClassName:n="table-of-contents__link",linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:o,...r}){const c=(0,P.p)(),d=i??c.tableOfContents.minHeadingLevel,u=o??c.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,s.useMemo)(()=>q({toc:z(e),minHeadingLevel:t,maxHeadingLevel:n}),[e,t,n])}({toc:e,minHeadingLevel:d,maxHeadingLevel:u});return J((0,s.useMemo)(()=>{if(n&&a)return{linkClassName:n,linkActiveClassName:a,minHeadingLevel:d,maxHeadingLevel:u}},[n,a,d,u])),(0,l.jsx)(X,{toc:m,className:t,linkClassName:n,...r})}const K={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function ee({collapsed:e,...t}){return(0,l.jsx)("button",{type:"button",...t,className:(0,u.A)("clean-btn",K.tocCollapsibleButton,!e&&K.tocCollapsibleButtonExpanded,t.className),children:(0,l.jsx)(g.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const te={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function ne({toc:e,className:t,minHeadingLevel:n,maxHeadingLevel:s}){const{collapsed:a,toggleCollapsed:i}=(0,R.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.A)(te.tocCollapsible,!a&&te.tocCollapsibleExpanded,t),children:[(0,l.jsx)(ee,{collapsed:a,onClick:i}),(0,l.jsx)(R.N,{lazy:!0,className:te.tocCollapsibleContent,collapsed:a,children:(0,l.jsx)(Y,{toc:e,minHeadingLevel:n,maxHeadingLevel:s})})]})}const se={tocMobile:"tocMobile_ITEo"};function ae(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(ne,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(f.G.docs.docTocMobile,se.tocMobile)})}const ie={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},le="table-of-contents__link toc-highlight",oe="table-of-contents__link--active";function re({className:e,...t}){return(0,l.jsx)("div",{className:(0,u.A)(ie.tableOfContents,"thin-scrollbar",e),children:(0,l.jsx)(Y,{...t,linkClassName:le,linkActiveClassName:oe})})}function ce(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(re,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:f.G.docs.docTocDesktop})}var de=n(51107),ue=n(28453),me=n(29441);function he({children:e}){return(0,l.jsx)(ue.x,{components:me.A,children:e})}function xe({children:e}){const t=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.A)(f.G.docs.docMarkdown,"markdown"),children:[t&&(0,l.jsx)("header",{children:(0,l.jsx)(de.A,{as:"h1",children:t})}),(0,l.jsx)(he,{children:e})]})}var be=n(26972),pe=n(99169),ge=n(86025);function ve(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,l.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const fe={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function je(){const e=(0,ge.Ay)("/");return(0,l.jsx)("li",{className:"breadcrumbs__item",children:(0,l.jsx)(p.A,{"aria-label":(0,g.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,l.jsx)(ve,{className:fe.breadcrumbHomeIcon})})})}var Ae=n(5260);function Ne(e){const t=function({breadcrumbs:e}){const{siteConfig:t}=(0,b.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter(e=>e.href).map((e,n)=>({"@type":"ListItem",position:n+1,name:e.label,item:`${t.url}${e.href}`}))}}({breadcrumbs:e.breadcrumbs});return(0,l.jsx)(Ae.A,{children:(0,l.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}const Ce={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function Le({children:e,href:t,isLast:n}){const s="breadcrumbs__link";return n?(0,l.jsx)("span",{className:s,children:e}):t?(0,l.jsx)(p.A,{className:s,href:t,children:(0,l.jsx)("span",{children:e})}):(0,l.jsx)("span",{className:s,children:e})}function _e({children:e,active:t}){return(0,l.jsx)("li",{className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:e})}function Te(){const e=(0,be.OF)(),t=(0,pe.Dt)();return e?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(Ne,{breadcrumbs:e}),(0,l.jsx)("nav",{className:(0,u.A)(f.G.docs.docBreadcrumbs,Ce.breadcrumbsContainer),"aria-label":(0,g.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,l.jsxs)("ul",{className:"breadcrumbs",children:[t&&(0,l.jsx)(je,{}),e.map((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,l.jsx)(_e,{active:s,children:(0,l.jsx)(Le,{href:a,isLast:s,children:t.label})},n)})]})})]}):null}function ke(){return(0,l.jsx)(g.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function ye(){return(0,l.jsx)(g.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function He(){return(0,l.jsx)(Ae.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function we(){return(0,l.jsx)(g.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function Ue(){return(0,l.jsx)(g.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}var Be=n(27293);function Me({className:e}){return(0,l.jsx)(Be.A,{type:"caution",title:(0,l.jsx)(we,{}),className:(0,u.A)(e,f.G.common.draftBanner),children:(0,l.jsx)(Ue,{})})}function Ie({className:e}){return(0,l.jsx)(Be.A,{type:"caution",title:(0,l.jsx)(ke,{}),className:(0,u.A)(e,f.G.common.unlistedBanner),children:(0,l.jsx)(ye,{})})}function Ee(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(He,{}),(0,l.jsx)(Ie,{...e})]})}function Ve({metadata:e}){const{unlisted:t,frontMatter:n}=e;return(0,l.jsxs)(l.Fragment,{children:[(t||n.unlisted)&&(0,l.jsx)(Ee,{}),n.draft&&(0,l.jsx)(Me,{})]})}const Oe={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function Ge({children:e}){const t=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,l.jsx)(ae,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,l.jsx)(ce,{})}}(),{metadata:n}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.A)("col",!t.hidden&&Oe.docItemCol),children:[(0,l.jsx)(Ve,{metadata:n}),(0,l.jsx)(T,{}),(0,l.jsxs)("div",{className:Oe.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(Te,{}),(0,l.jsx)(k,{}),t.mobile,(0,l.jsx)(xe,{children:e}),(0,l.jsx)(S,{})]}),(0,l.jsx)(x,{})]})]}),t.desktop&&(0,l.jsx)("div",{className:"col col--3",children:t.desktop})]})}function De(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.e3,{className:t,children:[(0,l.jsx)(d,{}),(0,l.jsx)(Ge,{children:(0,l.jsx)(n,{})})]})})}},86929:(e,t,n)=>{n.d(t,{A:()=>r});n(96540);var s=n(18215),a=n(21312),i=n(28774),l=n(74848);function o(e){const{permalink:t,title:n,subLabel:a,isNext:o}=e;return(0,l.jsxs)(i.A,{className:(0,s.A)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[a&&(0,l.jsx)("div",{className:"pagination-nav__sublabel",children:a}),(0,l.jsx)("div",{className:"pagination-nav__label",children:n})]})}function r(e){const{className:t,previous:n,next:i}=e;return(0,l.jsxs)("nav",{className:(0,s.A)(t,"pagination-nav"),"aria-label":(0,a.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,l.jsx)(o,{...n,subLabel:(0,l.jsx)(a.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),i&&(0,l.jsx)(o,{...i,subLabel:(0,l.jsx)(a.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}}}]); \ No newline at end of file diff --git a/assets/js/17896441.c1ed24c3.js b/assets/js/17896441.c1ed24c3.js deleted file mode 100644 index 9cd6e49d82..0000000000 --- a/assets/js/17896441.c1ed24c3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8401],{22241:(e,t,n)=>{n.r(t),n.d(t,{default:()=>we});var s=n(96540),a=n(45500),i=n(89532),l=n(74848);const o=s.createContext(null);function r({children:e,content:t}){const n=function(e){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}),[e])}(t);return(0,l.jsx)(o.Provider,{value:n,children:e})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=c();return(0,l.jsx)(a.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(18215),m=n(24581),h=n(86929);function x(){const{metadata:e}=c();return(0,l.jsx)(h.A,{className:"docusaurus-mt-lg",previous:e.previous,next:e.next})}var b=n(44586),p=n(28774),v=n(21312),g=n(44070),f=n(17559),j=n(53886),A=n(23025);const N={unreleased:function({siteTitle:e,versionMetadata:t}){return(0,l.jsx)(v.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:t}){return(0,l.jsx)(v.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function C(e){const t=N[e.versionMetadata.banner];return(0,l.jsx)(t,{...e})}function L({versionLabel:e,to:t,onClick:n}){return(0,l.jsx)(v.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,l.jsx)("b",{children:(0,l.jsx)(p.A,{to:t,onClick:n,children:(0,l.jsx)(v.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function _({className:e,versionMetadata:t}){const{siteConfig:{title:n}}=(0,b.A)(),{pluginId:s}=(0,g.vT)({failfast:!0}),{savePreferredVersionName:a}=(0,j.g1)(s),{latestDocSuggestion:i,latestVersionSuggestion:o}=(0,g.HW)(s),r=i??(c=o).docs.find(e=>e.id===c.mainDocId);var c;return(0,l.jsxs)("div",{className:(0,u.A)(e,f.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,l.jsx)("div",{children:(0,l.jsx)(C,{siteTitle:n,versionMetadata:t})}),(0,l.jsx)("div",{className:"margin-top--md",children:(0,l.jsx)(L,{versionLabel:o.label,to:r.path,onClick:()=>a(o.name)})})]})}function T({className:e}){const t=(0,A.r)();return t.banner?(0,l.jsx)(_,{className:e,versionMetadata:t}):null}function k({className:e}){const t=(0,A.r)();return t.badge?(0,l.jsx)("span",{className:(0,u.A)(e,f.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(v.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}const y={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function H({permalink:e,label:t,count:n,description:s}){return(0,l.jsxs)(p.A,{rel:"tag",href:e,title:s,className:(0,u.A)(y.tag,n?y.tagWithCount:y.tagRegular),children:[t,n&&(0,l.jsx)("span",{children:n})]})}const w={tags:"tags_jXut",tag:"tag_QGVx"};function U({tags:e}){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(v.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,u.A)(w.tags,"padding--none","margin-left--sm"),children:e.map(e=>(0,l.jsx)("li",{className:w.tag,children:(0,l.jsx)(H,{...e})},e.permalink))})]})}const B={iconEdit:"iconEdit_Z9Sw"};function M({className:e,...t}){return(0,l.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(B.iconEdit,e),"aria-hidden":"true",...t,children:(0,l.jsx)("g",{children:(0,l.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function I({editUrl:e}){return(0,l.jsxs)(p.A,{to:e,className:f.G.common.editThisPage,children:[(0,l.jsx)(M,{}),(0,l.jsx)(v.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}function E(e={}){const{i18n:{currentLocale:t}}=(0,b.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,b.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}function V({lastUpdatedAt:e}){const t=new Date(e),n=E({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(t);return(0,l.jsx)(v.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,l.jsx)("b",{children:(0,l.jsx)("time",{dateTime:t.toISOString(),itemProp:"dateModified",children:n})})},children:" on {date}"})}function O({lastUpdatedBy:e}){return(0,l.jsx)(v.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,l.jsx)("b",{children:e})},children:" by {user}"})}function G({lastUpdatedAt:e,lastUpdatedBy:t}){return(0,l.jsxs)("span",{className:f.G.common.lastUpdated,children:[(0,l.jsx)(v.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,l.jsx)(V,{lastUpdatedAt:e}):"",byUser:t?(0,l.jsx)(O,{lastUpdatedBy:t}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const D={lastUpdated:"lastUpdated_JAkA"};function F({className:e,editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s}){return(0,l.jsxs)("div",{className:(0,u.A)("row",e),children:[(0,l.jsx)("div",{className:"col",children:t&&(0,l.jsx)(I,{editUrl:t})}),(0,l.jsx)("div",{className:(0,u.A)("col",D.lastUpdated),children:(n||s)&&(0,l.jsx)(G,{lastUpdatedAt:n,lastUpdatedBy:s})})]})}function S(){const{metadata:e}=c(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(t||n||s);return i||o?(0,l.jsxs)("footer",{className:(0,u.A)(f.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,l.jsx)("div",{className:(0,u.A)("row margin-top--sm",f.G.docs.docFooterTagsRow),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(U,{tags:a})})}),o&&(0,l.jsx)(F,{className:(0,u.A)("margin-top--sm",f.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var R=n(41422),P=n(65195);const z={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function q({collapsed:e,...t}){return(0,l.jsx)("button",{type:"button",...t,className:(0,u.A)("clean-btn",z.tocCollapsibleButton,!e&&z.tocCollapsibleButtonExpanded,t.className),children:(0,l.jsx)(v.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const $={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function W({toc:e,className:t,minHeadingLevel:n,maxHeadingLevel:s}){const{collapsed:a,toggleCollapsed:i}=(0,R.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.A)($.tocCollapsible,!a&&$.tocCollapsibleExpanded,t),children:[(0,l.jsx)(q,{collapsed:a,onClick:i}),(0,l.jsx)(R.N,{lazy:!0,className:$.tocCollapsibleContent,collapsed:a,children:(0,l.jsx)(P.A,{toc:e,minHeadingLevel:n,maxHeadingLevel:s})})]})}const Z={tocMobile:"tocMobile_ITEo"};function J(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(W,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(f.G.docs.docTocMobile,Z.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",Y="table-of-contents__link--active";function K({className:e,...t}){return(0,l.jsx)("div",{className:(0,u.A)(Q.tableOfContents,"thin-scrollbar",e),children:(0,l.jsx)(P.A,{...t,linkClassName:X,linkActiveClassName:Y})})}function ee(){const{toc:e,frontMatter:t}=c();return(0,l.jsx)(K,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:f.G.docs.docTocDesktop})}var te=n(51107),ne=n(28453),se=n(29441);function ae({children:e}){return(0,l.jsx)(ne.x,{components:se.A,children:e})}function ie({children:e}){const t=function(){const{metadata:e,frontMatter:t,contentTitle:n}=c();return t.hide_title||void 0!==n?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.A)(f.G.docs.docMarkdown,"markdown"),children:[t&&(0,l.jsx)("header",{children:(0,l.jsx)(te.A,{as:"h1",children:t})}),(0,l.jsx)(ae,{children:e})]})}var le=n(26972),oe=n(99169),re=n(86025);function ce(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,l.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const de={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function ue(){const e=(0,re.Ay)("/");return(0,l.jsx)("li",{className:"breadcrumbs__item",children:(0,l.jsx)(p.A,{"aria-label":(0,v.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,l.jsx)(ce,{className:de.breadcrumbHomeIcon})})})}var me=n(5260);function he(e){const t=function({breadcrumbs:e}){const{siteConfig:t}=(0,b.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter(e=>e.href).map((e,n)=>({"@type":"ListItem",position:n+1,name:e.label,item:`${t.url}${e.href}`}))}}({breadcrumbs:e.breadcrumbs});return(0,l.jsx)(me.A,{children:(0,l.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}const xe={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function be({children:e,href:t,isLast:n}){const s="breadcrumbs__link";return n?(0,l.jsx)("span",{className:s,children:e}):t?(0,l.jsx)(p.A,{className:s,href:t,children:(0,l.jsx)("span",{children:e})}):(0,l.jsx)("span",{className:s,children:e})}function pe({children:e,active:t}){return(0,l.jsx)("li",{className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:e})}function ve(){const e=(0,le.OF)(),t=(0,oe.Dt)();return e?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(he,{breadcrumbs:e}),(0,l.jsx)("nav",{className:(0,u.A)(f.G.docs.docBreadcrumbs,xe.breadcrumbsContainer),"aria-label":(0,v.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,l.jsxs)("ul",{className:"breadcrumbs",children:[t&&(0,l.jsx)(ue,{}),e.map((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,l.jsx)(pe,{active:s,children:(0,l.jsx)(be,{href:a,isLast:s,children:t.label})},n)})]})})]}):null}function ge(){return(0,l.jsx)(v.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function fe(){return(0,l.jsx)(v.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function je(){return(0,l.jsx)(me.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function Ae(){return(0,l.jsx)(v.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function Ne(){return(0,l.jsx)(v.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}var Ce=n(27293);function Le({className:e}){return(0,l.jsx)(Ce.A,{type:"caution",title:(0,l.jsx)(Ae,{}),className:(0,u.A)(e,f.G.common.draftBanner),children:(0,l.jsx)(Ne,{})})}function _e({className:e}){return(0,l.jsx)(Ce.A,{type:"caution",title:(0,l.jsx)(ge,{}),className:(0,u.A)(e,f.G.common.unlistedBanner),children:(0,l.jsx)(fe,{})})}function Te(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(je,{}),(0,l.jsx)(_e,{...e})]})}function ke({metadata:e}){const{unlisted:t,frontMatter:n}=e;return(0,l.jsxs)(l.Fragment,{children:[(t||n.unlisted)&&(0,l.jsx)(Te,{}),n.draft&&(0,l.jsx)(Le,{})]})}const ye={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function He({children:e}){const t=function(){const{frontMatter:e,toc:t}=c(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,l.jsx)(J,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,l.jsx)(ee,{})}}(),{metadata:n}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.A)("col",!t.hidden&&ye.docItemCol),children:[(0,l.jsx)(ke,{metadata:n}),(0,l.jsx)(T,{}),(0,l.jsxs)("div",{className:ye.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(ve,{}),(0,l.jsx)(k,{}),t.mobile,(0,l.jsx)(ie,{children:e}),(0,l.jsx)(S,{})]}),(0,l.jsx)(x,{})]})]}),t.desktop&&(0,l.jsx)("div",{className:"col col--3",children:t.desktop})]})}function we(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.e3,{className:t,children:[(0,l.jsx)(d,{}),(0,l.jsx)(He,{children:(0,l.jsx)(n,{})})]})})}},65195:(e,t,n)=>{n.d(t,{A:()=>b});var s=n(96540),a=n(6342);function i(e){const t=e.map(e=>({...e,parentIndex:-1,children:[]})),n=Array(7).fill(-1);t.forEach((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t});const s=[];return t.forEach(e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)}),s}function l({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return e.flatMap(e=>{const s=l({toc:e.children,minHeadingLevel:t,maxHeadingLevel:n});return function(e){return e.level>=t&&e.level<=n}(e)?[{...e,children:s}]:s})}function o(e){const t=e.getBoundingClientRect();return t.top===t.bottom?o(e.parentNode):t}function r(e,{anchorTopOffset:t}){const n=e.find(e=>o(e).top>=t);if(n){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight},[t]),e}function d(e){const t=(0,s.useRef)(void 0),n=c();(0,s.useEffect)(()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function({minHeadingLevel:e,maxHeadingLevel:t}){const n=[];for(let s=e;s<=t;s+=1)n.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(n.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=r(o,{anchorTopOffset:n.current}),d=e.find(e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e));e.forEach(e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===d)})}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}},[e,n])}var u=n(28774),m=n(74848);function h({toc:e,className:t,linkClassName:n,isChild:s}){return e.length?(0,m.jsx)("ul",{className:s?void 0:t,children:e.map(e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:n??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:t,linkClassName:n})]},e.id))}):null}const x=s.memo(h);function b({toc:e,className:t="table-of-contents table-of-contents__left-border",linkClassName:n="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:r,maxHeadingLevel:c,...u}){const h=(0,a.p)(),b=r??h.tableOfContents.minHeadingLevel,p=c??h.tableOfContents.maxHeadingLevel,v=function({toc:e,minHeadingLevel:t,maxHeadingLevel:n}){return(0,s.useMemo)(()=>l({toc:i(e),minHeadingLevel:t,maxHeadingLevel:n}),[e,t,n])}({toc:e,minHeadingLevel:b,maxHeadingLevel:p});return d((0,s.useMemo)(()=>{if(n&&o)return{linkClassName:n,linkActiveClassName:o,minHeadingLevel:b,maxHeadingLevel:p}},[n,o,b,p])),(0,m.jsx)(x,{toc:v,className:t,linkClassName:n,...u})}},86929:(e,t,n)=>{n.d(t,{A:()=>r});n(96540);var s=n(18215),a=n(21312),i=n(28774),l=n(74848);function o(e){const{permalink:t,title:n,subLabel:a,isNext:o}=e;return(0,l.jsxs)(i.A,{className:(0,s.A)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[a&&(0,l.jsx)("div",{className:"pagination-nav__sublabel",children:a}),(0,l.jsx)("div",{className:"pagination-nav__label",children:n})]})}function r(e){const{className:t,previous:n,next:i}=e;return(0,l.jsxs)("nav",{className:(0,s.A)(t,"pagination-nav"),"aria-label":(0,a.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,l.jsx)(o,{...n,subLabel:(0,l.jsx)(a.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),i&&(0,l.jsx)(o,{...i,subLabel:(0,l.jsx)(a.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}}}]); \ No newline at end of file diff --git a/assets/js/22dd74f7.8cfb3d42.js b/assets/js/22dd74f7.8cfb3d42.js new file mode 100644 index 0000000000..de2c9eeb64 --- /dev/null +++ b/assets/js/22dd74f7.8cfb3d42.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{55226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Welcome to Langflow","href":"/","docId":"Get-Started/welcome-to-langflow","unlisted":false},{"type":"category","label":"Get started","items":[{"type":"link","label":"About Langflow","href":"/about-langflow","docId":"Get-Started/about-langflow","unlisted":false},{"type":"link","label":"Install Langflow","href":"/get-started-installation","docId":"Get-Started/get-started-installation","unlisted":false},{"type":"link","label":"Quickstart","href":"/get-started-quickstart","docId":"Get-Started/get-started-quickstart","unlisted":false},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Create a vector RAG chatbot","href":"/chat-with-rag","docId":"Tutorials/chat-with-rag","unlisted":false},{"type":"link","label":"Create a chatbot that can ingest files","href":"/chat-with-files","docId":"Tutorials/chat-with-files","unlisted":false},{"type":"link","label":"Connect applications to agents","href":"/agent-tutorial","docId":"Tutorials/agent","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Templates","items":[{"type":"link","label":"Basic prompting","href":"/basic-prompting","docId":"Templates/basic-prompting","unlisted":false},{"type":"link","label":"Simple agent","href":"/simple-agent","docId":"Templates/simple-agent","unlisted":false},{"type":"link","label":"Blog writer","href":"/blog-writer","docId":"Templates/blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/document-qa","docId":"Templates/document-qa","unlisted":false},{"type":"link","label":"Memory chatbot","href":"/memory-chatbot","docId":"Templates/memory-chatbot","unlisted":false},{"type":"link","label":"Vector store RAG","href":"/vector-store-rag","docId":"Templates/vector-store-rag","unlisted":false},{"type":"link","label":"Financial report parser","href":"/financial-report-parser","docId":"Templates/financial-report-parser","unlisted":false},{"type":"link","label":"Sequential tasks agent","href":"/sequential-agent","docId":"Templates/sequential-agent","unlisted":false},{"type":"link","label":"Travel planning agent","href":"/travel-planning-agent","docId":"Templates/travel-planning-agent","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Flows","items":[{"type":"link","label":"Use the visual editor","href":"/concepts-overview","docId":"Concepts/concepts-overview","unlisted":false},{"type":"link","label":"Build flows","href":"/concepts-flows","docId":"Concepts/concepts-flows","unlisted":false},{"type":"link","label":"Run flows","href":"/concepts-publish","docId":"Concepts/concepts-publish","unlisted":false},{"type":"link","label":"Import and export flows","href":"/concepts-flows-import","docId":"Concepts/concepts-flows-import","unlisted":false},{"type":"link","label":"Use the Playground","href":"/concepts-playground","docId":"Concepts/concepts-playground","unlisted":false},{"type":"link","label":"Use voice mode","href":"/concepts-voice-mode","docId":"Concepts/concepts-voice-mode","unlisted":false},{"type":"link","label":"Langflow objects","href":"/concepts-objects","docId":"Concepts/concepts-objects","unlisted":false},{"type":"link","label":"Manage files","href":"/concepts-file-management","docId":"Concepts/concepts-file-management","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Components","items":[{"type":"link","label":"Components overview","href":"/concepts-components","docId":"Concepts/concepts-components","unlisted":false},{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"link","label":"Bundles","href":"/components-bundle-components","docId":"Components/components-bundles","unlisted":false},{"type":"link","label":"Create custom Python components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"link","label":"Embedding models","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Inputs and outputs","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Logic","href":"/components-logic","docId":"Components/components-logic","unlisted":false},{"type":"link","label":"Memories","href":"/components-memories","docId":"Components/components-memories","unlisted":false},{"type":"link","label":"Language models","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Processing","href":"/components-processing","docId":"Components/components-processing","unlisted":false},{"type":"link","label":"Prompts","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false},{"type":"link","label":"Tools","href":"/components-tools","docId":"Components/components-tools","unlisted":false},{"type":"link","label":"Vector stores","href":"/components-vector-stores","docId":"Components/components-vector-stores","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Agents","items":[{"type":"link","label":"Use Langflow Agents","href":"/agents","docId":"Agents/agents","unlisted":false},{"type":"link","label":"Configure tools for agents","href":"/agents-tools","docId":"Agents/agents-tools","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Model Context Protocol (MCP)","items":[{"type":"link","label":"Use Langflow as an MCP server","href":"/mcp-server","docId":"Concepts/mcp-server","unlisted":false},{"type":"link","label":"Use Langflow as an MCP client","href":"/mcp-client","docId":"Components/mcp-client","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Configuration","items":[{"type":"link","label":"API keys","href":"/configuration-api-keys","docId":"Configuration/configuration-api-keys","unlisted":false},{"type":"link","label":"Authentication","href":"/configuration-authentication","docId":"Configuration/configuration-authentication","unlisted":false},{"type":"link","label":"Langflow CLI","href":"/configuration-cli","docId":"Configuration/configuration-cli","unlisted":false},{"type":"link","label":"Configure an external PostgreSQL database","href":"/configuration-custom-database","docId":"Configuration/configuration-custom-database","unlisted":false},{"type":"link","label":"Global variables","href":"/configuration-global-variables","docId":"Configuration/configuration-global-variables","unlisted":false},{"type":"link","label":"Environment variables","href":"/environment-variables","docId":"Configuration/environment-variables","unlisted":false},{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Contributing/contributing-telemetry","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Develop","items":[{"type":"link","label":"Overview","href":"/develop-overview","docId":"Develop/develop-overview","unlisted":false},{"type":"link","label":"Develop an application in Langflow","href":"/develop-application","docId":"Develop/develop-application","unlisted":false},{"type":"link","label":"Install custom dependencies","href":"/install-custom-dependencies","docId":"Develop/install-custom-dependencies","unlisted":false},{"type":"link","label":"Memory management","href":"/memory","docId":"Develop/memory","unlisted":false},{"type":"link","label":"Session ID","href":"/session-id","docId":"Develop/session-id","unlisted":false},{"type":"link","label":"Logging","href":"/logging","docId":"Develop/logging","unlisted":false},{"type":"link","label":"Webhook","href":"/webhook","docId":"Develop/webhook","unlisted":false},{"type":"category","label":"Clients","items":[{"type":"link","label":"TypeScript Client","href":"/typescript-client","docId":"Develop/Clients/typescript-client","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Deployment","items":[{"type":"link","label":"Deployment overview","href":"/deployment-overview","docId":"Deployment/deployment-overview","unlisted":false},{"type":"link","label":"Docker","href":"/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"Deploy a public Langflow server","href":"/deployment-public-server","docId":"Deployment/deployment-public-server","unlisted":false},{"type":"link","label":"Deploy Langflow on a remote server","href":"/deployment-caddyfile","docId":"Deployment/deployment-caddyfile","unlisted":false},{"type":"category","label":"Kubernetes","items":[{"type":"link","label":"Langflow architecture and best practices","href":"/deployment-prod-best-practices","docId":"Deployment/deployment-prod-best-practices","unlisted":false},{"type":"link","label":"Deploy in development","href":"/deployment-kubernetes-dev","docId":"Deployment/deployment-kubernetes-dev","unlisted":false},{"type":"link","label":"Deploy in production","href":"/deployment-kubernetes-prod","docId":"Deployment/deployment-kubernetes-prod","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Google Cloud Platform","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"Hugging Face Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"API reference","items":[{"type":"link","label":"Get started with the Langflow API","href":"/api-reference-api-examples","docId":"API-Reference/api-reference-api-examples","unlisted":false},{"type":"link","label":"Flow trigger endpoints","href":"/api-flows-run","docId":"API-Reference/api-flows-run","unlisted":false},{"type":"link","label":"Flow management endpoints","href":"/api-flows","docId":"API-Reference/api-flows","unlisted":false},{"type":"link","label":"Files endpoints","href":"/api-files","docId":"API-Reference/api-files","unlisted":false},{"type":"link","label":"Projects endpoints","href":"/api-projects","docId":"API-Reference/api-projects","unlisted":false},{"type":"link","label":"Logs endpoints","href":"/api-logs","docId":"API-Reference/api-logs","unlisted":false},{"type":"link","label":"Monitor endpoints","href":"/api-monitor","docId":"API-Reference/api-monitor","unlisted":false},{"type":"link","label":"Build endpoints","href":"/api-build","docId":"API-Reference/api-build","unlisted":false},{"type":"link","label":"Users endpoints","href":"/api-users","docId":"API-Reference/api-users","unlisted":false},{"type":"link","label":"Langflow API specification","href":"/api"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Integrations","items":[{"type":"link","label":"Apify","href":"/integrations-apify","docId":"Integrations/Apify/integrations-apify","unlisted":false},{"type":"link","label":"Arize","href":"/integrations-arize","docId":"Integrations/Arize/integrations-arize","unlisted":false},{"type":"link","label":"AssemblyAI","href":"/integrations-assemblyai","docId":"Integrations/integrations-assemblyai","unlisted":false},{"type":"link","label":"Astra DB MCP server","href":"/mcp-component-astra","docId":"Integrations/mcp-component-astra","unlisted":false},{"type":"link","label":"Cleanlab","href":"/integrations-cleanlab","docId":"Integrations/Cleanlab/integrations-cleanlab","unlisted":false},{"type":"link","label":"Composio","href":"/integrations-composio","docId":"Integrations/Composio/integrations-composio","unlisted":false},{"type":"link","label":"Docling","href":"/integrations-docling","docId":"Integrations/Docling/integrations-docling","unlisted":false},{"type":"category","label":"Google","items":[{"type":"link","label":"Integrate Google Cloud Vertex AI with Langflow","href":"/integrations-setup-google-cloud-vertex-ai-langflow","docId":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","unlisted":false},{"type":"link","label":"Integrate Google BigQuery with Langflow","href":"/integrations-google-big-query","docId":"Integrations/Google/integrations-google-big-query","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Langfuse","href":"/integrations-langfuse","docId":"Integrations/integrations-langfuse","unlisted":false},{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Integrations/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Integrations/integrations-langwatch","unlisted":false},{"type":"link","label":"Opik","href":"/integrations-opik","docId":"Integrations/integrations-opik","unlisted":false},{"type":"category","label":"Notion","items":[{"type":"link","label":"Setup","href":"/integrations/notion/setup","docId":"Integrations/Notion/integrations-notion","unlisted":false},{"type":"link","label":"Notion Conversational Agent","href":"/integrations/notion/notion-agent-conversational","docId":"Integrations/Notion/notion-agent-conversational","unlisted":false},{"type":"link","label":"Notion Meeting Notes Agent","href":"/integrations/notion/notion-agent-meeting-notes","docId":"Integrations/Notion/notion-agent-meeting-notes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"NVIDIA","items":[{"type":"link","label":"NVIDIA Ingest","href":"/integrations-nvidia-ingest","docId":"Integrations/Nvidia/integrations-nvidia-ingest","unlisted":false},{"type":"link","label":"NVIDIA NIM on WSL2","href":"/integrations-nvidia-ingest-wsl2","docId":"Integrations/Nvidia/integrations-nvidia-nim-wsl2","unlisted":false},{"type":"link","label":"NVIDIA G-Assist","href":"/integrations-nvidia-g-assist","docId":"Integrations/Nvidia/integrations-nvidia-g-assist","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Contribute","items":[{"type":"link","label":"Join the Langflow community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false},{"type":"link","label":"Contribute to Langflow","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"Contribute components","href":"/contributing-components","docId":"Contributing/contributing-components","unlisted":false},{"type":"link","label":"Contribute component tests","href":"/contributing-component-tests","docId":"Contributing/contributing-component-tests","unlisted":false},{"type":"link","label":"Contribute templates","href":"/contributing-templates","docId":"Contributing/contributing-templates","unlisted":false},{"type":"link","label":"Contribute bundles","href":"/contributing-bundles","docId":"Contributing/contributing-bundles","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Release notes","items":[{"type":"link","label":"Release notes","href":"/release-notes","docId":"Support/release-notes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Support","items":[{"type":"link","label":"Troubleshoot","href":"/troubleshoot","docId":"Support/troubleshooting","unlisted":false},{"type":"link","label":"Get help and request enhancements","href":"/contributing-github-issues","docId":"Contributing/contributing-github-issues","unlisted":false},{"type":"link","label":"Enterprise support","href":"/luna-for-langflow","docId":"Support/luna-for-langflow","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"html","className":"sidebar-ad","value":"\\n \\n \\n
\\n Use Langflow in the cloud\\n Sign up for DataStax Langflow\\n
\\n \\n "}]},"docs":{"Agents/agents":{"id":"Agents/agents","title":"Use Langflow Agents","description":"Agents use LLMs as a brain to autonomously analyze problems and select tools to solve them.","sidebar":"docs"},"Agents/agents-tools":{"id":"Agents/agents-tools","title":"Configure tools for agents","description":"Configure tools connected to agents to extend their capabilities.","sidebar":"docs"},"API-Reference/api-build":{"id":"API-Reference/api-build","title":"Build endpoints","description":"The /build endpoints are used by Langflow\'s frontend Workspace and Playground code.","sidebar":"docs"},"API-Reference/api-files":{"id":"API-Reference/api-files","title":"Files endpoints","description":"Use the /files endpoints to move files between your local machine and Langflow.","sidebar":"docs"},"API-Reference/api-flows":{"id":"API-Reference/api-flows","title":"Flow management endpoints","description":"Use the /flows endpoint to create, read, update, and delete flows.","sidebar":"docs"},"API-Reference/api-flows-run":{"id":"API-Reference/api-flows-run","title":"Flow trigger endpoints","description":"Use the /run and /webhook endpoints to run flows.","sidebar":"docs"},"API-Reference/api-logs":{"id":"API-Reference/api-logs","title":"Logs endpoints","description":"Retrieve logs for your Langflow flow.","sidebar":"docs"},"API-Reference/api-monitor":{"id":"API-Reference/api-monitor","title":"Monitor endpoints","description":"Use the /monitor endpoint to monitor and modify messages passed between Langflow components, vertex builds, and transactions.","sidebar":"docs"},"API-Reference/api-projects":{"id":"API-Reference/api-projects","title":"Projects endpoints","description":"Use the /projects endpoint to create, read, update, and delete Langflow projects.","sidebar":"docs"},"API-Reference/api-reference-api-examples":{"id":"API-Reference/api-reference-api-examples","title":"Get started with the Langflow API","description":"You can use the Langflow API for programmatic interactions with Langflow, such as the following:","sidebar":"docs"},"API-Reference/api-users":{"id":"API-Reference/api-users","title":"Users endpoints","description":"Use the /users endpoint to manage user accounts in Langflow.","sidebar":"docs"},"Components/components-agents":{"id":"Components/components-agents","title":"Agents","description":"Agent components define the behavior and capabilities of AI agents in your flow.","sidebar":"docs"},"Components/components-bundles":{"id":"Components/components-bundles","title":"Bundles","description":"Bundled components are based on standard Langflow functionality, so you add them to your flows and configure them in much the same way as the standard components.","sidebar":"docs"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Create custom Python components","description":"Custom components extend Langflow\'s functionality through Python classes that inherit from Component. This enables integration of new features, data manipulation, external services, and specialized tools.","sidebar":"docs"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"Data components load data from a source into your flow.","sidebar":"docs"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embedding models","description":"In Langflow version 1.5, the singular Embedding model component replaces many provider-specific embedding models components. Any provider-specific embedding model components that weren\'t incorporated into the singular component were moved to Bundles.","sidebar":"docs"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","sidebar":"docs"},"Components/components-io":{"id":"Components/components-io","title":"Inputs and outputs","description":"Input and output components define where data enters and exits your flow.","sidebar":"docs"},"Components/components-logic":{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","sidebar":"docs"},"Components/components-memories":{"id":"Components/components-memories","title":"Memories","description":"Components in the Memories category are moved to Bundles as of Langflow 1.5.","sidebar":"docs"},"Components/components-models":{"id":"Components/components-models","title":"Language models","description":"In Langflow version 1.5, the singular Language model component replaces many provider-specific model components. Any provider-specific model components that weren\'t incorporated into the singular component were moved to Bundles.","sidebar":"docs"},"Components/components-processing":{"id":"Components/components-processing","title":"Processing","description":"Processing components process and transform data within a flow, like converting Data to text with a Parser component, filtering data with natural language with the Smart function, or saving data to your local machine with Save File.","sidebar":"docs"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompts","description":"A prompt is a structured input to a language model that instructs the model how to handle user inputs and variables.","sidebar":"docs"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"The Tools category in Langflow is removed as of Langflow 1.5.","sidebar":"docs"},"Components/components-vector-stores":{"id":"Components/components-vector-stores","title":"Vector stores","description":"Vector databases store vector data, which backs AI workloads like chatbots and Retrieval Augmented Generation.","sidebar":"docs"},"Components/mcp-client":{"id":"Components/mcp-client","title":"Use Langflow as an MCP client","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","sidebar":"docs"},"Concepts/concepts-components":{"id":"Concepts/concepts-components","title":"Components overview","description":"Components are the building blocks of your flows.","sidebar":"docs"},"Concepts/concepts-file-management":{"id":"Concepts/concepts-file-management","title":"Manage files","description":"Upload, store, and manage files in Langflow\'s File management system.","sidebar":"docs"},"Concepts/concepts-flows":{"id":"Concepts/concepts-flows","title":"Build flows","description":"A flow is a functional representation of an application workflow.","sidebar":"docs"},"Concepts/concepts-flows-import":{"id":"Concepts/concepts-flows-import","title":"Import and export flows","description":"You can export flows to transfer them between Langflow instances, share them with others, or create backups.","sidebar":"docs"},"Concepts/concepts-objects":{"id":"Concepts/concepts-objects","title":"Langflow objects","description":"In Langflow, objects are Pydantic models that serve as structured, functional representations of data.","sidebar":"docs"},"Concepts/concepts-overview":{"id":"Concepts/concepts-overview","title":"Use the visual editor","description":"You use Langflow\'s visual editor to create, test, and share flows, which are functional representations of application workflows.","sidebar":"docs"},"Concepts/concepts-playground":{"id":"Concepts/concepts-playground","title":"Use the Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with LLMs, allowing users to chat, access memories, and monitor inputs and outputs. Here, users can directly prototype their models, making adjustments and observing different outcomes.","sidebar":"docs"},"Concepts/concepts-publish":{"id":"Concepts/concepts-publish","title":"Run flows","description":"After you build a flow, you probably want to run it within an application, such as a chatbot within a mobile app or website.","sidebar":"docs"},"Concepts/concepts-voice-mode":{"id":"Concepts/concepts-voice-mode","title":"Voice mode","description":"The Langflow Playground supports voice mode for interacting with your applications through a microphone.","sidebar":"docs"},"Concepts/mcp-server":{"id":"Concepts/mcp-server","title":"Use Langflow as an MCP server","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","sidebar":"docs"},"Configuration/configuration-api-keys":{"id":"Configuration/configuration-api-keys","title":"API keys","description":"You can use Langflow API keys to interact with Langflow programmatically.","sidebar":"docs"},"Configuration/configuration-authentication":{"id":"Configuration/configuration-authentication","title":"Authentication","description":"This guide covers Langflow\'s authentication system and API key management, including how to secure your deployment and manage access to flows and components.","sidebar":"docs"},"Configuration/configuration-cli":{"id":"Configuration/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server.","sidebar":"docs"},"Configuration/configuration-custom-database":{"id":"Configuration/configuration-custom-database","title":"Configure an external PostgreSQL database","description":"Langflow\'s default database is SQLite, but you can configure Langflow to use PostgreSQL instead.","sidebar":"docs"},"Configuration/configuration-global-variables":{"id":"Configuration/configuration-global-variables","title":"Global variables","description":"Global variables let you store and reuse generic input values and credentials across your projects.","sidebar":"docs"},"Configuration/environment-variables":{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","sidebar":"docs"},"Contributing/contributing-bundles":{"id":"Contributing/contributing-bundles","title":"Contribute bundles","description":"Follow these steps to add new component bundles to the Langflow sidebar.","sidebar":"docs"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Join the Langflow community","description":"There are several ways you can interact with the Langflow community and learn more about the Langflow codebase.","sidebar":"docs"},"Contributing/contributing-component-tests":{"id":"Contributing/contributing-component-tests","title":"Contribute component tests","description":"This guide outlines how to structure and implement tests for application components to ensure consistency and adequate coverage.","sidebar":"docs"},"Contributing/contributing-components":{"id":"Contributing/contributing-components","title":"Contribute components","description":"New components are added as objects of the Component class.","sidebar":"docs"},"Contributing/contributing-github-issues":{"id":"Contributing/contributing-github-issues","title":"Get help and request enhancements","description":"The Langflow GitHub repository is an integral part of the Langflow community.","sidebar":"docs"},"Contributing/contributing-how-to-contribute":{"id":"Contributing/contributing-how-to-contribute","title":"Contribute to Langflow","description":"This guide is intended to help you start contributing to Langflow.","sidebar":"docs"},"Contributing/contributing-telemetry":{"id":"Contributing/contributing-telemetry","title":"Telemetry","description":"Langflow uses anonymous telemetry to collect essential usage statistics to enhance functionality and the user experience. This data helps us identify popular features and areas that need improvement, and ensures development efforts align with what you need.","sidebar":"docs"},"Contributing/contributing-templates":{"id":"Contributing/contributing-templates","title":"Contribute templates","description":"Follow these best practices when submitting a template to Langflow.","sidebar":"docs"},"Deployment/deployment-caddyfile":{"id":"Deployment/deployment-caddyfile","title":"Deploy Langflow on a remote server","description":"Learn how to deploy Langflow on your own remote server with secure web access.","sidebar":"docs"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Deploy Langflow on Docker","description":"Running applications in Docker containers ensures consistent behavior across different systems and eliminates dependency conflicts.","sidebar":"docs"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"Deploy Langflow on Google Cloud Platform","description":"This guide demonstrates deploying Langflow on Google Cloud Platform.","sidebar":"docs"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"Deploy Langflow on HuggingFace Spaces","description":"This guide explains how to deploy Langflow on HuggingFace Spaces.","sidebar":"docs"},"Deployment/deployment-kubernetes-dev":{"id":"Deployment/deployment-kubernetes-dev","title":"Deploy the Langflow development environment on Kubernetes","description":"The Langflow Integrated Development Environment (IDE) Helm chart is designed to provide a complete environment for developers to create, test, and debug their flows. It includes both the API and the UI.","sidebar":"docs"},"Deployment/deployment-kubernetes-prod":{"id":"Deployment/deployment-kubernetes-prod","title":"Deploy the Langflow production environment on Kubernetes","description":"The Langflow Runtime chart is tailored for deploying applications in a production environment. It is focused on stability, performance, isolation, and security to ensure that applications run reliably and efficiently.","sidebar":"docs"},"Deployment/deployment-overview":{"id":"Deployment/deployment-overview","title":"Langflow deployment overview","description":"You have a flow, and want to share it with the world in a production environment.","sidebar":"docs"},"Deployment/deployment-prod-best-practices":{"id":"Deployment/deployment-prod-best-practices","title":"Langflow architecture and best practices on Kubernetes","description":"While Langflow offers flexible deployment options, deploying on a Kubernetes cluster is highly recommended for production environments.","sidebar":"docs"},"Deployment/deployment-public-server":{"id":"Deployment/deployment-public-server","title":"Deploy a public Langflow server","description":"By default, your Langflow server at http7860 isn\'t exposed to the public internet.","sidebar":"docs"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Deploy Langflow on Railway","description":"This guide explains how to deploy Langflow on Railway, a cloud infrastructure platform that provides auto-deploy, managed databases, and automatic scaling.","sidebar":"docs"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Deploy Langflow on Render","description":"This guide explains how to deploy Langflow on Render, a cloud platform for deploying web applications and APIs.","sidebar":"docs"},"Develop/Clients/typescript-client":{"id":"Develop/Clients/typescript-client","title":"Langflow TypeScript client","description":"The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API.","sidebar":"docs"},"Develop/develop-application":{"id":"Develop/develop-application","title":"Develop an application in Langflow","description":"Follow this guide to learn how to build an application using Langflow.","sidebar":"docs"},"Develop/develop-overview":{"id":"Develop/develop-overview","title":"About developing and configuring Langflow applications","description":"The following pages provide information about how to develop and configure Langflow applications.","sidebar":"docs"},"Develop/install-custom-dependencies":{"id":"Develop/install-custom-dependencies","title":"Install custom dependencies","description":"Langflow provides optional dependency groups and support for custom dependencies to extend Langflow functionality.","sidebar":"docs"},"Develop/logging":{"id":"Develop/logging","title":"Logging options in Langflow","description":"Langflow uses the loguru library for logging.","sidebar":"docs"},"Develop/memory":{"id":"Develop/memory","title":"Memory management options","description":"Langflow provides flexible memory management options for storage and retrieval.","sidebar":"docs"},"Develop/session-id":{"id":"Develop/session-id","title":"Use session ID to manage communication between components","description":"Session ID is a unique identifier for client/server connections. A single session equals the duration of a client\'s connection to a server.","sidebar":"docs"},"Develop/webhook":{"id":"Develop/webhook","title":"Trigger flows with webhooks","description":"You can use the Webhook component to start a flow run in response to an external event.","sidebar":"docs"},"Get-Started/about-langflow":{"id":"Get-Started/about-langflow","title":"What is Langflow?","description":"Langflow is an open-source, Python-based, customizable framework for building AI applications.","sidebar":"docs"},"Get-Started/get-started-installation":{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"Langflow can be installed in multiple ways:","sidebar":"docs"},"Get-Started/get-started-quickstart":{"id":"Get-Started/get-started-quickstart","title":"Quickstart","description":"Get started with Langflow by loading a template flow, running it, and then serving it at the /run API endpoint.","sidebar":"docs"},"Get-Started/welcome-to-langflow":{"id":"Get-Started/welcome-to-langflow","title":"Welcome to Langflow","description":"Langflow empowers developers to rapidly prototype and build AI applications with a user-friendly visual interface and support for important AI functionality like agents and the MCP.","sidebar":"docs"},"Integrations/Apify/integrations-apify":{"id":"Integrations/Apify/integrations-apify","title":"Apify","description":"Apify is a web scraping and data extraction platform. It provides an Actor Store with more than 3,000 ready-made cloud tools called Actors.","sidebar":"docs"},"Integrations/Arize/integrations-arize":{"id":"Integrations/Arize/integrations-arize","title":"Integrate Arize with Langflow","description":"Arize is a tool built on OpenTelemetry and OpenInference for monitoring and optimizing LLM applications.","sidebar":"docs"},"Integrations/Cleanlab/integrations-cleanlab":{"id":"Integrations/Cleanlab/integrations-cleanlab","title":"Integrate Cleanlab Evaluations with Langflow","description":"Unlock trustworthy Agentic, RAG, and LLM pipelines with Cleanlab\'s evaluation and remediation suite.","sidebar":"docs"},"Integrations/Composio/integrations-composio":{"id":"Integrations/Composio/integrations-composio","title":"Integrate Composio with Langflow","description":"Langflow integrates with Composio as a toolset for your Agent component.","sidebar":"docs"},"Integrations/Docling/integrations-docling":{"id":"Integrations/Docling/integrations-docling","title":"Integrate Docling with Langflow","description":"Langflow integrates with Docling through a suite of components for parsing documents.","sidebar":"docs"},"Integrations/Google/integrations-google-big-query":{"id":"Integrations/Google/integrations-google-big-query","title":"Integrate Google BigQuery with Langflow","description":"Langflow integrates with Google BigQuery through the BigQuery component, allowing you to execute SQL queries and retrieve data from your BigQuery datasets.","sidebar":"docs"},"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow":{"id":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","title":"Integrate Google Cloud Vertex AI with Langflow","description":"Langflow integrates with the Google Vertex AI API for authenticating the Vertex AI embeddings model and Vertex AI components.","sidebar":"docs"},"Integrations/integrations-assemblyai":{"id":"Integrations/integrations-assemblyai","title":"AssemblyAI","description":"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:","sidebar":"docs"},"Integrations/integrations-langfuse":{"id":"Integrations/integrations-langfuse","title":"Langfuse","description":"Langfuse (GitHub) is an open-source platform for LLM observability. It provides tracing and monitoring capabilities for AI applications, helping developers debug, analyze, and optimize their AI systems. Langfuse integrates with various tools and frameworks such as workflows builders like Langflow.","sidebar":"docs"},"Integrations/integrations-langsmith":{"id":"Integrations/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, add your LangChain API key and configuration as Langflow environment variables, and then start Langflow.","sidebar":"docs"},"Integrations/integrations-langwatch":{"id":"Integrations/integrations-langwatch","title":"LangWatch","description":"938674091aac4d9d9aa4aa6eb5c215b4}","sidebar":"docs"},"Integrations/integrations-opik":{"id":"Integrations/integrations-opik","title":"Opik","description":"Opik is an open-source platform designed for evaluating, testing, and monitoring large language model (LLM) applications. Developed by Comet, it aims to facilitate more intuitive collaboration, testing, and monitoring of LLM-based applications.","sidebar":"docs"},"Integrations/mcp-component-astra":{"id":"Integrations/mcp-component-astra","title":"Connect an Astra DB MCP server to Langflow","description":"Use the MCP Tools component to connect Langflow to a Datastax Astra DB MCP server.","sidebar":"docs"},"Integrations/Notion/integrations-notion":{"id":"Integrations/Notion/integrations-notion","title":"Setup","description":"To use Notion components in Langflow, you first need to create a Notion integration and configure it with the necessary capabilities. This guide will walk you through the process of setting up a Notion integration and granting it access to your Notion databases.","sidebar":"docs"},"Integrations/Notion/notion-agent-conversational":{"id":"Integrations/Notion/notion-agent-conversational","title":"Notion Conversational Agent","description":"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.","sidebar":"docs"},"Integrations/Notion/notion-agent-meeting-notes":{"id":"Integrations/Notion/notion-agent-meeting-notes","title":"Notion Meeting Notes Agent","description":"The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.","sidebar":"docs"},"Integrations/Nvidia/integrations-nvidia-g-assist":{"id":"Integrations/Nvidia/integrations-nvidia-g-assist","title":"Integrate NVIDIA G-Assist with Langflow","description":"This component is available only for Langflow users with NVIDIA GPUs on Windows systems.","sidebar":"docs"},"Integrations/Nvidia/integrations-nvidia-ingest":{"id":"Integrations/Nvidia/integrations-nvidia-ingest","title":"Integrate NVIDIA Retriever Extraction with Langflow","description":"NVIDIA Retriever Extraction is also known as NV-Ingest and NeMo Retriever Extraction.","sidebar":"docs"},"Integrations/Nvidia/integrations-nvidia-nim-wsl2":{"id":"Integrations/Nvidia/integrations-nvidia-nim-wsl2","title":"Integrate NVIDIA NIMs with Langflow","description":"Connect Langflow with NVIDIA NIM on an RTX Windows system with Windows Subsystem for Linux 2 (WSL2) installed.","sidebar":"docs"},"Support/luna-for-langflow":{"id":"Support/luna-for-langflow","title":"Enterprise support for Langflow","description":"With Luna for Langflow support, you can develop and deploy Langflow applications with confidence.","sidebar":"docs"},"Support/release-notes":{"id":"Support/release-notes","title":"Langflow release notes","description":"This page summarizes significant changes to Langflow in each release.","sidebar":"docs"},"Support/troubleshooting":{"id":"Support/troubleshooting","title":"Troubleshoot Langflow","description":"This page provides troubleshooting advice for issues you might encounter when using Langflow or contributing to Langflow.","sidebar":"docs"},"Templates/basic-prompting":{"id":"Templates/basic-prompting","title":"Basic prompting","description":"This flow is a starting point for understanding Langflow.","sidebar":"docs"},"Templates/blog-writer":{"id":"Templates/blog-writer","title":"Blog writer","description":"This flow demonstrates adding an additional input to the Prompt component to capture input from the URL and Parser components.","sidebar":"docs"},"Templates/document-qa":{"id":"Templates/document-qa","title":"Document QA","description":"Build a question-and-answer chatbot with document analysis capabilities using a document loaded from local memory.","sidebar":"docs"},"Templates/financial-report-parser":{"id":"Templates/financial-report-parser","title":"Financial report parser","description":"This flow demonstrates how to parse LLM responses into a structured format.","sidebar":"docs"},"Templates/memory-chatbot":{"id":"Templates/memory-chatbot","title":"Memory chatbot","description":"The Chat memory component is also known as the Message history component.","sidebar":"docs"},"Templates/sequential-agent":{"id":"Templates/sequential-agent","title":"Sequential tasks agent","description":"This flow demonstrates using multiple Agent components in a single flow.","sidebar":"docs"},"Templates/simple-agent":{"id":"Templates/simple-agent","title":"Simple agent","description":"This flow demonstrates using an Agent in a flow.","sidebar":"docs"},"Templates/travel-planning-agent":{"id":"Templates/travel-planning-agent","title":"Travel planning agent","description":"This flow demonstrates using multiple Agent components in a single flow.","sidebar":"docs"},"Templates/vector-store-rag":{"id":"Templates/vector-store-rag","title":"Vector store RAG","description":"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.","sidebar":"docs"},"Tutorials/agent":{"id":"Tutorials/agent","title":"Connect applications to agents","description":"This tutorial shows you how to connect a JavaScript application to a Langflow agent.","sidebar":"docs"},"Tutorials/chat-with-files":{"id":"Tutorials/chat-with-files","title":"Create a chatbot that can ingest files","description":"This tutorial shows you how to build a chatbot that can read and answer questions about files you upload, such as meeting notes or job applications.","sidebar":"docs"},"Tutorials/chat-with-rag":{"id":"Tutorials/chat-with-rag","title":"Create a vector RAG chatbot","description":"This tutorial demonstrates how you can use Langflow to create a chatbot application that uses Retrieval Augmented Generation (RAG) to embed your data as vectors in a vector database, and then chat with the data.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/22dd74f7.a6fbb9ad.js b/assets/js/22dd74f7.a6fbb9ad.js deleted file mode 100644 index 709567aad5..0000000000 --- a/assets/js/22dd74f7.a6fbb9ad.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{55226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Welcome to Langflow","href":"/","docId":"Get-Started/welcome-to-langflow","unlisted":false},{"type":"category","label":"Get started","items":[{"type":"link","label":"About Langflow","href":"/about-langflow","docId":"Get-Started/about-langflow","unlisted":false},{"type":"link","label":"Install Langflow","href":"/get-started-installation","docId":"Get-Started/get-started-installation","unlisted":false},{"type":"link","label":"Quickstart","href":"/get-started-quickstart","docId":"Get-Started/get-started-quickstart","unlisted":false},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Create a vector RAG chatbot","href":"/chat-with-rag","docId":"Tutorials/chat-with-rag","unlisted":false},{"type":"link","label":"Create a chatbot that can ingest files","href":"/chat-with-files","docId":"Tutorials/chat-with-files","unlisted":false},{"type":"link","label":"Connect applications to agents","href":"/agent-tutorial","docId":"Tutorials/agent","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Templates","items":[{"type":"link","label":"Basic prompting","href":"/basic-prompting","docId":"Templates/basic-prompting","unlisted":false},{"type":"link","label":"Simple agent","href":"/simple-agent","docId":"Templates/simple-agent","unlisted":false},{"type":"link","label":"Blog writer","href":"/blog-writer","docId":"Templates/blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/document-qa","docId":"Templates/document-qa","unlisted":false},{"type":"link","label":"Memory chatbot","href":"/memory-chatbot","docId":"Templates/memory-chatbot","unlisted":false},{"type":"link","label":"Vector store RAG","href":"/vector-store-rag","docId":"Templates/vector-store-rag","unlisted":false},{"type":"link","label":"Financial report parser","href":"/financial-report-parser","docId":"Templates/financial-report-parser","unlisted":false},{"type":"link","label":"Sequential tasks agent","href":"/sequential-agent","docId":"Templates/sequential-agent","unlisted":false},{"type":"link","label":"Travel planning agent","href":"/travel-planning-agent","docId":"Templates/travel-planning-agent","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Flows","items":[{"type":"link","label":"Use the visual editor","href":"/concepts-overview","docId":"Concepts/concepts-overview","unlisted":false},{"type":"link","label":"Build flows","href":"/concepts-flows","docId":"Concepts/concepts-flows","unlisted":false},{"type":"link","label":"Run flows","href":"/concepts-publish","docId":"Concepts/concepts-publish","unlisted":false},{"type":"link","label":"Import and export flows","href":"/concepts-flows-import","docId":"Concepts/concepts-flows-import","unlisted":false},{"type":"link","label":"Use the Playground","href":"/concepts-playground","docId":"Concepts/concepts-playground","unlisted":false},{"type":"link","label":"Use voice mode","href":"/concepts-voice-mode","docId":"Concepts/concepts-voice-mode","unlisted":false},{"type":"link","label":"Langflow objects","href":"/concepts-objects","docId":"Concepts/concepts-objects","unlisted":false},{"type":"link","label":"Manage files","href":"/concepts-file-management","docId":"Concepts/concepts-file-management","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Components","items":[{"type":"link","label":"Components overview","href":"/concepts-components","docId":"Concepts/concepts-components","unlisted":false},{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"link","label":"Bundles","href":"/components-bundle-components","docId":"Components/components-bundles","unlisted":false},{"type":"link","label":"Create custom Python components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"link","label":"Embedding models","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Inputs and outputs","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Logic","href":"/components-logic","docId":"Components/components-logic","unlisted":false},{"type":"link","label":"Memories","href":"/components-memories","docId":"Components/components-memories","unlisted":false},{"type":"link","label":"Language models","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Processing","href":"/components-processing","docId":"Components/components-processing","unlisted":false},{"type":"link","label":"Prompts","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false},{"type":"link","label":"Tools","href":"/components-tools","docId":"Components/components-tools","unlisted":false},{"type":"link","label":"Vector stores","href":"/components-vector-stores","docId":"Components/components-vector-stores","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Agents","items":[{"type":"link","label":"Use Langflow Agents","href":"/agents","docId":"Agents/agents","unlisted":false},{"type":"link","label":"Configure tools for agents","href":"/agents-tools","docId":"Agents/agents-tools","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Model Context Protocol (MCP)","items":[{"type":"link","label":"Use Langflow as an MCP server","href":"/mcp-server","docId":"Concepts/mcp-server","unlisted":false},{"type":"link","label":"Use Langflow as an MCP client","href":"/mcp-client","docId":"Components/mcp-client","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Configuration","items":[{"type":"link","label":"API keys","href":"/configuration-api-keys","docId":"Configuration/configuration-api-keys","unlisted":false},{"type":"link","label":"Authentication","href":"/configuration-authentication","docId":"Configuration/configuration-authentication","unlisted":false},{"type":"link","label":"Langflow CLI","href":"/configuration-cli","docId":"Configuration/configuration-cli","unlisted":false},{"type":"link","label":"Configure an external PostgreSQL database","href":"/configuration-custom-database","docId":"Configuration/configuration-custom-database","unlisted":false},{"type":"link","label":"Global variables","href":"/configuration-global-variables","docId":"Configuration/configuration-global-variables","unlisted":false},{"type":"link","label":"Environment variables","href":"/environment-variables","docId":"Configuration/environment-variables","unlisted":false},{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Contributing/contributing-telemetry","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Develop","items":[{"type":"link","label":"Overview","href":"/develop-overview","docId":"Develop/develop-overview","unlisted":false},{"type":"link","label":"Develop an application in Langflow","href":"/develop-application","docId":"Develop/develop-application","unlisted":false},{"type":"link","label":"Install custom dependencies","href":"/install-custom-dependencies","docId":"Develop/install-custom-dependencies","unlisted":false},{"type":"link","label":"Memory management","href":"/memory","docId":"Develop/memory","unlisted":false},{"type":"link","label":"Session ID","href":"/session-id","docId":"Develop/session-id","unlisted":false},{"type":"link","label":"Logging","href":"/logging","docId":"Develop/logging","unlisted":false},{"type":"link","label":"Webhook","href":"/webhook","docId":"Develop/webhook","unlisted":false},{"type":"category","label":"Clients","items":[{"type":"link","label":"TypeScript Client","href":"/typescript-client","docId":"Develop/Clients/typescript-client","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Deployment","items":[{"type":"link","label":"Deployment overview","href":"/deployment-overview","docId":"Deployment/deployment-overview","unlisted":false},{"type":"link","label":"Docker","href":"/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"Deploy a public Langflow server","href":"/deployment-public-server","docId":"Deployment/deployment-public-server","unlisted":false},{"type":"link","label":"Deploy Langflow on a remote server","href":"/deployment-caddyfile","docId":"Deployment/deployment-caddyfile","unlisted":false},{"type":"category","label":"Kubernetes","items":[{"type":"link","label":"Langflow architecture and best practices","href":"/deployment-prod-best-practices","docId":"Deployment/deployment-prod-best-practices","unlisted":false},{"type":"link","label":"Deploy in development","href":"/deployment-kubernetes-dev","docId":"Deployment/deployment-kubernetes-dev","unlisted":false},{"type":"link","label":"Deploy in production","href":"/deployment-kubernetes-prod","docId":"Deployment/deployment-kubernetes-prod","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Google Cloud Platform","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"Hugging Face Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"API reference","items":[{"type":"link","label":"Get started with the Langflow API","href":"/api-reference-api-examples","docId":"API-Reference/api-reference-api-examples","unlisted":false},{"type":"link","label":"Flow trigger endpoints","href":"/api-flows-run","docId":"API-Reference/api-flows-run","unlisted":false},{"type":"link","label":"Flow management endpoints","href":"/api-flows","docId":"API-Reference/api-flows","unlisted":false},{"type":"link","label":"Files endpoints","href":"/api-files","docId":"API-Reference/api-files","unlisted":false},{"type":"link","label":"Projects endpoints","href":"/api-projects","docId":"API-Reference/api-projects","unlisted":false},{"type":"link","label":"Logs endpoints","href":"/api-logs","docId":"API-Reference/api-logs","unlisted":false},{"type":"link","label":"Monitor endpoints","href":"/api-monitor","docId":"API-Reference/api-monitor","unlisted":false},{"type":"link","label":"Build endpoints","href":"/api-build","docId":"API-Reference/api-build","unlisted":false},{"type":"link","label":"Users endpoints","href":"/api-users","docId":"API-Reference/api-users","unlisted":false},{"type":"link","label":"Langflow API specification","href":"/api"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Integrations","items":[{"type":"link","label":"Apify","href":"/integrations-apify","docId":"Integrations/Apify/integrations-apify","unlisted":false},{"type":"link","label":"Arize","href":"/integrations-arize","docId":"Integrations/Arize/integrations-arize","unlisted":false},{"type":"link","label":"AssemblyAI","href":"/integrations-assemblyai","docId":"Integrations/integrations-assemblyai","unlisted":false},{"type":"link","label":"Astra DB MCP server","href":"/mcp-component-astra","docId":"Integrations/mcp-component-astra","unlisted":false},{"type":"link","label":"Cleanlab","href":"/integrations-cleanlab","docId":"Integrations/Cleanlab/integrations-cleanlab","unlisted":false},{"type":"link","label":"Composio","href":"/integrations-composio","docId":"Integrations/Composio/integrations-composio","unlisted":false},{"type":"link","label":"Docling","href":"/integrations-docling","docId":"Integrations/Docling/integrations-docling","unlisted":false},{"type":"category","label":"Google","items":[{"type":"link","label":"Integrate Google OAuth with Langflow","href":"/integrations-setup-google-oauth-langflow","docId":"Integrations/Google/integrations-setup-google-oauth-langflow","unlisted":false},{"type":"link","label":"Integrate Google Cloud Vertex AI with Langflow","href":"/integrations-setup-google-cloud-vertex-ai-langflow","docId":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","unlisted":false},{"type":"link","label":"Integrate Google BigQuery with Langflow","href":"/integrations-google-big-query","docId":"Integrations/Google/integrations-google-big-query","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Langfuse","href":"/integrations-langfuse","docId":"Integrations/integrations-langfuse","unlisted":false},{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Integrations/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Integrations/integrations-langwatch","unlisted":false},{"type":"link","label":"Opik","href":"/integrations-opik","docId":"Integrations/integrations-opik","unlisted":false},{"type":"category","label":"Notion","items":[{"type":"link","label":"Setup","href":"/integrations/notion/setup","docId":"Integrations/Notion/integrations-notion","unlisted":false},{"type":"link","label":"Notion Conversational Agent","href":"/integrations/notion/notion-agent-conversational","docId":"Integrations/Notion/notion-agent-conversational","unlisted":false},{"type":"link","label":"Notion Meeting Notes Agent","href":"/integrations/notion/notion-agent-meeting-notes","docId":"Integrations/Notion/notion-agent-meeting-notes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"NVIDIA","items":[{"type":"link","label":"NVIDIA Ingest","href":"/integrations-nvidia-ingest","docId":"Integrations/Nvidia/integrations-nvidia-ingest","unlisted":false},{"type":"link","label":"NVIDIA NIM on WSL2","href":"/integrations-nvidia-ingest-wsl2","docId":"Integrations/Nvidia/integrations-nvidia-nim-wsl2","unlisted":false},{"type":"link","label":"NVIDIA G-Assist","href":"/integrations-nvidia-g-assist","docId":"Integrations/Nvidia/integrations-nvidia-g-assist","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Contribute","items":[{"type":"link","label":"Join the Langflow community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false},{"type":"link","label":"Contribute to Langflow","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"Contribute components","href":"/contributing-components","docId":"Contributing/contributing-components","unlisted":false},{"type":"link","label":"Contribute component tests","href":"/contributing-component-tests","docId":"Contributing/contributing-component-tests","unlisted":false},{"type":"link","label":"Contribute templates","href":"/contributing-templates","docId":"Contributing/contributing-templates","unlisted":false},{"type":"link","label":"Contribute bundles","href":"/contributing-bundles","docId":"Contributing/contributing-bundles","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Release notes","items":[{"type":"link","label":"Release notes","href":"/release-notes","docId":"Support/release-notes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Support","items":[{"type":"link","label":"Troubleshoot","href":"/troubleshoot","docId":"Support/troubleshooting","unlisted":false},{"type":"link","label":"Get help and request enhancements","href":"/contributing-github-issues","docId":"Contributing/contributing-github-issues","unlisted":false},{"type":"link","label":"Enterprise support","href":"/luna-for-langflow","docId":"Support/luna-for-langflow","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"html","className":"sidebar-ad","value":"\\n \\n \\n
\\n Use Langflow in the cloud\\n Sign up for DataStax Langflow\\n
\\n
\\n "}]},"docs":{"Agents/agents":{"id":"Agents/agents","title":"Use Langflow Agents","description":"Agents use LLMs as a brain to autonomously analyze problems and select tools to solve them.","sidebar":"docs"},"Agents/agents-tools":{"id":"Agents/agents-tools","title":"Configure tools for agents","description":"Configure tools connected to agents to extend their capabilities.","sidebar":"docs"},"API-Reference/api-build":{"id":"API-Reference/api-build","title":"Build endpoints","description":"The /build endpoints are used by Langflow\'s frontend Workspace and Playground code.","sidebar":"docs"},"API-Reference/api-files":{"id":"API-Reference/api-files","title":"Files endpoints","description":"Use the /files endpoints to move files between your local machine and Langflow.","sidebar":"docs"},"API-Reference/api-flows":{"id":"API-Reference/api-flows","title":"Flow management endpoints","description":"Use the /flows endpoint to create, read, update, and delete flows.","sidebar":"docs"},"API-Reference/api-flows-run":{"id":"API-Reference/api-flows-run","title":"Flow trigger endpoints","description":"Use the /run and /webhook endpoints to run flows.","sidebar":"docs"},"API-Reference/api-logs":{"id":"API-Reference/api-logs","title":"Logs endpoints","description":"Retrieve logs for your Langflow flow.","sidebar":"docs"},"API-Reference/api-monitor":{"id":"API-Reference/api-monitor","title":"Monitor endpoints","description":"Use the /monitor endpoint to monitor and modify messages passed between Langflow components, vertex builds, and transactions.","sidebar":"docs"},"API-Reference/api-projects":{"id":"API-Reference/api-projects","title":"Projects endpoints","description":"Use the /projects endpoint to create, read, update, and delete Langflow projects.","sidebar":"docs"},"API-Reference/api-reference-api-examples":{"id":"API-Reference/api-reference-api-examples","title":"Get started with the Langflow API","description":"You can use the Langflow API for programmatic interactions with Langflow, such as the following:","sidebar":"docs"},"API-Reference/api-users":{"id":"API-Reference/api-users","title":"Users endpoints","description":"Use the /users endpoint to manage user accounts in Langflow.","sidebar":"docs"},"Components/components-agents":{"id":"Components/components-agents","title":"Agents","description":"Agent components define the behavior and capabilities of AI agents in your flow.","sidebar":"docs"},"Components/components-bundles":{"id":"Components/components-bundles","title":"Bundles","description":"Bundled components are based on standard Langflow functionality, so you add them to your flows and configure them in much the same way as the standard components.","sidebar":"docs"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Create custom Python components","description":"Custom components extend Langflow\'s functionality through Python classes that inherit from Component. This enables integration of new features, data manipulation, external services, and specialized tools.","sidebar":"docs"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"Data components load data from a source into your flow.","sidebar":"docs"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embedding models","description":"In Langflow version 1.5, the singular Embedding model component replaces many provider-specific embedding models components. Any provider-specific embedding model components that weren\'t incorporated into the singular component were moved to Bundles.","sidebar":"docs"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","sidebar":"docs"},"Components/components-io":{"id":"Components/components-io","title":"Inputs and outputs","description":"Input and output components define where data enters and exits your flow.","sidebar":"docs"},"Components/components-logic":{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","sidebar":"docs"},"Components/components-memories":{"id":"Components/components-memories","title":"Memories","description":"Components in the Memories category are moved to Bundles as of Langflow 1.5.","sidebar":"docs"},"Components/components-models":{"id":"Components/components-models","title":"Language models","description":"In Langflow version 1.5, the singular Language model component replaces many provider-specific model components. Any provider-specific model components that weren\'t incorporated into the singular component were moved to Bundles.","sidebar":"docs"},"Components/components-processing":{"id":"Components/components-processing","title":"Processing","description":"Processing components process and transform data within a flow, like converting Data to text with a Parser component, filtering data with natural language with the Smart function, or saving data to your local machine with Save File.","sidebar":"docs"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompts","description":"A prompt is a structured input to a language model that instructs the model how to handle user inputs and variables.","sidebar":"docs"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"The Tools category in Langflow is removed as of Langflow 1.5.","sidebar":"docs"},"Components/components-vector-stores":{"id":"Components/components-vector-stores","title":"Vector stores","description":"Vector databases store vector data, which backs AI workloads like chatbots and Retrieval Augmented Generation.","sidebar":"docs"},"Components/mcp-client":{"id":"Components/mcp-client","title":"Use Langflow as an MCP client","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","sidebar":"docs"},"Concepts/concepts-components":{"id":"Concepts/concepts-components","title":"Components overview","description":"Components are the building blocks of your flows.","sidebar":"docs"},"Concepts/concepts-file-management":{"id":"Concepts/concepts-file-management","title":"Manage files","description":"Upload, store, and manage files in Langflow\'s File management system.","sidebar":"docs"},"Concepts/concepts-flows":{"id":"Concepts/concepts-flows","title":"Build flows","description":"A flow is a functional representation of an application workflow.","sidebar":"docs"},"Concepts/concepts-flows-import":{"id":"Concepts/concepts-flows-import","title":"Import and export flows","description":"You can export flows to transfer them between Langflow instances, share them with others, or create backups.","sidebar":"docs"},"Concepts/concepts-objects":{"id":"Concepts/concepts-objects","title":"Langflow objects","description":"In Langflow, objects are Pydantic models that serve as structured, functional representations of data.","sidebar":"docs"},"Concepts/concepts-overview":{"id":"Concepts/concepts-overview","title":"Use the visual editor","description":"You use Langflow\'s visual editor to create, test, and share flows, which are functional representations of application workflows.","sidebar":"docs"},"Concepts/concepts-playground":{"id":"Concepts/concepts-playground","title":"Use the Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with LLMs, allowing users to chat, access memories, and monitor inputs and outputs. Here, users can directly prototype their models, making adjustments and observing different outcomes.","sidebar":"docs"},"Concepts/concepts-publish":{"id":"Concepts/concepts-publish","title":"Run flows","description":"After you build a flow, you probably want to run it within an application, such as a chatbot within a mobile app or website.","sidebar":"docs"},"Concepts/concepts-voice-mode":{"id":"Concepts/concepts-voice-mode","title":"Voice mode","description":"The Langflow Playground supports voice mode for interacting with your applications through a microphone.","sidebar":"docs"},"Concepts/mcp-server":{"id":"Concepts/mcp-server","title":"Use Langflow as an MCP server","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","sidebar":"docs"},"Configuration/configuration-api-keys":{"id":"Configuration/configuration-api-keys","title":"API keys","description":"You can use Langflow API keys to interact with Langflow programmatically.","sidebar":"docs"},"Configuration/configuration-authentication":{"id":"Configuration/configuration-authentication","title":"Authentication","description":"This guide covers Langflow\'s authentication system and API key management, including how to secure your deployment and manage access to flows and components.","sidebar":"docs"},"Configuration/configuration-cli":{"id":"Configuration/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server.","sidebar":"docs"},"Configuration/configuration-custom-database":{"id":"Configuration/configuration-custom-database","title":"Configure an external PostgreSQL database","description":"Langflow\'s default database is SQLite, but you can configure Langflow to use PostgreSQL instead.","sidebar":"docs"},"Configuration/configuration-global-variables":{"id":"Configuration/configuration-global-variables","title":"Global variables","description":"Global variables let you store and reuse generic input values and credentials across your projects.","sidebar":"docs"},"Configuration/environment-variables":{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","sidebar":"docs"},"Contributing/contributing-bundles":{"id":"Contributing/contributing-bundles","title":"Contribute bundles","description":"Follow these steps to add new component bundles to the Langflow sidebar.","sidebar":"docs"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Join the Langflow community","description":"There are several ways you can interact with the Langflow community and learn more about the Langflow codebase.","sidebar":"docs"},"Contributing/contributing-component-tests":{"id":"Contributing/contributing-component-tests","title":"Contribute component tests","description":"This guide outlines how to structure and implement tests for application components to ensure consistency and adequate coverage.","sidebar":"docs"},"Contributing/contributing-components":{"id":"Contributing/contributing-components","title":"Contribute components","description":"New components are added as objects of the Component class.","sidebar":"docs"},"Contributing/contributing-github-issues":{"id":"Contributing/contributing-github-issues","title":"Get help and request enhancements","description":"The Langflow GitHub repository is an integral part of the Langflow community.","sidebar":"docs"},"Contributing/contributing-how-to-contribute":{"id":"Contributing/contributing-how-to-contribute","title":"Contribute to Langflow","description":"This guide is intended to help you start contributing to Langflow.","sidebar":"docs"},"Contributing/contributing-telemetry":{"id":"Contributing/contributing-telemetry","title":"Telemetry","description":"Langflow uses anonymous telemetry to collect essential usage statistics to enhance functionality and the user experience. This data helps us identify popular features and areas that need improvement, and ensures development efforts align with what you need.","sidebar":"docs"},"Contributing/contributing-templates":{"id":"Contributing/contributing-templates","title":"Contribute templates","description":"Follow these best practices when submitting a template to Langflow.","sidebar":"docs"},"Deployment/deployment-caddyfile":{"id":"Deployment/deployment-caddyfile","title":"Deploy Langflow on a remote server","description":"Learn how to deploy Langflow on your own remote server with secure web access.","sidebar":"docs"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Deploy Langflow on Docker","description":"Running applications in Docker containers ensures consistent behavior across different systems and eliminates dependency conflicts.","sidebar":"docs"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"Deploy Langflow on Google Cloud Platform","description":"This guide demonstrates deploying Langflow on Google Cloud Platform.","sidebar":"docs"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"Deploy Langflow on HuggingFace Spaces","description":"This guide explains how to deploy Langflow on HuggingFace Spaces.","sidebar":"docs"},"Deployment/deployment-kubernetes-dev":{"id":"Deployment/deployment-kubernetes-dev","title":"Deploy the Langflow development environment on Kubernetes","description":"The Langflow Integrated Development Environment (IDE) Helm chart is designed to provide a complete environment for developers to create, test, and debug their flows. It includes both the API and the UI.","sidebar":"docs"},"Deployment/deployment-kubernetes-prod":{"id":"Deployment/deployment-kubernetes-prod","title":"Deploy the Langflow production environment on Kubernetes","description":"The Langflow Runtime chart is tailored for deploying applications in a production environment. It is focused on stability, performance, isolation, and security to ensure that applications run reliably and efficiently.","sidebar":"docs"},"Deployment/deployment-overview":{"id":"Deployment/deployment-overview","title":"Langflow deployment overview","description":"You have a flow, and want to share it with the world in a production environment.","sidebar":"docs"},"Deployment/deployment-prod-best-practices":{"id":"Deployment/deployment-prod-best-practices","title":"Langflow architecture and best practices on Kubernetes","description":"While Langflow offers flexible deployment options, deploying on a Kubernetes cluster is highly recommended for production environments.","sidebar":"docs"},"Deployment/deployment-public-server":{"id":"Deployment/deployment-public-server","title":"Deploy a public Langflow server","description":"By default, your Langflow server at http7860 isn\'t exposed to the public internet.","sidebar":"docs"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Deploy Langflow on Railway","description":"This guide explains how to deploy Langflow on Railway, a cloud infrastructure platform that provides auto-deploy, managed databases, and automatic scaling.","sidebar":"docs"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Deploy Langflow on Render","description":"This guide explains how to deploy Langflow on Render, a cloud platform for deploying web applications and APIs.","sidebar":"docs"},"Develop/Clients/typescript-client":{"id":"Develop/Clients/typescript-client","title":"Langflow TypeScript client","description":"The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API.","sidebar":"docs"},"Develop/develop-application":{"id":"Develop/develop-application","title":"Develop an application in Langflow","description":"Follow this guide to learn how to build an application using Langflow.","sidebar":"docs"},"Develop/develop-overview":{"id":"Develop/develop-overview","title":"About developing and configuring Langflow applications","description":"The following pages provide information about how to develop and configure Langflow applications.","sidebar":"docs"},"Develop/install-custom-dependencies":{"id":"Develop/install-custom-dependencies","title":"Install custom dependencies","description":"Langflow provides optional dependency groups and support for custom dependencies to extend Langflow functionality.","sidebar":"docs"},"Develop/logging":{"id":"Develop/logging","title":"Logging options in Langflow","description":"Langflow uses the loguru library for logging.","sidebar":"docs"},"Develop/memory":{"id":"Develop/memory","title":"Memory management options","description":"Langflow provides flexible memory management options for storage and retrieval.","sidebar":"docs"},"Develop/session-id":{"id":"Develop/session-id","title":"Use session ID to manage communication between components","description":"Session ID is a unique identifier for client/server connections. A single session equals the duration of a client\'s connection to a server.","sidebar":"docs"},"Develop/webhook":{"id":"Develop/webhook","title":"Trigger flows with webhooks","description":"You can use the Webhook component to start a flow run in response to an external event.","sidebar":"docs"},"Get-Started/about-langflow":{"id":"Get-Started/about-langflow","title":"What is Langflow?","description":"Langflow is an open-source, Python-based, customizable framework for building AI applications.","sidebar":"docs"},"Get-Started/get-started-installation":{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"Langflow can be installed in multiple ways:","sidebar":"docs"},"Get-Started/get-started-quickstart":{"id":"Get-Started/get-started-quickstart","title":"Quickstart","description":"Get started with Langflow by loading a template flow, running it, and then serving it at the /run API endpoint.","sidebar":"docs"},"Get-Started/welcome-to-langflow":{"id":"Get-Started/welcome-to-langflow","title":"Welcome to Langflow","description":"Langflow empowers developers to rapidly prototype and build AI applications with a user-friendly visual interface and support for important AI functionality like agents and the MCP.","sidebar":"docs"},"Integrations/Apify/integrations-apify":{"id":"Integrations/Apify/integrations-apify","title":"Apify","description":"Apify is a web scraping and data extraction platform. It provides an Actor Store with more than 3,000 ready-made cloud tools called Actors.","sidebar":"docs"},"Integrations/Arize/integrations-arize":{"id":"Integrations/Arize/integrations-arize","title":"Integrate Arize with Langflow","description":"Arize is a tool built on OpenTelemetry and OpenInference for monitoring and optimizing LLM applications.","sidebar":"docs"},"Integrations/Cleanlab/integrations-cleanlab":{"id":"Integrations/Cleanlab/integrations-cleanlab","title":"Integrate Cleanlab Evaluations with Langflow","description":"Unlock trustworthy Agentic, RAG, and LLM pipelines with Cleanlab\'s evaluation and remediation suite.","sidebar":"docs"},"Integrations/Composio/integrations-composio":{"id":"Integrations/Composio/integrations-composio","title":"Integrate Composio with Langflow","description":"Langflow integrates with Composio as a toolset for your Agent component.","sidebar":"docs"},"Integrations/Docling/integrations-docling":{"id":"Integrations/Docling/integrations-docling","title":"Integrate Docling with Langflow","description":"Langflow integrates with Docling through a suite of components for parsing documents.","sidebar":"docs"},"Integrations/Google/integrations-google-big-query":{"id":"Integrations/Google/integrations-google-big-query","title":"Integrate Google BigQuery with Langflow","description":"Langflow integrates with Google BigQuery through the BigQuery component, allowing you to execute SQL queries and retrieve data from your BigQuery datasets.","sidebar":"docs"},"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow":{"id":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","title":"Integrate Google Cloud Vertex AI with Langflow","description":"Langflow integrates with the Google Vertex AI API for authenticating the Vertex AI embeddings model and Vertex AI components.","sidebar":"docs"},"Integrations/Google/integrations-setup-google-oauth-langflow":{"id":"Integrations/Google/integrations-setup-google-oauth-langflow","title":"Integrate Google OAuth with Langflow","description":"Langflow integrates with Google OAuth for authenticating the Gmail loader, Google Drive loader, and Google Drive Search components.","sidebar":"docs"},"Integrations/integrations-assemblyai":{"id":"Integrations/integrations-assemblyai","title":"AssemblyAI","description":"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:","sidebar":"docs"},"Integrations/integrations-langfuse":{"id":"Integrations/integrations-langfuse","title":"Langfuse","description":"Langfuse (GitHub) is an open-source platform for LLM observability. It provides tracing and monitoring capabilities for AI applications, helping developers debug, analyze, and optimize their AI systems. Langfuse integrates with various tools and frameworks such as workflows builders like Langflow.","sidebar":"docs"},"Integrations/integrations-langsmith":{"id":"Integrations/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, add your LangChain API key and configuration as Langflow environment variables, and then start Langflow.","sidebar":"docs"},"Integrations/integrations-langwatch":{"id":"Integrations/integrations-langwatch","title":"LangWatch","description":"938674091aac4d9d9aa4aa6eb5c215b4}","sidebar":"docs"},"Integrations/integrations-opik":{"id":"Integrations/integrations-opik","title":"Opik","description":"Opik is an open-source platform designed for evaluating, testing, and monitoring large language model (LLM) applications. Developed by Comet, it aims to facilitate more intuitive collaboration, testing, and monitoring of LLM-based applications.","sidebar":"docs"},"Integrations/mcp-component-astra":{"id":"Integrations/mcp-component-astra","title":"Connect an Astra DB MCP server to Langflow","description":"Use the MCP Tools component to connect Langflow to a Datastax Astra DB MCP server.","sidebar":"docs"},"Integrations/Notion/integrations-notion":{"id":"Integrations/Notion/integrations-notion","title":"Setup","description":"To use Notion components in Langflow, you first need to create a Notion integration and configure it with the necessary capabilities. This guide will walk you through the process of setting up a Notion integration and granting it access to your Notion databases.","sidebar":"docs"},"Integrations/Notion/notion-agent-conversational":{"id":"Integrations/Notion/notion-agent-conversational","title":"Notion Conversational Agent","description":"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.","sidebar":"docs"},"Integrations/Notion/notion-agent-meeting-notes":{"id":"Integrations/Notion/notion-agent-meeting-notes","title":"Notion Meeting Notes Agent","description":"The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.","sidebar":"docs"},"Integrations/Nvidia/integrations-nvidia-g-assist":{"id":"Integrations/Nvidia/integrations-nvidia-g-assist","title":"Integrate NVIDIA G-Assist with Langflow","description":"This component is available only for Langflow users with NVIDIA GPUs on Windows systems.","sidebar":"docs"},"Integrations/Nvidia/integrations-nvidia-ingest":{"id":"Integrations/Nvidia/integrations-nvidia-ingest","title":"Integrate NVIDIA Retriever Extraction with Langflow","description":"NVIDIA Retriever Extraction is also known as NV-Ingest and NeMo Retriever Extraction.","sidebar":"docs"},"Integrations/Nvidia/integrations-nvidia-nim-wsl2":{"id":"Integrations/Nvidia/integrations-nvidia-nim-wsl2","title":"Integrate NVIDIA NIMs with Langflow","description":"Connect Langflow with NVIDIA NIM on an RTX Windows system with Windows Subsystem for Linux 2 (WSL2) installed.","sidebar":"docs"},"Support/luna-for-langflow":{"id":"Support/luna-for-langflow","title":"Enterprise support for Langflow","description":"With Luna for Langflow support, you can develop and deploy Langflow applications with confidence.","sidebar":"docs"},"Support/release-notes":{"id":"Support/release-notes","title":"Langflow release notes","description":"This page summarizes significant changes to Langflow in each release.","sidebar":"docs"},"Support/troubleshooting":{"id":"Support/troubleshooting","title":"Troubleshoot Langflow","description":"This page provides troubleshooting advice for issues you might encounter when using Langflow or contributing to Langflow.","sidebar":"docs"},"Templates/basic-prompting":{"id":"Templates/basic-prompting","title":"Basic prompting","description":"This flow is a starting point for understanding Langflow.","sidebar":"docs"},"Templates/blog-writer":{"id":"Templates/blog-writer","title":"Blog writer","description":"This flow demonstrates adding an additional input to the Prompt component to capture input from the URL and Parser components.","sidebar":"docs"},"Templates/document-qa":{"id":"Templates/document-qa","title":"Document QA","description":"Build a question-and-answer chatbot with document analysis capabilities using a document loaded from local memory.","sidebar":"docs"},"Templates/financial-report-parser":{"id":"Templates/financial-report-parser","title":"Financial report parser","description":"This flow demonstrates how to parse LLM responses into a structured format.","sidebar":"docs"},"Templates/memory-chatbot":{"id":"Templates/memory-chatbot","title":"Memory chatbot","description":"The Chat memory component is also known as the Message history component.","sidebar":"docs"},"Templates/sequential-agent":{"id":"Templates/sequential-agent","title":"Sequential tasks agent","description":"This flow demonstrates using multiple Agent components in a single flow.","sidebar":"docs"},"Templates/simple-agent":{"id":"Templates/simple-agent","title":"Simple agent","description":"This flow demonstrates using an Agent in a flow.","sidebar":"docs"},"Templates/travel-planning-agent":{"id":"Templates/travel-planning-agent","title":"Travel planning agent","description":"This flow demonstrates using multiple Agent components in a single flow.","sidebar":"docs"},"Templates/vector-store-rag":{"id":"Templates/vector-store-rag","title":"Vector store RAG","description":"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.","sidebar":"docs"},"Tutorials/agent":{"id":"Tutorials/agent","title":"Connect applications to agents","description":"This tutorial shows you how to connect a JavaScript application to a Langflow agent.","sidebar":"docs"},"Tutorials/chat-with-files":{"id":"Tutorials/chat-with-files","title":"Create a chatbot that can ingest files","description":"This tutorial shows you how to build a chatbot that can read and answer questions about files you upload, such as meeting notes or job applications.","sidebar":"docs"},"Tutorials/chat-with-rag":{"id":"Tutorials/chat-with-rag","title":"Create a vector RAG chatbot","description":"This tutorial demonstrates how you can use Langflow to create a chatbot application that uses Retrieval Augmented Generation (RAG) to embed your data as vectors in a vector database, and then chat with the data.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/2ab0d4f5.2c0c8d46.js b/assets/js/2ab0d4f5.2c0c8d46.js new file mode 100644 index 0000000000..99ac400b62 --- /dev/null +++ b/assets/js/2ab0d4f5.2c0c8d46.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},83640:(e,n,t)=>{t.r(n),t.d(n,{contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"type":"api","id":"simplified-run-flow","title":"Simplified Run Flow","description":"","slug":"/simplified-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","operationId":"simplified_run_flow_api_v1_run__flow_id_or_name__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id_or_name","in":"path","required":true,"schema":{"type":"string","title":"Flow Id Or Name"}},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stream"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value","description":"The input value"},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Input Type","description":"The input type","default":"chat"},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]},{"type":"null"}],"title":"Output Type","description":"The output type","default":"chat"},"output_component":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":""},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}],"description":"The tweaks"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"The session id"}},"type":"object","title":"SimplifiedAPIRequest"},{"type":"null"}],"title":"Input Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.5.0.post1"},"postman":{"name":"Simplified Run Flow","description":{"content":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","type":"text/plain"},"url":{"path":["api","v1","run",":flow_id_or_name"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"key":"stream","value":"false"},{"disabled":false,"key":"user_id","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id_or_name"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"input_value\\": \\"\\",\\n \\"input_type\\": \\"\\",\\n \\"output_type\\": \\"\\",\\n \\"output_component\\": \\"\\",\\n \\"tweaks\\": {\\n \\"officia71\\": \\"\\",\\n \\"incididunt2_c\\": \\"\\",\\n \\"sed3\\": \\"\\",\\n \\"ind70\\": \\"\\"\\n },\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/simplified-run-flow","previous":{"title":"Get All","permalink":"/api/get-all"},"next":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"}}');var s=t(74848),r=t(28453);const a={},o="Simplified Run Flow",l=[];function d(e){const n={h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"simplified-run-flow",children:"Simplified Run Flow"})}),"\n",(0,s.jsx)(n.p,{children:"Executes a specified flow by ID with support for streaming and telemetry."}),"\n",(0,s.jsx)(n.p,{children:"This endpoint executes a flow identified by ID or name, with options for streaming the response\nand tracking execution metrics. It handles both streaming and non-streaming execution modes."}),"\n",(0,s.jsx)(n.p,{children:"Args:\nbackground_tasks (BackgroundTasks): FastAPI background task manager\nflow (FlowRead | None): The flow to execute, loaded via dependency\ninput_request (SimplifiedAPIRequest | None): Input parameters for the flow\nstream (bool): Whether to stream the response\napi_key_user (UserRead): Authenticated user from API key\nrequest (Request): The incoming HTTP request"}),"\n",(0,s.jsx)(n.p,{children:"Returns:\nUnion[StreamingResponse, RunResponse]: Either a streaming response for real-time results\nor a RunResponse with the complete execution results"}),"\n",(0,s.jsx)(n.p,{children:"Raises:\nHTTPException: For flow not found (404) or invalid input (400)\nAPIException: For internal execution errors (500)"}),"\n",(0,s.jsx)(n.p,{children:"Notes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Supports both streaming and non-streaming execution modes"}),"\n",(0,s.jsx)(n.li,{children:"Tracks execution time and success/failure via telemetry"}),"\n",(0,s.jsx)(n.li,{children:"Handles graceful client disconnection in streaming mode"}),"\n",(0,s.jsx)(n.li,{children:"Provides detailed error handling with appropriate HTTP status codes"}),"\n",(0,s.jsxs)(n.li,{children:["In streaming mode, uses EventManager to handle events:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'"add_message": New messages during execution'}),"\n",(0,s.jsx)(n.li,{children:'"token": Individual tokens during streaming'}),"\n",(0,s.jsx)(n.li,{children:'"end": Final execution result'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"flow_id_or_name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Flow Id Or Name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Query Parameters"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"stream"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"user_id"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" User Id"})]})})]})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Request Body "}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"200"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Successful Response"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]})})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"422"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Validation Error"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"detail"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"loc"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"msg"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"type"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/2ab0d4f5.d8d67b08.js b/assets/js/2ab0d4f5.d8d67b08.js deleted file mode 100644 index eff6fccb01..0000000000 --- a/assets/js/2ab0d4f5.d8d67b08.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1845],{28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var i=t(96540);const s={},r=i.createContext(s);function a(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(r.Provider,{value:n},e.children)}},83640:(e,n,t)=>{t.r(n),t.d(n,{contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"type":"api","id":"simplified-run-flow","title":"Simplified Run Flow","description":"","slug":"/simplified-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","operationId":"simplified_run_flow_api_v1_run__flow_id_or_name__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id_or_name","in":"path","required":true,"schema":{"type":"string","title":"Flow Id Or Name"}},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stream"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"properties":{"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value","description":"The input value"},"input_type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Input Type","description":"The input type","default":"chat"},"output_type":{"anyOf":[{"type":"string","enum":["chat","text","any","debug"]},{"type":"null"}],"title":"Output Type","description":"The output type","default":"chat"},"output_component":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Component","description":"If there are multiple output components, you can specify the component to get the output from.","default":""},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}],"description":"The tweaks"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"The session id"}},"type":"object","title":"SimplifiedAPIRequest"},{"type":"null"}],"title":"Input Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/{flow_id_or_name}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"info":{"title":"Langflow","version":"1.5.0.post1"},"postman":{"name":"Simplified Run Flow","description":{"content":"Executes a specified flow by ID with support for streaming and telemetry.\\n\\nThis endpoint executes a flow identified by ID or name, with options for streaming the response\\nand tracking execution metrics. It handles both streaming and non-streaming execution modes.\\n\\nArgs:\\n background_tasks (BackgroundTasks): FastAPI background task manager\\n flow (FlowRead | None): The flow to execute, loaded via dependency\\n input_request (SimplifiedAPIRequest | None): Input parameters for the flow\\n stream (bool): Whether to stream the response\\n api_key_user (UserRead): Authenticated user from API key\\n request (Request): The incoming HTTP request\\n\\nReturns:\\n Union[StreamingResponse, RunResponse]: Either a streaming response for real-time results\\n or a RunResponse with the complete execution results\\n\\nRaises:\\n HTTPException: For flow not found (404) or invalid input (400)\\n APIException: For internal execution errors (500)\\n\\nNotes:\\n - Supports both streaming and non-streaming execution modes\\n - Tracks execution time and success/failure via telemetry\\n - Handles graceful client disconnection in streaming mode\\n - Provides detailed error handling with appropriate HTTP status codes\\n - In streaming mode, uses EventManager to handle events:\\n - \\"add_message\\": New messages during execution\\n - \\"token\\": Individual tokens during streaming\\n - \\"end\\": Final execution result","type":"text/plain"},"url":{"path":["api","v1","run",":flow_id_or_name"],"host":["{{baseUrl}}"],"query":[{"disabled":false,"key":"stream","value":"false"},{"disabled":false,"key":"user_id","value":""}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id_or_name"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"input_value\\": \\"\\",\\n \\"input_type\\": \\"\\",\\n \\"output_type\\": \\"\\",\\n \\"output_component\\": \\"\\",\\n \\"tweaks\\": {\\n \\"do_\\": \\"\\",\\n \\"labore7\\": \\"\\"\\n },\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/simplified-run-flow","previous":{"title":"Get All","permalink":"/api/get-all"},"next":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"}}');var s=t(74848),r=t(28453);const a={},o="Simplified Run Flow",l=[];function d(e){const n={h1:"h1",header:"header",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"simplified-run-flow",children:"Simplified Run Flow"})}),"\n",(0,s.jsx)(n.p,{children:"Executes a specified flow by ID with support for streaming and telemetry."}),"\n",(0,s.jsx)(n.p,{children:"This endpoint executes a flow identified by ID or name, with options for streaming the response\nand tracking execution metrics. It handles both streaming and non-streaming execution modes."}),"\n",(0,s.jsx)(n.p,{children:"Args:\nbackground_tasks (BackgroundTasks): FastAPI background task manager\nflow (FlowRead | None): The flow to execute, loaded via dependency\ninput_request (SimplifiedAPIRequest | None): Input parameters for the flow\nstream (bool): Whether to stream the response\napi_key_user (UserRead): Authenticated user from API key\nrequest (Request): The incoming HTTP request"}),"\n",(0,s.jsx)(n.p,{children:"Returns:\nUnion[StreamingResponse, RunResponse]: Either a streaming response for real-time results\nor a RunResponse with the complete execution results"}),"\n",(0,s.jsx)(n.p,{children:"Raises:\nHTTPException: For flow not found (404) or invalid input (400)\nAPIException: For internal execution errors (500)"}),"\n",(0,s.jsx)(n.p,{children:"Notes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Supports both streaming and non-streaming execution modes"}),"\n",(0,s.jsx)(n.li,{children:"Tracks execution time and success/failure via telemetry"}),"\n",(0,s.jsx)(n.li,{children:"Handles graceful client disconnection in streaming mode"}),"\n",(0,s.jsx)(n.li,{children:"Provides detailed error handling with appropriate HTTP status codes"}),"\n",(0,s.jsxs)(n.li,{children:["In streaming mode, uses EventManager to handle events:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'"add_message": New messages during execution'}),"\n",(0,s.jsx)(n.li,{children:'"token": Individual tokens during streaming'}),"\n",(0,s.jsx)(n.li,{children:'"end": Final execution result'}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"flow_id_or_name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Flow Id Or Name"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Query Parameters"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"stream"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"user_id"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" User Id"})]})})]})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Request Body "}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]}),"\n",(0,s.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"200"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Successful Response"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsx)("td",{children:(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined"})})})})]})})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex"},children:[(0,s.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,s.jsx)("code",{children:"422"})}),(0,s.jsx)("div",{children:(0,s.jsx)(n.p,{children:"Validation Error"})})]}),(0,s.jsx)("div",{children:(0,s.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("th",{style:{textAlign:"left"},children:[(0,s.jsx)("span",{children:"Schema "}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("div",{})]})})}),(0,s.jsx)("tbody",{children:(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"detail"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,s.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,s.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,s.jsxs)("tbody",{children:[(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"loc"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"msg"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,s.jsx)("tr",{children:(0,s.jsxs)("td",{children:[(0,s.jsx)("code",{children:"type"}),(0,s.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}}}]); \ No newline at end of file diff --git a/assets/js/464a5f06.1fc115f0.js b/assets/js/464a5f06.1fc115f0.js deleted file mode 100644 index d0ba0921d5..0000000000 --- a/assets/js/464a5f06.1fc115f0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[6063],{1422:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/integrations-docling-split-text-7dfa4c618be68f4559ce6247630dbdf1.png"},11470:(e,n,t)=>{t.d(n,{A:()=>w});var r=t(96540),s=t(18215),i=t(23104),o=t(56347),l=t(205),c=t(57485),d=t(31682),a=t(70679);function h(e){return r.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function u(e){const{values:n,children:t}=e;return(0,r.useMemo)(()=>{const e=n??function(e){return h(e).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}))}(t);return function(e){const n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}function x({value:e,tabValues:n}){return n.some(n=>n.value===e)}function j({queryString:e=!1,groupId:n}){const t=(0,o.W6)(),s=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,c.aZ)(s),(0,r.useCallback)(e=>{if(!s)return;const n=new URLSearchParams(t.location.search);n.set(s,e),t.replace({...t.location,search:n.toString()})},[s,t])]}function p(e){const{defaultValue:n,queryString:t=!1,groupId:s}=e,i=u(e),[o,c]=(0,r.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!x({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find(e=>e.default)??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:i})),[d,h]=j({queryString:t,groupId:s}),[p,g]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,s]=(0,a.Dv)(n);return[t,(0,r.useCallback)(e=>{n&&s.set(e)},[n,s])]}({groupId:s}),m=(()=>{const e=d??p;return x({value:e,tabValues:i})?e:null})();(0,l.A)(()=>{m&&c(m)},[m]);return{selectedValue:o,selectValue:(0,r.useCallback)(e=>{if(!x({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);c(e),h(e),g(e)},[h,g,i]),tabValues:i}}var g=t(92303);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=t(74848);function b({className:e,block:n,selectedValue:t,selectValue:r,tabValues:o}){const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),d=e=>{const n=e.currentTarget,s=l.indexOf(n),i=o[s].value;i!==t&&(c(n),r(i))},a=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=l.indexOf(e.currentTarget)+1;n=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(e.currentTarget)-1;n=l[t]??l[l.length-1];break}}n?.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:o.map(({value:e,label:n,attributes:r})=>(0,f.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>{l.push(e)},onKeyDown:a,onClick:d,...r,className:(0,s.A)("tabs__item",m.tabItem,r?.className,{"tabs__item--active":t===e}),children:n??e},e))})}function D({lazy:e,children:n,selectedValue:t}){const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=i.find(e=>e.props.value===t);return e?(0,r.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function v(e){const n=p(e);return(0,f.jsxs)("div",{className:(0,s.A)("tabs-container",m.tabList),children:[(0,f.jsx)(b,{...n,...e}),(0,f.jsx)(D,{...n,...e})]})}function w(e){const n=(0,g.A)();return(0,f.jsx)(v,{...e,children:h(e.children)},String(n))}},17886:(e,n,t)=>{t.d(n,{A:()=>i});t(96540);var r=t(64058),s=t(74848);function i({name:e,...n}){const t=r[e];return t?(0,s.jsx)(t,{...n}):null}},19365:(e,n,t)=>{t.d(n,{A:()=>o});t(96540);var r=t(18215);const s={tabItem:"tabItem_Ymn6"};var i=t(74848);function o({children:e,hidden:n,className:t}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,r.A)(s.tabItem,t),hidden:n,children:e})}},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var r=t(96540);const s={},i=r.createContext(s);function o(e){const n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},94617:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>l,metadata:()=>r,toc:()=>a});const r=JSON.parse('{"id":"Integrations/Docling/integrations-docling","title":"Integrate Docling with Langflow","description":"Langflow integrates with Docling through a suite of components for parsing documents.","source":"@site/docs/Integrations/Docling/integrations-docling.mdx","sourceDirName":"Integrations/Docling","slug":"/integrations-docling","permalink":"/integrations-docling","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Integrate Docling with Langflow","slug":"/integrations-docling"},"sidebar":"docs","previous":{"title":"Composio","permalink":"/integrations-composio"},"next":{"title":"Integrate Google OAuth with Langflow","permalink":"/integrations-setup-google-oauth-langflow"}}');var s=t(74848),i=t(28453),o=(t(11470),t(19365),t(17886));const l={title:"Integrate Docling with Langflow",slug:"/integrations-docling"},c=void 0,d={},a=[{value:"Install Docling dependency",id:"install-docling-dependency",level:2},{value:"Use Docling components in a flow",id:"use-docling-components-in-a-flow",level:2},{value:"Docling components",id:"docling-components",level:2},{value:"Docling",id:"docling",level:3},{value:"Docling Serve",id:"docling-serve",level:3},{value:"Chunk DoclingDocument",id:"chunk-doclingdocument",level:3},{value:"Export DoclingDocument",id:"export-doclingdocument",level:3},{value:"Docling video tutorial",id:"docling-video-tutorial",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components},{Details:r}=n;return r||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Langflow integrates with ",(0,s.jsx)(n.a,{href:"https://docling-project.github.io/docling/",children:"Docling"})," through a suite of components for parsing documents."]}),"\n",(0,s.jsx)(n.h2,{id:"install-docling-dependency",children:"Install Docling dependency"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Install the Docling extra in Langflow OSS with ",(0,s.jsx)(n.code,{children:"uv pip install langflow[docling]"})," or ",(0,s.jsx)(n.code,{children:"uv pip install docling"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To add a dependency to Langflow Desktop, add an entry for Docling to the application's ",(0,s.jsx)(n.code,{children:"requirements.txt"})," file.\nFor more information, see ",(0,s.jsx)(n.a,{href:"/install-custom-dependencies#langflow-desktop",children:"Install custom dependencies in Langflow Desktop"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"use-docling-components-in-a-flow",children:"Use Docling components in a flow"}),"\n",(0,s.jsx)(n.p,{children:"This example demonstrates how to use Docling components to split a PDF in a flow:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Connect a ",(0,s.jsx)(n.strong,{children:"Docling"})," and an ",(0,s.jsx)(n.strong,{children:"ExportDoclingDocument"})," component to a ",(0,s.jsx)(n.a,{href:"/components-processing#split-text",children:(0,s.jsx)(n.strong,{children:"Split Text"})})," component.\nThe ",(0,s.jsx)(n.strong,{children:"Docling"})," component loads the document, and the ",(0,s.jsx)(n.strong,{children:"ExportDoclingDocument"})," component converts the DoclingDocument into the format you select. This example converts the document to Markdown, with images represented as placeholders.\nThe ",(0,s.jsx)(n.strong,{children:"Split Text"})," component will split the Markdown into chunks for the vector database to store in the next part of the flow."]}),"\n",(0,s.jsxs)(n.li,{children:["Connect a ",(0,s.jsx)(n.a,{href:"/components-vector-stores#chroma-db",children:(0,s.jsx)(n.strong,{children:"Chroma DB"})})," component to the ",(0,s.jsx)(n.strong,{children:"Split text"})," component's ",(0,s.jsx)(n.strong,{children:"Chunks"})," output."]}),"\n",(0,s.jsxs)(n.li,{children:["Connect an ",(0,s.jsx)(n.a,{href:"/components-embedding-models",children:(0,s.jsx)(n.strong,{children:"Embedding Model"})})," to Chroma's ",(0,s.jsx)(n.strong,{children:"Embedding"})," port, and a ",(0,s.jsx)(n.strong,{children:"Chat Output"})," component to view the extracted ",(0,s.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Add your OpenAI API key to the Embedding Model."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The flow looks like this:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Docling and ExportDoclingDocument extracting and splitting text to vector database",src:t(1422).A+"",width:"4000",height:"2060"})}),"\n",(0,s.jsxs)(n.ol,{start:"5",children:["\n",(0,s.jsxs)(n.li,{children:["Add a file to the ",(0,s.jsx)(n.strong,{children:"Docling"})," component."]}),"\n",(0,s.jsxs)(n.li,{children:["To run the flow, click ",(0,s.jsx)(o.A,{name:"Play","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Playground"}),".\nThe chunked document is loaded as vectors into your vector database."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"docling-components",children:"Docling components"}),"\n",(0,s.jsx)(n.p,{children:"The following sections describe the purpose and configuration options for each component in the Docling bundle."}),"\n",(0,s.jsx)(n.h3,{id:"docling",children:"Docling"}),"\n",(0,s.jsx)(n.p,{children:"This component uses Docling to process input documents running the Docling models locally."}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Parameters"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Inputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"files"}),(0,s.jsx)(n.td,{children:"File"}),(0,s.jsx)(n.td,{children:"The files to process."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"pipeline"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Docling pipeline to use (standard, vlm)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ocr_engine"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"OCR engine to use (easyocr, tesserocr, rapidocr, ocrmac)."})]})]})]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Outputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"files"}),(0,s.jsx)(n.td,{children:"File"}),(0,s.jsx)(n.td,{children:"The processed files with DoclingDocument data."})]})})]})]}),"\n",(0,s.jsx)(n.h3,{id:"docling-serve",children:"Docling Serve"}),"\n",(0,s.jsx)(n.p,{children:"This component uses Docling to process input documents connecting to your instance of Docling Serve."}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Parameters"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Inputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"files"}),(0,s.jsx)(n.td,{children:"File"}),(0,s.jsx)(n.td,{children:"The files to process."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_url"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"URL of the Docling Serve instance."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"max_concurrency"}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:"Maximum number of concurrent requests for the server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"max_poll_timeout"}),(0,s.jsx)(n.td,{children:"Float"}),(0,s.jsx)(n.td,{children:"Maximum waiting time for the document conversion to complete."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_headers"}),(0,s.jsx)(n.td,{children:"Dict"}),(0,s.jsx)(n.td,{children:"Optional dictionary of additional headers required for connecting to Docling Serve."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"docling_serve_opts"}),(0,s.jsx)(n.td,{children:"Dict"}),(0,s.jsx)(n.td,{children:"Optional dictionary of additional options for Docling Serve."})]})]})]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Outputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"files"}),(0,s.jsx)(n.td,{children:"File"}),(0,s.jsx)(n.td,{children:"The processed files with DoclingDocument data."})]})})]})]}),"\n",(0,s.jsx)(n.h3,{id:"chunk-doclingdocument",children:"Chunk DoclingDocument"}),"\n",(0,s.jsx)(n.p,{children:"This component uses the DoclingDocument chunkers to split a document into chunks."}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Parameters"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Inputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"data_inputs"}),(0,s.jsx)(n.td,{children:"Data/DataFrame"}),(0,s.jsx)(n.td,{children:"The data with documents to split in chunks."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"chunker"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Which chunker to use (HybridChunker, HierarchicalChunker)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"provider"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Which tokenizer provider (Hugging Face, OpenAI)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"hf_model_name"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Model name of the tokenizer to use with the HybridChunker when Hugging Face is chosen."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"openai_model_name"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Model name of the tokenizer to use with the HybridChunker when OpenAI is chosen."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"max_tokens"}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:"Maximum number of tokens for the HybridChunker."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"doc_key"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"The key to use for the DoclingDocument column."})]})]})]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Outputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"dataframe"}),(0,s.jsx)(n.td,{children:"DataFrame"}),(0,s.jsx)(n.td,{children:"The chunked documents as a DataFrame."})]})})]})]}),"\n",(0,s.jsx)(n.h3,{id:"export-doclingdocument",children:"Export DoclingDocument"}),"\n",(0,s.jsx)(n.p,{children:"This component exports DoclingDocument to Markdown, HTML, and other formats."}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Parameters"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Inputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"data_inputs"}),(0,s.jsx)(n.td,{children:"Data/DataFrame"}),(0,s.jsx)(n.td,{children:"The data with documents to export."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"export_format"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Select the export format to convert the input (Markdown, HTML, Plaintext, DocTags)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"image_mode"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Specify how images are exported in the output (placeholder, embedded)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"md_image_placeholder"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Specify the image placeholder for markdown exports."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"md_page_break_placeholder"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Add this placeholder between pages in the markdown output."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"doc_key"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"The key to use for the DoclingDocument column."})]})]})]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Outputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"data"}),(0,s.jsx)(n.td,{children:"Data"}),(0,s.jsx)(n.td,{children:"The exported data."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"dataframe"}),(0,s.jsx)(n.td,{children:"DataFrame"}),(0,s.jsx)(n.td,{children:"The exported data as a DataFrame."})]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"docling-video-tutorial",children:"Docling video tutorial"}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about content extraction with Docling, see the video tutorial ",(0,s.jsx)(n.a,{href:"https://www.youtube.com/watch?v=5DuS6uRI5OM",children:"Docling + Langflow: Document Processing for AI Workflows"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/assets/js/464a5f06.bd423937.js b/assets/js/464a5f06.bd423937.js new file mode 100644 index 0000000000..02a123871b --- /dev/null +++ b/assets/js/464a5f06.bd423937.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[6063],{1422:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/integrations-docling-split-text-7dfa4c618be68f4559ce6247630dbdf1.png"},11470:(e,n,t)=>{t.d(n,{A:()=>w});var r=t(96540),s=t(18215),i=t(23104),o=t(56347),l=t(205),c=t(57485),d=t(31682),a=t(70679);function h(e){return r.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function u(e){const{values:n,children:t}=e;return(0,r.useMemo)(()=>{const e=n??function(e){return h(e).map(({props:{value:e,label:n,attributes:t,default:r}})=>({value:e,label:n,attributes:t,default:r}))}(t);return function(e){const n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,t])}function x({value:e,tabValues:n}){return n.some(n=>n.value===e)}function j({queryString:e=!1,groupId:n}){const t=(0,o.W6)(),s=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,c.aZ)(s),(0,r.useCallback)(e=>{if(!s)return;const n=new URLSearchParams(t.location.search);n.set(s,e),t.replace({...t.location,search:n.toString()})},[s,t])]}function p(e){const{defaultValue:n,queryString:t=!1,groupId:s}=e,i=u(e),[o,c]=(0,r.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!x({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const t=n.find(e=>e.default)??n[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:i})),[d,h]=j({queryString:t,groupId:s}),[p,g]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[t,s]=(0,a.Dv)(n);return[t,(0,r.useCallback)(e=>{n&&s.set(e)},[n,s])]}({groupId:s}),m=(()=>{const e=d??p;return x({value:e,tabValues:i})?e:null})();(0,l.A)(()=>{m&&c(m)},[m]);return{selectedValue:o,selectValue:(0,r.useCallback)(e=>{if(!x({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);c(e),h(e),g(e)},[h,g,i]),tabValues:i}}var g=t(92303);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=t(74848);function b({className:e,block:n,selectedValue:t,selectValue:r,tabValues:o}){const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),d=e=>{const n=e.currentTarget,s=l.indexOf(n),i=o[s].value;i!==t&&(c(n),r(i))},a=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=l.indexOf(e.currentTarget)+1;n=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(e.currentTarget)-1;n=l[t]??l[l.length-1];break}}n?.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:o.map(({value:e,label:n,attributes:r})=>(0,f.jsx)("li",{role:"tab",tabIndex:t===e?0:-1,"aria-selected":t===e,ref:e=>{l.push(e)},onKeyDown:a,onClick:d,...r,className:(0,s.A)("tabs__item",m.tabItem,r?.className,{"tabs__item--active":t===e}),children:n??e},e))})}function D({lazy:e,children:n,selectedValue:t}){const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=i.find(e=>e.props.value===t);return e?(0,r.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==t}))})}function v(e){const n=p(e);return(0,f.jsxs)("div",{className:(0,s.A)("tabs-container",m.tabList),children:[(0,f.jsx)(b,{...n,...e}),(0,f.jsx)(D,{...n,...e})]})}function w(e){const n=(0,g.A)();return(0,f.jsx)(v,{...e,children:h(e.children)},String(n))}},17886:(e,n,t)=>{t.d(n,{A:()=>i});t(96540);var r=t(64058),s=t(74848);function i({name:e,...n}){const t=r[e];return t?(0,s.jsx)(t,{...n}):null}},19365:(e,n,t)=>{t.d(n,{A:()=>o});t(96540);var r=t(18215);const s={tabItem:"tabItem_Ymn6"};var i=t(74848);function o({children:e,hidden:n,className:t}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,r.A)(s.tabItem,t),hidden:n,children:e})}},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var r=t(96540);const s={},i=r.createContext(s);function o(e){const n=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},94617:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>l,metadata:()=>r,toc:()=>a});const r=JSON.parse('{"id":"Integrations/Docling/integrations-docling","title":"Integrate Docling with Langflow","description":"Langflow integrates with Docling through a suite of components for parsing documents.","source":"@site/docs/Integrations/Docling/integrations-docling.mdx","sourceDirName":"Integrations/Docling","slug":"/integrations-docling","permalink":"/integrations-docling","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Integrate Docling with Langflow","slug":"/integrations-docling"},"sidebar":"docs","previous":{"title":"Composio","permalink":"/integrations-composio"},"next":{"title":"Integrate Google Cloud Vertex AI with Langflow","permalink":"/integrations-setup-google-cloud-vertex-ai-langflow"}}');var s=t(74848),i=t(28453),o=(t(11470),t(19365),t(17886));const l={title:"Integrate Docling with Langflow",slug:"/integrations-docling"},c=void 0,d={},a=[{value:"Install Docling dependency",id:"install-docling-dependency",level:2},{value:"Use Docling components in a flow",id:"use-docling-components-in-a-flow",level:2},{value:"Docling components",id:"docling-components",level:2},{value:"Docling",id:"docling",level:3},{value:"Docling Serve",id:"docling-serve",level:3},{value:"Chunk DoclingDocument",id:"chunk-doclingdocument",level:3},{value:"Export DoclingDocument",id:"export-doclingdocument",level:3},{value:"Docling video tutorial",id:"docling-video-tutorial",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components},{Details:r}=n;return r||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Langflow integrates with ",(0,s.jsx)(n.a,{href:"https://docling-project.github.io/docling/",children:"Docling"})," through a suite of components for parsing documents."]}),"\n",(0,s.jsx)(n.h2,{id:"install-docling-dependency",children:"Install Docling dependency"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Install the Docling extra in Langflow OSS with ",(0,s.jsx)(n.code,{children:"uv pip install langflow[docling]"})," or ",(0,s.jsx)(n.code,{children:"uv pip install docling"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To add a dependency to Langflow Desktop, add an entry for Docling to the application's ",(0,s.jsx)(n.code,{children:"requirements.txt"})," file.\nFor more information, see ",(0,s.jsx)(n.a,{href:"/install-custom-dependencies#langflow-desktop",children:"Install custom dependencies in Langflow Desktop"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"use-docling-components-in-a-flow",children:"Use Docling components in a flow"}),"\n",(0,s.jsx)(n.p,{children:"This example demonstrates how to use Docling components to split a PDF in a flow:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Connect a ",(0,s.jsx)(n.strong,{children:"Docling"})," and an ",(0,s.jsx)(n.strong,{children:"ExportDoclingDocument"})," component to a ",(0,s.jsx)(n.a,{href:"/components-processing#split-text",children:(0,s.jsx)(n.strong,{children:"Split Text"})})," component.\nThe ",(0,s.jsx)(n.strong,{children:"Docling"})," component loads the document, and the ",(0,s.jsx)(n.strong,{children:"ExportDoclingDocument"})," component converts the DoclingDocument into the format you select. This example converts the document to Markdown, with images represented as placeholders.\nThe ",(0,s.jsx)(n.strong,{children:"Split Text"})," component will split the Markdown into chunks for the vector database to store in the next part of the flow."]}),"\n",(0,s.jsxs)(n.li,{children:["Connect a ",(0,s.jsx)(n.a,{href:"/components-vector-stores#chroma-db",children:(0,s.jsx)(n.strong,{children:"Chroma DB"})})," component to the ",(0,s.jsx)(n.strong,{children:"Split text"})," component's ",(0,s.jsx)(n.strong,{children:"Chunks"})," output."]}),"\n",(0,s.jsxs)(n.li,{children:["Connect an ",(0,s.jsx)(n.a,{href:"/components-embedding-models",children:(0,s.jsx)(n.strong,{children:"Embedding Model"})})," to Chroma's ",(0,s.jsx)(n.strong,{children:"Embedding"})," port, and a ",(0,s.jsx)(n.strong,{children:"Chat Output"})," component to view the extracted ",(0,s.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Add your OpenAI API key to the Embedding Model."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The flow looks like this:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Docling and ExportDoclingDocument extracting and splitting text to vector database",src:t(1422).A+"",width:"4000",height:"2060"})}),"\n",(0,s.jsxs)(n.ol,{start:"5",children:["\n",(0,s.jsxs)(n.li,{children:["Add a file to the ",(0,s.jsx)(n.strong,{children:"Docling"})," component."]}),"\n",(0,s.jsxs)(n.li,{children:["To run the flow, click ",(0,s.jsx)(o.A,{name:"Play","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Playground"}),".\nThe chunked document is loaded as vectors into your vector database."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"docling-components",children:"Docling components"}),"\n",(0,s.jsx)(n.p,{children:"The following sections describe the purpose and configuration options for each component in the Docling bundle."}),"\n",(0,s.jsx)(n.h3,{id:"docling",children:"Docling"}),"\n",(0,s.jsx)(n.p,{children:"This component uses Docling to process input documents running the Docling models locally."}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Parameters"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Inputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"files"}),(0,s.jsx)(n.td,{children:"File"}),(0,s.jsx)(n.td,{children:"The files to process."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"pipeline"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Docling pipeline to use (standard, vlm)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"ocr_engine"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"OCR engine to use (easyocr, tesserocr, rapidocr, ocrmac)."})]})]})]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Outputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"files"}),(0,s.jsx)(n.td,{children:"File"}),(0,s.jsx)(n.td,{children:"The processed files with DoclingDocument data."})]})})]})]}),"\n",(0,s.jsx)(n.h3,{id:"docling-serve",children:"Docling Serve"}),"\n",(0,s.jsx)(n.p,{children:"This component uses Docling to process input documents connecting to your instance of Docling Serve."}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Parameters"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Inputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"files"}),(0,s.jsx)(n.td,{children:"File"}),(0,s.jsx)(n.td,{children:"The files to process."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_url"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"URL of the Docling Serve instance."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"max_concurrency"}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:"Maximum number of concurrent requests for the server."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"max_poll_timeout"}),(0,s.jsx)(n.td,{children:"Float"}),(0,s.jsx)(n.td,{children:"Maximum waiting time for the document conversion to complete."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"api_headers"}),(0,s.jsx)(n.td,{children:"Dict"}),(0,s.jsx)(n.td,{children:"Optional dictionary of additional headers required for connecting to Docling Serve."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"docling_serve_opts"}),(0,s.jsx)(n.td,{children:"Dict"}),(0,s.jsx)(n.td,{children:"Optional dictionary of additional options for Docling Serve."})]})]})]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Outputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"files"}),(0,s.jsx)(n.td,{children:"File"}),(0,s.jsx)(n.td,{children:"The processed files with DoclingDocument data."})]})})]})]}),"\n",(0,s.jsx)(n.h3,{id:"chunk-doclingdocument",children:"Chunk DoclingDocument"}),"\n",(0,s.jsx)(n.p,{children:"This component uses the DoclingDocument chunkers to split a document into chunks."}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Parameters"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Inputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"data_inputs"}),(0,s.jsx)(n.td,{children:"Data/DataFrame"}),(0,s.jsx)(n.td,{children:"The data with documents to split in chunks."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"chunker"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Which chunker to use (HybridChunker, HierarchicalChunker)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"provider"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Which tokenizer provider (Hugging Face, OpenAI)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"hf_model_name"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Model name of the tokenizer to use with the HybridChunker when Hugging Face is chosen."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"openai_model_name"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Model name of the tokenizer to use with the HybridChunker when OpenAI is chosen."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"max_tokens"}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:"Maximum number of tokens for the HybridChunker."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"doc_key"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"The key to use for the DoclingDocument column."})]})]})]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Outputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"dataframe"}),(0,s.jsx)(n.td,{children:"DataFrame"}),(0,s.jsx)(n.td,{children:"The chunked documents as a DataFrame."})]})})]})]}),"\n",(0,s.jsx)(n.h3,{id:"export-doclingdocument",children:"Export DoclingDocument"}),"\n",(0,s.jsx)(n.p,{children:"This component exports DoclingDocument to Markdown, HTML, and other formats."}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Parameters"}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Inputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"data_inputs"}),(0,s.jsx)(n.td,{children:"Data/DataFrame"}),(0,s.jsx)(n.td,{children:"The data with documents to export."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"export_format"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Select the export format to convert the input (Markdown, HTML, Plaintext, DocTags)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"image_mode"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Specify how images are exported in the output (placeholder, embedded)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"md_image_placeholder"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Specify the image placeholder for markdown exports."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"md_page_break_placeholder"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Add this placeholder between pages in the markdown output."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"doc_key"}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"The key to use for the DoclingDocument column."})]})]})]}),(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Outputs"})}),(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Name"}),(0,s.jsx)(n.th,{children:"Type"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"data"}),(0,s.jsx)(n.td,{children:"Data"}),(0,s.jsx)(n.td,{children:"The exported data."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"dataframe"}),(0,s.jsx)(n.td,{children:"DataFrame"}),(0,s.jsx)(n.td,{children:"The exported data as a DataFrame."})]})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"docling-video-tutorial",children:"Docling video tutorial"}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about content extraction with Docling, see the video tutorial ",(0,s.jsx)(n.a,{href:"https://www.youtube.com/watch?v=5DuS6uRI5OM",children:"Docling + Langflow: Document Processing for AI Workflows"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}}}]); \ No newline at end of file diff --git a/assets/js/709203b3.7aa44440.js b/assets/js/709203b3.7aa44440.js deleted file mode 100644 index 9ee02382d3..0000000000 --- a/assets/js/709203b3.7aa44440.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7253],{17886:(e,n,o)=>{o.d(n,{A:()=>r});o(96540);var t=o(64058),s=o(74848);function r({name:e,...n}){const o=t[e];return o?(0,s.jsx)(o,{...n}):null}},17901:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/prompt-component-with-multiple-inputs-6e43783422ff57a873929aa2c97f43f0.png"},27389:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/prompt-component-4917278161834031f30525642b4fd87e.png"},32662:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>d,assets:()=>a,chCodeConfig:()=>h,contentTitle:()=>p,default:()=>x,frontMatter:()=>i,metadata:()=>t,toc:()=>u});const t=JSON.parse('{"id":"Concepts/concepts-components","title":"Components overview","description":"Components are the building blocks of your flows.","source":"@site/docs/Concepts/concepts-components.mdx","sourceDirName":"Concepts","slug":"/concepts-components","permalink":"/concepts-components","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Components overview","slug":"/concepts-components"},"sidebar":"docs","previous":{"title":"Manage files","permalink":"/concepts-file-management"},"next":{"title":"Agents","permalink":"/components-agents"}}');var s=o(74848),r=o(28453),c=o(24754),l=o(17886);const i={title:"Components overview",slug:"/concepts-components"},p=void 0,a={},d={annotations:c.hk,Code:c.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Add a component to a flow",id:"component-menus",level:2},{value:"Configure a component",id:"configure-a-component",level:3},{value:"Rename a component",id:"rename-a-component",level:3},{value:"Run a component",id:"run-a-component",level:3},{value:"Inspect component output and logs",id:"inspect-component-output-and-logs",level:3},{value:"Freeze a component",id:"freeze-a-component",level:3},{value:"Component ports",id:"component-ports",level:2},{value:"Dynamic ports",id:"dynamic-ports",level:3},{value:"Output type selection",id:"output-type-selection",level:3},{value:"Port colors",id:"port-colors",level:3},{value:"Component code",id:"component-code",level:2},{value:"Component versions",id:"component-versions",level:2},{value:"Update component versions",id:"update-component-versions",level:3},{value:"Group components",id:"group-components",level:2}];function m(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return d||g("CH",!1),d.Code||g("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsx)(n.p,{children:"Components are the building blocks of your flows.\nLike classes in an application, each component is designed for a specific use case or integration."}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["Langflow provides keyboard shortcuts for the ",(0,s.jsx)(n.strong,{children:"Workspace"}),"."]}),(0,s.jsxs)(n.p,{children:["In the Langflow header, click your profile icon, select ",(0,s.jsx)(n.strong,{children:"Settings"}),", and then click ",(0,s.jsx)(n.strong,{children:"Shortcuts"})," to view the available shortcuts."]})]}),"\n",(0,s.jsx)(n.h2,{id:"component-menus",children:"Add a component to a flow"}),"\n",(0,s.jsxs)(n.p,{children:["To add a component to a flow, drag the component from the ",(0,s.jsx)(n.strong,{children:"Components"})," menu to the ",(0,s.jsx)(n.a,{href:"/concepts-overview",children:(0,s.jsx)(n.strong,{children:"Workspace"})}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"Components"})," menu is organized by component type, and some components are hidden by default:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Beta components"}),": These are Langflow's core components. They are grouped by purpose, such as ",(0,s.jsx)(n.strong,{children:"Inputs"})," or ",(0,s.jsx)(n.strong,{children:"Data"}),". Be aware that these components are in beta and not suitable for production workloads."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Legacy components"}),": You can still use these components, but they are no longer supported. Legacy components are hidden by default; click ",(0,s.jsx)(l.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Component settings"})," to expose legacy components."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Bundles"}),": These components support specific integrations, and they are grouped by provider."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"configure-a-component",children:"Configure a component"}),"\n",(0,s.jsx)(n.p,{children:"After adding a component to a flow, configure the component's parameters and connect it to the other components in your flows."}),"\n",(0,s.jsx)(n.p,{children:"Each component has inputs, outputs, parameters, and controls related to the component's purpose.\nBy default, components show only required and common options.\nTo access additional settings and controls, including meta settings, use the component's header menu."}),"\n",(0,s.jsxs)(n.p,{children:["To access a component's header menu, click the component in your ",(0,s.jsx)(n.strong,{children:"Workspace"}),"."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Agent component",src:o(58876).A+"",width:"1948",height:"3344"})}),"\n",(0,s.jsx)(n.p,{children:"A few options are available directly on the header menu.\nFor example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Code"}),": Modify component settings by directly editing the component's Python code."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Controls"}),": Adjust all component parameters, including optional settings that are hidden by default."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Tool Mode"}),": Enable this option when combining a component with an ",(0,s.jsx)(n.strong,{children:"Agent"})," component."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["For all other options, including ",(0,s.jsx)(n.strong,{children:"Delete"})," and ",(0,s.jsx)(n.strong,{children:"Duplicate"})," controls, click ",(0,s.jsx)(l.A,{name:"Ellipsis","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Show More"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"rename-a-component",children:"Rename a component"}),"\n",(0,s.jsxs)(n.p,{children:["To modify a component's name or description, click the component in the ",(0,s.jsx)(n.strong,{children:"Workspace"}),", and then click ",(0,s.jsx)(l.A,{name:"PencilLine","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Edit"}),".\nComponent descriptions accept Markdown syntax."]}),"\n",(0,s.jsx)(n.h3,{id:"run-a-component",children:"Run a component"}),"\n",(0,s.jsxs)(n.p,{children:["To run a single component, click ",(0,s.jsx)(l.A,{name:"Play","aria-label":"Play button"})," ",(0,s.jsx)(n.strong,{children:"Run component"}),".\nA ",(0,s.jsx)(n.strong,{children:"Last Run"})," value indicates that the component ran successfully."]}),"\n",(0,s.jsxs)(n.p,{children:["Running a single component is different from running an entire flow. In a single component run, the ",(0,s.jsx)(n.code,{children:"build_vertex"})," function is called, which builds and runs only the single component with direct inputs provided through the UI (the ",(0,s.jsx)(n.code,{children:"inputs_dict"})," parameter). The ",(0,s.jsx)(n.code,{children:"VertexBuildResult"})," data is passed to the ",(0,s.jsx)(n.code,{children:"build_and_run"})," method that calls the component's ",(0,s.jsx)(n.code,{children:"build"})," method and runs it. Unlike running an entire flow, running a single component doesn't automatically execute its upstream dependencies."]}),"\n",(0,s.jsx)(n.h3,{id:"inspect-component-output-and-logs",children:"Inspect component output and logs"}),"\n",(0,s.jsxs)(n.p,{children:["To view the output and logs for a single component, click ",(0,s.jsx)(l.A,{name:"TextSearch","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Inspect"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"freeze-a-component",children:"Freeze a component"}),"\n",(0,s.jsx)(n.admonition,{type:"important",children:(0,s.jsx)(n.p,{children:"Freezing a component also freezes all components upstream of the selected component."})}),"\n",(0,s.jsxs)(n.p,{children:["Use the freeze option if you expect consistent output from a component ",(0,s.jsx)(n.em,{children:"and all upstream components"}),", and you only need to run those components once."]}),"\n",(0,s.jsx)(n.p,{children:"Freezing a component prevents that component and all upstream components from re-running, and it preserves the last output state for those components.\nAny future flow runs use the preserved output."}),"\n",(0,s.jsxs)(n.p,{children:["To freeze a component, click the component in the ",(0,s.jsx)(n.strong,{children:"Workspace"})," to expose the component's header menu, click ",(0,s.jsx)(l.A,{name:"Ellipsis","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Show More"}),", and then select ",(0,s.jsx)(n.strong,{children:"Freeze"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"component-ports",children:"Component ports"}),"\n",(0,s.jsxs)(n.p,{children:["Circular port icons (",(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#4f46e5",fill:"#4f46e5"}}),") on the border of a component indicate the types of inputs and outputs that can be connected to the component at that port."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Prompt component with multiple inputs",src:o(27389).A+"",width:"2600",height:"3020"})}),"\n",(0,s.jsx)(n.h3,{id:"dynamic-ports",children:"Dynamic ports"}),"\n",(0,s.jsxs)(n.p,{children:["Some components have ports that are dynamically added or removed.\nFor example, the ",(0,s.jsx)(n.strong,{children:"Prompt"})," component accepts inputs within curly braces, and new ports are opened when a value within curly braces is detected in the ",(0,s.jsx)(n.strong,{children:"Template"})," field."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Prompt component with multiple inputs",src:o(17901).A+"",width:"2104",height:"2928"})}),"\n",(0,s.jsx)(n.h3,{id:"output-type-selection",children:"Output type selection"}),"\n",(0,s.jsx)(n.p,{children:"Some components include dropdown menus to select the type of output sent to the next component."}),"\n",(0,s.jsxs)(n.p,{children:["For example, the ",(0,s.jsx)(n.strong,{children:"Language Model"})," component includes ",(0,s.jsx)(n.strong,{children:"Model Response"})," or ",(0,s.jsx)(n.strong,{children:"Language Model"})," outputs.\nThe ",(0,s.jsx)(n.strong,{children:"Model Response"})," output sends a ",(0,s.jsx)(n.a,{href:"/concepts-objects#message-object",children:"Message"})," output on to another Message port.\nThe ",(0,s.jsx)(n.strong,{children:"Language Model"})," output can be connected to components like ",(0,s.jsx)(n.a,{href:"/components-processing#structured-output",children:"Structured output"})," to use the LLM to power the component's reasoning."]}),"\n",(0,s.jsx)(n.h3,{id:"port-colors",children:"Port colors"}),"\n",(0,s.jsx)(n.p,{children:"Component port colors indicate the data type ingested or emitted by the port.\nFor example, a text port either accepts or emits text data."}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Hover over a port to see connection details for that port."})}),"\n",(0,s.jsx)(n.p,{children:"The following table lists the component port colors and their corresponding input types:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Data type"}),(0,s.jsx)(n.th,{children:"Port color"}),(0,s.jsx)(n.th,{children:"Port icon example"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Data"}),(0,s.jsx)(n.td,{children:"Red"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#dc2626",fill:"#dc2626"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DataFrame"}),(0,s.jsx)(n.td,{children:"Pink"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#ec4899",fill:"#ec4899"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Embeddings"}),(0,s.jsx)(n.td,{children:"Emerald"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#10b981",fill:"#10b981"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"LanguageModel"}),(0,s.jsx)(n.td,{children:"Fuchsia"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#c026d3",fill:"#c026d3"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Memory"}),(0,s.jsx)(n.td,{children:"Orange"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#f97316",fill:"#f97316"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Message"}),(0,s.jsx)(n.td,{children:"Indigo"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#4f46e5",fill:"#4f46e5"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Text"}),(0,s.jsx)(n.td,{children:"Indigo"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#4f46e5",fill:"#4f46e5"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Tool"}),(0,s.jsx)(n.td,{children:"Cyan"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#06b6d4",fill:"#06b6d4"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Unknown"}),(0,s.jsx)(n.td,{children:"Gray"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#9CA3AF",fill:"#9CA3AF"}})})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"component-code",children:"Component code"}),"\n",(0,s.jsxs)(n.p,{children:["You can edit components in the visual editor and in code. When editing a flow, select a component, and then click ",(0,s.jsx)(l.A,{name:"Code","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Code"})," to see and edit the component's underlying Python code."]}),"\n",(0,s.jsx)(n.p,{children:"All components have underlying code that determines how you configure them and what actions they can perform.\nIn the context of creating and running flows, component code does the following:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Determines what configuration options to show in the Langflow UI."}),"\n",(0,s.jsx)(n.li,{children:"Validates inputs based on the component's defined input types."}),"\n",(0,s.jsx)(n.li,{children:"Processes data using the configured parameters, methods, and functions."}),"\n",(0,s.jsx)(n.li,{children:"Passes results to the next component in the flow."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["All components inherit from a base ",(0,s.jsx)(n.code,{children:"Component"})," class that defines the component's interface and behavior.\nFor example, the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/components/langchain_utilities/recursive_character.py",children:"Recursive character text splitter"})," is a child of the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/base/textsplitters/model.py",children:"LCTextSplitterComponent"})," class."]}),"\n",(0,s.jsxs)(n.p,{children:["Each component's code includes definitions for inputs and outputs, which are represented in the ",(0,s.jsx)(n.strong,{children:"Workspace"})," as ",(0,s.jsx)(n.a,{href:"/concepts-components#component-ports",children:"component ports"}),".\nFor example, the ",(0,s.jsx)(n.code,{children:"RecursiveCharacterTextSplitter"})," has four inputs. Each input definition specifies the input type, such as ",(0,s.jsx)(n.code,{children:"IntInput"}),", as well as the encoded name, display name, description, and other parameters for that specific input.\nThese values determine the component settings, such as display names and tooltips in the Langflow UI."]}),"\n",(0,s.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" IntInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"chunk_size"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Chunk Size"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"The maximum length of each chunk."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"1000",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" IntInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"chunk_overlap"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Chunk Overlap"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"The amount of overlap between chunks."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"200",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DataInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"data_input"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"The texts to split."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_types",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"Document"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Data"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"separators"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Separators"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"'The characters to split on.",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'If left empty defaults to ["',props:{style:{color:"#A5D6FF"}}},{content:"\\\\",props:{style:{color:"#79C0FF"}}},{content:"n",props:{style:{color:"#A5D6FF"}}},{content:"\\\\",props:{style:{color:"#79C0FF"}}},{content:'n", "',props:{style:{color:"#A5D6FF"}}},{content:"\\\\",props:{style:{color:"#79C0FF"}}},{content:'n", " ", ""].\'',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" is_list",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["Additionally, components have methods or functions that handle their functionality.\nFor example, the ",(0,s.jsx)(n.code,{children:"RecursiveCharacterTextSplitter"})," has two methods:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"get_data_input",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Any:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".data_input",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_text_splitter",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> TextSplitter:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if not ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".separators:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" separators: list[",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"None ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # check if the separators list has escaped characters",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" # if there are escaped characters, unescape them",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" separators ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [unescape_string(x) ",props:{style:{color:"#C9D1D9"}}},{content:"for",props:{style:{color:"#FF7B72"}}},{content:" x ",props:{style:{color:"#C9D1D9"}}},{content:"in ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".separators]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" RecursiveCharacterTextSplitter(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" separators",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"separators,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" chunk_size",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".chunk_size,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" chunk_overlap",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".chunk_overlap,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"get_data_input"})," method retrieves the text data to be split from the component's input, which makes the data available to the class.\nThe ",(0,s.jsx)(n.code,{children:"build_text_splitter"})," method creates a ",(0,s.jsx)(n.code,{children:"RecursiveCharacterTextSplitter"})," object by calling its parent class's ",(0,s.jsx)(n.code,{children:"build"})," method. Then, the text is split with the created splitter and passed to the next component."]}),"\n",(0,s.jsx)(n.h2,{id:"component-versions",children:"Component versions"}),"\n",(0,s.jsx)(n.p,{children:"Component versions and states are stored in an internal Langflow database. When you add a component to a flow, you create a detached copy of the component based on the information in the Langflow database.\nThese copies are detached from the primary Langflow database, and they don't synchronize with any updates that can occur when you upgrade your Langflow version."}),"\n",(0,s.jsxs)(n.p,{children:["In other words, an individual instance of a component retains the version number and state from the moment you add it to a specific flow. For example, if a component is at version 1.0 when you add it to a flow, it remains at version 1.0 ",(0,s.jsx)(n.em,{children:"in that flow"})," unless you update it."]}),"\n",(0,s.jsx)(n.h3,{id:"update-component-versions",children:"Update component versions"}),"\n",(0,s.jsxs)(n.p,{children:["When editing a flow in the ",(0,s.jsx)(n.strong,{children:"Workspace"}),", Langflow notifies you if a component's workspace version is behind the database version so you can update the component's workspace version:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Update ready"}),": This notification means the component update contains no breaking changes."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Update available"}),": This notification means the component update might contain breaking changes."]}),"\n",(0,s.jsx)(n.p,{children:"Breaking changes modify component inputs and outputs, causing the components to be disconnected and break the flow. After updating the component, you might need to edit the component settings or reconnect component ports."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"There are two ways to update components:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.strong,{children:"Update"})," to update a single component. This is recommended for updates without breaking changes."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.strong,{children:"Review"})," to view all available updates and create a snapshot before updating. This is recommended for updates with breaking changes."]}),"\n",(0,s.jsxs)(n.p,{children:["To save a snapshot of your flow before updating the components, enable ",(0,s.jsx)(n.strong,{children:"Create backup flow before updating"}),". Backup flows are stored in the same project folder as the original flow with the suffix ",(0,s.jsx)(n.code,{children:"(backup)"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To update specific components, select the components you want to update, and then click ",(0,s.jsx)(n.strong,{children:"Update Components"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Components are updated to the latest available version, based on the version of Langflow you are running."}),"\n",(0,s.jsx)(n.h2,{id:"group-components",children:"Group components"}),"\n",(0,s.jsxs)(n.p,{children:["Multiple components can be grouped into a single component for reuse. This is useful for organizing large flows by combining related components together, such as a RAG ",(0,s.jsx)(n.strong,{children:"Agent"})," component and an associated vector database component."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Hold ",(0,s.jsx)("kbd",{children:"Shift"}),", and then click and drag to highlight all components you want to merge. Components must be completely within the selection area to be merged."]}),"\n",(0,s.jsxs)(n.li,{children:["Release the mouse and keyboard, and then click ",(0,s.jsx)(n.strong,{children:"Group"})," to merge the components into a single, group component."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Grouped components are configured and managed as a single component, including the component name, code, and settings."}),"\n",(0,s.jsxs)(n.p,{children:["To ungroup the components, click the component in the ",(0,s.jsx)(n.strong,{children:"Workspace"})," to expose the component's header menu, click ",(0,s.jsx)(l.A,{name:"Ellipsis","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Show More"}),", and then select ",(0,s.jsx)(n.strong,{children:"Ungroup"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["If you want to reuse this grouping in other flows, click the component in the ",(0,s.jsx)(n.strong,{children:"Workspace"})," to expose the component's header menu, click ",(0,s.jsx)(l.A,{name:"Ellipsis","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Show More"}),", and then select ",(0,s.jsx)(n.strong,{children:"Save"})," to save the component to the ",(0,s.jsx)(n.strong,{children:"Components"})," menu."]})]})}function x(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}function g(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},58876:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/agent-component-4c496697124cfebd3883ee9ade19ca5c.png"}}]); \ No newline at end of file diff --git a/assets/js/709203b3.d7e6cc2c.js b/assets/js/709203b3.d7e6cc2c.js new file mode 100644 index 0000000000..2b18743aac --- /dev/null +++ b/assets/js/709203b3.d7e6cc2c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7253],{17886:(e,n,o)=>{o.d(n,{A:()=>r});o(96540);var t=o(64058),s=o(74848);function r({name:e,...n}){const o=t[e];return o?(0,s.jsx)(o,{...n}):null}},17901:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/prompt-component-with-multiple-inputs-6e43783422ff57a873929aa2c97f43f0.png"},27389:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/prompt-component-4917278161834031f30525642b4fd87e.png"},32662:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>d,assets:()=>a,chCodeConfig:()=>h,contentTitle:()=>p,default:()=>x,frontMatter:()=>i,metadata:()=>t,toc:()=>u});const t=JSON.parse('{"id":"Concepts/concepts-components","title":"Components overview","description":"Components are the building blocks of your flows.","source":"@site/docs/Concepts/concepts-components.mdx","sourceDirName":"Concepts","slug":"/concepts-components","permalink":"/concepts-components","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Components overview","slug":"/concepts-components"},"sidebar":"docs","previous":{"title":"Manage files","permalink":"/concepts-file-management"},"next":{"title":"Agents","permalink":"/components-agents"}}');var s=o(74848),r=o(28453),c=o(24754),l=o(17886);const i={title:"Components overview",slug:"/concepts-components"},p=void 0,a={},d={annotations:c.hk,Code:c.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Add a component to a flow",id:"component-menus",level:2},{value:"Configure a component",id:"configure-a-component",level:3},{value:"Rename a component",id:"rename-a-component",level:3},{value:"Run a component",id:"run-a-component",level:3},{value:"Inspect component output and logs",id:"inspect-component-output-and-logs",level:3},{value:"Freeze a component",id:"freeze-a-component",level:3},{value:"Component ports",id:"component-ports",level:2},{value:"Dynamic ports",id:"dynamic-ports",level:3},{value:"Output type selection",id:"output-type-selection",level:3},{value:"Port colors",id:"port-colors",level:3},{value:"Component code",id:"component-code",level:2},{value:"Component versions",id:"component-versions",level:2},{value:"Update component versions",id:"update-component-versions",level:3},{value:"Group components",id:"group-components",level:2}];function m(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return d||g("CH",!1),d.Code||g("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsx)(n.p,{children:"Components are the building blocks of your flows.\nLike classes in an application, each component is designed for a specific use case or integration."}),"\n",(0,s.jsxs)(n.admonition,{type:"tip",children:[(0,s.jsxs)(n.p,{children:["Langflow provides keyboard shortcuts for the ",(0,s.jsx)(n.strong,{children:"Workspace"}),"."]}),(0,s.jsxs)(n.p,{children:["In the Langflow header, click your profile icon, select ",(0,s.jsx)(n.strong,{children:"Settings"}),", and then click ",(0,s.jsx)(n.strong,{children:"Shortcuts"})," to view the available shortcuts."]})]}),"\n",(0,s.jsx)(n.h2,{id:"component-menus",children:"Add a component to a flow"}),"\n",(0,s.jsxs)(n.p,{children:["To add a component to a flow, drag the component from the ",(0,s.jsx)(n.strong,{children:"Components"})," menu to the ",(0,s.jsx)(n.a,{href:"/concepts-overview",children:(0,s.jsx)(n.strong,{children:"Workspace"})}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"Components"})," menu is organized by component type, and some components are hidden by default:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Beta components"}),": These are Langflow's core components. They are grouped by purpose, such as ",(0,s.jsx)(n.strong,{children:"Inputs"})," or ",(0,s.jsx)(n.strong,{children:"Data"}),". Be aware that these components are in beta and not suitable for production workloads."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Legacy components"}),": You can still use these components, but they are no longer supported. Legacy components are hidden by default; click ",(0,s.jsx)(l.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Component settings"})," to expose legacy components."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Bundles"}),": These components support specific integrations, and they are grouped by provider."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"configure-a-component",children:"Configure a component"}),"\n",(0,s.jsx)(n.p,{children:"After adding a component to a flow, configure the component's parameters and connect it to the other components in your flows."}),"\n",(0,s.jsx)(n.p,{children:"Each component has inputs, outputs, parameters, and controls related to the component's purpose.\nBy default, components show only required and common options.\nTo access additional settings and controls, including meta settings, use the component's header menu."}),"\n",(0,s.jsxs)(n.p,{children:["To access a component's header menu, click the component in your ",(0,s.jsx)(n.strong,{children:"Workspace"}),"."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Agent component",src:o(58876).A+"",width:"1948",height:"3344"})}),"\n",(0,s.jsx)(n.p,{children:"A few options are available directly on the header menu.\nFor example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Code"}),": Modify component settings by directly editing the component's Python code."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Controls"}),": Adjust all component parameters, including optional settings that are hidden by default."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Tool Mode"}),": Enable this option when combining a component with an ",(0,s.jsx)(n.strong,{children:"Agent"})," component."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["For all other options, including ",(0,s.jsx)(n.strong,{children:"Delete"})," and ",(0,s.jsx)(n.strong,{children:"Duplicate"})," controls, click ",(0,s.jsx)(l.A,{name:"Ellipsis","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Show More"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"rename-a-component",children:"Rename a component"}),"\n",(0,s.jsxs)(n.p,{children:["To modify a component's name or description, click the component in the ",(0,s.jsx)(n.strong,{children:"Workspace"}),", and then click ",(0,s.jsx)(l.A,{name:"PencilLine","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Edit"}),".\nComponent descriptions accept Markdown syntax."]}),"\n",(0,s.jsx)(n.h3,{id:"run-a-component",children:"Run a component"}),"\n",(0,s.jsxs)(n.p,{children:["To run a single component, click ",(0,s.jsx)(l.A,{name:"Play","aria-label":"Play button"})," ",(0,s.jsx)(n.strong,{children:"Run component"}),".\nA ",(0,s.jsx)(n.strong,{children:"Last Run"})," value indicates that the component ran successfully."]}),"\n",(0,s.jsxs)(n.p,{children:["Running a single component is different from running an entire flow. In a single component run, the ",(0,s.jsx)(n.code,{children:"build_vertex"})," function is called, which builds and runs only the single component with direct inputs provided through the UI (the ",(0,s.jsx)(n.code,{children:"inputs_dict"})," parameter). The ",(0,s.jsx)(n.code,{children:"VertexBuildResult"})," data is passed to the ",(0,s.jsx)(n.code,{children:"build_and_run"})," method that calls the component's ",(0,s.jsx)(n.code,{children:"build"})," method and runs it. Unlike running an entire flow, running a single component doesn't automatically execute its upstream dependencies."]}),"\n",(0,s.jsx)(n.h3,{id:"inspect-component-output-and-logs",children:"Inspect component output and logs"}),"\n",(0,s.jsxs)(n.p,{children:["To view the output and logs for a single component, click ",(0,s.jsx)(l.A,{name:"TextSearch","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Inspect"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"freeze-a-component",children:"Freeze a component"}),"\n",(0,s.jsx)(n.admonition,{type:"important",children:(0,s.jsx)(n.p,{children:"Freezing a component also freezes all components upstream of the selected component."})}),"\n",(0,s.jsxs)(n.p,{children:["Use the freeze option if you expect consistent output from a component ",(0,s.jsx)(n.em,{children:"and all upstream components"}),", and you only need to run those components once."]}),"\n",(0,s.jsx)(n.p,{children:"Freezing a component prevents that component and all upstream components from re-running, and it preserves the last output state for those components.\nAny future flow runs use the preserved output."}),"\n",(0,s.jsxs)(n.p,{children:["To freeze a component, click the component in the ",(0,s.jsx)(n.strong,{children:"Workspace"})," to expose the component's header menu, click ",(0,s.jsx)(l.A,{name:"Ellipsis","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Show More"}),", and then select ",(0,s.jsx)(n.strong,{children:"Freeze"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"component-ports",children:"Component ports"}),"\n",(0,s.jsxs)(n.p,{children:["Circular port icons (",(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#4f46e5",fill:"#4f46e5"}}),") on the border of a component indicate the types of inputs and outputs that can be connected to the component at that port."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Prompt component with multiple inputs",src:o(27389).A+"",width:"2600",height:"3020"})}),"\n",(0,s.jsx)(n.h3,{id:"dynamic-ports",children:"Dynamic ports"}),"\n",(0,s.jsxs)(n.p,{children:["Some components have ports that are dynamically added or removed.\nFor example, the ",(0,s.jsx)(n.strong,{children:"Prompt"})," component accepts inputs within curly braces, and new ports are opened when a value within curly braces is detected in the ",(0,s.jsx)(n.strong,{children:"Template"})," field."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Prompt component with multiple inputs",src:o(17901).A+"",width:"2104",height:"2928"})}),"\n",(0,s.jsx)(n.h3,{id:"output-type-selection",children:"Output type selection"}),"\n",(0,s.jsx)(n.p,{children:"Some components include dropdown menus to select the type of output sent to the next component."}),"\n",(0,s.jsxs)(n.p,{children:["For example, the ",(0,s.jsx)(n.strong,{children:"Language Model"})," component includes ",(0,s.jsx)(n.strong,{children:"Model Response"})," or ",(0,s.jsx)(n.strong,{children:"Language Model"})," outputs.\nThe ",(0,s.jsx)(n.strong,{children:"Model Response"})," output sends a ",(0,s.jsx)(n.a,{href:"/concepts-objects#message-object",children:"Message"})," output on to another Message port.\nThe ",(0,s.jsx)(n.strong,{children:"Language Model"})," output can be connected to components like ",(0,s.jsx)(n.a,{href:"/components-processing#structured-output",children:"Structured output"})," to use the LLM to power the component's reasoning."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Output type selection in the Language Model component",src:o(64599).A+"",width:"280",height:"446"})}),"\n",(0,s.jsx)(n.h3,{id:"port-colors",children:"Port colors"}),"\n",(0,s.jsx)(n.p,{children:"Component port colors indicate the data type ingested or emitted by the port.\nFor example, a text port either accepts or emits text data."}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsx)(n.p,{children:"Hover over a port to see connection details for that port."})}),"\n",(0,s.jsx)(n.p,{children:"The following table lists the component port colors and their corresponding input types:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Data type"}),(0,s.jsx)(n.th,{children:"Port color"}),(0,s.jsx)(n.th,{children:"Port icon example"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Data"}),(0,s.jsx)(n.td,{children:"Red"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#dc2626",fill:"#dc2626"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DataFrame"}),(0,s.jsx)(n.td,{children:"Pink"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#ec4899",fill:"#ec4899"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Embeddings"}),(0,s.jsx)(n.td,{children:"Emerald"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#10b981",fill:"#10b981"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"LanguageModel"}),(0,s.jsx)(n.td,{children:"Fuchsia"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#c026d3",fill:"#c026d3"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Memory"}),(0,s.jsx)(n.td,{children:"Orange"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#f97316",fill:"#f97316"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Message"}),(0,s.jsx)(n.td,{children:"Indigo"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#4f46e5",fill:"#4f46e5"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Text"}),(0,s.jsx)(n.td,{children:"Indigo"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#4f46e5",fill:"#4f46e5"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Tool"}),(0,s.jsx)(n.td,{children:"Cyan"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#06b6d4",fill:"#06b6d4"}})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"Unknown"}),(0,s.jsx)(n.td,{children:"Gray"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(l.A,{name:"Circle",size:"16","aria-label":"Circular component port icon",style:{color:"#9CA3AF",fill:"#9CA3AF"}})})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"component-code",children:"Component code"}),"\n",(0,s.jsxs)(n.p,{children:["You can edit components in the visual editor and in code. When editing a flow, select a component, and then click ",(0,s.jsx)(l.A,{name:"Code","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Code"})," to see and edit the component's underlying Python code."]}),"\n",(0,s.jsx)(n.p,{children:"All components have underlying code that determines how you configure them and what actions they can perform.\nIn the context of creating and running flows, component code does the following:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Determines what configuration options to show in the Langflow UI."}),"\n",(0,s.jsx)(n.li,{children:"Validates inputs based on the component's defined input types."}),"\n",(0,s.jsx)(n.li,{children:"Processes data using the configured parameters, methods, and functions."}),"\n",(0,s.jsx)(n.li,{children:"Passes results to the next component in the flow."}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["All components inherit from a base ",(0,s.jsx)(n.code,{children:"Component"})," class that defines the component's interface and behavior.\nFor example, the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/components/langchain_utilities/recursive_character.py",children:"Recursive character text splitter"})," is a child of the ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/base/textsplitters/model.py",children:"LCTextSplitterComponent"})," class."]}),"\n",(0,s.jsxs)(n.p,{children:["Each component's code includes definitions for inputs and outputs, which are represented in the ",(0,s.jsx)(n.strong,{children:"Workspace"})," as ",(0,s.jsx)(n.a,{href:"/concepts-components#component-ports",children:"component ports"}),".\nFor example, the ",(0,s.jsx)(n.code,{children:"RecursiveCharacterTextSplitter"})," has four inputs. Each input definition specifies the input type, such as ",(0,s.jsx)(n.code,{children:"IntInput"}),", as well as the encoded name, display name, description, and other parameters for that specific input.\nThese values determine the component settings, such as display names and tooltips in the Langflow UI."]}),"\n",(0,s.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" IntInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"chunk_size"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Chunk Size"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"The maximum length of each chunk."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"1000",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" IntInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"chunk_overlap"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Chunk Overlap"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"The amount of overlap between chunks."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"200",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DataInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"data_input"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"The texts to split."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_types",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"Document"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Data"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"separators"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Separators"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"'The characters to split on.",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'If left empty defaults to ["',props:{style:{color:"#A5D6FF"}}},{content:"\\\\",props:{style:{color:"#79C0FF"}}},{content:"n",props:{style:{color:"#A5D6FF"}}},{content:"\\\\",props:{style:{color:"#79C0FF"}}},{content:'n", "',props:{style:{color:"#A5D6FF"}}},{content:"\\\\",props:{style:{color:"#79C0FF"}}},{content:'n", " ", ""].\'',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" is_list",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["Additionally, components have methods or functions that handle their functionality.\nFor example, the ",(0,s.jsx)(n.code,{children:"RecursiveCharacterTextSplitter"})," has two methods:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"get_data_input",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Any:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".data_input",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_text_splitter",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> TextSplitter:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if not ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".separators:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" separators: list[",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"None ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # check if the separators list has escaped characters",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" # if there are escaped characters, unescape them",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" separators ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [unescape_string(x) ",props:{style:{color:"#C9D1D9"}}},{content:"for",props:{style:{color:"#FF7B72"}}},{content:" x ",props:{style:{color:"#C9D1D9"}}},{content:"in ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".separators]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" RecursiveCharacterTextSplitter(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" separators",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"separators,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" chunk_size",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".chunk_size,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" chunk_overlap",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".chunk_overlap,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"get_data_input"})," method retrieves the text data to be split from the component's input, which makes the data available to the class.\nThe ",(0,s.jsx)(n.code,{children:"build_text_splitter"})," method creates a ",(0,s.jsx)(n.code,{children:"RecursiveCharacterTextSplitter"})," object by calling its parent class's ",(0,s.jsx)(n.code,{children:"build"})," method. Then, the text is split with the created splitter and passed to the next component."]}),"\n",(0,s.jsx)(n.h2,{id:"component-versions",children:"Component versions"}),"\n",(0,s.jsx)(n.p,{children:"Component versions and states are stored in an internal Langflow database. When you add a component to a flow, you create a detached copy of the component based on the information in the Langflow database.\nThese copies are detached from the primary Langflow database, and they don't synchronize with any updates that can occur when you upgrade your Langflow version."}),"\n",(0,s.jsxs)(n.p,{children:["In other words, an individual instance of a component retains the version number and state from the moment you add it to a specific flow. For example, if a component is at version 1.0 when you add it to a flow, it remains at version 1.0 ",(0,s.jsx)(n.em,{children:"in that flow"})," unless you update it."]}),"\n",(0,s.jsx)(n.h3,{id:"update-component-versions",children:"Update component versions"}),"\n",(0,s.jsxs)(n.p,{children:["When editing a flow in the ",(0,s.jsx)(n.strong,{children:"Workspace"}),", Langflow notifies you if a component's workspace version is behind the database version so you can update the component's workspace version:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Update ready"}),": This notification means the component update contains no breaking changes."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Update available"}),": This notification means the component update might contain breaking changes."]}),"\n",(0,s.jsx)(n.p,{children:"Breaking changes modify component inputs and outputs, causing the components to be disconnected and break the flow. After updating the component, you might need to edit the component settings or reconnect component ports."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"There are two ways to update components:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.strong,{children:"Update"})," to update a single component. This is recommended for updates without breaking changes."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Click ",(0,s.jsx)(n.strong,{children:"Review"})," to view all available updates and create a snapshot before updating. This is recommended for updates with breaking changes."]}),"\n",(0,s.jsxs)(n.p,{children:["To save a snapshot of your flow before updating the components, enable ",(0,s.jsx)(n.strong,{children:"Create backup flow before updating"}),". Backup flows are stored in the same project folder as the original flow with the suffix ",(0,s.jsx)(n.code,{children:"(backup)"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To update specific components, select the components you want to update, and then click ",(0,s.jsx)(n.strong,{children:"Update Components"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Components are updated to the latest available version, based on the version of Langflow you are running."}),"\n",(0,s.jsx)(n.h2,{id:"group-components",children:"Group components"}),"\n",(0,s.jsxs)(n.p,{children:["Multiple components can be grouped into a single component for reuse. This is useful for organizing large flows by combining related components together, such as a RAG ",(0,s.jsx)(n.strong,{children:"Agent"})," component and an associated vector database component."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Hold ",(0,s.jsx)("kbd",{children:"Shift"}),", and then click and drag to highlight all components you want to merge. Components must be completely within the selection area to be merged."]}),"\n",(0,s.jsxs)(n.p,{children:["Alternatively, to select components for merging one by one, hold ",(0,s.jsx)("kbd",{children:"Ctrl"})," on Windows or ",(0,s.jsx)("kbd",{children:"Cmd"})," on Mac, and then click each component to add them to the group."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Release the mouse and keyboard, and then click ",(0,s.jsx)(n.strong,{children:"Group"})," to merge the components into a single, group component."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Grouped components are configured and managed as a single component, including the component name, code, and settings."}),"\n",(0,s.jsxs)(n.p,{children:["To ungroup the components, click the component in the ",(0,s.jsx)(n.strong,{children:"Workspace"})," to expose the component's header menu, click ",(0,s.jsx)(l.A,{name:"Ellipsis","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Show More"}),", and then select ",(0,s.jsx)(n.strong,{children:"Ungroup"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["If you want to reuse this grouping in other flows, click the component in the ",(0,s.jsx)(n.strong,{children:"Workspace"})," to expose the component's header menu, click ",(0,s.jsx)(l.A,{name:"Ellipsis","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Show More"}),", and then select ",(0,s.jsx)(n.strong,{children:"Save"})," to save the component to the ",(0,s.jsx)(n.strong,{children:"Components"})," menu."]})]})}function x(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}function g(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},58876:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/agent-component-4c496697124cfebd3883ee9ade19ca5c.png"},64599:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/select-output-f7d64629d278098e3fba32fe79f79ed6.png"}}]); \ No newline at end of file diff --git a/assets/js/7f193c41.94ddf663.js b/assets/js/7f193c41.cb9bad9f.js similarity index 86% rename from assets/js/7f193c41.94ddf663.js rename to assets/js/7f193c41.cb9bad9f.js index f3eaaa59c9..592de23a03 100644 --- a/assets/js/7f193c41.94ddf663.js +++ b/assets/js/7f193c41.cb9bad9f.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5761],{14876:(e,n,s)=>{s.r(n),s.d(n,{CH:()=>a,assets:()=>h,chCodeConfig:()=>x,contentTitle:()=>l,default:()=>u,frontMatter:()=>c,metadata:()=>t,toc:()=>j});const t=JSON.parse('{"id":"Components/components-data","title":"Data","description":"Data components load data from a source into your flow.","source":"@site/docs/Components/components-data.mdx","sourceDirName":"Components","slug":"/components-data","permalink":"/components-data","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Data","slug":"/components-data"},"sidebar":"docs","previous":{"title":"Create custom Python components","permalink":"/components-custom-components"},"next":{"title":"Embedding models","permalink":"/components-embedding-models"}}');var r=s(74848),d=s(28453),i=s(24754),o=s(17886);const c={title:"Data",slug:"/components-data"},l="Data components in Langflow",h={},a={annotations:i.hk,Code:i.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Use data components in a flow",id:"use-data-components-in-a-flow",level:2},{value:"API Request",id:"api-request",level:2},{value:"Directory",id:"directory",level:2},{value:"File",id:"file",level:2},{value:"Supported File Types",id:"supported-file-types",level:3},{value:"News search",id:"news-search",level:2},{value:"RSS Reader",id:"rss-reader",level:2},{value:"SQL database",id:"sql-database",level:2},{value:"Web search",id:"web-search",level:2},{value:"URL",id:"url",level:2},{value:"Webhook",id:"webhook",level:2},{value:"Legacy components",id:"legacy-components",level:2},{value:"Gmail Loader",id:"gmail-loader",level:3},{value:"Google Drive Loader",id:"google-drive-loader",level:3},{value:"Google Drive Search",id:"google-drive-search",level:3}];function p(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components},{Details:t}=n;return a||m("CH",!1),a.Code||m("CH.Code",!0),t||m("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"data-components-in-langflow",children:"Data components in Langflow"})}),"\n",(0,r.jsx)(n.p,{children:"Data components load data from a source into your flow."}),"\n",(0,r.jsx)(n.p,{children:"They may perform some processing or type checking, like converting raw HTML data into text, or ensuring your loaded file is of an acceptable type."}),"\n",(0,r.jsx)(n.h2,{id:"use-data-components-in-a-flow",children:"Use data components in a flow"}),"\n",(0,r.jsxs)(n.p,{children:["Components like ",(0,r.jsx)(n.a,{href:"#news-search",children:"News search"}),", ",(0,r.jsx)(n.a,{href:"#rss-reader",children:"RSS reader"}),", and ",(0,r.jsx)(n.a,{href:"#web-search",children:"Web search"})," all fetch data into Langflow, and connect to Langflow in the same way. They can output the retrieved data in ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," format, or can be connected to an ",(0,r.jsx)(n.strong,{children:"Agent"})," component to be used as tools."]}),"\n",(0,r.jsx)(n.p,{children:"For example, to connect all three components to an Agent component, do the following:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Create the ",(0,r.jsx)(n.a,{href:"/simple-agent",children:"Simple Agent starter flow"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Agent"})," component, in the ",(0,r.jsx)(n.strong,{children:"OpenAI API Key"})," field, add your OpenAI API key."]}),"\n",(0,r.jsxs)(n.li,{children:["Add the ",(0,r.jsx)(n.strong,{children:"News search"}),", ",(0,r.jsx)(n.strong,{children:"RSS reader"}),", and ",(0,r.jsx)(n.strong,{children:"Web Search"})," components to your flow."]}),"\n",(0,r.jsxs)(n.li,{children:["In all three components, enable ",(0,r.jsx)(n.strong,{children:"Tool Mode"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Connect the three components to the ",(0,r.jsx)(n.strong,{children:"Agent"})," component's ",(0,r.jsx)(n.strong,{children:"Tools"})," port.\nThe flow looks like the following:"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Data components connected to agent",src:s(84987).A+"",width:"4000",height:"3028"})}),"\n",(0,r.jsxs)(n.ol,{start:"6",children:["\n",(0,r.jsxs)(n.li,{children:["Open the ",(0,r.jsx)(n.strong,{children:"Playground"})," and enter ",(0,r.jsx)(n.code,{children:"Use the websearch component to get me an RSS feed of the latest news."}),"\nThe Agent uses the ",(0,r.jsx)(n.code,{children:"perform_search"})," tool to return a list of RSS feeds."]}),"\n",(0,r.jsxs)(n.li,{children:["Enter the name of an RSS feed that interests you.\nThe Agent uses the ",(0,r.jsx)(n.code,{children:"read_rss"})," tool to fetch and summarize the latest RSS feed."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"api-request",children:"API Request"}),"\n",(0,r.jsx)(n.p,{children:"This component makes HTTP requests using URLs or cURL commands."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To use this component in a flow, connect the ",(0,r.jsx)(n.strong,{children:"Data"})," output to a component that accepts the input.\nFor example, connect the ",(0,r.jsx)(n.strong,{children:"API Request"})," component to a ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the API component's ",(0,r.jsx)(n.strong,{children:"URLs"})," field, enter the endpoint for your request.\nThis example uses ",(0,r.jsx)(n.code,{children:"https://dummy-json.mock.beeceptor.com/posts"}),", which is a list of technology blog posts."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the ",(0,r.jsx)(n.strong,{children:"Method"})," field, enter the type of request.\nThis example uses GET to retrieve a list of blog posts.\nThe component also supports POST, PATCH, PUT, and DELETE."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Optionally, enable the ",(0,r.jsx)(n.strong,{children:"Use cURL"})," button to create a field for pasting curl requests.\nThe equivalent call in this example is ",(0,r.jsx)(n.code,{children:"curl -v https://dummy-json.mock.beeceptor.com/posts"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(n.strong,{children:"Run Flow"}),".\nYour request returns a list of blog posts in the ",(0,r.jsx)(n.code,{children:"result"})," field."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"urls"}),(0,r.jsx)(n.td,{children:"URLs"}),(0,r.jsx)(n.td,{children:"Enter one or more URLs, separated by commas."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"curl"}),(0,r.jsx)(n.td,{children:"cURL"}),(0,r.jsx)(n.td,{children:"Paste a curl command to populate the dictionary fields for headers and body."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"method"}),(0,r.jsx)(n.td,{children:"Method"}),(0,r.jsx)(n.td,{children:"The HTTP method to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"use_curl"}),(0,r.jsx)(n.td,{children:"Use cURL"}),(0,r.jsx)(n.td,{children:"Enable cURL mode to populate fields from a cURL command."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query_params"}),(0,r.jsx)(n.td,{children:"Query Parameters"}),(0,r.jsx)(n.td,{children:"The query parameters to append to the URL."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"body"}),(0,r.jsx)(n.td,{children:"Body"}),(0,r.jsxs)(n.td,{children:["The body to send with the request as a dictionary (for ",(0,r.jsx)(n.code,{children:"POST"}),", ",(0,r.jsx)(n.code,{children:"PATCH"}),", ",(0,r.jsx)(n.code,{children:"PUT"}),")."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"headers"}),(0,r.jsx)(n.td,{children:"Headers"}),(0,r.jsx)(n.td,{children:"The headers to send with the request as a dictionary."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsx)(n.td,{children:"The timeout to use for the request."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"follow_redirects"}),(0,r.jsx)(n.td,{children:"Follow Redirects"}),(0,r.jsx)(n.td,{children:"Whether to follow http redirects."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"save_to_file"}),(0,r.jsx)(n.td,{children:"Save to File"}),(0,r.jsx)(n.td,{children:"Save the API response to a temporary file."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"include_httpx_metadata"}),(0,r.jsx)(n.td,{children:"Include HTTPx Metadata"}),(0,r.jsxs)(n.td,{children:["Include properties such as ",(0,r.jsx)(n.code,{children:"headers"}),", ",(0,r.jsx)(n.code,{children:"status_code"}),", ",(0,r.jsx)(n.code,{children:"response_headers"}),", and ",(0,r.jsx)(n.code,{children:"redirection_history"})," in the output."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"The result of the API requests. Returns a Data object containing source URL and results."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"dataframe"}),(0,r.jsx)(n.td,{children:"DataFrame"}),(0,r.jsx)(n.td,{children:"Converts the API response data into a tabular DataFrame format."})]})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"directory",children:"Directory"}),"\n",(0,r.jsx)(n.p,{children:"This component recursively loads files from a directory, with options for file types, depth, and concurrency."}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Input"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"path"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The path to the directory to load files from."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"types"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The file types to load (leave empty to load all types)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"depth"}),(0,r.jsx)(n.td,{children:"IntInput"}),(0,r.jsx)(n.td,{children:"The depth to search for files."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_concurrency"}),(0,r.jsx)(n.td,{children:"IntInput"}),(0,r.jsx)(n.td,{children:"The maximum concurrency for loading files."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"load_hidden"}),(0,r.jsx)(n.td,{children:"BoolInput"}),(0,r.jsx)(n.td,{children:"If true, hidden files are loaded."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"recursive"}),(0,r.jsx)(n.td,{children:"BoolInput"}),(0,r.jsx)(n.td,{children:"If true, the search is recursive."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"silent_errors"}),(0,r.jsx)(n.td,{children:"BoolInput"}),(0,r.jsx)(n.td,{children:"If true, errors do not raise an exception."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"use_multithreading"}),(0,r.jsx)(n.td,{children:"BoolInput"}),(0,r.jsx)(n.td,{children:"If true, multithreading is used."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Output"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"List[Data]"}),(0,r.jsx)(n.td,{children:"The loaded file data from the directory."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"dataframe"}),(0,r.jsx)(n.td,{children:"DataFrame"}),(0,r.jsx)(n.td,{children:"The loaded file data in tabular DataFrame format."})]})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"file",children:"File"}),"\n",(0,r.jsxs)(n.p,{children:["This component loads and parses files of various supported formats and converts the content into a ",(0,r.jsx)(n.a,{href:"/concepts-objects",children:"Data"})," object. It supports multiple file types and provides options for parallel processing and error handling."]}),"\n",(0,r.jsx)(n.p,{children:"To load a document, follow these steps:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Click the ",(0,r.jsx)(n.strong,{children:"Select files"})," button."]}),"\n",(0,r.jsxs)(n.li,{children:["Select a local file or a file loaded with ",(0,r.jsx)(n.a,{href:"/concepts-file-management",children:"File management"}),", and then click ",(0,r.jsx)(n.strong,{children:"Select file"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The loaded file name appears in the component."}),"\n",(0,r.jsxs)(n.p,{children:["The default maximum supported file size is 100 MB.\nTo modify this value, see ",(0,r.jsx)(n.a,{href:"/environment-variables#LANGFLOW_MAX_FILE_SIZE_UPLOAD",children:"--max-file-size-upload"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.strong,{children:"File"})," component\u2019s outputs change dynamically based on the number and type of files you select.\nFor more information, expand the following ",(0,r.jsx)(n.strong,{children:"Parameters"})," section, and then review the ",(0,r.jsx)(n.strong,{children:"Outputs"})," parameters."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"path"}),(0,r.jsx)(n.td,{children:"Files"}),(0,r.jsx)(n.td,{children:"The path to files to load. Supports individual files or bundled archives."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"file_path"}),(0,r.jsx)(n.td,{children:"Server File Path"}),(0,r.jsxs)(n.td,{children:["A Data object with a ",(0,r.jsx)(n.code,{children:"file_path"})," property pointing to the server file or a Message object with a path to the file. Supersedes 'Path' but supports the same file types."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"separator"}),(0,r.jsx)(n.td,{children:"Separator"}),(0,r.jsx)(n.td,{children:"The separator to use between multiple outputs in Message format."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"silent_errors"}),(0,r.jsx)(n.td,{children:"Silent Errors"}),(0,r.jsx)(n.td,{children:"If true, errors do not raise an exception."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"delete_server_file_after_processing"}),(0,r.jsx)(n.td,{children:"Delete Server File After Processing"}),(0,r.jsx)(n.td,{children:"If true, the Server File Path is deleted after processing."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"ignore_unsupported_extensions"}),(0,r.jsx)(n.td,{children:"Ignore Unsupported Extensions"}),(0,r.jsx)(n.td,{children:"If true, files with unsupported extensions are not processed."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"ignore_unspecified_files"}),(0,r.jsx)(n.td,{children:"Ignore Unspecified Files"}),(0,r.jsxs)(n.td,{children:["If true, ",(0,r.jsx)(n.code,{children:"Data"})," with no ",(0,r.jsx)(n.code,{children:"file_path"})," property is ignored."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"use_multithreading"}),(0,r.jsx)(n.td,{children:"[Deprecated] Use Multithreading"}),(0,r.jsxs)(n.td,{children:["Set 'Processing Concurrency' greater than ",(0,r.jsx)(n.code,{children:"1"})," to enable multithreading. This option is deprecated."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"concurrency_multithreading"}),(0,r.jsx)(n.td,{children:"Processing Concurrency"}),(0,r.jsx)(n.td,{children:"When multiple files are being processed, the number of files to process concurrently. Default is 1. Values greater than 1 enable parallel processing for 2 or more files."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsx)(n.p,{children:"The outputs change dynamically based on the number and type of files selected."}),(0,r.jsx)(n.p,{children:"If a single file is selected:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Structured Content"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),": If a CSV or Excel file is selected, the component outputs tabular data."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Structured Content"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#data-object",children:"Data"}),": If a JSON file is selected, the component outputs parsed JSON data."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Raw Content"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#message-object",children:"Message"}),": Outputs the file's raw text content."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"File Path"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#message-object",children:"Message"}),": Outputs the path to the file on the Langflow server."]}),"\n"]}),(0,r.jsx)(n.p,{children:"If multiple files are selected:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Files"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),": A table containing the content and metadata of all selected files."]}),"\n"]}),(0,r.jsx)(n.p,{children:"If no files are selected:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"No outputs are displayed."}),"\n"]})]}),"\n",(0,r.jsx)(n.h3,{id:"supported-file-types",children:"Supported File Types"}),"\n",(0,r.jsx)(n.p,{children:"Text files:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".txt"})," - Text files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".md"}),", ",(0,r.jsx)(n.code,{children:".mdx"})," - Markdown files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".csv"})," - CSV files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".json"})," - JSON files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".yaml"}),", ",(0,r.jsx)(n.code,{children:".yml"})," - YAML files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".xml"})," - XML files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".html"}),", ",(0,r.jsx)(n.code,{children:".htm"})," - HTML files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".pdf"})," - PDF files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".docx"})," - Word documents"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".py"})," - Python files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".sh"})," - Shell scripts"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".sql"})," - SQL files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".js"})," - JavaScript files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".ts"}),", ",(0,r.jsx)(n.code,{children:".tsx"})," - TypeScript files"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Archive formats (for bundling multiple files):"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".zip"})," - ZIP archives"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".tar"})," - TAR archives"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".tgz"})," - Gzipped TAR archives"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".bz2"})," - Bzip2 compressed files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".gz"})," - Gzip compressed files"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"news-search",children:"News search"}),"\n",(0,r.jsxs)(n.p,{children:["This component searches Google News with RSS and returns clean article data. The ",(0,r.jsx)(n.code,{children:"clean_html"})," method parses the HTML content with the BeautifulSoup library, and then removes HTML markup and strips whitespace so the output data is clean."]}),"\n",(0,r.jsxs)(n.p,{children:["It returns news content as a DataFrame containing article titles, links, publication dates, and summaries. The component can also be used in ",(0,r.jsx)(n.strong,{children:"Tool Mode"})," with a connected ",(0,r.jsx)(n.strong,{children:"Agent"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["To use this component in a flow, connect the ",(0,r.jsx)(n.strong,{children:"News Search"})," output to a component that accepts the DataFrame input.\nFor example, connect the ",(0,r.jsx)(n.strong,{children:"News Search"})," component to a ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component. Enter a search query, open the Playground, and click ",(0,r.jsx)(n.strong,{children:"Run Flow"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["The latest content is returned in a structured DataFrame, with the key columns ",(0,r.jsx)(n.code,{children:"title"}),", ",(0,r.jsx)(n.code,{children:"link"}),", ",(0,r.jsx)(n.code,{children:"published"})," and ",(0,r.jsx)(n.code,{children:"summary"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query"}),(0,r.jsx)(n.td,{children:"Search Query"}),(0,r.jsx)(n.td,{children:"Search keywords for news articles."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"hl"}),(0,r.jsx)(n.td,{children:"Language (hl)"}),(0,r.jsxs)(n.td,{children:["Language code, such as en-US, fr, de. Default: ",(0,r.jsx)(n.code,{children:"en-US"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"gl"}),(0,r.jsx)(n.td,{children:"Country (gl)"}),(0,r.jsxs)(n.td,{children:["Country code, such as US, FR, DE. Default: ",(0,r.jsx)(n.code,{children:"US"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"ceid"}),(0,r.jsxs)(n.td,{children:["Country",":Language"," (ceid)"]}),(0,r.jsxs)(n.td,{children:["Language, such as US",":en",", FR",":fr",". Default: ",(0,r.jsx)(n.code,{children:"US:en"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"topic"}),(0,r.jsx)(n.td,{children:"Topic"}),(0,r.jsx)(n.td,{children:"One of: WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SCIENCE, SPORTS, HEALTH."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"location"}),(0,r.jsx)(n.td,{children:"Location (Geo)"}),(0,r.jsx)(n.td,{children:"City, state, or country for location-based news. Leave blank for keyword search."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsx)(n.td,{children:"Timeout for the request in seconds."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"articles"}),(0,r.jsx)(n.td,{children:"News Articles"}),(0,r.jsx)(n.td,{children:"A DataFrame containing article titles, links, publication dates, and summaries."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"rss-reader",children:"RSS Reader"}),"\n",(0,r.jsxs)(n.p,{children:["This component fetches and parses RSS feeds from any valid RSS feed URL. It returns the feed content as a DataFrame containing article titles, links, publication dates, and summaries. The component can also be used in ",(0,r.jsx)(n.strong,{children:"Tool Mode"})," with a connected ",(0,r.jsx)(n.strong,{children:"Agent"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"To use this component in a flow, do the following:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Connect the ",(0,r.jsx)(n.strong,{children:"RSS reader"})," output to a component that accepts the DataFrame input, such as a ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"RSS Feed URL"})," field, enter an RSS feed, such as ",(0,r.jsx)(n.code,{children:"https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"})," for the New York Times."]}),"\n",(0,r.jsxs)(n.li,{children:["Open the ",(0,r.jsx)(n.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(n.strong,{children:"Run Flow"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["The latest content is returned in a structured DataFrame, with the key columns ",(0,r.jsx)(n.code,{children:"title"}),", ",(0,r.jsx)(n.code,{children:"link"}),", ",(0,r.jsx)(n.code,{children:"published"})," and ",(0,r.jsx)(n.code,{children:"summary"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"rss_url"}),(0,r.jsx)(n.td,{children:"RSS Feed URL"}),(0,r.jsx)(n.td,{children:"URL of the RSS feed to parse."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsxs)(n.td,{children:["Timeout for the RSS feed request in seconds. Default: ",(0,r.jsx)(n.code,{children:"5"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"articles"}),(0,r.jsx)(n.td,{children:"Articles"}),(0,r.jsx)(n.td,{children:"A DataFrame containing article titles, links, publication dates, and summaries."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"sql-database",children:"SQL database"}),"\n",(0,r.jsxs)(n.p,{children:["This component executes SQL queries on ",(0,r.jsx)(n.a,{href:"https://docs.sqlalchemy.org/en/20/",children:"SQLAlchemy-compatible databases"}),".\nIt supports any SQLAlchemy-compatible database, including PostgreSQL, MySQL, SQLite, and others."]}),"\n",(0,r.jsx)(n.p,{children:"To use this component in a flow, do the following:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Create a test database called ",(0,r.jsx)(n.code,{children:"test.db"}),"."]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sqlite3 ",props:{style:{color:"#FFA657"}}},{content:"test.db",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsx)(n.li,{children:"Add values to the test database."}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sqlite3 ",props:{style:{color:"#FFA657"}}},{content:"test.db \"CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT, age INTEGER); INSERT INTO users (name, email, age) VALUES ('John Doe', 'john@example.com', 30), ('Jane Smith', 'jane@example.com', 25), ('Bob Johnson', 'bob@example.com', 35);\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["Verify that ",(0,r.jsx)(n.code,{children:"test.db"})," has been created and contains your data."]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sqlite3 ",props:{style:{color:"#FFA657"}}},{content:'test.db "SELECT * FROM users;"',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsx)(n.p,{children:"Result:"}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"1",props:{style:{color:"#FFA657"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"John ",props:{style:{color:"#FFA657"}}},{content:"Doe",props:{style:{color:"#A5D6FF"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"john@example.com",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"2",props:{style:{color:"#FFA657"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"Jane ",props:{style:{color:"#FFA657"}}},{content:"Smith",props:{style:{color:"#A5D6FF"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"jane@example.com",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"3",props:{style:{color:"#FFA657"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"John ",props:{style:{color:"#FFA657"}}},{content:"Doe",props:{style:{color:"#A5D6FF"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"john@example.com",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"4",props:{style:{color:"#FFA657"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"Jane ",props:{style:{color:"#FFA657"}}},{content:"Smith",props:{style:{color:"#A5D6FF"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"jane@example.com",props:{style:{color:"#FFA657"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"4",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"SQL Database"})," component's ",(0,r.jsx)(n.strong,{children:"Database URL"})," field, add the connection string for ",(0,r.jsx)(n.code,{children:"test.db"}),", such as ",(0,r.jsx)(n.code,{children:"sqlite:///test.db"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["With this connection established, the ",(0,r.jsx)(n.strong,{children:"SQL Query"})," field now accepts SQL queries.\nInstead of manually entering SQL queries, connect this database to an agent as a ",(0,r.jsx)(n.strong,{children:"Tool"})," to query it with natural language."]}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"SQL Database"})," component, enable ",(0,r.jsx)(n.strong,{children:"Tool Mode"}),", and then connect it to an ",(0,r.jsx)(n.strong,{children:"Agent"})," component.\nThe flow looks like the following:"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"SQL database connected to agent",src:s(52189).A+"",width:"4000",height:"2400"})}),"\n",(0,r.jsxs)(n.ol,{start:"6",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Agent"})," component, in the ",(0,r.jsx)(n.strong,{children:"OpenAI API Key"})," field, add your OpenAI API key."]}),"\n",(0,r.jsxs)(n.li,{children:["Open the ",(0,r.jsx)(n.strong,{children:"Playground"})," and ask ",(0,r.jsx)(n.code,{children:"What users are in my database?"}),"\nThe Agent uses the ",(0,r.jsx)(n.code,{children:"run_sql_query"})," tool to retrieve the information, and additionally identifies the duplicate ",(0,r.jsx)(n.code,{children:"users"})," entries."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Result:"}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Here are the users in your database:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"1. **John Doe** - Email: john@example.com",props:{}}]},{tokens:[{content:"2. **Jane Smith** - Email: jane@example.com",props:{}}]},{tokens:[{content:"3. **John Doe** - Email: john@example.com",props:{}}]},{tokens:[{content:"4. **Jane Smith** - Email: jane@example.com",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"It seems there are duplicate entries for the users.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"> Finished chain.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"database_url"}),(0,r.jsx)(n.td,{children:"Database URL"}),(0,r.jsx)(n.td,{children:"The SQLAlchemy-compatible database connection URL."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query"}),(0,r.jsx)(n.td,{children:"SQL Query"}),(0,r.jsx)(n.td,{children:"The SQL query to execute."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"include_columns"}),(0,r.jsx)(n.td,{children:"Include Columns"}),(0,r.jsxs)(n.td,{children:["If enabled, includes column names in the result. Default: ",(0,r.jsx)(n.code,{children:"true"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"add_error"}),(0,r.jsx)(n.td,{children:"Add Error"}),(0,r.jsxs)(n.td,{children:["If enabled, adds any error messages to the result. Default: ",(0,r.jsx)(n.code,{children:"false"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"run_sql_query"}),(0,r.jsx)(n.td,{children:"Result Table"}),(0,r.jsx)(n.td,{children:"The query results as a DataFrame."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"web-search",children:"Web search"}),"\n",(0,r.jsxs)(n.p,{children:["This component performs web searches using DuckDuckGo's HTML interface, and returns the search results as a ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," containing the key columns ",(0,r.jsx)(n.code,{children:"title"}),", ",(0,r.jsx)(n.code,{children:"links"}),", and ",(0,r.jsx)(n.code,{children:"snippets"}),". The component can also be used in ",(0,r.jsx)(n.strong,{children:"Tool Mode"})," with a connected ",(0,r.jsx)(n.strong,{children:"Agent"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"To use this component in a flow, do the following:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Add the ",(0,r.jsx)(n.strong,{children:"Web search"})," component to the ",(0,r.jsx)(n.a,{href:"/basic-prompting",children:"Basic prompting"})," flow. In the ",(0,r.jsx)(n.strong,{children:"Search Query"})," field, enter a query, such as ",(0,r.jsx)(n.code,{children:"environmental news"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Connect the ",(0,r.jsx)(n.strong,{children:"Web search"})," component's output to a component that accepts the DataFrame input."]}),"\n",(0,r.jsxs)(n.li,{children:["Connect a ",(0,r.jsx)(n.strong,{children:"Type Convert"})," component to convert the DataFrame to a Message."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Type Convert"})," component, in the ",(0,r.jsx)(n.strong,{children:"Output Type"})," field, select ",(0,r.jsx)(n.strong,{children:"Message"}),".\nYour flow looks like the following:"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Type convert web search output to chat",src:s(42547).A+"",width:"4000",height:"1826"})}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Language Model"})," component, in the ",(0,r.jsx)(n.strong,{children:"OpenAI API Key"})," field, add your OpenAI API key."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"}),", and then ask about ",(0,r.jsx)(n.code,{children:"latest news"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The search results are returned to the Playground as a message."}),"\n",(0,r.jsx)(n.p,{children:"Result:"}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Latest news",props:{}}]},{tokens:[{content:"AI",props:{}}]},{tokens:[{content:"gpt-4o-mini",props:{}}]},{tokens:[{content:"Here are some of the latest news articles related to the environment:",props:{}}]},{tokens:[{content:"Ozone Pollution and Global Warming: A recent study highlights that ozone pollution is a significant global environmental concern, threatening human health and crop production while exacerbating global warming. Read more",props:{}}]},{tokens:[{content:"...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsx)(n.p,{children:"This component uses web scraping and may be subject to rate limits. For production use, consider using an official search API."})}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query"}),(0,r.jsx)(n.td,{children:"Search Query"}),(0,r.jsx)(n.td,{children:"Keywords to search for."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsxs)(n.td,{children:["Timeout for the web search request in seconds. Default: ",(0,r.jsx)(n.code,{children:"5"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"results"}),(0,r.jsx)(n.td,{children:"Search Results"}),(0,r.jsx)(n.td,{children:"A DataFrame containing search results with titles, links, and snippets."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"url",children:"URL"}),"\n",(0,r.jsx)(n.p,{children:"This component fetches content from one or more URLs, processes the content, and returns it in various formats. It supports output in plain text or raw HTML."}),"\n",(0,r.jsxs)(n.p,{children:["In the component's ",(0,r.jsx)(n.strong,{children:"URLs"})," field, enter the URL you want to load. To add multiple URL fields, click ",(0,r.jsx)(o.A,{name:"Plus","aria-hidden":"true"})," ",(0,r.jsx)(n.strong,{children:"Add URL"}),"."]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To use this component in a flow, connect the ",(0,r.jsx)(n.strong,{children:"DataFrame"})," output to a component that accepts the input.\nFor example, connect the ",(0,r.jsx)(n.strong,{children:"URL"})," component to a ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the URL component's ",(0,r.jsx)(n.strong,{children:"URLs"})," field, enter the URL for your request.\nThis example uses ",(0,r.jsx)(n.code,{children:"langflow.org"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Optionally, in the ",(0,r.jsx)(n.strong,{children:"Max Depth"})," field, enter how many pages away from the initial URL you want to crawl.\nSelect ",(0,r.jsx)(n.code,{children:"1"})," to crawl only the page specified in the ",(0,r.jsx)(n.strong,{children:"URLs"})," field.\nSelect ",(0,r.jsx)(n.code,{children:"2"})," to crawl all pages linked from that page.\nThe component crawls by link traversal, not by URL path depth."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(n.strong,{children:"Run Flow"}),".\nThe text contents of the URL are returned to the Playground as a structured DataFrame."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the ",(0,r.jsx)(n.strong,{children:"URL"})," component, change the output port to ",(0,r.jsx)(n.strong,{children:"Message"}),", and then run the flow again.\nThe text contents of the URL are returned as unstructured raw text, which you can extract patterns with the ",(0,r.jsx)(n.a,{href:"/components-processing#parser",children:"Parser"})," component."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"urls"}),(0,r.jsx)(n.td,{children:"URLs"}),(0,r.jsx)(n.td,{children:"Click the '+' button to enter one or more URLs to crawl recursively."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_depth"}),(0,r.jsx)(n.td,{children:"Max Depth"}),(0,r.jsx)(n.td,{children:"Controls how many 'clicks' away from the initial page the crawler will go."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"prevent_outside"}),(0,r.jsx)(n.td,{children:"Prevent Outside"}),(0,r.jsx)(n.td,{children:"If enabled, only crawls URLs within the same domain as the root URL."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"use_async"}),(0,r.jsx)(n.td,{children:"Use Async"}),(0,r.jsx)(n.td,{children:"If enabled, uses asynchronous loading which can be significantly faster but might use more system resources."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"format"}),(0,r.jsx)(n.td,{children:"Output Format"}),(0,r.jsxs)(n.td,{children:["Output Format. Use ",(0,r.jsx)(n.code,{children:"Text"})," to extract the text from the HTML or ",(0,r.jsx)(n.code,{children:"HTML"})," for the raw HTML content."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsx)(n.td,{children:"Timeout for the request in seconds."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"headers"}),(0,r.jsx)(n.td,{children:"Headers"}),(0,r.jsx)(n.td,{children:"The headers to send with the request."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsxs)(n.td,{children:["A list of ",(0,r.jsx)(n.a,{href:"/concepts-objects",children:"Data"})," objects containing fetched content and metadata."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"text"}),(0,r.jsx)(n.td,{children:"Message"}),(0,r.jsx)(n.td,{children:"The fetched content as formatted text."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"dataframe"}),(0,r.jsx)(n.td,{children:"DataFrame"}),(0,r.jsxs)(n.td,{children:["The content formatted as a ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," object."]})]})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"webhook",children:"Webhook"}),"\n",(0,r.jsx)(n.p,{children:"This component defines a webhook trigger that runs a flow when it receives an HTTP POST request."}),"\n",(0,r.jsxs)(n.p,{children:["If the input is not valid JSON, the component wraps it in a ",(0,r.jsx)(n.code,{children:"payload"})," object so that it can be processed and still trigger the flow."]}),"\n",(0,r.jsxs)(n.p,{children:["When a ",(0,r.jsx)(n.strong,{children:"Webhook"})," component is added to the workspace, a new ",(0,r.jsx)(n.strong,{children:"Webhook cURL"})," tab becomes available in the ",(0,r.jsx)(n.strong,{children:"API"})," pane that contains an HTTP POST request for triggering the webhook component. For example:\nReplace ",(0,r.jsx)(n.code,{children:"LANGFLOW_SERVER_ADDRESS"}),", ",(0,r.jsx)(n.code,{children:"FLOW_ID"}),", and ",(0,r.jsx)(n.code,{children:"LANGFLOW_API_KEY"})," with the values from your Langflow deployment."]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/webhook/FLOW_ID" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'x-api-key: LANGFLOW_API_KEY' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"any": "data"}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.strong,{children:"Webhook"})," component is often paired with a ",(0,r.jsxs)(n.a,{href:"/components-processing#parser",children:[(0,r.jsx)(n.strong,{children:"Parser"})," component"]})," to extract relevant data from the raw payload.\nFor more information, see ",(0,r.jsx)(n.a,{href:"/webhook",children:"Trigger flows with webhooks"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["To troubleshoot a flow with a ",(0,r.jsx)(n.strong,{children:"Webhook"})," component and verify that the component is receiving data, you can create a small flow that outputs only the parsed payload:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Create a flow with ",(0,r.jsx)(n.strong,{children:"Webhook"}),", ",(0,r.jsx)(n.strong,{children:"Parser"}),", and ",(0,r.jsx)(n.strong,{children:"Chat Output"})," components."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Connect the Webhook component's ",(0,r.jsx)(n.strong,{children:"Data"})," output to the Parser component's ",(0,r.jsx)(n.strong,{children:"Data"})," input."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Connect the Parser component's ",(0,r.jsx)(n.strong,{children:"Parsed Text"})," output to the Chat Output component's ",(0,r.jsx)(n.strong,{children:"Text"})," input."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Edit the ",(0,r.jsx)(n.strong,{children:"Parser"})," component to set ",(0,r.jsx)(n.strong,{children:"Mode"})," to ",(0,r.jsx)(n.strong,{children:"Stringify"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["This mode passes the data received by the Webhook component as a string that is printed by the ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Share"}),", select ",(0,r.jsx)(n.strong,{children:"API access"}),", and then copy the ",(0,r.jsx)(n.strong,{children:"Webhook cURL"})," code snippet."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Optional: Edit the ",(0,r.jsx)(n.code,{children:"data"})," in the code snippet if you want to pass a different payload."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Send the POST request to trigger the flow."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"})," to verify that the ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component printed the JSON data from your POST request."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"/webhook",children:"Trigger flows with webhooks"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"Payload"}),(0,r.jsx)(n.td,{children:"Receives a payload from external systems through HTTP POST requests."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"curl"}),(0,r.jsx)(n.td,{children:"cURL"}),(0,r.jsx)(n.td,{children:"The cURL command template for making requests to this webhook."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"endpoint"}),(0,r.jsx)(n.td,{children:"Endpoint"}),(0,r.jsx)(n.td,{children:"The endpoint URL where this webhook receives requests."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"output_data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsxs)(n.td,{children:["Outputs processed data from the webhook input, and returns an empty ",(0,r.jsx)(n.a,{href:"/concepts-objects",children:"Data"})," object if no input is provided. If the input is not valid JSON, the component wraps it in a ",(0,r.jsx)(n.code,{children:"payload"})," object."]})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsx)(n.p,{children:"Legacy components are available for use but are no longer supported."}),"\n",(0,r.jsx)(n.h3,{id:"gmail-loader",children:"Gmail Loader"}),"\n",(0,r.jsx)(n.p,{children:"This component loads emails from Gmail using provided credentials and filters."}),"\n",(0,r.jsxs)(n.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Input"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"json_string"}),(0,r.jsx)(n.td,{children:"SecretStrInput"}),(0,r.jsx)(n.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"label_ids"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"A comma-separated list of label IDs to filter emails."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_results"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The maximum number of emails to load."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Output"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"The loaded email data."})]})})]})]}),"\n",(0,r.jsx)(n.h3,{id:"google-drive-loader",children:"Google Drive Loader"}),"\n",(0,r.jsx)(n.p,{children:"This component loads documents from Google Drive using provided credentials and a single document ID."}),"\n",(0,r.jsxs)(n.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Input"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"json_string"}),(0,r.jsx)(n.td,{children:"SecretStrInput"}),(0,r.jsx)(n.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"document_id"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"A single Google Drive document ID."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Output"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"docs"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"The loaded document data."})]})})]})]}),"\n",(0,r.jsx)(n.h3,{id:"google-drive-search",children:"Google Drive Search"}),"\n",(0,r.jsx)(n.p,{children:"This component searches Google Drive files using provided credentials and query parameters."}),"\n",(0,r.jsxs)(n.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Input"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"token_string"}),(0,r.jsx)(n.td,{children:"SecretStrInput"}),(0,r.jsx)(n.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query_item"}),(0,r.jsx)(n.td,{children:"DropdownInput"}),(0,r.jsx)(n.td,{children:"The field to query."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"valid_operator"}),(0,r.jsx)(n.td,{children:"DropdownInput"}),(0,r.jsx)(n.td,{children:"The operator to use in the query."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"search_term"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The value to search for in the specified query item."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query_string"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The query string used for searching."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Output"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"doc_urls"}),(0,r.jsx)(n.td,{children:"List[str]"}),(0,r.jsx)(n.td,{children:"The URLs of the found documents."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"doc_ids"}),(0,r.jsx)(n.td,{children:"List[str]"}),(0,r.jsx)(n.td,{children:"The IDs of the found documents."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"doc_titles"}),(0,r.jsx)(n.td,{children:"List[str]"}),(0,r.jsx)(n.td,{children:"The titles of the found documents."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"The document titles and URLs in a structured format."})]})]})]})]})]})}function u(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}function m(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},17886:(e,n,s)=>{s.d(n,{A:()=>d});s(96540);var t=s(64058),r=s(74848);function d({name:e,...n}){const s=t[e];return s?(0,r.jsx)(s,{...n}):null}},42547:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/component-type-convert-and-web-search-1eef7b9a7c1a243f4a08d9717728d0e1.png"},52189:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/component-sql-database-3d2c985aee2dd9970874cb85e1d2b570.png"},84987:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/connect-data-components-to-agent-a8cd8c94d0474ae434aeb5d507a803e8.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5761],{14876:(e,n,s)=>{s.r(n),s.d(n,{CH:()=>a,assets:()=>h,chCodeConfig:()=>x,contentTitle:()=>l,default:()=>u,frontMatter:()=>c,metadata:()=>t,toc:()=>j});const t=JSON.parse('{"id":"Components/components-data","title":"Data","description":"Data components load data from a source into your flow.","source":"@site/docs/Components/components-data.mdx","sourceDirName":"Components","slug":"/components-data","permalink":"/components-data","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Data","slug":"/components-data"},"sidebar":"docs","previous":{"title":"Create custom Python components","permalink":"/components-custom-components"},"next":{"title":"Embedding models","permalink":"/components-embedding-models"}}');var r=s(74848),o=s(28453),i=s(24754),d=s(17886);const c={title:"Data",slug:"/components-data"},l="Data components in Langflow",h={},a={annotations:i.hk,Code:i.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},j=[{value:"Use data components in a flow",id:"use-data-components-in-a-flow",level:2},{value:"API Request",id:"api-request",level:2},{value:"Directory",id:"directory",level:2},{value:"File",id:"file",level:2},{value:"Supported File Types",id:"supported-file-types",level:3},{value:"News search",id:"news-search",level:2},{value:"RSS Reader",id:"rss-reader",level:2},{value:"SQL database",id:"sql-database",level:2},{value:"Web search",id:"web-search",level:2},{value:"URL",id:"url",level:2},{value:"Webhook",id:"webhook",level:2},{value:"Legacy components",id:"legacy-components",level:2},{value:"Gmail Loader",id:"gmail-loader",level:3},{value:"Google Drive Loader",id:"google-drive-loader",level:3},{value:"Google Drive Search",id:"google-drive-search",level:3}];function p(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components},{Details:t}=n;return a||m("CH",!1),a.Code||m("CH.Code",!0),t||m("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"data-components-in-langflow",children:"Data components in Langflow"})}),"\n",(0,r.jsx)(n.p,{children:"Data components load data from a source into your flow."}),"\n",(0,r.jsx)(n.p,{children:"They may perform some processing or type checking, like converting raw HTML data into text, or ensuring your loaded file is of an acceptable type."}),"\n",(0,r.jsx)(n.h2,{id:"use-data-components-in-a-flow",children:"Use data components in a flow"}),"\n",(0,r.jsxs)(n.p,{children:["Components like ",(0,r.jsx)(n.a,{href:"#news-search",children:"News search"}),", ",(0,r.jsx)(n.a,{href:"#rss-reader",children:"RSS reader"}),", and ",(0,r.jsx)(n.a,{href:"#web-search",children:"Web search"})," all fetch data into Langflow, and connect to Langflow in the same way. They can output the retrieved data in ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," format, or can be connected to an ",(0,r.jsx)(n.strong,{children:"Agent"})," component to be used as tools."]}),"\n",(0,r.jsx)(n.p,{children:"For example, to connect all three components to an Agent component, do the following:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Create the ",(0,r.jsx)(n.a,{href:"/simple-agent",children:"Simple Agent starter flow"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Agent"})," component, in the ",(0,r.jsx)(n.strong,{children:"OpenAI API Key"})," field, add your OpenAI API key."]}),"\n",(0,r.jsxs)(n.li,{children:["Add the ",(0,r.jsx)(n.strong,{children:"News search"}),", ",(0,r.jsx)(n.strong,{children:"RSS reader"}),", and ",(0,r.jsx)(n.strong,{children:"Web Search"})," components to your flow."]}),"\n",(0,r.jsxs)(n.li,{children:["In all three components, enable ",(0,r.jsx)(n.strong,{children:"Tool Mode"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Connect the three components to the ",(0,r.jsx)(n.strong,{children:"Agent"})," component's ",(0,r.jsx)(n.strong,{children:"Tools"})," port.\nThe flow looks like the following:"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Data components connected to agent",src:s(84987).A+"",width:"4000",height:"3028"})}),"\n",(0,r.jsxs)(n.ol,{start:"6",children:["\n",(0,r.jsxs)(n.li,{children:["Open the ",(0,r.jsx)(n.strong,{children:"Playground"})," and enter ",(0,r.jsx)(n.code,{children:"Use the websearch component to get me an RSS feed of the latest news."}),"\nThe Agent uses the ",(0,r.jsx)(n.code,{children:"perform_search"})," tool to return a list of RSS feeds."]}),"\n",(0,r.jsxs)(n.li,{children:["Enter the name of an RSS feed that interests you.\nThe Agent uses the ",(0,r.jsx)(n.code,{children:"read_rss"})," tool to fetch and summarize the latest RSS feed."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"api-request",children:"API Request"}),"\n",(0,r.jsx)(n.p,{children:"This component makes HTTP requests using URLs or cURL commands."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To use this component in a flow, connect the ",(0,r.jsx)(n.strong,{children:"Data"})," output to a component that accepts the input.\nFor example, connect the ",(0,r.jsx)(n.strong,{children:"API Request"})," component to a ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the API component's ",(0,r.jsx)(n.strong,{children:"URLs"})," field, enter the endpoint for your request.\nThis example uses ",(0,r.jsx)(n.code,{children:"https://dummy-json.mock.beeceptor.com/posts"}),", which is a list of technology blog posts."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the ",(0,r.jsx)(n.strong,{children:"Method"})," field, enter the type of request.\nThis example uses GET to retrieve a list of blog posts.\nThe component also supports POST, PATCH, PUT, and DELETE."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Optionally, enable the ",(0,r.jsx)(n.strong,{children:"Use cURL"})," button to create a field for pasting curl requests.\nThe equivalent call in this example is ",(0,r.jsx)(n.code,{children:"curl -v https://dummy-json.mock.beeceptor.com/posts"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(n.strong,{children:"Run Flow"}),".\nYour request returns a list of blog posts in the ",(0,r.jsx)(n.code,{children:"result"})," field."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"urls"}),(0,r.jsx)(n.td,{children:"URLs"}),(0,r.jsx)(n.td,{children:"Enter one or more URLs, separated by commas."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"curl"}),(0,r.jsx)(n.td,{children:"cURL"}),(0,r.jsx)(n.td,{children:"Paste a curl command to populate the dictionary fields for headers and body."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"method"}),(0,r.jsx)(n.td,{children:"Method"}),(0,r.jsx)(n.td,{children:"The HTTP method to use."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"use_curl"}),(0,r.jsx)(n.td,{children:"Use cURL"}),(0,r.jsx)(n.td,{children:"Enable cURL mode to populate fields from a cURL command."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query_params"}),(0,r.jsx)(n.td,{children:"Query Parameters"}),(0,r.jsx)(n.td,{children:"The query parameters to append to the URL."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"body"}),(0,r.jsx)(n.td,{children:"Body"}),(0,r.jsxs)(n.td,{children:["The body to send with the request as a dictionary (for ",(0,r.jsx)(n.code,{children:"POST"}),", ",(0,r.jsx)(n.code,{children:"PATCH"}),", ",(0,r.jsx)(n.code,{children:"PUT"}),")."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"headers"}),(0,r.jsx)(n.td,{children:"Headers"}),(0,r.jsx)(n.td,{children:"The headers to send with the request as a dictionary."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsx)(n.td,{children:"The timeout to use for the request."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"follow_redirects"}),(0,r.jsx)(n.td,{children:"Follow Redirects"}),(0,r.jsx)(n.td,{children:"Whether to follow http redirects."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"save_to_file"}),(0,r.jsx)(n.td,{children:"Save to File"}),(0,r.jsx)(n.td,{children:"Save the API response to a temporary file."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"include_httpx_metadata"}),(0,r.jsx)(n.td,{children:"Include HTTPx Metadata"}),(0,r.jsxs)(n.td,{children:["Include properties such as ",(0,r.jsx)(n.code,{children:"headers"}),", ",(0,r.jsx)(n.code,{children:"status_code"}),", ",(0,r.jsx)(n.code,{children:"response_headers"}),", and ",(0,r.jsx)(n.code,{children:"redirection_history"})," in the output."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"The result of the API requests. Returns a Data object containing source URL and results."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"dataframe"}),(0,r.jsx)(n.td,{children:"DataFrame"}),(0,r.jsx)(n.td,{children:"Converts the API response data into a tabular DataFrame format."})]})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"directory",children:"Directory"}),"\n",(0,r.jsx)(n.p,{children:"This component recursively loads files from a directory, with options for file types, depth, and concurrency."}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Input"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"path"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The path to the directory to load files from."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"types"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The file types to load (leave empty to load all types)."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"depth"}),(0,r.jsx)(n.td,{children:"IntInput"}),(0,r.jsx)(n.td,{children:"The depth to search for files."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_concurrency"}),(0,r.jsx)(n.td,{children:"IntInput"}),(0,r.jsx)(n.td,{children:"The maximum concurrency for loading files."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"load_hidden"}),(0,r.jsx)(n.td,{children:"BoolInput"}),(0,r.jsx)(n.td,{children:"If true, hidden files are loaded."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"recursive"}),(0,r.jsx)(n.td,{children:"BoolInput"}),(0,r.jsx)(n.td,{children:"If true, the search is recursive."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"silent_errors"}),(0,r.jsx)(n.td,{children:"BoolInput"}),(0,r.jsx)(n.td,{children:"If true, errors do not raise an exception."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"use_multithreading"}),(0,r.jsx)(n.td,{children:"BoolInput"}),(0,r.jsx)(n.td,{children:"If true, multithreading is used."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Output"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"List[Data]"}),(0,r.jsx)(n.td,{children:"The loaded file data from the directory."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"dataframe"}),(0,r.jsx)(n.td,{children:"DataFrame"}),(0,r.jsx)(n.td,{children:"The loaded file data in tabular DataFrame format."})]})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"file",children:"File"}),"\n",(0,r.jsxs)(n.p,{children:["This component loads and parses files of various supported formats and converts the content into a ",(0,r.jsx)(n.a,{href:"/concepts-objects",children:"Data"})," object. It supports multiple file types and provides options for parallel processing and error handling."]}),"\n",(0,r.jsx)(n.p,{children:"To load a document, follow these steps:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Click the ",(0,r.jsx)(n.strong,{children:"Select files"})," button."]}),"\n",(0,r.jsxs)(n.li,{children:["Select a local file or a file loaded with ",(0,r.jsx)(n.a,{href:"/concepts-file-management",children:"File management"}),", and then click ",(0,r.jsx)(n.strong,{children:"Select file"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The loaded file name appears in the component."}),"\n",(0,r.jsxs)(n.p,{children:["The default maximum supported file size is 100 MB.\nTo modify this value, see ",(0,r.jsx)(n.a,{href:"/environment-variables#LANGFLOW_MAX_FILE_SIZE_UPLOAD",children:"--max-file-size-upload"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.strong,{children:"File"})," component\u2019s outputs change dynamically based on the number and type of files you select.\nFor more information, expand the following ",(0,r.jsx)(n.strong,{children:"Parameters"})," section, and then review the ",(0,r.jsx)(n.strong,{children:"Outputs"})," parameters."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"path"}),(0,r.jsx)(n.td,{children:"Files"}),(0,r.jsx)(n.td,{children:"The path to files to load. Supports individual files or bundled archives."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"file_path"}),(0,r.jsx)(n.td,{children:"Server File Path"}),(0,r.jsxs)(n.td,{children:["A Data object with a ",(0,r.jsx)(n.code,{children:"file_path"})," property pointing to the server file or a Message object with a path to the file. Supersedes 'Path' but supports the same file types."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"separator"}),(0,r.jsx)(n.td,{children:"Separator"}),(0,r.jsx)(n.td,{children:"The separator to use between multiple outputs in Message format."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"silent_errors"}),(0,r.jsx)(n.td,{children:"Silent Errors"}),(0,r.jsx)(n.td,{children:"If true, errors do not raise an exception."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"delete_server_file_after_processing"}),(0,r.jsx)(n.td,{children:"Delete Server File After Processing"}),(0,r.jsx)(n.td,{children:"If true, the Server File Path is deleted after processing."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"ignore_unsupported_extensions"}),(0,r.jsx)(n.td,{children:"Ignore Unsupported Extensions"}),(0,r.jsx)(n.td,{children:"If true, files with unsupported extensions are not processed."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"ignore_unspecified_files"}),(0,r.jsx)(n.td,{children:"Ignore Unspecified Files"}),(0,r.jsxs)(n.td,{children:["If true, ",(0,r.jsx)(n.code,{children:"Data"})," with no ",(0,r.jsx)(n.code,{children:"file_path"})," property is ignored."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"use_multithreading"}),(0,r.jsx)(n.td,{children:"[Deprecated] Use Multithreading"}),(0,r.jsxs)(n.td,{children:["Set 'Processing Concurrency' greater than ",(0,r.jsx)(n.code,{children:"1"})," to enable multithreading. This option is deprecated."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"concurrency_multithreading"}),(0,r.jsx)(n.td,{children:"Processing Concurrency"}),(0,r.jsx)(n.td,{children:"When multiple files are being processed, the number of files to process concurrently. Default is 1. Values greater than 1 enable parallel processing for 2 or more files."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsx)(n.p,{children:"The outputs change dynamically based on the number and type of files selected."}),(0,r.jsx)(n.p,{children:"If a single file is selected:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Structured Content"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),": If a CSV or Excel file is selected, the component outputs tabular data."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Structured Content"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#data-object",children:"Data"}),": If a JSON file is selected, the component outputs parsed JSON data."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Raw Content"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#message-object",children:"Message"}),": Outputs the file's raw text content."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"File Path"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#message-object",children:"Message"}),": Outputs the path to the file on the Langflow server."]}),"\n"]}),(0,r.jsx)(n.p,{children:"If multiple files are selected:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Files"})," ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"}),": A table containing the content and metadata of all selected files."]}),"\n"]}),(0,r.jsx)(n.p,{children:"If no files are selected:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"No outputs are displayed."}),"\n"]})]}),"\n",(0,r.jsx)(n.h3,{id:"supported-file-types",children:"Supported File Types"}),"\n",(0,r.jsx)(n.p,{children:"Text files:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".txt"})," - Text files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".md"}),", ",(0,r.jsx)(n.code,{children:".mdx"})," - Markdown files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".csv"})," - CSV files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".json"})," - JSON files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".yaml"}),", ",(0,r.jsx)(n.code,{children:".yml"})," - YAML files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".xml"})," - XML files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".html"}),", ",(0,r.jsx)(n.code,{children:".htm"})," - HTML files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".pdf"})," - PDF files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".docx"})," - Word documents"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".py"})," - Python files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".sh"})," - Shell scripts"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".sql"})," - SQL files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".js"})," - JavaScript files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".ts"}),", ",(0,r.jsx)(n.code,{children:".tsx"})," - TypeScript files"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Archive formats (for bundling multiple files):"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".zip"})," - ZIP archives"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".tar"})," - TAR archives"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".tgz"})," - Gzipped TAR archives"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".bz2"})," - Bzip2 compressed files"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".gz"})," - Gzip compressed files"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"news-search",children:"News search"}),"\n",(0,r.jsxs)(n.p,{children:["This component searches Google News with RSS and returns clean article data. The ",(0,r.jsx)(n.code,{children:"clean_html"})," method parses the HTML content with the BeautifulSoup library, and then removes HTML markup and strips whitespace so the output data is clean."]}),"\n",(0,r.jsxs)(n.p,{children:["It returns news content as a DataFrame containing article titles, links, publication dates, and summaries. The component can also be used in ",(0,r.jsx)(n.strong,{children:"Tool Mode"})," with a connected ",(0,r.jsx)(n.strong,{children:"Agent"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["To use this component in a flow, connect the ",(0,r.jsx)(n.strong,{children:"News Search"})," output to a component that accepts the DataFrame input.\nFor example, connect the ",(0,r.jsx)(n.strong,{children:"News Search"})," component to a ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component. Enter a search query, open the Playground, and click ",(0,r.jsx)(n.strong,{children:"Run Flow"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["The latest content is returned in a structured DataFrame, with the key columns ",(0,r.jsx)(n.code,{children:"title"}),", ",(0,r.jsx)(n.code,{children:"link"}),", ",(0,r.jsx)(n.code,{children:"published"})," and ",(0,r.jsx)(n.code,{children:"summary"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query"}),(0,r.jsx)(n.td,{children:"Search Query"}),(0,r.jsx)(n.td,{children:"Search keywords for news articles."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"hl"}),(0,r.jsx)(n.td,{children:"Language (hl)"}),(0,r.jsxs)(n.td,{children:["Language code, such as en-US, fr, de. Default: ",(0,r.jsx)(n.code,{children:"en-US"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"gl"}),(0,r.jsx)(n.td,{children:"Country (gl)"}),(0,r.jsxs)(n.td,{children:["Country code, such as US, FR, DE. Default: ",(0,r.jsx)(n.code,{children:"US"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"ceid"}),(0,r.jsxs)(n.td,{children:["Country",":Language"," (ceid)"]}),(0,r.jsxs)(n.td,{children:["Language, such as US",":en",", FR",":fr",". Default: ",(0,r.jsx)(n.code,{children:"US:en"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"topic"}),(0,r.jsx)(n.td,{children:"Topic"}),(0,r.jsx)(n.td,{children:"One of: WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SCIENCE, SPORTS, HEALTH."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"location"}),(0,r.jsx)(n.td,{children:"Location (Geo)"}),(0,r.jsx)(n.td,{children:"City, state, or country for location-based news. Leave blank for keyword search."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsx)(n.td,{children:"Timeout for the request in seconds."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"articles"}),(0,r.jsx)(n.td,{children:"News Articles"}),(0,r.jsx)(n.td,{children:"A DataFrame containing article titles, links, publication dates, and summaries."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"rss-reader",children:"RSS Reader"}),"\n",(0,r.jsxs)(n.p,{children:["This component fetches and parses RSS feeds from any valid RSS feed URL. It returns the feed content as a DataFrame containing article titles, links, publication dates, and summaries. The component can also be used in ",(0,r.jsx)(n.strong,{children:"Tool Mode"})," with a connected ",(0,r.jsx)(n.strong,{children:"Agent"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"To use this component in a flow, do the following:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Connect the ",(0,r.jsx)(n.strong,{children:"RSS reader"})," output to a component that accepts the DataFrame input, such as a ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"RSS Feed URL"})," field, enter an RSS feed, such as ",(0,r.jsx)(n.code,{children:"https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"})," for the New York Times."]}),"\n",(0,r.jsxs)(n.li,{children:["Open the ",(0,r.jsx)(n.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(n.strong,{children:"Run Flow"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["The latest content is returned in a structured DataFrame, with the key columns ",(0,r.jsx)(n.code,{children:"title"}),", ",(0,r.jsx)(n.code,{children:"link"}),", ",(0,r.jsx)(n.code,{children:"published"})," and ",(0,r.jsx)(n.code,{children:"summary"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"rss_url"}),(0,r.jsx)(n.td,{children:"RSS Feed URL"}),(0,r.jsx)(n.td,{children:"URL of the RSS feed to parse."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsxs)(n.td,{children:["Timeout for the RSS feed request in seconds. Default: ",(0,r.jsx)(n.code,{children:"5"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"articles"}),(0,r.jsx)(n.td,{children:"Articles"}),(0,r.jsx)(n.td,{children:"A DataFrame containing article titles, links, publication dates, and summaries."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"sql-database",children:"SQL database"}),"\n",(0,r.jsxs)(n.p,{children:["This component executes SQL queries on ",(0,r.jsx)(n.a,{href:"https://docs.sqlalchemy.org/en/20/",children:"SQLAlchemy-compatible databases"}),".\nIt supports any SQLAlchemy-compatible database, including PostgreSQL, MySQL, SQLite, and others."]}),"\n",(0,r.jsx)(n.p,{children:"To use this component in a flow, do the following:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Create a test database called ",(0,r.jsx)(n.code,{children:"test.db"}),"."]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sqlite3 ",props:{style:{color:"#FFA657"}}},{content:"test.db",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsx)(n.li,{children:"Add values to the test database."}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sqlite3 ",props:{style:{color:"#FFA657"}}},{content:"test.db \"CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT, age INTEGER); INSERT INTO users (name, email, age) VALUES ('John Doe', 'john@example.com', 30), ('Jane Smith', 'jane@example.com', 25), ('Bob Johnson', 'bob@example.com', 35);\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsxs)(n.li,{children:["Verify that ",(0,r.jsx)(n.code,{children:"test.db"})," has been created and contains your data."]}),"\n"]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"sqlite3 ",props:{style:{color:"#FFA657"}}},{content:'test.db "SELECT * FROM users;"',props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsx)(n.p,{children:"Result:"}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"1",props:{style:{color:"#FFA657"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"John ",props:{style:{color:"#FFA657"}}},{content:"Doe",props:{style:{color:"#A5D6FF"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"john@example.com",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"2",props:{style:{color:"#FFA657"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"Jane ",props:{style:{color:"#FFA657"}}},{content:"Smith",props:{style:{color:"#A5D6FF"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"jane@example.com",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"3",props:{style:{color:"#FFA657"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"John ",props:{style:{color:"#FFA657"}}},{content:"Doe",props:{style:{color:"#A5D6FF"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"john@example.com",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"4",props:{style:{color:"#FFA657"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"Jane ",props:{style:{color:"#FFA657"}}},{content:"Smith",props:{style:{color:"#A5D6FF"}}},{content:"|",props:{style:{color:"#FF7B72"}}},{content:"jane@example.com",props:{style:{color:"#FFA657"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,r.jsxs)(n.ol,{start:"4",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"SQL Database"})," component's ",(0,r.jsx)(n.strong,{children:"Database URL"})," field, add the connection string for ",(0,r.jsx)(n.code,{children:"test.db"}),", such as ",(0,r.jsx)(n.code,{children:"sqlite:///test.db"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["With this connection established, the ",(0,r.jsx)(n.strong,{children:"SQL Query"})," field now accepts SQL queries.\nInstead of manually entering SQL queries, connect this database to an agent as a ",(0,r.jsx)(n.strong,{children:"Tool"})," to query it with natural language."]}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"SQL Database"})," component, enable ",(0,r.jsx)(n.strong,{children:"Tool Mode"}),", and then connect it to an ",(0,r.jsx)(n.strong,{children:"Agent"})," component.\nThe flow looks like the following:"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"SQL database connected to agent",src:s(52189).A+"",width:"4000",height:"2400"})}),"\n",(0,r.jsxs)(n.ol,{start:"6",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Agent"})," component, in the ",(0,r.jsx)(n.strong,{children:"OpenAI API Key"})," field, add your OpenAI API key."]}),"\n",(0,r.jsxs)(n.li,{children:["Open the ",(0,r.jsx)(n.strong,{children:"Playground"})," and ask ",(0,r.jsx)(n.code,{children:"What users are in my database?"}),"\nThe Agent uses the ",(0,r.jsx)(n.code,{children:"run_sql_query"})," tool to retrieve the information, and additionally identifies the duplicate ",(0,r.jsx)(n.code,{children:"users"})," entries."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Result:"}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Here are the users in your database:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"1. **John Doe** - Email: john@example.com",props:{}}]},{tokens:[{content:"2. **Jane Smith** - Email: jane@example.com",props:{}}]},{tokens:[{content:"3. **John Doe** - Email: john@example.com",props:{}}]},{tokens:[{content:"4. **Jane Smith** - Email: jane@example.com",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"It seems there are duplicate entries for the users.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"> Finished chain.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"database_url"}),(0,r.jsx)(n.td,{children:"Database URL"}),(0,r.jsx)(n.td,{children:"The SQLAlchemy-compatible database connection URL."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query"}),(0,r.jsx)(n.td,{children:"SQL Query"}),(0,r.jsx)(n.td,{children:"The SQL query to execute."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"include_columns"}),(0,r.jsx)(n.td,{children:"Include Columns"}),(0,r.jsxs)(n.td,{children:["If enabled, includes column names in the result. Default: ",(0,r.jsx)(n.code,{children:"true"}),"."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"add_error"}),(0,r.jsx)(n.td,{children:"Add Error"}),(0,r.jsxs)(n.td,{children:["If enabled, adds any error messages to the result. Default: ",(0,r.jsx)(n.code,{children:"false"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"run_sql_query"}),(0,r.jsx)(n.td,{children:"Result Table"}),(0,r.jsx)(n.td,{children:"The query results as a DataFrame."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"web-search",children:"Web search"}),"\n",(0,r.jsxs)(n.p,{children:["This component performs web searches using DuckDuckGo's HTML interface, and returns the search results as a ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," containing the key columns ",(0,r.jsx)(n.code,{children:"title"}),", ",(0,r.jsx)(n.code,{children:"links"}),", and ",(0,r.jsx)(n.code,{children:"snippets"}),". The component can also be used in ",(0,r.jsx)(n.strong,{children:"Tool Mode"})," with a connected ",(0,r.jsx)(n.strong,{children:"Agent"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"To use this component in a flow, do the following:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Add the ",(0,r.jsx)(n.strong,{children:"Web search"})," component to the ",(0,r.jsx)(n.a,{href:"/basic-prompting",children:"Basic prompting"})," flow. In the ",(0,r.jsx)(n.strong,{children:"Search Query"})," field, enter a query, such as ",(0,r.jsx)(n.code,{children:"environmental news"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Connect the ",(0,r.jsx)(n.strong,{children:"Web search"})," component's output to a component that accepts the DataFrame input."]}),"\n",(0,r.jsxs)(n.li,{children:["Connect a ",(0,r.jsx)(n.strong,{children:"Type Convert"})," component to convert the DataFrame to a Message."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Type Convert"})," component, in the ",(0,r.jsx)(n.strong,{children:"Output Type"})," field, select ",(0,r.jsx)(n.strong,{children:"Message"}),".\nYour flow looks like the following:"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Type convert web search output to chat",src:s(42547).A+"",width:"4000",height:"1826"})}),"\n",(0,r.jsxs)(n.ol,{start:"5",children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Language Model"})," component, in the ",(0,r.jsx)(n.strong,{children:"OpenAI API Key"})," field, add your OpenAI API key."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"}),", and then ask about ",(0,r.jsx)(n.code,{children:"latest news"}),"."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"The search results are returned to the Playground as a message."}),"\n",(0,r.jsx)(n.p,{children:"Result:"}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Latest news",props:{}}]},{tokens:[{content:"AI",props:{}}]},{tokens:[{content:"gpt-4o-mini",props:{}}]},{tokens:[{content:"Here are some of the latest news articles related to the environment:",props:{}}]},{tokens:[{content:"Ozone Pollution and Global Warming: A recent study highlights that ozone pollution is a significant global environmental concern, threatening human health and crop production while exacerbating global warming. Read more",props:{}}]},{tokens:[{content:"...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsx)(n.p,{children:"This component uses web scraping and may be subject to rate limits. For production use, consider using an official search API."})}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query"}),(0,r.jsx)(n.td,{children:"Search Query"}),(0,r.jsx)(n.td,{children:"Keywords to search for."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsxs)(n.td,{children:["Timeout for the web search request in seconds. Default: ",(0,r.jsx)(n.code,{children:"5"}),"."]})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"results"}),(0,r.jsx)(n.td,{children:"Search Results"}),(0,r.jsx)(n.td,{children:"A DataFrame containing search results with titles, links, and snippets."})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"url",children:"URL"}),"\n",(0,r.jsx)(n.p,{children:"This component fetches content from one or more URLs, processes the content, and returns it in various formats. It supports output in plain text or raw HTML."}),"\n",(0,r.jsxs)(n.p,{children:["In the component's ",(0,r.jsx)(n.strong,{children:"URLs"})," field, enter the URL you want to load. To add multiple URL fields, click ",(0,r.jsx)(d.A,{name:"Plus","aria-hidden":"true"})," ",(0,r.jsx)(n.strong,{children:"Add URL"}),"."]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To use this component in a flow, connect the ",(0,r.jsx)(n.strong,{children:"DataFrame"})," output to a component that accepts the input.\nFor example, connect the ",(0,r.jsx)(n.strong,{children:"URL"})," component to a ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the URL component's ",(0,r.jsx)(n.strong,{children:"URLs"})," field, enter the URL for your request.\nThis example uses ",(0,r.jsx)(n.code,{children:"langflow.org"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Optionally, in the ",(0,r.jsx)(n.strong,{children:"Max Depth"})," field, enter how many pages away from the initial URL you want to crawl.\nSelect ",(0,r.jsx)(n.code,{children:"1"})," to crawl only the page specified in the ",(0,r.jsx)(n.strong,{children:"URLs"})," field.\nSelect ",(0,r.jsx)(n.code,{children:"2"})," to crawl all pages linked from that page.\nThe component crawls by link traversal, not by URL path depth."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"}),", and then click ",(0,r.jsx)(n.strong,{children:"Run Flow"}),".\nThe text contents of the URL are returned to the Playground as a structured DataFrame."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["In the ",(0,r.jsx)(n.strong,{children:"URL"})," component, change the output port to ",(0,r.jsx)(n.strong,{children:"Message"}),", and then run the flow again.\nThe text contents of the URL are returned as unstructured raw text, which you can extract patterns with the ",(0,r.jsx)(n.a,{href:"/components-processing#parser",children:"Parser"})," component."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"urls"}),(0,r.jsx)(n.td,{children:"URLs"}),(0,r.jsx)(n.td,{children:"Click the '+' button to enter one or more URLs to crawl recursively."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_depth"}),(0,r.jsx)(n.td,{children:"Max Depth"}),(0,r.jsx)(n.td,{children:"Controls how many 'clicks' away from the initial page the crawler will go."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"prevent_outside"}),(0,r.jsx)(n.td,{children:"Prevent Outside"}),(0,r.jsx)(n.td,{children:"If enabled, only crawls URLs within the same domain as the root URL."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"use_async"}),(0,r.jsx)(n.td,{children:"Use Async"}),(0,r.jsx)(n.td,{children:"If enabled, uses asynchronous loading which can be significantly faster but might use more system resources."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"format"}),(0,r.jsx)(n.td,{children:"Output Format"}),(0,r.jsxs)(n.td,{children:["Output Format. Use ",(0,r.jsx)(n.code,{children:"Text"})," to extract the text from the HTML or ",(0,r.jsx)(n.code,{children:"HTML"})," for the raw HTML content."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"timeout"}),(0,r.jsx)(n.td,{children:"Timeout"}),(0,r.jsx)(n.td,{children:"Timeout for the request in seconds."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"headers"}),(0,r.jsx)(n.td,{children:"Headers"}),(0,r.jsx)(n.td,{children:"The headers to send with the request."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Info"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsxs)(n.td,{children:["A list of ",(0,r.jsx)(n.a,{href:"/concepts-objects",children:"Data"})," objects containing fetched content and metadata."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"text"}),(0,r.jsx)(n.td,{children:"Message"}),(0,r.jsx)(n.td,{children:"The fetched content as formatted text."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"dataframe"}),(0,r.jsx)(n.td,{children:"DataFrame"}),(0,r.jsxs)(n.td,{children:["The content formatted as a ",(0,r.jsx)(n.a,{href:"/concepts-objects#dataframe-object",children:"DataFrame"})," object."]})]})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"webhook",children:"Webhook"}),"\n",(0,r.jsx)(n.p,{children:"This component defines a webhook trigger that runs a flow when it receives an HTTP POST request."}),"\n",(0,r.jsxs)(n.p,{children:["If the input is not valid JSON, the component wraps it in a ",(0,r.jsx)(n.code,{children:"payload"})," object so that it can be processed and still trigger the flow."]}),"\n",(0,r.jsxs)(n.p,{children:["When a ",(0,r.jsx)(n.strong,{children:"Webhook"})," component is added to the workspace, a new ",(0,r.jsx)(n.strong,{children:"Webhook cURL"})," tab becomes available in the ",(0,r.jsx)(n.strong,{children:"API"})," pane that contains an HTTP POST request for triggering the webhook component. For example:\nReplace ",(0,r.jsx)(n.code,{children:"LANGFLOW_SERVER_ADDRESS"}),", ",(0,r.jsx)(n.code,{children:"FLOW_ID"}),", and ",(0,r.jsx)(n.code,{children:"LANGFLOW_API_KEY"})," with the values from your Langflow deployment."]}),"\n",(0,r.jsx)(a.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://LANGFLOW_SERVER_ADDRESS/api/v1/webhook/FLOW_ID" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'x-api-key: LANGFLOW_API_KEY' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"any": "data"}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.strong,{children:"Webhook"})," component is often paired with a ",(0,r.jsxs)(n.a,{href:"/components-processing#parser",children:[(0,r.jsx)(n.strong,{children:"Parser"})," component"]})," to extract relevant data from the raw payload.\nFor more information, see ",(0,r.jsx)(n.a,{href:"/webhook",children:"Trigger flows with webhooks"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["To troubleshoot a flow with a ",(0,r.jsx)(n.strong,{children:"Webhook"})," component and verify that the component is receiving data, you can create a small flow that outputs only the parsed payload:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Create a flow with ",(0,r.jsx)(n.strong,{children:"Webhook"}),", ",(0,r.jsx)(n.strong,{children:"Parser"}),", and ",(0,r.jsx)(n.strong,{children:"Chat Output"})," components."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Connect the Webhook component's ",(0,r.jsx)(n.strong,{children:"Data"})," output to the Parser component's ",(0,r.jsx)(n.strong,{children:"Data"})," input."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Connect the Parser component's ",(0,r.jsx)(n.strong,{children:"Parsed Text"})," output to the Chat Output component's ",(0,r.jsx)(n.strong,{children:"Text"})," input."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Edit the ",(0,r.jsx)(n.strong,{children:"Parser"})," component to set ",(0,r.jsx)(n.strong,{children:"Mode"})," to ",(0,r.jsx)(n.strong,{children:"Stringify"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["This mode passes the data received by the Webhook component as a string that is printed by the ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Share"}),", select ",(0,r.jsx)(n.strong,{children:"API access"}),", and then copy the ",(0,r.jsx)(n.strong,{children:"Webhook cURL"})," code snippet."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Optional: Edit the ",(0,r.jsx)(n.code,{children:"data"})," in the code snippet if you want to pass a different payload."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Send the POST request to trigger the flow."}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Playground"})," to verify that the ",(0,r.jsx)(n.strong,{children:"Chat Output"})," component printed the JSON data from your POST request."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["For more information, see ",(0,r.jsx)(n.a,{href:"/webhook",children:"Trigger flows with webhooks"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"Payload"}),(0,r.jsx)(n.td,{children:"Receives a payload from external systems through HTTP POST requests."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"curl"}),(0,r.jsx)(n.td,{children:"cURL"}),(0,r.jsx)(n.td,{children:"The cURL command template for making requests to this webhook."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"endpoint"}),(0,r.jsx)(n.td,{children:"Endpoint"}),(0,r.jsx)(n.td,{children:"The endpoint URL where this webhook receives requests."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Name"}),(0,r.jsx)(n.th,{children:"Display Name"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"output_data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsxs)(n.td,{children:["Outputs processed data from the webhook input, and returns an empty ",(0,r.jsx)(n.a,{href:"/concepts-objects",children:"Data"})," object if no input is provided. If the input is not valid JSON, the component wraps it in a ",(0,r.jsx)(n.code,{children:"payload"})," object."]})]})})]})]}),"\n",(0,r.jsx)(n.h2,{id:"legacy-components",children:"Legacy components"}),"\n",(0,r.jsx)(n.p,{children:"Legacy components are available for use but are no longer supported."}),"\n",(0,r.jsx)(n.h3,{id:"gmail-loader",children:"Gmail Loader"}),"\n",(0,r.jsx)(n.admonition,{title:"Legacy Google OAuth Components",type:"warning",children:(0,r.jsxs)(n.p,{children:["Google OAuth Components are in ",(0,r.jsx)(n.strong,{children:"Legacy"}),", which means they are available for use but no longer in active development as of Langflow 1.4.0.\nThey may not work in newer versions of Langflow.\nTo connect your flows to Google OAuth services, use ",(0,r.jsx)(n.a,{href:"/integrations-composio",children:"Composio"}),"."]})}),"\n",(0,r.jsx)(n.p,{children:"This component loads emails from Gmail using provided credentials and filters."}),"\n",(0,r.jsxs)(n.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Input"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"json_string"}),(0,r.jsx)(n.td,{children:"SecretStrInput"}),(0,r.jsx)(n.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"label_ids"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"A comma-separated list of label IDs to filter emails."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"max_results"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The maximum number of emails to load."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Output"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"The loaded email data."})]})})]})]}),"\n",(0,r.jsx)(n.h3,{id:"google-drive-loader",children:"Google Drive Loader"}),"\n",(0,r.jsx)(n.admonition,{title:"Legacy Google OAuth Components",type:"warning",children:(0,r.jsxs)(n.p,{children:["Google OAuth Components are in ",(0,r.jsx)(n.strong,{children:"Legacy"}),", which means they are available for use but no longer in active development as of Langflow 1.4.0.\nThey may not work in newer versions of Langflow.\nTo connect your flows to Google OAuth services, use ",(0,r.jsx)(n.a,{href:"/integrations-composio",children:"Composio"}),"."]})}),"\n",(0,r.jsxs)(n.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Input"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"json_string"}),(0,r.jsx)(n.td,{children:"SecretStrInput"}),(0,r.jsx)(n.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"document_id"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"A single Google Drive document ID."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Output"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsx)(n.tbody,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"docs"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"The loaded document data."})]})})]})]}),"\n",(0,r.jsx)(n.h3,{id:"google-drive-search",children:"Google Drive Search"}),"\n",(0,r.jsx)(n.admonition,{title:"Legacy Google OAuth Components",type:"warning",children:(0,r.jsxs)(n.p,{children:["Google OAuth Components are in ",(0,r.jsx)(n.strong,{children:"Legacy"}),", which means they are available for use but no longer in active development as of Langflow 1.4.0.\nThey may not work in newer versions of Langflow.\nTo connect your flows to Google OAuth services, use ",(0,r.jsx)(n.a,{href:"/integrations-composio",children:"Composio"}),"."]})}),"\n",(0,r.jsx)(n.p,{children:"This component searches Google Drive files using provided credentials and query parameters."}),"\n",(0,r.jsxs)(n.p,{children:["For more information about creating a service account JSON, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2/service-account",children:"Service Account JSON"}),"."]}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Parameters"}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Inputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Input"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"token_string"}),(0,r.jsx)(n.td,{children:"SecretStrInput"}),(0,r.jsx)(n.td,{children:"A JSON string containing OAuth 2.0 access token information for service account access."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query_item"}),(0,r.jsx)(n.td,{children:"DropdownInput"}),(0,r.jsx)(n.td,{children:"The field to query."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"valid_operator"}),(0,r.jsx)(n.td,{children:"DropdownInput"}),(0,r.jsx)(n.td,{children:"The operator to use in the query."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"search_term"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The value to search for in the specified query item."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"query_string"}),(0,r.jsx)(n.td,{children:"MessageTextInput"}),(0,r.jsx)(n.td,{children:"The query string used for searching."})]})]})]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Outputs"})}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Output"}),(0,r.jsx)(n.th,{children:"Type"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"doc_urls"}),(0,r.jsx)(n.td,{children:"List[str]"}),(0,r.jsx)(n.td,{children:"The URLs of the found documents."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"doc_ids"}),(0,r.jsx)(n.td,{children:"List[str]"}),(0,r.jsx)(n.td,{children:"The IDs of the found documents."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"doc_titles"}),(0,r.jsx)(n.td,{children:"List[str]"}),(0,r.jsx)(n.td,{children:"The titles of the found documents."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"Data"}),(0,r.jsx)(n.td,{children:"The document titles and URLs in a structured format."})]})]})]})]})]})}function u(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}function m(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},17886:(e,n,s)=>{s.d(n,{A:()=>o});s(96540);var t=s(64058),r=s(74848);function o({name:e,...n}){const s=t[e];return s?(0,r.jsx)(s,{...n}):null}},42547:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/component-type-convert-and-web-search-1eef7b9a7c1a243f4a08d9717728d0e1.png"},52189:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/component-sql-database-3d2c985aee2dd9970874cb85e1d2b570.png"},84987:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/connect-data-components-to-agent-a8cd8c94d0474ae434aeb5d507a803e8.png"}}]); \ No newline at end of file diff --git a/assets/js/e67e8b00.62073819.js b/assets/js/e67e8b00.62073819.js deleted file mode 100644 index 9f84b94247..0000000000 --- a/assets/js/e67e8b00.62073819.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[656],{28453:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>i});var o=t(96540);const r={},s=o.createContext(r);function c(e){const n=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(s.Provider,{value:n},e.children)}},59339:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>o,toc:()=>l});const o=JSON.parse('{"id":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","title":"Integrate Google Cloud Vertex AI with Langflow","description":"Langflow integrates with the Google Vertex AI API for authenticating the Vertex AI embeddings model and Vertex AI components.","source":"@site/docs/Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow.mdx","sourceDirName":"Integrations/Google","slug":"/integrations-setup-google-cloud-vertex-ai-langflow","permalink":"/integrations-setup-google-cloud-vertex-ai-langflow","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Integrate Google Cloud Vertex AI with Langflow","slug":"/integrations-setup-google-cloud-vertex-ai-langflow"},"sidebar":"docs","previous":{"title":"Integrate Google OAuth with Langflow","permalink":"/integrations-setup-google-oauth-langflow"},"next":{"title":"Integrate Google BigQuery with Langflow","permalink":"/integrations-google-big-query"}}');var r=t(74848),s=t(28453);const c={title:"Integrate Google Cloud Vertex AI with Langflow",slug:"/integrations-setup-google-cloud-vertex-ai-langflow"},i=void 0,a={},l=[{value:"Create a service account with Vertex AI access",id:"create-a-service-account-with-vertex-ai-access",level:2},{value:"Configure credentials in Langflow components",id:"configure-credentials-in-langflow-components",level:2}];function g(e){const n={a:"a",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Langflow integrates with the ",(0,r.jsx)(n.a,{href:"https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com",children:"Google Vertex AI API"})," for authenticating the ",(0,r.jsx)(n.a,{href:"/components-bundle-components#vertexai-embeddings",children:"Vertex AI embeddings model"})," and ",(0,r.jsx)(n.a,{href:"/components-bundle-components#vertexai",children:"Vertex AI"})," components."]}),"\n",(0,r.jsx)(n.p,{children:"Learn how to create a service account JSON in Google Cloud to authenticate Langflow\u2019s Vertex AI components."}),"\n",(0,r.jsx)(n.h2,{id:"create-a-service-account-with-vertex-ai-access",children:"Create a service account with Vertex AI access"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Select and enable your Google Cloud project.\nFor more information, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/workspace/guides/create-project",children:"Create a Google Cloud project"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Create a service account in your Google Cloud project.\nFor more information, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/workspace/guides/create-credentials#service-account",children:"Create a service account"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Assign the ",(0,r.jsx)(n.strong,{children:"Vertex AI Service Agent"})," role to your new account.\nThis role allows Langflow to access Vertex AI resources.\nFor more information, see ",(0,r.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai/docs/general/access-control",children:"Vertex AI access control with IAM"}),"."]}),"\n",(0,r.jsx)(n.li,{children:"To generate a new JSON key for the service account, navigate to your service account."}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Add Key"}),", and then click ",(0,r.jsx)(n.strong,{children:"Create new key"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Under ",(0,r.jsx)(n.strong,{children:"Key type"}),", select ",(0,r.jsx)(n.strong,{children:"JSON"}),", and then click ",(0,r.jsx)(n.strong,{children:"Create"}),".\nA JSON private key file is downloaded.\nNow that you have a service account and a JSON private key, you need to configure the credentials in Langflow components."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"configure-credentials-in-langflow-components",children:"Configure credentials in Langflow components"}),"\n",(0,r.jsx)(n.p,{children:"With your service account configured and your credentials JSON file created, follow these steps to authenticate the Langflow application."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Create a new project in Langflow."}),"\n",(0,r.jsxs)(n.li,{children:["From the ",(0,r.jsx)(n.strong,{children:"Components"})," menu, drag and drop either the ",(0,r.jsx)(n.strong,{children:"Vertex AI"})," or ",(0,r.jsx)(n.strong,{children:"Vertex AI Embeddings"})," component to your workspace."]}),"\n",(0,r.jsxs)(n.li,{children:["In the Vertex AI component's ",(0,r.jsx)(n.strong,{children:"Credentials"})," field, add the service account JSON file."]}),"\n",(0,r.jsxs)(n.li,{children:["Confirm the component can access the Vertex AI resources.\nConnect a ",(0,r.jsx)(n.strong,{children:"Chat input"})," and ",(0,r.jsx)(n.strong,{children:"Chat output"})," component to the Vertex AI component.\nA successful chat confirms the component has access to the Vertex AI resources."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Configure Vertex AI Credentials in Langflow",src:t(65180).A+"",width:"1913",height:"819"})})]})}function d(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}},65180:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/configure-vertex-ai-credentials-in-langflow-10c417c45f725fee46d4ef5f740316b3.gif"}}]); \ No newline at end of file diff --git a/assets/js/e67e8b00.fa4717b0.js b/assets/js/e67e8b00.fa4717b0.js new file mode 100644 index 0000000000..2b3d0f12be --- /dev/null +++ b/assets/js/e67e8b00.fa4717b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[656],{28453:(e,n,t)=>{t.d(n,{R:()=>c,x:()=>i});var o=t(96540);const r={},s=o.createContext(r);function c(e){const n=o.useContext(s);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),o.createElement(s.Provider,{value:n},e.children)}},59339:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>o,toc:()=>l});const o=JSON.parse('{"id":"Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow","title":"Integrate Google Cloud Vertex AI with Langflow","description":"Langflow integrates with the Google Vertex AI API for authenticating the Vertex AI embeddings model and Vertex AI components.","source":"@site/docs/Integrations/Google/integrations-setup-google-cloud-vertex-ai-langflow.mdx","sourceDirName":"Integrations/Google","slug":"/integrations-setup-google-cloud-vertex-ai-langflow","permalink":"/integrations-setup-google-cloud-vertex-ai-langflow","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Integrate Google Cloud Vertex AI with Langflow","slug":"/integrations-setup-google-cloud-vertex-ai-langflow"},"sidebar":"docs","previous":{"title":"Docling","permalink":"/integrations-docling"},"next":{"title":"Integrate Google BigQuery with Langflow","permalink":"/integrations-google-big-query"}}');var r=t(74848),s=t(28453);const c={title:"Integrate Google Cloud Vertex AI with Langflow",slug:"/integrations-setup-google-cloud-vertex-ai-langflow"},i=void 0,a={},l=[{value:"Create a service account with Vertex AI access",id:"create-a-service-account-with-vertex-ai-access",level:2},{value:"Configure credentials in Langflow components",id:"configure-credentials-in-langflow-components",level:2}];function g(e){const n={a:"a",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Langflow integrates with the ",(0,r.jsx)(n.a,{href:"https://console.cloud.google.com/marketplace/product/google/aiplatform.googleapis.com",children:"Google Vertex AI API"})," for authenticating the ",(0,r.jsx)(n.a,{href:"/components-bundle-components#vertexai-embeddings",children:"Vertex AI embeddings model"})," and ",(0,r.jsx)(n.a,{href:"/components-bundle-components#vertexai",children:"Vertex AI"})," components."]}),"\n",(0,r.jsx)(n.p,{children:"Learn how to create a service account JSON in Google Cloud to authenticate Langflow\u2019s Vertex AI components."}),"\n",(0,r.jsx)(n.h2,{id:"create-a-service-account-with-vertex-ai-access",children:"Create a service account with Vertex AI access"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Select and enable your Google Cloud project.\nFor more information, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/workspace/guides/create-project",children:"Create a Google Cloud project"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Create a service account in your Google Cloud project.\nFor more information, see ",(0,r.jsx)(n.a,{href:"https://developers.google.com/workspace/guides/create-credentials#service-account",children:"Create a service account"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Assign the ",(0,r.jsx)(n.strong,{children:"Vertex AI Service Agent"})," role to your new account.\nThis role allows Langflow to access Vertex AI resources.\nFor more information, see ",(0,r.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai/docs/general/access-control",children:"Vertex AI access control with IAM"}),"."]}),"\n",(0,r.jsx)(n.li,{children:"To generate a new JSON key for the service account, navigate to your service account."}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Add Key"}),", and then click ",(0,r.jsx)(n.strong,{children:"Create new key"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Under ",(0,r.jsx)(n.strong,{children:"Key type"}),", select ",(0,r.jsx)(n.strong,{children:"JSON"}),", and then click ",(0,r.jsx)(n.strong,{children:"Create"}),".\nA JSON private key file is downloaded.\nNow that you have a service account and a JSON private key, you need to configure the credentials in Langflow components."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"configure-credentials-in-langflow-components",children:"Configure credentials in Langflow components"}),"\n",(0,r.jsx)(n.p,{children:"With your service account configured and your credentials JSON file created, follow these steps to authenticate the Langflow application."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Create a new project in Langflow."}),"\n",(0,r.jsxs)(n.li,{children:["From the ",(0,r.jsx)(n.strong,{children:"Components"})," menu, drag and drop either the ",(0,r.jsx)(n.strong,{children:"Vertex AI"})," or ",(0,r.jsx)(n.strong,{children:"Vertex AI Embeddings"})," component to your workspace."]}),"\n",(0,r.jsxs)(n.li,{children:["In the Vertex AI component's ",(0,r.jsx)(n.strong,{children:"Credentials"})," field, add the service account JSON file."]}),"\n",(0,r.jsxs)(n.li,{children:["Confirm the component can access the Vertex AI resources.\nConnect a ",(0,r.jsx)(n.strong,{children:"Chat input"})," and ",(0,r.jsx)(n.strong,{children:"Chat output"})," component to the Vertex AI component.\nA successful chat confirms the component has access to the Vertex AI resources."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Configure Vertex AI Credentials in Langflow",src:t(65180).A+"",width:"1913",height:"819"})})]})}function d(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}},65180:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/configure-vertex-ai-credentials-in-langflow-10c417c45f725fee46d4ef5f740316b3.gif"}}]); \ No newline at end of file diff --git a/assets/js/e6c6a4d2.5c57d616.js b/assets/js/e6c6a4d2.2b997bbe.js similarity index 56% rename from assets/js/e6c6a4d2.5c57d616.js rename to assets/js/e6c6a4d2.2b997bbe.js index 8f4f4b237f..9a88dbd172 100644 --- a/assets/js/e6c6a4d2.5c57d616.js +++ b/assets/js/e6c6a4d2.2b997bbe.js @@ -1 +1 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>l});var s=n(96540);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>r});const s=JSON.parse('{"type":"api","id":"experimental-run-flow","title":"Experimental Run Flow","description":"","slug":"/experimental-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","operationId":"experimental_run_flow_api_v1_run_advanced__flow_id__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Flow Id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"inputs":{"anyOf":[{"items":{"properties":{"components":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Components","default":[]},"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value"},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session"},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any"}},"additionalProperties":false,"type":"object","title":"InputValueRequest","examples":[{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"},{"components":["Component Name"],"input_value":"input_value"},{"input_value":"input_value"},{"components":["Component Name"],"input_value":"input_value","session":"session_id"},{"input_value":"input_value","session":"session_id"},{"input_value":"input_value","type":"chat"},{"input_value":"{\\"key\\": \\"value\\"}","type":"json"}]},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}]},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"Body_experimental_run_flow_api_v1_run_advanced__flow_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"outputs":{"anyOf":[{"items":{"properties":{"inputs":{"type":"object","title":"Inputs"},"outputs":{"items":{"anyOf":[{"properties":{"results":{"anyOf":[{},{"type":"null"}],"title":"Results"},"artifacts":{"anyOf":[{},{"type":"null"}],"title":"Artifacts"},"outputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Outputs"},"logs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Logs"},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender","default":"Machine"},"sender_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Name","default":"AI"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"files":{"items":{"properties":{"path":{"type":"string","title":"Path"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"}},"type":"object","required":["path","name","type"],"title":"File","description":"File schema."},"type":"array","title":"Files","default":[]},"type":{"type":"string","title":"Type"}},"type":"object","required":["message","type"],"title":"ChatOutputResponse","description":"Chat output response schema."},"type":"array"},{"type":"null"}],"title":"Messages"},"timedelta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timedelta"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"component_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Display Name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"used_frozen_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used Frozen Result","default":false}},"type":"object","title":"ResultData"},{"type":"null"}]},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"},{"type":"null"}],"title":"Outputs","default":[]},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.5.0.post1"},"postman":{"name":"Experimental Run Flow","description":{"content":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","type":"text/plain"},"url":{"path":["api","v1","run","advanced",":flow_id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"inputs\\": [\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n },\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n }\\n ],\\n \\"outputs\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"tweaks\\": {\\n \\"nullac\\": \\"\\"\\n },\\n \\"stream\\": false,\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/experimental-run-flow","previous":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"},"next":{"title":"Process","permalink":"/api/process"}}');var i=n(74848),o=n(28453);const a={},l="Experimental Run Flow",r=[{value:"Parameters:",id:"parameters",level:3},{value:"Returns:",id:"returns",level:3},{value:"Raises:",id:"raises",level:3},{value:"Example usage:",id:"example-usage",level:3}];function p(e){const t={code:"code",h1:"h1",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"experimental-run-flow",children:"Experimental Run Flow"})}),"\n",(0,i.jsx)(t.p,{children:"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability."}),"\n",(0,i.jsx)(t.p,{children:"This endpoint supports running flows with caching to enhance performance and efficiency."}),"\n",(0,i.jsx)(t.h3,{id:"parameters",children:"Parameters:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"flow_id"})," (str): The unique identifier of the flow to be executed."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"inputs"})," (List[InputValueRequest], optional): A list of inputs specifying the input values and components\nfor the flow. Each input can target specific components and provide custom values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"outputs"})," (List[str], optional): A list of output names to retrieve from the executed flow.\nIf not provided, all outputs are returned."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"tweaks"})," (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\nThe tweaks can be used to modify the flow's parameters and components.\nTweaks can be overridden by the input values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"stream"})," (bool, optional): Specifies whether the results should be streamed. Defaults to False."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"session_id"})," (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\nexecution."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"api_key_user"})," (User): The user associated with the current API key. Automatically resolved from the API key."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"returns",children:"Returns:"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.code,{children:"RunResponse"})," object containing the selected outputs (or all if not specified) of the executed flow\nand the session ID.\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input."]}),"\n",(0,i.jsx)(t.h3,{id:"raises",children:"Raises:"}),"\n",(0,i.jsx)(t.p,{children:"HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\nflow execution."}),"\n",(0,i.jsx)(t.h3,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-json",children:'POST /run/flow_id\nx-api-key: YOUR_API_KEY\nPayload:\n{\n "inputs": [\n {"components": ["component1"], "input_value": "value1"},\n {"components": ["component3"], "input_value": "value2"}\n ],\n "outputs": ["Component Name", "component_id"],\n "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}\n "stream": false\n}\n'})}),"\n",(0,i.jsx)(t.p,{children:"This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\ncatering to diverse application requirements."}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"flow_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" uuid"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Request Body "}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"inputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Inputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"tweaks"}),(0,i.jsx)("span",{style:{opacity:"0.6"}})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"stream"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"})]})})]})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"200"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Successful Response"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})})]})]})})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"422"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Validation Error"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"detail"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"loc"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"msg"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"type"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]); \ No newline at end of file +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8504],{28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>l});var s=n(96540);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}},94910:(e,t,n)=>{n.r(t),n.d(t,{contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>r});const s=JSON.parse('{"type":"api","id":"experimental-run-flow","title":"Experimental Run Flow","description":"","slug":"/experimental-run-flow","frontMatter":{},"api":{"tags":["Base"],"description":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","operationId":"experimental_run_flow_api_v1_run_advanced__flow_id__post","security":[{"API key query":[]},{"API key header":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Flow Id"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"inputs":{"anyOf":[{"items":{"properties":{"components":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Components","default":[]},"input_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Value"},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session"},"type":{"anyOf":[{"type":"string","enum":["chat","text","any"]},{"type":"null"}],"title":"Type","description":"Defines on which components the input value should be applied. \'any\' applies to all input components.","default":"any"}},"additionalProperties":false,"type":"object","title":"InputValueRequest","examples":[{"components":["components_id","Component Name"],"input_value":"input_value","session":"session_id"},{"components":["Component Name"],"input_value":"input_value"},{"input_value":"input_value"},{"components":["Component Name"],"input_value":"input_value","session":"session_id"},{"input_value":"input_value","session":"session_id"},{"input_value":"input_value","type":"chat"},{"input_value":"{\\"key\\": \\"value\\"}","type":"json"}]},"type":"array"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Outputs"},"tweaks":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"object","title":"Tweaks","description":"A dictionary of tweaks to adjust the flow\'s execution. Allows customizing flow behavior dynamically. All tweaks are overridden by the input values.","examples":[{"Component Name":{"parameter_name":"value"},"component_id":{"parameter_name":"value"},"parameter_name":"value"}]},{"type":"null"}]},"stream":{"type":"boolean","title":"Stream","default":false},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"Body_experimental_run_flow_api_v1_run_advanced__flow_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"outputs":{"anyOf":[{"items":{"properties":{"inputs":{"type":"object","title":"Inputs"},"outputs":{"items":{"anyOf":[{"properties":{"results":{"anyOf":[{},{"type":"null"}],"title":"Results"},"artifacts":{"anyOf":[{},{"type":"null"}],"title":"Artifacts"},"outputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Outputs"},"logs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Logs"},"messages":{"anyOf":[{"items":{"properties":{"message":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"type":"string"},{"type":"object"}]},"type":"array"}],"title":"Message"},"sender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender","default":"Machine"},"sender_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sender Name","default":"AI"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"stream_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stream Url"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"files":{"items":{"properties":{"path":{"type":"string","title":"Path"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"}},"type":"object","required":["path","name","type"],"title":"File","description":"File schema."},"type":"array","title":"Files","default":[]},"type":{"type":"string","title":"Type"}},"type":"object","required":["message","type"],"title":"ChatOutputResponse","description":"Chat output response schema."},"type":"array"},{"type":"null"}],"title":"Messages"},"timedelta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timedelta"},"duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration"},"component_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Display Name"},"component_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Component Id"},"used_frozen_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Used Frozen Result","default":false}},"type":"object","title":"ResultData"},{"type":"null"}]},"type":"array","title":"Outputs"}},"type":"object","title":"RunOutputs"},"type":"array"},{"type":"null"}],"title":"Outputs","default":[]},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","title":"RunResponse","description":"Run response schema."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}},"method":"post","path":"/api/v1/run/advanced/{flow_id}","securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"api/v1/login"}}},"API key query":{"type":"apiKey","in":"query","name":"x-api-key"},"API key header":{"type":"apiKey","in":"header","name":"x-api-key"}},"jsonRequestBodyExample":{"stream":false},"info":{"title":"Langflow","version":"1.5.0.post1"},"postman":{"name":"Experimental Run Flow","description":{"content":"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability.\\n\\nThis endpoint supports running flows with caching to enhance performance and efficiency.\\n\\n### Parameters:\\n- `flow_id` (str): The unique identifier of the flow to be executed.\\n- `inputs` (List[InputValueRequest], optional): A list of inputs specifying the input values and components\\n for the flow. Each input can target specific components and provide custom values.\\n- `outputs` (List[str], optional): A list of output names to retrieve from the executed flow.\\n If not provided, all outputs are returned.\\n- `tweaks` (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\\n The tweaks can be used to modify the flow\'s parameters and components.\\n Tweaks can be overridden by the input values.\\n- `stream` (bool, optional): Specifies whether the results should be streamed. Defaults to False.\\n- `session_id` (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\\n execution.\\n- `api_key_user` (User): The user associated with the current API key. Automatically resolved from the API key.\\n\\n### Returns:\\nA `RunResponse` object containing the selected outputs (or all if not specified) of the executed flow\\nand the session ID.\\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input.\\n\\n### Raises:\\nHTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\\nflow execution.\\n\\n### Example usage:\\n```json\\nPOST /run/flow_id\\nx-api-key: YOUR_API_KEY\\nPayload:\\n{\\n \\"inputs\\": [\\n {\\"components\\": [\\"component1\\"], \\"input_value\\": \\"value1\\"},\\n {\\"components\\": [\\"component3\\"], \\"input_value\\": \\"value2\\"}\\n ],\\n \\"outputs\\": [\\"Component Name\\", \\"component_id\\"],\\n \\"tweaks\\": {\\"parameter_name\\": \\"value\\", \\"Component Name\\": {\\"parameter_name\\": \\"value\\"}, \\"component_id\\": {\\"parameter_name\\": \\"value\\"}}\\n \\"stream\\": false\\n}\\n```\\n\\nThis endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\\ncatering to diverse application requirements.","type":"text/plain"},"url":{"path":["api","v1","run","advanced",":flow_id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"","key":"flow_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\\n \\"inputs\\": [\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n },\\n {\\n \\"components\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"input_value\\": \\"\\",\\n \\"session\\": \\"\\",\\n \\"type\\": \\"\\"\\n }\\n ],\\n \\"outputs\\": [\\n \\"\\",\\n \\"\\"\\n ],\\n \\"tweaks\\": {\\n \\"nostrud91\\": \\"\\"\\n },\\n \\"stream\\": false,\\n \\"session_id\\": \\"\\"\\n}","options":{"raw":{"language":"json"}}},"auth":{"type":"apikey","apikey":[{"type":"any","value":"x-api-key","key":"key"},{"type":"any","value":"{{apiKey}}","key":"value"},{"type":"any","value":"query","key":"in"}]}}},"source":"@site/openapi.json","sourceDirName":".","permalink":"/api/experimental-run-flow","previous":{"title":"Webhook Run Flow","permalink":"/api/webhook-run-flow"},"next":{"title":"Process","permalink":"/api/process"}}');var i=n(74848),o=n(28453);const a={},l="Experimental Run Flow",r=[{value:"Parameters:",id:"parameters",level:3},{value:"Returns:",id:"returns",level:3},{value:"Raises:",id:"raises",level:3},{value:"Example usage:",id:"example-usage",level:3}];function p(e){const t={code:"code",h1:"h1",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"experimental-run-flow",children:"Experimental Run Flow"})}),"\n",(0,i.jsx)(t.p,{children:"Executes a specified flow by ID with optional input values, output selection, tweaks, and streaming capability."}),"\n",(0,i.jsx)(t.p,{children:"This endpoint supports running flows with caching to enhance performance and efficiency."}),"\n",(0,i.jsx)(t.h3,{id:"parameters",children:"Parameters:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"flow_id"})," (str): The unique identifier of the flow to be executed."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"inputs"})," (List[InputValueRequest], optional): A list of inputs specifying the input values and components\nfor the flow. Each input can target specific components and provide custom values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"outputs"})," (List[str], optional): A list of output names to retrieve from the executed flow.\nIf not provided, all outputs are returned."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"tweaks"})," (Optional[Tweaks], optional): A dictionary of tweaks to customize the flow execution.\nThe tweaks can be used to modify the flow's parameters and components.\nTweaks can be overridden by the input values."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"stream"})," (bool, optional): Specifies whether the results should be streamed. Defaults to False."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"session_id"})," (Union[None, str], optional): An optional session ID to utilize existing session data for the flow\nexecution."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"api_key_user"})," (User): The user associated with the current API key. Automatically resolved from the API key."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"returns",children:"Returns:"}),"\n",(0,i.jsxs)(t.p,{children:["A ",(0,i.jsx)(t.code,{children:"RunResponse"})," object containing the selected outputs (or all if not specified) of the executed flow\nand the session ID.\nThe structure of the response accommodates multiple inputs, providing a nested list of outputs for each input."]}),"\n",(0,i.jsx)(t.h3,{id:"raises",children:"Raises:"}),"\n",(0,i.jsx)(t.p,{children:"HTTPException: Indicates issues with finding the specified flow, invalid input formats, or internal errors during\nflow execution."}),"\n",(0,i.jsx)(t.h3,{id:"example-usage",children:"Example usage:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-json",children:'POST /run/flow_id\nx-api-key: YOUR_API_KEY\nPayload:\n{\n "inputs": [\n {"components": ["component1"], "input_value": "value1"},\n {"components": ["component3"], "input_value": "value2"}\n ],\n "outputs": ["Component Name", "component_id"],\n "tweaks": {"parameter_name": "value", "Component Name": {"parameter_name": "value"}, "component_id": {"parameter_name": "value"}}\n "stream": false\n}\n'})}),"\n",(0,i.jsx)(t.p,{children:"This endpoint facilitates complex flow executions with customized inputs, outputs, and configurations,\ncatering to diverse application requirements."}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Path Parameters"})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"flow_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" uuid"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-required)"},children:" REQUIRED"})]})})})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Request Body "}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"inputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Inputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"tweaks"}),(0,i.jsx)("span",{style:{opacity:"0.6"}})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"stream"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Stream"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"})]})})]})]}),"\n",(0,i.jsxs)("table",{style:{display:"table",width:"100%"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsx)("th",{style:{textAlign:"left"},children:"Responses"})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"200"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Successful Response"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Outputs"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"session_id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Session Id"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"})]})})]})]})})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsxs)("div",{style:{display:"flex"},children:[(0,i.jsx)("div",{style:{marginRight:"var(--ifm-table-cell-padding)"},children:(0,i.jsx)("code",{children:"422"})}),(0,i.jsx)("div",{children:(0,i.jsx)(t.p,{children:"Validation Error"})})]}),(0,i.jsx)("div",{children:(0,i.jsxs)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:[(0,i.jsx)("thead",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("th",{style:{textAlign:"left"},children:[(0,i.jsx)("span",{children:"Schema "}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("div",{})]})})}),(0,i.jsx)("tbody",{children:(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"detail"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" object[]"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" \u2014 "}),(0,i.jsx)("strong",{style:{fontSize:"var(--ifm-code-font-size)",color:"var(--openapi-optional)"},children:" OPTIONAL"}),(0,i.jsx)("table",{style:{display:"table",width:"100%",marginTop:"var(--ifm-table-cell-padding)",marginBottom:"0px"},children:(0,i.jsxs)("tbody",{children:[(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"loc"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" undefined[]"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"msg"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Message"})]})}),(0,i.jsx)("tr",{children:(0,i.jsxs)("td",{children:[(0,i.jsx)("code",{children:"type"}),(0,i.jsx)("span",{style:{opacity:"0.6"},children:" Error Type"})]})})]})})]})})})]})})]})})]})]})]})}function d(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]); \ No newline at end of file diff --git a/assets/js/eaa2a337.a2933c57.js b/assets/js/eaa2a337.a2933c57.js deleted file mode 100644 index e19c835fc0..0000000000 --- a/assets/js/eaa2a337.a2933c57.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1882],{8544:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/create-a-google-cloud-project-cb1730f824bb28b1caa950c492726f87.gif"},13079:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"Integrations/Google/integrations-setup-google-oauth-langflow","title":"Integrate Google OAuth with Langflow","description":"Langflow integrates with Google OAuth for authenticating the Gmail loader, Google Drive loader, and Google Drive Search components.","source":"@site/docs/Integrations/Google/integrations-setup-google-oauth-langflow.mdx","sourceDirName":"Integrations/Google","slug":"/integrations-setup-google-oauth-langflow","permalink":"/integrations-setup-google-oauth-langflow","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Integrate Google OAuth with Langflow","slug":"/integrations-setup-google-oauth-langflow"},"sidebar":"docs","previous":{"title":"Docling","permalink":"/integrations-docling"},"next":{"title":"Integrate Google Cloud Vertex AI with Langflow","permalink":"/integrations-setup-google-cloud-vertex-ai-langflow"}}');var l=o(74848),i=o(28453);o(96540),o(65195);var s=o(17886);const r={title:"Integrate Google OAuth with Langflow",slug:"/integrations-setup-google-oauth-langflow"},a=void 0,c={},d=[{value:"Create an OAuth Application in Google Cloud",id:"5b8981b15d86192d17b0e5725c1f95e7",level:2},{value:"Retrieve Access and Refresh Tokens",id:"retrieve-access-and-refresh-tokens",level:2},{value:"Create a flow with Google Drive loader",id:"create-a-flow-with-google-drive-loader",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(n.p,{children:["Langflow integrates with ",(0,l.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2",children:"Google OAuth"})," for authenticating the ",(0,l.jsx)(n.a,{href:"/components-data#gmail-loader",children:"Gmail loader"}),", ",(0,l.jsx)(n.a,{href:"components-data#google-drive-loader",children:"Google Drive loader"}),", and ",(0,l.jsx)(n.a,{href:"/components-data#google-drive-search",children:"Google Drive Search"})," components."]}),"\n",(0,l.jsx)(n.p,{children:"Learn how to create an OAuth app in Google Cloud, obtain the necessary credentials and access tokens, and add them to Langflow\u2019s Google components."}),"\n",(0,l.jsx)(n.h2,{id:"5b8981b15d86192d17b0e5725c1f95e7",children:"Create an OAuth Application in Google Cloud"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:["Navigate to the ",(0,l.jsx)(n.a,{href:"https://console.cloud.google.com/",children:"Google Cloud Console"}),"."]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:["Click ",(0,l.jsx)(n.strong,{children:"Select a project"}),", and then click ",(0,l.jsx)(n.strong,{children:"New Project"})," to create a new project."]}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"OAuth Client ID and Secret",src:o(8544).A+"",width:"800",height:"450"})}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsxs)(n.li,{children:["To enable APIs for the project, select ",(0,l.jsx)(n.strong,{children:"APIs & Services"}),", and then click ",(0,l.jsx)(n.strong,{children:"Library"}),". Enable the APIs you need for your project. For example, if your flow uses the Google Drive component, enable the Google Drive API."]}),"\n",(0,l.jsxs)(n.li,{children:["To navigate to the OAuth consent screen, click ",(0,l.jsx)(n.strong,{children:"APIs & Services"}),", and then click ",(0,l.jsx)(n.strong,{children:"OAuth consent screen"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Populate your OAuth consent screen with the application name, audience, and user support email.\nFor audience, select ",(0,l.jsx)(n.strong,{children:"External"}),".\nThis creates a testing application environment that you can add users to."]}),"\n",(0,l.jsxs)(n.li,{children:["To add users to your OAuth audience, click ",(0,l.jsx)(n.strong,{children:"Audience"}),".\nUnder ",(0,l.jsx)(n.strong,{children:"Test users"}),", click ",(0,l.jsx)(n.strong,{children:"Add users"}),".\nEnter any email addresses you intend to use to authenticate Langflow with OAuth.\nThese email addresses have access to the application while it's in a ",(0,l.jsx)(n.strong,{children:"Testing"})," publishing state.\nFor more information, see the ",(0,l.jsx)(n.a,{href:"https://support.google.com/cloud/answer/13461325?hl=en",children:"Google documentation"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["To create an ",(0,l.jsx)(n.strong,{children:"OAuth Client ID"}),", navigate to ",(0,l.jsx)(n.strong,{children:"Clients"}),", and then click ",(0,l.jsx)(n.strong,{children:"Create Client"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["Choose ",(0,l.jsx)(n.strong,{children:"Desktop app"})," as the application type, and then name your client ID."]}),"\n",(0,l.jsxs)(n.li,{children:["Click ",(0,l.jsx)(n.strong,{children:"Create"}),".\nA Client ID and Client Secret are created.\nDownload the credentials as a JSON file to your local machine and save it securely."]}),"\n"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.img,{alt:"OAuth Client ID and Secret",src:o(25474).A+"",width:"3450",height:"1756"})}),"\n",(0,l.jsx)(n.h2,{id:"retrieve-access-and-refresh-tokens",children:"Retrieve Access and Refresh Tokens"}),"\n",(0,l.jsx)(n.p,{children:"With your OAuth application configured and your credentials JSON file created, follow these steps to authenticate the Langflow application."}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsx)(n.li,{children:"Create a new project in Langflow."}),"\n",(0,l.jsxs)(n.li,{children:["Add a ",(0,l.jsx)(n.strong,{children:"Google OAuth Token"})," component to your flow."]}),"\n",(0,l.jsxs)(n.li,{children:["In the ",(0,l.jsx)(n.strong,{children:"Credentials File"})," field of the Google OAuth Token component, enter the path to your ",(0,l.jsx)(n.strong,{children:"Credentials File"}),", the JSON file containing the Client ID credentials you downloaded from Google in the previous steps."]}),"\n",(0,l.jsxs)(n.li,{children:["In the ",(0,l.jsx)(n.strong,{children:"Scopes"})," field of the Google Oauth Token component, enter the scope required to access your resources.\nFor example, to allow your Langflow application to access a user's Google Drive, the scope is ",(0,l.jsx)(n.code,{children:"https://www.googleapis.com/auth/drive"}),".\nFor more information, see the ",(0,l.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2/scopes",children:"Google documentation"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["To authenticate your application, in the ",(0,l.jsx)(n.strong,{children:"Google OAuth Token"})," component, click ",(0,l.jsx)(s.A,{name:"Play","aria-hidden":"True"})," ",(0,l.jsx)(n.strong,{children:"Run component"}),".\nA new tab opens in the browser to authenticate your application using your Google Cloud account. You must authenticate the application with the same Google account that created the OAuth credentials."]}),"\n"]}),"\n",(0,l.jsx)(n.admonition,{type:"info",children:(0,l.jsxs)(n.p,{children:["If a new tab does not open automatically, check the Langflow ",(0,l.jsx)(n.strong,{children:"Logs"})," for the Google authentication URL. Open this URL in your browser to complete the authentication."]})}),"\n",(0,l.jsxs)(n.ol,{start:"6",children:["\n",(0,l.jsx)(n.li,{children:"After successful authentication, your Langflow application can request and refresh tokens.\nThese tokens enable Langflow to interact with Google services on your behalf and execute your specified requests."}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"create-a-flow-with-google-drive-loader",children:"Create a flow with Google Drive loader"}),"\n",(0,l.jsxs)(n.p,{children:["For a pre-built JSON file of a flow that uses the Google Drive loader component, download the ",(0,l.jsx)("a",{href:"./files/Google_Drive_Docs_Translations_Example.json",download:!0,children:"Google Drive Document Translation Example Flow JSON"})," to your local machine."]}),"\n",(0,l.jsxs)(n.p,{children:["In this example, the ",(0,l.jsx)(n.strong,{children:"Google Drive loader"})," component loads a text file hosted on Google Drive, translates the text to Spanish, and returns it to a chat output."]}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Download the ",(0,l.jsx)("a",{href:"./files/Google_Drive_Docs_Translations_Example.json",download:!0,children:"Google Drive Document Translation Example Flow JSON"})," to your local machine."]}),"\n",(0,l.jsxs)(n.li,{children:["To import the downloaded JSON to Langflow, click ",(0,l.jsx)(n.strong,{children:"Options"}),", and then select ",(0,l.jsx)(n.strong,{children:"Import"}),"."]}),"\n",(0,l.jsxs)(n.li,{children:["In the ",(0,l.jsx)(n.strong,{children:"Credentials File"})," field of the Google OAuth Token component, enter the path to your ",(0,l.jsx)(n.strong,{children:"Credentials File"}),", the JSON file containing the Client ID credentials you downloaded from Google in the previous steps."]}),"\n",(0,l.jsxs)(n.li,{children:["In the ",(0,l.jsx)(n.strong,{children:"Scopes"})," field of the Google Oauth Token component, enter the scope required to access your resources.\nFor example, to allow your Langflow application to access a user's Google Drive, the scope is ",(0,l.jsx)(n.code,{children:"https://www.googleapis.com/auth/drive"}),".\nFor more information, see the ",(0,l.jsx)(n.a,{href:"https://developers.google.com/identity/protocols/oauth2/scopes",children:"Google documentation"}),".\nThe example flow includes a ",(0,l.jsx)(n.strong,{children:"Parse data"})," component to convert the ",(0,l.jsx)(n.code,{children:"data"})," output of the Google OAuth Token component to the ",(0,l.jsx)(n.code,{children:"text"})," input of the JSON Cleaner component."]}),"\n",(0,l.jsxs)(n.li,{children:["To allow the Langflow component to access the document in Google Drive, copy the Google Drive ",(0,l.jsx)(n.code,{children:"documentID"})," from the document's URL."]}),"\n"]}),"\n",(0,l.jsx)(n.admonition,{type:"info",children:(0,l.jsxs)(n.p,{children:["The ",(0,l.jsx)(n.code,{children:"documentID"})," is located between ",(0,l.jsx)(n.code,{children:"/d/"})," and ",(0,l.jsx)(n.code,{children:"/edit"})," in a Google Drive document's URL.\nFor example, in the URL ",(0,l.jsx)(n.code,{children:"https://drive.google.com/file/d/1a2b3c4D5E6F7gHI8J9klmnopQ/edit"}),", the ",(0,l.jsx)(n.code,{children:"documentID"})," is ",(0,l.jsx)(n.code,{children:"1a2b3c4D5E6F7gHI8J9klmnopQ"}),"."]})}),"\n",(0,l.jsxs)(n.ol,{start:"6",children:["\n",(0,l.jsxs)(n.li,{children:["In the Google Drive loader component, in the ",(0,l.jsx)(n.strong,{children:"Document ID"})," field, paste the document URL."]}),"\n",(0,l.jsxs)(n.li,{children:["To view the translated document, open the ",(0,l.jsx)(n.strong,{children:"Playground"}),"."]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},17886:(e,n,o)=>{o.d(n,{A:()=>i});o(96540);var t=o(64058),l=o(74848);function i({name:e,...n}){const o=t[e];return o?(0,l.jsx)(o,{...n}):null}},25474:(e,n,o)=>{o.d(n,{A:()=>t});const t=o.p+"assets/images/create-oauth-client-id-57b94aad2bf2859ae9011f6f2a0d52d3.gif"},28453:(e,n,o)=>{o.d(n,{R:()=>s,x:()=>r});var t=o(96540);const l={},i=t.createContext(l);function s(e){const n=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:s(e.components),t.createElement(i.Provider,{value:n},e.children)}},65195:(e,n,o)=>{o.d(n,{A:()=>m});var t=o(96540),l=o(6342);function i(e){const n=e.map(e=>({...e,parentIndex:-1,children:[]})),o=Array(7).fill(-1);n.forEach((e,n)=>{const t=o.slice(2,e.level);e.parentIndex=Math.max(...t),o[e.level]=n});const t=[];return n.forEach(e=>{const{parentIndex:o,...l}=e;o>=0?n[o].children.push(l):t.push(l)}),t}function s({toc:e,minHeadingLevel:n,maxHeadingLevel:o}){return e.flatMap(e=>{const t=s({toc:e.children,minHeadingLevel:n,maxHeadingLevel:o});return function(e){return e.level>=n&&e.level<=o}(e)?[{...e,children:t}]:t})}function r(e){const n=e.getBoundingClientRect();return n.top===n.bottom?r(e.parentNode):n}function a(e,{anchorTopOffset:n}){const o=e.find(e=>r(e).top>=n);if(o){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight},[n]),e}function d(e){const n=(0,t.useRef)(void 0),o=c();(0,t.useEffect)(()=>{if(!e)return()=>{};const{linkClassName:t,linkActiveClassName:l,minHeadingLevel:i,maxHeadingLevel:s}=e;function r(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(t),r=function({minHeadingLevel:e,maxHeadingLevel:n}){const o=[];for(let t=e;t<=n;t+=1)o.push(`h${t}.anchor`);return Array.from(document.querySelectorAll(o.join()))}({minHeadingLevel:i,maxHeadingLevel:s}),c=a(r,{anchorTopOffset:o.current}),d=e.find(e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e));e.forEach(e=>{!function(e,o){o?(n.current&&n.current!==e&&n.current.classList.remove(l),e.classList.add(l),n.current=e):e.classList.remove(l)}(e,e===d)})}return document.addEventListener("scroll",r),document.addEventListener("resize",r),r(),()=>{document.removeEventListener("scroll",r),document.removeEventListener("resize",r)}},[e,o])}var h=o(28774),u=o(74848);function g({toc:e,className:n,linkClassName:o,isChild:t}){return e.length?(0,u.jsx)("ul",{className:t?void 0:n,children:e.map(e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(h.A,{to:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(g,{isChild:!0,toc:e.children,className:n,linkClassName:o})]},e.id))}):null}const p=t.memo(g);function m({toc:e,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:a,maxHeadingLevel:c,...h}){const g=(0,l.p)(),m=a??g.tableOfContents.minHeadingLevel,f=c??g.tableOfContents.maxHeadingLevel,x=function({toc:e,minHeadingLevel:n,maxHeadingLevel:o}){return(0,t.useMemo)(()=>s({toc:i(e),minHeadingLevel:n,maxHeadingLevel:o}),[e,n,o])}({toc:e,minHeadingLevel:m,maxHeadingLevel:f});return d((0,t.useMemo)(()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:m,maxHeadingLevel:f}},[o,r,m,f])),(0,u.jsx)(p,{toc:x,className:n,linkClassName:o,...h})}}}]); \ No newline at end of file diff --git a/assets/js/main.8a426651.js b/assets/js/main.8a426651.js deleted file mode 100644 index 55da504516..0000000000 --- a/assets/js/main.8a426651.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.8a426651.js.LICENSE.txt */ -(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8792],{205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540);const o=n(38193).A.canUseDOM?r.useLayoutEffect:r.useEffect},641:(e,t,n)=>{"use strict";n.r(t)},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},1189:(e,t,n)=>{"use strict";var r=Array.prototype.slice,o=n(1093),a=Object.keys,i=a?function(e){return a(e)}:n(28875),l=Object.keys;i.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?l(r.call(e)):l(e)})}else Object.keys=i;return Object.keys||i},e.exports=i},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},2833:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s{"use strict";n.d(t,{C:()=>r});const r="default"},3918:(e,t,n)=>{"use strict";var r=n(65606);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;te.length)&&(n=e.length),e.substring(n-t.length,n)===t}var w="",x="",k="",S="",E={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function _(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach(function(t){n[t]=e[t]}),Object.defineProperty(n,"message",{value:e.message}),n}function j(e){return b(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function O(e,t,n){var o="",a="",i=0,l="",s=!1,c=j(e),u=c.split("\n"),d=j(t).split("\n"),p=0,f="";if("strictEqual"===n&&"object"===h(e)&&"object"===h(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===u.length&&1===d.length&&u[0]!==d[0]){var m=u[0].length+d[0].length;if(m<=10){if(!("object"===h(e)&&null!==e||"object"===h(t)&&null!==t||0===e&&0===t))return"".concat(E[n],"\n\n")+"".concat(u[0]," !== ").concat(d[0],"\n")}else if("strictEqualObject"!==n){if(m<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;u[0][p]===d[0][p];)p++;p>2&&(f="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",p),"^"),p=0)}}}for(var g=u[u.length-1],b=d[d.length-1];g===b&&(p++<2?l="\n ".concat(g).concat(l):o=g,u.pop(),d.pop(),0!==u.length&&0!==d.length);)g=u[u.length-1],b=d[d.length-1];var y=Math.max(u.length,d.length);if(0===y){var _=c.split("\n");if(_.length>30)for(_[26]="".concat(w,"...").concat(S);_.length>27;)_.pop();return"".concat(E.notIdentical,"\n\n").concat(_.join("\n"),"\n")}p>3&&(l="\n".concat(w,"...").concat(S).concat(l),s=!0),""!==o&&(l="\n ".concat(o).concat(l),o="");var O=0,A=E[n]+"\n".concat(x,"+ actual").concat(S," ").concat(k,"- expected").concat(S),C=" ".concat(w,"...").concat(S," Lines skipped");for(p=0;p1&&p>2&&(P>4?(a+="\n".concat(w,"...").concat(S),s=!0):P>3&&(a+="\n ".concat(d[p-2]),O++),a+="\n ".concat(d[p-1]),O++),i=p,o+="\n".concat(k,"-").concat(S," ").concat(d[p]),O++;else if(d.length1&&p>2&&(P>4?(a+="\n".concat(w,"...").concat(S),s=!0):P>3&&(a+="\n ".concat(u[p-2]),O++),a+="\n ".concat(u[p-1]),O++),i=p,a+="\n".concat(x,"+").concat(S," ").concat(u[p]),O++;else{var T=d[p],I=u[p],R=I!==T&&(!v(I,",")||I.slice(0,-1)!==T);R&&v(T,",")&&T.slice(0,-1)===I&&(R=!1,I+=","),R?(P>1&&p>2&&(P>4?(a+="\n".concat(w,"...").concat(S),s=!0):P>3&&(a+="\n ".concat(u[p-2]),O++),a+="\n ".concat(u[p-1]),O++),i=p,a+="\n".concat(x,"+").concat(S," ").concat(I),o+="\n".concat(k,"-").concat(S," ").concat(T),O+=2):(a+=o,o="",1!==P&&0!==p||(a+="\n ".concat(I),O++))}if(O>20&&p30)for(f[26]="".concat(w,"...").concat(S);f.length>27;)f.pop();t=1===f.length?p.call(this,"".concat(d," ").concat(f[0])):p.call(this,"".concat(d,"\n\n").concat(f.join("\n"),"\n"))}else{var m=j(i),g="",b=E[o];"notDeepEqual"===o||"notEqual"===o?(m="".concat(E[o],"\n\n").concat(m)).length>1024&&(m="".concat(m.slice(0,1021),"...")):(g="".concat(j(l)),m.length>512&&(m="".concat(m.slice(0,509),"...")),g.length>512&&(g="".concat(g.slice(0,509),"...")),"deepEqual"===o||"equal"===o?m="".concat(b,"\n\n").concat(m,"\n\nshould equal\n\n"):g=" ".concat(o," ").concat(g)),t=p.call(this,"".concat(m).concat(g))}return Error.stackTraceLimit=s,t.generatedMessage=!n,Object.defineProperty(u(t),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),t.code="ERR_ASSERTION",t.actual=i,t.expected=l,t.operator=o,Error.captureStackTrace&&Error.captureStackTrace(u(t),a),t.stack,t.name="AssertionError",c(t)}return i=v,(s=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(e,t){return b(this,a(a({},t),{},{customInspect:!1,depth:0}))}}])&&l(i.prototype,s),d&&l(i,d),Object.defineProperty(i,"prototype",{writable:!1}),v}(d(Error),b.custom);e.exports=A},4146:(e,t,n)=>{"use strict";var r=n(44363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),g=s(n),h=0;h{"use strict";n.d(t,{A:()=>r});const r={title:"Langflow Documentation",tagline:"Langflow is a low-code app builder for RAG and multi-agent AI applications.",favicon:"img/favicon.ico",url:"https://docs.langflow.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",onBrokenAnchors:"warn",organizationName:"langflow-ai",projectName:"langflow",trailingSlash:!1,staticDirectories:["static"],i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},headTags:[{tagName:"link",attributes:{rel:"stylesheet",href:"https://fonts.googleapis.com/css2?family=Sora:wght@550;600&display=swap"}},{tagName:"script",attributes:{},innerHTML:'!function(){window.semaphore=window.semaphore||[],window.ketch=function(){window.semaphore.push(arguments)};var e=document.createElement("script");e.type="text/javascript",e.src="https://global.ketchcdn.com/web/v3/config/datastax/langflow_org_web/boot.js",e.defer=e.async=!0,document.getElementsByTagName("head")[0].appendChild(e)}();'},{tagName:"script",attributes:{defer:"true"},innerHTML:"\n ;(function () {\n const onKetchConsentGtagTrack = (consent) => {\n if (window.gtag &&\n consent.purposes &&\n 'analytics' in consent.purposes &&\n 'targeted_advertising' in consent.purposes\n ) {\n const analyticsString = consent.purposes.analytics === true ? 'granted' : 'denied'\n const targetedAdsString = consent.purposes.targeted_advertising === true ? 'granted' : 'denied'\n const gtagObject = {\n analytics_storage: analyticsString,\n ad_personalization: targetedAdsString,\n ad_storage: targetedAdsString,\n ad_user_data: targetedAdsString,\n }\n window.gtag('consent', 'update', gtagObject)\n }\n }\n if (window.ketch) {\n window.ketch('on', 'consent', onKetchConsentGtagTrack)\n }\n })()\n "}],presets:[["docusaurus-preset-openapi",{api:{path:"openapi.json",routeBasePath:"/api"},docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/langflow/langflow/docs/sidebars.js",sidebarCollapsed:!0,beforeDefaultRemarkPlugins:[[null,{theme:"github-dark",showCopyButton:!0,lineNumbers:!0}]]},sitemap:{lastmod:"datetime",changefreq:null,priority:null,ignorePatterns:["/preferences"]},gtag:{trackingID:"G-SLQFLQ3KPT"},blog:!1,theme:{customCss:["/home/runner/work/langflow/langflow/docs/node_modules/@code-hike/mdx/dist/index.css","/home/runner/work/langflow/langflow/docs/css/custom.css","/home/runner/work/langflow/langflow/docs/css/docu-notion-styles.css","/home/runner/work/langflow/langflow/docs/css/gifplayer.css"]}}]],plugins:[["docusaurus-node-polyfills",{excludeAliases:["console"]}],"docusaurus-plugin-image-zoom",["./src/plugins/segment",{segmentPublicWriteKey:"60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG",allowedInDev:!0}],["./src/plugins/scroll-tracking",{segmentPublicWriteKey:"60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG",allowedInDev:!0,selectors:[{selector:"h1, h2, h3, h4, h5, h6",eventName:"Docs.langflow.org - Heading Viewed",properties:{element_type:"heading"}},{selector:".ch-codeblock",eventName:"Docs.langflow.org - Codeblock Viewed",properties:{element_type:"code",language:"helper:codeLanguage"}}]}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/",from:["/whats-new-a-new-chapter-langflow","/\ud83d\udc4b Welcome-to-Langflow","/getting-started-welcome-to-langflow","/guides-new-to-llms"]},{to:"/get-started-installation",from:["/getting-started-installation","/getting-started-common-installation-issues"]},{to:"/get-started-quickstart",from:"/getting-started-quickstart"},{to:"concepts-overview",from:["/workspace-overview","/365085a8-a90a-43f9-a779-f8769ec7eca1","/My-Collection","/workspace","/settings-project-general-settings"]},{to:"/concepts-components",from:["/components","/components-overview"]},{to:"/configuration-global-variables",from:"/settings-global-variables"},{to:"/concepts-playground",from:["/workspace-playground","/workspace-logs","/guides-chat-memory"]},{to:"/concepts-objects",from:["/guides-data-message","/configuration-objects"]},{to:"/blog-writer",from:["/starter-projects-blog-writer","/tutorials-blog-writer"]},{to:"/memory-chatbot",from:["/starter-projects-memory-chatbot","/tutorials-memory-chatbot"]},{to:"/document-qa",from:["/starter-projects-document-qa","/tutorials-document-qa"]},{to:"/simple-agent",from:["/math-agent","/starter-projects-simple-agent","/starter-projects-math-agent","/tutorials-math-agent"]},{to:"/sequential-agent",from:["/starter-projects-sequential-agent","/tutorials-sequential-agent"]},{to:"/travel-planning-agent",from:["/starter-projects-travel-planning-agent","/tutorials-travel-planning-agent","/starter-projects-dynamic-agent/"]},{to:"/components-vector-stores",from:"/components-rag"},{to:"/configuration-authentication",from:["/configuration-security-best-practices","/Configuration/configuration-security-best-practices"]},{to:"/environment-variables",from:["/configuration-auto-saving","/Configuration/configuration-auto-saving","/configuration-backend-only","/Configuration/configuration-backend-only"]},{to:"/concepts-publish",from:["/concepts-api","/workspace-api"]},{to:"/components-custom-components",from:"/components/custom"},{to:"/components-bundle-components",from:"/components-loaders"},{to:"/mcp-server",from:"/integrations-mcp"},{to:"/integrations-nvidia-g-assist",from:"/integrations-nvidia-system-assist"},{to:"/deployment-kubernetes-dev",from:"/deployment-kubernetes"},{to:"/basic-prompting",from:"/starter-projects-basic-prompting"},{to:"/vector-store-rag",from:"/starter-projects-vector-store-rag"},{to:"/contributing-github-issues",from:"/contributing-github-discussions"},{to:"/agents",from:"/agents-tool-calling-agent-component"},{to:"/concepts-publish",from:"/embedded-chat-widget"}]}],null],themeConfig:{navbar:{hideOnScroll:!0,logo:{alt:"Langflow",src:"img/lf-docs-light.svg",srcDark:"img/lf-docs-dark.svg"},items:[{position:"right",href:"https://github.com/langflow-ai/langflow",className:"header-github-link",target:"_blank",rel:null,"data-event":"Docs.langflow.org - Social Clicked","data-platform":"github"},{position:"right",href:"https://twitter.com/langflow_ai",className:"header-twitter-link",target:"_blank",rel:null,"data-event":"Docs.langflow.org - Social Clicked","data-platform":"x"},{position:"right",href:"https://discord.gg/EqksyE2EX9",className:"header-discord-link",target:"_blank",rel:null,"data-event":"Docs.langflow.org - Social Clicked","data-platform":"discord"}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},zoom:{selector:".markdown :not(a) > img:not(.no-zoom)",background:{light:"rgba(240, 240, 240, 0.9)"},config:{}},docs:{sidebar:{hideable:!1,autoCollapseCategories:!1},versionPersistence:"localStorage"},footer:{logo:{alt:"Langflow",src:"img/lf-docs-light.svg",srcDark:"img/lf-docs-dark.svg",width:160,height:40},links:[{title:null,items:[{html:''}]}],style:"light"},algolia:{appId:"UZK6BDPCVY",apiKey:"adbd7686dceb1cd510d5ce20d04bf74c",indexName:"langflow",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{v4:{removeLegacyPostBuildHeadAttribute:!1,useCssCascadeLayers:!1},experimental_faster:{swcJsLoader:!1,swcJsMinimizer:!1,swcHtmlMinimizer:!1,lightningCssMinimizer:!1,mdxCrossCompilerCache:!1,rspackBundler:!1,rspackPersistentCache:!1,ssgWorkerThreads:!1},experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onDuplicateRoutes:"warn",customFields:{},themes:[],scripts:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(96540);var r=n(80545),o=n(74848);function a(e){return(0,o.jsx)(r.mg,{...e})}},5338:(e,t,n)=>{"use strict";var r=n(40961);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},5556:(e,t,n)=>{e.exports=n(2694)()},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,l(function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout(function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout(function(){n.remove(),t()},u)},u)):setTimeout(t,u)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout(function(){n.status&&(n.trickle(),e())},r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always(function(){0===--t?(e=0,n.done()):n.set((e-t)/e)}),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,t){return t.toUpperCase()})}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(96540),o=n(74848);const a=r.createContext(!1);function i({children:e}){const[t,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{n(!0)},[]),(0,o.jsx)(a.Provider,{value:t,children:e})}},6188:e=>{"use strict";e.exports=Math.max},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(44586);function o(){return(0,r.A)().siteConfig.themeConfig}},6549:e=>{"use strict";e.exports=Object.getOwnPropertyDescriptor},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},7176:(e,t,n)=>{"use strict";var r,o=n(73126),a=n(75795);try{r=[].__proto__===Array.prototype}catch(c){if(!c||"object"!=typeof c||!("code"in c)||"ERR_PROTO_ACCESS"!==c.code)throw c}var i=!!r&&a&&a(Object.prototype,"__proto__"),l=Object,s=l.getPrototypeOf;e.exports=i&&"function"==typeof i.get?o([i.get]):"function"==typeof s&&function(e){return s(null==e?e:l(e))}},7463:(e,t,n)=>{"use strict";var r=n(96763);function o(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(!(0>>1;rl(s,n))cl(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[i]=n,r=i);else{if(!(cl(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function l(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var s=performance;t.unstable_now=function(){return s.now()}}else{var c=Date,u=c.now();t.unstable_now=function(){return c.now()-u}}var d=[],p=[],f=1,m=null,g=3,h=!1,b=!1,y=!1,v="function"==typeof setTimeout?setTimeout:null,w="function"==typeof clearTimeout?clearTimeout:null,x="undefined"!=typeof setImmediate?setImmediate:null;function k(e){for(var t=a(p);null!==t;){if(null===t.callback)i(p);else{if(!(t.startTime<=e))break;i(p),t.sortIndex=t.expirationTime,o(d,t)}t=a(p)}}function S(e){if(y=!1,k(e),!b)if(null!==a(d))b=!0,D(E);else{var t=a(p);null!==t&&L(S,t.startTime-e)}}function E(e,n){b=!1,y&&(y=!1,w(A),A=-1),h=!0;var r=g;try{for(k(n),m=a(d);null!==m&&(!(m.expirationTime>n)||e&&!T());){var o=m.callback;if("function"==typeof o){m.callback=null,g=m.priorityLevel;var l=o(m.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?m.callback=l:m===a(d)&&i(d),k(n)}else i(d);m=a(d)}if(null!==m)var s=!0;else{var c=a(p);null!==c&&L(S,c.startTime-n),s=!1}return s}finally{m=null,g=r,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var _,j=!1,O=null,A=-1,C=5,P=-1;function T(){return!(t.unstable_now()-Pe||125i?(e.sortIndex=r,o(p,e),null===a(d)&&e===a(p)&&(y?(w(A),A=-1):y=!0,L(S,r-i))):(e.sortIndex=l,o(d,e),b||h||(b=!0,D(E))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=g;return function(){var n=g;g=t;try{return e.apply(this,arguments)}finally{g=n}}}},8505:(e,t,n)=>{var r=n(64634);e.exports=g,e.exports.parse=a,e.exports.compile=function(e,t){return c(a(e,t),t)},e.exports.tokensToFunction=c,e.exports.tokensToRegExp=m;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,l=0,s="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var u=n[0],p=n[1],f=n.index;if(s+=e.slice(l,f),l=f+u.length,p)s+=p[1];else{var m=e[l],g=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var x=null!=g&&null!=m&&m!==g,k="+"===v||"*"===v,S="?"===v||"*"===v,E=g||c,_=b||y,j=g||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:h||a++,prefix:g||"",delimiter:E,optional:S,repeat:k,partial:x,asterisk:!!w,pattern:_?d(_):w?".*":i(E,j)})}}return l-1?"[^"+u(e)+"]+?":u(t)+"|(?:(?!"+u(t)+")[^"+u(e)+"])+?"}function l(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function s(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function c(e,t){for(var n=new Array(e.length),o=0;o{var r=n(96763);const o=n(6969),a=n(98380),i=new Set;function l(e){void 0===e?e=Object.keys(o.languages).filter(e=>"meta"!=e):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];a(o,e,t).load(e=>{if(!(e in o.languages))return void(l.silent||r.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(63157).resolve(t)],delete Prism.languages[e],n(63157)(t),i.add(e)})}l.silent=!1,e.exports=l},9394:(e,t,n)=>{"use strict";var r=n(89211);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},9957:(e,t,n)=>{"use strict";var r=Function.prototype.call,o=Object.prototype.hasOwnProperty,a=n(66743);e.exports=a.call(r,o)},10076:e=>{"use strict";e.exports=Function.prototype.call},10119:(e,t,n)=>{"use strict";n.r(t)},10487:(e,t,n)=>{"use strict";var r=n(96897),o=n(30655),a=n(73126),i=n(12205);e.exports=function(e){var t=a(arguments),n=e.length-(arguments.length-1);return r(t,1+(n>0?n:0),!0)},o?o(e.exports,"apply",{value:i}):e.exports.apply=i},11002:e=>{"use strict";e.exports=Function.prototype.apply},11514:(e,t,n)=>{"use strict";var r=n(38403);e.exports=function(){return Object.assign?function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),n={},r=0;r{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},11818:(e,t,n)=>{"use strict";n.r(t)},12205:(e,t,n)=>{"use strict";var r=n(66743),o=n(11002),a=n(13144);e.exports=function(){return a(r,o,arguments)}},12838:(e,t,n)=>{"use strict";n.d(t,{A:()=>qt});var r=n(96540),o=n(18215),a=n(67489),i=n(45500),l=n(56347),s=n(21312),c=n(75062),u=n(74848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)(e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)},[]);return(0,c.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&p(e.current)}),{containerRef:e,onClick:n}}const m=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(17559),b=n(14090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(g,{className:y.skipToContent})}var w=n(6342),x=n(65041);function k({width:e=21,height:t=21,color:n="currentColor",strokeWidth:r=1.2,className:o,...a}){return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...a,children:(0,u.jsx)("g",{stroke:n,strokeWidth:r,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(k,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function j(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.A)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const O={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,x.M)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:i}=e;return(0,u.jsxs)("div",{className:(0,o.A)(h.G.announcementBar.container,O.announcementBar),style:{backgroundColor:r,color:a},role:"banner",children:[i&&(0,u.jsx)("div",{className:O.announcementBarPlaceholder}),(0,u.jsx)(j,{className:O.announcementBarContent}),i&&(0,u.jsx)(E,{onClick:n,className:O.announcementBarClose})]})}var C=n(22069),P=n(23104);var T=n(89532),I=n(75600);const R=r.createContext(null);function N({children:e}){const t=function(){const e=(0,C.M)(),t=(0,I.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,T.ZC)(a);return(0,r.useEffect)(()=>{a&&!i&&o(!0)},[a,i]),(0,r.useEffect)(()=>{a?e.shown||o(!0):o(!1)},[e.shown,a]),(0,r.useMemo)(()=>[n,o],[n])}();return(0,u.jsx)(R.Provider,{value:t,children:e})}function D(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function L(){const e=(0,r.useContext)(R);if(!e)throw new T.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)(()=>n(!1),[n]),a=(0,I.YL)();return(0,r.useMemo)(()=>({shown:t,hide:o,content:D(a)}),[o,a,t])}function M(e){return parseInt(r.version.split(".")[0],10)<19?{inert:e?"":void 0}:{inert:e}}function F({children:e,inert:t}){return(0,u.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...M(t),children:e})}function z({header:e,primaryMenu:t,secondaryMenu:n}){const{shown:r}=L();return(0,u.jsxs)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":r}),children:[(0,u.jsx)(F,{inert:r,children:t}),(0,u.jsx)(F,{inert:!r,children:n})]})]})}var B=n(95293),U=n(92303);function q(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}function H(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}const G="toggle_vylO",V="toggleButton_gllP",W="toggleIcon_g3eP",K="systemToggleIcon_QzmC",Q="lightToggleIcon_pyhR",Y="darkToggleIcon_wfgR",J="toggleButtonDisabled_aARS";function Z(e){switch(e){case null:return(0,s.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw new Error(`unexpected color mode ${e}`)}}function X(e){return(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:Z(e)})}function ee(){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(q,{"aria-hidden":!0,className:(0,o.A)(W,Q)}),(0,u.jsx)($,{"aria-hidden":!0,className:(0,o.A)(W,Y)}),(0,u.jsx)(H,{"aria-hidden":!0,className:(0,o.A)(W,K)})]})}function te({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:r,onChange:a}){const i=(0,U.A)();return(0,u.jsx)("div",{className:(0,o.A)(G,e),children:(0,u.jsx)("button",{className:(0,o.A)("clean-btn",V,!i&&J,t),type:"button",onClick:()=>a(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw new Error(`unexpected color mode ${e}`)}}(r,n)),disabled:!i,title:Z(r),"aria-label":X(r),children:(0,u.jsx)(ee,{})})})}const ne=r.memo(te),re={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function oe({className:e}){const t=(0,w.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:r}=(0,w.p)().colorMode,{colorModeChoice:o,setColorMode:a}=(0,B.G)();return n?null:(0,u.jsx)(ne,{className:e,buttonClassName:"dark"===t?re.darkNavbarColorModeToggle:void 0,respectPrefersColorScheme:r,value:o,onChange:a})}var ae=n(23465);function ie(){return(0,u.jsx)(ae.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function le(){const e=(0,C.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(k,{color:"var(--ifm-color-emphasis-600)"})})}function se(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(ie,{}),(0,u.jsx)(oe,{className:"margin-right--md"}),(0,u.jsx)(le,{})]})}var ce=n(28774),ue=n(86025),de=n(16654),pe=n(91252),fe=n(43186);function me({activeBasePath:e,activeBaseRegex:t,to:n,href:r,label:o,html:a,isDropdownLink:i,prependBaseUrlToHref:l,...s}){const c=(0,ue.Ay)(n),d=(0,ue.Ay)(e),p=(0,ue.Ay)(r,{forcePrependBaseUrl:!0}),f=o&&r&&!(0,de.A)(r),m=a?{dangerouslySetInnerHTML:{__html:a}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,f&&(0,u.jsx)(fe.A,{...i&&{width:12,height:12}})]})};return r?(0,u.jsx)(ce.A,{href:l?p:r,...s,...m}):(0,u.jsx)(ce.A,{to:c,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?(0,pe.G)(t,n.pathname):n.pathname.startsWith(d)},...s,...m})}function ge({className:e,isDropdownItem:t,...n}){return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(me,{className:(0,o.A)("menu__link",e),...n})})}function he({className:e,isDropdownItem:t=!1,...n}){const r=(0,u.jsx)(me,{className:(0,o.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,u.jsx)("li",{children:r}):r}function be({mobile:e=!1,position:t,...n}){const r=e?ge:he;return(0,u.jsx)(r,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var ye=n(41422),ve=n(99169),we=n(44586);const xe="dropdownNavbarItemMobile_J0Sd";function ke(e,t){return e.some(e=>function(e,t){return!!(0,ve.ys)(e.to,t)||!!(0,pe.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t))}function Se({collapsed:e,onClick:t}){return(0,u.jsx)("button",{"aria-label":e?(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,s.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function Ee({items:e,className:t,position:n,onClick:a,...i}){const s=function(){const{siteConfig:{baseUrl:e}}=(0,we.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),c=(0,ve.ys)(i.to,s),d=ke(e,s),{collapsed:p,toggleCollapsed:f}=function({active:e}){const{collapsed:t,toggleCollapsed:n,setCollapsed:o}=(0,ye.u)({initialState:()=>!e});return(0,r.useEffect)(()=>{e&&o(!1)},[e,o]),{collapsed:t,toggleCollapsed:n}}({active:c||d}),m=i.to?void 0:"#";return(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":c}),children:[(0,u.jsx)(me,{role:"button",className:(0,o.A)(xe,"menu__link menu__link--sublist",t),href:m,...i,onClick:e=>{"#"===m&&e.preventDefault(),f()},children:i.children??i.label}),(0,u.jsx)(Se,{collapsed:p,onClick:e=>{e.preventDefault(),f()}})]}),(0,u.jsx)(ye.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:e.map((e,t)=>(0,r.createElement)(Xe,{mobile:!0,isDropdownItem:!0,onClick:a,activeClassName:"menu__link--active",...e,key:t}))})]})}function _e({items:e,position:t,className:n,onClick:a,...i}){const l=(0,r.useRef)(null),[s,c]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}},[l]),(0,u.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":s}),children:[(0,u.jsx)(me,{"aria-haspopup":"true","aria-expanded":s,role:"button",href:i.to?void 0:"#",className:(0,o.A)("navbar__link",n),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),c(!s))},children:i.children??i.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,r.createElement)(Xe,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function je({mobile:e=!1,...t}){const n=e?Ee:_e;return(0,u.jsx)(n,{...t})}var Oe=n(32131);function Ae({width:e=20,height:t=20,...n}){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const Ce="iconLanguage_nlXk";var Pe=n(40961),Te=n(55600),Ie=n(5260),Re=n(24255),Ne=n(51062),De=n(2967),Le=n(82565);function Me(){return[`language:${(0,we.A)().i18n.currentLocale}`,function(){const e=(0,Le.v)();return[De.C,...e]}().map(e=>`docusaurus_tag:${e}`)]}const Fe={button:{buttonText:(0,s.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,s.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,s.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,s.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,s.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,s.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,s.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,s.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,s.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,s.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,s.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,s.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,s.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,s.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,s.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,s.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,s.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,s.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,s.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,s.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,s.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,s.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,s.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,s.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,s.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,s.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,s.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let ze=null;function Be(){return ze?Promise.resolve():Promise.all([n.e(8158).then(n.bind(n,48158)),Promise.all([n.e(1869),n.e(8913)]).then(n.bind(n,58913)),Promise.all([n.e(1869),n.e(8035)]).then(n.bind(n,90416))]).then(([{DocSearchModal:e}])=>{ze=e})}function Ue({hit:e,children:t}){return(0,u.jsx)(ce.A,{to:e.url,children:t})}function qe({state:e,onClose:t}){const n=(0,Re.w)();return(0,u.jsx)(ce.A,{to:n(e.query),onClick:t,children:(0,u.jsx)(s.A,{id:"theme.SearchBar.seeAll",values:{count:e.context.nbHits},children:"See all {count} results"})})}function $e({externalUrlRegex:e,...t}){const n=function({externalUrlRegex:e}){const t=(0,l.W6)(),[n]=(0,r.useState)(()=>({navigate(n){(0,pe.G)(e,n.itemUrl)?window.location.href=n.itemUrl:t.push(n.itemUrl)}}));return n}({externalUrlRegex:e}),o=function({contextualSearch:e,...t}){const n=Me(),r=t.searchParameters?.facetFilters??[],o=e?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(n,r):r;return{...t.searchParameters,facetFilters:o}}({...t}),a=function(e){const t=(0,Ne.C)(),[n]=(0,r.useState)(()=>n=>e.transformItems?e.transformItems(n):n.map(e=>({...e,url:t(e.url)})));return n}(t),i=function(){const{siteMetadata:{docusaurusVersion:e}}=(0,we.A)();return(0,r.useCallback)(t=>(t.addAlgoliaAgent("docusaurus",e),t),[e])}(),s=(0,r.useRef)(null),c=(0,r.useRef)(null),[d,p]=(0,r.useState)(!1),[f,m]=(0,r.useState)(void 0),g=(0,r.useCallback)(()=>{if(!s.current){const e=document.createElement("div");s.current=e,document.body.insertBefore(e,document.body.firstChild)}},[]),h=(0,r.useCallback)(()=>{g(),Be().then(()=>p(!0))},[g]),b=(0,r.useCallback)(()=>{p(!1),c.current?.focus(),m(void 0)},[]),y=(0,r.useCallback)(e=>{"f"===e.key&&(e.metaKey||e.ctrlKey)||(e.preventDefault(),m(e.key),h())},[h]),v=function({closeModal:e}){return(0,r.useMemo)(()=>({state:t})=>(0,u.jsx)(qe,{state:t,onClose:e}),[e])}({closeModal:b});return(0,Te.E8)({isOpen:d,onOpen:h,onClose:b,onInput:y,searchButtonRef:c}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ie.A,{children:(0,u.jsx)("link",{rel:"preconnect",href:`https://${t.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,u.jsx)(Te.Bc,{onTouchStart:Be,onFocus:Be,onMouseOver:Be,onClick:h,ref:c,translations:t.translations?.button??Fe.button}),d&&ze&&s.current&&(0,Pe.createPortal)((0,u.jsx)(ze,{onClose:b,initialScrollY:window.scrollY,initialQuery:f,navigator:n,transformItems:a,hitComponent:Ue,transformSearchClient:i,...t.searchPagePath&&{resultsFooterComponent:v},placeholder:Fe.placeholder,...t,translations:t.translations?.modal??Fe.modal,searchParameters:o}),s.current)]})}function He(){const{siteConfig:e}=(0,we.A)();return(0,u.jsx)($e,{...e.themeConfig.algolia})}const Ge={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Ve({children:e,className:t}){return(0,u.jsx)("div",{className:(0,o.A)(t,Ge.navbarSearchContainer),children:e})}var We=n(44070),Ke=n(26972);var Qe=n(53886);function Ye({docsPluginId:e,configs:t}){return function(e,t){if(t){const n=new Map(e.map(e=>[e.name,e])),r=(t,r)=>{const o=n.get(t);if(!o)throw new Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config.\nAvailable version names:\n- ${e.map(e=>`${e.name}`).join("\n- ")}`);return{version:o,label:r?.label??o.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}return e.map(e=>({version:e,label:e.label}))}((0,We.jh)(e),t)}function Je(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find(t=>t.id===e.mainDocId)}(e)}const Ze={default:be,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:r="",...o}){const{i18n:{currentLocale:a,locales:i,localeConfigs:c}}=(0,we.A)(),d=(0,Oe.o)(),{search:p,hash:f}=(0,l.zy)(),m=[...t,...i.map(t=>{const n=`${`pathname://${d.createUrl({locale:t,fullyQualified:!1})}`}${p}${f}${r}`;return{label:c[t].label,lang:c[t].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:t===a?e?"menu__link--active":"dropdown__link--active":""}}),...n],g=e?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[a].label;return(0,u.jsx)(je,{...o,mobile:e,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ae,{className:Ce}),g]}),items:m})},search:function({mobile:e,className:t}){return e?null:(0,u.jsx)(Ve,{className:t,children:(0,u.jsx)(He,{})})},dropdown:je,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:r=!1}){const a=r?"li":"div";return(0,u.jsx)(a,{className:(0,o.A)({navbar__item:!n&&!r,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...r}){const{activeDoc:o}=(0,We.zK)(n),a=(0,Ke.QB)(e,n),i=o?.path===a?.path;return null===a||a.unlisted&&!i?null:(0,u.jsx)(be,{exact:!0,...r,isActive:()=>i||!!o?.sidebar&&o.sidebar===a.sidebar,label:t??a.id,to:a.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...r}){const{activeDoc:o}=(0,We.zK)(n),a=(0,Ke.fW)(e,n).link;if(!a)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,u.jsx)(be,{exact:!0,...r,isActive:()=>o?.sidebar===e,label:t??a.label,to:a.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...r}){const o=(0,Ke.Vd)(n)[0],a=e??o.label,i=t??(e=>e.docs.find(t=>t.id===e.mainDocId))(o).path;return(0,u.jsx)(be,{...r,label:a,to:i})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:r,dropdownItemsAfter:o,versions:a,...i}){const{search:c,hash:d}=(0,l.zy)(),p=(0,We.zK)(t),{savePreferredVersionName:f}=(0,Qe.g1)(t),m=Ye({docsPluginId:t,configs:a}),g=function({docsPluginId:e,versionItems:t}){return(0,Ke.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:m}),h=[...r,...m.map(function({version:e,label:t}){return{label:t,to:`${Je(e,p).path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>f(e.name)}}),...o],b=e&&h.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=e&&h.length>1?void 0:Je(g.version,p).path;return h.length<=1?(0,u.jsx)(be,{...i,mobile:e,label:b,to:y,isActive:n?()=>!1:void 0}):(0,u.jsx)(je,{...i,mobile:e,label:b,to:y,items:h,isActive:n?()=>!1:void 0})}};function Xe({type:e,...t}){const n=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(e,t),r=Ze[n];if(!r)throw new Error(`No NavbarItem component found for type "${e}".`);return(0,u.jsx)(r,{...t})}function et(){const e=(0,C.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,r.createElement)(Xe,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function tt(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function nt(){const e=0===(0,w.p)().navbar.items.length,t=L();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(tt,{onClick:()=>t.hide()}),t.content]})}function rt(){const e=(0,C.M)();return function(e=!0){(0,r.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender?(0,u.jsx)(z,{header:(0,u.jsx)(se,{}),primaryMenu:(0,u.jsx)(et,{}),secondaryMenu:(0,u.jsx)(nt,{})}):null}const ot={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function at(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function it({children:e}){const{navbar:{hideOnScroll:t,style:n}}=(0,w.p)(),a=(0,C.M)(),{navbarRef:i,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)(e=>{null!==e&&(a.current=e.getBoundingClientRect().height)},[]);return(0,P.Mq)(({scrollY:t},r)=>{if(!e)return;if(t=i?n(!1):t+s{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,u.jsxs)("nav",{ref:i,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)(h.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&[ot.navbarHideable,!l&&ot.navbarHidden],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":a.shown}),children:[e,(0,u.jsx)(at,{onClick:a.toggle}),(0,u.jsx)(rt,{})]})}var lt=n(70440);const st={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function ct(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function ut({error:e}){const t=(0,lt.rA)(e).map(e=>e.message).join("\n\nCause:\n");return(0,u.jsx)("p",{className:st.errorBoundaryError,children:t})}class dt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const pt="right";function ft({width:e=30,height:t=30,className:n,...r}){return(0,u.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...r,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function mt(){const{toggle:e,shown:t}=(0,C.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(ft,{})})}const gt={colorModeToggle:"colorModeToggle_DEke"};function ht({items:e}){return(0,u.jsx)(u.Fragment,{children:e.map((e,t)=>(0,u.jsx)(dt,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(Xe,{...e})},t))})}function bt({left:e,right:t}){return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,u.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function yt(){const e=(0,C.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??pt)}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,u.jsx)(bt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(mt,{}),(0,u.jsx)(ie,{}),(0,u.jsx)(ht,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ht,{items:r}),(0,u.jsx)(oe,{className:gt.colorModeToggle}),!o&&(0,u.jsx)(Ve,{children:(0,u.jsx)(He,{})})]})})}function vt(){return(0,u.jsx)(it,{children:(0,u.jsx)(yt,{})})}function wt({item:e}){const{to:t,href:n,label:r,prependBaseUrlToHref:a,className:i,...l}=e,s=(0,ue.Ay)(t),c=(0,ue.Ay)(n,{forcePrependBaseUrl:!0});return(0,u.jsxs)(ce.A,{className:(0,o.A)("footer__link-item",i),...n?{href:a?c:n}:{to:s},...l,children:[r,n&&!(0,de.A)(n)&&(0,u.jsx)(fe.A,{})]})}function xt({item:e}){return e.html?(0,u.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(wt,{item:e})},e.href??e.to)}function kt({column:e}){return(0,u.jsxs)("div",{className:(0,o.A)(h.G.layout.footer.column,"col footer__col",e.className),children:[(0,u.jsx)("div",{className:"footer__title",children:e.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,u.jsx)(xt,{item:e},t))})]})}function St({columns:e}){return(0,u.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,u.jsx)(kt,{column:e},t))})}function Et(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function _t({item:e}){return e.html?(0,u.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,u.jsx)(wt,{item:e})}function jt({links:e}){return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(_t,{item:t}),e.length!==n+1&&(0,u.jsx)(Et,{})]},n))})})}function Ot({links:e}){return function(e){return"title"in e[0]}(e)?(0,u.jsx)(St,{columns:e}):(0,u.jsx)(jt,{links:e})}var At=n(21122);const Ct="footerLogoLink_BH7S";function Pt({logo:e}){const{withBaseUrl:t}=(0,ue.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,u.jsx)(At.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function Tt({logo:e}){return e.href?(0,u.jsx)(ce.A,{href:e.href,className:Ct,target:e.target,children:(0,u.jsx)(Pt,{logo:e})}):(0,u.jsx)(Pt,{logo:e})}function It({copyright:e}){return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function Rt({style:e,links:t,logo:n,copyright:r}){return(0,u.jsx)("footer",{className:(0,o.A)(h.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[t,(n||r)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:n}),r]})]})})}function Nt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(Rt,{style:o,links:n&&n.length>0&&(0,u.jsx)(Ot,{links:n}),logo:r&&(0,u.jsx)(Tt,{logo:r}),copyright:t&&(0,u.jsx)(It,{copyright:t})})}const Dt=r.memo(Nt);function Lt(e){const[t,n]=(0,r.useState)(!1),o=r.useRef(null);(0,Te.E8)({isOpen:!1,onOpen:()=>{o.current?.click()}});const a=(0,u.jsxs)("div",{ref:o,onClick:()=>{document.querySelector(".DocSearch-Button")?.click()},onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),style:{position:"fixed",right:"20px",bottom:"20px",zIndex:100,display:"flex",alignItems:"center",gap:"10px",cursor:"pointer"},children:[t&&(0,u.jsx)("div",{style:{backgroundColor:"#f6f6f6",padding:"8px 16px",borderRadius:"20px",color:"#000",fontSize:"14px",boxShadow:"0 2px 4px rgba(0,0,0,0.1)"},children:"Hi, how can I help you?"}),(0,u.jsx)("div",{style:{backgroundColor:"#f6f6f6",borderRadius:"50%",width:"48px",height:"48px",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 2px 4px rgba(0,0,0,0.1)"},children:(0,u.jsx)("img",{src:"/img/langflow-icon-black-transparent.svg",style:{width:"40px"},alt:"Search"})})]});return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Dt,{...e}),a]})}const Mt=(0,T.fM)([B.a,x.o,P.Tv,Qe.VQ,i.Jx,function({children:e}){return(0,u.jsx)(I.y_,{children:(0,u.jsx)(C.e,{children:(0,u.jsx)(N,{children:e})})})}]);function Ft({children:e}){return(0,u.jsx)(Mt,{children:e})}var zt=n(51107);function Bt({error:e,tryAgain:t}){return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(zt.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(ct,{onClick:t,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(ut,{error:e})})]})})})}const Ut={mainWrapper:"mainWrapper_z2l0"};function qt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.J)(),(0,u.jsxs)(Ft,{children:[(0,u.jsx)(i.be,{title:l,description:s}),(0,u.jsx)(v,{}),(0,u.jsx)(A,{}),(0,u.jsx)(vt,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(h.G.layout.main.container,h.G.wrapper.main,Ut.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(Bt,{...e}),children:t})}),!n&&(0,u.jsx)(Lt,{})]})}},12983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=o,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,c=n,c?o(s):a(s));var s,c;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a;const r=n(42566);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,r.removeSuffix)(e,"/")}},13003:e=>{"use strict";e.exports=function(e){return e!=e}},13144:(e,t,n)=>{"use strict";var r=n(66743),o=n(11002),a=n(10076),i=n(47119);e.exports=i||r.call(a,o)},14035:(e,t,n)=>{"use strict";var r,o=n(36556),a=n(49092)(),i=n(9957),l=n(75795);if(a){var s=o("RegExp.prototype.exec"),c={},u=function(){throw c},d={toString:u,valueOf:u};"symbol"==typeof Symbol.toPrimitive&&(d[Symbol.toPrimitive]=u),r=function(e){if(!e||"object"!=typeof e)return!1;var t=l(e,"lastIndex");if(!(t&&i(t,"value")))return!1;try{s(e,d)}catch(n){return n===c}}}else{var p=o("Object.prototype.toString");r=function(e){return!(!e||"object"!=typeof e&&"function"!=typeof e)&&"[object RegExp]"===p(e)}}e.exports=r},14090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(96540);const o="navigation-with-keyboard";function a(){(0,r.useEffect)(()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}},[])}},14563:(e,t,n)=>{"use strict";n.d(t,{AL:()=>u,s$:()=>d});var r=n(96540),o=n(44586),a=n(36803),i=n(89532),l=n(74848);const s=({title:e,siteTitle:t,titleDelimiter:n})=>{const r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},c=(0,r.createContext)(null);function u({formatter:e,children:t}){return(0,l.jsx)(c.Provider,{value:e,children:t})}function d(){const e=function(){const e=(0,r.useContext)(c);if(null===e)throw new i.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:l}=t,{plugin:u}=(0,a.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:l,plugin:u,defaultFormatter:s})}}},14875:(e,t,n)=>{"use strict";n.r(t),n.d(t,{onRouteDidUpdate:()=>d});var r=n(38193),o=n(96763);let a=!1;const i={codeLanguage:e=>{const t=e.querySelector("[data-ch-lang]")||e.closest("[data-ch-lang]");if(t){const e=t.getAttribute("data-ch-lang");if(e&&"text"!==e)return e}const n=e.closest(".theme-code-block")||e.parentElement?.closest('[class*="code"]')||e.parentElement;if(n){const e=n.querySelector('li[role="tab"][aria-selected="true"]');if(e){const t=e.textContent?.trim();if(t&&"text"!==t.toLowerCase())return t.toLowerCase()}}if(n){const e=n.querySelector('li[role="tab"]');if(e){const t=e.textContent?.trim();if(t&&"text"!==t.toLowerCase())return t.toLowerCase()}}return null}},l={selectors:[{selector:"h1, h2, h3, h4, h5, h6",eventName:"Scroll - Heading Viewed",properties:{element_type:"heading"}}]};function s(e,t={}){const n={};return Object.keys(t).forEach(r=>{const a=t[r];if("function"==typeof a)try{const t=a(e);null!=t&&(n[r]=t)}catch(l){o.warn(`Scroll tracking: Error executing function for property "${r}":`,l)}else if("string"==typeof a&&a.startsWith("helper:")){const t=a.replace("helper:","");if(i[t])try{const o=i[t](e);null!=o&&(n[r]=o)}catch(l){o.warn(`Scroll tracking: Error executing helper "${t}" for property "${r}":`,l)}else o.warn(`Scroll tracking: Unknown helper function "${t}"`)}else n[r]=a}),n.page_path=window.location.pathname,n.page_url=window.location.href,n.scroll_depth=function(){const e=window.pageYOffset||document.documentElement.scrollTop,t=Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight)-window.innerHeight;return t<=0?100:Math.min(100,Math.round(e/t*100))}(),e.tagName&&(n.tag_name=e.tagName.toLowerCase()),e.id&&(n.element_id=e.id),e.className&&(n.element_class=e.className),e.tagName&&e.tagName.match(/^H[1-6]$/)&&(n.heading_level=e.tagName.toLowerCase(),n.heading_text=e.textContent?.trim().substring(0,200),n.text=e.textContent?.trim().substring(0,200)),n}function c(e={}){if(!r.A.canUseDOM||a)return;const t=window.__SCROLL_TRACKING_CONFIG__||{},n=function(e){if(!window.IntersectionObserver)return void o.warn("IntersectionObserver not supported, element tracking disabled");const t=new IntersectionObserver(t=>{t.forEach(t=>{if(t.isIntersecting){const n=e.selectors.find(e=>t.target.matches(e.selector));if(n){const e=window.innerWidth<=768,r=t.target.matches(".ch-codeblock");setTimeout(()=>{const e=s(t.target,n.properties||{});window.analytics&&"function"==typeof window.analytics.track&&window.analytics.track(n.eventName,e)},e&&r?100:0)}}})},{threshold:.1,rootMargin:"0px"}),n=e=>{document.querySelectorAll(e.selector).forEach(e=>{e._scrollTrackingObserved||(t.observe(e),e._scrollTrackingObserved=!0)})};if(e.selectors.forEach(n),setTimeout(()=>{e.selectors.forEach(n)},1e3),window.MutationObserver){const n=new MutationObserver(n=>{n.forEach(n=>{n.addedNodes.forEach(n=>{n.nodeType===Node.ELEMENT_NODE&&e.selectors.forEach(e=>{n.matches&&n.matches(e.selector)&&(n._scrollTrackingObserved||(t.observe(n),n._scrollTrackingObserved=!0)),(n.querySelectorAll?n.querySelectorAll(e.selector):[]).forEach(e=>{e._scrollTrackingObserved||(t.observe(e),e._scrollTrackingObserved=!0)})})})})});n.observe(document.body,{childList:!0,subtree:!0}),t._mutationObserver=n}return t}({...l,...t,...e});a=!0,window._scrollTrackingObserver=n}function u(){window._scrollTrackingObserver&&(window._scrollTrackingObserver._mutationObserver&&window._scrollTrackingObserver._mutationObserver.disconnect(),window._scrollTrackingObserver.disconnect(),window._scrollTrackingObserver=null),document.querySelectorAll("[data-scroll-tracked]").forEach(e=>{delete e._scrollTrackingObserved,e.removeAttribute("data-scroll-tracked")}),a=!1}if(r.A.canUseDOM){const e=()=>{setTimeout(()=>{c()},250)};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):"interactive"===document.readyState?setTimeout(e,100):e(),window.addEventListener("popstate",()=>{u(),setTimeout(()=>c(),100)})}function d({location:e,previousLocation:t}){r.A.canUseDOM&&t&&e.pathname!==t.pathname&&(u(),setTimeout(()=>c(),100))}},15066:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;to});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,h={};function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,g(w,b.prototype),w.isPureReactComponent=!0;var x=Array.isArray,k=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var o,a={},i=null,l=null;if(null!=t)for(o in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,o)&&!E.hasOwnProperty(o)&&(a[o]=t[o]);var s=arguments.length-2;if(1===s)a.children=r;else if(1{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},17065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},17559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},18215:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;to});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=18692},19700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];g&&y.push.apply(y,i([g])),y.push(h),b&&y.push.apply(y,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(Prism)},20311:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,l],u=0;(s=new Error(t.replace(/%s/g,function(){return c[u++]}))).name="Invariant Violation"}throw s.framesToPop=1,s}}},21020:(e,t,n)=>{"use strict";var r=n(96540),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,a={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:a,_owner:l.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},21122:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(96540),o=n(15066),a=n(92303),i=n(95293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(74848);function c({className:e,children:t}){const n=(0,a.A)(),{colorMode:c}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{const a=t({theme:n,className:(0,o.A)(e,l.themedComponent,l[`themedComponent--${n}`])});return(0,s.jsx)(r.Fragment,{children:a},n)})})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,s.jsx)(c,{className:n,children:({theme:e,className:n})=>(0,s.jsx)("img",{src:t[e],alt:r,className:n,...o})})}},21312:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>c});var r=n(96540),o=n(74848);function a(e,t){const n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,r.isValidElement)(e))?n.map((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(22654),l=n(96763);function s({id:e,message:t}){if(void 0===e&&void 0===t)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function c({message:e,id:t},n){return a(s({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw l.warn("Illegal children",e),new Error("The Docusaurus component only accept simple string values");const r=s({message:e,id:t});return(0,o.jsx)(o.Fragment,{children:a(r,n)})}},21798:(e,t,n)=>{"use strict";n.r(t)},22067:(e,t,n)=>{"use strict";var r=n(96540),o=n(5338),a=n(80545),i=n(54625),l=n(4784),s=n(38193);const c=[n(31911),n(10119),n(26134),n(76294),n(641),n(21798),n(68665),n(11818),n(73796),n(29492),n(88135),n(14875)];var u=n(35947),d=n(56347),p=n(22831),f=n(74848);function m({children:e}){return(0,f.jsx)(f.Fragment,{children:e})}var g=n(14563);const h=e=>e.defaultFormatter(e);function b({children:e}){return(0,f.jsx)(g.AL,{formatter:h,children:e})}function y({children:e}){return(0,f.jsx)(b,{children:e})}var v=n(5260),w=n(44586),x=n(86025),k=n(6342),S=n(45500),E=n(32131),_=n(14090),j=n(2967),O=n(70440),A=n(41463);function C(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,w.A)(),r=(0,E.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,f.jsxs)(v.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter(e=>o!==e.htmlLang).map(e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`))]})}function P({permalink:e}){const{siteConfig:{url:t}}=(0,w.A)(),n=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,w.A)(),{pathname:r}=(0,d.zy)();return e+(0,O.Ks)((0,x.Ay)(r),{trailingSlash:n,baseUrl:t})}(),r=e?`${t}${e}`:n;return(0,f.jsxs)(v.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:r}),(0,f.jsx)("link",{rel:"canonical",href:r})]})}function T(){const{i18n:{currentLocale:e}}=(0,w.A)(),{metadata:t,image:n}=(0,k.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(v.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:_.w})]}),n&&(0,f.jsx)(S.be,{image:n}),(0,f.jsx)(P,{}),(0,f.jsx)(C,{}),(0,f.jsx)(A.A,{tag:j.C,locale:e}),(0,f.jsx)(v.A,{children:t.map((e,t)=>(0,f.jsx)("meta",{...e},t))})]})}const I=new Map;var R=n(6125),N=n(26988),D=n(205);function L(e,...t){const n=c.map(n=>{const r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}const M=function({children:e,location:t,previousLocation:n}){return(0,D.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;const n=e.pathname===t.pathname,r=e.hash===t.hash,o=e.search===t.search;if(n&&r&&!o)return;const{hash:a}=e;if(a){const e=decodeURIComponent(a.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),L("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function F(e){const t=Array.from(new Set([e,decodeURI(e)])).map(e=>(0,p.u)(u.A,e)).flat();return Promise.all(t.map(e=>e.route.component.preload?.()))}var z=n(96763);class B extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?L("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=L("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),F(n.pathname).then(()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})}).catch(e=>{z.warn(e),window.location.reload()}),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(M,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.qh,{location:t,render:()=>e})})}}const U=B,q="__docusaurus-base-url-issue-banner-suggestion-container";function $(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/!0===e.exact))return I.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return I.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,f.jsx)(U,{location:e,children:Y})}function Z(){return(0,f.jsx)(W.A,{children:(0,f.jsx)(N.l,{children:(0,f.jsxs)(R.x,{children:[(0,f.jsx)(m,{children:(0,f.jsxs)(y,{children:[(0,f.jsx)(V,{}),(0,f.jsx)(T,{}),(0,f.jsx)(G,{}),(0,f.jsx)(J,{})]})}),(0,f.jsx)(Q,{})]})})})}var X=n(84054);const ee=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)})}:function(e){return new Promise((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})};var te=n(86921);const ne=new Set,re=new Set,oe=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ae={prefetch:e=>{if(!(e=>!oe()&&!re.has(e)&&!ne.has(e))(e))return!1;ne.add(e);const t=(0,p.u)(u.A,e).flatMap(e=>{return t=e.route.path,Object.entries(X).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,te.A)(e)));var t});return Promise.all(t.map(e=>{const t=n.gca(e);return t&&!t.includes("undefined")?ee(t).catch(()=>{}):Promise.resolve()}))},preload:e=>!!(e=>!oe()&&!re.has(e))(e)&&(re.add(e),F(e))},ie=Object.freeze(ae);var le=n(96763);function se({children:e}){return"hash"===l.A.future.experimental_router?(0,f.jsx)(i.I9,{children:e}):(0,f.jsx)(i.Kd,{children:e})}const ce=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=ie;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(a.vd,{children:(0,f.jsx)(se,{children:(0,f.jsx)(Z,{})})}),n=(e,t)=>{le.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(ce)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const r=o.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};F(window.location.pathname).then(()=>{(0,r.startTransition)(i)})}},22069:(e,t,n)=>{"use strict";n.d(t,{M:()=>m,e:()=>f});var r=n(96540),o=n(75600),a=n(24581),i=n(57485),l=n(6342),s=n(89532),c=n(74848);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,l.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1),c=(0,r.useCallback)(()=>{s(e=>!e)},[]);return(0,r.useEffect)(()=>{"desktop"===t&&s(!1)},[t]),(0,r.useMemo)(()=>({disabled:e,shouldRender:n,toggle:c,shown:i}),[e,n,c,i])}function p({handler:e}){return(0,i.$Z)(e),null}function f({children:e}){const t=d();return(0,c.jsxs)(c.Fragment,{children:[t.shown&&(0,c.jsx)(p,{handler:()=>(t.toggle(),!1)}),(0,c.jsx)(u.Provider,{value:t,children:e})]})}function m(){const e=r.useContext(u);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},22551:(e,t,n)=>{"use strict";var r=n(96763),o=n(96540),a=n(69982);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n