@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":"WorkflowFlowCanvas.js","sourceRoot":"","sources":["../../../src/components/workflow/WorkflowFlowCanvas.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {\n Background,\n BackgroundVariant,\n Controls,\n type Edge,\n Handle,\n MarkerType,\n MiniMap,\n type Node,\n Position,\n ReactFlow,\n ReactFlowProvider,\n} from \"@xyflow/react\";\nimport { BookOpen, CircleHelp, Pencil, Plus, Trash2 } from \"lucide-react\";\nimport type {\n WorkflowNodeChildSlotDefinition,\n WorkflowNodeMetadataResponse,\n} from \"../../types/workflow-node\";\nimport { normalizeSolidIconName, SolidButton, SolidIcon, SolidTag } from \"../shad-cn-ui\";\nimport \"@xyflow/react/dist/style.css\";\nimport \"./WorkflowFlowCanvas.css\";\n\ntype WorkflowNodeRecord = Record<string, any>;\ntype WorkflowTriggerRecord = Record<string, any>;\n\ntype WorkflowInsertScope =\n | { scope: \"root\" }\n | {\n scope: \"slot\";\n parentNodeId: string;\n slotKey: \"children\" | \"nodes\" | \"then\" | \"else\";\n }\n | {\n scope: \"branch\";\n parentNodeId: string;\n branchId: string;\n };\n\nexport type WorkflowInsertTarget =\n | {\n scope: \"root\";\n index: number;\n }\n | {\n scope: \"slot\";\n parentNodeId: string;\n slotKey: \"children\" | \"nodes\" | \"then\" | \"else\";\n index: number;\n }\n | {\n scope: \"branch\";\n parentNodeId: string;\n branchId: string;\n index: number;\n };\n\ntype WorkflowCanvasNodeData =\n | {\n kind: \"group\";\n label: string;\n tone?: \"control\" | \"loop\" | \"trigger\";\n workflowNode?: WorkflowNodeRecord;\n nodeType?: WorkflowNodeMetadataResponse;\n onViewDocs?: (nodeId: string) => void;\n }\n | {\n kind: \"workflow-node\";\n workflowNode: WorkflowNodeRecord;\n nodeType?: WorkflowNodeMetadataResponse;\n selected?: boolean;\n readOnly?: boolean;\n onSelectNode: (nodeId: string) => void;\n onEditNode: (nodeId: string) => void;\n onDeleteNode: (nodeId: string) => void;\n onViewDocs: (nodeId: string) => void;\n }\n | {\n kind: \"workflow-trigger\";\n trigger: WorkflowTriggerRecord;\n selected?: boolean;\n readOnly?: boolean;\n onSelectTrigger: (triggerId: string) => void;\n onViewDocs: (triggerId: string) => void;\n }\n | {\n kind: \"insert\";\n enabled?: boolean;\n selectedTypeLabel?: string;\n onInsert: () => void;\n }\n | {\n kind: \"section-label\";\n label: string;\n };\n\ntype WorkflowFlowCanvasProps = {\n definition: { nodes: WorkflowNodeRecord[]; triggers?: WorkflowTriggerRecord[] };\n nodeTypes: WorkflowNodeMetadataResponse[];\n selectedNodeId?: string;\n selectedTriggerId?: string;\n activePaletteNodeType?: WorkflowNodeMetadataResponse;\n onSelectNode: (nodeId: string) => void;\n onSelectTrigger: (triggerId: string) => void;\n onEditNode: (nodeId: string) => void;\n onDeleteNode: (nodeId: string) => void;\n onViewDocs: (nodeId: string) => void;\n onViewTriggerDocs: (triggerId: string) => void;\n onInsertNode: (target: WorkflowInsertTarget) => void;\n onAddBranch: (parentNodeId: string) => void;\n readOnly?: boolean;\n};\n\nconst DIMENSIONS = {\n workflowWidth: 248,\n workflowHeight: 118,\n triggerWidth: 248,\n triggerHeight: 108,\n insertWidth: 160,\n insertHeight: 40,\n sectionLabelWidth: 104,\n sectionLabelHeight: 28,\n groupPaddingX: 28,\n groupPaddingTop: 42,\n groupPaddingBottom: 22,\n loopGroupPaddingX: 70,\n loopGroupPaddingTop: 46,\n loopGroupPaddingBottom: 34,\n controlChildLabelOffsetY: 138,\n controlChildStartOffsetY: 150,\n};\n\ntype WorkflowLayoutResult = {\n entryId: string;\n exitId: string;\n endY: number;\n width: number;\n};\n\ntype GraphBuildContext = {\n backgroundNodes: Node<WorkflowCanvasNodeData>[];\n nodes: Node<WorkflowCanvasNodeData>[];\n edges: Edge[];\n nodeTypeMap: Map<string, WorkflowNodeMetadataResponse>;\n readOnly?: boolean;\n activePaletteNodeType?: WorkflowNodeMetadataResponse;\n selectedNodeId?: string;\n selectedTriggerId?: string;\n onSelectNode: (nodeId: string) => void;\n onSelectTrigger: (triggerId: string) => void;\n onEditNode: (nodeId: string) => void;\n onDeleteNode: (nodeId: string) => void;\n onViewDocs: (nodeId: string) => void;\n onViewTriggerDocs: (triggerId: string) => void;\n onInsertNode: (target: WorkflowInsertTarget) => void;\n onAddBranch: (parentNodeId: string) => void;\n};\n\nfunction normalizeChildSlots(\n node: WorkflowNodeRecord,\n nodeType?: WorkflowNodeMetadataResponse,\n): WorkflowNodeChildSlotDefinition[] {\n if (nodeType?.authoring?.childSlots?.length) {\n return nodeType.authoring.childSlots;\n }\n\n const slots: WorkflowNodeChildSlotDefinition[] = [];\n if (Array.isArray(node.then) || Array.isArray(node.else)) {\n slots.push({ key: \"then\", label: \"Then\", kind: \"sequence\" });\n slots.push({ key: \"else\", label: \"Else\", kind: \"sequence\" });\n } else if (Array.isArray(node.branches)) {\n slots.push({ key: \"branches\", label: \"Branches\", kind: \"branch-collection\" });\n } else if (Array.isArray(node.children) || Array.isArray(node.nodes)) {\n slots.push({ key: \"children\", label: \"Children\", kind: \"sequence\" });\n }\n\n return slots;\n}\n\nfunction isLoopNode(\n workflowNode: WorkflowNodeRecord,\n nodeType?: WorkflowNodeMetadataResponse,\n) {\n const nodeTypeId = String(workflowNode.type ?? nodeType?.type ?? \"\").toLowerCase();\n const category = String(nodeType?.category ?? \"\").toLowerCase();\n const nodeTypeTags = nodeType?.tags;\n const tags = Array.isArray(nodeTypeTags)\n ? nodeTypeTags.map((tag) => String(tag).toLowerCase())\n : [];\n\n return (\n nodeTypeId === \"foreach\" ||\n nodeTypeId === \"for.each\" ||\n nodeTypeId === \"loopuntil\" ||\n nodeTypeId === \"loop.until\" ||\n category.includes(\"loop\") ||\n tags.includes(\"loop\") ||\n tags.includes(\"iteration\")\n );\n}\n\nfunction getNodeRect(node: Node<WorkflowCanvasNodeData>) {\n const width =\n node.type === \"workflow\"\n ? DIMENSIONS.workflowWidth\n : node.type === \"trigger\"\n ? DIMENSIONS.triggerWidth\n : node.type === \"insert\"\n ? DIMENSIONS.insertWidth\n : node.type === \"sectionLabel\"\n ? DIMENSIONS.sectionLabelWidth\n : Number(node.style?.width ?? 0);\n\n const height =\n node.type === \"workflow\"\n ? DIMENSIONS.workflowHeight\n : node.type === \"trigger\"\n ? DIMENSIONS.triggerHeight\n : node.type === \"insert\"\n ? DIMENSIONS.insertHeight\n : node.type === \"sectionLabel\"\n ? DIMENSIONS.sectionLabelHeight\n : Number(node.style?.height ?? 0);\n\n return {\n left: node.position.x,\n top: node.position.y,\n right: node.position.x + width,\n bottom: node.position.y + height,\n };\n}\n\nfunction createEdge(source: string, target: string): Edge {\n return {\n id: `${source}->${target}`,\n source,\n target,\n type: \"smoothstep\",\n markerEnd: { type: MarkerType.ArrowClosed, width: 14, height: 14 },\n style: {\n stroke: \"rgba(191, 219, 254, 0.88)\",\n strokeWidth: 2,\n strokeDasharray: \"5 5\",\n },\n zIndex: 2,\n };\n}\n\nfunction resolveWorkflowNodeIcon(nodeType?: WorkflowNodeMetadataResponse) {\n return normalizeSolidIconName(nodeType?.ui?.icon ?? nodeType?.icon) ?? \"si-th-large\";\n}\n\nfunction estimateSequenceWidth(\n sequence: WorkflowNodeRecord[],\n nodeTypeMap: Map<string, WorkflowNodeMetadataResponse>,\n): number {\n if (!sequence.length) {\n return DIMENSIONS.insertWidth;\n }\n\n return sequence.reduce((maxWidth, workflowNode) => {\n const nodeType = nodeTypeMap.get(String(workflowNode.type));\n const nodeWidth = estimateWorkflowNodeWidth(workflowNode, nodeTypeMap, nodeType);\n return Math.max(maxWidth, nodeWidth);\n }, DIMENSIONS.workflowWidth);\n}\n\nfunction estimateWorkflowNodeWidth(\n workflowNode: WorkflowNodeRecord,\n nodeTypeMap: Map<string, WorkflowNodeMetadataResponse>,\n nodeType?: WorkflowNodeMetadataResponse,\n): number {\n const slotDefinitions = normalizeChildSlots(workflowNode, nodeType);\n\n const branchSlots = slotDefinitions.filter(\n (slot) => slot.key === \"then\" || slot.key === \"else\",\n );\n if (branchSlots.length >= 2) {\n const branchGap = 60;\n const branchWidths = branchSlots.map((slot) =>\n estimateSequenceWidth(\n Array.isArray(workflowNode[slot.key]) ? workflowNode[slot.key] : [],\n nodeTypeMap,\n ),\n );\n const totalBranchWidth =\n branchWidths.reduce((sum, width) => sum + width, 0) +\n branchGap * Math.max(branchWidths.length - 1, 0);\n return Math.max(DIMENSIONS.workflowWidth, totalBranchWidth);\n }\n\n if (slotDefinitions.length === 1 && slotDefinitions[0].kind === \"sequence\") {\n const slotKey = slotDefinitions[0].key as \"children\" | \"nodes\" | \"then\" | \"else\";\n return Math.max(\n DIMENSIONS.workflowWidth,\n estimateSequenceWidth(\n Array.isArray(workflowNode[slotKey]) ? workflowNode[slotKey] : [],\n nodeTypeMap,\n ),\n );\n }\n\n if (slotDefinitions.length === 1 && slotDefinitions[0].kind === \"branch-collection\") {\n const branchGap = 56;\n const branches = Array.isArray(workflowNode.branches) ? workflowNode.branches : [];\n const branchWidths = branches.map((branch: any) =>\n estimateSequenceWidth(Array.isArray(branch.nodes) ? branch.nodes : [], nodeTypeMap),\n );\n const totalBranchWidth =\n branchWidths.reduce((sum, width) => sum + width, 0) +\n branchGap * Math.max(branchWidths.length - 1, 0);\n return Math.max(DIMENSIONS.workflowWidth, totalBranchWidth);\n }\n\n return DIMENSIONS.workflowWidth;\n}\n\nfunction WorkflowCanvasNodeRenderer({ data }: { data: WorkflowCanvasNodeData }) {\n if (data.kind === \"group\") {\n return (\n <div\n className={`workflow-flow-group-node workflow-flow-group-node--${data.tone ?? \"control\"}`}\n >\n <div className=\"workflow-flow-group-node__header\">\n <span>{data.label}</span>\n {data.workflowNode ? (\n <button\n type=\"button\"\n className=\"workflow-flow-help-button nodrag nopan nowheel\"\n aria-label={`Open ${data.nodeType?.label ?? data.label} documentation`}\n title=\"Documentation\"\n onPointerDown={(event) => {\n event.stopPropagation();\n }}\n onClick={(event) => {\n event.stopPropagation();\n data.onViewDocs?.(String(data.workflowNode?.id));\n }}\n >\n <CircleHelp size={12} />\n </button>\n ) : null}\n </div>\n </div>\n );\n }\n\n if (data.kind === \"insert\") {\n return (\n <div className=\"workflow-flow-insert-node\">\n <button\n type=\"button\"\n onClick={data.onInsert}\n className=\"workflow-flow-insert-node__button\"\n >\n <Plus size={16} />\n </button>\n <div className=\"workflow-flow-insert-node__label\">\n {data.enabled\n ? `Add ${data.selectedTypeLabel ?? \"node\"}`\n : \"Pick a node type to insert\"}\n </div>\n </div>\n );\n }\n\n if (data.kind === \"section-label\") {\n return <div className=\"workflow-flow-section-label\">{data.label}</div>;\n }\n\n if (data.kind === \"workflow-trigger\") {\n const triggerTitle = data.readOnly\n ? String(data.trigger.id)\n : data.trigger.name ?? data.trigger.label ?? data.trigger.id;\n\n return (\n <div\n className={`workflow-flow-node-card workflow-flow-node-card--trigger ${data.selected ? \"is-selected\" : \"\"} ${data.readOnly ? \"is-readonly workflow-flow-node-card--readonly-compact\" : \"\"}`}\n onClick={() => data.onSelectTrigger(String(data.trigger.id))}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n data.onSelectTrigger(String(data.trigger.id));\n }\n }}\n >\n <div className=\"workflow-flow-node-card__header\">\n <div className=\"workflow-flow-node-card__header-main\">\n <div className=\"workflow-flow-node-card__icon-shell\">\n <SolidIcon name=\"si-calendar\" size={16} aria-hidden />\n </div>\n <div>\n <div className=\"workflow-flow-node-card__title\">\n {triggerTitle}\n </div>\n {!data.readOnly ? (\n <div className=\"workflow-flow-node-card__subtitle\">\n {data.trigger.type ?? \"Trigger\"}\n </div>\n ) : null}\n </div>\n </div>\n {!data.readOnly ? (\n <div className=\"workflow-flow-node-card__tags\">\n {data.trigger.disabled ? <SolidTag tone=\"warn\">disabled</SolidTag> : <SolidTag>trigger</SolidTag>}\n </div>\n ) : null}\n </div>\n {!data.readOnly && data.trigger.description ? (\n <div className=\"workflow-flow-node-card__description\">\n {data.trigger.description}\n </div>\n ) : null}\n {!data.readOnly ? (\n <div className=\"workflow-flow-node-card__actions\">\n <SolidButton\n size=\"small\"\n variant=\"ghost\"\n onClick={(event) => {\n event.stopPropagation();\n data.onViewDocs(String(data.trigger.id));\n }}\n >\n <BookOpen size={14} />\n </SolidButton>\n </div>\n ) : null}\n <Handle\n type=\"target\"\n position={Position.Top}\n className=\"workflow-flow-node-card__handle workflow-flow-node-card__handle--top\"\n isConnectable={false}\n />\n <Handle\n type=\"source\"\n position={Position.Bottom}\n className=\"workflow-flow-node-card__handle workflow-flow-node-card__handle--bottom\"\n isConnectable={false}\n />\n </div>\n );\n }\n\n const { workflowNode, nodeType, selected } = data;\n const iconName = resolveWorkflowNodeIcon(nodeType);\n const nodeTitle = data.readOnly ? String(workflowNode.id) : workflowNode.name ?? workflowNode.id;\n const nodeTypeLabel = nodeType?.label ?? workflowNode.type ?? workflowNode.kind ?? \"node\";\n\n return (\n <div\n className={`workflow-flow-node-card ${selected ? \"is-selected\" : \"\"} ${data.readOnly ? \"is-readonly workflow-flow-node-card--readonly-compact\" : \"\"}`}\n onClick={() => data.onSelectNode(String(workflowNode.id))}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n data.onSelectNode(String(workflowNode.id));\n }\n }}\n >\n <div className=\"workflow-flow-node-card__typebar\">\n <span>{nodeTypeLabel}</span>\n <span className=\"workflow-flow-node-card__quick-actions\">\n {!data.readOnly ? (\n <>\n <button\n type=\"button\"\n className=\"workflow-flow-icon-button nodrag nopan nowheel\"\n aria-label={`Edit ${nodeTitle}`}\n title=\"Edit\"\n onPointerDown={(event) => {\n event.stopPropagation();\n }}\n onClick={(event) => {\n event.stopPropagation();\n data.onEditNode(String(workflowNode.id));\n }}\n >\n <Pencil size={12} />\n </button>\n <button\n type=\"button\"\n className=\"workflow-flow-icon-button workflow-flow-icon-button--danger nodrag nopan nowheel\"\n aria-label={`Delete ${nodeTitle}`}\n title=\"Delete\"\n onPointerDown={(event) => {\n event.stopPropagation();\n }}\n onClick={(event) => {\n event.stopPropagation();\n data.onDeleteNode(String(workflowNode.id));\n }}\n >\n <Trash2 size={12} />\n </button>\n </>\n ) : null}\n <button\n type=\"button\"\n className=\"workflow-flow-icon-button nodrag nopan nowheel\"\n aria-label={`Open ${nodeTypeLabel} documentation`}\n title=\"Documentation\"\n onPointerDown={(event) => {\n event.stopPropagation();\n }}\n onClick={(event) => {\n event.stopPropagation();\n data.onViewDocs(String(workflowNode.id));\n }}\n >\n <CircleHelp size={12} />\n </button>\n </span>\n </div>\n <div className=\"workflow-flow-node-card__body\">\n <div className=\"workflow-flow-node-card__header-main\">\n <div className=\"workflow-flow-node-card__icon-shell\">\n <SolidIcon name={iconName} size={16} aria-hidden />\n </div>\n <div>\n <div className=\"workflow-flow-node-card__title\">\n {nodeTitle}\n </div>\n </div>\n </div>\n </div>\n\n {!data.readOnly && workflowNode.description ? (\n <div className=\"workflow-flow-node-card__description\">\n {workflowNode.description}\n </div>\n ) : null}\n\n <Handle\n type=\"target\"\n position={Position.Top}\n className=\"workflow-flow-node-card__handle workflow-flow-node-card__handle--top\"\n isConnectable={false}\n />\n <Handle\n type=\"source\"\n position={Position.Bottom}\n className=\"workflow-flow-node-card__handle workflow-flow-node-card__handle--bottom\"\n isConnectable={false}\n />\n </div>\n );\n}\n\nconst canvasNodeTypes: any = {\n group: WorkflowCanvasNodeRenderer,\n workflow: WorkflowCanvasNodeRenderer,\n trigger: WorkflowCanvasNodeRenderer,\n insert: WorkflowCanvasNodeRenderer,\n sectionLabel: WorkflowCanvasNodeRenderer,\n};\n\nfunction pushGroupNode(\n ctx: GraphBuildContext,\n id: string,\n label: string,\n tone: \"control\" | \"loop\" | \"trigger\",\n subset: Node<WorkflowCanvasNodeData>[],\n workflowNode?: WorkflowNodeRecord,\n nodeType?: WorkflowNodeMetadataResponse,\n) {\n if (!subset.length) {\n return;\n }\n\n const bounds = subset.reduce(\n (acc, node) => {\n const rect = getNodeRect(node);\n return {\n left: Math.min(acc.left, rect.left),\n top: Math.min(acc.top, rect.top),\n right: Math.max(acc.right, rect.right),\n bottom: Math.max(acc.bottom, rect.bottom),\n };\n },\n {\n left: Number.POSITIVE_INFINITY,\n top: Number.POSITIVE_INFINITY,\n right: Number.NEGATIVE_INFINITY,\n bottom: Number.NEGATIVE_INFINITY,\n },\n );\n\n const paddingX =\n tone === \"loop\" ? DIMENSIONS.loopGroupPaddingX : DIMENSIONS.groupPaddingX;\n const paddingTop =\n tone === \"loop\" ? DIMENSIONS.loopGroupPaddingTop : DIMENSIONS.groupPaddingTop;\n const paddingBottom =\n tone === \"loop\" ? DIMENSIONS.loopGroupPaddingBottom : DIMENSIONS.groupPaddingBottom;\n\n ctx.backgroundNodes.push({\n id,\n type: \"group\",\n position: {\n x: bounds.left - paddingX,\n y: bounds.top - paddingTop,\n },\n draggable: false,\n selectable: false,\n style: {\n width: bounds.right - bounds.left + paddingX * 2,\n height: bounds.bottom - bounds.top + paddingTop + paddingBottom,\n zIndex: 0,\n },\n data: {\n kind: \"group\",\n label,\n tone,\n workflowNode,\n nodeType,\n onViewDocs: ctx.onViewDocs,\n },\n });\n}\n\nfunction pushInsertNode(\n ctx: GraphBuildContext,\n id: string,\n x: number,\n y: number,\n target: WorkflowInsertTarget,\n) {\n ctx.nodes.push({\n id,\n type: \"insert\",\n position: { x, y },\n draggable: false,\n selectable: false,\n data: {\n kind: \"insert\",\n enabled: !!ctx.activePaletteNodeType,\n selectedTypeLabel: ctx.activePaletteNodeType?.label,\n onInsert: () => ctx.onInsertNode(target),\n },\n sourcePosition: Position.Bottom,\n targetPosition: Position.Top,\n });\n}\n\nfunction pushWorkflowNode(\n ctx: GraphBuildContext,\n workflowNode: WorkflowNodeRecord,\n x: number,\n y: number,\n) {\n const nodeType = ctx.nodeTypeMap.get(String(workflowNode.type));\n ctx.nodes.push({\n id: String(workflowNode.id),\n type: \"workflow\",\n position: { x, y },\n draggable: false,\n data: {\n kind: \"workflow-node\",\n workflowNode,\n nodeType,\n selected: ctx.selectedNodeId === String(workflowNode.id),\n readOnly: ctx.readOnly,\n onSelectNode: ctx.onSelectNode,\n onEditNode: ctx.onEditNode,\n onDeleteNode: ctx.onDeleteNode,\n onViewDocs: ctx.onViewDocs,\n },\n sourcePosition: Position.Bottom,\n targetPosition: Position.Top,\n });\n}\n\nfunction pushTriggerNode(\n ctx: GraphBuildContext,\n trigger: WorkflowTriggerRecord,\n x: number,\n y: number,\n) {\n ctx.nodes.push({\n id: `trigger-${String(trigger.id)}`,\n type: \"trigger\",\n position: { x, y },\n draggable: false,\n selectable: false,\n sourcePosition: Position.Bottom,\n targetPosition: Position.Top,\n data: {\n kind: \"workflow-trigger\",\n trigger,\n selected: ctx.selectedTriggerId === String(trigger.id),\n readOnly: ctx.readOnly,\n onSelectTrigger: ctx.onSelectTrigger,\n onViewDocs: ctx.onViewTriggerDocs,\n },\n });\n}\n\ntype ReadOnlySequenceLayoutResult = {\n entryIds: string[];\n exitIds: string[];\n endY: number;\n width: number;\n};\n\nfunction pushSectionLabelNode(\n ctx: GraphBuildContext,\n id: string,\n x: number,\n y: number,\n label: string,\n) {\n ctx.nodes.push({\n id,\n type: \"sectionLabel\",\n position: { x, y },\n draggable: false,\n selectable: false,\n data: {\n kind: \"section-label\",\n label,\n },\n });\n}\n\nfunction buildSequenceGraph(\n sequence: WorkflowNodeRecord[],\n ctx: GraphBuildContext,\n laneX: number,\n startY: number,\n scope: WorkflowInsertScope,\n): WorkflowLayoutResult {\n let cursorY = startY;\n let previousGraphNodeId: string | null = null;\n let maxWidth = DIMENSIONS.workflowWidth;\n\n const initialInsertId = `insert-${JSON.stringify(scope)}-0`;\n pushInsertNode(ctx, initialInsertId, laneX, cursorY, {\n ...scope,\n index: 0,\n } as WorkflowInsertTarget);\n previousGraphNodeId = initialInsertId;\n let exitId = initialInsertId;\n\n for (let index = 0; index < sequence.length; index += 1) {\n const workflowNode = sequence[index];\n const nodeType = ctx.nodeTypeMap.get(String(workflowNode.type));\n const slotDefinitions = normalizeChildSlots(workflowNode, nodeType);\n const isControlNode = nodeType?.kind === \"control\" || slotDefinitions.length > 0;\n const estimatedNodeWidth = estimateWorkflowNodeWidth(\n workflowNode,\n ctx.nodeTypeMap,\n nodeType,\n );\n maxWidth = Math.max(maxWidth, estimatedNodeWidth);\n const subtreeStartIndex = ctx.nodes.length;\n\n cursorY += 82;\n pushWorkflowNode(ctx, workflowNode, laneX - 56, cursorY);\n if (previousGraphNodeId) {\n ctx.edges.push(createEdge(previousGraphNodeId, String(workflowNode.id)));\n }\n\n let deepestY = cursorY;\n let connectionSources: string[] = [String(workflowNode.id)];\n\n const branchSlots = slotDefinitions.filter(\n (slot) => slot.key === \"then\" || slot.key === \"else\",\n );\n\n if (branchSlots.length >= 2) {\n const branchGap = 60;\n const branchWidths = branchSlots.map((slot) =>\n estimateSequenceWidth(\n Array.isArray(workflowNode[slot.key]) ? workflowNode[slot.key] : [],\n ctx.nodeTypeMap,\n ),\n );\n const totalBranchWidth =\n branchWidths.reduce((sum, width) => sum + width, 0) +\n branchGap * Math.max(branchWidths.length - 1, 0);\n const branchStartX = laneX - totalBranchWidth / 2;\n const branchLayouts = branchSlots.map((slot, branchIndex) => {\n const slotKey = slot.key as \"then\" | \"else\";\n const childNodes = Array.isArray(workflowNode[slotKey]) ? workflowNode[slotKey] : [];\n const beforeWidth = branchWidths\n .slice(0, branchIndex)\n .reduce((sum, width) => sum + width, 0);\n const branchLaneX =\n branchStartX +\n beforeWidth +\n branchGap * branchIndex +\n branchWidths[branchIndex] / 2;\n const labelX = branchLaneX + 24;\n const labelY = cursorY + 60;\n pushSectionLabelNode(\n ctx,\n `${workflowNode.id}-${slotKey}-label`,\n labelX,\n labelY,\n slot.label ?? slotKey,\n );\n const childLayout = buildSequenceGraph(\n childNodes,\n ctx,\n branchLaneX,\n cursorY + 82,\n {\n scope: \"slot\",\n parentNodeId: String(workflowNode.id),\n slotKey,\n },\n );\n ctx.edges.push(createEdge(String(workflowNode.id), childLayout.entryId));\n deepestY = Math.max(deepestY, childLayout.endY);\n maxWidth = Math.max(maxWidth, childLayout.width);\n return childLayout;\n });\n\n connectionSources = branchLayouts.map((layout) => layout.exitId);\n } else if (slotDefinitions.length === 1 && slotDefinitions[0].kind === \"sequence\") {\n const slot = slotDefinitions[0];\n const slotKey = slot.key as \"children\" | \"nodes\" | \"then\" | \"else\";\n const childNodes = Array.isArray(workflowNode[slotKey]) ? workflowNode[slotKey] : [];\n if (slot.label) {\n const isLoop = isLoopNode(workflowNode, nodeType);\n pushSectionLabelNode(\n ctx,\n `${workflowNode.id}-${slotKey}-label`,\n laneX + 24,\n cursorY + (isLoop ? DIMENSIONS.controlChildLabelOffsetY : 132),\n isLoop ? slot.label ?? \"Loop Body\" : slot.label,\n );\n }\n const childLayout = buildSequenceGraph(\n childNodes,\n ctx,\n laneX,\n cursorY + DIMENSIONS.controlChildStartOffsetY,\n {\n scope: \"slot\",\n parentNodeId: String(workflowNode.id),\n slotKey,\n },\n );\n ctx.edges.push(createEdge(String(workflowNode.id), childLayout.entryId));\n deepestY = Math.max(deepestY, childLayout.endY);\n maxWidth = Math.max(maxWidth, childLayout.width);\n connectionSources = [childLayout.exitId];\n } else if (slotDefinitions.length === 1 && slotDefinitions[0].kind === \"branch-collection\") {\n const branches = Array.isArray(workflowNode.branches) ? workflowNode.branches : [];\n const branchGap = 56;\n const branchWidths = branches.map((branch: any) =>\n estimateSequenceWidth(Array.isArray(branch.nodes) ? branch.nodes : [], ctx.nodeTypeMap),\n );\n const totalBranchWidth =\n branchWidths.reduce((sum, width) => sum + width, 0) +\n branchGap * Math.max(branchWidths.length - 1, 0);\n const branchStartX = laneX - totalBranchWidth / 2;\n\n const branchLayouts = branches.map((branch: any, branchIndex) => {\n const beforeWidth = branchWidths\n .slice(0, branchIndex)\n .reduce((sum, width) => sum + width, 0);\n const branchLaneX =\n branchStartX +\n beforeWidth +\n branchGap * branchIndex +\n branchWidths[branchIndex] / 2;\n pushSectionLabelNode(\n ctx,\n `${workflowNode.id}-${branch.id}-label`,\n branchLaneX + 24,\n cursorY + 60,\n branch.name ?? branch.id,\n );\n const branchLayout = buildSequenceGraph(\n Array.isArray(branch.nodes) ? branch.nodes : [],\n ctx,\n branchLaneX,\n cursorY + 82,\n {\n scope: \"branch\",\n parentNodeId: String(workflowNode.id),\n branchId: String(branch.id),\n },\n );\n ctx.edges.push(createEdge(String(workflowNode.id), branchLayout.entryId));\n deepestY = Math.max(deepestY, branchLayout.endY);\n maxWidth = Math.max(maxWidth, branchLayout.width);\n return branchLayout;\n });\n\n connectionSources = branchLayouts.length\n ? branchLayouts.map((layout) => layout.exitId)\n : [String(workflowNode.id)];\n }\n\n if (isControlNode) {\n pushGroupNode(\n ctx,\n `group-${String(workflowNode.id)}`,\n workflowNode.name ?? workflowNode.id,\n isLoopNode(workflowNode, nodeType) ? \"loop\" : \"control\",\n ctx.nodes.slice(subtreeStartIndex),\n workflowNode,\n nodeType,\n );\n }\n\n cursorY = Math.max(cursorY + 82, deepestY + (isControlNode ? 40 : 0));\n const afterInsertId = `insert-${JSON.stringify(scope)}-${index + 1}-${workflowNode.id}`;\n pushInsertNode(ctx, afterInsertId, laneX, cursorY, {\n ...scope,\n index: index + 1,\n } as WorkflowInsertTarget);\n connectionSources.forEach((sourceId) => {\n ctx.edges.push(createEdge(sourceId, afterInsertId));\n });\n previousGraphNodeId = afterInsertId;\n exitId = afterInsertId;\n }\n\n return {\n entryId: initialInsertId,\n exitId,\n endY: cursorY,\n width: maxWidth,\n };\n}\n\nfunction buildReadOnlySequenceGraph(\n sequence: WorkflowNodeRecord[],\n ctx: GraphBuildContext,\n laneX: number,\n startY: number,\n): ReadOnlySequenceLayoutResult {\n let cursorY = startY;\n let previousExitIds: string[] = [];\n let entryIds: string[] = [];\n let maxWidth = sequence.length ? DIMENSIONS.workflowWidth : 0;\n\n for (const workflowNode of sequence) {\n const nodeType = ctx.nodeTypeMap.get(String(workflowNode.type));\n const slotDefinitions = normalizeChildSlots(workflowNode, nodeType);\n const isControlNode = nodeType?.kind === \"control\" || slotDefinitions.length > 0;\n const estimatedNodeWidth = estimateWorkflowNodeWidth(\n workflowNode,\n ctx.nodeTypeMap,\n nodeType,\n );\n maxWidth = Math.max(maxWidth, estimatedNodeWidth);\n const subtreeStartIndex = ctx.nodes.length;\n\n cursorY += 82;\n pushWorkflowNode(ctx, workflowNode, laneX - 56, cursorY);\n\n if (!entryIds.length) {\n entryIds = [String(workflowNode.id)];\n }\n previousExitIds.forEach((sourceId) => {\n ctx.edges.push(createEdge(sourceId, String(workflowNode.id)));\n });\n\n let deepestY = cursorY;\n let exitIds: string[] = [String(workflowNode.id)];\n\n const branchSlots = slotDefinitions.filter(\n (slot) => slot.key === \"then\" || slot.key === \"else\",\n );\n\n if (branchSlots.length >= 2) {\n const branchGap = 60;\n const branchWidths = branchSlots.map((slot) =>\n estimateSequenceWidth(\n Array.isArray(workflowNode[slot.key]) ? workflowNode[slot.key] : [],\n ctx.nodeTypeMap,\n ),\n );\n const totalBranchWidth =\n branchWidths.reduce((sum, width) => sum + width, 0) +\n branchGap * Math.max(branchWidths.length - 1, 0);\n const branchStartX = laneX - totalBranchWidth / 2;\n\n const branchLayouts = branchSlots\n .map((slot, branchIndex) => {\n const slotKey = slot.key as \"then\" | \"else\";\n const childNodes = Array.isArray(workflowNode[slotKey])\n ? workflowNode[slotKey]\n : [];\n const beforeWidth = branchWidths\n .slice(0, branchIndex)\n .reduce((sum, width) => sum + width, 0);\n const branchLaneX =\n branchStartX +\n beforeWidth +\n branchGap * branchIndex +\n branchWidths[branchIndex] / 2;\n pushSectionLabelNode(\n ctx,\n `${workflowNode.id}-${slotKey}-label`,\n branchLaneX + 24,\n cursorY + 60,\n slot.label ?? slotKey,\n );\n const childLayout = buildReadOnlySequenceGraph(\n childNodes,\n ctx,\n branchLaneX,\n cursorY + 82,\n );\n childLayout.entryIds.forEach((entryId) => {\n ctx.edges.push(createEdge(String(workflowNode.id), entryId));\n });\n deepestY = Math.max(deepestY, childLayout.endY);\n maxWidth = Math.max(maxWidth, childLayout.width);\n return childLayout;\n })\n .filter((layout) => layout.entryIds.length);\n\n exitIds = branchLayouts.length\n ? branchLayouts.flatMap((layout) => layout.exitIds)\n : [String(workflowNode.id)];\n } else if (slotDefinitions.length === 1 && slotDefinitions[0].kind === \"sequence\") {\n const slot = slotDefinitions[0];\n const slotKey = slot.key as \"children\" | \"nodes\" | \"then\" | \"else\";\n const childNodes = Array.isArray(workflowNode[slotKey]) ? workflowNode[slotKey] : [];\n if (slot.label) {\n const isLoop = isLoopNode(workflowNode, nodeType);\n pushSectionLabelNode(\n ctx,\n `${workflowNode.id}-${slotKey}-label`,\n laneX + 24,\n cursorY + (isLoop ? DIMENSIONS.controlChildLabelOffsetY : 132),\n isLoop ? slot.label ?? \"Loop Body\" : slot.label,\n );\n }\n const childLayout = buildReadOnlySequenceGraph(\n childNodes,\n ctx,\n laneX,\n cursorY + DIMENSIONS.controlChildStartOffsetY,\n );\n childLayout.entryIds.forEach((entryId) => {\n ctx.edges.push(createEdge(String(workflowNode.id), entryId));\n });\n deepestY = Math.max(deepestY, childLayout.endY);\n maxWidth = Math.max(maxWidth, childLayout.width);\n exitIds = childLayout.exitIds.length ? childLayout.exitIds : [String(workflowNode.id)];\n } else if (slotDefinitions.length === 1 && slotDefinitions[0].kind === \"branch-collection\") {\n const branches = Array.isArray(workflowNode.branches) ? workflowNode.branches : [];\n const branchGap = 56;\n const branchWidths = branches.map((branch: any) =>\n estimateSequenceWidth(Array.isArray(branch.nodes) ? branch.nodes : [], ctx.nodeTypeMap),\n );\n const totalBranchWidth =\n branchWidths.reduce((sum, width) => sum + width, 0) +\n branchGap * Math.max(branchWidths.length - 1, 0);\n const branchStartX = laneX - totalBranchWidth / 2;\n\n const branchLayouts = branches\n .map((branch: any, branchIndex) => {\n const beforeWidth = branchWidths\n .slice(0, branchIndex)\n .reduce((sum, width) => sum + width, 0);\n const branchLaneX =\n branchStartX +\n beforeWidth +\n branchGap * branchIndex +\n branchWidths[branchIndex] / 2;\n pushSectionLabelNode(\n ctx,\n `${workflowNode.id}-${branch.id}-label`,\n branchLaneX + 24,\n cursorY + 60,\n branch.name ?? branch.id,\n );\n const branchLayout = buildReadOnlySequenceGraph(\n Array.isArray(branch.nodes) ? branch.nodes : [],\n ctx,\n branchLaneX,\n cursorY + 82,\n );\n branchLayout.entryIds.forEach((entryId) => {\n ctx.edges.push(createEdge(String(workflowNode.id), entryId));\n });\n deepestY = Math.max(deepestY, branchLayout.endY);\n maxWidth = Math.max(maxWidth, branchLayout.width);\n return branchLayout;\n })\n .filter((layout) => layout.entryIds.length);\n\n exitIds = branchLayouts.length\n ? branchLayouts.flatMap((layout) => layout.exitIds)\n : [String(workflowNode.id)];\n }\n\n if (isControlNode) {\n pushGroupNode(\n ctx,\n `group-${String(workflowNode.id)}`,\n workflowNode.name ?? workflowNode.id,\n isLoopNode(workflowNode, nodeType) ? \"loop\" : \"control\",\n ctx.nodes.slice(subtreeStartIndex),\n workflowNode,\n nodeType,\n );\n }\n\n cursorY = Math.max(cursorY + 82, deepestY + (isControlNode ? 40 : 0));\n previousExitIds = exitIds;\n }\n\n return {\n entryIds,\n exitIds: previousExitIds,\n endY: cursorY,\n width: maxWidth,\n };\n}\n\nfunction buildGraph(\n definition: { nodes: WorkflowNodeRecord[]; triggers?: WorkflowTriggerRecord[] },\n nodeTypes: WorkflowNodeMetadataResponse[],\n props: Omit<WorkflowFlowCanvasProps, \"definition\" | \"nodeTypes\">,\n) {\n const ctx: GraphBuildContext = {\n backgroundNodes: [],\n nodes: [],\n edges: [],\n nodeTypeMap: new Map(nodeTypes.map((item) => [item.type, item])),\n readOnly: props.readOnly,\n activePaletteNodeType: props.activePaletteNodeType,\n selectedNodeId: props.selectedNodeId,\n selectedTriggerId: props.selectedTriggerId,\n onSelectNode: props.onSelectNode,\n onSelectTrigger: props.onSelectTrigger,\n onEditNode: props.onEditNode,\n onDeleteNode: props.onDeleteNode,\n onViewDocs: props.onViewDocs,\n onViewTriggerDocs: props.onViewTriggerDocs,\n onInsertNode: props.onInsertNode,\n onAddBranch: props.onAddBranch,\n };\n\n const triggers = Array.isArray(definition.triggers) ? definition.triggers : [];\n let startY = 0;\n let previousTriggerId: string | null = null;\n\n if (triggers.length) {\n const triggerStartIndex = ctx.nodes.length;\n let triggerY = 60;\n triggers.forEach((trigger) => {\n const triggerNodeId = `trigger-${String(trigger.id)}`;\n pushTriggerNode(ctx, trigger, 32, triggerY);\n if (previousTriggerId) {\n ctx.edges.push(createEdge(previousTriggerId, triggerNodeId));\n }\n previousTriggerId = triggerNodeId;\n triggerY += 96;\n });\n pushGroupNode(ctx, \"group-triggers\", \"Triggers\", \"trigger\", ctx.nodes.slice(triggerStartIndex));\n startY = triggerY + 2;\n }\n\n if (props.readOnly) {\n const readOnlyLayout = buildReadOnlySequenceGraph(\n definition.nodes ?? [],\n ctx,\n 80,\n startY,\n );\n if (previousTriggerId) {\n const triggerSourceId = previousTriggerId;\n readOnlyLayout.entryIds.forEach((entryId) => {\n ctx.edges.push(createEdge(triggerSourceId, entryId));\n });\n }\n } else {\n buildSequenceGraph(definition.nodes ?? [], ctx, 80, startY, { scope: \"root\" });\n if (previousTriggerId) {\n const firstRootInsertId = `insert-${JSON.stringify({ scope: \"root\" })}-0`;\n ctx.edges.push(createEdge(previousTriggerId, firstRootInsertId));\n }\n }\n\n return {\n nodes: [...ctx.backgroundNodes, ...ctx.nodes],\n edges: ctx.edges,\n };\n}\n\nfunction WorkflowFlowCanvasInner(props: WorkflowFlowCanvasProps) {\n const graph = React.useMemo(\n () =>\n buildGraph(props.definition, props.nodeTypes, {\n selectedNodeId: props.selectedNodeId,\n selectedTriggerId: props.selectedTriggerId,\n activePaletteNodeType: props.activePaletteNodeType,\n onSelectNode: props.onSelectNode,\n onSelectTrigger: props.onSelectTrigger,\n onEditNode: props.onEditNode,\n onDeleteNode: props.onDeleteNode,\n onViewDocs: props.onViewDocs,\n onViewTriggerDocs: props.onViewTriggerDocs,\n onInsertNode: props.onInsertNode,\n onAddBranch: props.onAddBranch,\n readOnly: props.readOnly,\n }),\n [\n props.activePaletteNodeType,\n props.definition,\n props.nodeTypes,\n props.onAddBranch,\n props.onDeleteNode,\n props.onEditNode,\n props.onInsertNode,\n props.onSelectNode,\n props.onSelectTrigger,\n props.onViewDocs,\n props.onViewTriggerDocs,\n props.readOnly,\n props.selectedNodeId,\n props.selectedTriggerId,\n ],\n );\n\n return (\n <div\n className={`workflow-flow-canvas ${props.readOnly ? \"workflow-flow-canvas--readonly\" : \"\"}`}\n >\n <ReactFlow\n nodes={graph.nodes}\n edges={graph.edges}\n nodeTypes={canvasNodeTypes}\n fitView\n fitViewOptions={{\n padding: props.readOnly ? 0.28 : 0.24,\n maxZoom: props.readOnly ? 0.92 : 1,\n }}\n minZoom={0.25}\n maxZoom={1.6}\n proOptions={{ hideAttribution: true }}\n defaultEdgeOptions={{ zIndex: 2 }}\n nodesDraggable={false}\n nodesConnectable={false}\n elementsSelectable={!props.readOnly}\n panOnDrag\n zoomOnDoubleClick={false}\n >\n {!props.readOnly ? (\n <MiniMap pannable zoomable className=\"workflow-flow-canvas__minimap\" />\n ) : null}\n <Controls showInteractive={false} />\n <Background\n variant={BackgroundVariant.Dots}\n gap={18}\n size={1.45}\n color=\"rgba(148, 163, 184, 0.34)\"\n />\n </ReactFlow>\n </div>\n );\n}\n\nexport function WorkflowFlowCanvas(props: WorkflowFlowCanvasProps) {\n return (\n <ReactFlowProvider>\n <WorkflowFlowCanvasInner {...props} />\n </ReactFlowProvider>\n );\n}\n"]}
|