@solidxai/core-ui 0.1.20-beta.0 → 0.1.20-beta.1

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 (252) hide show
  1. package/dist/components/common/Link.d.ts.map +1 -1
  2. package/dist/components/common/Link.js +2 -1
  3. package/dist/components/common/Link.js.map +1 -1
  4. package/dist/components/common/Link.tsx +2 -1
  5. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts +1 -0
  6. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
  7. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +109 -23
  8. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  9. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +155 -34
  10. package/dist/components/core/chatter/SolidChatter.js +2 -2
  11. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  12. package/dist/components/core/chatter/SolidChatter.tsx +2 -2
  13. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +20 -19
  14. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  15. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +16 -16
  16. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -1
  17. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +36 -9
  18. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -1
  19. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +78 -7
  20. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +1 -0
  21. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -1
  22. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +1 -1
  23. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -1
  24. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +1 -1
  25. package/dist/components/core/extension/solid-core/moduleMetadata/list/RestoreModulePackageRowAction.d.ts +4 -0
  26. package/dist/components/core/extension/solid-core/moduleMetadata/list/RestoreModulePackageRowAction.d.ts.map +1 -0
  27. package/dist/components/core/extension/solid-core/moduleMetadata/list/RestoreModulePackageRowAction.js +131 -0
  28. package/dist/components/core/extension/solid-core/moduleMetadata/list/RestoreModulePackageRowAction.js.map +1 -0
  29. package/dist/components/core/extension/solid-core/moduleMetadata/list/RestoreModulePackageRowAction.tsx +151 -0
  30. package/dist/components/core/extension/solid-core/moduleMetadata/list/UpdateModulePackageRowAction.d.ts +4 -0
  31. package/dist/components/core/extension/solid-core/moduleMetadata/list/UpdateModulePackageRowAction.d.ts.map +1 -0
  32. package/dist/components/core/extension/solid-core/moduleMetadata/list/UpdateModulePackageRowAction.js +13 -0
  33. package/dist/components/core/extension/solid-core/moduleMetadata/list/UpdateModulePackageRowAction.js.map +1 -0
  34. package/dist/components/core/extension/solid-core/moduleMetadata/list/UpdateModulePackageRowAction.tsx +20 -0
  35. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  36. package/dist/components/core/form/SolidFormView.js +4 -0
  37. package/dist/components/core/form/SolidFormView.js.map +1 -1
  38. package/dist/components/core/form/SolidFormView.tsx +4 -0
  39. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  40. package/dist/components/core/kanban/SolidKanbanView.js +50 -15
  41. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  42. package/dist/components/core/kanban/SolidKanbanView.tsx +22 -3
  43. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  44. package/dist/components/core/list/SolidListView.js +16 -3
  45. package/dist/components/core/list/SolidListView.js.map +1 -1
  46. package/dist/components/core/list/SolidListView.tsx +16 -2
  47. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  48. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +4 -1
  49. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  50. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +4 -1
  51. package/dist/components/core/module/ModulePackageDialog.css +102 -0
  52. package/dist/components/core/module/ModulePackageDialog.d.ts +2 -1
  53. package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -1
  54. package/dist/components/core/module/ModulePackageDialog.js +216 -68
  55. package/dist/components/core/module/ModulePackageDialog.js.map +1 -1
  56. package/dist/components/core/module/ModulePackageDialog.tsx +356 -76
  57. package/dist/components/core/solid-agent/SolidAgentChat.d.ts.map +1 -1
  58. package/dist/components/core/solid-agent/SolidAgentChat.js +9 -3
  59. package/dist/components/core/solid-agent/SolidAgentChat.js.map +1 -1
  60. package/dist/components/core/solid-agent/SolidAgentChat.tsx +9 -4
  61. package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts.map +1 -1
  62. package/dist/components/core/solid-agent/SolidAgentMarkdown.js +25 -6
  63. package/dist/components/core/solid-agent/SolidAgentMarkdown.js.map +1 -1
  64. package/dist/components/core/solid-agent/SolidAgentMarkdown.tsx +15 -1
  65. package/dist/components/core/solid-agent/client/agentRuntime.d.ts +5 -0
  66. package/dist/components/core/solid-agent/client/agentRuntime.d.ts.map +1 -1
  67. package/dist/components/core/solid-agent/client/agentRuntime.js +77 -20
  68. package/dist/components/core/solid-agent/client/agentRuntime.js.map +1 -1
  69. package/dist/components/core/solid-agent/client/agentRuntime.ts +29 -1
  70. package/dist/components/core/solid-agent/client/agentSocket.d.ts +5 -1
  71. package/dist/components/core/solid-agent/client/agentSocket.d.ts.map +1 -1
  72. package/dist/components/core/solid-agent/client/agentSocket.js +27 -4
  73. package/dist/components/core/solid-agent/client/agentSocket.js.map +1 -1
  74. package/dist/components/core/solid-agent/client/agentSocket.ts +14 -3
  75. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js +2 -2
  76. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js.map +1 -1
  77. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.tsx +5 -5
  78. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts +2 -0
  79. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts.map +1 -1
  80. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js +2 -2
  81. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js.map +1 -1
  82. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.ts +4 -4
  83. package/dist/components/core/solid-agent/thread/AgentThread.d.ts.map +1 -1
  84. package/dist/components/core/solid-agent/thread/AgentThread.js +61 -26
  85. package/dist/components/core/solid-agent/thread/AgentThread.js.map +1 -1
  86. package/dist/components/core/solid-agent/thread/AgentThread.tsx +74 -40
  87. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts +2 -1
  88. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts.map +1 -1
  89. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js +2 -1
  90. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js.map +1 -1
  91. package/dist/components/core/solid-agent/thread/SolidAgentChatItem.tsx +3 -1
  92. package/dist/components/core/solid-agent/types.d.ts +3 -0
  93. package/dist/components/core/solid-agent/types.d.ts.map +1 -1
  94. package/dist/components/core/solid-agent/types.js +0 -9
  95. package/dist/components/core/solid-agent/types.js.map +1 -1
  96. package/dist/components/core/solid-agent/types.ts +4 -2
  97. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts +1 -1
  98. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts.map +1 -1
  99. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js +5 -2
  100. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js.map +1 -1
  101. package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.tsx +11 -5
  102. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js +3 -0
  103. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js.map +1 -1
  104. package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.tsx +4 -0
  105. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js +3 -0
  106. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js.map +1 -1
  107. package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.tsx +4 -0
  108. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js +3 -0
  109. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js.map +1 -1
  110. package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.tsx +4 -0
  111. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js +3 -0
  112. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js.map +1 -1
  113. package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.tsx +4 -0
  114. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js +3 -0
  115. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js.map +1 -1
  116. package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.tsx +4 -0
  117. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js +3 -0
  118. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js.map +1 -1
  119. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.tsx +4 -0
  120. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js +3 -0
  121. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js.map +1 -1
  122. package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.tsx +4 -0
  123. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js +3 -0
  124. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js.map +1 -1
  125. package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.tsx +4 -0
  126. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js +3 -0
  127. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js.map +1 -1
  128. package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.tsx +4 -0
  129. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js +19 -0
  130. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js.map +1 -1
  131. package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.tsx +20 -0
  132. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js +3 -0
  133. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js.map +1 -1
  134. package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.tsx +4 -0
  135. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js +3 -0
  136. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js.map +1 -1
  137. package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.tsx +4 -0
  138. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js +3 -0
  139. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js.map +1 -1
  140. package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.tsx +4 -0
  141. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js +3 -0
  142. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js.map +1 -1
  143. package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.tsx +4 -0
  144. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js +3 -0
  145. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js.map +1 -1
  146. package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.tsx +4 -0
  147. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js +3 -0
  148. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js.map +1 -1
  149. package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.tsx +4 -0
  150. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js +3 -0
  151. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js.map +1 -1
  152. package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.tsx +4 -0
  153. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js +3 -0
  154. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js.map +1 -1
  155. package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.tsx +4 -0
  156. package/dist/components/core/solid-agent/widgets/solidChatWidgets.module.css +9 -1
  157. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  158. package/dist/components/core/users/CreateUser.js +23 -8
  159. package/dist/components/core/users/CreateUser.js.map +1 -1
  160. package/dist/components/core/users/CreateUser.tsx +10 -6
  161. package/dist/components/layout/AdminTopHeader.js +2 -2
  162. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  163. package/dist/components/layout/AdminTopHeader.tsx +2 -2
  164. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  165. package/dist/components/layout/AppSidebar.js +21 -5
  166. package/dist/components/layout/AppSidebar.js.map +1 -1
  167. package/dist/components/layout/AppSidebar.tsx +24 -6
  168. package/dist/components/layout/SolidAiStudioLayout.d.ts.map +1 -1
  169. package/dist/components/layout/SolidAiStudioLayout.js +3 -4
  170. package/dist/components/layout/SolidAiStudioLayout.js.map +1 -1
  171. package/dist/components/layout/SolidAiStudioLayout.tsx +3 -4
  172. package/dist/components/layout/user-profile-menu.js +10 -10
  173. package/dist/components/layout/user-profile-menu.js.map +1 -1
  174. package/dist/components/layout/user-profile-menu.tsx +3 -3
  175. package/dist/components/shad-cn-ui/SolidLightbox.d.ts +2 -1
  176. package/dist/components/shad-cn-ui/SolidLightbox.d.ts.map +1 -1
  177. package/dist/components/shad-cn-ui/SolidLightbox.js +11 -4
  178. package/dist/components/shad-cn-ui/SolidLightbox.js.map +1 -1
  179. package/dist/components/shad-cn-ui/SolidLightbox.tsx +14 -1
  180. package/dist/helpers/modelViewPersistence.d.ts +2 -0
  181. package/dist/helpers/modelViewPersistence.d.ts.map +1 -1
  182. package/dist/helpers/modelViewPersistence.js +72 -0
  183. package/dist/helpers/modelViewPersistence.js.map +1 -1
  184. package/dist/helpers/modelViewPersistence.ts +79 -0
  185. package/dist/helpers/registry.d.ts +6 -2
  186. package/dist/helpers/registry.d.ts.map +1 -1
  187. package/dist/helpers/registry.js +68 -3
  188. package/dist/helpers/registry.js.map +1 -1
  189. package/dist/helpers/registry.ts +62 -4
  190. package/dist/hooks/useModelsDevModels.d.ts +43 -0
  191. package/dist/hooks/useModelsDevModels.d.ts.map +1 -0
  192. package/dist/hooks/useModelsDevModels.js +81 -0
  193. package/dist/hooks/useModelsDevModels.js.map +1 -0
  194. package/dist/hooks/useModelsDevModels.ts +106 -0
  195. package/dist/hooks/useRouter.d.ts.map +1 -1
  196. package/dist/hooks/useRouter.js +3 -2
  197. package/dist/hooks/useRouter.js.map +1 -1
  198. package/dist/hooks/useRouter.ts +3 -2
  199. package/dist/index.d.ts +2 -2
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +1 -1
  202. package/dist/index.js.map +1 -1
  203. package/dist/index.ts +4 -1
  204. package/dist/modules/solidUiModule.d.ts +3 -2
  205. package/dist/modules/solidUiModule.d.ts.map +1 -1
  206. package/dist/modules/solidUiModule.js +1 -1
  207. package/dist/modules/solidUiModule.js.map +1 -1
  208. package/dist/modules/solidUiModule.ts +5 -1
  209. package/dist/redux/api/moduleApi.d.ts +12 -2
  210. package/dist/redux/api/moduleApi.d.ts.map +1 -1
  211. package/dist/redux/api/moduleApi.js +33 -3
  212. package/dist/redux/api/moduleApi.js.map +1 -1
  213. package/dist/redux/api/moduleApi.ts +17 -2
  214. package/dist/redux/api/solidChatterMessageApi.d.ts +3 -1
  215. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  216. package/dist/redux/api/solidChatterMessageApi.js +9 -1
  217. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  218. package/dist/redux/api/solidChatterMessageApi.ts +9 -1
  219. package/dist/redux/store/defaultStoreConfig.d.ts +9 -1
  220. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  221. package/dist/resources/globals.css +30 -0
  222. package/dist/resources/solid-custom.css +10 -6
  223. package/dist/resources/solid-tailwind-generated.css +1 -1
  224. package/dist/routes/AppEventListener.js +1 -1
  225. package/dist/routes/AppEventListener.js.map +1 -1
  226. package/dist/routes/AppEventListener.tsx +1 -1
  227. package/dist/routes/pages/admin/core/AgentPersonaHistory.css +130 -0
  228. package/dist/routes/pages/admin/core/AgentPersonaHistory.d.ts +7 -0
  229. package/dist/routes/pages/admin/core/AgentPersonaHistory.d.ts.map +1 -0
  230. package/dist/routes/pages/admin/core/AgentPersonaHistory.js +228 -0
  231. package/dist/routes/pages/admin/core/AgentPersonaHistory.js.map +1 -0
  232. package/dist/routes/pages/admin/core/AgentPersonaHistory.tsx +234 -0
  233. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.css +6 -14
  234. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts.map +1 -1
  235. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js +186 -146
  236. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js.map +1 -1
  237. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.tsx +170 -118
  238. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.d.ts +2 -0
  239. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.d.ts.map +1 -0
  240. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.js +108 -0
  241. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.js.map +1 -0
  242. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.tsx +96 -0
  243. package/dist/routes/solidRoutes.d.ts.map +1 -1
  244. package/dist/routes/solidRoutes.js +2 -0
  245. package/dist/routes/solidRoutes.js.map +1 -1
  246. package/dist/routes/solidRoutes.tsx +2 -0
  247. package/dist/types/extension-registry.d.ts +12 -0
  248. package/dist/types/extension-registry.d.ts.map +1 -1
  249. package/dist/types/extension-registry.js.map +1 -1
  250. package/dist/types/extension-registry.ts +15 -0
  251. package/dist/types/solid-core.d.ts +2 -0
  252. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ModulePackageDialog.js","sourceRoot":"","sources":["../../../../src/components/core/module/ModulePackageDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { FileArchive, FolderTree, RefreshCw, Sparkles, UploadCloud, X } from \"lucide-react\";\nimport {\n useConfirmModulePackageImportMutation,\n useDismissModulePackageImportMutation,\n useLazyGetModulePackageImportStatusQuery,\n useRunModulePackageBuildMutation,\n useRunModulePackageSeedMutation,\n useValidateModulePackageImportMutation,\n} from \"../../../redux/api/moduleApi\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDispatch } from \"react-redux\";\nimport {\n SolidButton,\n SolidCheckbox,\n SolidDialog,\n SolidDialogBody,\n SolidDialogDescription,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n SolidSpinner,\n} from \"../../shad-cn-ui\";\nimport \"./ModulePackageDialog.css\";\n\ntype ModulePackageDialogProps = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onImported?: () => void;\n};\n\ntype ModulePackageImportContentProps = {\n onClose: () => void;\n onImported?: () => void;\n initialTransactionKey?: string | null;\n autoResume?: boolean;\n};\n\ntype StepStatus = \"pending\" | \"running\" | \"success\" | \"warning\" | \"error\";\ntype StepKey = \"preview\" | \"import\" | \"build\" | \"seed\";\n\ntype StepState = {\n title: string;\n description: string;\n status: StepStatus;\n output?: string;\n};\n\ntype StepMap = Record<StepKey, StepState>;\n\nconst STEP_ORDER: StepKey[] = [\"preview\", \"import\", \"build\", \"seed\"];\n\nfunction createInitialSteps(): StepMap {\n return {\n preview: {\n title: \"Preview\",\n description: \"Upload a `.sldx` archive to validate it and preview its contents automatically.\",\n status: \"pending\",\n },\n import: {\n title: \"Import\",\n description: \"Import the files locally. This may restart the UI and API, dismiss the popup, and require a page refresh before you continue.\",\n status: \"pending\",\n },\n build: {\n title: \"Build\",\n description: \"After the services restart and you refresh this module list page, continue with the build step.\",\n status: \"pending\",\n },\n seed: {\n title: \"Seed\",\n description: \"Seed the imported module after the build step completes.\",\n status: \"pending\",\n },\n };\n}\n\nfunction getErrorMessage(error: any): string {\n const responseData = error?.data;\n if (typeof responseData?.message === \"string\") return responseData.message;\n if (Array.isArray(responseData?.message)) return responseData.message.join(\", \");\n if (typeof responseData?.error === \"string\") return responseData.error;\n if (typeof error?.error === \"string\") return error.error;\n if (typeof error?.message === \"string\") return error.message;\n return \"Something went wrong while processing the module package.\";\n}\n\nfunction formatBytes(bytes: number) {\n if (!bytes) return \"0 B\";\n const units = [\"B\", \"KB\", \"MB\", \"GB\"];\n const exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);\n const value = bytes / Math.pow(1024, exponent);\n return `${value.toFixed(exponent === 0 ? 0 : 2)} ${units[exponent]}`;\n}\n\nfunction isResumableModulePackageStatus(status?: string | null) {\n return [\n \"import_running\",\n \"awaiting_restart\",\n \"build_running\",\n \"build_failed\",\n \"build_succeeded\",\n \"seed_running\",\n \"seed_failed\",\n ].includes(String(status ?? \"\"));\n}\n\nfunction getBuildStepStatusFromTransaction(transaction: any): StepStatus {\n if (transaction?.status === \"build_running\") return \"warning\";\n if (transaction?.outputs?.build) {\n return String(transaction.outputs.build).includes(\"[failed]\") ? \"warning\" : \"success\";\n }\n return \"pending\";\n}\n\nfunction hydrateStepsFromTransaction(transaction: any): StepMap {\n const nextSteps = createInitialSteps();\n const status = String(transaction?.status ?? \"\");\n\n if (transaction?.preview || transaction?.validation) {\n nextSteps.preview = {\n ...nextSteps.preview,\n status: transaction?.validation?.valid ? \"success\" : \"warning\",\n description: transaction?.validation?.valid\n ? \"Archive validated and ready for import.\"\n : \"Archive preview loaded, but the package has validation issues to fix first.\",\n };\n }\n\n if (\n transaction?.outputs?.import ||\n [\"awaiting_restart\", \"build_running\", \"build_failed\", \"build_succeeded\", \"seed_running\", \"seed_failed\", \"completed\"].includes(status)\n ) {\n nextSteps.import = {\n ...nextSteps.import,\n status: \"success\",\n description: \"Archive extracted. Wait for the UI and API to finish restarting, then refresh this page to continue.\",\n output: transaction?.outputs?.import ?? undefined,\n };\n }\n\n const buildStatus = getBuildStepStatusFromTransaction(transaction);\n if (buildStatus !== \"pending\") {\n nextSteps.build = {\n ...nextSteps.build,\n status: buildStatus,\n description:\n status === \"build_running\"\n ? \"Build was previously started. Use Build Now to run it again once you are ready.\"\n : buildStatus === \"warning\"\n ? transaction?.errorMessage || \"The build step completed with warnings.\"\n : \"Both build targets completed successfully.\",\n output: transaction?.outputs?.build ?? undefined,\n };\n } else if (status === \"awaiting_restart\") {\n nextSteps.build = {\n ...nextSteps.build,\n status: \"pending\",\n description: \"Import completed. Once the UI and API are back, refresh this module list page and continue with Build Now.\",\n };\n }\n\n if (status === \"seed_running\") {\n nextSteps.seed = {\n ...nextSteps.seed,\n status: \"warning\",\n description: \"Seed was previously started. Use Seed to run it again once you are ready.\",\n output: transaction?.outputs?.seed ?? undefined,\n };\n } else if (status === \"seed_failed\") {\n nextSteps.seed = {\n ...nextSteps.seed,\n status: \"warning\",\n description: transaction?.errorMessage || \"The seed step finished with warnings.\",\n output: transaction?.outputs?.seed ?? undefined,\n };\n } else if (status === \"completed\") {\n nextSteps.seed = {\n ...nextSteps.seed,\n status: \"success\",\n description: \"Module metadata seeding completed successfully.\",\n output: transaction?.outputs?.seed ?? undefined,\n };\n }\n\n return nextSteps;\n}\n\nfunction getSuggestedStepFromSteps(steps: StepMap, hasPreview: boolean, isArchiveValid: boolean): StepKey {\n if (!hasPreview || !isArchiveValid) return \"preview\";\n if (steps.import.status !== \"success\") return \"import\";\n if (steps.build.status !== \"success\" && steps.build.status !== \"warning\") return \"build\";\n if (steps.seed.status !== \"success\" && steps.seed.status !== \"warning\") return \"seed\";\n return \"seed\";\n}\n\nfunction StepStatusIcon({ status }: { status: StepStatus }) {\n if (status === \"running\") {\n return <SolidSpinner size={16} />;\n }\n\n if (status === \"success\") {\n return <SolidIcon name=\"si-check-circle\" />;\n }\n\n if (status === \"warning\" || status === \"error\") {\n return <SolidIcon name=\"si-exclamation-triangle\" />;\n }\n\n return <span className=\"solid-module-package-step-dot\" aria-hidden=\"true\" />;\n}\n\nexport function ModulePackageDialog({ open, onOpenChange, onImported }: ModulePackageDialogProps) {\n return (\n <SolidDialog\n open={open}\n onOpenChange={(next) => {\n if (!next) {\n onOpenChange(false);\n }\n }}\n className=\"solid-module-package-dialog\"\n dismissible={false}\n showHeader={false}\n >\n {open ? <ModulePackageImportContent onClose={() => onOpenChange(false)} onImported={onImported} /> : null}\n </SolidDialog>\n );\n}\n\nexport function ModulePackageImportContent({ onClose, onImported, initialTransactionKey = null, autoResume = false }: ModulePackageImportContentProps) {\n const dispatch = useDispatch();\n const [selectedFile, setSelectedFile] = useState<File | null>(null);\n const [previewResponse, setPreviewResponse] = useState<any | null>(null);\n const [transactionKey, setTransactionKey] = useState<string | null>(null);\n const [overwriteExisting, setOverwriteExisting] = useState(false);\n const [steps, setSteps] = useState<StepMap>(() => createInitialSteps());\n const [selectedStep, setSelectedStep] = useState<StepKey>(\"preview\");\n const [finalSummary, setFinalSummary] = useState<string | null>(null);\n const [isPreviewing, setIsPreviewing] = useState(false);\n const [isProcessing, setIsProcessing] = useState(false);\n\n const [validateModulePackageImport] = useValidateModulePackageImportMutation();\n const [confirmModulePackageImport] = useConfirmModulePackageImportMutation();\n const [dismissModulePackageImport] = useDismissModulePackageImportMutation();\n const [fetchModulePackageImportStatus] = useLazyGetModulePackageImportStatusQuery();\n const [runModulePackageBuild] = useRunModulePackageBuildMutation();\n const [runModulePackageSeed] = useRunModulePackageSeedMutation();\n\n const hasResumedTransactionRef = useRef(false);\n const lastAutoPreviewFileRef = useRef<string | null>(null);\n\n const updateStep = useCallback((key: StepKey, nextState: Partial<StepState>) => {\n setSteps((current) => ({\n ...current,\n [key]: {\n ...current[key],\n ...nextState,\n },\n }));\n }, []);\n\n const { getRootProps, getInputProps, open: openFilePicker, isDragActive } = useDropzone({\n accept: {\n \"application/octet-stream\": [\".sldx\"],\n \"application/x-zip-compressed\": [\".sldx\"],\n \"application/zip\": [\".sldx\"],\n },\n multiple: false,\n noClick: true,\n noKeyboard: true,\n onDrop: (acceptedFiles) => {\n if (acceptedFiles[0]) {\n setSelectedFile(acceptedFiles[0]);\n }\n },\n });\n\n const isArchiveValid = Boolean(previewResponse?.validation?.valid);\n const hasConflicts = (previewResponse?.conflicts?.length ?? 0) > 0;\n const suggestedStep = getSuggestedStepFromSteps(steps, Boolean(previewResponse), isArchiveValid);\n\n const canImport = steps.preview.status !== \"pending\" && isArchiveValid && steps.import.status !== \"success\" && !isProcessing && !isPreviewing;\n const canRunBuild = steps.import.status === \"success\" && !isProcessing;\n const canRunSeed = (steps.build.status === \"success\" || steps.build.status === \"warning\") && !isProcessing;\n const canContinueFromPreview = Boolean(previewResponse) && isArchiveValid && !isPreviewing;\n\n const activeStep = useMemo<StepKey>(() => {\n if (selectedStep === \"seed\" && !(steps.build.status === \"success\" || steps.build.status === \"warning\" || steps.seed.status !== \"pending\")) {\n return suggestedStep;\n }\n\n if (selectedStep === \"build\" && !(steps.import.status === \"success\" || steps.build.status !== \"pending\")) {\n return suggestedStep;\n }\n\n if (selectedStep === \"import\" && !(isArchiveValid || steps.import.status !== \"pending\")) {\n return suggestedStep;\n }\n\n return selectedStep;\n }, [\n previewResponse,\n selectedStep,\n steps.build.status,\n steps.import.status,\n steps.seed.status,\n suggestedStep,\n ]);\n\n const completedSteps = STEP_ORDER.filter((stepKey) => steps[stepKey].status === \"success\").length;\n const maxUnlockedStepIndex = useMemo(() => {\n if (!previewResponse || !isArchiveValid) return 0;\n if (steps.import.status !== \"success\") return 1;\n if (steps.build.status !== \"success\" && steps.build.status !== \"warning\") return 2;\n return 3;\n }, [isArchiveValid, previewResponse, steps.build.status, steps.import.status]);\n\n const handlePreviewArchive = useCallback(async () => {\n if (!selectedFile) {\n return;\n }\n\n const formData = new FormData();\n formData.append(\"modulePackage\", selectedFile);\n\n try {\n setIsPreviewing(true);\n const response = await validateModulePackageImport(formData).unwrap();\n setPreviewResponse(response);\n setTransactionKey(response?.transactionKey ?? null);\n setOverwriteExisting(false);\n setFinalSummary(null);\n setSteps(hydrateStepsFromTransaction(response));\n setSelectedStep(\"preview\");\n dispatch(\n showToast({\n severity: response?.validation?.valid ? \"success\" : \"warn\",\n summary: response?.validation?.valid ? \"Archive validated\" : \"Archive needs attention\",\n detail: response?.validation?.valid\n ? \"Review the preview and continue with the import when you are ready.\"\n : \"The uploaded archive is missing one or more required SolidX validation markers.\",\n }),\n );\n } catch (error: any) {\n dispatch(showToast({ severity: \"error\", summary: \"Preview failed\", detail: getErrorMessage(error) }));\n } finally {\n setIsPreviewing(false);\n }\n }, [dispatch, selectedFile, validateModulePackageImport]);\n\n useEffect(() => {\n if (!selectedFile) {\n lastAutoPreviewFileRef.current = null;\n return;\n }\n\n const fileSignature = `${selectedFile.name}:${selectedFile.size}:${selectedFile.lastModified}`;\n if (lastAutoPreviewFileRef.current === fileSignature) {\n return;\n }\n\n lastAutoPreviewFileRef.current = fileSignature;\n void handlePreviewArchive();\n }, [handlePreviewArchive, selectedFile]);\n\n const executeBuildStep = useCallback(async (activeTransactionKey: string) => {\n updateStep(\"build\", {\n status: \"running\",\n description: \"Running `solidctl build` followed by `solidctl build --ui-only`.\",\n });\n\n const buildResponse = await runModulePackageBuild({\n transactionKey: activeTransactionKey,\n buildSolidApi: true,\n buildSolidUi: true,\n }).unwrap();\n\n const buildFailed = buildResponse?.status === \"build_failed\";\n updateStep(\"build\", {\n status: buildFailed ? \"warning\" : \"success\",\n description: buildFailed\n ? buildResponse?.errorMessage || \"The module was imported, but one or more build targets failed.\"\n : \"Both build targets completed successfully.\",\n output: buildResponse?.outputs?.build,\n });\n\n return buildResponse;\n }, [runModulePackageBuild, updateStep]);\n\n const executeSeedStep = useCallback(async (activeTransactionKey: string) => {\n updateStep(\"seed\", {\n status: \"running\",\n description: \"Running `solidctl seed --modules-to-seed` for the imported module.\",\n });\n\n const seedResponse = await runModulePackageSeed({\n transactionKey: activeTransactionKey,\n seedGlobalMetadata: false,\n }).unwrap();\n\n const seedFailed = seedResponse?.status === \"seed_failed\";\n updateStep(\"seed\", {\n status: seedFailed ? \"warning\" : \"success\",\n description: seedFailed\n ? seedResponse?.errorMessage || \"The seed step finished with warnings.\"\n : \"Module metadata seeding completed successfully.\",\n output: seedResponse?.outputs?.seed,\n });\n\n return seedResponse;\n }, [runModulePackageSeed, updateStep]);\n\n const handleRunBuild = useCallback(async () => {\n if (!transactionKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Missing transaction\", detail: \"Import the module before running the build step.\" }));\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n const buildResponse = await executeBuildStep(transactionKey);\n setPreviewResponse(buildResponse);\n setSelectedStep(\"seed\");\n setIsProcessing(false);\n } catch (error: any) {\n updateStep(\"build\", {\n status: \"error\",\n description: getErrorMessage(error),\n });\n setFinalSummary(\"The build step needs attention before you continue.\");\n setIsProcessing(false);\n }\n }, [dispatch, executeBuildStep, transactionKey, updateStep]);\n\n const handleRunSeed = useCallback(async () => {\n if (!transactionKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Missing transaction\", detail: \"Import the module before running the seed step.\" }));\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n const seedResponse = await executeSeedStep(transactionKey);\n setPreviewResponse(seedResponse);\n setSelectedStep(\"seed\");\n setIsProcessing(false);\n\n const buildFailed = steps.build.status === \"warning\" || String(previewResponse?.outputs?.build ?? \"\").includes(\"[failed]\");\n const seedFailed = seedResponse?.status === \"seed_failed\";\n\n if (!seedFailed) {\n onImported?.();\n }\n\n if (buildFailed && !seedFailed) {\n setFinalSummary(\"Module imported and seeded successfully, but the build step reported errors.\");\n return;\n }\n\n if (seedFailed) {\n setFinalSummary(\"Module imported, but the seed step needs attention.\");\n return;\n }\n\n setFinalSummary(\"Module import completed successfully.\");\n } catch (error: any) {\n updateStep(\"seed\", {\n status: \"error\",\n description: getErrorMessage(error),\n });\n setFinalSummary(\"The seed step needs attention before the workflow can be closed.\");\n setIsProcessing(false);\n }\n }, [dispatch, executeSeedStep, onImported, previewResponse?.outputs?.build, steps.build.status, transactionKey, updateStep]);\n\n useEffect(() => {\n if (!initialTransactionKey || hasResumedTransactionRef.current) {\n return;\n }\n\n hasResumedTransactionRef.current = true;\n\n const loadTransaction = async () => {\n try {\n const transaction = await fetchModulePackageImportStatus({ transactionKey: initialTransactionKey }).unwrap();\n const hydratedSteps = hydrateStepsFromTransaction(transaction);\n setPreviewResponse(transaction);\n setTransactionKey(transaction?.transactionKey ?? null);\n setSteps(hydratedSteps);\n setSelectedStep(getSuggestedStepFromSteps(hydratedSteps, Boolean(transaction?.preview || transaction?.validation), Boolean(transaction?.validation?.valid)));\n\n if (transaction?.status === \"completed\") {\n setFinalSummary(\"Module import completed successfully.\");\n return;\n }\n\n if (transaction?.status === \"seed_failed\") {\n setFinalSummary(\"Module imported, but the seed step needs attention.\");\n return;\n }\n\n if (!autoResume || !isResumableModulePackageStatus(transaction?.status)) {\n return;\n }\n } catch (error: any) {\n dispatch(showToast({ severity: \"error\", summary: \"Unable to resume import\", detail: getErrorMessage(error) }));\n }\n };\n\n void loadTransaction();\n }, [autoResume, dispatch, fetchModulePackageImportStatus, initialTransactionKey]);\n\n const handleStartImport = async () => {\n if (!transactionKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Missing preview\", detail: \"Upload an archive and wait for preview to finish first.\" }));\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n updateStep(\"import\", {\n status: \"running\",\n description: \"Extracting the archive and placing files into `solid-api` and `solid-ui`.\",\n });\n\n const response = await confirmModulePackageImport({\n transactionKey,\n overwriteExisting,\n }).unwrap();\n\n updateStep(\"import\", {\n status: \"success\",\n description: \"Archive extracted. The local UI/API may restart now, so refresh this page once both services are back.\",\n output: response?.outputs?.import,\n });\n setPreviewResponse(response);\n setIsProcessing(false);\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Module imported\",\n detail: \"The module files were placed locally. Wait for the UI and API to restart, then refresh this module list page to continue with build and seed.\",\n }),\n );\n onClose();\n } catch (error: any) {\n updateStep(\"import\", {\n status: \"error\",\n description: getErrorMessage(error),\n });\n setFinalSummary(\"The module import could not be completed.\");\n setIsProcessing(false);\n }\n };\n\n const handleClose = () => {\n if (isProcessing) return;\n if (finalSummary && transactionKey) {\n void dismissModulePackageImport({ transactionKey });\n }\n onClose();\n };\n\n const renderPreviewContent = () => {\n return (\n <div className=\"solid-module-package-preview\">\n {!selectedFile ? (\n <div\n {...getRootProps({\n className: `solid-module-package-dropzone${isDragActive ? \" is-active\" : \"\"}`,\n })}\n >\n <input {...getInputProps()} />\n <div className=\"solid-module-package-dropzone__icon\">\n <UploadCloud size={22} />\n </div>\n <div className=\"solid-module-package-dropzone__copy\">\n <div className=\"solid-module-package-dropzone__title\">Upload `.sldx` archive</div>\n <p>Choose a packaged SolidX module archive from the local file system. Preview starts automatically after upload.</p>\n </div>\n <div className=\"solid-module-package-dropzone__actions\">\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={(event) => {\n event.stopPropagation();\n openFilePicker();\n }}\n >\n Browse archive\n </SolidButton>\n </div>\n </div>\n ) : (\n <div className=\"solid-module-package-file-card\">\n <div className=\"solid-module-package-file-card__main\">\n <div className=\"solid-module-package-file-card__icon\">\n <FileArchive size={18} />\n </div>\n <div>\n <div className=\"solid-module-package-file-card__name\">{selectedFile.name}</div>\n <div className=\"solid-module-package-file-card__meta\">\n {formatBytes(selectedFile.size)}\n {isPreviewing ? \" • Previewing archive...\" : \"\"}\n </div>\n </div>\n </div>\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"ghost\"\n onClick={() => {\n setSelectedFile(null);\n setPreviewResponse(null);\n setTransactionKey(null);\n setOverwriteExisting(false);\n setFinalSummary(null);\n setSelectedStep(\"preview\");\n setSteps(createInitialSteps());\n }}\n disabled={isProcessing}\n >\n Remove\n </SolidButton>\n </div>\n )}\n\n {!previewResponse ? (\n <div className=\"solid-module-package-empty\">\n {isPreviewing ? <SolidSpinner size={18} /> : <FolderTree size={18} />}\n <p>\n {isPreviewing\n ? \"Reading the archive and validating the SolidX markers.\"\n : \"Upload an archive to start the automatic preview and validation flow.\"}\n </p>\n </div>\n ) : (\n <>\n <div className=\"solid-module-package-metrics\">\n <div className=\"solid-module-package-metric\">\n <span className=\"solid-module-package-metric__label\">Module</span>\n <span className=\"solid-module-package-metric__value\">{previewResponse?.preview?.module?.name || \"Unknown\"}</span>\n </div>\n <div className=\"solid-module-package-metric\">\n <span className=\"solid-module-package-metric__label\">solid-api files</span>\n <span className=\"solid-module-package-metric__value\">{previewResponse?.preview?.contentsSummary?.solidApiEntries ?? 0}</span>\n </div>\n <div className=\"solid-module-package-metric\">\n <span className=\"solid-module-package-metric__label\">solid-ui files</span>\n <span className=\"solid-module-package-metric__value\">{previewResponse?.preview?.contentsSummary?.solidUiEntries ?? 0}</span>\n </div>\n </div>\n\n <div className=\"solid-module-package-checklist\">\n <div className=\"solid-module-package-checklist__section\">\n <div className=\"solid-module-package-checklist__title\">Required markers</div>\n <ul className=\"solid-module-package-inline-list\">\n <li>{previewResponse?.preview?.requiredPaths?.metadataPath}</li>\n <li>{previewResponse?.preview?.requiredPaths?.apiModulePath}</li>\n <li>{previewResponse?.preview?.requiredPaths?.uiModulePath}</li>\n </ul>\n </div>\n\n {(previewResponse?.validation?.warnings?.length ?? 0) > 0 ? (\n <div className=\"solid-module-package-notice is-warning\">\n <div className=\"solid-module-package-notice__title\">Warnings</div>\n <ul className=\"solid-module-package-inline-list\">\n {previewResponse.validation.warnings.map((warning: string) => (\n <li key={warning}>{warning}</li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {(previewResponse?.validation?.errors?.length ?? 0) > 0 ? (\n <div className=\"solid-module-package-notice is-danger\">\n <div className=\"solid-module-package-notice__title\">Validation issues</div>\n <ul className=\"solid-module-package-inline-list\">\n {previewResponse.validation.errors.map((error: string) => (\n <li key={error}>{error}</li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {hasConflicts ? (\n <div className=\"solid-module-package-notice is-warning\">\n <div className=\"solid-module-package-notice__title\">Existing files detected</div>\n <ul className=\"solid-module-package-inline-list\">\n {previewResponse.conflicts.map((conflict: string) => (\n <li key={conflict}>{conflict}</li>\n ))}\n </ul>\n <SolidCheckbox\n checked={overwriteExisting}\n onChange={(event) => setOverwriteExisting(event.currentTarget.checked)}\n label=\"Overwrite the existing module folders during import\"\n />\n </div>\n ) : null}\n </div>\n\n <div className=\"solid-module-package-tree\">\n {(previewResponse?.preview?.fileTree ?? []).map((entry: string) => (\n <div key={entry} className=\"solid-module-package-tree__row\">\n {entry}\n </div>\n ))}\n </div>\n </>\n )}\n </div>\n );\n };\n\n const renderActiveStepCta = () => {\n if (activeStep === \"preview\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n onClick={() => setSelectedStep(\"import\")}\n disabled={!canContinueFromPreview}\n rightIcon={<Sparkles size={14} />}\n >\n Continue to import\n </SolidButton>\n );\n }\n\n if (activeStep === \"import\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n onClick={handleStartImport}\n disabled={!canImport}\n loading={isProcessing && steps.import.status === \"running\"}\n leftIcon={<Sparkles size={14} />}\n >\n Import Module\n </SolidButton>\n );\n }\n\n if (activeStep === \"build\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={handleRunBuild}\n disabled={!canRunBuild}\n loading={isProcessing && steps.build.status === \"running\"}\n >\n {steps.build.status === \"success\" || steps.build.status === \"warning\" ? \"Build Again\" : \"Build Now\"}\n </SolidButton>\n );\n }\n\n if (activeStep === \"seed\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={handleRunSeed}\n disabled={!canRunSeed}\n loading={isProcessing && steps.seed.status === \"running\"}\n >\n {steps.seed.status === \"success\" || steps.seed.status === \"warning\" ? \"Seed Again\" : \"Seed\"}\n </SolidButton>\n );\n }\n\n return null;\n };\n\n const renderActiveStepContent = () => {\n if (activeStep === \"preview\") {\n return renderPreviewContent();\n }\n\n if (activeStep === \"import\") {\n return (\n <div className=\"solid-module-package-step-stack\">\n <div className=\"solid-module-package-notice is-warning\">\n <div className=\"solid-module-package-notice__title\">What happens after import</div>\n <ul className=\"solid-module-package-inline-list\">\n <li>Depending on the files in this archive, both the UI and API services may restart immediately.</li>\n <li>This popup may get dismissed as part of that restart.</li>\n <li>Wait for both services to come back, then refresh this module list page to continue with build and seed.</li>\n </ul>\n </div>\n {steps.import.output ? <pre className=\"solid-module-package-step__output\">{steps.import.output}</pre> : null}\n </div>\n );\n }\n\n if (activeStep === \"build\" && steps.build.output) {\n return <pre className=\"solid-module-package-step__output\">{steps.build.output}</pre>;\n }\n\n if (activeStep === \"seed\" && steps.seed.output) {\n return <pre className=\"solid-module-package-step__output\">{steps.seed.output}</pre>;\n }\n\n return null;\n };\n\n return (\n <>\n <SolidDialogHeader className=\"solid-filter-dialog-head solid-module-package-dialog__header\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Import Module Package</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Upload a `.sldx` archive, let SolidX preview it automatically, then move through import, build, and seed.\n </SolidDialogDescription>\n </div>\n {!isProcessing ? (\n <button type=\"button\" className=\"solid-filter-dialog-close solid-radix-dialog-close\" aria-label=\"Close\" onClick={handleClose}>\n <X size={16} />\n </button>\n ) : null}\n </SolidDialogHeader>\n\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n\n <SolidDialogBody className=\"solid-filter-dialog-body solid-module-package-dialog__body\">\n <section className=\"solid-module-package-shell\">\n <div className=\"solid-module-package-panel solid-module-package-panel--wizard\">\n <div className=\"solid-module-package-stepper\">\n {STEP_ORDER.map((stepKey, index) => {\n const step = steps[stepKey];\n const isCurrent = activeStep === stepKey;\n const isDone = step.status === \"success\";\n const isWarning = step.status === \"warning\" || step.status === \"error\";\n const isUnlocked = index <= maxUnlockedStepIndex;\n\n return (\n <div\n key={stepKey}\n className={`solid-module-package-stepper__item${isCurrent ? \" is-current\" : \"\"}${isDone ? \" is-done\" : \"\"}${isWarning ? \" is-warning\" : \"\"}${isUnlocked ? \" is-clickable\" : \"\"}`}\n >\n <div className=\"solid-module-package-stepper__track\" />\n <button\n type=\"button\"\n className=\"solid-module-package-stepper__button\"\n onClick={() => setSelectedStep(stepKey)}\n disabled={!isUnlocked}\n >\n <div className=\"solid-module-package-stepper__node\">\n {isDone ? <SolidIcon name=\"si-check\" /> : <span>{index + 1}</span>}\n </div>\n <div className=\"solid-module-package-stepper__label\">{step.title}</div>\n <div className=\"solid-module-package-stepper__caption\">{step.description}</div>\n </button>\n </div>\n );\n })}\n </div>\n\n <div className=\"solid-module-package-stage\">\n <div className=\"solid-module-package-stage__meta\">\n <span>Step {STEP_ORDER.indexOf(activeStep) + 1} of {STEP_ORDER.length}</span>\n <span>{completedSteps} completed</span>\n </div>\n <div className=\"solid-module-package-stage__header\">\n <p>{steps[activeStep].description}</p>\n <div className={`solid-module-package-stage__status is-${steps[activeStep].status}`}>\n <StepStatusIcon status={steps[activeStep].status} />\n </div>\n </div>\n\n {renderActiveStepContent()}\n\n <div className=\"solid-module-package-stage__cta\">{renderActiveStepCta()}</div>\n </div>\n\n {finalSummary ? (\n <div className=\"solid-module-package-summary\">\n <span className=\"solid-module-package-summary__copy\">{finalSummary}</span>\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n leftIcon={<RefreshCw size={14} />}\n onClick={() => window.location.reload()}\n >\n Reload\n </SolidButton>\n </div>\n ) : null}\n </div>\n </section>\n </SolidDialogBody>\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"ModulePackageDialog.js","sourceRoot":"","sources":["../../../../src/components/core/module/ModulePackageDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { ArrowRight, FileArchive, FolderTree, RefreshCw, RotateCcw, Sparkles, UploadCloud, X } from \"lucide-react\";\nimport {\n useConfirmModulePackageImportMutation,\n useDismissModulePackageImportMutation,\n useLazyGetModulePackageImportStatusQuery,\n useRestoreModulePackageImportMutation,\n useRunModulePackageBuildMutation,\n useRunModulePackageSeedMutation,\n useValidateModulePackageImportMutation,\n} from \"../../../redux/api/moduleApi\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDispatch } from \"react-redux\";\nimport {\n SolidButton,\n SolidCheckbox,\n SolidDialog,\n SolidDialogBody,\n SolidDialogDescription,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n SolidSpinner,\n} from \"../../shad-cn-ui\";\nimport \"./ModulePackageDialog.css\";\n\ntype ModulePackageDialogProps = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onImported?: () => void;\n};\n\ntype ModulePackageImportContentProps = {\n onClose: () => void;\n onImported?: () => void;\n initialTransactionKey?: string | null;\n autoResume?: boolean;\n // Update this installed module: the uploaded package must be for it.\n targetModuleName?: string | null;\n};\n\ntype PackageMode = \"install\" | \"update\";\n\ntype StepStatus = \"pending\" | \"running\" | \"success\" | \"warning\" | \"error\";\ntype StepKey = \"preview\" | \"import\" | \"build\" | \"seed\";\n\ntype StepState = {\n title: string;\n description: string;\n status: StepStatus;\n output?: string;\n};\n\ntype StepMap = Record<StepKey, StepState>;\n\nconst STEP_ORDER: StepKey[] = [\"preview\", \"import\", \"build\", \"seed\"];\n\nconst VERSION_COMPARISONS: Record<string, { label: string; tone: \"neutral\" | \"warning\" | \"danger\" }> = {\n new: { label: \"New install\", tone: \"neutral\" },\n upgrade: { label: \"Upgrade\", tone: \"neutral\" },\n first_version: { label: \"First versioned release\", tone: \"neutral\" },\n same: { label: \"Reinstall\", tone: \"warning\" },\n downgrade: { label: \"Downgrade\", tone: \"danger\" },\n legacy_package: { label: \"Unversioned package\", tone: \"danger\" },\n};\n\nfunction formatVersionLabel(version?: string | null) {\n return version ? `v${version}` : \"unversioned\";\n}\n\nfunction getPackageMode(transaction: any, fallbackMode: PackageMode = \"install\"): PackageMode {\n return transaction?.mode ?? transaction?.preview?.mode ?? fallbackMode;\n}\n\nfunction getWorkflowLabels(transaction: any, fallbackMode: PackageMode = \"install\") {\n if (transaction?.restoredFromBackup) return { noun: \"restore\", past: \"restored\" };\n return getPackageMode(transaction, fallbackMode) === \"update\"\n ? { noun: \"update\", past: \"updated\" }\n : { noun: \"import\", past: \"imported\" };\n}\n\nfunction createInitialSteps(mode: PackageMode = \"install\"): StepMap {\n const isUpdate = mode === \"update\";\n return {\n preview: {\n title: \"Preview\",\n description: isUpdate\n ? \"Upload a `.sldx` archive of the new version to compare it with the installed module.\"\n : \"Upload a `.sldx` archive to validate it and preview its contents automatically.\",\n status: \"pending\",\n },\n import: {\n title: isUpdate ? \"Update\" : \"Import\",\n description: isUpdate\n ? \"Replace the module folders with the new version. The current folders are backed up first. This may restart the UI and API, dismiss the popup, and require a page refresh before you continue.\"\n : \"Import the files locally. This may restart the UI and API, dismiss the popup, and require a page refresh before you continue.\",\n status: \"pending\",\n },\n build: {\n title: \"Build\",\n description: \"After the services restart and you refresh this module list page, continue with the build step.\",\n status: \"pending\",\n },\n seed: {\n title: \"Seed\",\n description: isUpdate\n ? \"Seed the updated module after the build step completes.\"\n : \"Seed the imported module after the build step completes.\",\n status: \"pending\",\n },\n };\n}\n\nfunction getErrorMessage(error: any): string {\n const responseData = error?.data;\n if (typeof responseData?.message === \"string\") return responseData.message;\n if (Array.isArray(responseData?.message)) return responseData.message.join(\", \");\n if (typeof responseData?.error === \"string\") return responseData.error;\n if (typeof error?.error === \"string\") return error.error;\n if (typeof error?.message === \"string\") return error.message;\n return \"Something went wrong while processing the module package.\";\n}\n\nfunction formatBytes(bytes: number) {\n if (!bytes) return \"0 B\";\n const units = [\"B\", \"KB\", \"MB\", \"GB\"];\n const exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);\n const value = bytes / Math.pow(1024, exponent);\n return `${value.toFixed(exponent === 0 ? 0 : 2)} ${units[exponent]}`;\n}\n\nfunction isResumableModulePackageStatus(status?: string | null) {\n return [\n \"import_running\",\n \"awaiting_restart\",\n \"build_running\",\n \"build_failed\",\n \"build_succeeded\",\n \"seed_running\",\n \"seed_failed\",\n \"restore_running\",\n ].includes(String(status ?? \"\"));\n}\n\nfunction getBuildStepStatusFromTransaction(transaction: any): StepStatus {\n if (transaction?.status === \"build_running\") return \"warning\";\n if (transaction?.outputs?.build) {\n return String(transaction.outputs.build).includes(\"[failed]\") ? \"warning\" : \"success\";\n }\n return \"pending\";\n}\n\nfunction hydrateStepsFromTransaction(transaction: any, fallbackMode: PackageMode = \"install\"): StepMap {\n const mode = getPackageMode(transaction, fallbackMode);\n const nextSteps = createInitialSteps(mode);\n const status = String(transaction?.status ?? \"\");\n const { noun } = getWorkflowLabels(transaction, fallbackMode);\n\n if (transaction?.preview || transaction?.validation) {\n nextSteps.preview = {\n ...nextSteps.preview,\n status: transaction?.validation?.valid ? \"success\" : \"warning\",\n description: transaction?.validation?.valid\n ? \"Archive validated and ready for import.\"\n : \"Archive preview loaded, but the package has validation issues to fix first.\",\n };\n }\n\n if (\n status !== \"restore_running\" &&\n (transaction?.outputs?.import ||\n [\"awaiting_restart\", \"build_running\", \"build_failed\", \"build_succeeded\", \"seed_running\", \"seed_failed\", \"completed\"].includes(status))\n ) {\n nextSteps.import = {\n ...nextSteps.import,\n status: \"success\",\n description: transaction?.restoredFromBackup\n ? \"Previous version restored. Wait for the UI and API to finish restarting, then refresh this page to continue.\"\n : \"Archive extracted. Wait for the UI and API to finish restarting, then refresh this page to continue.\",\n output: [transaction?.outputs?.import, transaction?.outputs?.restore].filter(Boolean).join(\"\\n\\n\") || undefined,\n };\n } else if (status === \"restore_running\") {\n nextSteps.import = {\n ...nextSteps.import,\n status: \"warning\",\n description: \"Restoring the previous version did not finish. Use Restore again to complete it.\",\n output: transaction?.outputs?.import ?? undefined,\n };\n }\n\n const buildStatus = getBuildStepStatusFromTransaction(transaction);\n if (buildStatus !== \"pending\") {\n nextSteps.build = {\n ...nextSteps.build,\n status: buildStatus,\n description:\n status === \"build_running\"\n ? \"Build was previously started. Use Build Now to run it again once you are ready.\"\n : buildStatus === \"warning\"\n ? transaction?.errorMessage || \"The build step completed with warnings.\"\n : \"Both build targets completed successfully.\",\n output: transaction?.outputs?.build ?? undefined,\n };\n } else if (status === \"awaiting_restart\") {\n nextSteps.build = {\n ...nextSteps.build,\n status: \"pending\",\n description: `${noun.charAt(0).toUpperCase()}${noun.slice(1)} completed. Once the UI and API are back, refresh this module list page and continue with Build Now.`,\n };\n }\n\n if (status === \"seed_running\") {\n nextSteps.seed = {\n ...nextSteps.seed,\n status: \"warning\",\n description: \"Seed was previously started. Use Seed to run it again once you are ready.\",\n output: transaction?.outputs?.seed ?? undefined,\n };\n } else if (status === \"seed_failed\") {\n nextSteps.seed = {\n ...nextSteps.seed,\n status: \"warning\",\n description: transaction?.errorMessage || \"The seed step finished with warnings.\",\n output: transaction?.outputs?.seed ?? undefined,\n };\n } else if (status === \"completed\") {\n nextSteps.seed = {\n ...nextSteps.seed,\n status: \"success\",\n description: \"Module metadata seeding completed successfully.\",\n output: transaction?.outputs?.seed ?? undefined,\n };\n }\n\n return nextSteps;\n}\n\nfunction getSuggestedStepFromSteps(steps: StepMap, hasPreview: boolean, isArchiveValid: boolean): StepKey {\n if (!hasPreview || !isArchiveValid) return \"preview\";\n if (steps.import.status !== \"success\") return \"import\";\n if (steps.build.status !== \"success\" && steps.build.status !== \"warning\") return \"build\";\n if (steps.seed.status !== \"success\" && steps.seed.status !== \"warning\") return \"seed\";\n return \"seed\";\n}\n\nfunction StepStatusIcon({ status }: { status: StepStatus }) {\n if (status === \"running\") {\n return <SolidSpinner size={16} />;\n }\n\n if (status === \"success\") {\n return <SolidIcon name=\"si-check-circle\" />;\n }\n\n if (status === \"warning\" || status === \"error\") {\n return <SolidIcon name=\"si-exclamation-triangle\" />;\n }\n\n return <span className=\"solid-module-package-step-dot\" aria-hidden=\"true\" />;\n}\n\nexport function ModulePackageDialog({ open, onOpenChange, onImported }: ModulePackageDialogProps) {\n return (\n <SolidDialog\n open={open}\n onOpenChange={(next) => {\n if (!next) {\n onOpenChange(false);\n }\n }}\n className=\"solid-module-package-dialog\"\n dismissible={false}\n showHeader={false}\n >\n {open ? <ModulePackageImportContent onClose={() => onOpenChange(false)} onImported={onImported} /> : null}\n </SolidDialog>\n );\n}\n\nexport function ModulePackageImportContent({\n onClose,\n onImported,\n initialTransactionKey = null,\n autoResume = false,\n targetModuleName = null,\n}: ModulePackageImportContentProps) {\n const dispatch = useDispatch();\n const fallbackMode: PackageMode = targetModuleName ? \"update\" : \"install\";\n const [selectedFile, setSelectedFile] = useState<File | null>(null);\n const [previewResponse, setPreviewResponse] = useState<any | null>(null);\n const [transactionKey, setTransactionKey] = useState<string | null>(null);\n const [overwriteExisting, setOverwriteExisting] = useState(false);\n const [acknowledgeVersionChange, setAcknowledgeVersionChange] = useState(false);\n const [pruneOnSeed, setPruneOnSeed] = useState(false);\n const [showAllFiles, setShowAllFiles] = useState(false);\n const [isRestoreConfirmOpen, setRestoreConfirmOpen] = useState(false);\n const [steps, setSteps] = useState<StepMap>(() => createInitialSteps(fallbackMode));\n const [selectedStep, setSelectedStep] = useState<StepKey>(\"preview\");\n const [finalSummary, setFinalSummary] = useState<string | null>(null);\n const [isPreviewing, setIsPreviewing] = useState(false);\n const [isProcessing, setIsProcessing] = useState(false);\n\n const [validateModulePackageImport] = useValidateModulePackageImportMutation();\n const [confirmModulePackageImport] = useConfirmModulePackageImportMutation();\n const [dismissModulePackageImport] = useDismissModulePackageImportMutation();\n const [fetchModulePackageImportStatus] = useLazyGetModulePackageImportStatusQuery();\n const [runModulePackageBuild] = useRunModulePackageBuildMutation();\n const [runModulePackageSeed] = useRunModulePackageSeedMutation();\n const [restoreModulePackageImport] = useRestoreModulePackageImportMutation();\n\n const hasResumedTransactionRef = useRef(false);\n const lastAutoPreviewFileRef = useRef<string | null>(null);\n\n const updateStep = useCallback((key: StepKey, nextState: Partial<StepState>) => {\n setSteps((current) => ({\n ...current,\n [key]: {\n ...current[key],\n ...nextState,\n },\n }));\n }, []);\n\n const { getRootProps, getInputProps, open: openFilePicker, isDragActive } = useDropzone({\n accept: {\n \"application/octet-stream\": [\".sldx\"],\n \"application/x-zip-compressed\": [\".sldx\"],\n \"application/zip\": [\".sldx\"],\n },\n multiple: false,\n noClick: true,\n noKeyboard: true,\n onDrop: (acceptedFiles) => {\n if (acceptedFiles[0]) {\n setSelectedFile(acceptedFiles[0]);\n }\n },\n });\n\n const isArchiveValid = Boolean(previewResponse?.validation?.valid);\n const hasConflicts = (previewResponse?.conflicts?.length ?? 0) > 0;\n const suggestedStep = getSuggestedStepFromSteps(steps, Boolean(previewResponse), isArchiveValid);\n\n const packageMode = getPackageMode(previewResponse, fallbackMode);\n const isUpdate = packageMode === \"update\";\n const workflowLabels = getWorkflowLabels(previewResponse, fallbackMode);\n const packageModuleName = previewResponse?.preview?.module?.name || previewResponse?.moduleName || targetModuleName || \"this module\";\n const installedVersion = previewResponse?.installedVersion ?? previewResponse?.preview?.installedVersion ?? null;\n const incomingVersion = previewResponse?.incomingVersion ?? previewResponse?.preview?.incomingVersion ?? null;\n const versionComparison = previewResponse?.versionComparison ?? previewResponse?.preview?.versionComparison ?? null;\n const requiresVersionAcknowledgement = Boolean(previewResponse?.preview?.requiresVersionAcknowledgement);\n // Clicking the Update button approves the shown version; risky updates also need an explicit acknowledgement.\n const isUpdateApproved = !isUpdate || !requiresVersionAcknowledgement || acknowledgeVersionChange;\n const backup = previewResponse?.backup ?? null;\n\n const canImport = steps.preview.status !== \"pending\" && isArchiveValid && isUpdateApproved && steps.import.status !== \"success\" && !isProcessing && !isPreviewing;\n const canRestore = Boolean(backup && transactionKey) && steps.import.status !== \"pending\" && !isProcessing;\n const isRestoreInterrupted = previewResponse?.status === \"restore_running\";\n const canRunBuild = steps.import.status === \"success\" && !isProcessing;\n const canRunSeed = (steps.build.status === \"success\" || steps.build.status === \"warning\") && !isProcessing;\n const canContinueFromPreview = Boolean(previewResponse) && isArchiveValid && !isPreviewing;\n\n const activeStep = useMemo<StepKey>(() => {\n if (selectedStep === \"seed\" && !(steps.build.status === \"success\" || steps.build.status === \"warning\" || steps.seed.status !== \"pending\")) {\n return suggestedStep;\n }\n\n if (selectedStep === \"build\" && !(steps.import.status === \"success\" || steps.build.status !== \"pending\")) {\n return suggestedStep;\n }\n\n if (selectedStep === \"import\" && !(isArchiveValid || steps.import.status !== \"pending\")) {\n return suggestedStep;\n }\n\n return selectedStep;\n }, [\n previewResponse,\n selectedStep,\n steps.build.status,\n steps.import.status,\n steps.seed.status,\n suggestedStep,\n ]);\n\n const completedSteps = STEP_ORDER.filter((stepKey) => steps[stepKey].status === \"success\").length;\n const maxUnlockedStepIndex = useMemo(() => {\n if (!previewResponse || !isArchiveValid) return 0;\n if (steps.import.status !== \"success\") return 1;\n if (steps.build.status !== \"success\" && steps.build.status !== \"warning\") return 2;\n return 3;\n }, [isArchiveValid, previewResponse, steps.build.status, steps.import.status]);\n\n const handlePreviewArchive = useCallback(async () => {\n if (!selectedFile) {\n return;\n }\n\n const formData = new FormData();\n formData.append(\"modulePackage\", selectedFile);\n if (targetModuleName) {\n formData.append(\"expectedModuleName\", targetModuleName);\n }\n\n try {\n setIsPreviewing(true);\n const response = await validateModulePackageImport(formData).unwrap();\n setPreviewResponse(response);\n setTransactionKey(response?.transactionKey ?? null);\n setOverwriteExisting(false);\n setAcknowledgeVersionChange(false);\n setShowAllFiles(false);\n setFinalSummary(null);\n setSteps(hydrateStepsFromTransaction(response, fallbackMode));\n setSelectedStep(\"preview\");\n dispatch(\n showToast({\n severity: response?.validation?.valid ? \"success\" : \"warn\",\n summary: response?.validation?.valid ? \"Archive validated\" : \"Archive needs attention\",\n detail: response?.validation?.valid\n ? `Review the preview and continue with the ${getWorkflowLabels(response, fallbackMode).noun} when you are ready.`\n : \"The uploaded archive has validation issues. Review them below.\",\n }),\n );\n } catch (error: any) {\n dispatch(showToast({ severity: \"error\", summary: \"Preview failed\", detail: getErrorMessage(error) }));\n } finally {\n setIsPreviewing(false);\n }\n }, [dispatch, fallbackMode, selectedFile, targetModuleName, validateModulePackageImport]);\n\n useEffect(() => {\n if (!selectedFile) {\n lastAutoPreviewFileRef.current = null;\n return;\n }\n\n const fileSignature = `${selectedFile.name}:${selectedFile.size}:${selectedFile.lastModified}`;\n if (lastAutoPreviewFileRef.current === fileSignature) {\n return;\n }\n\n lastAutoPreviewFileRef.current = fileSignature;\n void handlePreviewArchive();\n }, [handlePreviewArchive, selectedFile]);\n\n const executeBuildStep = useCallback(async (activeTransactionKey: string) => {\n updateStep(\"build\", {\n status: \"running\",\n description: \"Running `solidctl build` followed by `solidctl build --ui-only`.\",\n });\n\n const buildResponse = await runModulePackageBuild({\n transactionKey: activeTransactionKey,\n buildSolidApi: true,\n buildSolidUi: true,\n }).unwrap();\n\n const buildFailed = buildResponse?.status === \"build_failed\";\n updateStep(\"build\", {\n status: buildFailed ? \"warning\" : \"success\",\n description: buildFailed\n ? buildResponse?.errorMessage || \"The module was imported, but one or more build targets failed.\"\n : \"Both build targets completed successfully.\",\n output: buildResponse?.outputs?.build,\n });\n\n return buildResponse;\n }, [runModulePackageBuild, updateStep]);\n\n const executeSeedStep = useCallback(async (activeTransactionKey: string) => {\n updateStep(\"seed\", {\n status: \"running\",\n description: `Running \\`solidctl seed --modules-to-seed${pruneOnSeed ? \" --prune\" : \"\"}\\` for the ${workflowLabels.past} module.`,\n });\n\n const seedResponse = await runModulePackageSeed({\n transactionKey: activeTransactionKey,\n seedGlobalMetadata: false,\n prune: pruneOnSeed,\n }).unwrap();\n\n const seedFailed = seedResponse?.status === \"seed_failed\";\n updateStep(\"seed\", {\n status: seedFailed ? \"warning\" : \"success\",\n description: seedFailed\n ? seedResponse?.errorMessage || \"The seed step finished with warnings.\"\n : \"Module metadata seeding completed successfully.\",\n output: seedResponse?.outputs?.seed,\n });\n\n return seedResponse;\n }, [pruneOnSeed, runModulePackageSeed, updateStep, workflowLabels.past]);\n\n const handleRunBuild = useCallback(async () => {\n if (!transactionKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Missing transaction\", detail: \"Import the module before running the build step.\" }));\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n const buildResponse = await executeBuildStep(transactionKey);\n setPreviewResponse(buildResponse);\n setSelectedStep(\"seed\");\n setIsProcessing(false);\n } catch (error: any) {\n updateStep(\"build\", {\n status: \"error\",\n description: getErrorMessage(error),\n });\n setFinalSummary(\"The build step needs attention before you continue.\");\n setIsProcessing(false);\n }\n }, [dispatch, executeBuildStep, transactionKey, updateStep]);\n\n const handleRunSeed = useCallback(async () => {\n if (!transactionKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Missing transaction\", detail: \"Import the module before running the seed step.\" }));\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n const seedResponse = await executeSeedStep(transactionKey);\n setPreviewResponse(seedResponse);\n setSelectedStep(\"seed\");\n setIsProcessing(false);\n\n const buildFailed = steps.build.status === \"warning\" || String(previewResponse?.outputs?.build ?? \"\").includes(\"[failed]\");\n const seedFailed = seedResponse?.status === \"seed_failed\";\n\n if (!seedFailed) {\n onImported?.();\n }\n\n if (buildFailed && !seedFailed) {\n setFinalSummary(`Module ${workflowLabels.past} and seeded successfully, but the build step reported errors.`);\n return;\n }\n\n if (seedFailed) {\n setFinalSummary(`Module ${workflowLabels.past}, but the seed step needs attention.`);\n return;\n }\n\n setFinalSummary(`Module ${workflowLabels.noun} completed successfully.`);\n } catch (error: any) {\n updateStep(\"seed\", {\n status: \"error\",\n description: getErrorMessage(error),\n });\n setFinalSummary(\"The seed step needs attention before the workflow can be closed.\");\n setIsProcessing(false);\n }\n }, [dispatch, executeSeedStep, onImported, previewResponse?.outputs?.build, steps.build.status, transactionKey, updateStep, workflowLabels.noun, workflowLabels.past]);\n\n useEffect(() => {\n if (!initialTransactionKey || hasResumedTransactionRef.current) {\n return;\n }\n\n hasResumedTransactionRef.current = true;\n\n const loadTransaction = async () => {\n try {\n const transaction = await fetchModulePackageImportStatus({ transactionKey: initialTransactionKey }).unwrap();\n const hydratedSteps = hydrateStepsFromTransaction(transaction, fallbackMode);\n const labels = getWorkflowLabels(transaction, fallbackMode);\n setPreviewResponse(transaction);\n setTransactionKey(transaction?.transactionKey ?? null);\n setSteps(hydratedSteps);\n setPruneOnSeed(Boolean(transaction?.restoredFromBackup));\n setSelectedStep(getSuggestedStepFromSteps(hydratedSteps, Boolean(transaction?.preview || transaction?.validation), Boolean(transaction?.validation?.valid)));\n\n if (transaction?.status === \"completed\") {\n setFinalSummary(`Module ${labels.noun} completed successfully.`);\n return;\n }\n\n if (transaction?.status === \"seed_failed\") {\n setFinalSummary(`Module ${labels.past}, but the seed step needs attention.`);\n return;\n }\n\n if (!autoResume || !isResumableModulePackageStatus(transaction?.status)) {\n return;\n }\n } catch (error: any) {\n dispatch(showToast({ severity: \"error\", summary: \"Unable to resume import\", detail: getErrorMessage(error) }));\n }\n };\n\n void loadTransaction();\n }, [autoResume, dispatch, fallbackMode, fetchModulePackageImportStatus, initialTransactionKey]);\n\n const handleStartImport = async () => {\n if (!transactionKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Missing preview\", detail: \"Upload an archive and wait for preview to finish first.\" }));\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n updateStep(\"import\", {\n status: \"running\",\n description: isUpdate\n ? \"Backing up the current module folders and placing the new version into `solid-api` and `solid-ui`.\"\n : \"Extracting the archive and placing files into `solid-api` and `solid-ui`.\",\n });\n\n const response = await confirmModulePackageImport(\n isUpdate\n ? { transactionKey, confirmedVersion: incomingVersion, acknowledgeVersionChange }\n : { transactionKey, overwriteExisting },\n ).unwrap();\n\n updateStep(\"import\", {\n status: \"success\",\n description: \"Archive extracted. The local UI/API may restart now, so refresh this page once both services are back.\",\n output: response?.outputs?.import,\n });\n setPreviewResponse(response);\n setIsProcessing(false);\n dispatch(\n showToast({\n severity: \"success\",\n summary: isUpdate ? \"Module updated\" : \"Module imported\",\n detail: isUpdate\n ? `${packageModuleName} was updated to ${formatVersionLabel(incomingVersion)}. Wait for the UI and API to restart, then refresh this module list page to continue with build and seed.`\n : \"The module files were placed locally. Wait for the UI and API to restart, then refresh this module list page to continue with build and seed.\",\n }),\n );\n onClose();\n } catch (error: any) {\n updateStep(\"import\", {\n status: \"error\",\n description: getErrorMessage(error),\n });\n setFinalSummary(`The module ${workflowLabels.noun} could not be completed.`);\n setIsProcessing(false);\n }\n };\n\n const handleRestore = async () => {\n if (!transactionKey || !backup) {\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n const response = await restoreModulePackageImport({ transactionKey }).unwrap();\n setPreviewResponse(response);\n setSteps(hydrateStepsFromTransaction(response, fallbackMode));\n setPruneOnSeed(true);\n setRestoreConfirmOpen(false);\n setIsProcessing(false);\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Previous version restored\",\n detail: `${packageModuleName} ${formatVersionLabel(backup.version)} was put back. Wait for the UI and API to restart, then refresh this module list page to continue with build and seed.`,\n }),\n );\n onClose();\n } catch (error: any) {\n setIsProcessing(false);\n dispatch(showToast({ severity: \"error\", summary: \"Restore failed\", detail: getErrorMessage(error) }));\n }\n };\n\n const handleClose = () => {\n if (isProcessing) return;\n if (finalSummary && transactionKey) {\n void dismissModulePackageImport({ transactionKey });\n }\n onClose();\n };\n\n const renderVersionApproval = () => {\n const comparison = VERSION_COMPARISONS[versionComparison ?? \"\"] ?? { label: \"Update\", tone: \"neutral\" };\n const identicalContent = Boolean(previewResponse?.preview?.identicalContent);\n const acknowledgementLabel = identicalContent\n ? \"Reinstall anyway, even though the content is identical\"\n : versionComparison === \"same\"\n ? `I understand this reinstalls ${formatVersionLabel(installedVersion)}`\n : versionComparison === \"downgrade\"\n ? `I understand this downgrades ${packageModuleName} to ${formatVersionLabel(incomingVersion)}`\n : \"I understand this package has no version\";\n\n return (\n <div className={`solid-module-package-notice${comparison.tone === \"danger\" ? \" is-danger\" : comparison.tone === \"warning\" ? \" is-warning\" : \"\"}`}>\n <div className=\"solid-module-package-notice__title\">Version change</div>\n <div className=\"solid-module-package-version\">\n <span className=\"solid-module-package-version__value\">{formatVersionLabel(installedVersion)}</span>\n <ArrowRight size={14} aria-label=\"to\" />\n <span className=\"solid-module-package-version__value\">{formatVersionLabel(incomingVersion)}</span>\n <span className={`solid-module-package-version__badge is-${comparison.tone}`}>{comparison.label}</span>\n </div>\n {isArchiveValid && requiresVersionAcknowledgement ? (\n <SolidCheckbox\n checked={acknowledgeVersionChange}\n onChange={(event) => setAcknowledgeVersionChange(event.currentTarget.checked)}\n label={acknowledgementLabel}\n />\n ) : null}\n </div>\n );\n };\n\n const renderChangeSummary = () => {\n const changeSet = previewResponse?.preview?.changeSet;\n if (!changeSet) return null;\n\n const sides: Array<[string, any]> = [[\"solid-api\", changeSet.solidApi], [\"solid-ui\", changeSet.solidUi]];\n return (\n <div className=\"solid-module-package-checklist__section\">\n <div className=\"solid-module-package-checklist__title\">Files that will change</div>\n {previewResponse?.preview?.identicalContent ? (\n <p className=\"solid-module-package-diff__empty\">No file changes. The package content matches the installed module.</p>\n ) : null}\n {sides.map(([label, diff]) => {\n const added: string[] = diff?.added ?? [];\n const modified: string[] = diff?.modified ?? [];\n const removed: string[] = diff?.removed ?? [];\n const hasChanges = added.length + modified.length + removed.length > 0;\n return (\n <details key={label} className=\"solid-module-package-diff\">\n <summary>\n <span className=\"solid-module-package-diff__side\">{label}</span>\n <span className=\"is-added\">+{added.length}</span>\n <span className=\"is-modified\">~{modified.length}</span>\n <span className=\"is-removed\">−{removed.length}</span>\n <span className=\"solid-module-package-diff__unchanged\">{diff?.unchangedCount ?? 0} unchanged</span>\n </summary>\n <ul className=\"solid-module-package-diff__list\">\n {added.map((file) => <li key={`a:${file}`} className=\"is-added\">+ {file}</li>)}\n {modified.map((file) => <li key={`m:${file}`} className=\"is-modified\">~ {file}</li>)}\n {removed.map((file) => <li key={`r:${file}`} className=\"is-removed\">− {file}</li>)}\n {!hasChanges ? <li>No changes</li> : null}\n </ul>\n </details>\n );\n })}\n </div>\n );\n };\n\n const renderPreviewContent = () => {\n return (\n <div className=\"solid-module-package-preview\">\n {!selectedFile ? (\n <div\n {...getRootProps({\n className: `solid-module-package-dropzone${isDragActive ? \" is-active\" : \"\"}`,\n })}\n >\n <input {...getInputProps()} />\n <div className=\"solid-module-package-dropzone__icon\">\n <UploadCloud size={22} />\n </div>\n <div className=\"solid-module-package-dropzone__copy\">\n <div className=\"solid-module-package-dropzone__title\">Upload `.sldx` archive</div>\n <p>Choose a packaged SolidX module archive from the local file system. Preview starts automatically after upload.</p>\n </div>\n <div className=\"solid-module-package-dropzone__actions\">\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={(event) => {\n event.stopPropagation();\n openFilePicker();\n }}\n >\n Browse archive\n </SolidButton>\n </div>\n </div>\n ) : (\n <div className=\"solid-module-package-file-card\">\n <div className=\"solid-module-package-file-card__main\">\n <div className=\"solid-module-package-file-card__icon\">\n <FileArchive size={18} />\n </div>\n <div>\n <div className=\"solid-module-package-file-card__name\">{selectedFile.name}</div>\n <div className=\"solid-module-package-file-card__meta\">\n {formatBytes(selectedFile.size)}\n {isPreviewing ? \" • Previewing archive...\" : \"\"}\n </div>\n </div>\n </div>\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"ghost\"\n onClick={() => {\n setSelectedFile(null);\n setPreviewResponse(null);\n setTransactionKey(null);\n setOverwriteExisting(false);\n setAcknowledgeVersionChange(false);\n setFinalSummary(null);\n setSelectedStep(\"preview\");\n setSteps(createInitialSteps(fallbackMode));\n }}\n disabled={isProcessing}\n >\n Remove\n </SolidButton>\n </div>\n )}\n\n {!previewResponse ? (\n <div className=\"solid-module-package-empty\">\n {isPreviewing ? <SolidSpinner size={18} /> : <FolderTree size={18} />}\n <p>\n {isPreviewing\n ? \"Reading the archive and validating the SolidX markers.\"\n : \"Upload an archive to start the automatic preview and validation flow.\"}\n </p>\n </div>\n ) : (\n <>\n <div className=\"solid-module-package-metrics\">\n <div className=\"solid-module-package-metric\">\n <span className=\"solid-module-package-metric__label\">Module</span>\n <span className=\"solid-module-package-metric__value\">{previewResponse?.preview?.module?.name || \"Unknown\"}</span>\n </div>\n <div className=\"solid-module-package-metric\">\n <span className=\"solid-module-package-metric__label\">solid-api files</span>\n <span className=\"solid-module-package-metric__value\">{previewResponse?.preview?.contentsSummary?.solidApiEntries ?? 0}</span>\n </div>\n <div className=\"solid-module-package-metric\">\n <span className=\"solid-module-package-metric__label\">solid-ui files</span>\n <span className=\"solid-module-package-metric__value\">{previewResponse?.preview?.contentsSummary?.solidUiEntries ?? 0}</span>\n </div>\n </div>\n\n <div className=\"solid-module-package-checklist\">\n {isUpdate ? renderVersionApproval() : null}\n {isUpdate ? renderChangeSummary() : null}\n\n <div className=\"solid-module-package-checklist__section\">\n <div className=\"solid-module-package-checklist__title\">Required markers</div>\n <ul className=\"solid-module-package-inline-list\">\n <li>{previewResponse?.preview?.requiredPaths?.metadataPath}</li>\n <li>{previewResponse?.preview?.requiredPaths?.apiModulePath}</li>\n <li>{previewResponse?.preview?.requiredPaths?.uiModulePath}</li>\n </ul>\n </div>\n\n {(previewResponse?.validation?.warnings?.length ?? 0) > 0 ? (\n <div className=\"solid-module-package-notice is-warning\">\n <div className=\"solid-module-package-notice__title\">Warnings</div>\n <ul className=\"solid-module-package-inline-list\">\n {previewResponse.validation.warnings.map((warning: string) => (\n <li key={warning}>{warning}</li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {(previewResponse?.validation?.errors?.length ?? 0) > 0 ? (\n <div className=\"solid-module-package-notice is-danger\">\n <div className=\"solid-module-package-notice__title\">Validation issues</div>\n <ul className=\"solid-module-package-inline-list\">\n {previewResponse.validation.errors.map((error: string) => (\n <li key={error}>{error}</li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {hasConflicts && !isUpdate ? (\n <div className=\"solid-module-package-notice is-warning\">\n <div className=\"solid-module-package-notice__title\">Existing files detected</div>\n <ul className=\"solid-module-package-inline-list\">\n {previewResponse.conflicts.map((conflict: string) => (\n <li key={conflict}>{conflict}</li>\n ))}\n </ul>\n <SolidCheckbox\n checked={overwriteExisting}\n onChange={(event) => setOverwriteExisting(event.currentTarget.checked)}\n label=\"Overwrite the existing module folders during import\"\n />\n </div>\n ) : null}\n </div>\n\n {isUpdate ? (\n <div>\n <SolidButton type=\"button\" size=\"small\" variant=\"ghost\" onClick={() => setShowAllFiles((current) => !current)}>\n {showAllFiles ? \"Hide package files\" : `Show all package files (${previewResponse?.preview?.fileTree?.length ?? 0})`}\n </SolidButton>\n </div>\n ) : null}\n\n {!isUpdate || showAllFiles ? (\n <div className=\"solid-module-package-tree\">\n {(previewResponse?.preview?.fileTree ?? []).map((entry: string) => (\n <div key={entry} className=\"solid-module-package-tree__row\">\n {entry}\n </div>\n ))}\n </div>\n ) : null}\n </>\n )}\n </div>\n );\n };\n\n const renderActiveStepCta = () => {\n if (activeStep === \"preview\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n onClick={() => setSelectedStep(\"import\")}\n disabled={!canContinueFromPreview || !isUpdateApproved}\n rightIcon={<Sparkles size={14} />}\n >\n {isUpdate ? \"Continue to update\" : \"Continue to import\"}\n </SolidButton>\n );\n }\n\n const restoreButton = backup && !isRestoreConfirmOpen ? (\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"ghost\"\n onClick={() => setRestoreConfirmOpen(true)}\n disabled={!canRestore}\n leftIcon={<RotateCcw size={14} />}\n >\n Restore {formatVersionLabel(backup.version)}\n </SolidButton>\n ) : null;\n\n if (activeStep === \"import\" && isRestoreInterrupted) {\n return restoreButton;\n }\n\n if (activeStep === \"import\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n onClick={handleStartImport}\n disabled={!canImport}\n loading={isProcessing && steps.import.status === \"running\"}\n leftIcon={<Sparkles size={14} />}\n >\n {isUpdate ? `Update to ${formatVersionLabel(incomingVersion)}` : \"Import Module\"}\n </SolidButton>\n );\n }\n\n if (activeStep === \"build\") {\n return (\n <>\n {restoreButton}\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={handleRunBuild}\n disabled={!canRunBuild}\n loading={isProcessing && steps.build.status === \"running\"}\n >\n {steps.build.status === \"success\" || steps.build.status === \"warning\" ? \"Build Again\" : \"Build Now\"}\n </SolidButton>\n </>\n );\n }\n\n if (activeStep === \"seed\") {\n return (\n <>\n {restoreButton}\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={handleRunSeed}\n disabled={!canRunSeed}\n loading={isProcessing && steps.seed.status === \"running\"}\n >\n {steps.seed.status === \"success\" || steps.seed.status === \"warning\" ? \"Seed Again\" : \"Seed\"}\n </SolidButton>\n </>\n );\n }\n\n return null;\n };\n\n const renderActiveStepContent = () => {\n if (activeStep === \"preview\") {\n return renderPreviewContent();\n }\n\n const restoreConfirm = isRestoreConfirmOpen && backup ? (\n <div className=\"solid-module-package-notice is-danger\">\n <div className=\"solid-module-package-notice__title\">Restore {formatVersionLabel(backup.version)}?</div>\n <ul className=\"solid-module-package-inline-list\">\n <li>This puts back the {packageModuleName} folders from before this update ({formatVersionLabel(backup.version)}).</li>\n <li>When the API restarts, the database schema is synced to that code: columns added by the newer version are dropped along with their data, and tables it added are left in place.</li>\n <li>Back up the database first if this module has data you care about.</li>\n <li>After the restart, refresh this page and run build and seed again. Prune is turned on for that seed.</li>\n </ul>\n <div className=\"solid-module-package-notice__actions\">\n <SolidButton type=\"button\" size=\"small\" variant=\"ghost\" onClick={() => setRestoreConfirmOpen(false)} disabled={isProcessing}>\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"destructive\"\n onClick={handleRestore}\n disabled={!canRestore}\n loading={isProcessing}\n leftIcon={<RotateCcw size={14} />}\n >\n Restore {formatVersionLabel(backup.version)}\n </SolidButton>\n </div>\n </div>\n ) : null;\n\n if (activeStep === \"import\") {\n return (\n <div className=\"solid-module-package-step-stack\">\n <div className=\"solid-module-package-notice is-warning\">\n <div className=\"solid-module-package-notice__title\">{isUpdate ? \"What happens during the update\" : \"What happens after import\"}</div>\n <ul className=\"solid-module-package-inline-list\">\n {isUpdate ? (\n <>\n <li>The current {packageModuleName} folders in solid-api and solid-ui are backed up, then replaced with {formatVersionLabel(incomingVersion)}. Files the new version no longer has are removed.</li>\n <li>Local changes made inside these folders are kept only in the backup.</li>\n </>\n ) : null}\n <li>Depending on the files in this archive, both the UI and API services may restart immediately.</li>\n <li>This popup may get dismissed as part of that restart.</li>\n <li>Wait for both services to come back, then refresh this module list page to continue with build and seed.</li>\n </ul>\n </div>\n {restoreConfirm}\n {steps.import.output ? <pre className=\"solid-module-package-step__output\">{steps.import.output}</pre> : null}\n </div>\n );\n }\n\n if (activeStep === \"build\") {\n if (!restoreConfirm && !steps.build.output) return null;\n return (\n <div className=\"solid-module-package-step-stack\">\n {restoreConfirm}\n {steps.build.output ? <pre className=\"solid-module-package-step__output\">{steps.build.output}</pre> : null}\n </div>\n );\n }\n\n if (activeStep === \"seed\") {\n return (\n <div className=\"solid-module-package-step-stack\">\n {restoreConfirm}\n {isUpdate ? (\n <SolidCheckbox\n checked={pruneOnSeed}\n onChange={(event) => setPruneOnSeed(event.currentTarget.checked)}\n disabled={isProcessing}\n label=\"Remove metadata this module no longer defines (prune). This also removes permissions for endpoints that no longer exist.\"\n />\n ) : null}\n {steps.seed.output ? <pre className=\"solid-module-package-step__output\">{steps.seed.output}</pre> : null}\n </div>\n );\n }\n\n return null;\n };\n\n return (\n <>\n <SolidDialogHeader className=\"solid-filter-dialog-head solid-module-package-dialog__header\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">\n {isUpdate ? `Update ${targetModuleName || packageModuleName}` : \"Import Module Package\"}\n </SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n {isUpdate\n ? \"Upload a `.sldx` archive of the new version, review the version change and the files that will change, then move through update, build, and seed.\"\n : \"Upload a `.sldx` archive, let SolidX preview it automatically, then move through import, build, and seed.\"}\n </SolidDialogDescription>\n </div>\n {!isProcessing ? (\n <button type=\"button\" className=\"solid-filter-dialog-close solid-radix-dialog-close\" aria-label=\"Close\" onClick={handleClose}>\n <X size={16} />\n </button>\n ) : null}\n </SolidDialogHeader>\n\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n\n <SolidDialogBody className=\"solid-filter-dialog-body solid-module-package-dialog__body\">\n <section className=\"solid-module-package-shell\">\n <div className=\"solid-module-package-panel solid-module-package-panel--wizard\">\n <div className=\"solid-module-package-stepper\">\n {STEP_ORDER.map((stepKey, index) => {\n const step = steps[stepKey];\n const isCurrent = activeStep === stepKey;\n const isDone = step.status === \"success\";\n const isWarning = step.status === \"warning\" || step.status === \"error\";\n const isUnlocked = index <= maxUnlockedStepIndex;\n\n return (\n <div\n key={stepKey}\n className={`solid-module-package-stepper__item${isCurrent ? \" is-current\" : \"\"}${isDone ? \" is-done\" : \"\"}${isWarning ? \" is-warning\" : \"\"}${isUnlocked ? \" is-clickable\" : \"\"}`}\n >\n <div className=\"solid-module-package-stepper__track\" />\n <button\n type=\"button\"\n className=\"solid-module-package-stepper__button\"\n onClick={() => setSelectedStep(stepKey)}\n disabled={!isUnlocked}\n >\n <div className=\"solid-module-package-stepper__node\">\n {isDone ? <SolidIcon name=\"si-check\" /> : <span>{index + 1}</span>}\n </div>\n <div className=\"solid-module-package-stepper__label\">{step.title}</div>\n <div className=\"solid-module-package-stepper__caption\">{step.description}</div>\n </button>\n </div>\n );\n })}\n </div>\n\n <div className=\"solid-module-package-stage\">\n <div className=\"solid-module-package-stage__meta\">\n <span>Step {STEP_ORDER.indexOf(activeStep) + 1} of {STEP_ORDER.length}</span>\n <span>{completedSteps} completed</span>\n </div>\n <div className=\"solid-module-package-stage__header\">\n <p>{steps[activeStep].description}</p>\n <div className={`solid-module-package-stage__status is-${steps[activeStep].status}`}>\n <StepStatusIcon status={steps[activeStep].status} />\n </div>\n </div>\n\n {renderActiveStepContent()}\n\n <div className=\"solid-module-package-stage__cta\">{renderActiveStepCta()}</div>\n </div>\n\n {finalSummary ? (\n <div className=\"solid-module-package-summary\">\n <span className=\"solid-module-package-summary__copy\">{finalSummary}</span>\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n leftIcon={<RefreshCw size={14} />}\n onClick={() => window.location.reload()}\n >\n Reload\n </SolidButton>\n </div>\n ) : null}\n </div>\n </section>\n </SolidDialogBody>\n </>\n );\n}\n"]}