@solidxai/core-ui 0.1.13-beta.2 → 0.1.13-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
- package/dist/components/auth/SolidOTPVerify.js +67 -0
- package/dist/components/auth/SolidOTPVerify.js.map +1 -0
- package/dist/components/auth/SolidOTPVerify.tsx +133 -0
- package/dist/components/common/AuthBanner.d.ts +3 -0
- package/dist/components/common/AuthBanner.d.ts.map +1 -0
- package/dist/components/common/AuthBanner.js +15 -0
- package/dist/components/common/AuthBanner.js.map +1 -0
- package/dist/components/common/AuthBanner.tsx +41 -0
- package/dist/components/common/SingleSelectAutoCompleteField.d.ts +2 -0
- package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -0
- package/dist/components/common/SingleSelectAutoCompleteField.js +92 -0
- package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -0
- package/dist/components/common/SingleSelectAutoCompleteField.tsx +73 -0
- package/dist/components/common/SolidExportStepper.d.ts +12 -0
- package/dist/components/common/SolidExportStepper.d.ts.map +1 -0
- package/dist/components/common/SolidExportStepper.js +30 -0
- package/dist/components/common/SolidExportStepper.js.map +1 -0
- package/dist/components/common/SolidExportStepper.tsx +135 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts +2 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts.map +1 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js +16 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js.map +1 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +29 -0
- package/dist/components/core/dashboard/DashboardFilter.d.ts +13 -0
- package/dist/components/core/dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/components/core/dashboard/DashboardFilter.js +299 -0
- package/dist/components/core/dashboard/DashboardFilter.js.map +1 -0
- package/dist/components/core/dashboard/DashboardFilter.tsx +348 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +3 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +1 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.js +21 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +40 -0
- package/dist/components/core/dashboard/SolidDashboard.d.ts +28 -0
- package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboard.js +183 -0
- package/dist/components/core/dashboard/SolidDashboard.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboard.module.css +83 -0
- package/dist/components/core/dashboard/SolidDashboard.tsx +263 -0
- package/dist/components/core/dashboard/SolidDashboardBody.d.ts +24 -0
- package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardBody.js +162 -0
- package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardBody.tsx +168 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts +2 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +11 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +28 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.d.ts +3 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.js +6 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.tsx +10 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.d.ts +2 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.js +10 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.tsx +61 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts +3 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +12 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +32 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts +2 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.js +11 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +28 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.d.ts +19 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.js +171 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.tsx +259 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts +9 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.js +42 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +99 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts +9 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +35 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +48 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts +7 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js +22 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +51 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts +2 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.js +4 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.js.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +25 -0
- package/dist/components/core/dashboard/dashboard-utils.d.ts +2 -0
- package/dist/components/core/dashboard/dashboard-utils.d.ts.map +1 -0
- package/dist/components/core/dashboard/dashboard-utils.js +38 -0
- package/dist/components/core/dashboard/dashboard-utils.js.map +1 -0
- package/dist/components/core/dashboard/dashboard-utils.ts +39 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +10 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +16 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +19 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +64 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +30 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +62 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +29 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts +4 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js +23 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +36 -0
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +111 -106
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +165 -134
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +81 -84
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +97 -86
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.d.ts +12 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.js +145 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.js.map +1 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +2 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js +87 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +2 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +73 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +2 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +20 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +12 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.js +81 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +16 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +21 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +16 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +56 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +140 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +42 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +164 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +11 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +37 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +2 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +39 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +40 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.d.ts +12 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.d.ts.map +1 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.js +81 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.js.map +1 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +42 -81
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +90 -120
- package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +34 -42
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +51 -46
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
- package/dist/components/layout/DashboardHeader.d.ts +3 -0
- package/dist/components/layout/DashboardHeader.d.ts.map +1 -0
- package/dist/components/layout/DashboardHeader.js +20 -0
- package/dist/components/layout/DashboardHeader.js.map +1 -0
- package/dist/components/layout/DashboardHeader.tsx +94 -0
- package/dist/helpers/# no such endpoints exist, need to calle +3 -0
- package/dist/helpers/ToastContainer.d.ts +4 -0
- package/dist/helpers/ToastContainer.d.ts.map +1 -0
- package/dist/helpers/ToastContainer.js +49 -0
- package/dist/helpers/ToastContainer.js.map +1 -0
- package/dist/helpers/ToastContainer.tsx +94 -0
- package/dist/helpers/downloadMediaFile.d.ts.map +1 -1
- package/dist/helpers/downloadMediaFile.js +10 -3
- package/dist/helpers/downloadMediaFile.js.map +1 -1
- package/dist/helpers/downloadMediaFile.tsx +13 -7
- package/dist/helpers/fileTypeIcon.d.ts +3 -2
- package/dist/helpers/fileTypeIcon.d.ts.map +1 -1
- package/dist/helpers/fileTypeIcon.js +11 -7
- package/dist/helpers/fileTypeIcon.js.map +1 -1
- package/dist/helpers/fileTypeIcon.tsx +12 -7
- package/dist/helpers/mediaType.d.ts +7 -0
- package/dist/helpers/mediaType.d.ts.map +1 -1
- package/dist/helpers/mediaType.js +39 -8
- package/dist/helpers/mediaType.js.map +1 -1
- package/dist/helpers/mediaType.ts +46 -7
- package/dist/helpers/mediaUrl.d.ts +2 -0
- package/dist/helpers/mediaUrl.d.ts.map +1 -0
- package/dist/helpers/mediaUrl.js +10 -0
- package/dist/helpers/mediaUrl.js.map +1 -0
- package/dist/helpers/mediaUrl.ts +11 -0
- package/dist/helpers/showToast.d.ts +5 -0
- package/dist/helpers/showToast.d.ts.map +1 -0
- package/dist/helpers/showToast.js +17 -0
- package/dist/helpers/showToast.js.map +1 -0
- package/dist/helpers/showToast.ts +13 -0
- package/dist/helpers/studioSandbox.d.ts +31 -0
- package/dist/helpers/studioSandbox.d.ts.map +1 -0
- package/dist/helpers/studioSandbox.js +104 -0
- package/dist/helpers/studioSandbox.js.map +1 -0
- package/dist/helpers/studioSandbox.ts +117 -0
- package/dist/nextAuth/authProviders.d.ts +4 -0
- package/dist/nextAuth/authProviders.d.ts.map +1 -0
- package/dist/nextAuth/authProviders.js +198 -0
- package/dist/nextAuth/authProviders.js.map +1 -0
- package/dist/nextAuth/authProviders.tsx +232 -0
- package/dist/nextAuth/handleLogout.d.ts +2 -0
- package/dist/nextAuth/handleLogout.d.ts.map +1 -0
- package/dist/nextAuth/handleLogout.js +36 -0
- package/dist/nextAuth/handleLogout.js.map +1 -0
- package/dist/nextAuth/handleLogout.tsx +39 -0
- package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
- package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
- package/dist/nextAuth/refreshAccessToken.js +24 -0
- package/dist/nextAuth/refreshAccessToken.js.map +1 -0
- package/dist/nextAuth/refreshAccessToken.tsx +28 -0
- package/dist/redux/api/dashboardApi.d.ts +23 -0
- package/dist/redux/api/dashboardApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardApi.js +35 -0
- package/dist/redux/api/dashboardApi.js.map +1 -0
- package/dist/redux/api/dashboardApi.ts +56 -0
- package/dist/redux/api/dashboardLayoutApi.d.ts +24 -0
- package/dist/redux/api/dashboardLayoutApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardLayoutApi.js +34 -0
- package/dist/redux/api/dashboardLayoutApi.js.map +1 -0
- package/dist/redux/api/dashboardLayoutApi.ts +55 -0
- package/dist/redux/api/dashboardQuestionApi.d.ts +5 -0
- package/dist/redux/api/dashboardQuestionApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardQuestionApi.js +18 -0
- package/dist/redux/api/dashboardQuestionApi.js.map +1 -0
- package/dist/redux/api/dashboardQuestionApi.ts +17 -0
- package/dist/redux/features/settingsSlice.d.ts +20 -0
- package/dist/redux/features/settingsSlice.d.ts.map +1 -0
- package/dist/redux/features/settingsSlice.js +39 -0
- package/dist/redux/features/settingsSlice.js.map +1 -0
- package/dist/redux/features/settingsSlice.ts +60 -0
- package/dist/resources/images/Footerbg.png +0 -0
- package/dist/resources/images/LoginBanner.png +0 -0
- package/dist/resources/images/dashboard/Ellipse 1.svg +10 -0
- package/dist/resources/images/dashboard/Rectangle 17.svg +10 -0
- package/dist/resources/images/dashboard/Rectangle 25.svg +11 -0
- package/dist/resources/images/dashboard/image 5.svg +9 -0
- package/dist/resources/images/loginhero.png +0 -0
- package/dist/resources/images/logo.png +0 -0
- package/dist/resources/images/radix-logo-white.png +0 -0
- package/dist/resources/images/radix-logo.png +0 -0
- package/dist/resources/images/signupBanner.png +0 -0
- package/dist/resources/shadcn-base.css +16 -70
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/package.json +1 -1
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.d.ts +0 -8
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.d.ts.map +0 -1
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.js +0 -6
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.js.map +0 -1
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.ts +0 -13
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.d.ts +0 -11
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.d.ts.map +0 -1
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.js +0 -10
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.js.map +0 -1
- package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.ts +0 -22
- package/dist/components/core/list/SolidCustomListColumn.d.ts +0 -8
- package/dist/components/core/list/SolidCustomListColumn.d.ts.map +0 -1
- package/dist/components/core/list/SolidCustomListColumn.js +0 -47
- package/dist/components/core/list/SolidCustomListColumn.js.map +0 -1
- package/dist/components/core/list/SolidCustomListColumn.tsx +0 -57
- package/dist/components/workflow/WorkflowFlowCanvas.css +0 -431
- package/dist/components/workflow/WorkflowFlowCanvas.d.ts +0 -41
- package/dist/components/workflow/WorkflowFlowCanvas.d.ts.map +0 -1
- package/dist/components/workflow/WorkflowFlowCanvas.js +0 -705
- package/dist/components/workflow/WorkflowFlowCanvas.js.map +0 -1
- package/dist/components/workflow/WorkflowFlowCanvas.tsx +0 -1274
- package/dist/components/workflow/WorkflowNodeDocsPanel.css +0 -247
- package/dist/components/workflow/WorkflowNodeDocsPanel.d.ts +0 -22
- package/dist/components/workflow/WorkflowNodeDocsPanel.d.ts.map +0 -1
- package/dist/components/workflow/WorkflowNodeDocsPanel.js +0 -97
- package/dist/components/workflow/WorkflowNodeDocsPanel.js.map +0 -1
- package/dist/components/workflow/WorkflowNodeDocsPanel.tsx +0 -363
- package/dist/components/workflow/WorkflowNodeSchemaEditor.d.ts +0 -50
- package/dist/components/workflow/WorkflowNodeSchemaEditor.d.ts.map +0 -1
- package/dist/components/workflow/WorkflowNodeSchemaEditor.js +0 -309
- package/dist/components/workflow/WorkflowNodeSchemaEditor.js.map +0 -1
- package/dist/components/workflow/WorkflowNodeSchemaEditor.tsx +0 -808
- package/dist/helpers/modulePackageResumeState.d.ts +0 -6
- package/dist/helpers/modulePackageResumeState.d.ts.map +0 -1
- package/dist/helpers/modulePackageResumeState.js +0 -46
- package/dist/helpers/modulePackageResumeState.js.map +0 -1
- package/dist/helpers/modulePackageResumeState.ts +0 -57
- package/dist/redux/api/workflowDefinitionEditorApi.d.ts +0 -17
- package/dist/redux/api/workflowDefinitionEditorApi.d.ts.map +0 -1
- package/dist/redux/api/workflowDefinitionEditorApi.js +0 -38
- package/dist/redux/api/workflowDefinitionEditorApi.js.map +0 -1
- package/dist/redux/api/workflowDefinitionEditorApi.ts +0 -40
- package/dist/redux/api/workflowNodeApi.d.ts +0 -6
- package/dist/redux/api/workflowNodeApi.d.ts.map +0 -1
- package/dist/redux/api/workflowNodeApi.js +0 -14
- package/dist/redux/api/workflowNodeApi.js.map +0 -1
- package/dist/redux/api/workflowNodeApi.ts +0 -18
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.css +0 -970
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.d.ts +0 -3
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.d.ts.map +0 -1
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js +0 -1287
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js.map +0 -1
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx +0 -2572
- package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.css +0 -151
- package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.d.ts +0 -3
- package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.d.ts.map +0 -1
- package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.js +0 -250
- package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.js.map +0 -1
- package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.tsx +0 -455
- package/dist/types/workflow-node.d.ts +0 -127
- package/dist/types/workflow-node.d.ts.map +0 -1
- package/dist/types/workflow-node.js +0 -2
- package/dist/types/workflow-node.js.map +0 -1
- package/dist/types/workflow-node.ts +0 -162
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowDefinitionEditorPage.js","sourceRoot":"","sources":["../../../../../src/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Activity,\n ArrowLeft,\n BookOpen,\n Braces,\n ChevronLeft,\n ChevronRight,\n GitBranchPlus,\n Layers3,\n Play,\n RefreshCw,\n Save,\n Settings2,\n ShieldCheck,\n X,\n} from \"lucide-react\";\nimport React from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport qs from \"qs\";\nimport YAML from \"yaml\";\nimport { createSolidEntityApi } from \"../../../../redux/api/solidEntityApi\";\nimport { useGetWorkflowNodeTypesQuery } from \"../../../../redux/api/workflowNodeApi\";\nimport {\n useExecuteWorkflowDefinitionMutation,\n useValidateWorkflowDefinitionMutation,\n} from \"../../../../redux/api/workflowDefinitionEditorApi\";\nimport { showToast } from \"../../../../redux/features/toastSlice\";\nimport {\n WorkflowNodeDocsPanel,\n type WorkflowDocsModel,\n} from \"../../../../components/workflow/WorkflowNodeDocsPanel\";\nimport {\n WorkflowFlowCanvas,\n type WorkflowInsertTarget,\n} from \"../../../../components/workflow/WorkflowFlowCanvas\";\nimport {\n WorkflowNodeEditorDialog,\n WorkflowNodePalette,\n} from \"../../../../components/workflow/WorkflowNodeSchemaEditor\";\nimport type { WorkflowNodeMetadataResponse } from \"../../../../types/workflow-node\";\nimport {\n SolidButton,\n SolidCodeEditor,\n SolidDatePicker,\n SolidDialog,\n SolidDialogBody,\n SolidDialogFooter,\n SolidInput,\n SolidPanel,\n SolidSpinner,\n SolidTabGroup,\n SolidTag,\n SolidTextarea,\n} from \"../../../../components/shad-cn-ui\";\nimport \"./WorkflowDefinitionEditorPage.css\";\n\ntype WorkflowDefinitionRecord = {\n id: number;\n key?: string;\n displayName?: string;\n description?: string;\n definitionYaml?: WorkflowDefinitionDsl | string | null;\n};\n\ntype WorkflowNodeRecord = {\n [key: string]: any;\n id: string;\n name?: string;\n description?: string;\n kind: string;\n type: string;\n disabled?: boolean;\n timeoutMs?: number;\n retryPolicy?: Record<string, any>;\n onError?: \"fail\" | \"continue\";\n configuration?: Record<string, any>;\n metadata?: Record<string, any>;\n children?: WorkflowNodeRecord[];\n nodes?: WorkflowNodeRecord[];\n then?: WorkflowNodeRecord[];\n else?: WorkflowNodeRecord[];\n branches?: Array<{\n id: string;\n name?: string;\n nodes: WorkflowNodeRecord[];\n }>;\n};\n\ntype WorkflowDefinitionDsl = {\n version?: string;\n description?: string;\n inputs?: Record<string, any>;\n variables?: Record<string, any>;\n nodes: WorkflowNodeRecord[];\n triggers?: Array<Record<string, any>>;\n metadata?: Record<string, any>;\n};\n\ntype ValidationState = {\n status: \"idle\" | \"validating\" | \"valid\" | \"invalid\";\n source?: \"client\" | \"server\";\n message?: string;\n errors: string[];\n};\n\ntype WorkflowDetailTab =\n | \"overview\"\n | \"topology\"\n | \"executions\"\n | \"edit\"\n | \"revisions\"\n | \"triggers\"\n | \"logs\"\n | \"metrics\";\n\ntype WorkflowExecutionRecord = {\n id: number;\n status?: string | null;\n triggerType?: string | null;\n startedAt?: string | null;\n finishedAt?: string | null;\n durationMs?: number | string | null;\n createdAt?: string | null;\n};\n\nconst createEmptyWorkflowDefinition = (): WorkflowDefinitionDsl => ({\n version: \"1.0.0\",\n description: \"\",\n inputs: {},\n variables: {},\n nodes: [],\n triggers: [],\n metadata: {},\n});\n\nconst TOPOLOGY_SPLIT_STORAGE_KEY = \"solid.workflow.editor.topologySplitPercent\";\n\nfunction readStoredTopologySplitPercent() {\n if (typeof window === \"undefined\") {\n return 62;\n }\n\n const storedValue = Number(window.localStorage.getItem(TOPOLOGY_SPLIT_STORAGE_KEY));\n return Number.isFinite(storedValue) ? Math.min(78, Math.max(22, storedValue)) : 62;\n}\n\nfunction serializeWorkflowDefinitionYaml(definition: WorkflowDefinitionDsl) {\n return YAML.stringify(definition);\n}\n\nfunction parseYamlValue<T>(value: string, fallback: T): T {\n if (!value.trim()) {\n return fallback;\n }\n\n const parsed = YAML.parse(value);\n return (parsed ?? fallback) as T;\n}\n\nfunction normalizeWorkflowDefinition(\n definitionYaml: WorkflowDefinitionRecord[\"definitionYaml\"],\n): WorkflowDefinitionDsl {\n if (!definitionYaml) {\n return createEmptyWorkflowDefinition();\n }\n\n let parsed: any = definitionYaml;\n if (typeof definitionYaml === \"string\") {\n try {\n parsed = YAML.parse(definitionYaml);\n } catch {\n return createEmptyWorkflowDefinition();\n }\n }\n\n return {\n ...createEmptyWorkflowDefinition(),\n ...(parsed ?? {}),\n nodes: Array.isArray((parsed as any)?.nodes) ? (parsed as any).nodes : [],\n triggers: Array.isArray((parsed as any)?.triggers)\n ? (parsed as any).triggers\n : [],\n };\n}\n\nfunction flattenWorkflowNodeIds(nodes: WorkflowNodeRecord[]): string[] {\n return nodes.flatMap((node) => [\n String(node.id),\n ...flattenWorkflowNodeIds(node.children ?? []),\n ...flattenWorkflowNodeIds(node.nodes ?? []),\n ...flattenWorkflowNodeIds(node.then ?? []),\n ...flattenWorkflowNodeIds(node.else ?? []),\n ...(node.branches ?? []).flatMap((branch) =>\n flattenWorkflowNodeIds(branch.nodes ?? []),\n ),\n ]);\n}\n\nfunction buildNodeId(type: string, definition: WorkflowDefinitionDsl) {\n const suffix = type.split(\".\").pop() ?? \"node\";\n const base = suffix.replace(/[^a-zA-Z0-9]+/g, \"\");\n let attempt = base.charAt(0).toLowerCase() + base.slice(1);\n let counter = 1;\n const nodeIds = new Set(flattenWorkflowNodeIds(definition.nodes));\n\n while (nodeIds.has(attempt)) {\n counter += 1;\n attempt = `${base.charAt(0).toLowerCase() + base.slice(1)}${counter}`;\n }\n\n return attempt;\n}\n\nfunction buildBranchId(parentNodeId: string, node: WorkflowNodeRecord) {\n const existingIds = new Set((node.branches ?? []).map((branch) => branch.id));\n let counter = (node.branches ?? []).length + 1;\n let nextId = `${parentNodeId}Branch${counter}`;\n\n while (existingIds.has(nextId)) {\n counter += 1;\n nextId = `${parentNodeId}Branch${counter}`;\n }\n\n return nextId;\n}\n\nfunction countNodes(nodes: WorkflowNodeRecord[]): number {\n return nodes.reduce(\n (sum, node) =>\n sum +\n 1 +\n countNodes(node.children ?? []) +\n countNodes(node.nodes ?? []) +\n countNodes(node.then ?? []) +\n countNodes(node.else ?? []) +\n (node.branches ?? []).reduce(\n (branchSum, branch) => branchSum + countNodes(branch.nodes ?? []),\n 0,\n ),\n 0,\n );\n}\n\nfunction countTriggers(triggers?: Array<Record<string, any>>): number {\n return Array.isArray(triggers) ? triggers.length : 0;\n}\n\nfunction formatExecutionDate(value?: string | null) {\n if (!value) {\n return \"Not available\";\n }\n\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return \"Not available\";\n }\n\n return parsed.toLocaleString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n}\n\nfunction formatDurationMs(value?: number | string | null) {\n const numericValue =\n typeof value === \"string\" ? Number(value) : typeof value === \"number\" ? value : null;\n\n if (numericValue == null || Number.isNaN(numericValue) || numericValue <= 0) {\n return \"Not available\";\n }\n\n if (numericValue < 1000) {\n return `${numericValue} ms`;\n }\n\n const seconds = numericValue / 1000;\n if (seconds < 60) {\n return `${seconds.toFixed(seconds >= 10 ? 0 : 1)} s`;\n }\n\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = Math.round(seconds % 60);\n return `${minutes}m ${remainingSeconds}s`;\n}\n\nfunction getExecutionStatusCategory(status?: string | null) {\n const normalized = (status ?? \"\").trim().toLowerCase();\n\n if ([\"success\", \"succeeded\", \"completed\", \"complete\"].includes(normalized)) {\n return \"success\";\n }\n if ([\"failed\", \"error\", \"errored\", \"cancelled\", \"canceled\"].includes(normalized)) {\n return \"failed\";\n }\n if ([\"running\", \"in_progress\", \"in-progress\", \"started\", \"processing\"].includes(normalized)) {\n return \"inProgress\";\n }\n if ([\"created\", \"pending\", \"queued\", \"scheduled\"].includes(normalized)) {\n return \"pending\";\n }\n\n return \"other\";\n}\n\nfunction buildWorkflowExecutionQueryString(options: {\n workflowDefinitionId: number;\n startDate?: Date | null;\n endDate?: Date | null;\n limit?: number;\n}) {\n const queryData: Record<string, any> = {\n limit: options.limit ?? 100,\n offset: 0,\n sort: [\"startedAt:desc\", \"id:desc\"],\n filters: {\n workflowDefinition: {\n id: {\n $eq: options.workflowDefinitionId,\n },\n },\n },\n };\n\n if (options.startDate || options.endDate) {\n queryData.filters.startedAt = {};\n if (options.startDate) {\n const startDate = new Date(options.startDate);\n startDate.setHours(0, 0, 0, 0);\n queryData.filters.startedAt.$gte = startDate.toISOString();\n }\n if (options.endDate) {\n const endDate = new Date(options.endDate);\n endDate.setHours(23, 59, 59, 999);\n queryData.filters.startedAt.$lte = endDate.toISOString();\n }\n }\n\n return qs.stringify(queryData, { encodeValuesOnly: true });\n}\n\nfunction buildTriggerDocsModel(trigger: Record<string, any>): WorkflowDocsModel {\n const triggerEntries = Object.entries(trigger ?? {}).filter(\n ([key]) => ![\"id\", \"type\", \"description\", \"disabled\", \"name\", \"label\"].includes(key),\n );\n\n return {\n title: trigger.label ?? trigger.name ?? trigger.id ?? \"Trigger\",\n subtitle: trigger.type ?? \"Trigger\",\n summary:\n trigger.description ??\n \"Workflow trigger that can launch the workflow on a schedule or external event.\",\n badges: [\"trigger\", trigger.disabled ? \"disabled\" : \"enabled\"].filter(Boolean),\n definitions: [\n {\n key: \"behavior\",\n label: \"Behavior\",\n content: trigger.disabled\n ? \"This trigger is currently disabled and will not launch workflow executions until it is enabled.\"\n : \"This trigger is currently enabled and may launch workflow executions based on its configuration.\",\n },\n {\n key: \"configuration\",\n label: \"Configuration\",\n content: `\\`\\`\\`yaml\\n${YAML.stringify(trigger)}\\`\\`\\``,\n },\n ],\n outputs: triggerEntries.map(([key, value]) => ({\n key,\n label: key,\n description:\n typeof value === \"object\"\n ? \"Structured trigger configuration value.\"\n : `Current value: ${String(value)}`,\n valueType: Array.isArray(value)\n ? \"array\"\n : typeof value === \"boolean\"\n ? \"boolean\"\n : typeof value === \"number\"\n ? \"number\"\n : typeof value === \"object\"\n ? \"object\"\n : \"string\",\n })),\n };\n}\n\nfunction buildWorkflowDocsModel(definition: WorkflowDefinitionDsl): WorkflowDocsModel {\n return {\n title: \"Workflow Definition\",\n subtitle: \"Workflow-level settings\",\n summary:\n \"Top-level inputs, variables, triggers, and description live here. Use workflow settings when the change is not about a single node.\",\n badges: [\"workflow\", \"settings\"],\n definitions: [\n {\n key: \"inputs\",\n label: \"Inputs\",\n content: `\\`\\`\\`yaml\\n${YAML.stringify(definition.inputs ?? {})}\\`\\`\\``,\n },\n {\n key: \"variables\",\n label: \"Variables\",\n content: `\\`\\`\\`yaml\\n${YAML.stringify(definition.variables ?? {})}\\`\\`\\``,\n },\n {\n key: \"triggers\",\n label: \"Triggers\",\n content: `\\`\\`\\`yaml\\n${YAML.stringify(definition.triggers ?? [])}\\`\\`\\``,\n },\n ],\n };\n}\n\nfunction findNodeById(\n nodes: WorkflowNodeRecord[],\n nodeId: string,\n): WorkflowNodeRecord | undefined {\n for (const node of nodes) {\n if (String(node.id) === nodeId) {\n return node;\n }\n\n const fromChildren =\n findNodeById(node.children ?? [], nodeId) ??\n findNodeById(node.nodes ?? [], nodeId) ??\n findNodeById(node.then ?? [], nodeId) ??\n findNodeById(node.else ?? [], nodeId) ??\n (node.branches ?? []).reduce<WorkflowNodeRecord | undefined>(\n (found, branch) => found ?? findNodeById(branch.nodes ?? [], nodeId),\n undefined,\n );\n\n if (fromChildren) {\n return fromChildren;\n }\n }\n\n return undefined;\n}\n\nfunction getFirstNodeId(nodes: WorkflowNodeRecord[]): string {\n return nodes[0]?.id ?? \"\";\n}\n\nfunction updateNodeById(\n nodes: WorkflowNodeRecord[],\n nodeId: string,\n updater: (node: WorkflowNodeRecord) => WorkflowNodeRecord,\n): WorkflowNodeRecord[] {\n return nodes.map((node) => {\n if (String(node.id) === nodeId) {\n return updater(node);\n }\n\n return {\n ...node,\n children: node.children\n ? updateNodeById(node.children, nodeId, updater)\n : node.children,\n nodes: node.nodes ? updateNodeById(node.nodes, nodeId, updater) : node.nodes,\n then: node.then ? updateNodeById(node.then, nodeId, updater) : node.then,\n else: node.else ? updateNodeById(node.else, nodeId, updater) : node.else,\n branches: node.branches?.map((branch) => ({\n ...branch,\n nodes: updateNodeById(branch.nodes ?? [], nodeId, updater),\n })),\n };\n });\n}\n\nfunction removeNodeById(\n nodes: WorkflowNodeRecord[],\n nodeId: string,\n): WorkflowNodeRecord[] {\n return nodes\n .filter((node) => String(node.id) !== nodeId)\n .map((node) => ({\n ...node,\n children: node.children ? removeNodeById(node.children, nodeId) : node.children,\n nodes: node.nodes ? removeNodeById(node.nodes, nodeId) : node.nodes,\n then: node.then ? removeNodeById(node.then, nodeId) : node.then,\n else: node.else ? removeNodeById(node.else, nodeId) : node.else,\n branches: node.branches?.map((branch) => ({\n ...branch,\n nodes: removeNodeById(branch.nodes ?? [], nodeId),\n })),\n }));\n}\n\nfunction insertAt<T>(items: T[], index: number, item: T): T[] {\n const safeIndex = Math.max(0, Math.min(index, items.length));\n return [...items.slice(0, safeIndex), item, ...items.slice(safeIndex)];\n}\n\nfunction insertNodeIntoDefinition(\n definition: WorkflowDefinitionDsl,\n target: WorkflowInsertTarget,\n nodeToInsert: WorkflowNodeRecord,\n): WorkflowDefinitionDsl {\n if (target.scope === \"root\") {\n return {\n ...definition,\n nodes: insertAt(definition.nodes, target.index, nodeToInsert),\n };\n }\n\n return {\n ...definition,\n nodes: updateNodeById(definition.nodes, target.parentNodeId, (node) => {\n if (target.scope === \"slot\") {\n const slotNodes = Array.isArray(node[target.slotKey])\n ? (node[target.slotKey] as WorkflowNodeRecord[])\n : [];\n return {\n ...node,\n [target.slotKey]: insertAt(slotNodes, target.index, nodeToInsert),\n };\n }\n\n return {\n ...node,\n branches: (node.branches ?? []).map((branch) =>\n branch.id === target.branchId\n ? {\n ...branch,\n nodes: insertAt(branch.nodes ?? [], target.index, nodeToInsert),\n }\n : branch,\n ),\n };\n }),\n };\n}\n\nfunction appendBranchToDefinition(\n definition: WorkflowDefinitionDsl,\n parentNodeId: string,\n): WorkflowDefinitionDsl {\n return {\n ...definition,\n nodes: updateNodeById(definition.nodes, parentNodeId, (node) => ({\n ...node,\n branches: [\n ...(node.branches ?? []),\n {\n id: buildBranchId(parentNodeId, node),\n name: `Branch ${(node.branches ?? []).length + 1}`,\n nodes: [],\n },\n ],\n })),\n };\n}\n\nfunction getFieldValue(value: Record<string, any>, pathOrKey: string) {\n const parts = pathOrKey.split(\".\");\n let current: any = value;\n for (const part of parts) {\n current = current?.[part];\n if (current === undefined) {\n return undefined;\n }\n }\n return current;\n}\n\nfunction validateWorkflowDefinitionClient(\n definition: WorkflowDefinitionDsl,\n nodeTypes: WorkflowNodeMetadataResponse[],\n workflowKey: string,\n): string[] {\n const errors: string[] = [];\n const nodeTypeMap = new Map(nodeTypes.map((item) => [item.type, item]));\n const seenNodeIds = new Set<string>();\n\n if (!workflowKey.trim()) {\n errors.push(\"Workflow key is required.\");\n }\n\n if (!Array.isArray(definition.nodes) || !definition.nodes.length) {\n errors.push(\"Workflow definition must contain at least one root node.\");\n }\n\n const validateNodeSequence = (nodes: WorkflowNodeRecord[], scopeLabel: string) => {\n nodes.forEach((node, index) => {\n const prefix = `${scopeLabel} node ${index + 1}`;\n\n if (!node.id) {\n errors.push(`${prefix} is missing an id.`);\n } else if (seenNodeIds.has(node.id)) {\n errors.push(`Duplicate workflow node id \"${node.id}\".`);\n } else {\n seenNodeIds.add(node.id);\n }\n\n if (!node.type) {\n errors.push(`${prefix} is missing a type.`);\n return;\n }\n\n const nodeType = nodeTypeMap.get(node.type);\n if (!nodeType) {\n errors.push(`Node \"${node.id}\" uses unregistered type \"${node.type}\".`);\n return;\n }\n\n const configuration = node.configuration ?? {};\n (nodeType.authoring?.configurationFields ?? []).forEach((field) => {\n if (!field.required) {\n return;\n }\n\n const value = getFieldValue(configuration, field.path ?? field.key);\n const isEmptyArray = Array.isArray(value) && value.length === 0;\n const isMissing =\n value === undefined ||\n value === null ||\n value === \"\" ||\n isEmptyArray;\n\n if (isMissing) {\n errors.push(\n `Node \"${node.id}\" is missing required field \"${field.label ?? field.key}\".`,\n );\n }\n });\n\n (nodeType.authoring?.childSlots ?? []).forEach((slot) => {\n if (slot.kind === \"branch-collection\") {\n const branchCount = Array.isArray(node.branches) ? node.branches.length : 0;\n if (slot.required && branchCount === 0) {\n errors.push(\n `Node \"${node.id}\" requires at least one branch in \"${slot.label ?? slot.key}\".`,\n );\n }\n if (slot.minItems && branchCount < slot.minItems) {\n errors.push(\n `Node \"${node.id}\" requires at least ${slot.minItems} branches in \"${slot.label ?? slot.key}\".`,\n );\n }\n } else {\n const slotNodes = Array.isArray(node[slot.key]) ? node[slot.key] : [];\n if (slot.required && slotNodes.length === 0) {\n errors.push(\n `Node \"${node.id}\" requires at least one child node in \"${slot.label ?? slot.key}\".`,\n );\n }\n if (slot.minItems && slotNodes.length < slot.minItems) {\n errors.push(\n `Node \"${node.id}\" requires at least ${slot.minItems} nodes in \"${slot.label ?? slot.key}\".`,\n );\n }\n }\n });\n\n validateNodeSequence(node.children ?? [], `${node.id} children`);\n validateNodeSequence(node.nodes ?? [], `${node.id} nodes`);\n validateNodeSequence(node.then ?? [], `${node.id} then`);\n validateNodeSequence(node.else ?? [], `${node.id} else`);\n (node.branches ?? []).forEach((branch, branchIndex) => {\n if (!branch.id) {\n errors.push(`Node \"${node.id}\" has a branch without an id.`);\n }\n validateNodeSequence(\n branch.nodes ?? [],\n `${node.id} branch ${branch.name ?? branch.id ?? branchIndex + 1}`,\n );\n });\n });\n };\n\n validateNodeSequence(definition.nodes, \"root\");\n return errors;\n}\n\nexport function WorkflowDefinitionEditorPage() {\n const params = useParams();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const entityApi = React.useMemo(\n () => createSolidEntityApi(\"workflowDefinition\"),\n [],\n );\n const workflowExecutionApi = React.useMemo(\n () => createSolidEntityApi(\"workflowExecution\"),\n [],\n );\n const {\n useCreateSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n } = entityApi;\n const {\n useLazyGetSolidEntitiesQuery: useLazyGetWorkflowExecutionsQuery,\n } = workflowExecutionApi;\n\n const workflowDefinitionId = params.id ?? \"\";\n const moduleName = params.moduleName ?? \"solid-core\";\n\n const {\n data: workflowDefinitionResponse,\n isLoading: isWorkflowDefinitionLoading,\n refetch,\n } = useGetSolidEntityByIdQuery(\n { id: workflowDefinitionId, qs: \"\" },\n { skip: !workflowDefinitionId || workflowDefinitionId === \"new\" },\n );\n const [createWorkflowDefinition, { isLoading: isCreating }] =\n useCreateSolidEntityMutation();\n const [updateWorkflowDefinition, { isLoading: isSaving }] =\n useUpdateSolidEntityMutation();\n const [validateWorkflowDefinition, { isLoading: isServerValidating }] =\n useValidateWorkflowDefinitionMutation();\n const [executeWorkflowDefinition, { isLoading: isExecuting }] =\n useExecuteWorkflowDefinitionMutation();\n const [triggerGetWorkflowExecutions, workflowExecutionsQuery] =\n useLazyGetWorkflowExecutionsQuery();\n const [triggerGetWorkflowExecutionPresence, workflowExecutionPresenceQuery] =\n useLazyGetWorkflowExecutionsQuery();\n\n const {\n data: nodeTypes = [],\n isLoading: isNodeTypesLoading,\n isError: isNodeTypesError,\n } = useGetWorkflowNodeTypesQuery();\n\n const record = workflowDefinitionResponse?.data as\n | WorkflowDefinitionRecord\n | undefined;\n\n const [workflowKey, setWorkflowKey] = React.useState(\"\");\n const [workflowDisplayName, setWorkflowDisplayName] = React.useState(\"\");\n const [workflowDescription, setWorkflowDescription] = React.useState(\"\");\n const [definitionDraft, setDefinitionDraft] = React.useState<WorkflowDefinitionDsl>(\n createEmptyWorkflowDefinition(),\n );\n const [codeValue, setCodeValue] = React.useState(\n serializeWorkflowDefinitionYaml(createEmptyWorkflowDefinition()),\n );\n const [codeError, setCodeError] = React.useState<string | null>(null);\n const [paletteNodeTypeKey, setPaletteNodeTypeKey] = React.useState<string>(\"\");\n const [selectedNodeId, setSelectedNodeId] = React.useState<string>(\"\");\n const [selectedTriggerId, setSelectedTriggerId] = React.useState<string>(\"\");\n const [editorOpen, setEditorOpen] = React.useState(false);\n const [workflowSettingsOpen, setWorkflowSettingsOpen] = React.useState(false);\n const [workflowInputsValue, setWorkflowInputsValue] = React.useState(\"{}\");\n const [workflowVariablesValue, setWorkflowVariablesValue] = React.useState(\"{}\");\n const [workflowTriggersValue, setWorkflowTriggersValue] = React.useState(\"[]\");\n const [docsOpen, setDocsOpen] = React.useState(false);\n const [docsNodeTypeKey, setDocsNodeTypeKey] = React.useState<string>(\"\");\n const [topologyDocsOpen, setTopologyDocsOpen] = React.useState(false);\n const [topologyDocsNodeTypeKey, setTopologyDocsNodeTypeKey] =\n React.useState<string>(\"\");\n const [topologyDocsModel, setTopologyDocsModel] =\n React.useState<WorkflowDocsModel | undefined>();\n const [detailTab, setDetailTab] = React.useState<WorkflowDetailTab>(\n workflowDefinitionId === \"new\" ? \"edit\" : \"overview\",\n );\n const [activePanel, setActivePanel] = React.useState<\"code\" | \"flow\" | \"docs\">(\n \"flow\",\n );\n const [toolsOpen, setToolsOpen] = React.useState(false);\n const [codePaneOpen, setCodePaneOpen] = React.useState(false);\n const [topologyViewOpen, setTopologyViewOpen] = React.useState(true);\n const [topologyYamlViewOpen, setTopologyYamlViewOpen] = React.useState(false);\n const [topologySplitPercent, setTopologySplitPercent] = React.useState(\n readStoredTopologySplitPercent,\n );\n const topologySplitRef = React.useRef<HTMLDivElement | null>(null);\n const [overviewStartDate, setOverviewStartDate] = React.useState<Date | null>(null);\n const [overviewEndDate, setOverviewEndDate] = React.useState<Date | null>(null);\n const [validationState, setValidationState] = React.useState<ValidationState>({\n status: \"idle\",\n errors: [],\n });\n\n React.useEffect(() => {\n setDetailTab(workflowDefinitionId === \"new\" ? \"edit\" : \"overview\");\n }, [workflowDefinitionId]);\n\n React.useEffect(() => {\n setOverviewStartDate(null);\n setOverviewEndDate(null);\n }, [workflowDefinitionId]);\n\n React.useEffect(() => {\n if (workflowDefinitionId === \"new\") {\n const emptyDefinition = createEmptyWorkflowDefinition();\n setWorkflowKey(\"\");\n setWorkflowDisplayName(\"\");\n setWorkflowDescription(\"\");\n setDefinitionDraft(emptyDefinition);\n setCodeValue(serializeWorkflowDefinitionYaml(emptyDefinition));\n setCodeError(null);\n setSelectedNodeId(\"\");\n setSelectedTriggerId(\"\");\n setValidationState({ status: \"idle\", errors: [] });\n return;\n }\n\n if (!record) {\n return;\n }\n\n const normalized = normalizeWorkflowDefinition(record.definitionYaml);\n setWorkflowKey(record.key ?? \"\");\n setWorkflowDisplayName(record.displayName ?? \"\");\n setWorkflowDescription(record.description ?? normalized.description ?? \"\");\n setDefinitionDraft(normalized);\n setCodeValue(serializeWorkflowDefinitionYaml(normalized));\n setCodeError(null);\n setSelectedNodeId(getFirstNodeId(normalized.nodes));\n setSelectedTriggerId(\"\");\n setValidationState({ status: \"idle\", errors: [] });\n }, [record, workflowDefinitionId]);\n\n React.useEffect(() => {\n if (!paletteNodeTypeKey && nodeTypes.length) {\n setPaletteNodeTypeKey(nodeTypes[0].type);\n }\n }, [nodeTypes, paletteNodeTypeKey]);\n\n React.useEffect(() => {\n if (!selectedNodeId) {\n return;\n }\n\n if (!findNodeById(definitionDraft.nodes, selectedNodeId)) {\n setSelectedNodeId(getFirstNodeId(definitionDraft.nodes));\n }\n }, [definitionDraft.nodes, selectedNodeId]);\n\n React.useEffect(() => {\n if (!selectedTriggerId) {\n return;\n }\n\n const exists = (definitionDraft.triggers ?? []).some(\n (trigger) => String(trigger.id) === selectedTriggerId,\n );\n if (!exists) {\n setSelectedTriggerId(\"\");\n }\n }, [definitionDraft.triggers, selectedTriggerId]);\n\n React.useEffect(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.localStorage.setItem(\n TOPOLOGY_SPLIT_STORAGE_KEY,\n String(Math.round(topologySplitPercent)),\n );\n }, [topologySplitPercent]);\n\n React.useEffect(() => {\n if (!workflowSettingsOpen) {\n return;\n }\n\n setWorkflowInputsValue(YAML.stringify(definitionDraft.inputs ?? {}));\n setWorkflowVariablesValue(YAML.stringify(definitionDraft.variables ?? {}));\n setWorkflowTriggersValue(YAML.stringify(definitionDraft.triggers ?? []));\n }, [definitionDraft, workflowSettingsOpen]);\n\n const paletteNodeType = React.useMemo(\n () => nodeTypes.find((nodeType) => nodeType.type === paletteNodeTypeKey),\n [nodeTypes, paletteNodeTypeKey],\n );\n\n const selectedNode = React.useMemo(\n () => findNodeById(definitionDraft.nodes, selectedNodeId),\n [definitionDraft.nodes, selectedNodeId],\n );\n\n const selectedNodeType = React.useMemo(() => {\n if (!selectedNode?.type) {\n return undefined;\n }\n return nodeTypes.find((nodeType) => nodeType.type === selectedNode.type);\n }, [nodeTypes, selectedNode]);\n\n const selectedTrigger = React.useMemo(\n () =>\n (definitionDraft.triggers ?? []).find(\n (trigger) => String(trigger.id) === selectedTriggerId,\n ),\n [definitionDraft.triggers, selectedTriggerId],\n );\n\n const docsNodeType = React.useMemo(() => {\n if (docsNodeTypeKey) {\n return nodeTypes.find((nodeType) => nodeType.type === docsNodeTypeKey);\n }\n return selectedTrigger ? undefined : selectedNodeType ?? paletteNodeType;\n }, [\n docsNodeTypeKey,\n nodeTypes,\n paletteNodeType,\n selectedNodeType,\n selectedTrigger,\n ]);\n\n const docsModel = React.useMemo(() => {\n if (selectedTrigger) {\n return buildTriggerDocsModel(selectedTrigger);\n }\n if (!selectedNode && !selectedTrigger) {\n return buildWorkflowDocsModel(definitionDraft);\n }\n return undefined;\n }, [definitionDraft, selectedNode, selectedTrigger]);\n\n const topologyDocsNodeType = React.useMemo(() => {\n if (!topologyDocsNodeTypeKey) {\n return undefined;\n }\n return nodeTypes.find((nodeType) => nodeType.type === topologyDocsNodeTypeKey);\n }, [nodeTypes, topologyDocsNodeTypeKey]);\n\n const workflowStats = React.useMemo(\n () => ({\n nodeCount: countNodes(definitionDraft.nodes),\n triggerCount: countTriggers(definitionDraft.triggers),\n inputCount:\n definitionDraft.inputs && typeof definitionDraft.inputs === \"object\"\n ? Array.isArray(definitionDraft.inputs)\n ? definitionDraft.inputs.length\n : Object.keys(definitionDraft.inputs).length\n : 0,\n }),\n [definitionDraft],\n );\n\n const numericWorkflowDefinitionId = React.useMemo(() => {\n const candidate = record?.id ?? Number(workflowDefinitionId);\n const parsedCandidate =\n typeof candidate === \"number\" ? candidate : Number(candidate);\n return Number.isFinite(parsedCandidate) ? parsedCandidate : null;\n }, [record?.id, workflowDefinitionId]);\n\n const validationTag = React.useMemo(() => {\n if (validationState.status === \"valid\") {\n return { tone: \"success\" as const, label: \"Validated\" };\n }\n if (validationState.status === \"invalid\") {\n return { tone: \"danger\" as const, label: \"Needs fixes\" };\n }\n if (validationState.status === \"validating\") {\n return { tone: undefined, label: \"Validating\" };\n }\n return { tone: undefined, label: \"Not validated\" };\n }, [validationState.status]);\n\n const loadWorkflowExecutions = React.useCallback(async () => {\n if (!numericWorkflowDefinitionId) {\n return;\n }\n\n await triggerGetWorkflowExecutions(\n buildWorkflowExecutionQueryString({\n workflowDefinitionId: numericWorkflowDefinitionId,\n startDate: overviewStartDate,\n endDate: overviewEndDate,\n }),\n );\n }, [\n numericWorkflowDefinitionId,\n overviewEndDate,\n overviewStartDate,\n triggerGetWorkflowExecutions,\n ]);\n\n React.useEffect(() => {\n if (!numericWorkflowDefinitionId || workflowDefinitionId === \"new\") {\n return;\n }\n\n void triggerGetWorkflowExecutionPresence(\n buildWorkflowExecutionQueryString({\n workflowDefinitionId: numericWorkflowDefinitionId,\n limit: 1,\n }),\n );\n }, [\n numericWorkflowDefinitionId,\n triggerGetWorkflowExecutionPresence,\n workflowDefinitionId,\n ]);\n\n React.useEffect(() => {\n if (\n detailTab !== \"overview\" ||\n !numericWorkflowDefinitionId ||\n workflowDefinitionId === \"new\"\n ) {\n return;\n }\n\n void loadWorkflowExecutions();\n }, [\n detailTab,\n loadWorkflowExecutions,\n numericWorkflowDefinitionId,\n workflowDefinitionId,\n ]);\n\n const executionRecords = React.useMemo(\n () => ((workflowExecutionsQuery.data?.records ?? []) as WorkflowExecutionRecord[]),\n [workflowExecutionsQuery.data?.records],\n );\n\n const hasExecutions = React.useMemo(\n () => (workflowExecutionPresenceQuery.data?.meta?.totalRecords ?? 0) > 0,\n [workflowExecutionPresenceQuery.data?.meta?.totalRecords],\n );\n\n const executionOverview = React.useMemo(() => {\n const totals = {\n total: executionRecords.length,\n success: 0,\n failed: 0,\n inProgress: 0,\n pending: 0,\n other: 0,\n totalDurationMs: 0,\n durationCount: 0,\n };\n\n for (const execution of executionRecords) {\n const category = getExecutionStatusCategory(execution.status);\n totals[category] += 1;\n\n const durationValue =\n typeof execution.durationMs === \"string\"\n ? Number(execution.durationMs)\n : execution.durationMs;\n if (\n typeof durationValue === \"number\" &&\n Number.isFinite(durationValue) &&\n durationValue > 0\n ) {\n totals.totalDurationMs += durationValue;\n totals.durationCount += 1;\n }\n }\n\n const terminalCount = totals.success + totals.failed;\n const successRatio = terminalCount ? Math.round((totals.success / terminalCount) * 100) : 0;\n const failedRatio = terminalCount ? Math.round((totals.failed / terminalCount) * 100) : 0;\n\n return {\n ...totals,\n successRatio,\n failedRatio,\n averageDurationMs: totals.durationCount\n ? Math.round(totals.totalDurationMs / totals.durationCount)\n : null,\n latestExecution: executionRecords[0],\n };\n }, [executionRecords]);\n\n const overviewDateFilterLabel = React.useMemo(() => {\n if (!overviewStartDate && !overviewEndDate) {\n return \"All dates\";\n }\n\n const formatDateOnly = (value: Date | null) =>\n value\n ? value.toLocaleDateString(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n })\n : null;\n\n const start = formatDateOnly(overviewStartDate);\n const end = formatDateOnly(overviewEndDate);\n\n if (start && end) {\n return `${start} - ${end}`;\n }\n if (start) {\n return `From ${start}`;\n }\n return `Until ${end}`;\n }, [overviewEndDate, overviewStartDate]);\n\n const syncDraftToCode = React.useCallback((nextDraft: WorkflowDefinitionDsl) => {\n setDefinitionDraft(nextDraft);\n setCodeValue(serializeWorkflowDefinitionYaml(nextDraft));\n setCodeError(null);\n setValidationState({ status: \"idle\", errors: [] });\n }, []);\n\n const handleSaveWorkflowSettings = React.useCallback(() => {\n try {\n const nextInputs = parseYamlValue<Record<string, any>>(workflowInputsValue, {});\n const nextVariables = parseYamlValue<Record<string, any>>(workflowVariablesValue, {});\n const nextTriggers = parseYamlValue<Array<Record<string, any>>>(workflowTriggersValue, []);\n\n if (!Array.isArray(nextTriggers)) {\n throw new Error(\"Triggers must be a YAML sequence.\");\n }\n\n const nextDraft: WorkflowDefinitionDsl = {\n ...definitionDraft,\n description: workflowDescription,\n inputs: nextInputs,\n variables: nextVariables,\n triggers: nextTriggers,\n };\n\n syncDraftToCode(nextDraft);\n setWorkflowSettingsOpen(false);\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Workflow settings updated\",\n detail: \"Inputs, variables, and triggers were updated in the draft.\",\n }),\n );\n } catch (error: any) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Invalid workflow settings\",\n detail:\n error?.message ??\n \"Fix the workflow-level YAML blocks before saving the settings.\",\n }),\n );\n }\n }, [\n definitionDraft,\n dispatch,\n syncDraftToCode,\n workflowDescription,\n workflowInputsValue,\n workflowTriggersValue,\n workflowVariablesValue,\n ]);\n\n const handleCodeChange = (nextValue: string | undefined) => {\n const safeValue = nextValue ?? \"\";\n setCodeValue(safeValue);\n\n try {\n const parsed = YAML.parse(safeValue);\n const normalized = normalizeWorkflowDefinition(parsed);\n setDefinitionDraft(normalized);\n setCodeError(null);\n setValidationState({ status: \"idle\", errors: [] });\n } catch (error: any) {\n setCodeError(error?.message ?? \"Invalid YAML\");\n setValidationState({\n status: \"invalid\",\n source: \"client\",\n message: \"Definition YAML is invalid.\",\n errors: [error?.message ?? \"Invalid YAML\"],\n });\n }\n };\n\n const startTopologySplitResize = React.useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n const container = topologySplitRef.current;\n if (!container) {\n return;\n }\n\n const handleMouseMove = (moveEvent: MouseEvent) => {\n const rect = container.getBoundingClientRect();\n if (!rect.width) {\n return;\n }\n\n const nextPercent = ((moveEvent.clientX - rect.left) / rect.width) * 100;\n setTopologySplitPercent(Math.min(78, Math.max(22, nextPercent)));\n };\n\n const handleMouseUp = () => {\n document.removeEventListener(\"mousemove\", handleMouseMove);\n document.removeEventListener(\"mouseup\", handleMouseUp);\n };\n\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", handleMouseUp);\n },\n [],\n );\n\n const createNodeFromType = (nodeType: WorkflowNodeMetadataResponse): WorkflowNodeRecord => {\n const nextNode: WorkflowNodeRecord = {\n id: buildNodeId(nodeType.type, definitionDraft),\n kind: nodeType.kind,\n type: nodeType.type,\n name: nodeType.label ?? nodeType.type,\n description: nodeType.description ?? \"\",\n configuration: nodeType.authoring?.defaultConfiguration ?? {},\n };\n\n (nodeType.authoring?.childSlots ?? []).forEach((slot) => {\n if (slot.kind === \"branch-collection\") {\n const branchCount = Math.max(slot.minItems ?? 0, slot.required ? 1 : 0);\n nextNode.branches = Array.from({ length: branchCount }, (_, index) => ({\n id: `${nextNode.id}Branch${index + 1}`,\n name: `Branch ${index + 1}`,\n nodes: [],\n }));\n return;\n }\n\n nextNode[slot.key] = nextNode[slot.key] ?? [];\n });\n\n return nextNode;\n };\n\n const validateCurrentDefinition = React.useCallback(\n async (options?: { showSuccessToast?: boolean }) => {\n if (codeError) {\n const nextState: ValidationState = {\n status: \"invalid\",\n source: \"client\",\n message: \"Definition YAML is invalid.\",\n errors: [codeError],\n };\n setValidationState(nextState);\n setActivePanel(\"code\");\n return { valid: false, errors: nextState.errors };\n }\n\n setValidationState({\n status: \"validating\",\n errors: [],\n message: \"Validating workflow definition...\",\n });\n\n const clientErrors = validateWorkflowDefinitionClient(\n {\n ...definitionDraft,\n description: workflowDescription,\n },\n nodeTypes,\n workflowKey,\n );\n\n if (clientErrors.length) {\n const nextState: ValidationState = {\n status: \"invalid\",\n source: \"client\",\n message: \"Client-side validation failed.\",\n errors: clientErrors,\n };\n setValidationState(nextState);\n setActivePanel(\"flow\");\n return { valid: false, errors: clientErrors };\n }\n\n try {\n const response: any = await validateWorkflowDefinition({\n definitionYaml: serializeWorkflowDefinitionYaml({\n ...definitionDraft,\n description: workflowDescription,\n }),\n }).unwrap();\n\n const nextState: ValidationState = {\n status: \"valid\",\n source: \"server\",\n message: response?.message ?? \"Workflow definition is valid.\",\n errors: [],\n };\n setValidationState(nextState);\n\n if (options?.showSuccessToast) {\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Validation passed\",\n detail: nextState.message,\n }),\n );\n }\n\n return { valid: true, errors: [] };\n } catch (error: any) {\n const detail =\n error?.data?.message ??\n error?.message ??\n \"Workflow validation failed on the server.\";\n const nextState: ValidationState = {\n status: \"invalid\",\n source: \"server\",\n message: detail,\n errors: [detail],\n };\n setValidationState(nextState);\n setActivePanel(\"flow\");\n return { valid: false, errors: [detail] };\n }\n },\n [\n codeError,\n definitionDraft,\n dispatch,\n nodeTypes,\n validateWorkflowDefinition,\n workflowDescription,\n workflowKey,\n ],\n );\n\n const handleInsertNode = (target: WorkflowInsertTarget) => {\n if (!paletteNodeType) {\n dispatch(\n showToast({\n severity: \"warn\",\n summary: \"Pick a node type\",\n detail: \"Select a node type from the palette before inserting into the flow.\",\n }),\n );\n return;\n }\n\n const nextNode = createNodeFromType(paletteNodeType);\n const nextDraft = insertNodeIntoDefinition(definitionDraft, target, nextNode);\n syncDraftToCode(nextDraft);\n setSelectedNodeId(nextNode.id);\n setDocsNodeTypeKey(nextNode.type);\n setEditorOpen(true);\n setActivePanel(\"flow\");\n };\n\n const handleAddBranch = (parentNodeId: string) => {\n const nextDraft = appendBranchToDefinition(definitionDraft, parentNodeId);\n syncDraftToCode(nextDraft);\n };\n\n const handleUpdateSelectedNode = (nextNode: WorkflowNodeRecord) => {\n if (!selectedNode) {\n return;\n }\n\n const nextDraft = {\n ...definitionDraft,\n nodes: updateNodeById(definitionDraft.nodes, selectedNode.id, () => nextNode),\n };\n\n syncDraftToCode(nextDraft);\n setSelectedNodeId(nextNode.id);\n setDocsNodeTypeKey(nextNode.type);\n };\n\n const handleRemoveNode = (nodeId: string) => {\n const nextDraft = {\n ...definitionDraft,\n nodes: removeNodeById(definitionDraft.nodes, nodeId),\n };\n syncDraftToCode(nextDraft);\n if (selectedNodeId === nodeId) {\n setSelectedNodeId(getFirstNodeId(nextDraft.nodes));\n }\n };\n\n const handleSave = async () => {\n const validation = await validateCurrentDefinition();\n if (!validation.valid) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Validation failed\",\n detail: validation.errors[0] ?? \"Fix validation errors before saving.\",\n }),\n );\n return;\n }\n\n const payload = {\n key: workflowKey,\n displayName: workflowDisplayName,\n description: workflowDescription,\n definitionYaml: serializeWorkflowDefinitionYaml({\n ...definitionDraft,\n description: workflowDescription,\n }),\n };\n\n try {\n if (record?.id) {\n await updateWorkflowDefinition({\n id: record.id,\n data: {\n ...record,\n ...payload,\n },\n }).unwrap();\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Saved\",\n detail: \"Workflow definition updated successfully.\",\n }),\n );\n refetch();\n } else {\n const result: any = await createWorkflowDefinition(payload).unwrap();\n const createdId = result?.data?.id ?? result?.id;\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Created\",\n detail: \"Workflow definition created successfully.\",\n }),\n );\n if (createdId) {\n navigate(\n `/admin/core/${moduleName}/workflow-definition/editor/${createdId}`,\n { replace: true },\n );\n }\n }\n } catch (error: any) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Save failed\",\n detail:\n error?.data?.message ??\n error?.message ??\n \"Failed to save workflow definition.\",\n }),\n );\n }\n };\n\n const handleExecute = async () => {\n if (!record?.id) {\n dispatch(\n showToast({\n severity: \"warn\",\n summary: \"Save first\",\n detail: \"Create the workflow definition before launching execution.\",\n }),\n );\n return;\n }\n\n const validation = await validateCurrentDefinition();\n if (!validation.valid) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Execution blocked\",\n detail: validation.errors[0] ?? \"Workflow validation failed.\",\n }),\n );\n return;\n }\n\n try {\n const response: any = await executeWorkflowDefinition({ id: record.id }).unwrap();\n dispatch(\n showToast({\n severity: response?.status === \"failed\" ? \"error\" : \"success\",\n summary:\n response?.status === \"failed\"\n ? \"Execution failed\"\n : \"Execution started\",\n detail:\n response?.executionIdentifier ??\n response?.errorSummary ??\n \"Workflow execution request completed.\",\n }),\n );\n } catch (error: any) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Execution failed\",\n detail:\n error?.data?.message ??\n error?.message ??\n \"Failed to execute workflow definition.\",\n }),\n );\n }\n };\n\n const renderPlaceholderTab = (label: string, message: string) => (\n <div className=\"workflow-editor-placeholder\">\n <div className=\"workflow-editor-placeholder__icon\">\n <Activity size={20} />\n </div>\n <div className=\"workflow-editor-placeholder__copy\">\n <h3>{label}</h3>\n <p>{message}</p>\n </div>\n </div>\n );\n\n const overviewContent =\n workflowDefinitionId === \"new\" ? (\n <div className=\"workflow-editor-overview workflow-editor-overview--empty\">\n <div className=\"workflow-editor-overview-cta\">\n <div className=\"workflow-editor-overview-cta__art\">\n <Save size={26} />\n </div>\n <div className=\"workflow-editor-overview-cta__copy\">\n <h2>Save this workflow to unlock the overview.</h2>\n <p>\n Once this definition exists, the overview tab will switch to execution\n analytics, KPI summaries, and date-based filtering.\n </p>\n </div>\n <div className=\"workflow-editor-overview-cta__actions\">\n <SolidButton leftIcon={<Save size={16} />} onClick={handleSave}>\n Save Workflow\n </SolidButton>\n <SolidButton variant=\"outline\" onClick={() => setDetailTab(\"edit\")}>\n Continue Editing\n </SolidButton>\n </div>\n </div>\n </div>\n ) : !hasExecutions ? (\n <div className=\"workflow-editor-overview workflow-editor-overview--empty\">\n <div className=\"workflow-editor-overview-cta\">\n <div className=\"workflow-editor-overview-cta__art\">\n <GitBranchPlus size={28} />\n </div>\n <div className=\"workflow-editor-overview-cta__copy\">\n <h2>{workflowDisplayName || record?.displayName || workflowKey || \"Workflow\"}</h2>\n <p>\n Run the workflow once to unlock execution history, operational KPIs,\n and workflow activity for this definition.\n </p>\n </div>\n <div className=\"workflow-editor-overview-cta__actions\">\n <SolidButton\n leftIcon={<Play size={16} />}\n loading={isExecuting}\n onClick={() => void handleExecute()}\n >\n Execute Workflow\n </SolidButton>\n <SolidButton variant=\"outline\" onClick={() => setDetailTab(\"edit\")}>\n Open Builder\n </SolidButton>\n </div>\n </div>\n\n <div className=\"workflow-editor-overview-guides\">\n <div className=\"workflow-editor-overview-guide-card\">\n <h3>Overview</h3>\n <p>Execution KPIs and health snapshots appear here after the first successful run.</p>\n </div>\n <div className=\"workflow-editor-overview-guide-card\">\n <h3>Edit</h3>\n <p>Refine YAML, topology, nodes, inputs, and triggers inside the builder workspace.</p>\n </div>\n <div className=\"workflow-editor-overview-guide-card\">\n <h3>Executions</h3>\n <p>Execution history and drill-downs will become available as runs accumulate.</p>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-overview\">\n <div className=\"workflow-editor-overview-filterbar\">\n <div className=\"workflow-editor-overview-filterbar__left\">\n <div className=\"workflow-editor-overview-filter\">\n <label>Date From</label>\n <SolidDatePicker\n selected={overviewStartDate}\n onChange={(date: Date | null) => setOverviewStartDate(date)}\n placeholderText=\"Start date\"\n />\n </div>\n <div className=\"workflow-editor-overview-filter\">\n <label>Date To</label>\n <SolidDatePicker\n selected={overviewEndDate}\n onChange={(date: Date | null) => setOverviewEndDate(date)}\n placeholderText=\"End date\"\n />\n </div>\n <SolidButton size=\"small\" variant=\"outline\" onClick={loadWorkflowExecutions}>\n Apply\n </SolidButton>\n {(overviewStartDate || overviewEndDate) && (\n <SolidButton\n size=\"small\"\n variant=\"ghost\"\n onClick={() => {\n setOverviewStartDate(null);\n setOverviewEndDate(null);\n }}\n >\n Clear\n </SolidButton>\n )}\n </div>\n <div className=\"workflow-editor-overview-filterbar__right\">\n <SolidTag>{overviewDateFilterLabel}</SolidTag>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<RefreshCw size={14} />}\n loading={workflowExecutionsQuery.isFetching}\n onClick={loadWorkflowExecutions}\n >\n Refresh\n </SolidButton>\n </div>\n </div>\n\n <div className=\"workflow-editor-overview-stats\">\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">Success Ratio</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.successRatio}%\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n {executionOverview.success} successful runs\n </span>\n </div>\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">Failed Ratio</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.failedRatio}%\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n {executionOverview.failed} failed runs\n </span>\n </div>\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">In Progress</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.inProgress}\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n Currently running executions\n </span>\n </div>\n <div className=\"workflow-editor-overview-stat\">\n <span className=\"workflow-editor-overview-stat-label\">Pending</span>\n <strong className=\"workflow-editor-overview-stat-value\">\n {executionOverview.pending}\n </strong>\n <span className=\"workflow-editor-overview-stat-meta\">\n Created or queued executions\n </span>\n </div>\n </div>\n\n <div className=\"workflow-editor-overview-grid\">\n <SolidPanel header=\"Workflow Summary\">\n <div className=\"workflow-editor-overview-section\">\n <div className=\"workflow-editor-overview-kv\">\n <span>Workflow</span>\n <strong>{workflowDisplayName || record?.displayName || workflowKey}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Total Executions</span>\n <strong>{workflowExecutionPresenceQuery.data?.meta?.totalRecords ?? 0}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Executions In Range</span>\n <strong>{workflowExecutionsQuery.data?.meta?.totalRecords ?? 0}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Average Duration</span>\n <strong>{formatDurationMs(executionOverview.averageDurationMs)}</strong>\n </div>\n <div className=\"workflow-editor-overview-description\">\n {workflowDescription ||\n record?.description ||\n definitionDraft.description ||\n \"No workflow description has been added yet.\"}\n </div>\n </div>\n </SolidPanel>\n\n <SolidPanel header=\"Latest Execution\">\n {executionOverview.latestExecution ? (\n <div className=\"workflow-editor-overview-section\">\n <div className=\"workflow-editor-overview-kv\">\n <span>Status</span>\n <strong>{executionOverview.latestExecution.status ?? \"Unknown\"}</strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Started</span>\n <strong>\n {formatExecutionDate(executionOverview.latestExecution.startedAt)}\n </strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Finished</span>\n <strong>\n {formatExecutionDate(executionOverview.latestExecution.finishedAt)}\n </strong>\n </div>\n <div className=\"workflow-editor-overview-kv\">\n <span>Trigger Type</span>\n <strong>{executionOverview.latestExecution.triggerType ?? \"manual\"}</strong>\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n No executions match the current date filter.\n </div>\n )}\n </SolidPanel>\n\n <SolidPanel header=\"Recent Executions\">\n {workflowExecutionsQuery.isFetching && !executionRecords.length ? (\n <div className=\"workflow-editor-loading\">\n <SolidSpinner />\n </div>\n ) : executionRecords.length ? (\n <div className=\"workflow-editor-overview-list\">\n {executionRecords.slice(0, 6).map((execution, index) => (\n <div key={execution.id} className=\"workflow-editor-overview-list-item\">\n <div className=\"workflow-editor-overview-list-index\">{index + 1}</div>\n <div className=\"workflow-editor-overview-list-copy\">\n <strong>{execution.status ?? \"Unknown\"}</strong>\n <span>{formatExecutionDate(execution.startedAt || execution.createdAt)}</span>\n </div>\n <SolidTag>{formatDurationMs(execution.durationMs)}</SolidTag>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n No executions match the current date filter.\n </div>\n )}\n </SolidPanel>\n\n <SolidPanel header=\"Actions\">\n <div className=\"workflow-editor-overview-actions\">\n <SolidButton\n leftIcon={<Play size={16} />}\n loading={isExecuting}\n onClick={() => void handleExecute()}\n >\n Execute Again\n </SolidButton>\n <SolidButton variant=\"outline\" onClick={() => setDetailTab(\"edit\")}>\n Open Builder\n </SolidButton>\n <SolidButton\n variant=\"outline\"\n leftIcon={<Settings2 size={16} />}\n onClick={() => setWorkflowSettingsOpen(true)}\n >\n Workflow Settings\n </SolidButton>\n </div>\n </SolidPanel>\n </div>\n </div>\n );\n\n const hasTopologyGraph =\n definitionDraft.nodes.length || (definitionDraft.triggers?.length ?? 0) > 0;\n\n const topologyCanvasView = hasTopologyGraph ? (\n <div className=\"workflow-editor-canvas-shell workflow-editor-canvas-shell--readonly\">\n <WorkflowFlowCanvas\n definition={definitionDraft}\n nodeTypes={nodeTypes}\n selectedNodeId={selectedNodeId}\n selectedTriggerId={selectedTriggerId}\n onSelectNode={(nodeId) => {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n const node = findNodeById(definitionDraft.nodes, nodeId);\n if (node?.type) {\n setDocsNodeTypeKey(node.type);\n }\n }}\n onSelectTrigger={(triggerId) => {\n setSelectedTriggerId(triggerId);\n setSelectedNodeId(\"\");\n setDocsNodeTypeKey(\"\");\n }}\n onEditNode={() => {}}\n onDeleteNode={() => {}}\n onViewDocs={(nodeId) => {\n const node = findNodeById(definitionDraft.nodes, nodeId);\n if (node?.type) {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n setDocsNodeTypeKey(node.type);\n setTopologyDocsNodeTypeKey(node.type);\n setTopologyDocsModel(undefined);\n setTopologyDocsOpen(true);\n }\n }}\n onViewTriggerDocs={(triggerId) => {\n const trigger = (definitionDraft.triggers ?? []).find(\n (item) => String(item.id) === triggerId,\n );\n setSelectedTriggerId(triggerId);\n setSelectedNodeId(\"\");\n setDocsNodeTypeKey(\"\");\n setTopologyDocsNodeTypeKey(\"\");\n setTopologyDocsModel(trigger ? buildTriggerDocsModel(trigger) : undefined);\n setTopologyDocsOpen(true);\n }}\n onInsertNode={() => {}}\n onAddBranch={() => {}}\n readOnly\n />\n </div>\n ) : (\n <div className=\"workflow-editor-placeholder workflow-editor-placeholder--topology\">\n <div className=\"workflow-editor-placeholder__icon\">\n <Activity size={20} />\n </div>\n <div className=\"workflow-editor-placeholder__copy\">\n <h3>Topology</h3>\n <p>Save or add workflow nodes to generate a read-only topology view.</p>\n </div>\n </div>\n );\n\n const topologyYamlEditorView = (\n <div className=\"workflow-editor-topology-code\">\n <div className=\"workflow-editor-topology-code__header\">\n <span>Definition YAML</span>\n {codeError ? (\n <SolidTag tone=\"danger\">Invalid</SolidTag>\n ) : (\n <SolidTag tone=\"success\">Synced</SolidTag>\n )}\n </div>\n <SolidCodeEditor\n language=\"yaml\"\n height=\"100%\"\n fontSize={12}\n value={codeValue}\n onChange={handleCodeChange}\n />\n {codeError ? <div className=\"workflow-editor-error\">{codeError}</div> : null}\n </div>\n );\n\n const topologyContent = (\n <div className=\"workflow-editor-topology-tab\">\n <div className=\"workflow-editor-topology-actionbar\">\n <div className=\"workflow-editor-topology-actionbar__spacer\" />\n <div className=\"workflow-editor-view-toggle\" aria-label=\"Topology views\">\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${topologyViewOpen ? \"is-active\" : \"\"}`}\n aria-label={topologyViewOpen ? \"Hide topology view\" : \"Show topology view\"}\n title={topologyViewOpen ? \"Hide topology view\" : \"Show topology view\"}\n onClick={() => setTopologyViewOpen((current) => !current)}\n >\n <Layers3 size={14} />\n </button>\n <button\n type=\"button\"\n className={`workflow-editor-view-toggle__button ${topologyYamlViewOpen ? \"is-active\" : \"\"}`}\n aria-label={topologyYamlViewOpen ? \"Hide YAML editor\" : \"Show YAML editor\"}\n title={topologyYamlViewOpen ? \"Hide YAML editor\" : \"Show YAML editor\"}\n onClick={() => setTopologyYamlViewOpen((current) => !current)}\n >\n <Braces size={14} />\n </button>\n </div>\n </div>\n\n {topologyViewOpen && topologyYamlViewOpen ? (\n <div\n ref={topologySplitRef}\n className=\"workflow-editor-topology-split\"\n style={{\n gridTemplateColumns: `${topologySplitPercent}% 0.45rem minmax(0, 1fr)`,\n }}\n >\n <div className=\"workflow-editor-topology-pane\">{topologyCanvasView}</div>\n <div\n className=\"workflow-editor-topology-resizer\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"Resize topology and YAML views\"\n onMouseDown={startTopologySplitResize}\n />\n <div className=\"workflow-editor-topology-pane\">{topologyYamlEditorView}</div>\n </div>\n ) : topologyViewOpen ? (\n <div className=\"workflow-editor-topology-single\">{topologyCanvasView}</div>\n ) : topologyYamlViewOpen ? (\n <div className=\"workflow-editor-topology-single\">{topologyYamlEditorView}</div>\n ) : (\n <div className=\"workflow-editor-placeholder\">\n <div className=\"workflow-editor-placeholder__icon\">\n <Layers3 size={20} />\n </div>\n <div className=\"workflow-editor-placeholder__copy\">\n <h3>No topology view selected</h3>\n <p>Use the view toggles above to show the topology canvas or YAML editor.</p>\n </div>\n </div>\n )}\n </div>\n );\n\n const detailTabs = [\n { value: \"overview\", label: \"Overview\", content: overviewContent },\n {\n value: \"topology\",\n label: \"Topology\",\n content: topologyContent,\n },\n {\n value: \"executions\",\n label: \"Executions\",\n content: renderPlaceholderTab(\n \"Executions\",\n \"Execution history and drill-downs will land here in the next pass.\",\n ),\n },\n { value: \"edit\", label: \"Edit\", content: null },\n {\n value: \"revisions\",\n label: \"Revisions\",\n content: renderPlaceholderTab(\n \"Revisions\",\n \"Revision history is not wired yet, but the tab shell is ready.\",\n ),\n },\n {\n value: \"triggers\",\n label: \"Triggers\",\n content: renderPlaceholderTab(\n \"Triggers\",\n \"Trigger management will be added here after the overview pass is settled.\",\n ),\n },\n {\n value: \"logs\",\n label: \"Logs\",\n content: renderPlaceholderTab(\n \"Logs\",\n \"Workflow-level log browsing will be added in a later pass.\",\n ),\n },\n {\n value: \"metrics\",\n label: \"Metrics\",\n content: renderPlaceholderTab(\n \"Metrics\",\n \"Metrics will appear here once the backing persistence is introduced.\",\n ),\n },\n ] as const;\n\n if (isWorkflowDefinitionLoading || isNodeTypesLoading) {\n return (\n <div className=\"workflow-editor-page workflow-editor-page--loading\">\n <SolidSpinner />\n </div>\n );\n }\n\n if (isNodeTypesError) {\n return (\n <div className=\"workflow-editor-page\">\n <div className=\"workflow-editor-empty-state\">\n Failed to load workflow node types.\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"workflow-editor-page\">\n <div className=\"workflow-editor-header\">\n <div className=\"workflow-editor-header-main\">\n <SolidButton\n size=\"small\"\n variant=\"ghost\"\n leftIcon={<ArrowLeft size={16} />}\n onClick={() =>\n navigate(`/admin/core/${moduleName}/workflow-definition/list`)\n }\n >\n Back\n </SolidButton>\n </div>\n <div className=\"workflow-editor-header-actions\">\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<Settings2 size={16} />}\n onClick={() => setWorkflowSettingsOpen(true)}\n >\n Workflow\n </SolidButton>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<BookOpen size={16} />}\n onClick={() => {\n setDetailTab(\"edit\");\n setDocsOpen(true);\n setActivePanel(\"docs\");\n }}\n >\n Docs\n </SolidButton>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<ShieldCheck size={16} />}\n loading={isServerValidating}\n onClick={() => void validateCurrentDefinition({ showSuccessToast: true })}\n >\n Validate\n </SolidButton>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<Play size={16} />}\n loading={isExecuting}\n onClick={() => void handleExecute()}\n >\n Run\n </SolidButton>\n <SolidButton\n size=\"small\"\n leftIcon={<Save size={16} />}\n loading={isSaving || isCreating}\n onClick={handleSave}\n >\n Save\n </SolidButton>\n </div>\n </div>\n\n <div className=\"workflow-editor-detail-tabs\">\n <SolidTabGroup\n tabs={detailTabs.map((tab) => ({\n value: tab.value,\n label: tab.label,\n content: tab.value === \"edit\" ? null : tab.content,\n }))}\n value={detailTab}\n onValueChange={(value) => setDetailTab(value as WorkflowDetailTab)}\n listClassName=\"workflow-editor-detail-tabs__list\"\n panelClassName=\"workflow-editor-detail-tabs__panel\"\n />\n </div>\n\n {detailTab === \"edit\" ? (\n <>\n <div className=\"workflow-editor-focus-switcher\">\n {([\"flow\", \"code\", \"docs\"] as const).map((panel) => (\n <button\n key={panel}\n type=\"button\"\n className={`workflow-editor-focus-pill ${activePanel === panel ? \"is-active\" : \"\"}`}\n onClick={() => setActivePanel(panel)}\n >\n {panel === \"flow\" ? \"Flow\" : panel === \"code\" ? \"Code\" : \"Docs\"}\n </button>\n ))}\n </div>\n\n <div\n className={`workflow-editor-shell workflow-editor-shell--two-panel ${codePaneOpen ? \"workflow-editor-shell--code-open\" : \"workflow-editor-shell--code-collapsed\"}`}\n >\n <section\n className={`workflow-editor-surface workflow-editor-surface--code ${activePanel === \"code\" ? \"is-active\" : \"\"}`}\n >\n <div className=\"workflow-editor-surface-header\">\n <div>\n <div className=\"workflow-editor-surface-eyebrow\">Code</div>\n <h2 className=\"workflow-editor-surface-title\">Definition YAML</h2>\n </div>\n {codeError ? (\n <SolidTag tone=\"danger\">Invalid YAML</SolidTag>\n ) : (\n <SolidTag tone=\"success\">Synced</SolidTag>\n )}\n </div>\n <div className=\"workflow-editor-surface-body\">\n <SolidPanel header=\"Workflow Identity\">\n <div className=\"workflow-editor-form-grid\">\n <div className=\"workflow-editor-field\">\n <label>Key</label>\n <SolidInput\n value={workflowKey}\n onChange={(event) => setWorkflowKey(event.target.value)}\n />\n </div>\n <div className=\"workflow-editor-field\">\n <label>Display Name</label>\n <SolidInput\n value={workflowDisplayName}\n onChange={(event) => setWorkflowDisplayName(event.target.value)}\n />\n </div>\n </div>\n <div className=\"workflow-editor-field\">\n <label>Description</label>\n <SolidTextarea\n value={workflowDescription}\n onChange={(event) => setWorkflowDescription(event.target.value)}\n />\n </div>\n </SolidPanel>\n\n <SolidPanel header=\"Definition YAML\">\n <SolidCodeEditor\n language=\"yaml\"\n height=\"calc(100vh - 390px)\"\n value={codeValue}\n onChange={handleCodeChange}\n />\n {codeError ? (\n <div className=\"workflow-editor-error\">{codeError}</div>\n ) : null}\n </SolidPanel>\n </div>\n </section>\n\n <section\n className={`workflow-editor-surface workflow-editor-surface--flow ${activePanel !== \"code\" ? \"is-active\" : \"\"}`}\n >\n <div className=\"workflow-editor-surface-header\">\n <div className=\"workflow-editor-flow-header-main\">\n <div className=\"workflow-editor-surface-eyebrow\">Flow</div>\n <div className=\"workflow-editor-flow-header-title-row\">\n <h2 className=\"workflow-editor-surface-title\">Topology Builder</h2>\n <SolidTag tone={validationTag.tone}>{validationTag.label}</SolidTag>\n <SolidTag>{workflowStats.nodeCount} nodes</SolidTag>\n {workflowStats.triggerCount ? (\n <SolidTag>{workflowStats.triggerCount} triggers</SolidTag>\n ) : null}\n {paletteNodeType?.label ? (\n <SolidTag>{paletteNodeType.label}</SolidTag>\n ) : null}\n </div>\n <div className=\"workflow-editor-flow-header-selection\">\n {selectedNode && selectedNodeType ? (\n <>\n <strong>{selectedNode.name ?? selectedNode.id}</strong>\n <span className=\"workflow-editor-node-card-subtitle\">\n {selectedNodeType.label ?? selectedNode.type}\n </span>\n </>\n ) : selectedTrigger ? (\n <>\n <strong>\n {selectedTrigger.label ??\n selectedTrigger.name ??\n selectedTrigger.id}\n </strong>\n <span className=\"workflow-editor-node-card-subtitle\">\n {selectedTrigger.type ?? \"Trigger\"}\n </span>\n </>\n ) : (\n <span className=\"workflow-editor-flow-toolbar__empty\">\n Select a node or trigger to inspect it.\n </span>\n )}\n </div>\n </div>\n <div className=\"workflow-editor-surface-header-actions\">\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={\n codePaneOpen ? (\n <ChevronLeft size={14} />\n ) : (\n <ChevronRight size={14} />\n )\n }\n onClick={() => setCodePaneOpen((current) => !current)}\n >\n {codePaneOpen ? \"Hide code\" : \"Show code\"}\n </SolidButton>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<Braces size={14} />}\n onClick={() => {\n setCodePaneOpen(true);\n setActivePanel(\"code\");\n }}\n >\n Code\n </SolidButton>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<Layers3 size={14} />}\n onClick={() => setToolsOpen((current) => !current)}\n >\n {toolsOpen ? \"Hide library\" : \"Library\"}\n </SolidButton>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<BookOpen size={14} />}\n onClick={() => {\n setDocsOpen(true);\n setActivePanel(\"docs\");\n }}\n >\n {docsNodeType || docsModel ? \"View docs\" : \"Open docs\"}\n </SolidButton>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n leftIcon={<Settings2 size={14} />}\n onClick={() => setWorkflowSettingsOpen(true)}\n >\n Workflow\n </SolidButton>\n </div>\n </div>\n <div className=\"workflow-editor-surface-body workflow-editor-surface-body--flow\">\n <div className=\"workflow-editor-flow-workspace\">\n {toolsOpen ? (\n <aside className=\"workflow-editor-tools-drawer\">\n <div className=\"workflow-editor-tools-drawer__header\">\n <div>\n <div className=\"workflow-editor-surface-eyebrow\">\n Builder Tools\n </div>\n <h3 className=\"workflow-editor-surface-title\">\n Node Library & Inspector\n </h3>\n </div>\n <SolidButton\n size=\"small\"\n variant=\"ghost\"\n onClick={() => setToolsOpen(false)}\n >\n <X size={16} />\n </SolidButton>\n </div>\n\n <div className=\"workflow-editor-tools-drawer__body\">\n <SolidPanel header=\"Node Types\">\n <WorkflowNodePalette\n nodeTypes={nodeTypes}\n value={paletteNodeType?.type}\n onSelect={(nodeType) => {\n setPaletteNodeTypeKey(nodeType.type);\n setDocsNodeTypeKey(nodeType.type);\n }}\n />\n </SolidPanel>\n\n <SolidPanel header=\"Selection\">\n {selectedNode && selectedNodeType ? (\n <div className=\"workflow-editor-selected-node-summary\">\n <div>\n <strong>{selectedNode.name ?? selectedNode.id}</strong>\n <div className=\"workflow-editor-node-card-subtitle\">\n {selectedNodeType.label ?? selectedNode.type}\n </div>\n </div>\n <div className=\"workflow-editor-selected-node-actions\">\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n onClick={() => {\n setDocsNodeTypeKey(selectedNode.type);\n setDocsOpen(true);\n setActivePanel(\"docs\");\n }}\n >\n Docs\n </SolidButton>\n <SolidButton\n size=\"small\"\n onClick={() => setEditorOpen(true)}\n >\n Edit\n </SolidButton>\n </div>\n </div>\n ) : selectedTrigger ? (\n <div className=\"workflow-editor-selected-node-summary\">\n <div>\n <strong>\n {selectedTrigger.label ??\n selectedTrigger.name ??\n selectedTrigger.id}\n </strong>\n <div className=\"workflow-editor-node-card-subtitle\">\n {selectedTrigger.type ?? \"Trigger\"}\n </div>\n </div>\n <div className=\"workflow-editor-selected-node-actions\">\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n onClick={() => {\n setDocsOpen(true);\n setActivePanel(\"docs\");\n }}\n >\n Docs\n </SolidButton>\n <SolidButton\n size=\"small\"\n onClick={() => setWorkflowSettingsOpen(true)}\n >\n Workflow\n </SolidButton>\n </div>\n </div>\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n Select a node or trigger on the canvas to inspect it.\n </div>\n )}\n </SolidPanel>\n\n <SolidPanel header=\"Validation\">\n <div className=\"workflow-editor-validation-summary\">\n <div\n className={`workflow-editor-validation-state workflow-editor-validation-state--${validationState.status}`}\n >\n {validationState.message ??\n \"Validation has not been run yet.\"}\n </div>\n {validationState.errors.length ? (\n <ul className=\"workflow-editor-validation-list\">\n {validationState.errors.map((error) => (\n <li key={error}>{error}</li>\n ))}\n </ul>\n ) : null}\n </div>\n </SolidPanel>\n </div>\n </aside>\n ) : null}\n\n <div className=\"workflow-editor-flow-main\">\n <div className=\"workflow-editor-canvas-shell\">\n <WorkflowFlowCanvas\n definition={definitionDraft}\n nodeTypes={nodeTypes}\n selectedNodeId={selectedNodeId}\n selectedTriggerId={selectedTriggerId}\n activePaletteNodeType={paletteNodeType}\n onSelectNode={(nodeId) => {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n const node = findNodeById(definitionDraft.nodes, nodeId);\n if (node?.type) {\n setDocsNodeTypeKey(node.type);\n }\n }}\n onSelectTrigger={(triggerId) => {\n setSelectedTriggerId(triggerId);\n setSelectedNodeId(\"\");\n setDocsNodeTypeKey(\"\");\n }}\n onEditNode={(nodeId) => {\n setSelectedNodeId(nodeId);\n setSelectedTriggerId(\"\");\n const node = findNodeById(definitionDraft.nodes, nodeId);\n if (node?.type) {\n setDocsNodeTypeKey(node.type);\n }\n setEditorOpen(true);\n }}\n onDeleteNode={handleRemoveNode}\n onViewDocs={(nodeId) => {\n const node = findNodeById(definitionDraft.nodes, nodeId);\n if (node?.type) {\n setSelectedNodeId(nodeId);\n setDocsNodeTypeKey(node.type);\n setDocsOpen(true);\n setActivePanel(\"docs\");\n }\n }}\n onViewTriggerDocs={(triggerId) => {\n setSelectedTriggerId(triggerId);\n setSelectedNodeId(\"\");\n setDocsNodeTypeKey(\"\");\n setDocsOpen(true);\n setActivePanel(\"docs\");\n }}\n onInsertNode={handleInsertNode}\n onAddBranch={handleAddBranch}\n />\n </div>\n </div>\n </div>\n </div>\n\n {docsOpen ? (\n <aside\n className={`workflow-editor-docs-drawer ${activePanel === \"docs\" ? \"is-active\" : \"\"}`}\n >\n <div className=\"workflow-editor-docs-drawer__header\">\n <div>\n <div className=\"workflow-editor-surface-eyebrow\">Docs</div>\n <h3 className=\"workflow-editor-surface-title\">\n {docsNodeType?.label ?? docsModel?.title ?? \"Documentation\"}\n </h3>\n </div>\n <SolidButton\n size=\"small\"\n variant=\"ghost\"\n onClick={() => setDocsOpen(false)}\n >\n <X size={16} />\n </SolidButton>\n </div>\n <div className=\"workflow-editor-docs-drawer__body\">\n {docsNodeType || docsModel ? (\n <WorkflowNodeDocsPanel\n nodeType={docsNodeType}\n docsModel={docsModel}\n />\n ) : (\n <div className=\"workflow-editor-empty-state\">\n Pick a node, trigger, or workflow surface to open its documentation.\n </div>\n )}\n </div>\n </aside>\n ) : null}\n </section>\n </div>\n </>\n ) : null}\n\n {selectedNode && selectedNodeType ? (\n <WorkflowNodeEditorDialog\n open={editorOpen}\n onOpenChange={setEditorOpen}\n nodeType={selectedNodeType}\n nodeValue={selectedNode}\n onNodeSubmit={(nextValue) => {\n handleUpdateSelectedNode(nextValue);\n setEditorOpen(false);\n }}\n title={`${selectedNode.name ?? selectedNode.id} · ${selectedNodeType.label ?? selectedNodeType.type}`}\n />\n ) : null}\n\n <SolidDialog\n open={topologyDocsOpen}\n onOpenChange={(open) => {\n setTopologyDocsOpen(open);\n if (!open) {\n setTopologyDocsNodeTypeKey(\"\");\n setTopologyDocsModel(undefined);\n }\n }}\n header=\"Node Documentation\"\n className=\"workflow-editor-topology-docs-dialog\"\n style={{ width: \"min(920px, 94vw)\", maxWidth: \"96vw\" }}\n >\n <SolidDialogBody>\n <div className=\"workflow-editor-topology-docs-dialog__body\">\n {topologyDocsNodeType || topologyDocsModel ? (\n <WorkflowNodeDocsPanel\n nodeType={topologyDocsNodeType}\n docsModel={topologyDocsModel}\n />\n ) : (\n <div className=\"workflow-editor-empty-state workflow-editor-empty-state--compact\">\n Documentation is not available for this topology item yet.\n </div>\n )}\n </div>\n </SolidDialogBody>\n </SolidDialog>\n\n <SolidDialog\n open={workflowSettingsOpen}\n onOpenChange={setWorkflowSettingsOpen}\n header=\"Workflow Settings\"\n className=\"solid-workflow-node-editor-dialog solid-workflow-node-editor-dialog--full\"\n style={{ width: \"min(1200px, 94vw)\", maxWidth: \"96vw\" }}\n >\n <SolidDialogBody>\n <div className=\"workflow-editor-workflow-settings\">\n <SolidPanel header=\"Workflow Identity\">\n <div className=\"workflow-editor-form-grid\">\n <div className=\"workflow-editor-field\">\n <label>Key</label>\n <SolidInput\n value={workflowKey}\n onChange={(event) => setWorkflowKey(event.target.value)}\n />\n </div>\n <div className=\"workflow-editor-field\">\n <label>Display Name</label>\n <SolidInput\n value={workflowDisplayName}\n onChange={(event) => setWorkflowDisplayName(event.target.value)}\n />\n </div>\n </div>\n <div className=\"workflow-editor-field\">\n <label>Description</label>\n <SolidTextarea\n value={workflowDescription}\n onChange={(event) => setWorkflowDescription(event.target.value)}\n />\n </div>\n </SolidPanel>\n\n <SolidPanel header=\"Inputs\">\n <SolidCodeEditor\n language=\"yaml\"\n height=\"220px\"\n value={workflowInputsValue}\n onChange={(value) => setWorkflowInputsValue(value ?? \"{}\")}\n />\n </SolidPanel>\n\n <SolidPanel header=\"Variables\">\n <SolidCodeEditor\n language=\"yaml\"\n height=\"220px\"\n value={workflowVariablesValue}\n onChange={(value) => setWorkflowVariablesValue(value ?? \"{}\")}\n />\n </SolidPanel>\n\n <SolidPanel header=\"Triggers\">\n <SolidCodeEditor\n language=\"yaml\"\n height=\"260px\"\n value={workflowTriggersValue}\n onChange={(value) => setWorkflowTriggersValue(value ?? \"[]\")}\n />\n </SolidPanel>\n </div>\n </SolidDialogBody>\n <SolidDialogFooter>\n <SolidButton\n variant=\"secondary\"\n onClick={() => setWorkflowSettingsOpen(false)}\n >\n Cancel\n </SolidButton>\n <SolidButton onClick={handleSaveWorkflowSettings}>Apply</SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n </div>\n );\n}\n"]}
|