zenml-nightly 0.84.0.dev20250729__py3-none-any.whl → 0.84.1.dev20250731__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zenml/VERSION +1 -1
- zenml/client.py +6 -1
- zenml/constants.py +28 -2
- zenml/integrations/gcp/__init__.py +4 -1
- zenml/logging/__init__.py +0 -11
- zenml/logging/step_logging.py +255 -149
- zenml/models/__init__.py +4 -0
- zenml/models/v2/core/service_account.py +87 -1
- zenml/models/v2/core/user.py +20 -6
- zenml/models/v2/misc/external_user.py +4 -1
- zenml/orchestrators/step_launcher.py +2 -4
- zenml/zen_server/auth.py +138 -27
- zenml/zen_server/dashboard/assets/{404-B5cfnwZ1.js → 404-CMbwR10f.js} +1 -1
- zenml/zen_server/dashboard/assets/{@radix-C_LirfyT.js → @radix-B1sy0Lhr.js} +1 -1
- zenml/zen_server/dashboard/assets/{@react-router-BSsrkPOd.js → @react-router-CHjLNlgw.js} +1 -1
- zenml/zen_server/dashboard/assets/{@reactflow-D9hglKLF.js → @reactflow-gbyyU3kq.js} +2 -2
- zenml/zen_server/dashboard/assets/{@tanstack-C0SeHZng.js → @tanstack-Dwlisomv.js} +1 -1
- zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-BpLj419i.js +1 -0
- zenml/zen_server/dashboard/assets/ButtonGroup-DVhzbQxV.js +1 -0
- zenml/zen_server/dashboard/assets/{CodeSnippet-D8iBqOVv.js → CodeSnippet-B7Wd4R8u.js} +1 -1
- zenml/zen_server/dashboard/assets/{CollapsibleCard-D0-pQi1n.js → CollapsibleCard-DSZzbjx5.js} +1 -1
- zenml/zen_server/dashboard/assets/{ComponentBadge-mw2Ja_ON.js → ComponentBadge-MVT08kBV.js} +1 -1
- zenml/zen_server/dashboard/assets/{ComponentIcon-BXgpt-jw.js → ComponentIcon-C9AY8usJ.js} +1 -1
- zenml/zen_server/dashboard/assets/DeleteAlertDialog-CzhTVQaC.js +1 -0
- zenml/zen_server/dashboard/assets/{DialogItem-DeME0oSt.js → DialogItem-DD_7v3UY.js} +1 -1
- zenml/zen_server/dashboard/assets/{DisplayDate-v3KW7oez.js → DisplayDate-57lUNS79.js} +1 -1
- zenml/zen_server/dashboard/assets/{EmptyState-DG0m-CGv.js → EmptyState-BMA34iVR.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-DcVLcrLs.js → Error-Cakgjexo.js} +1 -1
- zenml/zen_server/dashboard/assets/{ExecutionStatus-C4tlFnlh.js → ExecutionStatus-CQbWovhV.js} +1 -1
- zenml/zen_server/dashboard/assets/{Helpbox-C-RGHz3S.js → Helpbox-7FZpmsHB.js} +1 -1
- zenml/zen_server/dashboard/assets/{Infobox-DFCWPbMb.js → Infobox-DnduZjNU.js} +1 -1
- zenml/zen_server/dashboard/assets/{LeftSideMenu-Czev0KCA.js → LeftSideMenu-D5UEs4vB.js} +1 -1
- zenml/zen_server/dashboard/assets/{Lock-CRP5J_su.js → Lock-u8WOoTTd.js} +1 -1
- zenml/zen_server/dashboard/assets/NestedCollapsible-0yviIfaA.js +1 -0
- zenml/zen_server/dashboard/assets/{NumberBox-CoQjQYDJ.js → NumberBox-C2Pju4PR.js} +1 -1
- zenml/zen_server/dashboard/assets/{Pagination-CcDD5yHh.js → Pagination-C1sE5Nzn.js} +1 -1
- zenml/zen_server/dashboard/assets/{Partials-DlMzfKgs.js → Partials-DosysQMU.js} +1 -1
- zenml/zen_server/dashboard/assets/{PasswordChecker-BZwoeQIm.js → PasswordChecker-DOPLfvg7.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProCta-CU2ycJDo.js → ProCta-CUkpV3PJ.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderIcon-BMAn9Jld.js → ProviderIcon-aQjTuTRX.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderRadio-D_q9tE3G.js → ProviderRadio-C6pLVNxC.js} +1 -1
- zenml/zen_server/dashboard/assets/RunsBody-CZAiSxYK.js +1 -0
- zenml/zen_server/dashboard/assets/{SearchField-D_0-uAPj.js → SearchField-Byv1PtST.js} +1 -1
- zenml/zen_server/dashboard/assets/{SecretTooltip-BcWMKb9f.js → SecretTooltip-CErfhVgF.js} +1 -1
- zenml/zen_server/dashboard/assets/{SetPassword-CaKVSqAL.js → SetPassword-C4OH-cn1.js} +1 -1
- zenml/zen_server/dashboard/assets/{SheetHeader-7vwlsY_i.js → SheetHeader-Bb3v9rha.js} +1 -1
- zenml/zen_server/dashboard/assets/StackComponentList-D85oab98.js +1 -0
- zenml/zen_server/dashboard/assets/StackList-DSAjbVb5.js +1 -0
- zenml/zen_server/dashboard/assets/Tabs-2uwqXsdL.js +1 -0
- zenml/zen_server/dashboard/assets/Tick-BQ7_xDBl.js +1 -0
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-Da5RndbV.js → UpdatePasswordSchemas-DNkYgzN6.js} +1 -1
- zenml/zen_server/dashboard/assets/{Wizard-8aJzxUjb.js → Wizard-2FIi8JNY.js} +1 -1
- zenml/zen_server/dashboard/assets/WizardFooter-DQEnlDmZ.js +1 -0
- zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-gorNNEaT.js → all-pipeline-runs-query-CdvWtiAY.js} +1 -1
- zenml/zen_server/dashboard/assets/{arrow-left-hcj2H8HY.js → arrow-left-BFB2mgJo.js} +1 -1
- zenml/zen_server/dashboard/assets/{bar-chart-square-check-9siI9icm.js → bar-chart-square-check-_m-oYysN.js} +1 -1
- zenml/zen_server/dashboard/assets/{bulk-delete-B5RTlnD_.js → bulk-delete-wdObjfps.js} +2 -2
- zenml/zen_server/dashboard/assets/{check-D1bHMJkL.js → check-C9Nye5lR.js} +1 -1
- zenml/zen_server/dashboard/assets/{check-circle-mnEgPhPF.js → check-circle-CG6XAdk-.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-down-Z3nUe-0U.js → chevron-down-Bl7WwQAL.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-right-double-CbRQKN4Q.js → chevron-right-double-CbMG1dOM.js} +1 -1
- zenml/zen_server/dashboard/assets/{clock-BMjHXT3f.js → clock-BnPvxp3D.js} +1 -1
- zenml/zen_server/dashboard/assets/{code-browser-DftoiCIg.js → code-browser-CzWvJ4S6.js} +1 -1
- zenml/zen_server/dashboard/assets/configuration-form-BbcNBQTO.js +1 -0
- zenml/zen_server/dashboard/assets/constants-DfvsDtcH.js +1 -0
- zenml/zen_server/dashboard/assets/{create-stack-BruqH_6X.js → create-stack-D4Sf7QpF.js} +1 -1
- zenml/zen_server/dashboard/assets/{credit-card-CH1BHrXY.js → credit-card-DfBA6dBb.js} +1 -1
- zenml/zen_server/dashboard/assets/{dataflow-2-qHjWt7zp.js → dataflow-2-BLkaTH0Q.js} +1 -1
- zenml/zen_server/dashboard/assets/{delete-run-ibBtciMR.js → delete-run-XSre8ru-.js} +1 -1
- zenml/zen_server/dashboard/assets/{expand-full-CD4fFvM-.js → expand-full-C8p_0jQv.js} +1 -1
- zenml/zen_server/dashboard/assets/{eye-CLNgIh_K.js → eye-BXcQevds.js} +1 -1
- zenml/zen_server/dashboard/assets/{file-text-CltVhgwZ.js → file-text-TdPXNd7s.js} +1 -1
- zenml/zen_server/dashboard/assets/form-C1jJgRy1.js +1 -0
- zenml/zen_server/dashboard/assets/{form-schemas-B9XgTS1V.js → form-schemas-BjWDRvGd.js} +1 -1
- zenml/zen_server/dashboard/assets/{help-B0CvBhCm.js → help-CRPfbPTO.js} +1 -1
- zenml/zen_server/dashboard/assets/{icon-hDriJUXY.js → icon--Tp6obFZ.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-mA8kL088.js → index-B4ZeIaPd.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-dCcVgFNl.js → index-BYHxFvoG.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-BQWlHo1Y.js → index-BYzR7YrM.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-BacoJBEQ.js → index-CO6UN3UX.js} +11 -11
- zenml/zen_server/dashboard/assets/{index-B7CRNU8l.js → index-d_QrPL-8.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-BRhKF2z-.js → index-g7wOyc86.js} +1 -1
- zenml/zen_server/dashboard/assets/index-n_sn2ITN.css +1 -0
- zenml/zen_server/dashboard/assets/{index.es-DcVFDpJU.js → index.es-CZMSrR6z.js} +1 -1
- zenml/zen_server/dashboard/assets/{index.esm-COnaHLSh.js → index.esm-SBF9nn_P.js} +1 -1
- zenml/zen_server/dashboard/assets/{info-CyMih3vQ.js → info-CI2szPUG.js} +1 -1
- zenml/zen_server/dashboard/assets/{key-icon-HOx2gazv.js → key-icon-BiV171aI.js} +1 -1
- zenml/zen_server/dashboard/assets/layout-Cyc-V16c.js +1 -0
- zenml/zen_server/dashboard/assets/{layout-C5dgIReC.js → layout-GIiNvS10.js} +1 -1
- zenml/zen_server/dashboard/assets/{login-mutation-CidpsqyH.js → login-mutation-CDgTlQBD.js} +1 -1
- zenml/zen_server/dashboard/assets/{logs-DoLoTEfj.js → logs-lNLbZqHL.js} +1 -1
- zenml/zen_server/dashboard/assets/{mail-C160gvB0.js → mail-DBJRSzyu.js} +1 -1
- zenml/zen_server/dashboard/assets/{message-chat-square-DLz6XmPS.js → message-chat-square-C3CRCQvD.js} +1 -1
- zenml/zen_server/dashboard/assets/{package-BhYXGPxF.js → package-pR4bbXJp.js} +1 -1
- zenml/zen_server/dashboard/assets/page-1DXG7hp8.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BCRXJXC9.js → page-43SWdz4k.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-YdWnx9MX.js → page-AOVMuHDc.js} +1 -1
- zenml/zen_server/dashboard/assets/page-B4QBxV0B.js +22 -0
- zenml/zen_server/dashboard/assets/{page-CvllZMBF.js → page-B8ict_cR.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BDre_qCO.js +1 -0
- zenml/zen_server/dashboard/assets/page-BbsvGfyi.js +18 -0
- zenml/zen_server/dashboard/assets/page-Bi4I23Hs.js +1 -0
- zenml/zen_server/dashboard/assets/page-BnAMyQZb.js +1 -0
- zenml/zen_server/dashboard/assets/{page-D6cvOG8w.js → page-BnZEAhNn.js} +1 -1
- zenml/zen_server/dashboard/assets/page-Bncp08FW.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BTDi81N3.js → page-C4Jnp1qP.js} +1 -1
- zenml/zen_server/dashboard/assets/page-C7Z2sDHE.js +1 -0
- zenml/zen_server/dashboard/assets/page-C8t9qLdV.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BByayrO-.js → page-C9IsnFid.js} +2 -2
- zenml/zen_server/dashboard/assets/page-CEHZzQ1Q.js +1 -0
- zenml/zen_server/dashboard/assets/page-CGtll3Jk.js +1 -0
- zenml/zen_server/dashboard/assets/{page-q41JNDWO.js → page-CKPkbOoE.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DF4FVxxW.js → page-CMvcoaSZ.js} +2 -2
- zenml/zen_server/dashboard/assets/page-CVwTAlzd.js +1 -0
- zenml/zen_server/dashboard/assets/{page-DSZfclXt.js → page-ClqRvz_V.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-7CJ4Wq3O.js → page-CzDjN1wE.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BK59rZvf.js → page-D654xHWd.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DcXrWWWh.js → page-DLrYW-Dn.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DOnAInjC.js +1 -0
- zenml/zen_server/dashboard/assets/{page-Cc8owYXQ.js → page-DQncGJeH.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DQzNmXk3.js +1 -0
- zenml/zen_server/dashboard/assets/{page-FQxi1Otg.js → page-DSn1Jcvs.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DZ5hcS1o.js +1 -0
- zenml/zen_server/dashboard/assets/page-DerIbaqa.js +1 -0
- zenml/zen_server/dashboard/assets/{page-8U20Tu_8.js → page-DgOEl3Bc.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DgldL5UB.js → page-DgSu4pTE.js} +2 -2
- zenml/zen_server/dashboard/assets/page-DgblJuXC.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CY0LPcAJ.js → page-Dpw-xP4q.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DsFXol8x.js +1 -0
- zenml/zen_server/dashboard/assets/page-Du6bFZTS.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CeGBDh1Q.js → page-DznxxpKA.js} +1 -1
- zenml/zen_server/dashboard/assets/page-E9Mx9_rn.js +1 -0
- zenml/zen_server/dashboard/assets/page-HrebZOAM.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BX67x4iL.js → page-O5xnz_nW.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DDWW21kl.js → page-hX7NkNdA.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-BKKcL1Kp.js → persist-B3Hb8HDW.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-DxiyfAax.js → persist-Dkbp9MFP.js} +1 -1
- zenml/zen_server/dashboard/assets/{pipeline-BJ8liDnl.js → pipeline-CDJSAXrb.js} +1 -1
- zenml/zen_server/dashboard/assets/{plus-cI8zD2xh.js → plus-DOrkJCmy.js} +1 -1
- zenml/zen_server/dashboard/assets/primary-role-CjkpP9fL.js +1 -0
- zenml/zen_server/dashboard/assets/{react-error-boundary.esm-DoXxY4pT.js → react-error-boundary.esm-DgOYA0wh.js} +1 -1
- zenml/zen_server/dashboard/assets/{refresh-3EF2R7ja.js → refresh-C8BXS3Fb.js} +1 -1
- zenml/zen_server/dashboard/assets/{resource-tyes-list-B5rkZcbc.js → resource-tyes-list-CugyWUAE.js} +1 -1
- zenml/zen_server/dashboard/assets/{resource-type-tooltip-E97WGqfk.js → resource-type-tooltip-V-zdiLKz.js} +1 -1
- zenml/zen_server/dashboard/assets/{service-B9aVzfAF.js → service-FjqYTmBw.js} +2 -2
- zenml/zen_server/dashboard/assets/{service-connectors-DL2-k_E2.js → service-connectors-nF4-OXB9.js} +1 -1
- zenml/zen_server/dashboard/assets/{sharedSchema-DyUO09BR.js → sharedSchema-Br1JPr8d.js} +1 -1
- zenml/zen_server/dashboard/assets/{slash-circle-D2Lb2FyR.js → slash-circle-B0xMh8q6.js} +1 -1
- zenml/zen_server/dashboard/assets/{stack-detail-query-Bc4QKlWg.js → stack-detail-query-DnyMCdVE.js} +1 -1
- zenml/zen_server/dashboard/assets/{terminal-BObrvDlO.js → terminal-C2tAF2XG.js} +1 -1
- zenml/zen_server/dashboard/assets/{terminal-square-BObrvDlO.js → terminal-square-C2tAF2XG.js} +1 -1
- zenml/zen_server/dashboard/assets/{transform-DFpKTKgF.js → transform-S7omcvTm.js} +1 -1
- zenml/zen_server/dashboard/assets/{trash-HKxXWbSG.js → trash-D9LA4VFD.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-current-user-mutation-DSyUyHVj.js → update-current-user-mutation-B3Dpv3u6.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-server-settings-mutation-CdM-Sdds.js → update-server-settings-mutation-s7tlHN8s.js} +1 -1
- zenml/zen_server/dashboard/assets/{zod-DgEcN9jD.js → zod-D48zuELD.js} +1 -1
- zenml/zen_server/dashboard/index.html +7 -7
- zenml/zen_server/rbac/zenml_cloud_rbac.py +8 -4
- zenml/zen_server/routers/service_accounts_endpoints.py +71 -12
- zenml/zen_stores/base_zen_store.py +0 -19
- zenml/zen_stores/migrations/versions/0.84.1_release.py +23 -0
- zenml/zen_stores/migrations/versions/8d4b9ba22c1f_add_user_avatar.py +39 -0
- zenml/zen_stores/schemas/user_schemas.py +16 -5
- zenml/zen_stores/sql_zen_store.py +5 -1
- {zenml_nightly-0.84.0.dev20250729.dist-info → zenml_nightly-0.84.1.dev20250731.dist-info}/METADATA +1 -1
- {zenml_nightly-0.84.0.dev20250729.dist-info → zenml_nightly-0.84.1.dev20250731.dist-info}/RECORD +169 -167
- zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-druRNuO2.js +0 -1
- zenml/zen_server/dashboard/assets/ButtonGroup-SF2DlzHV.js +0 -1
- zenml/zen_server/dashboard/assets/DeleteAlertDialog-BbyFVnVI.js +0 -1
- zenml/zen_server/dashboard/assets/NestedCollapsible-CN9scBUn.js +0 -1
- zenml/zen_server/dashboard/assets/RunsBody-BToytB8e.js +0 -1
- zenml/zen_server/dashboard/assets/StackComponentList-s7eSfm8o.js +0 -1
- zenml/zen_server/dashboard/assets/StackList-Dt0FrIkM.js +0 -1
- zenml/zen_server/dashboard/assets/Tabs-B27AHUfo.js +0 -1
- zenml/zen_server/dashboard/assets/Tick-DDeDgTuT.js +0 -1
- zenml/zen_server/dashboard/assets/WizardFooter-Bt7_UE14.js +0 -1
- zenml/zen_server/dashboard/assets/configuration-form-Yz8m0QIG.js +0 -1
- zenml/zen_server/dashboard/assets/constants-DeV48DuZ.js +0 -1
- zenml/zen_server/dashboard/assets/form-6aSt3tIl.js +0 -1
- zenml/zen_server/dashboard/assets/index-eggipFZS.css +0 -1
- zenml/zen_server/dashboard/assets/layout-CFLL6-CM.js +0 -1
- zenml/zen_server/dashboard/assets/page-6huxSHEu.js +0 -1
- zenml/zen_server/dashboard/assets/page-BMpXak4U.js +0 -1
- zenml/zen_server/dashboard/assets/page-Bjmcdg64.js +0 -1
- zenml/zen_server/dashboard/assets/page-BsAn8p4m.js +0 -1
- zenml/zen_server/dashboard/assets/page-BwjPRuaY.js +0 -1
- zenml/zen_server/dashboard/assets/page-CDtSVkNc.js +0 -1
- zenml/zen_server/dashboard/assets/page-CEDU0L2T.js +0 -1
- zenml/zen_server/dashboard/assets/page-COJK90rG.js +0 -1
- zenml/zen_server/dashboard/assets/page-C_XMn4GU.js +0 -1
- zenml/zen_server/dashboard/assets/page-Cb3KGsPK.js +0 -22
- zenml/zen_server/dashboard/assets/page-CiGOVsj3.js +0 -1
- zenml/zen_server/dashboard/assets/page-CmLSFMkW.js +0 -1
- zenml/zen_server/dashboard/assets/page-CnfCptXq.js +0 -1
- zenml/zen_server/dashboard/assets/page-CxzglV3-.js +0 -1
- zenml/zen_server/dashboard/assets/page-DVLez4R1.js +0 -1
- zenml/zen_server/dashboard/assets/page-Dg7-H_9i.js +0 -1
- zenml/zen_server/dashboard/assets/page-Dw7XuiSo.js +0 -18
- zenml/zen_server/dashboard/assets/page-XrmOHHg7.js +0 -1
- zenml/zen_server/dashboard/assets/page-oRm7D4TC.js +0 -1
- zenml/zen_server/dashboard/assets/page-x2GXC8sI.js +0 -1
- zenml/zen_server/dashboard/assets/page-z2FXP4GY.js +0 -1
- zenml/zen_server/dashboard/assets/primary-role-CPGHymjN.js +0 -1
- {zenml_nightly-0.84.0.dev20250729.dist-info → zenml_nightly-0.84.1.dev20250731.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.84.0.dev20250729.dist-info → zenml_nightly-0.84.1.dev20250731.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.84.0.dev20250729.dist-info → zenml_nightly-0.84.1.dev20250731.dist-info}/entry_points.txt +0 -0
@@ -1 +1 @@
|
|
1
|
-
import{j as e,r}from"./@radix-
|
1
|
+
import{j as e,r}from"./@radix-B1sy0Lhr.js";import{aH as m,aI as i,B as o,aJ as p,D as x,aN as h,aO as u,k as n,P as f}from"./index-CO6UN3UX.js";import{I as l}from"./Infobox-DnduZjNU.js";import{H as C}from"./Helpbox-7FZpmsHB.js";import{C as g}from"./CodeSnippet-B7Wd4R8u.js";import"./@tanstack-Dwlisomv.js";import"./@react-router-CHjLNlgw.js";import"./@reactflow-gbyyU3kq.js";import"./info-CI2szPUG.js";import"./help-CRPfbPTO.js";const j=[{command:"zenml code-repository register <NAME> --type=<CODE_REPOSITORY_TYPE] [--CODE_REPOSITORY_OPTIONS]",description:"Register a code repository"},{command:"zenml code-repository register <NAME> --type=custom --source=<CODE_REPOSITORY_SOURCE> [--CODE_REPOSITORY_OPTIONS]",description:"Use a custom repository "},{command:"zenml code-repository list",description:"List your registered code repositories"},{command:"zenml code-repository delete <REPOSITORY_NAME_OR_ID>",description:"Delete a code repository that you have previously registered"}];function y(s){return e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-text-sm text-theme-text-secondary",children:s.description}),e.jsx(g,{codeClasses:"whitespace-pre-wrap",wrap:!0,code:s.command})]})}const w=s=>r.createElement("svg",{viewBox:"0 0 24 24",fill:"black",xmlns:"http://www.w3.org/2000/svg",...s},r.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3ZM1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12ZM11.2451 7.43304C11.2546 7.43912 11.264 7.44517 11.2734 7.45121L15.994 10.4859C16.0026 10.4914 16.0112 10.497 16.02 10.5026C16.171 10.5996 16.3361 10.7057 16.4676 10.8083C16.6071 10.917 16.8273 11.1089 16.9571 11.4162C17.1148 11.7894 17.1148 12.2106 16.9571 12.5838C16.8273 12.8911 16.6071 13.083 16.4676 13.1917C16.3361 13.2943 16.171 13.4004 16.02 13.4974C16.0112 13.503 16.0026 13.5086 15.994 13.5141L11.2734 16.5488C11.264 16.5548 11.2545 16.5609 11.2451 16.567C11.0694 16.68 10.8846 16.7988 10.7219 16.8835C10.5582 16.9687 10.2611 17.1066 9.89314 17.0804C9.45914 17.0494 9.05999 16.8314 8.79923 16.4831C8.57813 16.1878 8.5335 15.8633 8.51664 15.6796C8.49989 15.4969 8.49995 15.2772 8.49999 15.0683C8.5 15.057 8.5 15.0458 8.5 15.0347V8.96533C8.5 8.95417 8.5 8.94296 8.49999 8.93173C8.49995 8.72279 8.49989 8.50311 8.51664 8.32042C8.5335 8.13665 8.57813 7.81219 8.79923 7.51687C9.05999 7.16856 9.45914 6.95064 9.89314 6.91964C10.2611 6.89336 10.5582 7.03127 10.7219 7.11647C10.8846 7.20117 11.0694 7.32001 11.2451 7.43304ZM10.5 9.33167V14.6683L14.6507 12L10.5 9.33167Z"}));function a({videoLink:s,isButton:t=!0,buttonText:c,fallbackImage:d}){return e.jsxs(m,{children:[t?e.jsx(i,{asChild:!0,children:e.jsxs(o,{className:"mt-5 h-auto gap-1 px-2 py-1 sm:h-7",size:"md",children:[e.jsx(w,{className:"h-5 w-5 shrink-0 fill-white"}),c??e.jsx(e.Fragment,{children:"Watch the Quickstart Guide (3 min)"})]})}):e.jsx(i,{children:d}),e.jsxs(p,{className:"max-w-[1000px]",children:[e.jsx("div",{className:"flex items-center justify-between border-b border-theme-border-moderate py-2 pl-5 pr-3",children:e.jsx(x,{className:"text-text-lg",children:"Get Started"})}),e.jsx("div",{className:"",children:e.jsx("iframe",{className:"aspect-video w-full overflow-hidden",src:s,allowFullScreen:!0,allow:"fullscreen"})}),e.jsx(h,{children:e.jsx(u,{asChild:!0,children:e.jsx(o,{size:"md",children:"Close"})})})]})]})}const N="/assets/repos-video-D8kpu60k.svg";function v(){return e.jsx(l,{children:e.jsxs("div",{className:"flex w-full flex-wrap items-center gap-x-2 gap-y-0.5 text-text-md",children:[e.jsx("p",{className:"font-semibold",children:"We are creating a new Repositories experience"}),e.jsx("p",{children:"In the meanwhile you can use the CLI to add and manage your repos."})]})})}function R(){const s="https://zenml.portal.trainn.co/share/koVfVubiXfXLXtVcDAqPyg/embed?autoplay=false";return e.jsxs(n,{className:"flex flex-col-reverse items-stretch overflow-hidden md:flex-row",children:[e.jsxs("div",{className:"w-full p-7 md:w-2/3",children:[e.jsx("h2",{className:"text-display-xs font-semibold",children:"Learn More about Repositories"}),e.jsx("p",{className:"mt-2 text-text-lg text-theme-text-secondary",children:"Get started with ZenML Repositories for streamlined pipeline versioning and faster Docker builds."}),e.jsx(a,{videoLink:s,buttonText:"Watch the Starter Guide (2 min)"})]}),e.jsx("div",{className:"flex w-full items-center justify-center bg-primary-50 lg:w-1/3",children:e.jsx(a,{fallbackImage:e.jsx("img",{src:N,alt:"Purple squares with text indicating a starter guide for secrets",className:"h-full w-full"}),videoLink:s,isButton:!1})})]})}function O(){return e.jsxs("section",{className:"space-y-5 pl-8 pr-5",children:[e.jsx(l,{className:"text-text-md",intent:"neutral",children:"Code repositories enable ZenML to keep track of the code version that you use for your pipeline runs. Additionally, running a pipeline which is tracked in a registered code repository can decrease the time it takes Docker to build images for containerized stack components."}),j.map((s,t)=>e.jsx(e.Fragment,{children:y(s)},t)),e.jsx(C,{text:"Check all the commands and find more about Repositories in our Docs",link:"https://docs.zenml.io/how-to/setting-up-a-project-repository/connect-your-git-repository"})]})}function _(){return e.jsxs(n,{className:"space-y-4 p-5",children:[e.jsx("h1",{className:"text-text-xl font-semibold",children:"Repositories"}),e.jsx(v,{}),e.jsx(R,{}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{}),"Administering your Code Repositories"]}),e.jsx(O,{})]})}export{_ as default};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{r as m,j as e}from"./@radix-B1sy0Lhr.js";import{x as S,F as D,G as C,H as w,aH as _,aI as L,B as h,aJ as $,aK as J,D as V,v as K,I as k,Q as g,aN as G,aO as U,aP as A,J as P,K as Y,L as Z,M as W,N as X,O as ee,_ as te,az as se,aA as ne,aB as ae,aD as re,aE as ce,aM as ie,be as oe,r as T,k as I,Y as le,d as F}from"./index-CO6UN3UX.js";import{P as ue}from"./Pagination-C1sE5Nzn.js";import{S as de}from"./SearchField-Byv1PtST.js";import{s as f,c as me,A as xe,u as he,a as R,b as pe}from"./service-FjqYTmBw.js";import{c as b,h as N,b as fe}from"./@tanstack-Dwlisomv.js";import{t as je}from"./zod-D48zuELD.js";import{u as ye,F as ve,a as ge,C as v}from"./index.esm-SBF9nn_P.js";import{S as q}from"./trash-D9LA4VFD.js";import{D as E,a as z}from"./DeleteAlertDialog-CzhTVQaC.js";import{c as Ae,u as Se}from"./bulk-delete-wdObjfps.js";import{L as O}from"./@react-router-CHjLNlgw.js";import{A as De}from"./AlertDialogDropdownItem-BpLj419i.js";import"./@reactflow-gbyyU3kq.js";import"./chevron-right-double-CbMG1dOM.js";import"./index-g7wOyc86.js";import"./CodeSnippet-B7Wd4R8u.js";import"./Infobox-DnduZjNU.js";import"./info-CI2szPUG.js";import"./Tick-BQ7_xDBl.js";import"./check-C9Nye5lR.js";async function Ce({body:t}){const s=D(w.serviceAccounts.all),n=await S(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){const r=await n.json().then(a=>Array.isArray(a.detail)?a.detail[1]:a.detail).catch(()=>"Failed to create service account");throw new C({status:n.status,statusText:n.statusText,message:r})}return n.json()}function we(t){return b({...t,mutationFn:async s=>Ce({body:s})})}function H({isFallback:t}){const[s,n]=m.useState(!1),[r,a]=m.useState(""),i=N(),u=ye({resolver:je(me),defaultValues:{name:"",description:"",createDefault:!1}}),l=!!r&&u.watch("createDefault");function d(){return l?e.jsx(xe,{value:r}):e.jsx(be,{isFallback:t,setApiKeyValue:a,setOpen:n})}return e.jsx(ve,{...u,children:e.jsxs(_,{open:s,onOpenChange:o=>{t&&!o&&i.invalidateQueries({queryKey:f.serviceAccountsKey()}),n(o),a(""),u.reset()},children:[e.jsx(L,{asChild:!0,children:e.jsx(h,{className:"shrink-0",size:"sm",intent:"primary",children:"Add service account"})}),e.jsxs($,{"data-success":l,className:"mx-auto overflow-x-auto transition-none data-[success=true]:max-w-[800px]",children:[e.jsx(J,{children:e.jsx(V,{children:"Add service account"})}),d()]})]})})}function be({setApiKeyValue:t,setOpen:s,isFallback:n}){const{watch:r,handleSubmit:a,control:i,formState:{isValid:u}}=ge(),{toast:l}=K(),d=N(),{mutate:o}=we({onError(c){A(c)&&l({status:"error",emphasis:"subtle",description:c.message,rounded:!0})},async onSuccess(c){if(l({description:"The service account has been added successfully.",status:"success",emphasis:"subtle",rounded:!0}),r("createDefault")){x(c.id);return}d.invalidateQueries({queryKey:f.serviceAccountsKey()}),s(!1)}}),{mutate:p}=he({onSuccess(c){var y;n||d.invalidateQueries({queryKey:f.serviceAccountsKey()}),t(((y=c.body)==null?void 0:y.key)||"")},onError(c){A(c)&&l({status:"error",emphasis:"subtle",description:c.message,rounded:!0})}}),x=c=>{p({serviceAccountId:c,body:{name:"default",description:"Default api key"}})},Q=c=>{o({name:c.name,description:c.description,active:!0})};return e.jsxs(e.Fragment,{children:[e.jsxs("form",{id:"create-secret-form",className:"space-y-5 p-7",onSubmit:a(Q),children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("label",{className:"font-inter text-sm text-left font-medium leading-5",children:"Name:"}),e.jsx(v,{name:"name",control:i,render:({field:c})=>e.jsx(k,{...c,className:"w-full",required:!0,placeholder:"Add name"})})]}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("label",{className:"font-inter text-sm text-left font-medium leading-5",children:"Description:"}),e.jsx(v,{name:"description",control:i,render:({field:c})=>e.jsx(k,{...c,className:"w-full",placeholder:"Add description"})})]}),e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(v,{control:i,name:"createDefault",render:({field:{onChange:c,value:y}})=>e.jsx(g,{checked:y,id:"default-key",onCheckedChange:B=>c(!!B)})}),e.jsx("label",{htmlFor:"default-key",children:"Create a default API Key"})]}),e.jsx("p",{className:"pl-[30px] text-text-xs text-theme-text-secondary",children:"This will include a default API Key for your service account."})]})]}),e.jsxs(G,{className:"gap-[10px]",children:[e.jsx(U,{asChild:!0,children:e.jsx(h,{size:"sm",intent:"secondary",children:"Cancel"})}),e.jsx(h,{intent:"primary",size:"sm",disabled:!u,type:"submit",form:"create-secret-form",children:"Add service account"})]})]})}async function Ne(t){const s=D(w.serviceAccounts.detail(t)),n=await S(s,{method:"DELETE",headers:{"Content-Type":"application/json"}});if(!n.ok){const r=await n.json().then(a=>Array.isArray(a.detail)?a.detail[1]:a.detail).catch(()=>`Failed to delete service account ${t}`);throw new C({status:n.status,statusText:n.statusText,message:r})}return n.json()}function ke(t){return b({...t,mutationFn:async s=>{await Ne(s)}})}const{ContextProvider:Te,useContext:j}=Ae();function M(){const{setRowSelection:t}=j(),{mutateAsync:s}=ke();async function n(r){await s(r)}return Se({deleteFn:n,queryKeyToInvalidate:f.serviceAccountsKey(),setRowSelection:t})}function Fe(){const[t,s]=m.useState(!1),{selectedRowCount:n,selectedRowIDs:r}=j(),{bulkDelete:a}=M();async function i(){await a(r),s(!1)}return e.jsxs(P,{open:t,onOpenChange:s,children:[e.jsx(Y,{asChild:!0,children:e.jsxs(h,{className:"rounded-sharp border-y-0 bg-white",size:"md",emphasis:"subtle",intent:"secondary",children:[e.jsx(q,{className:"h-5 w-5 shrink-0 gap-1 fill-neutral-400"}),"Delete"]})}),e.jsx(E,{title:`Delete Service Account${n>=2?"s":""}`,handleDelete:i,children:e.jsxs(z,{children:[e.jsx("p",{children:"Are you sure?"}),e.jsx("p",{children:"This action cannot be undone."})]})})]})}function Oe(){const{selectedRowCount:t}=j();return e.jsxs("div",{className:"flex items-center divide-x divide-theme-border-moderate overflow-hidden rounded-md border border-theme-border-moderate",children:[e.jsx("div",{className:"bg-primary-25 px-2 py-1 font-semibold text-theme-text-brand",children:`${t} Service Account${t>1?"s":""} selected`}),e.jsx(Fe,{})]})}function Ke({serviceAccountId:t}){const[s,n]=m.useState(!1),[r,a]=m.useState(!1),{bulkDelete:i}=M(),u=m.useRef(null),l=m.useRef(null);function d(){l.current=u.current}async function o(){await i([t]),p(!1)}function p(x){if(x===!1){n(!1),setTimeout(()=>{a(x)},200);return}a(x)}return e.jsxs(Z,{onOpenChange:n,open:s,children:[e.jsx(W,{ref:u,children:e.jsx(X,{className:"h-5 w-5 fill-theme-text-secondary"})}),e.jsx(ee,{hidden:r,onCloseAutoFocus:x=>{l.current&&(l.current.focus(),l.current=null,x.preventDefault())},align:"end",sideOffset:7,children:e.jsx(De,{onSelect:d,open:r,onOpenChange:p,triggerChildren:"Delete",icon:e.jsx(q,{fill:"red"}),children:e.jsx(E,{title:"Delete Service Account",handleDelete:o,children:e.jsxs(z,{children:[e.jsx("p",{children:"Are you sure?"}),e.jsx("p",{children:"This action cannot be undone."})]})})})})]})}async function Pe({body:t,serviceAccountId:s}){const n=D(w.serviceAccounts.detail(s)),r=await S(n,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(r.status===404&&te(),!r.ok){const a=await r.json().then(i=>Array.isArray(i.detail)?i.detail[1]:i.detail).catch(()=>`Failed to update service account ${s}`);throw new C({status:r.status,statusText:r.statusText,message:a})}return r.json()}function Ie(t){return b({...t,mutationFn:async({serviceAccountId:s,body:n})=>Pe({serviceAccountId:s,body:n})})}function Re({isActive:t,serviceAccountId:s}){const{toast:n}=K(),r=N(),[a,i]=m.useState(!1),{mutate:u}=Ie({onError(o){A(o)&&n({status:"error",emphasis:"subtle",description:o.message,rounded:!0})},onSuccess(){r.invalidateQueries({queryKey:f.serviceAccountsKey()})}});function l(o){o?d(o):i(!0)}async function d(o){u({serviceAccountId:s,body:{active:o}})}return e.jsxs(e.Fragment,{children:[e.jsx(P,{open:a,onOpenChange:i,children:e.jsxs(se,{children:[e.jsx(ne,{children:e.jsx(ae,{children:"Deactivate Service Account"})}),e.jsxs("div",{className:"p-5 text-text-md text-theme-text-secondary",children:[e.jsx("p",{children:"Are you sure?"}),e.jsx("p",{children:"You won't be able to use any API keys of this service account to authenticate with the server anymore."})]}),e.jsxs(re,{className:"gap-[10px]",children:[e.jsx(ce,{asChild:!0,children:e.jsx(h,{size:"sm",intent:"secondary",children:"Cancel"})}),e.jsx(h,{onClick:()=>d(!1).then(o=>i(!1)),intent:"primary",type:"button",children:"Deactivate"})]})]})}),e.jsx(ie,{checked:t,onCheckedChange:l})]})}function qe(){return[{id:"select",meta:{width:"1%"},header:({table:t})=>e.jsx(g,{id:"check-all",checked:t.getIsAllRowsSelected(),onCheckedChange:s=>t.toggleAllRowsSelected(s==="indeterminate"?!0:s)}),cell:({row:t})=>e.jsx(g,{id:`check-${t.id}`,checked:t.getIsSelected(),onCheckedChange:t.getToggleSelectedHandler()})},{id:"service-account",header:"Service Account",accessorFn:t=>t.name,cell:({row:t})=>{var s,n;return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(oe,{className:"rounded-sm",size:"sm",serviceAccountName:t.original.name,serviceAccountAvatar:((s=t.original.body)==null?void 0:s.avatar_url)??void 0}),e.jsxs("div",{className:"group/copybutton flex flex-col",children:[e.jsx("div",{className:"flex flex-row items-center space-x-1",children:e.jsx("div",{className:"flex items-center space-x-1",children:e.jsx(O,{className:"text-text-md font-semibold text-theme-text-primary",to:T.settings.service_accounts.detail(t.original.id),children:t.original.name})})}),e.jsx("div",{className:"flex items-center gap-1",children:e.jsx(O,{className:"flex items-center gap-1 text-text-sm text-theme-text-secondary",to:T.settings.service_accounts.detail(t.original.id),children:(n=t.original.metadata)==null?void 0:n.description})})]})]})}},{id:"active",header:"Active",accessorFn:t=>{var s;return(s=t.body)==null?void 0:s.active},cell:({row:t})=>{var s;return e.jsx(Re,{isActive:!!((s=t.original.body)!=null&&s.active),serviceAccountId:t.original.id})}},{id:"actions",meta:{width:"5%"},header:"",cell:({row:t})=>e.jsx("div",{className:"flex items-center justify-end",children:e.jsx(Ke,{serviceAccountId:t.original.id})})}]}function Ee(){return e.jsxs(I,{className:"flex flex-col items-center justify-center space-y-4 p-9",children:[e.jsxs("div",{className:"space-y-2 text-center",children:[e.jsx("p",{className:"text-display-xs font-semibold text-theme-text-primary",children:"There are no service accounts yet."}),e.jsx("p",{className:"text-theme-text-secondary",children:"Create your first one now to automate your processes securely with ZenML."})]}),e.jsx(H,{isFallback:!0})]})}function ze(){const t=R(),{rowSelection:s,setRowSelection:n}=j(),r=m.useMemo(()=>qe(),[]),{data:a}=fe({...pe.serviceAccountList({...t,sort_by:"desc:created",hydrate:!0})});return a&&a.items.length<1&&!t.name?e.jsx(Ee,{}):e.jsxs(e.Fragment,{children:[e.jsx(He,{}),e.jsxs("div",{className:"flex flex-col items-center gap-5",children:[e.jsx("div",{className:"w-full",children:a?e.jsx(le,{getRowId:i=>i.id,rowSelection:s,onRowSelectionChange:n,columns:r,data:a.items}):e.jsx(F,{className:"h-[500px] w-full"})}),a?a.total_pages>1&&e.jsx(ue,{searchParams:t,paginate:a}):e.jsx(F,{className:"h-[36px] w-[300px]"})]})]})}function He(){const t=R(),{selectedRowCount:s}=j();return e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[s?e.jsx(Oe,{}):e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(de,{searchParams:t})}),e.jsx(H,{isFallback:!1})]})}function ot(){return e.jsxs(I,{className:"space-y-4 p-5",children:[e.jsx(Me,{}),e.jsx(Te,{children:e.jsx(ze,{})})]})}function Me(){return e.jsxs("div",{className:"space-y-2",children:[e.jsx("h1",{className:"text-text-xl font-semibold",children:"Service Accounts"}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[e.jsx("p",{className:"text-text-sm text-theme-text-secondary",children:"Configure automated access for background tasks and integrations."}),e.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:"https://docs.zenml.io/how-to/project-setup-and-management/connecting-to-zenml/connect-with-a-service-account",className:"link text-text-sm text-primary-400",children:"Learn More"})]})]})}export{ot as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{r as u,j as e}from"./@radix-
|
1
|
+
import{r as u,j as e}from"./@radix-B1sy0Lhr.js";import{v as g,aM as m,aY as p,aP as j,w as N,aU as b,k as v,d as S}from"./index-CO6UN3UX.js";import{u as k}from"./update-server-settings-mutation-s7tlHN8s.js";import{h as C}from"./@tanstack-Dwlisomv.js";import"./@react-router-CHjLNlgw.js";import"./@reactflow-gbyyU3kq.js";function w({settings:t}){var o,l;const a=u.useId(),n=u.useId(),{toast:r}=g(),i=C(),x=((o=t.body)==null?void 0:o.display_announcements)??!1,h=((l=t.body)==null?void 0:l.display_updates)??!1,{mutate:c,isPending:d}=k({onError:s=>{i.invalidateQueries({queryKey:p()}),j(s)&&r({status:"error",emphasis:"subtle",icon:e.jsx(N,{className:"h-5 w-5 shrink-0 fill-error-700"}),description:s.message,rounded:!0})},onSuccess:()=>{i.invalidateQueries({queryKey:p()}),r({status:"success",emphasis:"subtle",rounded:!0,description:"Settings updated successfully"})}}),f=s=>{c({display_announcements:s})},y=s=>{c({display_updates:s})};return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center gap-5",children:[e.jsx(m,{checked:x,onCheckedChange:f,id:a,disabled:d}),e.jsxs("label",{htmlFor:a,className:"text-text-md",children:[e.jsx("p",{className:"font-semibold",children:"Announcements"}),e.jsx("p",{className:"text-theme-text-secondary",children:"Enable Announcements for important ZenML updates, surveys, and feedback opportunities."})]})]}),e.jsx("hr",{}),e.jsxs("div",{className:"flex items-center gap-5",children:[e.jsx(m,{checked:h,onCheckedChange:y,id:n,disabled:d}),e.jsxs("label",{htmlFor:n,className:"text-text-md",children:[e.jsx("p",{className:"font-semibold",children:"Updates"}),e.jsx("p",{className:"text-theme-text-secondary",children:"Activate Updates to receive the latest ZenML news and feature releases."})]})]})]})}function M(){const{data:t}=b({throwOnError:!0});return e.jsxs(v,{className:"flex flex-col gap-5 p-5",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx("h1",{className:"text-text-xl font-semibold",children:"Notifications"}),e.jsx("p",{className:"text-text-sm text-theme-text-secondary",children:"ZenML comes equipped with default widgets designed to enhance your experience by analyzing usage patterns, gathering your feedback, and ensuring you stay informed about our latest updates and features."})]}),e.jsx("div",{className:"",children:t?e.jsx(w,{settings:t}):e.jsx(S,{className:"h-[250px] w-full"})})]})}export{M as default};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{r as d,j as s}from"./@radix-B1sy0Lhr.js";import{v,aH as F,aI as I,B as x,aS as O,aJ as D,aK as E,D as A,I as h,aT as Q,aN as k,aO as z,w as b,z as t,ay as V,aP as q,u as _,k as B,d as U,A as M,e as H,s as R,f as J}from"./index-CO6UN3UX.js";import{u as P}from"./update-current-user-mutation-B3Dpv3u6.js";import{t as S}from"./zod-D48zuELD.js";import{h as T}from"./@tanstack-Dwlisomv.js";import{u as C}from"./index.esm-SBF9nn_P.js";import{P as L}from"./PasswordChecker-DOPLfvg7.js";import{u as G}from"./UpdatePasswordSchemas-DNkYgzN6.js";import{D as W}from"./DisplayDate-57lUNS79.js";import"./@react-router-CHjLNlgw.js";import"./@reactflow-gbyyU3kq.js";const X=t.object({avatarUrl:t.string().transform(e=>(e==null?void 0:e.trim())??null)});function Y(){const[e,a]=d.useState(!1),n=T(),{toast:c}=v(),m=P({onSuccess:()=>{n.invalidateQueries({queryKey:["current-user"]}),n.invalidateQueries({queryKey:["users"]}),a(!1)},onError:r=>{r instanceof Error&&c({status:"error",emphasis:"subtle",icon:s.jsx(b,{className:"h-5 w-5 shrink-0 fill-error-700"}),description:r.message,rounded:!0})}}),l=C({resolver:S(X),defaultValues:{avatarUrl:""}});function p(r){m.mutate({avatar_url:r.avatarUrl})}function u(r){a(r),l.reset()}return s.jsxs(F,{open:e,onOpenChange:u,children:[s.jsx(I,{asChild:!0,children:s.jsxs(x,{intent:"secondary",size:"md",className:"absolute right-1 top-1 flex h-6 w-6 items-center justify-center bg-theme-surface-primary",children:[s.jsx("span",{className:"sr-only",children:"Edit Avatar"}),s.jsx(O,{className:"h-5 w-5 shrink-0 fill-theme-text-primary"})]})}),s.jsxs(D,{children:[s.jsx(E,{children:s.jsx(A,{children:"Update Avatar"})}),s.jsxs("div",{className:"p-7",children:[s.jsx("form",{id:"image-form",onSubmit:l.handleSubmit(p),children:s.jsxs("label",{className:"space-y-0.5",children:[s.jsx("div",{className:"text-text-sm",children:"Avatar URL"}),s.jsx(h,{placeholder:"https://zenml.io/logo.png",className:"w-full",...l.register("avatarUrl")})]})}),s.jsx(Q,{className:"mt-1 border-none text-text-xs text-theme-text-secondary",children:"This will be profile avatar"})]}),s.jsx(k,{children:s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(z,{asChild:!0,children:s.jsx(x,{intent:"secondary",children:"Cancel"})}),s.jsx(x,{type:"submit",form:"image-form",intent:"primary",disabled:m.isPending||!l.formState.isValid,children:"Update"})]})})]})]})}function Z(){const[e,a]=d.useState(!1);return s.jsxs(F,{onOpenChange:()=>{a(!1)},children:[s.jsx(I,{asChild:!0,children:s.jsx(x,{size:"md",className:"shrink-0",intent:"primary",emphasis:"subtle",children:"Change Password"})}),s.jsxs(D,{children:[s.jsx(E,{children:s.jsx(A,{children:" Update Credentials"})}),e?s.jsx(ss,{}):s.jsx($,{setSuccess:a})]})]})}function $({setSuccess:e}){var f;const a=d.useId(),n=d.useId(),c=d.useId(),{toast:m}=v(),{mutate:l,isPending:p}=P({onSuccess(){e(!0)},onError(o){q(o)&&m({status:"error",emphasis:"subtle",icon:s.jsx(b,{className:"h-5 w-5 shrink-0 fill-error-700"}),description:o.message,rounded:!0})}}),{register:u,handleSubmit:r,watch:w,formState:{isValid:N,errors:y}}=C({resolver:S(G),mode:"onChange",criteriaMode:"all"});function g(o){l({old_password:o.oldPassword,password:o.newPassword})}const j=(f=y.newPassword)==null?void 0:f.types;return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"space-y-5 p-7",children:[s.jsx("form",{id:"update-password-form",onSubmit:r(g),children:s.jsxs("div",{className:"space-y-2",children:[s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("label",{htmlFor:a,className:"text-text-sm",children:"Old Password"}),s.jsx(h,{...u("oldPassword"),type:"password",id:a,className:"w-full"})]}),s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("label",{htmlFor:n,className:"text-text-sm",children:"New Password"}),s.jsx(h,{...u("newPassword"),type:"password",id:n,className:"w-full"})]}),s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("label",{htmlFor:c,className:"text-text-sm",children:"Confirm Password"}),s.jsx(h,{...u("confirmPassword"),type:"password",id:c,className:"w-full"})]})]})}),s.jsx(L,{val:w("newPassword"),errors:j||[]})]}),s.jsxs(k,{className:"gap-[10px]",children:[s.jsx(z,{asChild:!0,children:s.jsx(x,{size:"sm",intent:"secondary",children:"Cancel"})}),s.jsx(x,{disabled:!N||p,form:"update-password-form",size:"sm",children:"Update Password"})]})]})}function ss(){return s.jsxs("div",{className:"space-y-5 p-7 text-center",children:[s.jsx(V,{className:"mx-auto h-[110px] w-[110px] fill-success-500"}),s.jsx("p",{className:"text-text-lg font-semibold text-theme-text-primary",children:"The password was updated successfully!"})]})}const es=t.object({fullName:t.union([t.string(),t.literal("")]),username:t.union([t.string(),t.literal("")]),email:t.union([t.string().email(),t.literal("")])}).refine(e=>e.fullName!==""||e.username!==""||e.email!=="");function as({user:e}){var j,f,o;const a=T(),{toast:n}=v(),c=d.useId(),m=d.useId(),l=d.useId(),{isPending:p,mutate:u}=P({onError(i){q(i)&&n({status:"error",emphasis:"subtle",icon:s.jsx(b,{className:"h-5 w-5 shrink-0 fill-error-700"}),description:i.message,rounded:!0})},onSuccess:()=>{a.invalidateQueries({queryKey:["current-user"]}),a.invalidateQueries({queryKey:["users"]}),w(),n({status:"success",emphasis:"subtle",rounded:!0,description:"User updated successfully"})}}),{register:r,reset:w,handleSubmit:N,formState:{isValid:y}}=C({resolver:S(es),defaultValues:{email:void 0,fullName:void 0,username:void 0}});function g(i){const K={...i.fullName&&{full_name:i.fullName},...i.username&&{name:i.username},...i.email&&{email:i.email}};u(K)}return s.jsxs("div",{className:"w-full max-w-[600px]",children:[s.jsx("form",{onSubmit:N(g),children:s.jsxs("div",{className:"space-y-2",children:[s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("label",{htmlFor:c,className:"text-text-sm",children:"Full Name"}),s.jsx(h,{placeholder:(j=e.body)==null?void 0:j.full_name,...r("fullName"),id:c,className:"w-full"})]}),s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("label",{htmlFor:m,className:"text-text-sm",children:"Username"}),s.jsx(h,{...r("username"),placeholder:e.name,id:m,className:"w-full"})]}),s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("label",{htmlFor:l,className:"text-text-sm",children:"Email"}),s.jsx(h,{placeholder:((f=e.metadata)==null?void 0:f.email)??void 0,...r("email"),id:l,className:"w-full"})]}),s.jsx("div",{className:"flex justify-end",children:s.jsx(x,{disabled:p||!y,size:"md",intent:"primary",children:"Update"})})]})}),s.jsx(Z,{}),s.jsxs("p",{className:"mt-5 text-text-sm text-theme-text-secondary",children:["Created on ",s.jsx(W,{dateString:((o=e.body)==null?void 0:o.created)||""})]})]})}function hs(){var a;const{data:e}=_();return s.jsxs(B,{className:"flex flex-col gap-5 p-5",children:[s.jsx("h1",{className:"text-text-xl font-semibold",children:"Profile"}),s.jsxs("div",{className:"flex justify-between",children:[e?s.jsx(as,{user:e}):s.jsx(U,{className:"h-[350px] w-full"}),e?s.jsxs(M,{size:"xxl",className:"ml-5 h-[140px] w-[140px]",type:"square",children:[s.jsx(H,{src:R(((a=e.body)==null?void 0:a.avatar_url)??void 0)}),s.jsx(J,{className:"text-display-lg",size:"xxl",children:e.name[0]}),s.jsx(Y,{})]}):s.jsx(U,{className:"h-[140px] w-[140px] rounded-rounded"})]})]})}export{hs as default};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{j as e,r as l}from"./@radix-B1sy0Lhr.js";import{c as k,L as S,f as z}from"./@react-router-CHjLNlgw.js";import{S as y}from"./check-circle-CG6XAdk-.js";import{S as L,a as M,c as C,B as m,T as E,r as P,b as V,u as B,d as c,g as Z,A as I,e as G,s as O,f as F,z as d,h as R,i as D,j as H,k as f,l as T,P as w,D as J,m as Q,n as Y,C as K,o as X,p as g,q}from"./index-CO6UN3UX.js";import{S as W}from"./file-text-TdPXNd7s.js";import{S as U}from"./mail-DBJRSzyu.js";import{S as $}from"./chevron-down-Bl7WwQAL.js";import{b as p}from"./@tanstack-Dwlisomv.js";import{p as v}from"./index-BYzR7YrM.js";import{T as N}from"./Tick-BQ7_xDBl.js";import{S as _,M as ee,a as se}from"./index-B4ZeIaPd.js";import{C as j}from"./CodeSnippet-B7Wd4R8u.js";import{H as te}from"./Helpbox-7FZpmsHB.js";import{F as re}from"./icon--Tp6obFZ.js";import{S as ne}from"./SheetHeader-Bb3v9rha.js";import"./@reactflow-gbyyU3kq.js";import"./check-C9Nye5lR.js";import"./help-CRPfbPTO.js";import"./chevron-right-double-CbMG1dOM.js";function ae(){const s=k();return e.jsxs("div",{className:"flex w-full items-center justify-between gap-2 rounded-md border border-success-300 bg-success-50 px-4 py-3 text-success-900",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(y,{className:"size-5 shrink-0 fill-current"}),e.jsx("p",{className:"font-semibold",children:"Great job! You've mastered the ZenML basics."}),e.jsx("p",{className:"text-text-sm",children:"Time to level up with production workflows."})]}),e.jsxs("button",{onClick:()=>s(window.location.pathname),children:[e.jsx("span",{className:"sr-only",children:"Close"}),e.jsx(L,{className:"size-5 fill-current"})]})]})}const ie=[{icon:e.jsx(U,{className:"size-5 shrink-0 fill-warning-500"}),backgroundColor:"bg-warning-50",title:"Send us a message",href:"mailto:cloud@zenml.io"},{icon:e.jsx(W,{className:"size-5 shrink-0 fill-blue-400"}),backgroundColor:"bg-blue-25",title:"Browse our docs",href:"https://docs.zenml.io"},{icon:e.jsx(M,{className:"size-5 shrink-0 fill-primary-400"}),backgroundColor:"bg-primary-25",title:"Read our blog",href:"https://zenml.io/blog"}];function le(){return e.jsxs("section",{className:"space-y-5",children:[e.jsx("h2",{className:"text-text-lg font-semibold",children:"Support Resources"}),e.jsx("ul",{className:"grid grid-cols-2 gap-3 xl:grid-cols-3",children:ie.map((s,t)=>e.jsx("li",{children:e.jsx(oe,{...s})},t))})]})}function oe({icon:s,backgroundColor:t,title:r,href:n}){return e.jsxs("a",{href:n,target:"_blank",rel:"noreferrer noopener",className:"flex items-center gap-3 overflow-hidden rounded-md border border-theme-border-moderate bg-theme-surface-primary p-1 transition-shadow duration-200 hover:shadow-sm",children:[e.jsx("div",{className:C("flex aspect-square size-8 items-center justify-center rounded-md",t),children:s}),e.jsx("div",{className:"space-y-0.5",children:e.jsx("span",{className:"font-semibold",children:r})})]})}const ce=[{title:"ZenCoder",description:"Your own MLOps Engineer",href:"https://github.com/zenml-io/zenml-projects/tree/main/zencoder",tag:"LLM",image:{src:"https://public-flavor-logos.s3.eu-central-1.amazonaws.com/projects/1.jpg",alt:"ZenCoder"}},{title:"Night Watch",description:"AI Database Summaries While You Sleep",href:"https://github.com/zenml-io/zenml-projects/tree/main/nightwatch-ai",tag:"Text Summarization",image:{src:"https://public-flavor-logos.s3.eu-central-1.amazonaws.com/projects/2.jpg",alt:"Night Watch"}},{title:"Magic Photobooth",description:"A personalized AI image generation product that can create your avatars from a selfie.",href:"https://github.com/zenml-io/zenml-projects/tree/main/magic-photobooth",tag:"Image Generation",image:{src:"https://public-flavor-logos.s3.eu-central-1.amazonaws.com/projects/3.jpg",alt:"Magic Photobooth"}},{title:"GameSense",description:"The LLM That Understands Gamers",href:"https://github.com/zenml-io/zenml-projects/tree/main/gamesense",tag:"LLM",image:{src:"https://public-flavor-logos.s3.eu-central-1.amazonaws.com/projects/4.jpg",alt:"GameSense"}}];function de(){return e.jsxs("section",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h2",{className:"text-text-lg font-semibold",children:"Start with a project template"}),e.jsx(m,{className:"bg-theme-surface-primary",intent:"secondary",emphasis:"subtle",asChild:!0,children:e.jsx("a",{target:"_blank",rel:"noreferrer noopener",href:"https://docs.zenml.io/user-guides",children:"See more"})})]}),e.jsx("ul",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-4",children:ce.map((s,t)=>e.jsx("li",{children:e.jsx(me,{...s})},t))})]})}function me({title:s,description:t,href:r,tag:n,image:a}){return e.jsxs("a",{href:r,target:"_blank",rel:"noreferrer noopener",className:"block overflow-hidden rounded-md border border-theme-border-moderate transition-shadow duration-200 hover:shadow-sm",children:[e.jsx("img",{className:"h-[110px] w-full object-cover",src:a.src,alt:a.alt}),e.jsxs("div",{className:"flex h-[150px] flex-col justify-between bg-theme-surface-primary p-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-text-lg font-semibold",children:s}),e.jsx("p",{className:"text-text-sm text-theme-text-secondary",children:t})]}),e.jsx(E,{emphasis:"subtle",rounded:!1,size:"xs",className:"w-fit",color:"purple",children:n})]})]})}const pe=s=>l.createElement("svg",{viewBox:"0 0 24 24",fill:"black",xmlns:"http://www.w3.org/2000/svg",...s},l.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 1C8.55229 1 9 1.44772 9 2V3H15V2C15 1.44772 15.4477 1 16 1C16.5523 1 17 1.44772 17 2V3.00163C17.4755 3.00489 17.891 3.01471 18.2518 3.04419C18.8139 3.09012 19.3306 3.18868 19.816 3.43597C20.5686 3.81947 21.1805 4.43139 21.564 5.18404C21.8113 5.66937 21.9099 6.18608 21.9558 6.74817C22 7.28936 22 7.95372 22 8.75868V17.2413C22 18.0463 22 18.7106 21.9558 19.2518C21.9099 19.8139 21.8113 20.3306 21.564 20.816C21.1805 21.5686 20.5686 22.1805 19.816 22.564C19.3306 22.8113 18.8139 22.9099 18.2518 22.9558C17.7106 23 17.0463 23 16.2413 23H7.75868C6.95372 23 6.28936 23 5.74817 22.9558C5.18608 22.9099 4.66937 22.8113 4.18404 22.564C3.43139 22.1805 2.81947 21.5686 2.43597 20.816C2.18868 20.3306 2.09012 19.8139 2.04419 19.2518C1.99998 18.7106 1.99999 18.0463 2 17.2413V8.7587C1.99999 7.95373 1.99998 7.28937 2.04419 6.74817C2.09012 6.18608 2.18868 5.66937 2.43597 5.18404C2.81947 4.43139 3.43139 3.81947 4.18404 3.43597C4.66937 3.18868 5.18608 3.09012 5.74818 3.04419C6.10898 3.01471 6.52454 3.00489 7 3.00163V2C7 1.44772 7.44772 1 8 1ZM7 5.00176C6.55447 5.00489 6.20463 5.01356 5.91104 5.03755C5.47262 5.07337 5.24842 5.1383 5.09202 5.21799C4.7157 5.40973 4.40973 5.71569 4.21799 6.09202C4.1383 6.24842 4.07337 6.47262 4.03755 6.91104C4.00078 7.36113 4 7.94342 4 8.8V9H20V8.8C20 7.94342 19.9992 7.36113 19.9624 6.91104C19.9266 6.47262 19.8617 6.24842 19.782 6.09202C19.5903 5.7157 19.2843 5.40973 18.908 5.21799C18.7516 5.1383 18.5274 5.07337 18.089 5.03755C17.7954 5.01356 17.4455 5.00489 17 5.00176V6C17 6.55228 16.5523 7 16 7C15.4477 7 15 6.55228 15 6V5H9V6C9 6.55228 8.55229 7 8 7C7.44772 7 7 6.55228 7 6V5.00176ZM20 11H4V17.2C4 18.0566 4.00078 18.6389 4.03755 19.089C4.07337 19.5274 4.1383 19.7516 4.21799 19.908C4.40973 20.2843 4.7157 20.5903 5.09202 20.782C5.24842 20.8617 5.47262 20.9266 5.91104 20.9624C6.36113 20.9992 6.94342 21 7.8 21H16.2C17.0566 21 17.6389 20.9992 18.089 20.9624C18.5274 20.9266 18.7516 20.8617 18.908 20.782C19.2843 20.5903 19.5903 20.2843 19.782 19.908C19.8617 19.7516 19.9266 19.5274 19.9624 19.089C19.9992 18.6389 20 18.0566 20 17.2V11Z"})),he=s=>l.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...s},l.createElement("path",{d:"M6.20195 14.6383C6.20195 15.7947 5.25733 16.7393 4.10098 16.7393C2.94463 16.7393 2 15.7947 2 14.6383C2 13.482 2.94463 12.5374 4.10098 12.5374H6.20195V14.6383Z",fill:"#E01E5A"}),l.createElement("path",{d:"M7.26056 14.6383C7.26056 13.482 8.20518 12.5374 9.36154 12.5374C10.5179 12.5374 11.4625 13.482 11.4625 14.6383V19.8989C11.4625 21.0553 10.5179 21.9999 9.36154 21.9999C8.20518 21.9999 7.26056 21.0553 7.26056 19.8989V14.6383Z",fill:"#E01E5A"}),l.createElement("path",{d:"M9.36154 6.20195C8.20518 6.20195 7.26056 5.25733 7.26056 4.10098C7.26056 2.94463 8.20518 2 9.36154 2C10.5179 2 11.4625 2.94463 11.4625 4.10098V6.20195H9.36154Z",fill:"#36C5F0"}),l.createElement("path",{d:"M9.36156 7.26062C10.5179 7.26062 11.4625 8.20525 11.4625 9.3616C11.4625 10.5179 10.5179 11.4626 9.36156 11.4626H4.10098C2.94463 11.4626 2 10.5179 2 9.3616C2 8.20525 2.94463 7.26062 4.10098 7.26062H9.36156Z",fill:"#36C5F0"}),l.createElement("path",{d:"M17.798 9.3616C17.798 8.20525 18.7426 7.26062 19.8989 7.26062C21.0553 7.26062 21.9999 8.20525 21.9999 9.3616C21.9999 10.5179 21.0553 11.4626 19.8989 11.4626H17.798V9.3616Z",fill:"#2EB67D"}),l.createElement("path",{d:"M16.7394 9.36156C16.7394 10.5179 15.7948 11.4625 14.6385 11.4625C13.4821 11.4625 12.5375 10.5179 12.5375 9.36156V4.10098C12.5375 2.94463 13.4821 2 14.6385 2C15.7948 2 16.7394 2.94463 16.7394 4.10098V9.36156Z",fill:"#2EB67D"}),l.createElement("path",{d:"M14.6384 17.7981C15.7947 17.7981 16.7394 18.7427 16.7394 19.8991C16.7394 21.0554 15.7947 22 14.6384 22C13.482 22 12.5374 21.0554 12.5374 19.8991V17.7981H14.6384Z",fill:"#ECB22E"}),l.createElement("path",{d:"M14.6385 16.7393C13.4821 16.7393 12.5375 15.7947 12.5375 14.6383C12.5375 13.482 13.4821 12.5374 14.6385 12.5374H19.899C21.0554 12.5374 22 13.482 22 14.6383C22 15.7947 21.0554 16.7393 19.899 16.7393H14.6385Z",fill:"#ECB22E"}));function ue(){return e.jsxs("section",{className:"space-y-5",children:[e.jsx("h2",{className:"text-text-xl font-semibold",children:"Your next steps with ZenML"}),e.jsxs("ul",{className:"grid grid-cols-1 gap-3 md:grid-cols-3",children:[e.jsx(x,{href:P.stacks.create.index,icon:e.jsx(V,{className:"size-5 shrink-0 fill-primary-400"}),backgroundColor:"bg-primary-25",title:"Add your stack",description:"Connect cloud infrastructure and ML tools to your workspace."}),e.jsx(x,{href:"https://zenml.io/slack",icon:e.jsx(he,{className:"size-5 shrink-0"}),backgroundColor:"bg-neutral-100",title:"Join our Community",description:"Join our Slack community with thousands of members like you."}),e.jsx(x,{href:"https://zenml.io/book-your-demo",icon:e.jsx(pe,{className:"size-5 shrink-0 fill-success-400"}),backgroundColor:"bg-success-50",title:"Try ZenML Pro",description:"Book a demo and discover advanced features with our managed solution."})]})]})}function x({href:s,icon:t,backgroundColor:r,title:n,description:a}){const i=s.startsWith("http://")||s.startsWith("https://"),o=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:C("flex aspect-square size-8 items-center justify-center rounded-md",r),children:t}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("h3",{className:"text-text-lg font-semibold",children:n}),e.jsx("p",{className:"text-text-sm text-theme-text-secondary",children:a})]})]}),h="space-y-5 rounded-md border border-theme-border-moderate bg-theme-surface-primary p-5 transition-shadow duration-200 hover:shadow-sm";return i?e.jsx("a",{className:h,href:s,target:"_blank",rel:"noopener noreferrer",children:o}):e.jsx(S,{className:h,to:s,children:o})}function xe(){var r,n;const s=B();if(s.isPending)return e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(c,{className:"size-9 shrink-0 rounded-rounded"}),e.jsx(c,{className:"h-6 w-[200px]"})]});if(s.isError)return e.jsx("div",{children:"Error loading user"});const t=Z(s.data);return e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(I,{size:"xl",children:[e.jsx(G,{src:O(((n=(r=s.data)==null?void 0:r.body)==null?void 0:n.avatar_url)??void 0)}),e.jsx(F,{size:"xl",children:(t==null?void 0:t.charAt(0))||"U"})]}),e.jsxs("span",{className:"text-display-xs font-semibold",children:["Welcome back",t?`, ${t}`:""]})]})}const fe=d.object({index:d.number(),directory:d.string(),name:d.string()}),ge=d.object({pipelineOrder:d.array(fe)});async function je(){const s=await fetch("https://raw.githubusercontent.com/zenml-io/vscode-tutorial-extension/HEAD/pipelines/metadata.json");if(!s.ok)throw new Error("Failed to fetch pipelines from Github");const t=await s.json();return ge.parse(t)}function be(s){return p({queryKey:["github","vscode-tutorial-extension","pipelines"],queryFn:async()=>je(),...s})}async function ye(s){const t=`https://raw.githubusercontent.com/zenml-io/vscode-tutorial-extension/HEAD/pipelines/${s}/${s}.py`,r=await fetch(t);if(!r.ok)throw new Error("Failed to fetch pipeline content");return await r.text()}function Ce(s,t){return p({queryKey:["github","vscode-tutorial-extension","pipeline-content",s],queryFn:async()=>ye(s),...t})}async function we(s){const t=`https://raw.githubusercontent.com/zenml-io/vscode-tutorial-extension/HEAD/pipelines/${s}/summary.md`,r=await fetch(t);if(!r.ok)throw new Error("Failed to fetch pipeline summary");return await r.text()}function ve(s,t){return p({queryKey:["github","vscode-tutorial-extension","pipeline-summary",s],queryFn:async()=>we(s),...t})}function Ne({children:s,onOpenChange:t,pipelineContent:r,open:n,name:a,displayName:i,isDone:o}){return e.jsxs(R,{open:n,onOpenChange:t,children:[e.jsx(D,{className:"w-full",children:s}),e.jsxs(H,{"aria-describedby":void 0,className:"w-[1000px] overflow-y-auto",children:[e.jsx(ne,{}),e.jsx(ke,{displayName:i,pipelineContent:r,isDone:o,name:a}),e.jsx("div",{className:"p-5",children:r?e.jsxs(f,{className:"space-y-5 p-5",children:[e.jsx(Se,{pipelineName:a}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("p",{className:"text-text-sm text-theme-text-secondary",children:["Create a"," ",e.jsxs("code",{className:"rounded-sm bg-primary-25 px-[4px] py-[2px] text-theme-text-brand",children:[a,".py"]})," ","file that defines your workflow using our Python SDK:"]}),e.jsx(j,{className:"w-full max-w-full",code:r,highlightCode:!0})]}),e.jsxs("div",{children:[e.jsx("p",{className:"mb-1 text-text-sm text-theme-text-secondary",children:"Run the pipeline."}),e.jsx(j,{code:`python ${a}.py`})]}),e.jsx(te,{link:"https://docs.zenml.io/user-guides/starter-guide/create-an-ml-pipeline"})]}):e.jsx(Ae,{})})]})]})}function Ae(){return e.jsxs("div",{className:"flex flex-col items-center justify-center space-y-5 text-center",children:[e.jsx(re,{icon:e.jsx(se,{className:"h-[36px] w-[36px] fill-primary-400"})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-display-xs font-semibold",children:"We couldn't fetch the pipeline data"}),e.jsx("p",{className:"text-theme-text-secondary",children:"Please try again later or check the code in our GitHub Repo."})]}),e.jsx(m,{size:"md",asChild:!0,className:"mx-auto w-fit",children:e.jsx("a",{href:"https://github.com/zenml-io/vscode-tutorial-extension/tree/develop/pipelines",target:"_blank",rel:"noreferrer",children:"Open in Github"})})]})}function ke({isDone:s,name:t,pipelineContent:r,displayName:n}){const{copied:a,copyToClipboard:i}=T();function o(){if(!r)return;const h=new Blob([r],{type:"text/x-python"}),A=URL.createObjectURL(h),u=document.createElement("a");u.href=A,u.download=`${t}.py`,u.click()}return e.jsxs("section",{className:"flex items-center justify-between border-b border-theme-border-moderate bg-theme-surface-primary p-5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[s?e.jsx(N,{}):e.jsx(w,{}),e.jsx(J,{className:"text-display-xs font-semibold",children:n})]}),r&&e.jsxs("div",{className:"flex items-center",children:[e.jsxs(m,{intent:"secondary",emphasis:"minimal",onClick:o,className:"flex aspect-square size-7 shrink-0 items-center justify-center p-0",children:[e.jsx(_,{className:"size-5 shrink-0 fill-theme-text-secondary"}),e.jsx("span",{className:"sr-only",children:"Download Pipeline"})]}),e.jsx(m,{intent:"secondary",emphasis:"minimal",className:"flex aspect-square size-7 shrink-0 items-center justify-center p-0",onClick:()=>i(r),children:a?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sr-only",children:"Copied"}),e.jsx(y,{className:"size-5 shrink-0 fill-theme-text-secondary"})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"sr-only",children:"Copy Pipeline"}),e.jsx(Q,{className:"size-5 shrink-0 fill-theme-text-secondary"})]})})]})]})}function Se({pipelineName:s}){const t=ve(s);return t.isPending?e.jsx(c,{className:"h-[60px] w-full"}):t.isError?null:e.jsx(ee,{className:"prose max-w-none rounded-md border border-primary-50 bg-primary-25 px-5 py-3 text-text-sm prose-pre:bg-primary-50",children:t.data})}function ze({displayName:s,pipelineName:t,isDone:r}){const[n,a]=l.useState(!1),i=Ce(t,{refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,refetchInterval:!1,refetchIntervalInBackground:!1});return i.isPending?e.jsx(c,{className:"h-[130px] w-full"}):e.jsx(Ne,{displayName:s,isDone:r,name:t,pipelineContent:i.data,open:n,onOpenChange:a,children:e.jsxs(f,{className:"space-y-5 p-5 text-start transition-shadow duration-200 hover:shadow-sm",children:[r?e.jsx(N,{}):e.jsx(w,{}),e.jsx("p",{className:"text-text-lg font-semibold",children:s})]})})}function Le({githubPipelines:s}){const t=p({...v.pipelineList({name:`oneof:${JSON.stringify(s)}`})});if(t.isPending)return e.jsx(c,{className:"h-1 w-full"});if(t.isError)return null;const r=t.data.items.length,n=r/s.length*100;return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("div",{className:"whitespace-nowrap text-text-sm",children:[r,"/",s.length]}),e.jsx(Y,{className:"h-1 w-full rounded-rounded",value:n})]})}const Me="data:image/webp;base64,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",Ee="data:image/webp;base64,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";function Pe(){const s=be({refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,refetchInterval:!1,refetchIntervalInBackground:!1}),[t,r]=l.useState(!0);if(s.isPending)return e.jsx(c,{className:"h-[400px] w-full"});if(s.isError)return null;const n=s.data.pipelineOrder.sort((i,o)=>i.index-o.index),a=n.map(i=>i.directory);return e.jsxs(K,{open:t,onOpenChange:r,children:[e.jsx(X,{className:"flex items-center gap-[10px] p-0",children:e.jsxs("div",{className:"flex w-full flex-col items-center justify-between gap-5 p-5 lg:flex-row",children:[e.jsxs(g,{className:"flex-1 space-y-5",children:[e.jsxs("div",{className:"flex flex-col items-start",children:[e.jsx("p",{className:"text-text-xl font-semibold",children:"Learn the core concepts of ZenML"}),e.jsx("p",{className:"text-theme-text-secondary",children:"Click on a pipeline and follow the instructions to run it locally or run the tutorials with our VSCode Extension."})]}),e.jsx(Le,{githubPipelines:a})]}),e.jsx(Be,{}),e.jsx(g,{children:e.jsx($,{className:` ${t?"":"-rotate-90"} h-5 w-5 rounded-md fill-neutral-500 transition-transform duration-200 hover:bg-neutral-200`})})]})}),e.jsx(q,{className:"border-t border-theme-border-moderate bg-theme-surface-primary p-5",children:e.jsx(Ve,{pipelines:n})})]})}function Ve({pipelines:s}){const t=s.map(a=>a.directory),r=p({...v.pipelineList({name:`oneof:${JSON.stringify(t)}`}),refetchInterval:3e4});if(r.isPending)return e.jsx("ul",{className:"grid grid-cols-1 gap-3 md:grid-cols-3 xl:grid-cols-5",children:Array.from({length:s.length}).map((a,i)=>e.jsx("li",{children:e.jsx(c,{className:"h-[130px] w-full"})},i))});if(r.isError)return e.jsx("p",{children:"Error loading pipelines"});const n=r.data.items;return e.jsx("ul",{className:"grid grid-cols-1 gap-3 md:grid-cols-3 xl:grid-cols-5",children:s.map(a=>e.jsx("li",{children:e.jsx(ze,{isDone:n.some(i=>i.name===a.directory),pipelineName:a.directory,displayName:a.name})},a.index))})}const b="zenml-io.zenml-tutorial";function Be(){return e.jsxs(f,{className:"flex items-center justify-between gap-5 p-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-text-lg font-semibold",children:"Install the extension"}),e.jsx("p",{className:"text-text-md text-theme-text-secondary",children:"Available for VsCode or Cursor"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(m,{intent:"secondary",emphasis:"minimal",className:"aspect-square size-8 shrink-0 overflow-hidden border border-theme-border-moderate bg-theme-surface-primary p-0",asChild:!0,children:e.jsx("a",{href:`vscode:extension/${b}`,children:e.jsx("img",{src:Ee,alt:"VsCode",className:"h-full w-full"})})}),e.jsx(m,{intent:"secondary",emphasis:"minimal",className:"aspect-square size-8 shrink-0 overflow-hidden bg-theme-surface-primary p-0",asChild:!0,children:e.jsx("a",{href:`cursor:extension/${b}`,children:e.jsx("img",{src:Me,alt:"Cursor",className:"h-full w-full"})})})]})]})}function es(){const[s]=z(),t=s.get("success")==="true";return e.jsxs("div",{className:"layout-container space-y-8 py-5",children:[t&&e.jsx(ae,{}),e.jsx(xe,{}),e.jsx(Pe,{}),e.jsx(ue,{}),e.jsx(de,{}),e.jsx(le,{})]})}export{es as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{r as c,j as e}from"./@radix-
|
1
|
+
import{r as c,j as e}from"./@radix-B1sy0Lhr.js";import{u as l,S as x,a as y,b as f}from"./form-schemas-BjWDRvGd.js";import{A as h,a as v,P as j,S as _}from"./primary-role-CjkpP9fL.js";import{v as g,w as C,bg as b,u as U,d as w}from"./index-CO6UN3UX.js";import{u as P}from"./update-current-user-mutation-B3Dpv3u6.js";import{h as A}from"./@tanstack-Dwlisomv.js";import"./check-circle-CG6XAdk-.js";import"./@react-router-CHjLNlgw.js";import"./UpdatePasswordSchemas-DNkYgzN6.js";import"./zod-D48zuELD.js";import"./index.esm-SBF9nn_P.js";import"./bar-chart-square-check-_m-oYysN.js";import"./dataflow-2-BLkaTH0Q.js";import"./credit-card-DfBA6dBb.js";import"./eye-BXcQevds.js";import"./file-text-TdPXNd7s.js";import"./layout-GIiNvS10.js";import"./message-chat-square-C3CRCQvD.js";import"./slash-circle-B0xMh8q6.js";import"./transform-S7omcvTm.js";import"./@reactflow-gbyyU3kq.js";const d=c.createContext(null);function E({children:t,initialUser:s}){const[n,r]=c.useState(s||{});return e.jsx(d.Provider,{value:{user:n,setUser:r},children:t})}function p(){const t=c.useContext(d);if(t===null)throw new Error("useSurveyUserContext must be used within an SurveyUserProvider");return t}function k({user:t}){var o,u;const{setSurveyStep:s}=l(),{setUser:n}=p();function r({fullName:a,getUpdates:m,email:i}){n(S=>({...S,...i?{email:i}:{email:null},full_name:a,email_opted_in:m})),s(2)}return e.jsx(h,{email:(o=t.metadata)==null?void 0:o.email,fullName:(u=t.body)==null?void 0:u.full_name,submitHandler:r})}function D(){const{user:t}=p(),{setSurveyStep:s}=l(),{toast:n}=g(),r=A(),{mutate:o}=P({onSuccess:async()=>{await r.invalidateQueries({queryKey:b()}),s(a=>a+1)},onError:a=>{a instanceof Error&&n({status:"error",emphasis:"subtle",icon:e.jsx(C,{className:"h-5 w-5 shrink-0 fill-error-700"}),description:a.message,rounded:!0})}});function u({biggestChallenge:a,aiTypes:m}){const i={ai_types_working_with:m,biggest_ai_challenges:a,finished_onboarding_survey:!0};o({...t,user_metadata:{...t.user_metadata,...i}})}return e.jsx(v,{submitHandler:u})}function F({user:t}){const{setSurveyStep:s}=l(),{setUser:n}=p();function r({primaryRole:o,otherVal:u}){const m={primary_role:o==="other"?u:o};n(i=>({...i,user_metadata:{...i.user_metadata,...m}})),s(3)}return e.jsx(j,{user:t,submitHandler:r})}function H(){const{data:t,isPending:s,isError:n}=U({throwOnError:!0}),{surveyStep:r}=l();return n?null:s?e.jsx(w,{className:"h-[300px]"}):e.jsx(e.Fragment,{children:e.jsxs(E,{children:[e.jsx(x,{stepAmount:4}),r===1&&e.jsx(k,{user:t}),r===2&&e.jsx(F,{user:t}),r===3&&e.jsx(D,{}),r===4&&e.jsx(_,{}),r===5&&e.jsx(y,{subHeader:"Your ZenML account is now updated",displayBody:!1,username:t.name})]})})}function te(){return e.jsx("div",{children:e.jsx(f,{children:e.jsx(H,{})})})}export{te as default};
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import{r as i,j as e}from"./@radix-
|
1
|
+
import{r as i,j as e}from"./@radix-B1sy0Lhr.js";import{a as p,u as D,S as v,E as S}from"./SecretTooltip-CErfhVgF.js";import{b as f,h as b}from"./@tanstack-Dwlisomv.js";import{az as C,aA as N,aB as E,I as j,aD as w,aE as k,B as h,aP as T,bb as A,L as K,M as O,N as V,O as B,d as L,aH as z,aI as I,Y as F,$ as P,bc as Q,r as R,k as q,X as H}from"./index-CO6UN3UX.js";import{S as M}from"./eye-BXcQevds.js";import{S as _}from"./key-icon-BiV171aI.js";import{S as $}from"./trash-D9LA4VFD.js";import{A as U}from"./AlertDialogDropdownItem-BpLj419i.js";import{a as X}from"./@react-router-CHjLNlgw.js";import"./plus-DOrkJCmy.js";import"./zod-D48zuELD.js";import"./index.esm-SBF9nn_P.js";import"./CodeSnippet-B7Wd4R8u.js";import"./info-CI2szPUG.js";import"./@reactflow-gbyyU3kq.js";function Y({secretId:t,keyName:s}){const{data:a,isLoading:r,isError:u}=f({...p.secretDetail(t)}),l=b(),{mutate:c}=D({onError(d){T(d)&&A({status:"error",emphasis:"subtle",description:d.message,rounded:!0})},onSuccess(){l.invalidateQueries({queryKey:["secrets"]}),l.invalidateQueries({queryKey:["secretDetail",t]})}}),[n,m]=i.useState(""),x=()=>{var d;if(a){const g={...(d=a.body)==null?void 0:d.values};delete g[s];const y={name:a.name,values:g};c({id:t,body:y})}};function o(d){m(d.target.value)}return r?e.jsx("div",{children:"Loading..."}):u?e.jsx("div",{children:"Error loading secret details"}):e.jsxs(C,{children:[e.jsx(N,{children:e.jsx(E,{children:"Delete Key"})}),e.jsxs("div",{className:"gap-5 p-5",children:[e.jsx("p",{className:"text-text-md text-theme-text-secondary",children:"Are you sure you want to delete this key?"}),e.jsx("p",{className:"text-text-md text-theme-text-secondary",children:"This action cannot be undone."}),e.jsx("h3",{className:"font-inter text-sm mb-1 mt-4 text-left font-medium leading-5",children:"Please type DELETE to confirm"}),e.jsx(j,{name:"key",onChange:o,className:"w-full",required:!0,value:n})]}),e.jsxs(w,{className:"gap-[10px]",children:[e.jsx(k,{asChild:!0,children:e.jsx(h,{size:"sm",intent:"secondary",children:"Cancel"})}),e.jsx(h,{intent:"danger",type:"button",onClick:x,disabled:n!=="DELETE",children:"Delete"})]})]})}function G({secretId:t,keyName:s}){const[a,r]=i.useState(!1),[u,l]=i.useState(!1),c=i.useRef(null),n=i.useRef(null);function m(){n.current=c.current}function x(o){if(o===!1){r(!1),setTimeout(()=>{l(o)},200);return}l(o)}return e.jsxs(K,{onOpenChange:r,open:a,children:[e.jsx(O,{ref:c,children:e.jsx(V,{className:"h-4 w-4 fill-theme-text-tertiary"})}),e.jsx(B,{hidden:u,onCloseAutoFocus:o=>{n.current&&(n.current.focus(),n.current=null,o.preventDefault())},align:"end",sideOffset:7,children:e.jsx(U,{onSelect:m,onOpenChange:x,triggerChildren:"Delete ",icon:e.jsx($,{}),children:e.jsx(Y,{secretId:t,keyName:s})})})]})}const J=({value:t})=>{const[s,a]=i.useState(!1),r=typeof t=="string"?t:"",u="•".repeat(r.length);return e.jsxs("div",{className:"flex items-center gap-2 space-x-2",children:[e.jsx(M,{onClick:()=>a(!s),className:"h-4 w-4 flex-shrink-0"}),e.jsx("span",{children:s?r:u})]})};function W(t,s){return[{id:"key",header:"Key",accessorKey:"key",cell:({row:a})=>{const r=`from zenml.client import Client
|
2
2
|
secret = Client().get_secret("${s}")
|
3
3
|
|
4
4
|
# 'secret.secret_values' will contain a dictionary with all key-value pairs within your secret.
|
5
5
|
secret.secret_values["${a.original.key}"]
|
6
|
-
`;return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(_,{className:"h-5 w-5 flex-shrink-0 fill-primary-400"}),e.jsx("div",{className:"flex flex-col",children:e.jsx("div",{className:"flex items-center space-x-1",children:e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx("span",{className:"text-text-md font-semibold text-theme-text-primary",children:a.original.key}),e.jsx(v,{code:r})]})})})]})}},{id:"value",header:"Value",accessorKey:"value",cell:({row:a})=>e.jsx(
|
6
|
+
`;return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(_,{className:"h-5 w-5 flex-shrink-0 fill-primary-400"}),e.jsx("div",{className:"flex flex-col",children:e.jsx("div",{className:"flex items-center space-x-1",children:e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx("span",{className:"text-text-md font-semibold text-theme-text-primary",children:a.original.key}),e.jsx(v,{code:r})]})})})]})}},{id:"value",header:"Value",accessorKey:"value",cell:({row:a})=>e.jsx(J,{value:a.getValue("value")})},{id:"actions",header:"",cell:({row:a})=>e.jsx(G,{secretId:t,keyName:a.original.key})}]}function Z({secretId:t}){var c;const[s,a]=i.useState(""),r=f({...p.secretDetail(t)});if(r.isPending)return e.jsx(L,{className:"h-[200px] w-full"});if(r.isError)return e.jsx("div",{children:r.error.message});const l=Object.entries(((c=r.data.body)==null?void 0:c.values)||{}).map(([n,m])=>({key:n,value:m})).filter(n=>n.key.toLowerCase().includes(s.toLowerCase()));return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4 flex flex-wrap items-center justify-between gap-2",children:[e.jsx(j,{type:"text",placeholder:"Search Keys...",value:s,onChange:n=>a(n.target.value),inputSize:"md"}),e.jsxs(z,{children:[e.jsx(I,{asChild:!0,children:e.jsx(h,{size:"sm",intent:"primary",children:"Edit Keys"})}),e.jsx(S,{secretId:t,isSecretNameEditable:!1,dialogTitle:"Edit keys"})]})]}),e.jsx("div",{className:"w-full",children:e.jsx(F,{columns:W(t,r.data.name),data:l})})]})}function ee(t){const{setBreadcrumbs:s}=P();i.useEffect(()=>{t&&s([...Q,{label:t.name,href:R.settings.secrets.detail(t.id)}])},[t,s])}function fe(){const{secretId:t}=X(),{data:s}=f({...p.secretDetail(t||"")});return ee(s),e.jsx(e.Fragment,{children:e.jsxs(q,{className:"space-y-5 p-5",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-text-xl font-semibold",children:s==null?void 0:s.name}),e.jsxs("div",{className:"group/copybutton flex items-center space-x-1",children:[e.jsx("div",{className:"text-theme-text-secondary",children:t==null?void 0:t.slice(0,8)}),e.jsx(H,{copyText:t})]})]}),e.jsx(Z,{secretId:t||""})]})})}export{fe as default};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{r as l,j as e}from"./@radix-B1sy0Lhr.js";import{u as m,S as x,a as v,b as j}from"./form-schemas-BjWDRvGd.js";import{E as w}from"./EmptyState-BMA34iVR.js";import{A as y,a as A,P as g,S as P}from"./primary-role-CjkpP9fL.js";import{f as _}from"./@react-router-CHjLNlgw.js";import{x as b,F as U,G as C,H as F,t as k,v as E,w as N}from"./index-CO6UN3UX.js";import{c as H}from"./@tanstack-Dwlisomv.js";import{u as M}from"./login-mutation-CDgTlQBD.js";import{S as D}from"./SetPassword-C4OH-cn1.js";import"./check-circle-CG6XAdk-.js";import"./UpdatePasswordSchemas-DNkYgzN6.js";import"./zod-D48zuELD.js";import"./index.esm-SBF9nn_P.js";import"./bar-chart-square-check-_m-oYysN.js";import"./dataflow-2-BLkaTH0Q.js";import"./credit-card-DfBA6dBb.js";import"./eye-BXcQevds.js";import"./file-text-TdPXNd7s.js";import"./layout-GIiNvS10.js";import"./message-chat-square-C3CRCQvD.js";import"./slash-circle-B0xMh8q6.js";import"./transform-S7omcvTm.js";import"./@reactflow-gbyyU3kq.js";import"./PasswordChecker-DOPLfvg7.js";const d=l.createContext(null);function T({children:t,initialUser:r}){const[a,s]=l.useState(r||{});return e.jsx(d.Provider,{value:{newUser:a,setNewUser:s},children:t})}function p(){const t=l.useContext(d);if(t===null)throw new Error("useActivationContext must be used within an ActivationProvider");return t}function I(){const{setSurveyStep:t}=m(),{setNewUser:r,newUser:a}=p();function s({fullName:n,getUpdates:o,email:i}){r(c=>({...c,...i?{email:i}:{email:null},full_name:n,email_opted_in:o})),t(c=>c+1)}return e.jsx(y,{email:a.email,fullName:a.full_name,submitHandler:s})}async function L({userId:t,body:r}){const a=U(F.users.activate(t)),s=await b(a,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!s.ok){const n=await s.json().then(o=>Array.isArray(o.detail)?o.detail[1]:o.detail).catch(()=>"Failed to update activate user");throw new C({status:s.status,statusText:s.statusText,message:n})}return s.json()}function R(t){return H({mutationFn:async r=>L(r),...t})}function z({userId:t,setUsername:r}){const{newUser:a}=p(),{setAuthState:s}=k(),{setSurveyStep:n}=m(),{mutate:o}=M({onSuccess:()=>{s("true"),n(u=>u+1)}}),{toast:i}=E(),{mutate:c}=R({onSuccess:async u=>{r(u.name),o({username:u.name,password:a.password??void 0})},onError:u=>{u instanceof Error&&i({status:"error",emphasis:"subtle",icon:e.jsx(N,{className:"h-5 w-5 shrink-0 fill-error-700"}),description:u.message,rounded:!0})}});function f({aiTypes:u,biggestChallenge:S}){const h={ai_types_working_with:u,biggest_ai_challenges:S,finished_onboarding_survey:!0};c({userId:t,body:{...a,user_metadata:{...a.user_metadata,...h}}})}return e.jsx(A,{submitHandler:f})}function G(){const{setSurveyStep:t}=m(),{setNewUser:r}=p();function a({newPassword:s}){r(n=>({...n,password:s})),t(n=>n+1)}return e.jsx(D,{submitHandler:a})}function J(){const{setSurveyStep:t}=m(),{setNewUser:r}=p();function a({primaryRole:s,otherVal:n}){const o={primary_role:s==="other"?n:s};r(i=>({...i,user_metadata:{...i.user_metadata,...o}})),t(i=>i+1)}return e.jsx(g,{submitHandler:a})}function O(){const{surveyStep:t}=m(),[r]=_(),[a,s]=l.useState(""),n=r.get("user"),o=r.get("token");return!n||!o?e.jsx(w,{children:e.jsx("p",{children:"Invalid activation link."})}):e.jsx(e.Fragment,{children:e.jsxs(T,{initialUser:{activation_token:o},children:[e.jsx(x,{stepAmount:5}),t===1&&e.jsx(I,{}),t===2&&e.jsx(G,{}),t===3&&e.jsx(J,{}),t===4&&e.jsx(z,{setUsername:s,userId:n}),t===5&&e.jsx(P,{}),t===6&&e.jsx(v,{subHeader:"Your created your ZenML account",username:a})]})})}function ft(){return e.jsx("div",{children:e.jsx(j,{children:e.jsx(O,{})})})}export{ft as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{r as i,j as s}from"./@radix-
|
1
|
+
import{r as i,j as s}from"./@radix-B1sy0Lhr.js";import{z as t,t as g,v as w,I as c,B as N,r as v,w as y,k as b}from"./index-CO6UN3UX.js";import{u as S}from"./login-mutation-CDgTlQBD.js";import{t as I}from"./zod-D48zuELD.js";import{u as L}from"./index.esm-SBF9nn_P.js";import{c as F,f as P}from"./@react-router-CHjLNlgw.js";import"./@tanstack-Dwlisomv.js";import"./@reactflow-gbyyU3kq.js";const E=t.object({username:t.string().min(1),password:t.string().optional()});function A(){const l=F(),{setAuthState:m}=g(),{toast:u}=w(),a=i.useId(),r=i.useId(),[o]=P(),d=o.get("redirect"),x=o.get("username")??void 0,{register:n,handleSubmit:p,formState:{isValid:f}}=L({resolver:I(E),defaultValues:{username:x}}),h=S({onError:e=>{e instanceof Error&&u({status:"error",emphasis:"subtle",icon:s.jsx(y,{className:"h-5 w-5 shrink-0 fill-error-700"}),description:e.message,rounded:!0})},onSuccess:async()=>{m("true"),l(d||v.projects.overview)}});function j(e){h.mutate({username:e.username.trim(),password:e.password})}return s.jsxs("form",{onSubmit:p(j),className:"space-y-5",children:[s.jsxs("div",{className:"space-y-2",children:[s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("label",{htmlFor:a,className:"text-text-sm",children:"Username"}),s.jsx(c,{...n("username"),id:a,className:"w-full"})]}),s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("label",{htmlFor:r,className:"text-text-sm",children:"Password"}),s.jsx(c,{...n("password"),id:r,type:"password",className:"w-full"})]})]}),s.jsx(N,{disabled:!f,className:"w-full text-center",size:"md",children:s.jsx("span",{className:"w-full",children:"Login"})})]})}function U(){return s.jsxs(b,{className:"flex w-full max-w-[540px] flex-col gap-5 p-7",children:[s.jsxs("div",{className:"text-center",children:[s.jsx("h1",{className:"mb-0.5 text-display-xs font-semibold",children:"Log in to your account"}),s.jsx("p",{className:"text-theme-text-secondary",children:"Please, fill in your details to log in to your ZenML account."})]}),s.jsx(A,{})]})}export{U as default};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{r as c,j as e}from"./@radix-B1sy0Lhr.js";import{x as j,F as C,G as b,H as y,aH as M,aI as F,B as h,aJ as T,aK as P,D as E,aL as U,v,I as O,aM as k,aN as I,aO as H,aP as _,w as D,z as u,a5 as w,az as R,aB as z,aC as B,aE as q,aQ as V,L as K,M as L,N as Q,O as Z,a2 as G,aR as J,u as Y,d as f,Y as $,k as W}from"./index-CO6UN3UX.js";import{S as X}from"./SearchField-Byv1PtST.js";import{C as ee}from"./CodeSnippet-B7Wd4R8u.js";import{c as N,h as A}from"./@tanstack-Dwlisomv.js";import{u as se}from"./index.esm-SBF9nn_P.js";import{D as ae}from"./DisplayDate-57lUNS79.js";import{S as te}from"./slash-circle-B0xMh8q6.js";import{A as re}from"./AlertDialogDropdownItem-BpLj419i.js";import{f as ne}from"./@react-router-CHjLNlgw.js";import{P as ie}from"./Pagination-C1sE5Nzn.js";import"./@reactflow-gbyyU3kq.js";import"./index-g7wOyc86.js";import"./chevron-right-double-CbMG1dOM.js";const oe=t=>c.createElement("svg",{viewBox:"0 0 24 24",fill:"black",xmlns:"http://www.w3.org/2000/svg",...t},c.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 4C8.06703 4 6.50002 5.567 6.50002 7.5C6.50002 9.433 8.06703 11 10 11C11.933 11 13.5 9.433 13.5 7.5C13.5 5.567 11.933 4 10 4ZM4.50002 7.5C4.50002 4.46243 6.96246 2 10 2C13.0376 2 15.5 4.46243 15.5 7.5C15.5 10.5376 13.0376 13 10 13C6.96246 13 4.50002 10.5376 4.50002 7.5ZM19 14C19.5523 14 20 14.4477 20 15V17H22C22.5523 17 23 17.4477 23 18C23 18.5523 22.5523 19 22 19H20V21C20 21.5523 19.5523 22 19 22C18.4477 22 18 21.5523 18 21V19H16C15.4477 19 15 18.5523 15 18C15 17.4477 15.4477 17 16 17H18V15C18 14.4477 18.4477 14 19 14ZM7.32629 14.5C7.38335 14.5 7.44125 14.5 7.50003 14.5H12C12.5523 14.5 13 14.9477 13 15.5C13 16.0523 12.5523 16.5 12 16.5H7.50003C6.03171 16.5 5.51923 16.5109 5.12917 16.6292C4.17036 16.92 3.42005 17.6703 3.1292 18.6291C3.01088 19.0192 3.00002 19.5317 3.00002 21C3.00002 21.5523 2.55231 22 2.00002 22C1.44774 22 1.00002 21.5523 1.00002 21C1.00002 20.9412 1 20.8833 0.99998 20.8263C0.999526 19.599 0.999216 18.761 1.21532 18.0486C1.70007 16.4506 2.95059 15.2 4.54859 14.7153C5.261 14.4992 6.09902 14.4995 7.32629 14.5Z"}));async function le(t){const s=C(y.users.all),a=await j(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){const r=await a.json().then(n=>n.detail).catch(()=>"Failed to create User");throw new b({status:a.status,statusText:a.statusText,message:r})}return a.json()}function ce(t){return N({mutationFn:async s=>le(s),...t})}function de(){const[t,s]=c.useState(!1),[a,r]=c.useState(null);return e.jsxs(M,{open:t,onOpenChange:n=>{s(n),r(null)},children:[e.jsx(F,{asChild:!0,children:e.jsx(h,{className:"shrink-0",intent:"primary",children:"Add Member"})}),e.jsxs(T,{className:"",children:[e.jsx(P,{children:e.jsx(E,{children:" Add a New Member"})}),a?e.jsx(ue,{name:a.name,token:U(a)}):e.jsx(me,{setSuccessMember:r})]})]})}u.object({username:u.string(),isAdmin:u.boolean()});function me({setSuccessMember:t}){const{toast:s}=v(),a=A(),{mutate:r,isPending:n}=ce({onError(d){_(d)&&s({status:"error",emphasis:"subtle",icon:e.jsx(D,{className:"h-5 w-5 shrink-0 fill-error-700"}),description:d.message,rounded:!0})},onSuccess(d){t(d),a.invalidateQueries({queryKey:["users"]})}}),o=c.useId(),l=c.useId(),{register:i,handleSubmit:x,watch:p,setValue:m}=se();function S(d){r({is_admin:d.isAdmin,name:d.username})}return e.jsxs(e.Fragment,{children:[e.jsx("form",{id:"create-user-form",onSubmit:x(S),className:"space-y-5 p-7",children:e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("label",{htmlFor:o,className:"text-text-sm",children:"Username"}),e.jsx(O,{...i("username"),id:o,className:"w-full"})]}),e.jsxs("div",{className:"flex gap-5",children:[e.jsx("label",{htmlFor:l,className:"text-text-md",children:"Add user as an Admin"}),e.jsx(k,{onCheckedChange:d=>m("isAdmin",!!d),...i("isAdmin",{value:!1}),id:l})]})]})}),e.jsxs(I,{className:"gap-[10px]",children:[e.jsx(H,{asChild:!0,children:e.jsx(h,{size:"sm",intent:"secondary",children:"Cancel"})}),e.jsx(h,{disabled:!p("username")||n,form:"create-user-form",size:"sm",children:"Generate Token"})]})]})}function ue({token:t,name:s}){return e.jsxs("div",{className:"space-y-5 overflow-hidden p-7 text-center",children:[e.jsx(oe,{className:"m-auto mb-5 h-[110px] w-[110px] fill-success-500"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-text-lg font-semibold text-theme-text-primary",children:`The user ${s} was created successfully!`}),e.jsx("p",{className:"text-text-md text-theme-text-secondary",children:"Share the invitation link with the user to complete the registration."})]}),e.jsx(ee,{className:"mx-auto",code:t})]})}function he(){return e.jsx(w,{size:"xs",color:"blue",className:"rounded-sm uppercase",children:"admin"})}async function xe(t){const s=C(y.users.detail(t)),a=await j(s,{method:"DELETE",headers:{"Content-Type":"application/json"}});if(!a.ok){const r=await a.json().then(n=>n.detail).catch(()=>"Failed to delete User");throw new b({status:a.status,statusText:a.statusText,message:r})}return a.json()}function pe(t){return N({mutationFn:async s=>xe(s),...t})}function fe({userId:t,name:s}){const{toast:a}=v(),r=A(),{isPending:n,mutate:o}=pe({onSuccess(){r.invalidateQueries({queryKey:["users"]})},onError:i=>{i instanceof Error&&a({status:"error",emphasis:"subtle",icon:e.jsx(D,{className:"h-5 w-5 shrink-0 fill-error-700"}),description:i.message,rounded:!0})}});function l(){o(t)}return e.jsxs(R,{className:"p-0",children:[e.jsx(z,{className:"py-2 pl-5 pr-3 text-text-lg font-semibold",children:"Delete Member"}),e.jsx("div",{className:"border-y border-theme-border-moderate px-5 py-5",children:e.jsxs(B,{children:["Deleting ",e.jsx("strong",{children:s})," cannot be undone."]})}),e.jsxs("div",{className:"flex justify-end gap-3 px-5 py-3",children:[e.jsx(q,{asChild:!0,children:e.jsx(h,{intent:"secondary",children:"Cancel"})}),e.jsx(V,{asChild:!0,children:e.jsx(h,{onClick:l,disabled:n,intent:"danger",children:"Delete"})})]})]})}function ge({userId:t,name:s}){const[a,r]=c.useState(!1),[n,o]=c.useState(!1),l=c.useRef(null),i=c.useRef(null);function x(){i.current=l.current}function p(m){if(m===!1){o(!1),setTimeout(()=>{r(m)},200);return}r(m)}return e.jsxs(K,{onOpenChange:o,open:n,children:[e.jsx(L,{ref:l,children:e.jsx(Q,{className:"h-4 w-4 fill-theme-text-tertiary"})}),e.jsx(Z,{hidden:a,onCloseAutoFocus:m=>{i.current&&(i.current.focus(),i.current=null,m.preventDefault())},align:"end",sideOffset:7,children:e.jsx(re,{onSelect:x,onOpenChange:p,triggerChildren:"Remove Member",icon:e.jsx(te,{fill:"red"}),children:e.jsx(fe,{name:s,userId:t})})})]})}function je({isAdmin:t}){return[{id:"name",accessorFn:s=>s.name,cell:({row:s})=>{var r,n,o;const a=s.original;return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(G,{avatarUrl:((r=a.body)==null?void 0:r.avatar_url)??void 0,username:a.name,isServiceAccount:!!((n=a.body)!=null&&n.is_service_account)}),((o=a.body)==null?void 0:o.is_admin)&&e.jsx(he,{})]})},header:"User"},{accessorKey:"status",header:"Status",accessorFn:s=>{var a;return{status:(a=s.body)==null?void 0:a.active}},cell:({getValue:s})=>{const{status:a}=s();return e.jsx(w,{className:"capitalize",color:a?"green":"grey",children:a?"Active":"Inactive"})}},{id:"created",header:"Created",accessorFn:s=>{var a;return(a=s.body)==null?void 0:a.created},cell:({getValue:s})=>e.jsx("p",{className:"text-text-sm text-theme-text-secondary",children:e.jsx(ae,{dateString:s()})})},...t?[{id:"actions",header:"",accessorFn:s=>({id:s.id,name:s.name}),meta:{width:"5%"},cell:({getValue:s})=>{const{id:a,name:r}=s();return e.jsx(ge,{name:r,userId:a})}}]:[]]}const g=1,Ce=u.object({page:u.coerce.number().min(g).optional().default(g).catch(g),name:u.string().optional(),operator:u.enum(["and","or"]).optional()});function be(){const[t]=ne(),{page:s,name:a,operator:r}=Ce.parse({page:t.get("page")||void 0,name:t.get("name")||void 0,operator:t.get("operator")||void 0});return{page:s,name:a,logical_operator:r}}function ye(){var l,i;const t=be(),{data:s,isError:a}=J({params:{...t,sort_by:"desc:created"}},{throwOnError:!0}),{data:r,isPending:n,isError:o}=Y();return a||o?null:n?e.jsx(f,{className:"h-[350px]"}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsx(X,{searchParams:t}),((l=r.body)==null?void 0:l.is_admin)&&e.jsx(de,{})]}),e.jsxs("div",{className:"flex flex-col items-center gap-5",children:[e.jsx("div",{className:"w-full",children:s?e.jsx($,{columns:je({isAdmin:(i=r.body)==null?void 0:i.is_admin}),data:s.items}):e.jsx(f,{className:"h-[250px] w-full"})}),s?s.total_pages>1&&e.jsx(ie,{searchParams:t,paginate:s}):e.jsx(f,{className:"h-[36px] w-[300px]"})]})]})}function Ie(){return e.jsxs(W,{className:"flex flex-col gap-4 p-5",children:[e.jsx("h1",{className:"text-text-xl font-semibold",children:"Members"}),e.jsx(ye,{})]})}export{Ie as default};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{r as x,j as e}from"./@radix-B1sy0Lhr.js";import{x as w,F as C,G as S,H as K,aH as E,aI as ne,B as f,aJ as _,aK as B,D as z,v as k,I as D,aN as q,aO as H,aP as T,J as $,K as re,_ as V,z as b,aM as Q,R as ie,U as oe,V as ce,W as le,d as j,L as de,M as ue,N as me,O as xe,aw as he,az as pe,aA as fe,aB as ye,aD as je,aE as ge,Q as I,k as G,Y as ve,$ as Ae,bf as be,r as De,be as Ne,a5 as we}from"./index-CO6UN3UX.js";import{c as Ce,u as Se}from"./bulk-delete-wdObjfps.js";import{s as g,A as L,d as Ke,u as ke,b as R,a as J}from"./service-FjqYTmBw.js";import{c as F,h as A,b as P}from"./@tanstack-Dwlisomv.js";import{P as Te}from"./Pagination-C1sE5Nzn.js";import{S as Re}from"./SearchField-Byv1PtST.js";import{t as U}from"./zod-D48zuELD.js";import{u as Y,C as N}from"./index.esm-SBF9nn_P.js";import{S as Z}from"./trash-D9LA4VFD.js";import{D as W,a as X}from"./DeleteAlertDialog-CzhTVQaC.js";import{S as ee}from"./key-icon-BiV171aI.js";import{D as M}from"./DisplayDate-57lUNS79.js";import{i as Fe,a as Pe}from"./dates-Buh6SMo7.js";import{S as Oe}from"./refresh-C8BXS3Fb.js";import{A as Ie}from"./AlertDialogDropdownItem-BpLj419i.js";import{S as Me}from"./info-CI2szPUG.js";import{I as Ee}from"./Infobox-DnduZjNU.js";import{a as O}from"./@react-router-CHjLNlgw.js";import"./@reactflow-gbyyU3kq.js";import"./CodeSnippet-B7Wd4R8u.js";import"./Tick-BQ7_xDBl.js";import"./check-C9Nye5lR.js";import"./chevron-right-double-CbMG1dOM.js";import"./index-g7wOyc86.js";async function _e(t,s){const a=C(K.serviceAccounts.apiKeys.detail(t,s)),i=await w(a,{method:"DELETE",headers:{"Content-Type":"application/json"}});if(!i.ok){const n=await i.json().then(r=>Array.isArray(r.detail)?r.detail[1]:r.detail).catch(()=>`Failed to delete api key ${s}`);throw new S({status:i.status,statusText:i.statusText,message:n})}return i.json()}function Be(t){return F({...t,mutationFn:async({serviceAccountId:s,apiKeyId:a})=>{await _e(s,a)}})}const{ContextProvider:ze,useContext:v}=Ce();function te(t){const{setRowSelection:s}=v(),{mutateAsync:a}=Be();async function i(n){await a({serviceAccountId:t,apiKeyId:n})}return Se({deleteFn:i,queryKeyToInvalidate:g.serviceAccountsKey(),setRowSelection:s})}function se({serviceAccountId:t,isFallback:s}){const a=A(),[i,n]=x.useState(!1),[r,o]=x.useState(""),u=!!r;function m(){return u?e.jsx(L,{value:r}):e.jsx(qe,{isFallback:s,serviceAccountId:t,setApikeyValue:o})}return e.jsx(e.Fragment,{children:e.jsxs(E,{open:i,onOpenChange:l=>{s&&!l&&a.invalidateQueries({queryKey:g.apiKeysKey(t)}),n(l),o("")},children:[e.jsx(ne,{asChild:!0,children:e.jsx(f,{className:"shrink-0",intent:"primary",size:"sm",children:"Generate API Key"})}),e.jsxs(_,{"data-success":u,className:"mx-auto overflow-x-auto transition-none data-[success=true]:max-w-[800px]",children:[e.jsx(B,{children:e.jsx(z,{children:u?"API Key Created Successfully":"Generate API Key"})}),m()]})]})})}function qe({serviceAccountId:t,setApikeyValue:s,isFallback:a}){const{toast:i}=k(),n=A(),{handleSubmit:r,control:o,formState:{isValid:u},reset:m}=Y({resolver:U(Ke),defaultValues:{name:"",description:""}}),{mutate:l}=ke({onError(c){T(c)&&i({status:"error",emphasis:"subtle",description:c.message,rounded:!0})},onSuccess(c){var y;a||n.invalidateQueries({queryKey:g.apiKeysKey(t)}),s(((y=c.body)==null?void 0:y.key)||""),m()}});function d(c){l({serviceAccountId:t,body:{name:c.name,description:c.description}})}return e.jsxs(e.Fragment,{children:[e.jsxs("form",{id:"create-secret-form",className:"space-y-5 p-7",onSubmit:r(d),children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("label",{className:"font-inter text-sm text-left font-medium leading-5",children:"Name:"}),e.jsx(N,{name:"name",control:o,render:({field:c})=>e.jsx(D,{...c,className:"w-full",required:!0,placeholder:"Add name"})})]}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("label",{className:"font-inter text-sm text-left font-medium leading-5",children:"Description:"}),e.jsx(N,{name:"description",control:o,render:({field:c})=>e.jsx(D,{...c,className:"w-full",placeholder:"Add description"})})]})]}),e.jsxs(q,{className:"gap-[10px]",children:[e.jsx(H,{asChild:!0,children:e.jsx(f,{size:"sm",intent:"secondary",children:"Cancel"})}),e.jsx(f,{intent:"primary",disabled:!u,type:"submit",form:"create-secret-form",children:"Generate Key"})]})]})}function He({serviceAccountId:t}){const[s,a]=x.useState(!1),{bulkDelete:i}=te(t),{selectedRowIDs:n,selectedRowCount:r}=v();async function o(){await i(n),a(!1)}return e.jsxs($,{open:s,onOpenChange:a,children:[e.jsx(re,{asChild:!0,children:e.jsxs(f,{className:"rounded-sharp border-y-0 bg-white",size:"md",emphasis:"subtle",intent:"secondary",children:[e.jsx(Z,{className:"h-5 w-5 shrink-0 gap-1 fill-neutral-400"}),"Delete"]})}),e.jsx(W,{title:`Delete Api Key${r>=2?"s":""}`,handleDelete:o,children:e.jsxs(X,{children:[e.jsx("p",{children:"Are you sure?"}),e.jsx("p",{children:"This action cannot be undone."})]})})]})}function $e({serviceAccountId:t}){const{selectedRowCount:s}=v();return e.jsxs("div",{className:"flex items-center divide-x divide-theme-border-moderate overflow-hidden rounded-md border border-theme-border-moderate",children:[e.jsx("div",{className:"bg-primary-25 px-2 py-1 font-semibold text-theme-text-brand",children:`${s} Api Key${s>1?"s":""} selected`}),e.jsx(He,{serviceAccountId:t})]})}async function Ve({apiKeyId:t,body:s,serviceAccountId:a}){const i=C(K.serviceAccounts.apiKeys.rotate(a,t)),n=await w(i,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(n.status===404&&V(),!n.ok){const r=await n.json().then(o=>Array.isArray(o.detail)?o.detail[1]:o.detail).catch(()=>`Failed to rotate key ${t}`);throw new S({status:n.status,statusText:n.statusText,message:r})}return n.json()}function Qe(t){return F({...t,mutationFn:async({serviceAccountId:s,apiKeyId:a,body:i})=>Ve({serviceAccountId:s,apiKeyId:a,body:i})})}const Ge=b.object({enableRetention:b.boolean(),rotateMinutes:b.coerce.number().int().min(1).optional()}).refine(t=>!(t.enableRetention&&!t.rotateMinutes));function Le({serviceAccountId:t,apiKeyId:s,open:a,setOpen:i}){const[n,r]=x.useState(""),o=!!n;function u(){return o?e.jsx(L,{value:n}):e.jsx(Je,{setApiKeyValue:r,apiKeyId:s,serviceAccountId:t})}return e.jsx(E,{open:a,onOpenChange:m=>{i(m),r("")},children:e.jsxs(_,{className:"mx-auto max-w-[800px] overflow-x-auto",children:[e.jsx(B,{children:e.jsx(z,{children:"Rotate API Key"})}),u()]})})}function Je({apiKeyId:t,serviceAccountId:s,setApiKeyValue:a}){const{toast:i}=k(),n=A(),{control:r,watch:o,register:u,handleSubmit:m,formState:{errors:l,isValid:d}}=Y({resolver:U(Ge),defaultValues:{enableRetention:!1,rotateMinutes:void 0}});function c(p){const h={retain_period_minutes:p.rotateMinutes};y({serviceAccountId:s,apiKeyId:t,body:h})}const{mutate:y}=Qe({onError(p){T(p)&&i({status:"error",emphasis:"subtle",description:p.message,rounded:!0})},onSuccess(p){var h;i({description:"The API key has been rotated successfully.",status:"success",emphasis:"subtle",rounded:!0}),a(((h=p.body)==null?void 0:h.key)||""),n.invalidateQueries({queryKey:[...g.apiKeysKey(s)]})}});return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-5 p-7",children:[e.jsx(Ue,{apiKeyId:t,serviceAccountId:s}),e.jsx(Ye,{}),e.jsxs("form",{onSubmit:m(c),id:"retention-form",children:[e.jsxs("div",{className:"flex items-center gap-1 rounded-t-md border bg-theme-surface-secondary p-1",children:[e.jsx(N,{control:r,name:"enableRetention",render:({field:{onChange:p,value:h}})=>e.jsx(Q,{className:"data-[state=unchecked]:bg-neutral-200",checked:h,id:"enable-retention",onCheckedChange:ae=>p(!!ae)})}),"Include Retention Period",e.jsx(ie,{children:e.jsxs(oe,{children:[e.jsx(ce,{asChild:!0,children:e.jsxs("button",{type:"button",children:[e.jsx(Me,{className:"h-4 w-4 shrink-0 fill-theme-text-tertiary"}),e.jsx("div",{className:"sr-only",children:"Info tooltip"})]})}),e.jsx(le,{className:"z-50 flex max-w-[480px] bg-black",children:e.jsx("p",{className:"text-text-xs text-white",children:"To minimize disruption, you can set a retention period for your current key. Enter the duration(in minutes) you'd like the old key to remain active alongside the new one."})})]})})]}),e.jsxs("fieldset",{disabled:!o("enableRetention"),className:"space-y-5 rounded-b-md border-x border-b p-5 text-text-md text-theme-text-primary",children:[e.jsx("p",{className:"text-text-md text-theme-text-primary",children:"Keep the current key working for the next"}),e.jsxs("div",{children:[e.jsx("label",{className:"text-text-sm text-theme-text-primary",htmlFor:"retention-minutes",children:"Minutes"}),e.jsx(D,{id:"retention-minutes",...u("rotateMinutes"),disabled:!o("enableRetention"),placeholder:"0"}),l.rotateMinutes&&e.jsx("p",{className:"text-text-sm text-theme-text-error",children:l.rotateMinutes.message})]})]})]})]}),e.jsxs(q,{className:"gap-[10px]",children:[e.jsx(H,{asChild:!0,children:e.jsx(f,{size:"sm",intent:"secondary",children:"Cancel"})}),e.jsx(f,{intent:"primary",disabled:!d,size:"sm",form:"retention-form",children:"Rotate Key"})]})]})}function Ue({apiKeyId:t,serviceAccountId:s}){var r;const{data:a,isPending:i,isError:n}=P({...R.ApiKeysDetail(s,t),throwOnError:!0});return i?e.jsx(j,{className:"h-8 w-full"}):n?null:e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(ee,{className:"h-5 w-5 flex-shrink-0 fill-primary-400"}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("p",{children:a&&a.name}),e.jsx("p",{className:"text-text-sm text-theme-text-secondary",children:a&&((r=a.metadata)==null?void 0:r.description)})]})]})}function Ye(){return e.jsxs(Ee,{children:[e.jsx("strong",{children:"Your current API Key will be deactivated."})," This means any processes or integrations using the old key will no longer function once the new key is generated."]})}function Ze({serviceAccountId:t,apiKeyId:s}){const[a,i]=x.useState(!1),[n,r]=x.useState(!1),[o,u]=x.useState(!1),m=x.useRef(null),l=x.useRef(null),{bulkDelete:d}=te(t);function c(){l.current=m.current}function y(h){u(h),h||i(!1)}async function p(){await d([s]),y(!1)}return e.jsxs(e.Fragment,{children:[e.jsx(Le,{setOpen:r,open:n,serviceAccountId:t,apiKeyId:s}),e.jsxs(de,{onOpenChange:i,open:a,children:[e.jsx(ue,{ref:m,children:e.jsx(me,{className:"h-5 w-5 fill-theme-text-secondary"})}),e.jsxs(xe,{hidden:o,onCloseAutoFocus:h=>{l.current&&(l.current.focus(),l.current=null,h.preventDefault())},align:"end",sideOffset:7,children:[e.jsx(he,{className:"px-3",onClick:()=>r(!0),icon:e.jsx(Oe,{}),children:e.jsx("span",{children:"Rotate"})}),e.jsx(Ie,{onSelect:c,open:o,onOpenChange:y,triggerChildren:"Delete",icon:e.jsx(Z,{fill:"red"}),children:e.jsx(W,{title:"Delete API Key",handleDelete:p,children:e.jsxs(X,{children:[e.jsx("p",{children:"Are you sure?"}),e.jsx("p",{children:"This action cannot be undone."})]})})})]})]})]})}async function We({apiKeyId:t,body:s,serviceAccountId:a}){const i=C(K.serviceAccounts.apiKeys.detail(a,t)),n=await w(i,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(n.status===404&&V(),!n.ok){const r=await n.json().then(o=>Array.isArray(o.detail)?o.detail[0]:o.detail||"An error occurred").catch(()=>`Failed to update key ${t}`);throw new S({status:n.status,statusText:n.statusText,message:r})}return n.json()}function Xe(t){return F({...t,mutationFn:async({serviceAccountId:s,apiKeyId:a,body:i})=>{await We({serviceAccountId:s,apiKeyId:a,body:i})}})}function et({isActive:t,serviceAccountId:s,apiKeyId:a}){const{toast:i}=k(),n=A(),[r,o]=x.useState(!1),{mutate:u}=Xe({onError(d){T(d)&&i({status:"error",emphasis:"subtle",description:d.message,rounded:!0})},onSuccess(){n.invalidateQueries({queryKey:g.apiKeysKey(s)})}});function m(d){d?l(d):o(!0)}async function l(d){u({serviceAccountId:s,apiKeyId:a,body:{active:d}})}return e.jsxs(e.Fragment,{children:[e.jsx($,{open:r,onOpenChange:o,children:e.jsxs(pe,{children:[e.jsx(fe,{children:e.jsx(ye,{children:"Deactivate API Key"})}),e.jsxs("div",{className:"p-5 text-text-md text-theme-text-secondary",children:[e.jsx("p",{children:"Are you sure?"}),e.jsx("p",{children:"You won't be able to use this API Key to authenticate with the server anymore."})]}),e.jsxs(je,{className:"gap-[10px]",children:[e.jsx(ge,{asChild:!0,children:e.jsx(f,{size:"sm",intent:"secondary",children:"Cancel"})}),e.jsx(f,{onClick:()=>l(!1).then(d=>o(!1)),intent:"primary",type:"button",children:"Deactivate"})]})]})}),e.jsx(Q,{checked:t,onCheckedChange:m})]})}function tt(){return[{id:"select",meta:{width:"1%"},header:({table:t})=>e.jsx(I,{id:"check-all",checked:t.getIsAllRowsSelected(),onCheckedChange:s=>t.toggleAllRowsSelected(s==="indeterminate"?!0:s)}),cell:({row:t})=>e.jsx(I,{id:`check-${t.id}`,checked:t.getIsSelected(),onCheckedChange:t.getToggleSelectedHandler()})},{id:"name",header:"Name",accessorFn:t=>({name:t.name}),cell:({row:t})=>{var s;return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(ee,{className:"h-5 w-5 flex-shrink-0 fill-primary-400"}),e.jsxs("div",{className:"group/copybutton flex flex-col",children:[e.jsx("div",{className:"flex flex-row items-center space-x-1",children:e.jsx("div",{className:"flex items-center space-x-1 text-text-md font-semibold text-theme-text-primary",children:t.original.name})}),e.jsx("div",{className:"flex items-center gap-1 text-text-sm text-theme-text-secondary",children:(s=t.original.metadata)==null?void 0:s.description})]})]})}},{id:"last-login",header:"Last Login",accessorFn:t=>{var s;return(s=t.metadata)==null?void 0:s.last_login},cell:({row:t})=>{var s,a;return(s=t.original.metadata)!=null&&s.last_login?e.jsx("p",{children:e.jsx(M,{short:!0,dateString:(a=t.original.metadata)==null?void 0:a.last_login})}):e.jsx("p",{children:"Never"})}},{id:"last-rotated",header:"Last Rotated",accessorFn:t=>{var s;return(s=t.metadata)==null?void 0:s.last_rotated},cell:({row:t})=>{var r;const s=(r=t.original.metadata)==null?void 0:r.last_rotated;if(!s)return e.jsx("p",{children:"Never"});const a=new Date(`${s}Z`),i=Fe(a),n=Pe(a);return e.jsxs("div",{children:[e.jsx("p",{children:e.jsx(M,{short:!0,dateString:s})}),(i||n)&&e.jsx("p",{className:`${n?"text-theme-text-error":"text-theme-text-warning"} text-text-xs`,children:n?"More than 1 year old":"More than 6 months old"})]})}},{id:"active",header:"Active",accessorFn:t=>{var s;return(s=t.body)==null?void 0:s.active},cell:({row:t})=>{var s,a;return e.jsx(et,{isActive:!!((s=t.original.body)!=null&&s.active),serviceAccountId:((a=t.original.body)==null?void 0:a.service_account.id)||"",apiKeyId:t.original.id})}},{id:"actions",header:"",meta:{width:"5%"},cell:({row:t})=>{var a;const s=(a=t.original.body)==null?void 0:a.service_account.id;return s?e.jsx("div",{className:"flex items-center justify-end",children:e.jsx(Ze,{serviceAccountId:s,apiKeyId:t.original.id})}):null}}]}function st(){const{serviceAccountId:t}=O();return e.jsxs(G,{className:"flex flex-col items-center justify-center space-y-4 p-9",children:[e.jsxs("div",{className:"space-y-2 text-center",children:[e.jsx("p",{className:"text-display-xs font-semibold text-theme-text-primary",children:"This service account doesn't have any API Keys yet"}),e.jsx("p",{className:"text-theme-text-secondary",children:"Generate your first API Key to enable secure interactions with the ZenML Server."})]}),e.jsx(se,{isFallback:!0,serviceAccountId:t})]})}function at(){const{serviceAccountId:t}=O(),s=J(),{rowSelection:a,setRowSelection:i}=v(),n=x.useMemo(()=>tt(),[]),{data:r}=P({...R.serviceAccountApiKeys(t,{...s,sort_by:"desc:created",hydrate:!0})});return r&&(r==null?void 0:r.items.length)<1&&!s.name?e.jsx(st,{}):e.jsxs(e.Fragment,{children:[e.jsx(nt,{serviceAccountId:t}),e.jsxs("div",{className:"flex flex-col items-center gap-5",children:[e.jsx("div",{className:"w-full",children:r?e.jsx(ve,{getRowId:o=>o.id,rowSelection:a,onRowSelectionChange:i,columns:n,data:r.items}):e.jsx(j,{className:"h-[500px] w-full"})}),r?r.total_pages>1&&e.jsx(Te,{searchParams:s,paginate:r}):e.jsx(j,{className:"h-[36px] w-[300px]"})]})]})}function nt({serviceAccountId:t}){const s=J(),{selectedRowCount:a}=v();return e.jsxs("div",{className:"mb-4 flex flex-wrap items-center justify-between gap-2",children:[a?e.jsx($e,{serviceAccountId:t}):e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(Re,{searchParams:s})}),e.jsx(se,{isFallback:!1,serviceAccountId:t})]})}function rt(t){const{setBreadcrumbs:s}=Ae();x.useEffect(()=>{t&&s([...be,{label:t.name,href:De.settings.service_accounts.detail(t.id)}])},[s,t])}function it(){var i,n,r,o;const{serviceAccountId:t}=O(),s=P({...R.serviceAccountDetail(t),throwOnError:!0});if(rt(s.data),s.isPending)return e.jsx(ot,{});if(s.isError)return null;const a=s.data;return e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Ne,{size:"xl",serviceAccountName:a.name,serviceAccountAvatar:((i=a.body)==null?void 0:i.avatar_url)??void 0}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"text-text-xl font-semibold",children:a.name}),e.jsx(we,{size:"sm",color:(n=a.body)!=null&&n.active?"light-purple":"light-grey",className:"text-text-xs font-semibold uppercase",children:(r=a.body)!=null&&r.active?"active":"inactive"})]}),e.jsx("p",{className:"text-text-md text-theme-text-secondary",children:(o=a.metadata)==null?void 0:o.description})]})]})}function ot(){return e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(j,{className:"h-9 w-9"}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(j,{className:"h-6 w-[100px]"}),e.jsx(j,{className:"h-5 w-[50px]"})]}),e.jsx(j,{className:"h-5 w-[150px]"})]})]})}function Pt(){return e.jsxs(G,{className:"space-y-5 p-5",children:[e.jsxs("div",{children:[e.jsx(it,{}),e.jsx("h1",{className:"my-5 text-text-lg font-semibold",children:"API Keys"})]}),e.jsx(ze,{children:e.jsx(at,{})})]})}export{Pt as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{r as d,j as e}from"./@radix-
|
1
|
+
import{r as d,j as e}from"./@radix-B1sy0Lhr.js";import{T as y,P as g}from"./ProCta-CUkpV3PJ.js";import{z as c,v as N,x as b,y as v,E as w,u as S,d as k,I as m,B as p,c as F,r as P}from"./index-CO6UN3UX.js";import{t as U}from"./zod-D48zuELD.js";import{c as C}from"./@tanstack-Dwlisomv.js";import{u as E}from"./index.esm-SBF9nn_P.js";import{S as M}from"./check-circle-CG6XAdk-.js";import{L}from"./@react-router-CHjLNlgw.js";import"./check-C9Nye5lR.js";import"./@reactflow-gbyyU3kq.js";const h=d.createContext(null);function z({children:s}){const[t,n]=d.useState(!1);return e.jsx(h.Provider,{value:{setSubmitSuccess:n,submitSuccess:t},children:s})}function f(){const s=d.useContext(h);if(s===null)throw new Error("useUpgradeContext must be used within an UpgradeProvider");return s}const B=c.object({name:c.string().min(1),company:c.string().min(1),email:c.string().email()});function T(){const{setSubmitSuccess:s}=f(),{toast:t}=N(),n=E({resolver:U(B),defaultValues:{company:"",email:"",name:""}}),a=C({mutationFn:I,onSuccess:()=>s(!0),onError:r=>{t({emphasis:"subtle",status:"error",rounded:!0,description:r.message})}});async function i(r,o,l){a.mutate({...r,userId:o,isDebug:l})}return{form:n,submitFormMutation:a,handleSubmitForm:i}}async function I({company:s,email:t,isDebug:n,name:a,userId:i}){return b(v,{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json"},body:JSON.stringify([{debug:n,event:"Upgrade initiated",type:"track",user_id:i,properties:{company:s,email:t,name:a}}])})}function Z(){return e.jsxs("div",{className:"space-y-5",children:[e.jsx(_,{}),e.jsx(D,{})]})}function _(){return e.jsxs("div",{className:"flex flex-col items-center space-y-0.5",children:[e.jsx("h1",{className:"text-center text-display-xs font-semibold",children:"Upgrade to ZenML Pro on your own VPC"}),e.jsx("p",{className:"text-theme-text-secondary",children:"Direct self-deployment, no sales calls"})]})}function D(){const s=w(),t=S(),{form:n,handleSubmitForm:a,submitFormMutation:i}=T(),{register:r,handleSubmit:o,formState:{isValid:l,isSubmitting:u}}=n,{isPending:x}=i;return s.isPending||t.isPending?e.jsx(k,{className:"h-[250px] w-full"}):s.isError||t.isError?e.jsx("p",{children:"Something went wrong...."}):e.jsxs("div",{className:"space-y-5",children:[e.jsxs("form",{onSubmit:o(j=>a(j,t.data.id,!!s.data.debug)),className:"space-y-5",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("label",{htmlFor:"name",className:"text-text-sm",children:"Your Name"}),e.jsx(m,{...r("name"),id:"name",className:"w-full"})]}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("label",{htmlFor:"company",className:"text-text-sm",children:"Company"}),e.jsx(m,{...r("company"),id:"company",className:"w-full"})]}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("label",{htmlFor:"email",className:"text-text-sm",children:"Email address"}),e.jsx(m,{...r("email"),id:"email",className:"w-full"})]}),e.jsxs(p,{size:"md",className:"w-full justify-center",disabled:u||x||!l,type:"submit",children:[(x||u)&&e.jsx("div",{role:"alert","aria-busy":"true",className:"full h-[20px] w-[20px] animate-spin rounded-rounded border-2 border-theme-text-negative border-b-theme-text-brand"}),"Continue"]})]}),e.jsxs("p",{className:"text-center text-text-xs text-theme-text-secondary",children:["By submitting the form you accept our"," ",e.jsx("a",{className:"link",href:"https://www.zenml.io/cloud-terms-and-privacy",target:"_blank",rel:"noopener noreferrer",children:"terms of use"})," ","and"," ",e.jsx("a",{href:"https://www.zenml.io/privacy-policy",target:"_blank",rel:"noopener noreferrer",className:"link",children:"privacy policy"}),"."]})]})}function R(){return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("h2",{className:"text-display-xs font-semibold",children:"As easy as following the steps"}),e.jsx("p",{className:"text-theme-text-secondary",children:"From sign-up to deployment in minutes"})]}),e.jsx(W,{})]})}const V=["Fill out your details","Receive comprehensive ZenML Pro documentation","Deploy ZenML Pro and upgrade your tenant","Get a free 14-day trial license"];function W(){return e.jsx("ol",{className:"space-y-3",children:V.map((s,t)=>e.jsxs("li",{className:"flex items-center space-x-1",children:[e.jsx(Y,{children:t+1}),e.jsx("span",{children:s})]},t))})}function Y({className:s,...t}){return e.jsx("div",{...t,className:F("flex h-4 w-4 shrink-0 items-center justify-center rounded-rounded bg-warning-400 text-text-xs text-theme-text-negative")})}function q(){return e.jsxs("section",{className:"flex w-full flex-col-reverse items-center justify-end gap-5 lg:flex-row lg:gap-[100px] xl:pl-[200px] 2xl:pl-[300px]",children:[e.jsx(R,{}),e.jsx(Z,{})]})}const G="/assets/upgrade-form-CwRHBuXB.webp",H=["Comprehensive documentation to get started","Your 14-day trial license key","Step-by-step deployment instructions"];function O(){return e.jsxs("section",{className:"flex h-full w-full flex-col items-center justify-center space-y-5",children:[e.jsx(M,{className:"h-[120px] w-[120px] fill-theme-text-success"}),e.jsxs("div",{className:"space-y-7",children:[e.jsxs("div",{className:"max-w-[500px] space-y-2 text-center",children:[e.jsx("h1",{className:"text-display-xs font-semibold",children:"You're on your way to ZenML Pro!"}),e.jsx("p",{className:"text-theme-text-secondary",children:"Thank you for choosing to upgrade to ZenML Pro. We've received your request and you'll receive an email with:"}),e.jsx("ul",{className:"mx-auto w-fit space-y-3",children:H.map((s,t)=>e.jsxs("li",{className:"flex items-center gap-1",children:[e.jsx(y,{}),e.jsx("span",{children:s})]},t))}),e.jsxs("p",{className:"text-theme-text-secondary",children:["Meanwhile, you can ask your questions in our"," ",e.jsx("a",{className:"link",href:"https://zenml.io/slack",target:"_blank",rel:"noopener noreferrer",children:"Slack channel"})," ","or"," ",e.jsx("a",{className:"link",href:"https://docs.zenml.io",target:"_blank",rel:"noopener noreferrer",children:"check our documentation."})]})]}),e.jsx(p,{size:"md",className:"mx-auto",children:e.jsx(L,{to:P.projects.overview,children:"Go to Dashboard"})})]})]})}function A(){const{submitSuccess:s}=f();return e.jsxs(g,{className:"relative min-h-[620px]",children:[e.jsx("img",{src:G,className:"absolute hidden -translate-x-3/4 -rotate-[5deg] scale-75 xl:block 2xl:-translate-x-[60%]"}),s===!1&&e.jsx(q,{}),s===!0&&e.jsx(O,{})]})}function ae(){return e.jsx("div",{className:"flex h-full items-center justify-center",children:e.jsx("div",{className:"layout-container",children:e.jsx(z,{children:e.jsx(A,{})})})})}export{ae as default};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{r as i,j as e}from"./@radix-B1sy0Lhr.js";import{u as d,d as c,bg as y,aw as m,L as N,M as w,B as x,N as L,O as b,r as u,bh as P,k as H,R as C,U as h,V as p,a5 as S,W as j,bi as f,l as k,ay as M,m as z,c as E,b9 as U}from"./index-CO6UN3UX.js";import{h as D,b as g}from"./@tanstack-Dwlisomv.js";import{L as v}from"./@react-router-CHjLNlgw.js";import{S as T}from"./pipeline-CDJSAXrb.js";import{S as R}from"./terminal-C2tAF2XG.js";import{u as B}from"./update-current-user-mutation-B3Dpv3u6.js";import{S as Z}from"./plus-DOrkJCmy.js";import"./@reactflow-gbyyU3kq.js";const _=s=>i.createElement("svg",{viewBox:"0 0 24 24",fill:"black",xmlns:"http://www.w3.org/2000/svg",...s},i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.66438 2.01352C10.2092 2.10431 10.5772 2.61954 10.4864 3.16431L9.84711 6.99991H15.8195L16.5136 2.83551C16.6044 2.29074 17.1196 1.92272 17.6644 2.01352C18.2091 2.10431 18.5772 2.61954 18.4864 3.16431L17.8471 6.99991H20.5C21.0523 6.99991 21.5 7.44763 21.5 7.99991C21.5 8.5522 21.0523 8.99991 20.5 8.99991H17.5138L16.5138 14.9999H19.5C20.0523 14.9999 20.5 15.4476 20.5 15.9999C20.5 16.5522 20.0523 16.9999 19.5 16.9999H16.1804L15.4864 21.1643C15.3956 21.7091 14.8803 22.0771 14.3356 21.9863C13.7908 21.8955 13.4228 21.3803 13.5136 20.8355L14.1528 16.9999H8.18045L7.48638 21.1643C7.39558 21.7091 6.88036 22.0771 6.33559 21.9863C5.79082 21.8955 5.4228 21.3803 5.51359 20.8355L6.15286 16.9999H2.5C1.94772 16.9999 1.5 16.5522 1.5 15.9999C1.5 15.4476 1.94772 14.9999 2.5 14.9999H6.48619L7.48619 8.99991H3.5C2.94772 8.99991 2.5 8.5522 2.5 7.99991C2.5 7.44763 2.94772 6.99991 3.5 6.99991H7.81953L8.51359 2.83551C8.60439 2.29074 9.11961 1.92272 9.66438 2.01352ZM9.51378 8.99991L8.51378 14.9999H14.4862L15.4862 8.99991H9.51378Z"})),I=s=>i.createElement("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",...s},i.createElement("g",{id:"settings"},i.createElement("g",{id:"Icon (Stroke)"},i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79084 8 7.99998 9.79086 7.99998 12C7.99998 14.2091 9.79084 16 12 16ZM14 12C14 13.1046 13.1046 14 12 14C10.8954 14 9.99998 13.1046 9.99998 12C9.99998 10.8954 10.8954 10 12 10C13.1046 10 14 10.8954 14 12Z"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.3426 2.32757C13.1416 0.826354 10.8583 0.826356 9.65737 2.32758L7.8196 4.62479C7.62983 4.86201 7.34251 5.0001 7.03873 5.0001H5.23605C3.0059 5.0001 1.55541 7.34703 2.55277 9.34174L3.65834 11.5529C3.7991 11.8344 3.7991 12.1658 3.65834 12.4473L2.55277 14.6585C1.55542 16.6532 3.0059 19.0001 5.23605 19.0001H7.03873C7.34251 19.0001 7.62983 19.1382 7.8196 19.3754L9.65737 21.6726C10.8584 23.1738 13.1416 23.1738 14.3426 21.6726L16.1804 19.3754C16.3701 19.1382 16.6574 19.0001 16.9612 19.0001H18.7639C20.9941 19.0001 22.4445 16.6532 21.4472 14.6585L20.3416 12.4473C20.2009 12.1658 20.2009 11.8344 20.3416 11.5529L21.4472 9.34174C22.4445 7.34703 20.9941 5.0001 18.7639 5.0001H16.9612C16.6574 5.0001 16.3701 4.86201 16.1804 4.62479L14.3426 2.32757ZM11.2191 3.57697C11.6194 3.07656 12.3805 3.07656 12.7808 3.57696L14.6186 5.87418C15.1879 6.58583 16.0499 7.0001 16.9612 7.0001H18.7639C19.5073 7.0001 19.9908 7.78241 19.6583 8.44731L18.5528 10.6585C18.1305 11.503 18.1305 12.4972 18.5528 13.3417L19.6583 15.5529C19.9908 16.2178 19.5073 17.0001 18.7639 17.0001H16.9612C16.0499 17.0001 15.1879 17.4144 14.6186 18.126L12.7809 20.4232C12.3805 20.9236 11.6194 20.9236 11.2191 20.4232L9.38134 18.126C8.81202 17.4144 7.95008 17.0001 7.03873 17.0001H5.23605C4.49267 17.0001 4.00917 16.2178 4.34162 15.5529L5.44719 13.3417C5.86949 12.4972 5.86949 11.503 5.44719 10.6585L4.34162 8.44731C4.00917 7.78241 4.49267 7.0001 5.23605 7.0001H7.03873C7.95008 7.0001 8.81202 6.58583 9.38134 5.87418L11.2191 3.57697Z"})))),Q=s=>i.createElement("svg",{viewBox:"0 0 24 24",fill:"black",xmlns:"http://www.w3.org/2000/svg",...s},i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.32406 1C8.33723 1 8.35044 1 8.36368 1L15.6768 1C16.0385 0.999969 16.3745 0.999939 16.6496 1.02491C16.9375 1.05104 17.2968 1.11316 17.6284 1.33301C18.0677 1.62422 18.3743 2.07707 18.4816 2.5931C18.5625 2.98268 18.4868 3.33932 18.4041 3.61632C18.3251 3.88107 18.2003 4.19305 18.0659 4.52883L17.0433 7.0853C17.0204 7.1427 17.0092 7.17072 17.0015 7.1913C17.0014 7.19179 17.0012 7.19225 17.001 7.1927C17.001 7.19318 17.001 7.19368 17.001 7.19419C17.0005 7.21616 17.0004 7.24632 17.0004 7.30814V9.43876C17.0004 9.55027 17.0006 9.60549 17.0022 9.64564C17.0022 9.64665 17.0023 9.64763 17.0023 9.64856C17.0029 9.64932 17.0034 9.6501 17.0041 9.65092C17.0279 9.68326 17.0622 9.7265 17.1319 9.81357L18.7295 11.8106C19.0385 12.1968 19.3122 12.5388 19.504 12.829C19.6913 13.1123 19.9193 13.5133 19.9198 13.9978C19.9205 14.6069 19.6435 15.1831 19.1675 15.5631C18.7888 15.8654 18.3333 15.9379 17.995 15.9686C17.6486 16.0001 17.2106 16 16.7159 16L13.0004 16L13.0004 22C13.0004 22.5523 12.5527 23 12.0004 23C11.4481 23 11.0004 22.5523 11.0004 22L11.0004 16L7.28496 16C6.79028 16 6.35222 16.0001 6.00585 15.9686C5.66758 15.9379 5.21203 15.8654 4.83335 15.5631C4.35733 15.1831 4.0804 14.6069 4.08106 13.9978C4.08158 13.5133 4.30954 13.1123 4.49686 12.829C4.68867 12.5388 4.96234 12.1968 5.27138 11.8105L6.86895 9.81357C6.93861 9.7265 6.97297 9.68327 6.99681 9.65092C6.99741 9.6501 6.99799 9.64932 6.99854 9.64856C6.99858 9.64762 6.99862 9.64665 6.99866 9.64564C7.00025 9.60549 7.00043 9.55027 7.00043 9.43876V7.30814C7.00043 7.24632 7.00037 7.21617 6.99987 7.1942C6.99986 7.19368 6.99985 7.19318 6.99984 7.1927C6.99967 7.19225 6.9995 7.19179 6.99932 7.1913C6.99162 7.17072 6.98047 7.1427 6.95752 7.0853L5.94964 4.56562C5.94473 4.55333 5.93982 4.54107 5.93493 4.52884C5.80058 4.19306 5.67575 3.88107 5.59675 3.61632C5.51409 3.33932 5.43834 2.98268 5.51929 2.5931C5.62652 2.07707 5.93312 1.62422 6.37241 1.33301C6.70406 1.11316 7.06333 1.05104 7.35122 1.02491C7.62638 0.999939 7.9624 0.999969 8.32406 1ZM16.6714 14C17.2242 14 17.5695 13.999 17.8141 13.9768C17.8312 13.9752 17.847 13.9736 17.8615 13.972C17.8537 13.9596 17.8451 13.9463 17.8356 13.932C17.7002 13.7271 17.4853 13.4568 17.14 13.0252L15.5702 11.063C15.5614 11.052 15.5523 11.0407 15.5431 11.0292C15.4416 10.903 15.3139 10.744 15.2194 10.5591C15.1374 10.3987 15.0775 10.2278 15.0413 10.0513C14.9995 9.84793 15 9.64398 15.0004 9.48205C15.0004 9.46725 15.0004 9.45281 15.0004 9.43876V7.30814C15.0004 7.30039 15.0004 7.29243 15.0004 7.28429C15.0003 7.19422 15.0001 7.08077 15.0134 6.96478C15.025 6.86392 15.0442 6.76409 15.071 6.66615C15.1017 6.55352 15.144 6.44823 15.1775 6.36464C15.1806 6.35709 15.1835 6.34971 15.1864 6.34252L16.1943 3.82284C16.3484 3.43753 16.4378 3.21134 16.4876 3.04443C16.4903 3.03549 16.4927 3.02712 16.4949 3.01929C16.4868 3.01843 16.4781 3.01757 16.4689 3.01672C16.2954 3.00098 16.0522 3 15.6372 3H8.36368C7.94869 3 7.70547 3.00098 7.53199 3.01672C7.52271 3.01757 7.51404 3.01843 7.50595 3.01929C7.50815 3.02712 7.51057 3.03549 7.51324 3.04443C7.56305 3.21134 7.65247 3.43753 7.8066 3.82284L8.81447 6.34252C8.81735 6.34971 8.82031 6.35709 8.82334 6.36465C8.8569 6.44823 8.89917 6.55352 8.9299 6.66615C8.95662 6.76409 8.97585 6.86392 8.98741 6.96478C9.00071 7.08077 9.00057 7.19423 9.00045 7.2843C9.00044 7.29244 9.00043 7.30039 9.00043 7.30814V9.43876C9.00043 9.45281 9.00046 9.46725 9.0005 9.48205C9.00087 9.64398 9.00133 9.84793 8.95959 10.0513C8.92337 10.2278 8.86344 10.3987 8.78146 10.5591C8.68701 10.744 8.55923 10.903 8.45778 11.0292C8.44852 11.0407 8.43947 11.052 8.43069 11.063L6.86091 13.0252C6.51558 13.4568 6.30064 13.7271 6.16521 13.932C6.15573 13.9463 6.14712 13.9596 6.13932 13.972C6.15384 13.9736 6.16964 13.9752 6.18677 13.9768C6.43132 13.999 6.77664 14 7.32943 14H16.6714Z"}));function V({projectId:s}){var n;const t=d();if(t.isPending||t.isError)return e.jsxs(e.Fragment,{children:[e.jsx(c,{className:"h-[44px] w-full"}),e.jsx("div",{"aria-hidden":"true",className:"my-1 h-[1px] bg-theme-border-moderate"})]});const a=((n=t.data.body)==null?void 0:n.default_project_id)===s,l=t.data.id;return a?e.jsx(o,{userId:l}):e.jsx(o,{projectId:s,userId:l})}function o({projectId:s}){const t=D(),{mutate:r,isPending:a}=B({onSuccess:()=>{t.invalidateQueries({queryKey:y()})}});return e.jsx(m,{onSelect:()=>{r({default_project_id:s||null})},disabled:a,className:"hover:cursor-pointer",icon:e.jsx(Q,{}),children:s?"Set as default":"Unset as default"})}function q({projectId:s}){return e.jsxs(N,{children:[e.jsx(w,{asChild:!0,children:e.jsx(x,{className:"z-20 flex aspect-square size-6 shrink-0 items-center justify-center bg-white p-0",intent:"secondary",emphasis:"bold",size:"sm",children:e.jsx(L,{className:"h-5 w-5 fill-theme-text-secondary"})})}),e.jsxs(b,{className:"z-10",align:"end",sideOffset:1,children:[e.jsx(m,{asChild:!0,icon:e.jsx(I,{}),children:e.jsx(v,{className:"hover:cursor-pointer",to:u.projects.settings.repositories.overview,children:"Project Settings"})}),e.jsx("div",{"aria-hidden":"true",className:"my-1 h-[1px] bg-theme-border-moderate"}),e.jsx(V,{projectId:s})]})]})}function F({project:s,isDefault:t=!1}){var l;const r=(l=s.body)==null?void 0:l.display_name,a=`https://public-flavor-logos.s3.eu-central-1.amazonaws.com/projects/${P(s.name)}.jpg`;return e.jsxs(H,{className:"group relative h-full overflow-hidden transition-all duration-300 hover:shadow-md",children:[e.jsxs("div",{className:"relative h-[180px] w-full",children:[e.jsx("img",{alt:s.name,src:a,className:"h-full w-full object-cover"}),e.jsx("div",{className:"absolute right-2 top-2 z-10 opacity-0 transition-all duration-300 group-hover:opacity-100",children:e.jsx(q,{projectId:s.id})})]}),e.jsxs("div",{className:"space-y-5 p-5",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"truncate text-text-xl font-semibold",children:r}),t&&e.jsx($,{})]}),e.jsxs("div",{className:"flex items-center gap-0.5 text-text-sm text-theme-text-secondary",children:[e.jsx(_,{width:16,height:16,className:"shrink-0 fill-theme-text-tertiary"}),e.jsx("p",{className:"truncate",children:s.name})]})]}),e.jsx("div",{className:"space-y-4",children:e.jsx(K,{projectName:s.id})}),e.jsx(O,{projectId:s.name})]}),e.jsx(v,{to:u.projects.pipelines.overview,className:"absolute inset-0"})]})}function K({projectName:s}){const t=g({...f.projectStatistics(s)});if(t.isPending)return e.jsx(c,{className:"h-4 w-[120px]"});if(t.isError)return null;const r=t.data;return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsxs("div",{className:"flex items-center gap-0.5",children:[e.jsx(T,{width:16,height:16,className:"shrink-0 fill-theme-text-tertiary"}),e.jsxs("p",{className:"text-text-sm text-theme-text-secondary",children:[r.pipelines," pipelines"]})]}),e.jsxs("div",{className:"flex items-center gap-0.5",children:[e.jsx(R,{width:16,height:16,className:"shrink-0 fill-theme-text-tertiary"}),e.jsxs("p",{className:"text-text-sm text-theme-text-secondary",children:[r.runs," runs"]})]})]})}function O({projectId:s}){const{copied:t,copyToClipboard:r}=k(),a=`zenml project set ${s}`;return e.jsx("div",{className:"flex items-center gap-2 truncate",children:e.jsxs("div",{className:"flex w-full items-center justify-between gap-1 truncate rounded-md border border-theme-border-moderate bg-theme-surface-secondary px-2 py-1 text-text-sm text-theme-text-secondary",children:[e.jsx("code",{className:"truncate",children:a}),t?e.jsxs(e.Fragment,{children:[e.jsx(M,{className:"h-3 w-3 shrink-0 fill-theme-text-tertiary"}),e.jsx("p",{className:"sr-only",children:"copied successfully"})]}):e.jsxs("button",{className:"z-10",onClick:()=>r(a),children:[e.jsx(z,{className:"h-3 w-3 shrink-0 fill-theme-text-tertiary"}),e.jsx("p",{className:"sr-only",children:"Copy tenantUrl"})]})]})})}function $(){return e.jsx(C,{children:e.jsxs(h,{children:[e.jsx(p,{className:"z-10",children:e.jsx(S,{size:"sm",rounded:!1,className:"font-semibold uppercase",color:"purple",children:"Default"})}),e.jsxs(j,{className:"max-w-[320px] space-y-0.5",children:[e.jsx("p",{className:"font-semibold",children:"This is your default project in this workspace"}),e.jsx("p",{children:"This project is used automatically when no specific project is selected"})]})]})})}function G(){var l,n;const s=g({...f.projectDetail("default")}),t=d();if(s.isPending||t.isPending)return e.jsx("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:e.jsx("div",{className:"h-full w-full",children:e.jsx(c,{className:"h-[400px] w-full"})})});if(s.isError)return e.jsx("p",{children:s.error.message});const r=s.data,a=(n=(l=t.data)==null?void 0:l.body)==null?void 0:n.default_project_id;return e.jsx("ul",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:e.jsx("li",{children:e.jsx(F,{project:r,isDefault:a===r.id})})})}function W(){return e.jsx("div",{className:"flex flex-wrap items-center justify-end gap-2",children:e.jsx(C,{children:e.jsxs(h,{children:[e.jsx(p,{className:"z-10",children:e.jsxs("div",{className:E(U({size:"md"}),"pointer-events-none bg-primary-50"),children:[e.jsx(Z,{width:24,height:24,className:"shrink-0 fill-white"}),"New Project"]})}),e.jsxs(j,{side:"bottom",align:"end",className:"max-w-[320px] space-y-4 border border-theme-border-moderate bg-theme-surface-primary p-5 text-text-md text-theme-text-primary",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("p",{children:"Upgrade to create Projects"}),e.jsx("p",{className:"text-text-sm text-theme-text-secondary",children:"Get access to additional projects and workspaces, manage users and permissions, and get advanced features with ZenML Pro"})]}),e.jsx(x,{asChild:!0,children:e.jsx("a",{target:"_blank",className:"block w-fit",rel:"noopener noreferrer",href:"https://zenml.io/book-your-demo",children:"Book a demo"})})]})]})})})}function i1(){return e.jsxs("div",{className:"layout-container space-y-4 py-5",children:[e.jsx(W,{}),e.jsx(G,{})]})}export{i1 as default};
|
@@ -0,0 +1 @@
|
|
1
|
+
import{r as d,j as e}from"./@radix-B1sy0Lhr.js";import{u as V,W as ie,L as ce}from"./LeftSideMenu-D5UEs4vB.js";import{$ as le,a$ as de,r as F,a1 as ue,z as y,B as b,c as L,d as N,b0 as me,T as he,aZ as S,x as H,F as O,G as Z,H as Q,b1 as xe,b2 as q,b3 as I,b4 as W,b5 as Y,aG as $,b6 as k,aM as pe,w as K,I as z,b7 as fe,u as je,v as ye,X as B,a2 as ge,Y as Ce}from"./index-CO6UN3UX.js";import{W as A,H as R,B as E,F as P}from"./Wizard-2FIi8JNY.js";import{t as U}from"./zod-D48zuELD.js";import{a as C,C as w,u as G,F as J}from"./index.esm-SBF9nn_P.js";import{S as X}from"./arrow-left-BFB2mgJo.js";import{L as ee}from"./@react-router-CHjLNlgw.js";import{R as ve}from"./resource-tyes-list-CugyWUAE.js";import{b as M,c as te,h as be}from"./@tanstack-Dwlisomv.js";import{S as Ne}from"./transform-S7omcvTm.js";import{g as Se,a as we,D as Te,b as Ve}from"./form-C1jJgRy1.js";import{A as Me}from"./index.es-CZMSrR6z.js";import{S as ke}from"./Lock-u8WOoTTd.js";import{S as _}from"./check-circle-CG6XAdk-.js";import{d as _e}from"./index-g7wOyc86.js";import{S as Fe}from"./package-pR4bbXJp.js";import{C as Ae,R as Re}from"./resource-type-tooltip-V-zdiLKz.js";import{e as Ee,R as Pe,E as ze}from"./service-connectors-nF4-OXB9.js";import"./Tick-BQ7_xDBl.js";import"./check-C9Nye5lR.js";import"./@reactflow-gbyyU3kq.js";import"./plus-DOrkJCmy.js";import"./trash-D9LA4VFD.js";import"./info-CI2szPUG.js";function Be(){const{setBreadcrumbs:t}=le();d.useEffect(()=>{t([...de,{label:"New Connector",href:F.settings.connectors.create}])},[t])}function De(){return Be(),e.jsx(ue,{children:e.jsx("p",{className:"text-display-xs font-semibold",children:"Register a Service Connector"})})}const se=d.createContext(null);function Le({children:t}){const[s,r]=d.useState(""),[n,a]=d.useState(null);return e.jsx(se.Provider,{value:{connectorType:s,setConnectorType:r,createdConnector:n,setCreatedConnector:a},children:t})}function v(){const t=d.useContext(se);if(!t)throw new Error("useRegisterConnectorContext must be used within a RegisterConnectorProvider");return t}const He=y.object({connectorType:y.string().trim().min(1)});function re(){return e.jsx(b,{size:"md",intent:"secondary",asChild:!0,children:e.jsx(ee,{to:F.settings.connectors.overview,children:"Cancel"})})}function ne({isPending:t,...s}){return e.jsxs(b,{type:"submit",size:"md",intent:"primary",...s,children:[!!t&&e.jsx("div",{role:"alert","aria-busy":"true",className:"full h-[20px] w-[20px] animate-spin rounded-rounded border-2 border-theme-text-negative border-b-theme-text-brand"}),e.jsx("span",{children:"Next"}),e.jsx(X,{width:24,height:24,className:"size-5 shrink-0 rotate-180 fill-white"})]})}function Oe(t){const{goToPreviousStep:s}=V();return e.jsxs(b,{onClick:()=>s(),type:"button",size:"md",intent:"primary",emphasis:"subtle",...t,children:[e.jsx(X,{width:24,height:24,className:"size-5 shrink-0 fill-primary-600"}),"Prev"]})}const Ze=t=>d.createElement("svg",{viewBox:"0 0 24 24",fill:"black",xmlns:"http://www.w3.org/2000/svg",...t},d.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.24923 9.14303C6.0632 6.17816 8.7764 4 12 4C15.2236 4 17.9368 6.17816 18.7508 9.14303C21.1861 9.70961 23 11.8925 23 14.5C23 17.5376 20.5376 20 17.5 20H6.5C3.46243 20 1 17.5376 1 14.5C1 11.8925 2.8139 9.70961 5.24923 9.14303ZM12 6C9.51785 6 7.45643 7.80968 7.0665 10.1816C6.99268 10.6306 6.62505 10.9731 6.17196 11.0151C4.39329 11.1798 3 12.6778 3 14.5C3 16.433 4.567 18 6.5 18H17.5C19.433 18 21 16.433 21 14.5C21 12.6778 19.6067 11.1798 17.828 11.0151C17.375 10.9731 17.0073 10.6306 16.9335 10.1816C16.5436 7.80968 14.4822 6 12 6Z"}));function Qe(){return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Ze,{className:"size-5 shrink-0 stroke-primary-400"}),e.jsx("p",{className:"font-sebmibold text-text-lg",children:"Select a Service Connector Type"})]}),e.jsx("p",{className:"text-theme-text-secondary",children:"Select the type of service connector you want to create. This will allow you to integrate your cloud resources with ZenML for model deployment and management."})]})}function qe(){const t=M(S.serviceConnectorTypeList()),{control:s}=C();if(t.isError)return e.jsx("p",{children:"Failed to fetch Connector Type List"});if(t.isPending)return e.jsx($e,{});const r=t.data;return e.jsx("ul",{className:"space-y-2",children:r.map(n=>e.jsx("li",{children:e.jsx(w,{control:s,name:"connectorType",render:({field:{onChange:a,value:i}})=>e.jsxs("label",{className:L("flex w-full cursor-pointer items-center gap-5 rounded-md border p-5 transition-colors",{"border-primary-400 bg-primary-25 shadow-sm":i===n.connector_type,"border-theme-border-moderate hover:border-theme-border-bold hover:shadow-sm":i!==n.connector_type}),children:[e.jsx("input",{type:"radio",name:"connectorType",onChange:()=>a(n.connector_type),checked:i===n.connector_type,value:n.name,className:"h-3 w-3 border !border-theme-border-bold text-theme-surface-primary focus:ring-2 focus:ring-theme-surface-strong"}),e.jsxs("div",{className:"grid grid-cols-1 items-center gap-5 xl:grid-cols-3",children:[e.jsx(Ie,{connectorType:n}),e.jsx(We,{resourceTypes:n.resource_types}),e.jsx(Ye,{authMethods:n.auth_methods})]})]})})},n.name))})}function Ie({connectorType:t}){return e.jsxs("div",{className:"flex items-center gap-3",children:[t.logo_url&&e.jsx("img",{src:t.logo_url,width:32,height:32,className:"size-6 shrink-0",alt:t.name}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("div",{className:"text-text-lg font-semibold",children:t.name}),t.description&&e.jsx("span",{className:"text-text-sm text-theme-text-secondary",children:me(t.description,70)})]})]})}function We({resourceTypes:t}){return e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("p",{className:"text-text-xs text-theme-text-secondary",children:"Resource Types"}),e.jsx(ve,{iconSize:16,size:"xs",resourceTypes:t})]})}function Ye({authMethods:t}){return e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("p",{className:"text-text-xs text-theme-text-secondary",children:"Auth Methods"}),e.jsx("div",{className:"flex flex-wrap gap-1",children:t.map(s=>e.jsx(he,{className:"w-fit",color:"blue",emphasis:"subtle",size:"xs",rounded:!1,children:s.name},s.auth_method))})]})}function $e(){return e.jsx("div",{className:"w-full space-y-2",children:[...Array(4)].map((t,s)=>e.jsx(N,{className:"h-[110px] w-full"},s))})}function Ke(){const{goToNextStep:t}=V(),{setConnectorType:s,connectorType:r}=v(),n=G({resolver:U(He),defaultValues:{connectorType:r}});function a({connectorType:i}){s(i),t()}return e.jsx(A,{children:e.jsx(J,{...n,children:e.jsxs("form",{onSubmit:n.handleSubmit(a),children:[e.jsx(R,{children:"Select Your Implementation"}),e.jsx(E,{children:e.jsxs("div",{className:"space-y-5",children:[e.jsx(Qe,{}),e.jsx(qe,{})]})}),e.jsxs(P,{children:[e.jsx(re,{}),e.jsx(ne,{disabled:!n.formState.isValid})]})]})})})}async function Ue({body:t}){const s=O(Q.serviceConnectors.list),r=await H(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){const n=await r.json().then(a=>Array.isArray(a.detail)?a.detail[1]:a.detail).catch(()=>"Failed to create service connector");throw new Z({status:r.status,statusText:r.statusText,message:n})}return r.json()}function Ge(t){return te({...t,mutationFn:async({body:s})=>Ue({body:s})})}const Je=Me(async t=>{try{return!((await xe({name:t})).total>0)}catch(s){return console.error(s),!1}},500),Xe=y.object({description:y.string().trim(),authMethod:y.string().trim().min(1,"Auth method is required"),resourceType:y.string().trim().min(1,"Resource type is required"),isValid:y.boolean().nullable(),skipValidation:y.boolean()});function ae(t){const s=d.useRef(t),r=d.useRef(!0),n=d.useMemo(()=>y.object({name:y.string().trim().min(1,"Name is required").max(32,"Name can be at most 32 characters").regex(/^[a-zA-Z0-9-]+$/,"Name can only contain letters, numbers and dashes").refine(async a=>{if(!a)return!0;if(a!==s.current){s.current=a;const i=await Je(a);return r.current=i,i}return r.current},{message:"Service connector with this name already exists"})}),[]);return Xe.merge(n)}function et({setConfigDefaultValues:t,setSchema:s}){return e.jsxs("section",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Ne,{width:24,height:24,className:"shrink-0 fill-primary-400"}),e.jsx("p",{className:"text-text-lg font-semibold",children:"Select an Authentication Method"})]}),e.jsx("p",{className:"text-theme-text-secondary",children:"Connect ZenML to your cloud provider for seamless integration of cloud services into your ML pipelines."})]}),e.jsx(tt,{setConfigDefaultValues:t,setSchema:s})]})}function tt({setConfigDefaultValues:t,setSchema:s}){const{control:r,resetField:n}=C(),a=ae(""),{connectorType:i}=v(),u=M(S.serviceConnectorTypeDetail(i));if(u.isError)return e.jsxs("p",{children:["Failed to fetch Connector Type ",i]});if(u.isPending)return e.jsx(N,{className:"h-7 w-full"});const f=u.data,l=f.auth_methods.filter(x=>x.auth_method!=="implicit");function c(x){const o=l.find(p=>p.auth_method===x);if(!o)return;const h=o.config_schema,m=Se(h),j=we(h);t(j),s(a.merge(m)),Object.keys(m.shape).forEach(p=>n(p))}return e.jsx(w,{control:r,name:"authMethod",render:({field:x,formState:{errors:o}})=>{var h;return e.jsxs("div",{className:"space-y-1",children:[e.jsxs(q,{onValueChange:m=>{x.onChange(m),c(m)},defaultValue:x.value,children:[e.jsx(I,{"data-error":!!o.authMethod,className:"border border-theme-border-moderate data-[error=true]:border-error-500",children:e.jsx(W,{placeholder:"Select your Authentication Method"})}),e.jsx(Y,{className:"",children:e.jsx($,{viewportClassName:"max-h-[300px]",children:l.map(m=>e.jsx(k,{value:m.auth_method,children:e.jsxs("div",{className:"flex items-center gap-1",children:[f.logo_url&&e.jsx("img",{alt:m.name,width:24,height:24,className:"shrink-0 object-contain",src:f.logo_url}),m.name]})},m.name))})})]}),o.authMethod&&e.jsx("p",{className:"text-text-xs text-red-500",children:(h=o.authMethod.message)==null?void 0:h.toString()})]})}})}function st(){const{control:t}=C();return e.jsx(w,{name:"skipValidation",control:t,render:({field:s,fieldState:{error:r}})=>{var n;return e.jsxs("div",{className:"space-y-0.5",children:[e.jsxs("label",{className:"flex items-center gap-2",children:[e.jsx(pe,{checked:s.value,onCheckedChange:s.onChange}),e.jsx("span",{children:"Register without validation"})]}),r&&e.jsx("p",{className:"text-text-xs text-red-500",children:(n=r.message)==null?void 0:n.toString()})]})}})}function oe({name:t,authMethod:s,connectorType:r,user:n,workspace:a,resourceType:i,description:u,isValid:f,skipValidation:l,...c}){return Object.keys(c).forEach(o=>{(c[o]===""||c[o]===null||c[o]===void 0||Array.isArray(c[o])&&c[o].length===0||typeof c[o]=="object"&&!Array.isArray(c[o])&&Object.keys(c[o]).length===0)&&delete c[o]}),{name:t,auth_method:s,connector_type:r,resource_types:i==="all"?void 0:[i],description:u||void 0,configuration:c,user:n}}async function rt({payload:t}){const s=O(Q.serviceConnectors.verify),r=await H(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){const n=await r.json().then(a=>Array.isArray(a.detail)?a.detail[1]:a.detail).catch(()=>"Failed to verify connector");throw new Z({status:r.status,statusText:r.statusText,message:n})}return r.json()}function nt(t){return te({...t,mutationFn:async({payload:s})=>rt({payload:s})})}function at({mandatoryFields:t}){const s=d.useMemo(()=>[...t,"name","authMethod","resourceType"],[t]),[r,n]=d.useState(!0),[a,i]=d.useState(""),{setValue:u,clearErrors:f,watch:l,resetField:c}=C();d.useEffect(()=>{const o=l((h,{name:m})=>{m&&(m==="isValid"||m==="skipValidation"||h.isValid!==null&&c("isValid"))});return()=>o.unsubscribe()},[l,c]),d.useEffect(()=>{const h=_e(j=>{const T=s.every(p=>{const g=j[p];return g==null||g===""?!1:Array.isArray(g)?g.length>0:typeof g=="object"?Object.keys(g).length>0:!0});n(!T)},300),m=l(j=>{h(j)});return()=>{m.unsubscribe(),h.cancel()}},[l,s]);const x=nt({onMutate:()=>{i("")},onSuccess:o=>{if(o.error){u("isValid",!1),i(o.error);return}u("isValid",!0),f("skipValidation")},onError:()=>{u("isValid",!1)}});return{disabled:r,errorMsg:a,verifyConfig:x}}function ot({user:t,mandatoryFields:s}){const{connectorType:r}=v(),{control:n,getValues:a}=C(),{disabled:i,errorMsg:u,verifyConfig:f}=at({mandatoryFields:s});return e.jsx(w,{control:n,name:"isValid",render:({field:l})=>e.jsxs("div",{className:"space-y-5",children:[e.jsx(b,{disabled:i,size:"md",className:L("flex w-full items-center justify-center gap-3",{"border-success-500 bg-success-500 text-white":l.value===!0}),type:"button",intent:"primary",emphasis:"subtle",onClick:()=>{const c=oe({...a(),connectorType:r,user:t});f.mutate({payload:c})},children:e.jsx(it,{disabled:i,isValid:l.value,isPending:f.isPending})}),u&&e.jsx("p",{className:"max-h-[250px] overflow-auto rounded-md border border-theme-border-moderate bg-theme-surface-secondary p-1 text-left font-mono",children:u})]})})}function it({isValid:t,isPending:s,disabled:r}){return s?e.jsxs(e.Fragment,{children:[e.jsx("div",{role:"alert","aria-busy":"true",className:"full h-5 w-5 animate-spin rounded-rounded border-2 border-neutral-300 border-b-theme-text-brand"}),"Validating Credentials..."]}):t===null?e.jsxs(e.Fragment,{children:[e.jsx(_,{width:24,height:24,"data-disabled":r,className:"fill-primary-600 data-[disabled=true]:fill-primary-100"}),"Validate Credentials"]}):t?e.jsxs(e.Fragment,{children:[e.jsx(_,{width:24,height:24,className:"fill-white"}),"Verified successfully"]}):e.jsxs(e.Fragment,{children:[e.jsx(K,{width:24,height:24,"data-disabled":r,className:"fill-primary-600 data-[disabled=true]:fill-primary-100"}),"Invalid Credentials"]})}function ct({user:t}){return e.jsxs("section",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(ke,{width:24,height:24,className:"shrink-0 fill-primary-400"}),e.jsx("p",{className:"text-text-lg font-semibold",children:"Add your configuration"})]}),e.jsx("p",{className:"text-theme-text-secondary",children:"Your credentials are securely stored and encrypted. ZenML uses these credentials to interact with your resources."})]}),e.jsx(lt,{user:t})]})}function lt({user:t}){const{getValues:s}=C(),{connectorType:r}=v(),n=M(S.serviceConnectorTypeDetail(r));if(n.isError)return e.jsxs("p",{children:["Failed to fetch Connector Type ",r]});if(n.isPending)return e.jsx(N,{className:"h-7 w-full"});const i=n.data.auth_methods.find(o=>o.auth_method===s("authMethod"));if(!i)return null;const u=i.config_schema,f=u.properties||{},l=u.required||[],c=u.$defs,x=Object.entries(f).sort(([o],[h])=>l.includes(o)&&!l.includes(h)?-1:!l.includes(o)&&l.includes(h)?1:0);return e.jsxs("div",{className:"space-y-5",children:[x.map(([o,h])=>e.jsx(Te,{definitions:c,isOptional:Ve(o,l),name:o,schema:h},o)),e.jsx(ot,{mandatoryFields:l,user:t}),e.jsx(st,{})]})}const dt=t=>d.createElement("svg",{viewBox:"0 0 24 24",fill:"black",xmlns:"http://www.w3.org/2000/svg",...t},d.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.7587 2H16.2413C17.0463 1.99999 17.7106 1.99998 18.2518 2.04419C18.8139 2.09012 19.3306 2.18868 19.816 2.43597C20.5686 2.81947 21.1805 3.43139 21.564 4.18404C21.8113 4.66937 21.9099 5.18608 21.9558 5.74817C22 6.28936 22 6.95372 22 7.75868V16.2413C22 17.0463 22 17.7106 21.9558 18.2518C21.9099 18.8139 21.8113 19.3306 21.564 19.816C21.1805 20.5686 20.5686 21.1805 19.816 21.564C19.3306 21.8113 18.8139 21.9099 18.2518 21.9558C17.7106 22 17.0463 22 16.2413 22H7.75868C6.95372 22 6.28936 22 5.74817 21.9558C5.18608 21.9099 4.66937 21.8113 4.18404 21.564C3.43139 21.1805 2.81947 20.5686 2.43597 19.816C2.18868 19.3306 2.09012 18.8139 2.04419 18.2518C1.99998 17.7106 1.99999 17.0463 2 16.2413V7.7587C1.99999 6.95373 1.99998 6.28937 2.04419 5.74817C2.09012 5.18608 2.18868 4.66937 2.43597 4.18404C2.81947 3.43139 3.43139 2.81947 4.18404 2.43597C4.66937 2.18868 5.18608 2.09012 5.74817 2.04419C6.28937 1.99998 6.95373 1.99999 7.7587 2ZM5.91104 4.03755C5.47262 4.07337 5.24842 4.1383 5.09202 4.21799C4.7157 4.40973 4.40973 4.7157 4.21799 5.09202C4.1383 5.24842 4.07337 5.47262 4.03755 5.91104C4.00078 6.36113 4 6.94342 4 7.8V16.2C4 17.0566 4.00078 17.6389 4.03755 18.089C4.07337 18.5274 4.1383 18.7516 4.21799 18.908C4.40973 19.2843 4.7157 19.5903 5.09202 19.782C5.24842 19.8617 5.47262 19.9266 5.91104 19.9624C6.36113 19.9992 6.94342 20 7.8 20H16.2C17.0566 20 17.6389 19.9992 18.089 19.9624C18.5274 19.9266 18.7516 19.8617 18.908 19.782C19.2843 19.5903 19.5903 19.2843 19.782 18.908C19.8617 18.7516 19.9266 18.5274 19.9624 18.089C19.9992 17.6389 20 17.0566 20 16.2V7.8C20 6.94342 19.9992 6.36113 19.9624 5.91104C19.9266 5.47262 19.8617 5.24842 19.782 5.09202C19.5903 4.7157 19.2843 4.40973 18.908 4.21799C18.7516 4.1383 18.5274 4.07337 18.089 4.03755C17.6389 4.00078 17.0566 4 16.2 4H7.8C6.94342 4 6.36113 4.00078 5.91104 4.03755ZM7 7C7 6.44772 7.44772 6 8 6H16C16.5523 6 17 6.44772 17 7C17 7.55229 16.5523 8 16 8H13V17C13 17.5523 12.5523 18 12 18C11.4477 18 11 17.5523 11 17V8H8C7.44772 8 7 7.55229 7 7Z"}));function ut(){var r,n;const{register:t,formState:{errors:s}}=C();return e.jsxs("section",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(dt,{width:24,height:24,className:"shrink-0 fill-primary-400"}),e.jsx("p",{className:"text-text-lg font-semibold",children:"Select a name and description for your Service Connector"})]}),e.jsx("p",{className:"text-theme-text-secondary",children:"You can keep the suggested name or create your own."})]}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsxs("label",{className:"font-inter text-sm text-left font-medium leading-5",children:["Name",e.jsx("span",{className:"text-theme-text-error","aria-label":"required",children:"*"})]}),e.jsx(z,{"data-error":!!s.name,...t("name"),className:"w-full data-[error=true]:border-error-500",inputSize:"md"}),e.jsx("p",{className:"text-text-xs text-theme-text-secondary",children:"Only letters, numbers and dashes. It should be 32 characters max. You cannot use an existing name."}),s.name&&e.jsx("p",{className:"text-text-xs text-red-500",children:(r=s.name.message)==null?void 0:r.toString()})]}),e.jsxs("div",{className:"space-y-0.5",children:[e.jsx("label",{className:"font-inter text-sm text-left font-medium leading-5",children:"Description"}),e.jsx(z,{...t("description"),className:"w-full",inputSize:"md"}),s.description&&e.jsx("p",{className:"text-text-xs text-red-500",children:(n=s.description.message)==null?void 0:n.toString()})]})]})}function mt(){return e.jsxs("section",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Fe,{width:24,height:24,className:"shrink-0 fill-primary-400"}),e.jsx("p",{className:"text-text-lg font-semibold",children:"Select your resource type"})]}),e.jsxs("p",{className:"text-theme-text-secondary",children:["Select resource types your connector will provide access to. Choose a specific type or enable all available resources."," ",e.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://docs.zenml.io/how-to/infrastructure-deployment/auth-management/service-connectors-guide#resource-types",className:"link text-theme-text-brand",children:"Learn More"})]})]}),e.jsx(ht,{})]})}function ht(){const{control:t}=C(),{connectorType:s}=v(),r=M(S.serviceConnectorTypeDetail(s));if(r.isError)return e.jsxs("p",{children:["Failed to fetch Connector Type ",s]});if(r.isPending)return e.jsx(N,{className:"h-7 w-full"});const n=r.data;return e.jsx(w,{control:t,name:"resourceType",render:({field:a})=>e.jsxs(q,{onValueChange:a.onChange,defaultValue:a.value,children:[e.jsx(I,{className:"border border-theme-border-moderate",children:e.jsx(W,{placeholder:"Select your Resource Type"})}),e.jsx(Y,{className:"",children:e.jsxs($,{viewportClassName:"max-h-[300px]",children:[n.resource_types.map(i=>e.jsx(k,{value:i.resource_type,children:e.jsxs("div",{className:"flex items-center gap-1",children:[i.logo_url&&e.jsx("img",{alt:i.name,width:24,height:24,className:"shrink-0 object-contain",src:i.logo_url}),i.name]})},i.name)),e.jsx(k,{value:"all",children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(fe,{width:24,height:24,className:"shrink-0 fill-neutral-400 object-contain"}),"All resources types"]})})]})})]})})}function xt(){const t=je(),{connectorType:s,setCreatedConnector:r}=v(),{goToNextStep:n}=V(),a=ae(""),[i,u]=d.useState(a),{toast:f}=ye(),l=S.connectors,c=be(),x=Ge({onSuccess:p=>{c.invalidateQueries({queryKey:l}),r(p),n()},onError:p=>{f({status:"error",emphasis:"subtle",icon:e.jsx(K,{width:24,height:24,className:"shrink-0 fill-error-700"}),description:p.message,rounded:!0})}}),[o,h]=d.useState({}),m=i.refine(p=>p.isValid===!0||p.skipValidation===!0,{message:"Either verify the connector or register without validation",path:["skipValidation"]}),j=G({resolver:U(m),shouldUnregister:!0,mode:"onChange",defaultValues:{name:"",description:"",authMethod:"",isValid:null,resourceType:"all",skipValidation:!1,...o}});if(t.isPending)return e.jsx(N,{className:"h-[500px] w-full"});if(t.isError)return e.jsx("p",{children:"Error fetching user"});const T=p=>{const g=oe({...p,connectorType:s,user:t.data.id});x.mutate({body:g})};return e.jsx(A,{children:e.jsxs(J,{...j,children:[e.jsx(R,{children:"Configure your Service Connector"}),e.jsxs("form",{onSubmit:j.handleSubmit(T),children:[e.jsx(E,{children:e.jsxs("div",{className:"divide-y divide-theme-border-moderate *:py-5 first:*:pt-0 last:*:pb-0",children:[e.jsx(ut,{}),e.jsx(mt,{}),e.jsx(et,{setConfigDefaultValues:h,setSchema:u}),e.jsx(ct,{user:t.data.id})]})}),e.jsxs(P,{children:[e.jsx(re,{}),e.jsx(Oe,{}),e.jsx(ne,{isPending:j.formState.isSubmitting||x.isPending,disabled:j.formState.isSubmitting||x.isPending})]})]})]})})}function pt({connectorName:t}){return e.jsxs("div",{className:"flex w-full items-center gap-3 rounded-md border border-success-300 bg-success-50 px-4 py-3 text-text-sm text-success-900",children:[e.jsx(_,{width:24,height:24,className:"shrink-0 fill-success-900"}),e.jsxs("p",{children:["You successfully registered the service connector `",t,"` and can now create new resources"]})]})}function ft(){return d.useMemo(()=>[{id:"name",header:"Service Connector",accessorKey:"name",cell:({row:t})=>{var a;const s=t.original.id,r=t.original.name,n=(a=t.original.body)==null?void 0:a.connector_type;return e.jsxs("div",{className:"group/copybutton flex items-center gap-2",children:[!!n&&typeof n!="string"&&e.jsx(Ae,{connectorType:n}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"block max-w-[200px] truncate text-text-md font-semibold",children:r}),e.jsx(B,{copyText:r})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{children:s.split("-")[0]}),e.jsx(B,{copyText:s})]})]})]})}},{id:"resource_types",header(){return e.jsx("p",{className:"whitespace-nowrap",children:"Resource Types"})},cell:({row:t})=>{const s=Ee(t.original);return e.jsx("div",{className:"flex items-center gap-0.5",children:s.map((r,n)=>e.jsx(Re,{resourceType:r},n))})}},{id:"resource-name",header(){return e.jsx("p",{className:"whitespace-nowrap",children:"Resource Name"})},cell:({row:t})=>e.jsx("div",{className:"max-w-[100px]",children:e.jsx(Pe,{connector:t.original})})},{id:"user",header:"Author",accessorFn:t=>{var s,r;return(r=(s=t.resources)==null?void 0:s.user)==null?void 0:r.name},cell:({row:t})=>{var r,n,a;const s=(r=t.original.resources)==null?void 0:r.user;return s?e.jsx(ge,{className:"max-w-[200px] truncate",avatarUrl:((n=s.body)==null?void 0:n.avatar_url)??void 0,username:s.name,isServiceAccount:!!((a=s.body)!=null&&a.is_service_account)}):null}},{id:"expires",header(){return e.jsx("p",{className:"whitespace-nowrap",children:"Expires in"})},accessorFn:t=>{var s;return(s=t.body)==null?void 0:s.expires_at},cell:({row:t})=>{var r;const s=(r=t.original.body)==null?void 0:r.expires_at;return s?e.jsx(ze,{expires:s}):e.jsx("p",{children:"Never"})}}],[])}function jt({connector:t}){const s=ft();return e.jsx("section",{className:"flex flex-col gap-5",children:e.jsx("div",{className:"flex flex-col items-center gap-5",children:e.jsx("div",{className:"w-full",children:e.jsx(Ce,{columns:s,data:[t]})})})})}function yt(){const{createdConnector:t}=v();return t?e.jsxs(A,{children:[e.jsx(R,{children:"Your Service Connector"}),e.jsx(E,{children:e.jsxs("div",{className:"space-y-5",children:[e.jsx(pt,{connectorName:t.name}),e.jsx(jt,{connector:t})]})}),e.jsx(P,{children:e.jsx(gt,{connectorId:t.id})})]}):e.jsx("p",{children:"No connector created"})}function gt({connectorId:t}){return e.jsx(b,{asChild:!0,type:"submit",size:"md",intent:"primary",children:e.jsx(ee,{to:F.settings.connectors.detail.configuration(t),children:"Finish"})})}function Ct(){return e.jsx(Le,{children:e.jsx(vt,{})})}function vt(){const{currentStep:t}=V();if(t===0)return e.jsx(Ke,{});if(t===1)return e.jsx(xt,{});if(t===2)return e.jsx(yt,{})}const D=["Connector Type","Configuration"];function Yt(){return e.jsxs("div",{children:[e.jsx(De,{}),e.jsx("div",{className:"layout-container flex flex-col gap-5 px-3 py-5 xl:flex-row xl:px-0",children:e.jsxs(ie,{maxSteps:D.length,initialStep:0,children:[e.jsx("div",{className:"shrink-0",children:e.jsx(ce,{entries:D})}),e.jsx("div",{className:"w-full",children:e.jsx(Ct,{})})]})})]})}export{Yt as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{j as e,r}from"./@radix-
|
1
|
+
import{j as e,r}from"./@radix-B1sy0Lhr.js";import{P as o,a as n,b as l,c as i,d as m,e as c}from"./ProCta-CUkpV3PJ.js";import{k as d,bx as u}from"./index-CO6UN3UX.js";import{C as x}from"./CodeSnippet-B7Wd4R8u.js";import{f as p}from"./@react-router-CHjLNlgw.js";import"./check-C9Nye5lR.js";import"./@tanstack-Dwlisomv.js";import"./@reactflow-gbyyU3kq.js";const f="/assets/mcp-Cb1aMeoq.webp";function h(){const[a]=p(),t=a.get("model");function s(){return t?`zenml model list --name='contains:${t}'`:"zenml model list"}return e.jsxs(d,{className:"flex flex-wrap justify-between p-5",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-text-xl font-semibold",children:"Staying Open Source? "}),e.jsx("p",{className:"text-theme-text-secondary",children:"No problem! Use this CLI command to list your models"})]}),e.jsx(x,{code:s()})]})}function v(){const{setTourState:a,tourState:{tourActive:t}}=u();return r.useEffect(()=>{t&&a(s=>({...s,run:!0,stepIndex:s.stepIndex}))},[t]),e.jsx("div",{children:e.jsxs("div",{className:"layout-container space-y-5 py-5",children:[e.jsxs(o,{className:"relative overflow-y-hidden",children:[e.jsxs("div",{className:"w-full max-w-none space-y-5 lg:max-w-[900px]",children:[e.jsx(n,{children:"Access Advanced Model Management Features with ZenML Pro"}),e.jsx(l,{}),e.jsx(i,{features:[{title:"Model Control Plane Dashboard",subtitle:"Centralized model management and monitoring"},{title:"Enterprise Security",subtitle:"Social SSO, RBAC, and User Management"},{title:"Managed ZenML Server",subtitle:"On your VPC or hosted on our infrastructure"},{title:"Advanced MLOps",subtitle:"CI/CD/CT, Artifact Control Plane and more"}]}),e.jsx(m,{})]}),e.jsx(c,{className:"absolute translate-x-[30%] translate-y-[15%] scale-[40%]",src:f,alt:"Screenshot of the ZenML Pro Artifact Control Plane"})]}),e.jsx(h,{})]})})}export{v as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{j as e}from"./@radix-
|
1
|
+
import{j as e}from"./@radix-B1sy0Lhr.js";import{P as r,a as n,b as o,c as i,d as l,e as c}from"./ProCta-CUkpV3PJ.js";import{C as m}from"./CodeSnippet-B7Wd4R8u.js";import{k as d}from"./index-CO6UN3UX.js";import{f}from"./@react-router-CHjLNlgw.js";import"./check-C9Nye5lR.js";import"./@tanstack-Dwlisomv.js";import"./@reactflow-gbyyU3kq.js";const u="/assets/acp-DOsXjFc7.webp";function x(){const[a]=f(),t=a.get("artifact");function s(){return t?`zenml artifact list --name='contains:${t}'`:"zenml artifact list"}return e.jsxs(d,{className:"flex flex-wrap justify-between p-5",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-text-xl font-semibold",children:"Staying Open Source? "}),e.jsx("p",{className:"text-theme-text-secondary",children:"No problem! Use this CLI command to list your artifacts"})]}),e.jsx(m,{code:s()})]})}function S(){return e.jsxs("div",{className:"layout-container space-y-5 py-5",children:[e.jsxs(r,{className:"relative overflow-y-hidden",children:[e.jsxs("div",{className:"w-full max-w-none space-y-5 lg:max-w-[900px]",children:[e.jsx(n,{children:"Advanced Artifact Management Features with ZenML Pro"}),e.jsx(o,{}),e.jsx(i,{features:[{title:"Artifact Control Plane Dashboard",subtitle:"Artifact management and monitoring"},{title:"Enterprise Security",subtitle:"Social SSO, RBAC, and User Management"},{title:"Managed ZenML Server",subtitle:"On your VPC or hosted on our infrastructure"},{title:"Advanced MLOps",subtitle:"CI/CD/CT, Model Control Plane and more"}]}),e.jsx(l,{})]}),e.jsx(c,{className:"absolute translate-x-[30%] translate-y-[15%] scale-[40%]",src:u,alt:"Screenshot of the ZenML Pro Artifact Control Plane"})]}),e.jsx(x,{})]})}export{S as default};
|
@@ -1 +1 @@
|
|
1
|
-
import{z as t}from"./index-
|
1
|
+
import{z as t}from"./index-CO6UN3UX.js";import{a as s}from"./persist-Dkbp9MFP.js";const r="create-terraform-data",e=t.object({provider:s,stackName:t.string().min(1).trim(),location:t.string().min(1).trim(),timestamp:t.string().min(1).trim()});function n(a){localStorage.setItem(r,JSON.stringify(a))}function l(){try{const a=localStorage.getItem(r),o=a?JSON.parse(a):{};return e.safeParse(o)}catch{return i(),e.safeParse({})}}function i(){localStorage.removeItem(r)}export{i as c,l as p,n as s};
|
@@ -1 +1 @@
|
|
1
|
-
import{z as a}from"./index-
|
1
|
+
import{z as a}from"./index-CO6UN3UX.js";import{s as i}from"./sharedSchema-Br1JPr8d.js";const o=a.enum(["aws","gcp","azure"]),p=a.object({provider:o}),g=a.object({region:a.string().trim().min(1),stackName:i}),r="new-infra-data",e=a.object({provider:o,stackName:a.string().min(1).trim(),location:a.string().min(1).trim(),timestamp:a.string().min(1).trim()});function d(t){localStorage.setItem(r,JSON.stringify(t))}function f(){try{const t=localStorage.getItem(r),s=t?JSON.parse(t):{};return e.safeParse(s)}catch{return c(),e.safeParse({})}}function c(){localStorage.removeItem(r)}export{o as a,g as b,c,p as d,f as p,d as s};
|
@@ -1 +1 @@
|
|
1
|
-
import{r as C}from"./@radix-
|
1
|
+
import{r as C}from"./@radix-B1sy0Lhr.js";const t=e=>C.createElement("svg",{viewBox:"0 0 24 24",fill:"black",xmlns:"http://www.w3.org/2000/svg",...e},C.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5 3C4.44772 3 4 3.44772 4 4C4 4.55228 4.44772 5 5 5C5.55228 5 6 4.55228 6 4C6 3.44772 5.55228 3 5 3ZM2 4C2 2.34315 3.34315 1 5 1C6.30622 1 7.41746 1.83481 7.82929 3L16.1707 3C16.5825 1.83481 17.6938 1 19 1C20.6569 1 22 2.34315 22 4C22 5.65685 20.6569 7 19 7C17.6938 7 16.5825 6.16519 16.1707 5L13 5V11H16.1707C16.5825 9.83481 17.6938 9 19 9C20.6569 9 22 10.3431 22 12C22 13.6569 20.6569 15 19 15C17.6938 15 16.5825 14.1652 16.1707 13H13V15.2C13 16.0566 13.0008 16.6389 13.0376 17.089C13.0734 17.5274 13.1383 17.7516 13.218 17.908C13.4097 18.2843 13.7157 18.5903 14.092 18.782C14.2484 18.8617 14.4726 18.9266 14.911 18.9624C15.2412 18.9894 15.6425 18.997 16.171 18.9992C16.5831 17.8344 17.6941 17 19 17C20.6569 17 22 18.3431 22 20C22 21.6569 20.6569 23 19 23C17.6935 23 16.5821 22.1648 16.1705 20.9993C15.6232 20.9971 15.1515 20.9888 14.7482 20.9558C14.1861 20.9099 13.6694 20.8113 13.184 20.564C12.4314 20.1805 11.8195 19.5686 11.436 18.816C11.1887 18.3306 11.0901 17.8139 11.0442 17.2518C11 16.7106 11 16.0463 11 15.2413V5L7.82929 5C7.41746 6.16519 6.30622 7 5 7C3.34315 7 2 5.65685 2 4ZM19 3C18.4477 3 18 3.44771 18 4C18 4.55228 18.4477 5 19 5C19.5523 5 20 4.55228 20 4C20 3.44772 19.5523 3 19 3ZM19 11C18.4477 11 18 11.4477 18 12C18 12.5523 18.4477 13 19 13C19.5523 13 20 12.5523 20 12C20 11.4477 19.5523 11 19 11ZM19 19C18.4477 19 18 19.4477 18 20C18 20.5523 18.4477 21 19 21C19.5523 21 20 20.5523 20 20C20 19.4477 19.5523 19 19 19Z"}));export{t as S};
|
@@ -1 +1 @@
|
|
1
|
-
import{r as e}from"./@radix-
|
1
|
+
import{r as e}from"./@radix-B1sy0Lhr.js";const o=t=>e.createElement("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 4C12.5523 4 13 4.44772 13 5V11H19C19.5523 11 20 11.4477 20 12C20 12.5523 19.5523 13 19 13H13V19C13 19.5523 12.5523 20 12 20C11.4477 20 11 19.5523 11 19V13H5C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11H11V5C11 4.44772 11.4477 4 12 4Z"}));export{o as S};
|