@solidxai/core-ui 0.1.13-beta.1 → 0.1.13-beta.2

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.
Files changed (481) hide show
  1. package/dist/components/common/SolidFieldTooltip.d.ts.map +1 -1
  2. package/dist/components/common/SolidFieldTooltip.js +33 -1
  3. package/dist/components/common/SolidFieldTooltip.js.map +1 -1
  4. package/dist/components/common/SolidFieldTooltip.tsx +64 -8
  5. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  6. package/dist/components/core/chatter/SolidChatter.js +4 -2
  7. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  8. package/dist/components/core/chatter/SolidChatter.tsx +4 -1
  9. package/dist/components/core/chatter/SolidChatterMentionMenu.d.ts +9 -0
  10. package/dist/components/core/chatter/SolidChatterMentionMenu.d.ts.map +1 -0
  11. package/dist/components/core/chatter/SolidChatterMentionMenu.js +18 -0
  12. package/dist/components/core/chatter/SolidChatterMentionMenu.js.map +1 -0
  13. package/dist/components/core/chatter/SolidChatterMentionMenu.tsx +45 -0
  14. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +1 -0
  15. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  16. package/dist/components/core/chatter/SolidChatterMessageBox.js +29 -5
  17. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  18. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +57 -4
  19. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  20. package/dist/components/core/chatter/SolidMessageComposer.js +33 -7
  21. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  22. package/dist/components/core/chatter/SolidMessageComposer.tsx +61 -7
  23. package/dist/components/core/chatter/chatter.module.css +63 -0
  24. package/dist/components/core/chatter/chatterMentions.d.ts +17 -0
  25. package/dist/components/core/chatter/chatterMentions.d.ts.map +1 -0
  26. package/dist/components/core/chatter/chatterMentions.js +50 -0
  27. package/dist/components/core/chatter/chatterMentions.js.map +1 -0
  28. package/dist/components/core/chatter/chatterMentions.ts +59 -0
  29. package/dist/components/core/chatter/useChatterMentions.d.ts +26 -0
  30. package/dist/components/core/chatter/useChatterMentions.d.ts.map +1 -0
  31. package/dist/components/core/chatter/useChatterMentions.js +204 -0
  32. package/dist/components/core/chatter/useChatterMentions.js.map +1 -0
  33. package/dist/components/core/chatter/useChatterMentions.ts +160 -0
  34. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.d.ts +8 -0
  35. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.d.ts.map +1 -0
  36. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.js +6 -0
  37. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.js.map +1 -0
  38. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorHeaderAction.ts +13 -0
  39. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.d.ts +11 -0
  40. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.d.ts.map +1 -0
  41. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.js +10 -0
  42. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.js.map +1 -0
  43. package/dist/components/core/extension/solid-core/workflowDefinition/list/openWorkflowDefinitionEditorRowAction.ts +22 -0
  44. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts +1 -1
  45. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  46. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +4 -0
  47. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  48. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +6 -0
  49. package/dist/components/core/list/SolidCustomListColumn.d.ts +8 -0
  50. package/dist/components/core/list/SolidCustomListColumn.d.ts.map +1 -0
  51. package/dist/components/core/list/SolidCustomListColumn.js +47 -0
  52. package/dist/components/core/list/SolidCustomListColumn.js.map +1 -0
  53. package/dist/components/core/list/SolidCustomListColumn.tsx +57 -0
  54. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  55. package/dist/components/core/list/SolidListView.js +4 -3
  56. package/dist/components/core/list/SolidListView.js.map +1 -1
  57. package/dist/components/core/list/SolidListView.tsx +4 -3
  58. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  59. package/dist/components/core/model/CreateModel.js +3 -2
  60. package/dist/components/core/model/CreateModel.js.map +1 -1
  61. package/dist/components/core/model/CreateModel.tsx +4 -1
  62. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  63. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  64. package/dist/components/core/model/FieldMetaData.js +17 -17
  65. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  66. package/dist/components/core/model/FieldMetaData.tsx +10 -2
  67. package/dist/components/shad-cn-ui/SolidTextarea.d.ts +1 -1
  68. package/dist/components/shad-cn-ui/SolidTextarea.d.ts.map +1 -1
  69. package/dist/components/shad-cn-ui/SolidTextarea.js +4 -3
  70. package/dist/components/shad-cn-ui/SolidTextarea.js.map +1 -1
  71. package/dist/components/shad-cn-ui/SolidTextarea.tsx +4 -2
  72. package/dist/components/workflow/WorkflowFlowCanvas.css +431 -0
  73. package/dist/components/workflow/WorkflowFlowCanvas.d.ts +41 -0
  74. package/dist/components/workflow/WorkflowFlowCanvas.d.ts.map +1 -0
  75. package/dist/components/workflow/WorkflowFlowCanvas.js +705 -0
  76. package/dist/components/workflow/WorkflowFlowCanvas.js.map +1 -0
  77. package/dist/components/workflow/WorkflowFlowCanvas.tsx +1274 -0
  78. package/dist/components/workflow/WorkflowNodeDocsPanel.css +247 -0
  79. package/dist/components/workflow/WorkflowNodeDocsPanel.d.ts +22 -0
  80. package/dist/components/workflow/WorkflowNodeDocsPanel.d.ts.map +1 -0
  81. package/dist/components/workflow/WorkflowNodeDocsPanel.js +97 -0
  82. package/dist/components/workflow/WorkflowNodeDocsPanel.js.map +1 -0
  83. package/dist/components/workflow/WorkflowNodeDocsPanel.tsx +363 -0
  84. package/dist/components/workflow/WorkflowNodeSchemaEditor.d.ts +50 -0
  85. package/dist/components/workflow/WorkflowNodeSchemaEditor.d.ts.map +1 -0
  86. package/dist/components/workflow/WorkflowNodeSchemaEditor.js +309 -0
  87. package/dist/components/workflow/WorkflowNodeSchemaEditor.js.map +1 -0
  88. package/dist/components/workflow/WorkflowNodeSchemaEditor.tsx +808 -0
  89. package/dist/helpers/modulePackageResumeState.d.ts +6 -0
  90. package/dist/helpers/modulePackageResumeState.d.ts.map +1 -0
  91. package/dist/helpers/modulePackageResumeState.js +46 -0
  92. package/dist/helpers/modulePackageResumeState.js.map +1 -0
  93. package/dist/helpers/modulePackageResumeState.ts +57 -0
  94. package/dist/redux/api/workflowDefinitionEditorApi.d.ts +17 -0
  95. package/dist/redux/api/workflowDefinitionEditorApi.d.ts.map +1 -0
  96. package/dist/redux/api/workflowDefinitionEditorApi.js +38 -0
  97. package/dist/redux/api/workflowDefinitionEditorApi.js.map +1 -0
  98. package/dist/redux/api/workflowDefinitionEditorApi.ts +40 -0
  99. package/dist/redux/api/workflowNodeApi.d.ts +6 -0
  100. package/dist/redux/api/workflowNodeApi.d.ts.map +1 -0
  101. package/dist/redux/api/workflowNodeApi.js +14 -0
  102. package/dist/redux/api/workflowNodeApi.js.map +1 -0
  103. package/dist/redux/api/workflowNodeApi.ts +18 -0
  104. package/dist/resources/globals.css +14 -0
  105. package/dist/resources/shadcn-base.css +70 -16
  106. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.css +970 -0
  107. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.d.ts +3 -0
  108. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.d.ts.map +1 -0
  109. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js +1287 -0
  110. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js.map +1 -0
  111. package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx +2572 -0
  112. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.css +151 -0
  113. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.d.ts +3 -0
  114. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.d.ts.map +1 -0
  115. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.js +250 -0
  116. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.js.map +1 -0
  117. package/dist/routes/pages/admin/core/WorkflowDefinitionListPage.tsx +455 -0
  118. package/dist/types/workflow-node.d.ts +127 -0
  119. package/dist/types/workflow-node.d.ts.map +1 -0
  120. package/dist/types/workflow-node.js +2 -0
  121. package/dist/types/workflow-node.js.map +1 -0
  122. package/dist/types/workflow-node.ts +162 -0
  123. package/package.json +1 -1
  124. package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
  125. package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
  126. package/dist/components/auth/SolidOTPVerify.js +0 -67
  127. package/dist/components/auth/SolidOTPVerify.js.map +0 -1
  128. package/dist/components/auth/SolidOTPVerify.tsx +0 -133
  129. package/dist/components/common/AuthBanner.d.ts +0 -3
  130. package/dist/components/common/AuthBanner.d.ts.map +0 -1
  131. package/dist/components/common/AuthBanner.js +0 -15
  132. package/dist/components/common/AuthBanner.js.map +0 -1
  133. package/dist/components/common/AuthBanner.tsx +0 -41
  134. package/dist/components/common/SingleSelectAutoCompleteField.d.ts +0 -2
  135. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +0 -1
  136. package/dist/components/common/SingleSelectAutoCompleteField.js +0 -92
  137. package/dist/components/common/SingleSelectAutoCompleteField.js.map +0 -1
  138. package/dist/components/common/SingleSelectAutoCompleteField.tsx +0 -73
  139. package/dist/components/common/SolidExportStepper.d.ts +0 -12
  140. package/dist/components/common/SolidExportStepper.d.ts.map +0 -1
  141. package/dist/components/common/SolidExportStepper.js +0 -30
  142. package/dist/components/common/SolidExportStepper.js.map +0 -1
  143. package/dist/components/common/SolidExportStepper.tsx +0 -135
  144. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
  145. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
  146. package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
  147. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
  148. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
  149. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts +0 -2
  150. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts.map +0 -1
  151. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js +0 -16
  152. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js.map +0 -1
  153. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +0 -29
  154. package/dist/components/core/dashboard/DashboardFilter.d.ts +0 -13
  155. package/dist/components/core/dashboard/DashboardFilter.d.ts.map +0 -1
  156. package/dist/components/core/dashboard/DashboardFilter.js +0 -299
  157. package/dist/components/core/dashboard/DashboardFilter.js.map +0 -1
  158. package/dist/components/core/dashboard/DashboardFilter.tsx +0 -348
  159. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +0 -3
  160. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +0 -1
  161. package/dist/components/core/dashboard/PrimeDataTableWrapper.js +0 -21
  162. package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +0 -1
  163. package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +0 -40
  164. package/dist/components/core/dashboard/SolidDashboard.d.ts +0 -28
  165. package/dist/components/core/dashboard/SolidDashboard.d.ts.map +0 -1
  166. package/dist/components/core/dashboard/SolidDashboard.js +0 -183
  167. package/dist/components/core/dashboard/SolidDashboard.js.map +0 -1
  168. package/dist/components/core/dashboard/SolidDashboard.module.css +0 -83
  169. package/dist/components/core/dashboard/SolidDashboard.tsx +0 -263
  170. package/dist/components/core/dashboard/SolidDashboardBody.d.ts +0 -24
  171. package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +0 -1
  172. package/dist/components/core/dashboard/SolidDashboardBody.js +0 -162
  173. package/dist/components/core/dashboard/SolidDashboardBody.js.map +0 -1
  174. package/dist/components/core/dashboard/SolidDashboardBody.tsx +0 -168
  175. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts +0 -2
  176. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts.map +0 -1
  177. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +0 -11
  178. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +0 -1
  179. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +0 -28
  180. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts +0 -3
  181. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts.map +0 -1
  182. package/dist/components/core/dashboard/SolidDashboardHeader.js +0 -6
  183. package/dist/components/core/dashboard/SolidDashboardHeader.js.map +0 -1
  184. package/dist/components/core/dashboard/SolidDashboardHeader.tsx +0 -10
  185. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts +0 -2
  186. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts.map +0 -1
  187. package/dist/components/core/dashboard/SolidDashboardLoading.js +0 -10
  188. package/dist/components/core/dashboard/SolidDashboardLoading.js.map +0 -1
  189. package/dist/components/core/dashboard/SolidDashboardLoading.tsx +0 -61
  190. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts +0 -3
  191. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts.map +0 -1
  192. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +0 -12
  193. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +0 -1
  194. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +0 -32
  195. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts +0 -2
  196. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts.map +0 -1
  197. package/dist/components/core/dashboard/SolidDashboardRenderError.js +0 -11
  198. package/dist/components/core/dashboard/SolidDashboardRenderError.js.map +0 -1
  199. package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +0 -28
  200. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts +0 -19
  201. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts.map +0 -1
  202. package/dist/components/core/dashboard/SolidDashboardVariable.js +0 -171
  203. package/dist/components/core/dashboard/SolidDashboardVariable.js.map +0 -1
  204. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +0 -259
  205. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts +0 -9
  206. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +0 -1
  207. package/dist/components/core/dashboard/SolidQuestionRenderer.js +0 -42
  208. package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +0 -1
  209. package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +0 -99
  210. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts +0 -9
  211. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +0 -1
  212. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +0 -35
  213. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +0 -1
  214. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +0 -48
  215. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts +0 -7
  216. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts.map +0 -1
  217. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js +0 -22
  218. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js.map +0 -1
  219. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +0 -51
  220. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts +0 -2
  221. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts.map +0 -1
  222. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js +0 -4
  223. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js.map +0 -1
  224. package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +0 -25
  225. package/dist/components/core/dashboard/dashboard-utils.d.ts +0 -2
  226. package/dist/components/core/dashboard/dashboard-utils.d.ts.map +0 -1
  227. package/dist/components/core/dashboard/dashboard-utils.js +0 -38
  228. package/dist/components/core/dashboard/dashboard-utils.js.map +0 -1
  229. package/dist/components/core/dashboard/dashboard-utils.ts +0 -39
  230. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +0 -10
  231. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +0 -1
  232. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +0 -16
  233. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +0 -1
  234. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +0 -19
  235. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +0 -8
  236. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +0 -1
  237. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +0 -64
  238. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +0 -1
  239. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +0 -30
  240. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +0 -8
  241. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +0 -1
  242. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +0 -62
  243. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +0 -1
  244. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +0 -29
  245. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts +0 -4
  246. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts.map +0 -1
  247. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js +0 -23
  248. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js.map +0 -1
  249. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +0 -36
  250. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +0 -3
  251. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +0 -1
  252. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +0 -92
  253. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +0 -1
  254. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +0 -68
  255. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +0 -3
  256. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +0 -1
  257. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +0 -111
  258. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +0 -1
  259. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +0 -122
  260. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts +0 -12
  261. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +0 -1
  262. package/dist/components/core/kanban/SolidKanbanViewFields.js +0 -145
  263. package/dist/components/core/kanban/SolidKanbanViewFields.js.map +0 -1
  264. package/dist/components/core/kanban/SolidKanbanViewFields.tsx +0 -164
  265. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +0 -2
  266. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +0 -1
  267. package/dist/components/core/kanban/SolidManyToOneFilterElement.js +0 -87
  268. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +0 -1
  269. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +0 -59
  270. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +0 -2
  271. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +0 -1
  272. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +0 -73
  273. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +0 -1
  274. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +0 -50
  275. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +0 -2
  276. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +0 -1
  277. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +0 -20
  278. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +0 -1
  279. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +0 -32
  280. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +0 -12
  281. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +0 -1
  282. package/dist/components/core/kanban/SolidVarInputsFilterElement.js +0 -81
  283. package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +0 -1
  284. package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +0 -184
  285. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +0 -4
  286. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +0 -1
  287. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +0 -7
  288. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +0 -1
  289. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +0 -9
  290. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +0 -4
  291. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +0 -1
  292. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +0 -8
  293. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +0 -1
  294. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +0 -16
  295. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +0 -4
  296. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +0 -1
  297. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +0 -21
  298. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +0 -1
  299. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +0 -23
  300. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +0 -4
  301. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +0 -1
  302. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +0 -8
  303. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +0 -1
  304. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +0 -14
  305. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +0 -4
  306. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +0 -1
  307. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +0 -8
  308. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +0 -1
  309. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +0 -13
  310. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +0 -4
  311. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +0 -1
  312. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +0 -7
  313. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +0 -1
  314. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +0 -9
  315. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +0 -4
  316. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +0 -1
  317. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +0 -8
  318. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +0 -1
  319. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +0 -12
  320. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +0 -4
  321. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +0 -1
  322. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +0 -7
  323. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +0 -1
  324. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +0 -9
  325. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +0 -4
  326. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +0 -1
  327. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +0 -8
  328. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +0 -1
  329. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +0 -14
  330. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +0 -4
  331. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +0 -1
  332. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +0 -16
  333. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +0 -1
  334. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +0 -20
  335. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +0 -4
  336. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +0 -1
  337. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +0 -7
  338. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +0 -1
  339. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +0 -9
  340. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +0 -4
  341. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +0 -1
  342. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +0 -56
  343. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +0 -1
  344. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +0 -140
  345. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +0 -4
  346. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +0 -1
  347. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +0 -42
  348. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +0 -1
  349. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +0 -164
  350. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +0 -4
  351. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +0 -1
  352. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +0 -11
  353. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +0 -1
  354. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +0 -13
  355. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +0 -4
  356. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +0 -1
  357. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +0 -7
  358. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +0 -1
  359. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +0 -9
  360. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +0 -4
  361. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +0 -1
  362. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +0 -8
  363. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +0 -1
  364. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +0 -14
  365. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +0 -4
  366. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +0 -1
  367. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +0 -8
  368. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +0 -1
  369. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +0 -14
  370. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +0 -4
  371. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +0 -1
  372. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +0 -37
  373. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +0 -1
  374. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +0 -121
  375. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +0 -4
  376. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +0 -1
  377. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +0 -8
  378. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +0 -1
  379. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +0 -12
  380. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +0 -4
  381. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +0 -1
  382. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +0 -8
  383. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +0 -1
  384. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +0 -13
  385. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +0 -4
  386. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +0 -1
  387. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +0 -7
  388. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +0 -1
  389. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +0 -16
  390. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +0 -2
  391. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +0 -1
  392. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +0 -39
  393. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +0 -1
  394. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +0 -40
  395. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts +0 -12
  396. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts.map +0 -1
  397. package/dist/components/core/list/SolidVarInputsFilterElement.js +0 -81
  398. package/dist/components/core/list/SolidVarInputsFilterElement.js.map +0 -1
  399. package/dist/components/core/list/SolidVarInputsFilterElement.tsx +0 -184
  400. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +0 -3
  401. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +0 -1
  402. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +0 -87
  403. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +0 -1
  404. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +0 -70
  405. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +0 -3
  406. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +0 -1
  407. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +0 -33
  408. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +0 -1
  409. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +0 -50
  410. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +0 -3
  411. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +0 -1
  412. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +0 -158
  413. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +0 -1
  414. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +0 -185
  415. package/dist/components/layout/DashboardHeader.d.ts +0 -3
  416. package/dist/components/layout/DashboardHeader.d.ts.map +0 -1
  417. package/dist/components/layout/DashboardHeader.js +0 -20
  418. package/dist/components/layout/DashboardHeader.js.map +0 -1
  419. package/dist/components/layout/DashboardHeader.tsx +0 -94
  420. package/dist/helpers/# no such endpoints exist, need to calle +0 -3
  421. package/dist/helpers/ToastContainer.d.ts +0 -4
  422. package/dist/helpers/ToastContainer.d.ts.map +0 -1
  423. package/dist/helpers/ToastContainer.js +0 -49
  424. package/dist/helpers/ToastContainer.js.map +0 -1
  425. package/dist/helpers/ToastContainer.tsx +0 -94
  426. package/dist/helpers/showToast.d.ts +0 -5
  427. package/dist/helpers/showToast.d.ts.map +0 -1
  428. package/dist/helpers/showToast.js +0 -17
  429. package/dist/helpers/showToast.js.map +0 -1
  430. package/dist/helpers/showToast.ts +0 -13
  431. package/dist/helpers/studioSandbox.d.ts +0 -31
  432. package/dist/helpers/studioSandbox.d.ts.map +0 -1
  433. package/dist/helpers/studioSandbox.js +0 -104
  434. package/dist/helpers/studioSandbox.js.map +0 -1
  435. package/dist/helpers/studioSandbox.ts +0 -117
  436. package/dist/nextAuth/authProviders.d.ts +0 -4
  437. package/dist/nextAuth/authProviders.d.ts.map +0 -1
  438. package/dist/nextAuth/authProviders.js +0 -198
  439. package/dist/nextAuth/authProviders.js.map +0 -1
  440. package/dist/nextAuth/authProviders.tsx +0 -232
  441. package/dist/nextAuth/handleLogout.d.ts +0 -2
  442. package/dist/nextAuth/handleLogout.d.ts.map +0 -1
  443. package/dist/nextAuth/handleLogout.js +0 -36
  444. package/dist/nextAuth/handleLogout.js.map +0 -1
  445. package/dist/nextAuth/handleLogout.tsx +0 -39
  446. package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
  447. package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
  448. package/dist/nextAuth/refreshAccessToken.js +0 -24
  449. package/dist/nextAuth/refreshAccessToken.js.map +0 -1
  450. package/dist/nextAuth/refreshAccessToken.tsx +0 -28
  451. package/dist/redux/api/dashboardApi.d.ts +0 -23
  452. package/dist/redux/api/dashboardApi.d.ts.map +0 -1
  453. package/dist/redux/api/dashboardApi.js +0 -35
  454. package/dist/redux/api/dashboardApi.js.map +0 -1
  455. package/dist/redux/api/dashboardApi.ts +0 -56
  456. package/dist/redux/api/dashboardLayoutApi.d.ts +0 -24
  457. package/dist/redux/api/dashboardLayoutApi.d.ts.map +0 -1
  458. package/dist/redux/api/dashboardLayoutApi.js +0 -34
  459. package/dist/redux/api/dashboardLayoutApi.js.map +0 -1
  460. package/dist/redux/api/dashboardLayoutApi.ts +0 -55
  461. package/dist/redux/api/dashboardQuestionApi.d.ts +0 -5
  462. package/dist/redux/api/dashboardQuestionApi.d.ts.map +0 -1
  463. package/dist/redux/api/dashboardQuestionApi.js +0 -18
  464. package/dist/redux/api/dashboardQuestionApi.js.map +0 -1
  465. package/dist/redux/api/dashboardQuestionApi.ts +0 -17
  466. package/dist/redux/features/settingsSlice.d.ts +0 -20
  467. package/dist/redux/features/settingsSlice.d.ts.map +0 -1
  468. package/dist/redux/features/settingsSlice.js +0 -39
  469. package/dist/redux/features/settingsSlice.js.map +0 -1
  470. package/dist/redux/features/settingsSlice.ts +0 -60
  471. package/dist/resources/images/Footerbg.png +0 -0
  472. package/dist/resources/images/LoginBanner.png +0 -0
  473. package/dist/resources/images/dashboard/Ellipse 1.svg +0 -10
  474. package/dist/resources/images/dashboard/Rectangle 17.svg +0 -10
  475. package/dist/resources/images/dashboard/Rectangle 25.svg +0 -11
  476. package/dist/resources/images/dashboard/image 5.svg +0 -9
  477. package/dist/resources/images/loginhero.png +0 -0
  478. package/dist/resources/images/logo.png +0 -0
  479. package/dist/resources/images/radix-logo-white.png +0 -0
  480. package/dist/resources/images/radix-logo.png +0 -0
  481. package/dist/resources/images/signupBanner.png +0 -0
@@ -0,0 +1,808 @@
1
+ import React from "react";
2
+ import YAML from "yaml";
3
+ import { getExtensionComponent } from "../../helpers/registry";
4
+ import type {
5
+ WorkflowNodeChildSlotDefinition,
6
+ WorkflowNodeConfigurationFieldDefinition,
7
+ WorkflowNodeMetadataResponse,
8
+ } from "../../types/workflow-node";
9
+ import {
10
+ SolidButton,
11
+ SolidCodeEditor,
12
+ SolidDialog,
13
+ SolidDialogBody,
14
+ SolidDialogFooter,
15
+ SolidInput,
16
+ SolidNumberInput,
17
+ SolidPanel,
18
+ SolidSelect,
19
+ SolidSwitch,
20
+ SolidTag,
21
+ SolidTextarea,
22
+ } from "../shad-cn-ui";
23
+
24
+ type WorkflowNodeSchemaEditorProps = {
25
+ nodeType: WorkflowNodeMetadataResponse;
26
+ value?: Record<string, any>;
27
+ onChange?: (value: Record<string, any>) => void;
28
+ onSubmit?: (value: Record<string, any>) => void;
29
+ readOnly?: boolean;
30
+ className?: string;
31
+ };
32
+
33
+ type WorkflowNodeEditorValue = {
34
+ [key: string]: any;
35
+ id: string;
36
+ name?: string;
37
+ description?: string;
38
+ kind: string;
39
+ type: string;
40
+ disabled?: boolean;
41
+ timeoutMs?: number;
42
+ retryPolicy?: Record<string, any>;
43
+ onError?: "fail" | "continue";
44
+ configuration?: Record<string, any>;
45
+ children?: WorkflowNodeEditorValue[];
46
+ nodes?: WorkflowNodeEditorValue[];
47
+ then?: WorkflowNodeEditorValue[];
48
+ else?: WorkflowNodeEditorValue[];
49
+ branches?: Array<{
50
+ id: string;
51
+ name?: string;
52
+ nodes: WorkflowNodeEditorValue[];
53
+ }>;
54
+ };
55
+
56
+ type WorkflowNodeEditorDialogProps = WorkflowNodeSchemaEditorProps & {
57
+ open: boolean;
58
+ onOpenChange: (open: boolean) => void;
59
+ title?: string;
60
+ nodeValue?: WorkflowNodeEditorValue;
61
+ onNodeChange?: (value: WorkflowNodeEditorValue) => void;
62
+ onNodeSubmit?: (value: WorkflowNodeEditorValue) => void;
63
+ };
64
+
65
+ type WorkflowNodePaletteProps = {
66
+ nodeTypes: WorkflowNodeMetadataResponse[];
67
+ value?: string;
68
+ onSelect?: (nodeType: WorkflowNodeMetadataResponse) => void;
69
+ className?: string;
70
+ };
71
+
72
+ type FieldEditorProps = {
73
+ nodeType: WorkflowNodeMetadataResponse;
74
+ field: WorkflowNodeConfigurationFieldDefinition;
75
+ value: any;
76
+ readOnly?: boolean;
77
+ onChange: (value: any) => void;
78
+ };
79
+
80
+ function normalizeFieldValue(
81
+ field: WorkflowNodeConfigurationFieldDefinition,
82
+ currentValue: any,
83
+ ) {
84
+ if (currentValue !== undefined) {
85
+ return currentValue;
86
+ }
87
+
88
+ return field.defaultValue;
89
+ }
90
+
91
+ function parseYamlValue(input: string, fallback: any) {
92
+ if (!input.trim()) {
93
+ return {};
94
+ }
95
+
96
+ try {
97
+ return YAML.parse(input);
98
+ } catch {
99
+ return fallback;
100
+ }
101
+ }
102
+
103
+ function getPathValue(value: Record<string, any>, pathOrKey: string) {
104
+ return pathOrKey
105
+ .split(".")
106
+ .reduce<any>((current, part) => current?.[part], value);
107
+ }
108
+
109
+ function setPathValue(value: Record<string, any>, pathOrKey: string, nextValue: any) {
110
+ const parts = pathOrKey.split(".");
111
+ if (parts.length === 1) {
112
+ return {
113
+ ...value,
114
+ [pathOrKey]: nextValue,
115
+ };
116
+ }
117
+
118
+ const nextRoot = { ...value };
119
+ let cursor: Record<string, any> = nextRoot;
120
+ parts.forEach((part, index) => {
121
+ if (index === parts.length - 1) {
122
+ cursor[part] = nextValue;
123
+ return;
124
+ }
125
+
126
+ const existing = cursor[part];
127
+ cursor[part] =
128
+ existing && typeof existing === "object" && !Array.isArray(existing)
129
+ ? { ...existing }
130
+ : {};
131
+ cursor = cursor[part];
132
+ });
133
+
134
+ return nextRoot;
135
+ }
136
+
137
+ function getSlotCount(node: WorkflowNodeEditorValue, slot: WorkflowNodeChildSlotDefinition) {
138
+ if (slot.kind === "branch-collection") {
139
+ return Array.isArray(node.branches) ? node.branches.length : 0;
140
+ }
141
+
142
+ const value = node[slot.key];
143
+ return Array.isArray(value) ? value.length : 0;
144
+ }
145
+
146
+ function renderFieldHint(field: WorkflowNodeConfigurationFieldDefinition) {
147
+ return (
148
+ <div style={{ display: "flex", gap: "0.5rem", flexWrap: "wrap" }}>
149
+ {field.valueType ? <SolidTag>{field.valueType}</SolidTag> : null}
150
+ {field.required ? <SolidTag tone="warn">required</SolidTag> : null}
151
+ {field.expressionAllowed ? <SolidTag>expressions</SolidTag> : null}
152
+ {field.secretAllowed ? <SolidTag tone="success">secret</SolidTag> : null}
153
+ </div>
154
+ );
155
+ }
156
+
157
+ function WorkflowNodeFieldEditor({
158
+ nodeType,
159
+ field,
160
+ value,
161
+ readOnly,
162
+ onChange,
163
+ }: FieldEditorProps) {
164
+ const extensionKey =
165
+ field.extensionComponentKey ?? nodeType.ui?.fieldComponentKeys?.[field.key];
166
+ const ExtensionComponent = extensionKey ? getExtensionComponent(extensionKey) : null;
167
+
168
+ const normalizedValue = normalizeFieldValue(field, value);
169
+
170
+ if (ExtensionComponent) {
171
+ return (
172
+ <ExtensionComponent
173
+ nodeType={nodeType}
174
+ field={field}
175
+ value={normalizedValue}
176
+ onChange={onChange}
177
+ readOnly={readOnly}
178
+ />
179
+ );
180
+ }
181
+
182
+ if (field.enumValues?.length) {
183
+ return (
184
+ <SolidSelect
185
+ value={normalizedValue}
186
+ disabled={readOnly}
187
+ options={field.enumValues.map((item) => ({
188
+ label: String(item),
189
+ value: item,
190
+ }))}
191
+ onChange={(event) => onChange(event.value)}
192
+ />
193
+ );
194
+ }
195
+
196
+ if (field.valueType === "boolean") {
197
+ return (
198
+ <SolidSwitch
199
+ checked={!!normalizedValue}
200
+ disabled={readOnly}
201
+ onChange={(checked) => onChange(checked)}
202
+ />
203
+ );
204
+ }
205
+
206
+ if (field.valueType === "number" || field.valueType === "integer") {
207
+ return (
208
+ <SolidNumberInput
209
+ value={normalizedValue}
210
+ disabled={readOnly}
211
+ onChange={(event) => onChange(event.value)}
212
+ />
213
+ );
214
+ }
215
+
216
+ if (
217
+ field.valueType === "object" ||
218
+ field.valueType === "array" ||
219
+ field.valueType === "json" ||
220
+ field.widgetHint === "json-editor" ||
221
+ field.widgetHint === "yaml-editor"
222
+ ) {
223
+ const stringValue =
224
+ typeof normalizedValue === "string"
225
+ ? normalizedValue
226
+ : YAML.stringify(normalizedValue ?? {});
227
+
228
+ return (
229
+ <SolidCodeEditor
230
+ language="yaml"
231
+ height="220px"
232
+ readOnly={readOnly}
233
+ value={stringValue}
234
+ onChange={(next) => onChange(parseYamlValue(next ?? "", normalizedValue))}
235
+ />
236
+ );
237
+ }
238
+
239
+ if (field.valueType === "any") {
240
+ return (
241
+ <SolidCodeEditor
242
+ language="yaml"
243
+ height="220px"
244
+ readOnly={readOnly}
245
+ value={
246
+ typeof normalizedValue === "string"
247
+ ? normalizedValue
248
+ : YAML.stringify(normalizedValue ?? null)
249
+ }
250
+ onChange={(next) => onChange(parseYamlValue(next ?? "", normalizedValue))}
251
+ />
252
+ );
253
+ }
254
+
255
+ if (field.widgetHint === "textarea") {
256
+ return (
257
+ <SolidTextarea
258
+ value={normalizedValue ?? ""}
259
+ disabled={readOnly}
260
+ onChange={(event) => onChange(event.target.value)}
261
+ />
262
+ );
263
+ }
264
+
265
+ return (
266
+ <SolidInput
267
+ value={normalizedValue ?? ""}
268
+ disabled={readOnly}
269
+ onChange={(event) => onChange(event.target.value)}
270
+ />
271
+ );
272
+ }
273
+
274
+ export function WorkflowNodeSchemaEditor({
275
+ nodeType,
276
+ value,
277
+ onChange,
278
+ onSubmit,
279
+ readOnly,
280
+ className,
281
+ }: WorkflowNodeSchemaEditorProps) {
282
+ const [draft, setDraft] = React.useState<Record<string, any>>(
283
+ value ?? nodeType.authoring?.defaultConfiguration ?? {},
284
+ );
285
+
286
+ React.useEffect(() => {
287
+ setDraft(value ?? nodeType.authoring?.defaultConfiguration ?? {});
288
+ }, [nodeType, value]);
289
+
290
+ const fields = nodeType.authoring?.configurationFields ?? [];
291
+ const groupOrder = nodeType.ui?.layoutHints?.groupOrder ?? [];
292
+ const groupedFields = fields.reduce<Record<string, WorkflowNodeConfigurationFieldDefinition[]>>(
293
+ (acc, field) => {
294
+ const group = field.group ?? "General";
295
+ acc[group] = acc[group] ?? [];
296
+ acc[group].push(field);
297
+ return acc;
298
+ },
299
+ {},
300
+ );
301
+
302
+ const orderedGroups = Object.keys(groupedFields).sort((left, right) => {
303
+ const leftIndex = groupOrder.indexOf(left);
304
+ const rightIndex = groupOrder.indexOf(right);
305
+ if (leftIndex >= 0 && rightIndex >= 0) {
306
+ return leftIndex - rightIndex;
307
+ }
308
+ if (leftIndex >= 0) {
309
+ return -1;
310
+ }
311
+ if (rightIndex >= 0) {
312
+ return 1;
313
+ }
314
+ return left.localeCompare(right);
315
+ });
316
+
317
+ const updateField = (field: WorkflowNodeConfigurationFieldDefinition, nextValue: any) => {
318
+ const nextDraft = setPathValue(draft, field.path ?? field.key, nextValue);
319
+ setDraft(nextDraft);
320
+ onChange?.(nextDraft);
321
+ };
322
+
323
+ return (
324
+ <div className={className} style={{ display: "grid", gap: "1rem" }}>
325
+ {orderedGroups.map((group) => (
326
+ <SolidPanel key={group} header={group}>
327
+ <div style={{ display: "grid", gap: "1rem" }}>
328
+ {groupedFields[group].map((field) => (
329
+ <div key={field.key} style={{ display: "grid", gap: "0.5rem" }}>
330
+ <div style={{ display: "grid", gap: "0.35rem" }}>
331
+ <div style={{ display: "flex", gap: "0.5rem", alignItems: "center", flexWrap: "wrap" }}>
332
+ <strong>{field.label ?? field.key}</strong>
333
+ {renderFieldHint(field)}
334
+ </div>
335
+ {field.description ? (
336
+ <div style={{ opacity: 0.8 }}>{field.description}</div>
337
+ ) : null}
338
+ </div>
339
+ <WorkflowNodeFieldEditor
340
+ nodeType={nodeType}
341
+ field={field}
342
+ value={getPathValue(draft, field.path ?? field.key)}
343
+ readOnly={readOnly}
344
+ onChange={(nextValue) => updateField(field, nextValue)}
345
+ />
346
+ </div>
347
+ ))}
348
+ </div>
349
+ </SolidPanel>
350
+ ))}
351
+
352
+ {!readOnly && onSubmit ? (
353
+ <div style={{ display: "flex", justifyContent: "flex-end" }}>
354
+ <SolidButton onClick={() => onSubmit(draft)}>Save</SolidButton>
355
+ </div>
356
+ ) : null}
357
+ </div>
358
+ );
359
+ }
360
+
361
+ function WorkflowNodeCommonFields({
362
+ nodeType,
363
+ draft,
364
+ readOnly,
365
+ onChange,
366
+ }: {
367
+ nodeType: WorkflowNodeMetadataResponse;
368
+ draft: WorkflowNodeEditorValue;
369
+ readOnly?: boolean;
370
+ onChange: (value: WorkflowNodeEditorValue) => void;
371
+ }) {
372
+ const authoring = nodeType.authoring;
373
+ const update = (patch: Partial<WorkflowNodeEditorValue>) => {
374
+ onChange({ ...draft, ...patch });
375
+ };
376
+
377
+ return (
378
+ <SolidPanel header="Node">
379
+ <div style={{ display: "grid", gap: "1rem" }}>
380
+ <div style={{ display: "grid", gap: "1rem", gridTemplateColumns: "repeat(2, minmax(0, 1fr))" }}>
381
+ <div style={{ display: "grid", gap: "0.45rem" }}>
382
+ <strong>Id</strong>
383
+ <SolidInput
384
+ value={draft.id ?? ""}
385
+ disabled={readOnly}
386
+ onChange={(event) => update({ id: event.target.value })}
387
+ />
388
+ </div>
389
+ <div style={{ display: "grid", gap: "0.45rem" }}>
390
+ <strong>Type</strong>
391
+ <SolidInput value={draft.type ?? nodeType.type} disabled />
392
+ </div>
393
+ </div>
394
+
395
+ {authoring?.supportsName !== false ? (
396
+ <div style={{ display: "grid", gap: "0.45rem" }}>
397
+ <strong>Name</strong>
398
+ <SolidInput
399
+ value={draft.name ?? ""}
400
+ disabled={readOnly}
401
+ onChange={(event) => update({ name: event.target.value })}
402
+ />
403
+ </div>
404
+ ) : null}
405
+
406
+ {authoring?.supportsDescription ? (
407
+ <div style={{ display: "grid", gap: "0.45rem" }}>
408
+ <strong>Description</strong>
409
+ <SolidTextarea
410
+ value={draft.description ?? ""}
411
+ disabled={readOnly}
412
+ onChange={(event) => update({ description: event.target.value })}
413
+ />
414
+ </div>
415
+ ) : null}
416
+
417
+ <div style={{ display: "flex", gap: "0.6rem", flexWrap: "wrap" }}>
418
+ <SolidTag>{nodeType.kind}</SolidTag>
419
+ {nodeType.category ? <SolidTag>{nodeType.category}</SolidTag> : null}
420
+ {nodeType.ui?.defaultEditorMode ? (
421
+ <SolidTag>{nodeType.ui.defaultEditorMode}</SolidTag>
422
+ ) : null}
423
+ </div>
424
+ </div>
425
+ </SolidPanel>
426
+ );
427
+ }
428
+
429
+ function WorkflowNodeRuntimeFields({
430
+ nodeType,
431
+ draft,
432
+ readOnly,
433
+ onChange,
434
+ }: {
435
+ nodeType: WorkflowNodeMetadataResponse;
436
+ draft: WorkflowNodeEditorValue;
437
+ readOnly?: boolean;
438
+ onChange: (value: WorkflowNodeEditorValue) => void;
439
+ }) {
440
+ const authoring = nodeType.authoring;
441
+ const hasRuntimeFields =
442
+ authoring?.supportsDisableToggle ||
443
+ authoring?.supportsTimeoutMs ||
444
+ authoring?.supportsOnError ||
445
+ authoring?.supportsRetryPolicy;
446
+
447
+ if (!hasRuntimeFields) {
448
+ return null;
449
+ }
450
+
451
+ const update = (patch: Partial<WorkflowNodeEditorValue>) => {
452
+ onChange({ ...draft, ...patch });
453
+ };
454
+
455
+ return (
456
+ <SolidPanel header="Runtime">
457
+ <div style={{ display: "grid", gap: "1rem" }}>
458
+ {authoring?.supportsDisableToggle ? (
459
+ <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between", gap: "1rem" }}>
460
+ <div>
461
+ <strong>Disabled</strong>
462
+ <div style={{ opacity: 0.75 }}>Skip this node during execution.</div>
463
+ </div>
464
+ <SolidSwitch
465
+ checked={!!draft.disabled}
466
+ disabled={readOnly}
467
+ onChange={(checked) => update({ disabled: checked || undefined })}
468
+ />
469
+ </div>
470
+ ) : null}
471
+
472
+ <div style={{ display: "grid", gap: "1rem", gridTemplateColumns: "repeat(2, minmax(0, 1fr))" }}>
473
+ {authoring?.supportsTimeoutMs ? (
474
+ <div style={{ display: "grid", gap: "0.45rem" }}>
475
+ <strong>Timeout (ms)</strong>
476
+ <SolidNumberInput
477
+ value={draft.timeoutMs}
478
+ disabled={readOnly}
479
+ onChange={(event) => update({ timeoutMs: event.value ?? undefined })}
480
+ />
481
+ </div>
482
+ ) : null}
483
+
484
+ {authoring?.supportsOnError ? (
485
+ <div style={{ display: "grid", gap: "0.45rem" }}>
486
+ <strong>On error</strong>
487
+ <SolidSelect
488
+ value={draft.onError ?? "fail"}
489
+ disabled={readOnly}
490
+ options={[
491
+ { label: "Fail workflow", value: "fail" },
492
+ { label: "Continue", value: "continue" },
493
+ ]}
494
+ onChange={(event) => update({ onError: event.value })}
495
+ />
496
+ </div>
497
+ ) : null}
498
+ </div>
499
+
500
+ {authoring?.supportsRetryPolicy ? (
501
+ <div style={{ display: "grid", gap: "1rem", gridTemplateColumns: "repeat(2, minmax(0, 1fr))" }}>
502
+ <div style={{ display: "grid", gap: "0.45rem" }}>
503
+ <strong>Max retries</strong>
504
+ <SolidNumberInput
505
+ value={draft.retryPolicy?.maxRetries}
506
+ disabled={readOnly}
507
+ onChange={(event) =>
508
+ update({
509
+ retryPolicy: {
510
+ ...(draft.retryPolicy ?? {}),
511
+ maxRetries: event.value ?? undefined,
512
+ },
513
+ })
514
+ }
515
+ />
516
+ </div>
517
+ <div style={{ display: "grid", gap: "0.45rem" }}>
518
+ <strong>Retry delay (ms)</strong>
519
+ <SolidNumberInput
520
+ value={draft.retryPolicy?.delayMs}
521
+ disabled={readOnly}
522
+ onChange={(event) =>
523
+ update({
524
+ retryPolicy: {
525
+ ...(draft.retryPolicy ?? {}),
526
+ delayMs: event.value ?? undefined,
527
+ },
528
+ })
529
+ }
530
+ />
531
+ </div>
532
+ </div>
533
+ ) : null}
534
+ </div>
535
+ </SolidPanel>
536
+ );
537
+ }
538
+
539
+ function WorkflowNodeChildSlotsSummary({
540
+ nodeType,
541
+ draft,
542
+ }: {
543
+ nodeType: WorkflowNodeMetadataResponse;
544
+ draft: WorkflowNodeEditorValue;
545
+ }) {
546
+ const childSlots = nodeType.authoring?.childSlots ?? [];
547
+ if (!childSlots.length) {
548
+ return null;
549
+ }
550
+
551
+ return (
552
+ <SolidPanel header="Topology Slots">
553
+ <div style={{ display: "grid", gap: "0.65rem" }}>
554
+ {childSlots.map((slot) => (
555
+ <div
556
+ key={slot.key}
557
+ style={{
558
+ display: "flex",
559
+ alignItems: "center",
560
+ justifyContent: "space-between",
561
+ gap: "1rem",
562
+ padding: "0.65rem 0.75rem",
563
+ border: "1px solid var(--surface-border, #dbe3f0)",
564
+ borderRadius: "0.5rem",
565
+ background: "rgba(248, 250, 252, 0.68)",
566
+ }}
567
+ >
568
+ <div style={{ display: "grid", gap: "0.2rem" }}>
569
+ <strong>{slot.label ?? slot.key}</strong>
570
+ <span style={{ opacity: 0.76 }}>
571
+ {slot.description ??
572
+ "Use the topology canvas to add, reorder, or remove child nodes."}
573
+ </span>
574
+ </div>
575
+ <SolidTag>{getSlotCount(draft, slot)}</SolidTag>
576
+ </div>
577
+ ))}
578
+ <div style={{ opacity: 0.75 }}>
579
+ Child node membership is edited from the topology canvas. This dialog edits the
580
+ control node itself.
581
+ </div>
582
+ </div>
583
+ </SolidPanel>
584
+ );
585
+ }
586
+
587
+ function WorkflowNodeFullEditor({
588
+ nodeType,
589
+ value,
590
+ onChange,
591
+ readOnly,
592
+ }: {
593
+ nodeType: WorkflowNodeMetadataResponse;
594
+ value: WorkflowNodeEditorValue;
595
+ onChange: (value: WorkflowNodeEditorValue) => void;
596
+ readOnly?: boolean;
597
+ }) {
598
+ const configuration = value.configuration ?? {};
599
+
600
+ return (
601
+ <div style={{ display: "grid", gap: "1rem" }}>
602
+ <WorkflowNodeCommonFields
603
+ nodeType={nodeType}
604
+ draft={value}
605
+ readOnly={readOnly}
606
+ onChange={onChange}
607
+ />
608
+ <WorkflowNodeSchemaEditor
609
+ nodeType={nodeType}
610
+ value={configuration}
611
+ readOnly={readOnly}
612
+ onChange={(nextConfiguration) =>
613
+ onChange({
614
+ ...value,
615
+ configuration: nextConfiguration,
616
+ })
617
+ }
618
+ />
619
+ <WorkflowNodeRuntimeFields
620
+ nodeType={nodeType}
621
+ draft={value}
622
+ readOnly={readOnly}
623
+ onChange={onChange}
624
+ />
625
+ <WorkflowNodeChildSlotsSummary nodeType={nodeType} draft={value} />
626
+ </div>
627
+ );
628
+ }
629
+
630
+ export function WorkflowNodeEditorDialog({
631
+ open,
632
+ onOpenChange,
633
+ title,
634
+ nodeType,
635
+ value,
636
+ onChange,
637
+ onSubmit,
638
+ readOnly,
639
+ nodeValue,
640
+ onNodeChange,
641
+ onNodeSubmit,
642
+ }: WorkflowNodeEditorDialogProps) {
643
+ const [draft, setDraft] = React.useState<Record<string, any>>(
644
+ value ?? nodeValue?.configuration ?? nodeType.authoring?.defaultConfiguration ?? {},
645
+ );
646
+ const [nodeDraft, setNodeDraft] = React.useState<WorkflowNodeEditorValue>(
647
+ nodeValue ?? {
648
+ id: "",
649
+ type: nodeType.type,
650
+ kind: nodeType.kind,
651
+ configuration: value ?? nodeType.authoring?.defaultConfiguration ?? {},
652
+ },
653
+ );
654
+
655
+ React.useEffect(() => {
656
+ setDraft(value ?? nodeValue?.configuration ?? nodeType.authoring?.defaultConfiguration ?? {});
657
+ setNodeDraft(
658
+ nodeValue ?? {
659
+ id: "",
660
+ type: nodeType.type,
661
+ kind: nodeType.kind,
662
+ configuration: value ?? nodeType.authoring?.defaultConfiguration ?? {},
663
+ },
664
+ );
665
+ }, [nodeType, nodeValue, value, open]);
666
+
667
+ const editorComponentKey = nodeType.ui?.editorComponentKey;
668
+ const CustomEditor = editorComponentKey ? getExtensionComponent(editorComponentKey) : null;
669
+ const useCustomEditor = !!CustomEditor && nodeType.ui?.defaultEditorMode === "custom";
670
+ const isFullNodeMode = !!nodeValue || !!onNodeSubmit || !!onNodeChange;
671
+
672
+ const handleNodeChange = (nextValue: WorkflowNodeEditorValue) => {
673
+ setNodeDraft(nextValue);
674
+ setDraft(nextValue.configuration ?? {});
675
+ onNodeChange?.(nextValue);
676
+ };
677
+
678
+ return (
679
+ <SolidDialog
680
+ open={open}
681
+ onOpenChange={onOpenChange}
682
+ header={title ?? nodeType.label ?? nodeType.type}
683
+ className={`solid-workflow-node-editor-dialog solid-workflow-node-editor-dialog--${nodeType.ui?.modalSize ?? "lg"}`}
684
+ style={{
685
+ width: nodeType.ui?.modalSize === "full" ? "96vw" : "min(1100px, 92vw)",
686
+ maxWidth: "96vw",
687
+ }}
688
+ >
689
+ <SolidDialogBody>
690
+ {useCustomEditor ? (
691
+ <CustomEditor
692
+ nodeType={nodeType}
693
+ value={isFullNodeMode ? nodeDraft : draft}
694
+ nodeValue={nodeDraft}
695
+ configuration={draft}
696
+ onChange={isFullNodeMode ? handleNodeChange : setDraft}
697
+ readOnly={readOnly}
698
+ />
699
+ ) : isFullNodeMode ? (
700
+ <WorkflowNodeFullEditor
701
+ nodeType={nodeType}
702
+ value={nodeDraft}
703
+ onChange={handleNodeChange}
704
+ readOnly={readOnly}
705
+ />
706
+ ) : (
707
+ <WorkflowNodeSchemaEditor
708
+ nodeType={nodeType}
709
+ value={draft}
710
+ onChange={(nextValue) => {
711
+ setDraft(nextValue);
712
+ onChange?.(nextValue);
713
+ }}
714
+ onSubmit={(nextValue) => {
715
+ setDraft(nextValue);
716
+ onSubmit?.(nextValue);
717
+ }}
718
+ readOnly={readOnly}
719
+ />
720
+ )}
721
+ </SolidDialogBody>
722
+ {!readOnly && (onSubmit || onNodeSubmit) ? (
723
+ <SolidDialogFooter>
724
+ <SolidButton variant="secondary" onClick={() => onOpenChange(false)}>
725
+ Cancel
726
+ </SolidButton>
727
+ <SolidButton
728
+ onClick={() => {
729
+ if (isFullNodeMode) {
730
+ onNodeSubmit?.(nodeDraft);
731
+ } else {
732
+ onSubmit?.(draft);
733
+ }
734
+ }}
735
+ >
736
+ Save
737
+ </SolidButton>
738
+ </SolidDialogFooter>
739
+ ) : null}
740
+ </SolidDialog>
741
+ );
742
+ }
743
+
744
+ export function WorkflowNodePalette({
745
+ nodeTypes,
746
+ value,
747
+ onSelect,
748
+ className,
749
+ }: WorkflowNodePaletteProps) {
750
+ const [query, setQuery] = React.useState("");
751
+
752
+ const filteredNodeTypes = nodeTypes.filter((nodeType) => {
753
+ const haystack = [
754
+ nodeType.type,
755
+ nodeType.label,
756
+ nodeType.description,
757
+ nodeType.category,
758
+ nodeType.subcategory,
759
+ ...(nodeType.tags ?? []),
760
+ ...(nodeType.authoring?.searchableText ?? []),
761
+ ]
762
+ .filter(Boolean)
763
+ .join(" ")
764
+ .toLowerCase();
765
+
766
+ return haystack.includes(query.trim().toLowerCase());
767
+ });
768
+
769
+ return (
770
+ <div className={className} style={{ display: "grid", gap: "1rem" }}>
771
+ <SolidInput
772
+ value={query}
773
+ onChange={(event) => setQuery(event.target.value)}
774
+ placeholder="Search node types"
775
+ />
776
+ <div style={{ display: "grid", gap: "0.75rem" }}>
777
+ {filteredNodeTypes.map((nodeType) => (
778
+ <button
779
+ key={nodeType.type}
780
+ type="button"
781
+ onClick={() => onSelect?.(nodeType)}
782
+ style={{
783
+ textAlign: "left",
784
+ border: value === nodeType.type
785
+ ? "1px solid var(--primary-color, #2563eb)"
786
+ : "1px solid var(--surface-border, #e5e7eb)",
787
+ borderRadius: "0.75rem",
788
+ padding: "0.9rem 1rem",
789
+ background: "var(--surface-card, #fff)",
790
+ display: "grid",
791
+ gap: "0.5rem",
792
+ cursor: "pointer",
793
+ }}
794
+ >
795
+ <div style={{ display: "flex", gap: "0.5rem", alignItems: "center", flexWrap: "wrap" }}>
796
+ <strong>{nodeType.label ?? nodeType.type}</strong>
797
+ {nodeType.category ? <SolidTag>{nodeType.category}</SolidTag> : null}
798
+ <SolidTag>{nodeType.kind}</SolidTag>
799
+ </div>
800
+ {nodeType.description ? (
801
+ <div style={{ opacity: 0.8 }}>{nodeType.description}</div>
802
+ ) : null}
803
+ </button>
804
+ ))}
805
+ </div>
806
+ </div>
807
+ );
808
+ }