@solidxai/core-ui 0.1.9-beta.18 → 0.1.9-beta.19

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 (177) hide show
  1. package/dist/adapters/auth/handleLogout.d.ts +1 -1
  2. package/dist/adapters/auth/handleLogout.d.ts.map +1 -1
  3. package/dist/adapters/auth/handleLogout.js +20 -32
  4. package/dist/adapters/auth/handleLogout.js.map +1 -1
  5. package/dist/adapters/auth/handleLogout.ts +7 -14
  6. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  7. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +1 -10
  8. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  9. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +1 -8
  10. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  11. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +6 -11
  12. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  13. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +5 -31
  14. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  15. package/dist/components/core/common/SolidGlobalSearchElement.js +47 -13
  16. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  17. package/dist/components/core/common/SolidGlobalSearchElement.tsx +38 -4
  18. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +16 -0
  19. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -0
  20. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +31 -0
  21. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -0
  22. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +43 -0
  23. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts +3 -0
  24. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts.map +1 -0
  25. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js +141 -0
  26. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js.map +1 -0
  27. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx +205 -0
  28. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts +4 -0
  29. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -0
  30. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +112 -0
  31. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -0
  32. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +146 -0
  33. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +11 -0
  34. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -0
  35. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +22 -0
  36. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -0
  37. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +36 -0
  38. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts +3 -0
  39. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts.map +1 -0
  40. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js +133 -0
  41. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js.map +1 -0
  42. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.ts +76 -0
  43. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +12 -0
  44. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -0
  45. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +168 -0
  46. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -0
  47. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +241 -0
  48. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  49. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -0
  50. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  51. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -0
  52. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  53. package/dist/components/core/list/SolidListView.js +74 -68
  54. package/dist/components/core/list/SolidListView.js.map +1 -1
  55. package/dist/components/core/list/SolidListView.tsx +13 -4
  56. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  57. package/dist/components/core/list/SolidListViewColumn.js +0 -2
  58. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  59. package/dist/components/core/list/SolidListViewColumn.tsx +0 -1
  60. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  61. package/dist/components/core/list/SolidListViewConfigure.js +10 -9
  62. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  63. package/dist/components/core/list/SolidListViewConfigure.tsx +3 -1
  64. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  65. package/dist/components/core/list/SolidListViewHeaderButton.js +3 -0
  66. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  67. package/dist/components/core/list/SolidListViewHeaderButton.tsx +2 -0
  68. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  69. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +3 -0
  70. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  71. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +2 -0
  72. package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -1
  73. package/dist/components/core/list/SolidListViewRowActionsMenu.js +7 -1
  74. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  75. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +5 -1
  76. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  77. package/dist/components/core/list/columns/SolidBooleanColumn.js +4 -6
  78. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  79. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -3
  80. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  81. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +3 -2
  82. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  83. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +3 -2
  84. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  85. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -2
  86. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  87. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -2
  88. package/dist/components/core/model/CreateModel.css +48 -0
  89. package/dist/components/core/model/CreateModel.d.ts +1 -0
  90. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  91. package/dist/components/core/model/CreateModel.js +69 -104
  92. package/dist/components/core/model/CreateModel.js.map +1 -1
  93. package/dist/components/core/model/CreateModel.tsx +92 -204
  94. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  95. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  96. package/dist/components/core/model/FieldMetaData.js +6 -22
  97. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  98. package/dist/components/core/model/FieldMetaData.tsx +6 -45
  99. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  100. package/dist/components/core/model/FieldMetaDataForm.js +196 -222
  101. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  102. package/dist/components/core/model/FieldMetaDataForm.tsx +0 -72
  103. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  104. package/dist/components/core/model/ModelMetaData.js +7 -7
  105. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  106. package/dist/components/core/model/ModelMetaData.tsx +7 -0
  107. package/dist/components/core/module/CreateModule.css +44 -0
  108. package/dist/components/core/module/CreateModule.d.ts +1 -0
  109. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  110. package/dist/components/core/module/CreateModule.js +40 -43
  111. package/dist/components/core/module/CreateModule.js.map +1 -1
  112. package/dist/components/core/module/CreateModule.tsx +243 -247
  113. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  114. package/dist/components/core/module/ModuleListViewData.js +47 -7
  115. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  116. package/dist/components/core/module/ModuleListViewData.tsx +58 -0
  117. package/dist/components/core/module/ModuleMetadataExplorer.css +638 -0
  118. package/dist/components/core/module/ModuleMetadataExplorer.d.ts +15 -0
  119. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -0
  120. package/dist/components/core/module/ModuleMetadataExplorer.js +666 -0
  121. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -0
  122. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1000 -0
  123. package/dist/components/core/module/ModulePackageDialog.css +540 -0
  124. package/dist/components/core/module/ModulePackageDialog.d.ts +16 -0
  125. package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -0
  126. package/dist/components/core/module/ModulePackageDialog.js +625 -0
  127. package/dist/components/core/module/ModulePackageDialog.js.map +1 -0
  128. package/dist/components/core/module/ModulePackageDialog.tsx +906 -0
  129. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  130. package/dist/components/layout/user-profile-menu.js +57 -33
  131. package/dist/components/layout/user-profile-menu.js.map +1 -1
  132. package/dist/components/layout/user-profile-menu.tsx +11 -59
  133. package/dist/helpers/buttonEnvironment.d.ts +5 -0
  134. package/dist/helpers/buttonEnvironment.d.ts.map +1 -0
  135. package/dist/helpers/buttonEnvironment.js +30 -0
  136. package/dist/helpers/buttonEnvironment.js.map +1 -0
  137. package/dist/helpers/buttonEnvironment.ts +35 -0
  138. package/dist/helpers/fileTypeIcon.d.ts +12 -0
  139. package/dist/helpers/fileTypeIcon.d.ts.map +1 -0
  140. package/dist/helpers/fileTypeIcon.js +37 -0
  141. package/dist/helpers/fileTypeIcon.js.map +1 -0
  142. package/dist/helpers/fileTypeIcon.tsx +65 -0
  143. package/dist/helpers/registry.d.ts.map +1 -1
  144. package/dist/helpers/registry.js +10 -0
  145. package/dist/helpers/registry.js.map +1 -1
  146. package/dist/helpers/registry.ts +10 -0
  147. package/dist/helpers/waitForBackendAvailability.d.ts +7 -0
  148. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -0
  149. package/dist/helpers/waitForBackendAvailability.js +86 -0
  150. package/dist/helpers/waitForBackendAvailability.js.map +1 -0
  151. package/dist/helpers/waitForBackendAvailability.ts +37 -0
  152. package/dist/index.d.ts +2 -1
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +2 -1
  155. package/dist/index.js.map +1 -1
  156. package/dist/index.ts +18 -0
  157. package/dist/redux/api/moduleApi.d.ts +26 -1
  158. package/dist/redux/api/moduleApi.d.ts.map +1 -1
  159. package/dist/redux/api/moduleApi.js +237 -1
  160. package/dist/redux/api/moduleApi.js.map +1 -1
  161. package/dist/redux/api/moduleApi.ts +181 -1
  162. package/dist/redux/store/defaultStoreConfig.d.ts +22 -0
  163. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  164. package/dist/redux/store/solidEntityApiPool.d.ts +1 -0
  165. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  166. package/dist/redux/store/solidEntityApiPool.js +4 -0
  167. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  168. package/dist/redux/store/solidEntityApiPool.ts +4 -0
  169. package/dist/resources/globals.css +56 -0
  170. package/dist/resources/shadcn-base.css +5 -0
  171. package/dist/routes/AppEventListener.d.ts.map +1 -1
  172. package/dist/routes/AppEventListener.js +58 -8
  173. package/dist/routes/AppEventListener.js.map +1 -1
  174. package/dist/routes/AppEventListener.tsx +69 -8
  175. package/dist/types/index.d.ts +1 -0
  176. package/dist/types/jsoneditor.d.ts +4 -0
  177. package/package.json +2 -1
@@ -927,12 +927,20 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
927
927
  const fieldElements = extractFields(layoutChildren);
928
928
 
929
929
 
930
- const fieldsList = Object.entries(fieldsData ?? {}).map(([key, value]: any) => {
930
+ // Build one entry per layout column (not per field name), so multiple columns
931
+ // sharing the same field name (e.g. several viewMetadata columns with different
932
+ // searchFields/labels) each appear as a separate searchable option.
933
+ const seenKeys = new Set<string>();
934
+ const fieldsList: any[] = [];
935
+
936
+ // First pass: one entry per unique field name (for non-searchable / filter use)
937
+ Object.entries(fieldsData ?? {}).forEach(([key, value]: any) => {
931
938
  const viewFieldElement = fieldElements.find(
932
939
  (f: any) => f?.attrs?.name === key
933
940
  );
934
- return {
935
- name: value.displayName,
941
+ seenKeys.add(key);
942
+ fieldsList.push({
943
+ name: viewFieldElement?.attrs?.label ?? value.displayName,
936
944
  value: key,
937
945
  type: value.type,
938
946
  ormType: value.ormType,
@@ -940,7 +948,33 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
940
948
  searchField: viewFieldElement?.attrs?.searchField ?? null,
941
949
  isSearchable: viewFieldElement?.attrs?.isSearchable ?? false,
942
950
  relationType: value?.relationType ?? null,
943
- };
951
+ });
952
+ });
953
+
954
+ // Second pass: for any layout column that shares a field name but has a
955
+ // distinct searchField, add it as an additional searchable entry.
956
+ fieldElements.forEach((fieldElement: any) => {
957
+ const key = fieldElement?.attrs?.name;
958
+ const searchField = fieldElement?.attrs?.searchField;
959
+ const isSearchable = fieldElement?.attrs?.isSearchable ?? false;
960
+ if (!isSearchable || !searchField) return;
961
+ // Already covered by the first pass entry for this key?
962
+ const existingEntry = fieldsList.find(
963
+ (e: any) => e.value === key && e.searchField === searchField
964
+ );
965
+ if (existingEntry) return; // already in list
966
+ const value: any = (fieldsData ?? {})[key];
967
+ if (!value) return;
968
+ fieldsList.push({
969
+ name: fieldElement?.attrs?.label ?? value.displayName,
970
+ value: key,
971
+ type: value.type,
972
+ ormType: value.ormType,
973
+ matchMode: fieldElement?.attrs?.searchMatchMode,
974
+ searchField: searchField,
975
+ isSearchable: true,
976
+ relationType: value?.relationType ?? null,
977
+ });
944
978
  });
945
979
 
946
980
  const filterableFieldsList = fieldsList.filter((field: any) => {
@@ -0,0 +1,16 @@
1
+ import { SolidFormWidgetProps } from '../../../../../types/solid-core';
2
+ /**
3
+ * MetadataExplorerFormWidget
4
+ *
5
+ * A generic formWidget that embeds ModuleMetadataExplorer scoped to the
6
+ * specific record being viewed.
7
+ *
8
+ * Configured via layout attrs in solid-core-metadata.json:
9
+ * moduleName - static module name fallback (e.g. 'solid-core').
10
+ * If the record has a 'module' relation, that takes priority.
11
+ * arrayPath - root-level key in the JSON (e.g. 'views', 'actions', 'menus')
12
+ * itemNameField - field on each array item to match against (e.g. 'name',
13
+ * 'scheduleName', 'sequenceName'). Defaults to 'name'.
14
+ */
15
+ export declare const MetadataExplorerFormWidget: ({ field, formData }: SolidFormWidgetProps) => import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=MetadataExplorerFormWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetadataExplorerFormWidget.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,wBAAyB,oBAAoB,4CAyBnF,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ModuleMetadataExplorer } from '../../../module/ModuleMetadataExplorer';
3
+ /**
4
+ * MetadataExplorerFormWidget
5
+ *
6
+ * A generic formWidget that embeds ModuleMetadataExplorer scoped to the
7
+ * specific record being viewed.
8
+ *
9
+ * Configured via layout attrs in solid-core-metadata.json:
10
+ * moduleName - static module name fallback (e.g. 'solid-core').
11
+ * If the record has a 'module' relation, that takes priority.
12
+ * arrayPath - root-level key in the JSON (e.g. 'views', 'actions', 'menus')
13
+ * itemNameField - field on each array item to match against (e.g. 'name',
14
+ * 'scheduleName', 'sequenceName'). Defaults to 'name'.
15
+ */
16
+ export var MetadataExplorerFormWidget = function (_a) {
17
+ var _b;
18
+ var field = _a.field, formData = _a.formData;
19
+ var _c = (_b = field === null || field === void 0 ? void 0 : field.attrs) !== null && _b !== void 0 ? _b : {}, staticModuleName = _c.moduleName, arrayPath = _c.arrayPath, _d = _c.itemNameField, itemNameField = _d === void 0 ? 'name' : _d;
20
+ // Resolve moduleName dynamically from the record's module relation when available.
21
+ // formData.module can be a relation object ({ name: "solid-core", ... }) or a string.
22
+ var dynamicModuleName = (formData === null || formData === void 0 ? void 0 : formData.module) && typeof formData.module === 'object'
23
+ ? formData.module.name
24
+ : typeof (formData === null || formData === void 0 ? void 0 : formData.module) === 'string'
25
+ ? formData.module
26
+ : undefined;
27
+ var moduleName = dynamicModuleName !== null && dynamicModuleName !== void 0 ? dynamicModuleName : staticModuleName;
28
+ var scopedItemValue = formData === null || formData === void 0 ? void 0 : formData[itemNameField];
29
+ return (_jsx(ModuleMetadataExplorer, { moduleName: moduleName, scopedArrayPath: arrayPath, scopedItemValue: scopedItemValue, scopedItemField: itemNameField, readOnly: true, allowSeed: false }));
30
+ };
31
+ //# sourceMappingURL=MetadataExplorerFormWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetadataExplorerFormWidget.js","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAGhF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,IAAM,0BAA0B,GAAG,UAAC,EAAyC;;QAAvC,KAAK,WAAA,EAAE,QAAQ,cAAA;IAClD,IAAA,KAAsE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,mCAAI,EAAE,EAA1E,gBAAgB,gBAAA,EAAE,SAAS,eAAA,EAAE,qBAAsB,EAAtB,aAAa,mBAAG,MAAM,KAAuB,CAAC;IAE/F,mFAAmF;IACnF,sFAAsF;IACtF,IAAM,iBAAiB,GACnB,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,KAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;QACnD,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;QACtB,CAAC,CAAC,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,KAAK,QAAQ;YACtC,CAAC,CAAC,QAAQ,CAAC,MAAM;YACjB,CAAC,CAAC,SAAS,CAAC;IAEpB,IAAM,UAAU,GAAG,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,gBAAgB,CAAC;IACzD,IAAM,eAAe,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,aAAa,CAAC,CAAC;IAElD,OAAO,CACH,KAAC,sBAAsB,IACnB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,SAAS,EAC1B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,aAAa,EAC9B,QAAQ,QACR,SAAS,EAAE,KAAK,GAClB,CACL,CAAC;AACN,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { ModuleMetadataExplorer } from '../../../module/ModuleMetadataExplorer';\nimport { SolidFormWidgetProps } from '../../../../../types/solid-core';\n\n/**\n * MetadataExplorerFormWidget\n *\n * A generic formWidget that embeds ModuleMetadataExplorer scoped to the\n * specific record being viewed.\n *\n * Configured via layout attrs in solid-core-metadata.json:\n * moduleName - static module name fallback (e.g. 'solid-core').\n * If the record has a 'module' relation, that takes priority.\n * arrayPath - root-level key in the JSON (e.g. 'views', 'actions', 'menus')\n * itemNameField - field on each array item to match against (e.g. 'name',\n * 'scheduleName', 'sequenceName'). Defaults to 'name'.\n */\nexport const MetadataExplorerFormWidget = ({ field, formData }: SolidFormWidgetProps) => {\n const { moduleName: staticModuleName, arrayPath, itemNameField = 'name' } = field?.attrs ?? {};\n\n // Resolve moduleName dynamically from the record's module relation when available.\n // formData.module can be a relation object ({ name: \"solid-core\", ... }) or a string.\n const dynamicModuleName: string | undefined =\n formData?.module && typeof formData.module === 'object'\n ? formData.module.name\n : typeof formData?.module === 'string'\n ? formData.module\n : undefined;\n\n const moduleName = dynamicModuleName ?? staticModuleName;\n const scopedItemValue = formData?.[itemNameField];\n\n return (\n <ModuleMetadataExplorer\n moduleName={moduleName}\n scopedArrayPath={arrayPath}\n scopedItemValue={scopedItemValue}\n scopedItemField={itemNameField}\n readOnly\n allowSeed={false}\n />\n );\n};\n"]}
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { ModuleMetadataExplorer } from '../../../module/ModuleMetadataExplorer';
3
+ import { SolidFormWidgetProps } from '../../../../../types/solid-core';
4
+
5
+ /**
6
+ * MetadataExplorerFormWidget
7
+ *
8
+ * A generic formWidget that embeds ModuleMetadataExplorer scoped to the
9
+ * specific record being viewed.
10
+ *
11
+ * Configured via layout attrs in solid-core-metadata.json:
12
+ * moduleName - static module name fallback (e.g. 'solid-core').
13
+ * If the record has a 'module' relation, that takes priority.
14
+ * arrayPath - root-level key in the JSON (e.g. 'views', 'actions', 'menus')
15
+ * itemNameField - field on each array item to match against (e.g. 'name',
16
+ * 'scheduleName', 'sequenceName'). Defaults to 'name'.
17
+ */
18
+ export const MetadataExplorerFormWidget = ({ field, formData }: SolidFormWidgetProps) => {
19
+ const { moduleName: staticModuleName, arrayPath, itemNameField = 'name' } = field?.attrs ?? {};
20
+
21
+ // Resolve moduleName dynamically from the record's module relation when available.
22
+ // formData.module can be a relation object ({ name: "solid-core", ... }) or a string.
23
+ const dynamicModuleName: string | undefined =
24
+ formData?.module && typeof formData.module === 'object'
25
+ ? formData.module.name
26
+ : typeof formData?.module === 'string'
27
+ ? formData.module
28
+ : undefined;
29
+
30
+ const moduleName = dynamicModuleName ?? staticModuleName;
31
+ const scopedItemValue = formData?.[itemNameField];
32
+
33
+ return (
34
+ <ModuleMetadataExplorer
35
+ moduleName={moduleName}
36
+ scopedArrayPath={arrayPath}
37
+ scopedItemValue={scopedItemValue}
38
+ scopedItemField={itemNameField}
39
+ readOnly
40
+ allowSeed={false}
41
+ />
42
+ );
43
+ };
@@ -0,0 +1,3 @@
1
+ declare const ClearModulePackageRuntimeHeaderAction: () => import("react/jsx-runtime").JSX.Element;
2
+ export { ClearModulePackageRuntimeHeaderAction };
3
+ //# sourceMappingURL=ClearModulePackageRuntimeHeaderAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClearModulePackageRuntimeHeaderAction.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx"],"names":[],"mappings":"AAgBA,QAAA,MAAM,qCAAqC,+CA0L1C,CAAC;AAEF,OAAO,EAAE,qCAAqC,EAAE,CAAC"}
@@ -0,0 +1,141 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
38
+ import { useMemo, useState } from "react";
39
+ import { useDispatch } from "react-redux";
40
+ import { AlertTriangle, Check, Copy, HardDriveDownload, TerminalSquare, Trash2 } from "lucide-react";
41
+ import { SolidCircularLoader } from "../../../../../../components/core/common/SolidLoaders/SolidCircularLoader";
42
+ import { useClearModulePackageRuntimeMutation } from "../../../../../../redux/api/moduleApi";
43
+ import { closePopup } from "../../../../../../redux/features/popupSlice";
44
+ import { showToast } from "../../../../../../redux/features/toastSlice";
45
+ import { SolidButton } from "../../../../../shad-cn-ui";
46
+ var ClearModulePackageRuntimeHeaderAction = function () {
47
+ var dispatch = useDispatch();
48
+ var clearModulePackageRuntime = useClearModulePackageRuntimeMutation()[0];
49
+ var _a = useState(false), isClearing = _a[0], setIsClearing = _a[1];
50
+ var _b = useState(null), errorState = _b[0], setErrorState = _b[1];
51
+ var _c = useState(null), copiedCommandKey = _c[0], setCopiedCommandKey = _c[1];
52
+ var commands = useMemo(function () { return [
53
+ {
54
+ key: "build-api",
55
+ label: "Build API and shared artifacts",
56
+ command: "npx -y @solidxai/solidctl@latest build",
57
+ help: "Run from the consuming project root after the imported files are in place.",
58
+ },
59
+ {
60
+ key: "build-ui",
61
+ label: "Build UI bundle",
62
+ command: "npx -y @solidxai/solidctl@latest build --ui-only",
63
+ help: "Use this when the imported package introduced or changed `solid-ui` files.",
64
+ },
65
+ {
66
+ key: "seed-module",
67
+ label: "Seed one imported module",
68
+ command: "npx -y @solidxai/solidctl@latest seed --modules-to-seed <module-name>",
69
+ help: "Replace `<module-name>` with the imported module if metadata files were already placed locally.",
70
+ },
71
+ ]; }, []);
72
+ var handleCopy = function (command) { return __awaiter(void 0, void 0, void 0, function () {
73
+ var error_1;
74
+ return __generator(this, function (_a) {
75
+ switch (_a.label) {
76
+ case 0:
77
+ _a.trys.push([0, 2, , 3]);
78
+ return [4 /*yield*/, navigator.clipboard.writeText(command.command)];
79
+ case 1:
80
+ _a.sent();
81
+ setCopiedCommandKey(command.key);
82
+ window.setTimeout(function () {
83
+ setCopiedCommandKey(function (current) { return (current === command.key ? null : current); });
84
+ }, 1800);
85
+ return [3 /*break*/, 3];
86
+ case 2:
87
+ error_1 = _a.sent();
88
+ dispatch(showToast({
89
+ severity: "error",
90
+ summary: "Copy failed",
91
+ detail: "Unable to copy the recovery command to the clipboard.",
92
+ }));
93
+ return [3 /*break*/, 3];
94
+ case 3: return [2 /*return*/];
95
+ }
96
+ });
97
+ }); };
98
+ var handleClear = function () { return __awaiter(void 0, void 0, void 0, function () {
99
+ var response, removedImports, removedExports, error_2, detail;
100
+ var _a, _b, _c;
101
+ return __generator(this, function (_d) {
102
+ switch (_d.label) {
103
+ case 0:
104
+ _d.trys.push([0, 2, 3, 4]);
105
+ setIsClearing(true);
106
+ setErrorState(null);
107
+ return [4 /*yield*/, clearModulePackageRuntime({}).unwrap()];
108
+ case 1:
109
+ response = _d.sent();
110
+ removedImports = Number((_a = response === null || response === void 0 ? void 0 : response.removedImportTransactions) !== null && _a !== void 0 ? _a : 0);
111
+ removedExports = Number((_b = response === null || response === void 0 ? void 0 : response.removedExportTransactions) !== null && _b !== void 0 ? _b : 0);
112
+ dispatch(showToast({
113
+ severity: "success",
114
+ summary: "Package runtime cleared",
115
+ detail: "Removed ".concat(removedImports, " import run(s) and ").concat(removedExports, " export run(s) from local module package runtime storage."),
116
+ }));
117
+ dispatch(closePopup());
118
+ return [3 /*break*/, 4];
119
+ case 2:
120
+ error_2 = _d.sent();
121
+ detail = ((_c = error_2 === null || error_2 === void 0 ? void 0 : error_2.data) === null || _c === void 0 ? void 0 : _c.message) || (error_2 === null || error_2 === void 0 ? void 0 : error_2.message) || "Unable to clear package runtime.";
122
+ setErrorState(String(detail));
123
+ dispatch(showToast({ severity: "error", summary: "Cleanup failed", detail: String(detail) }));
124
+ return [3 /*break*/, 4];
125
+ case 3:
126
+ setIsClearing(false);
127
+ return [7 /*endfinally*/];
128
+ case 4: return [2 /*return*/];
129
+ }
130
+ });
131
+ }); };
132
+ if (isClearing) {
133
+ return (_jsxs("div", { className: "solid-generate-code-popup", children: [_jsx("div", { className: "solid-filter-dialog-head solid-generate-code-popup__head", children: _jsxs("div", { children: [_jsx("h3", { className: "solid-filter-dialog-title", children: "Clear Package Runtime" }), _jsx("p", { className: "solid-filter-dialog-subtitle m-0", children: "Removing past import and export working files from local runtime storage." })] }) }), _jsx("div", { className: "solid-filter-dialog-sep" }), _jsxs("div", { className: "solid-filter-dialog-body solid-generate-code-popup__body solid-generate-code-popup__body--loading", children: [_jsx(SolidCircularLoader, {}), _jsx("p", { className: "solid-generate-code-popup__loading-title", children: "Clearing runtime storage..." }), _jsx("p", { className: "solid-generate-code-popup__loading-copy", children: "Deleting past `.sldx` imports, exports, extracted previews, and resumable transaction markers." })] })] }));
134
+ }
135
+ return (_jsxs("div", { className: "solid-generate-code-popup", children: [_jsx("div", { className: "solid-filter-dialog-head solid-generate-code-popup__head", children: _jsxs("div", { children: [_jsx("h3", { className: "solid-filter-dialog-title", children: "Clear Package Runtime" }), _jsx("p", { className: "solid-filter-dialog-subtitle m-0", children: "Remove all past module package import and export temp storage from the local SolidX runtime." })] }) }), _jsx("div", { className: "solid-filter-dialog-sep" }), _jsxs("div", { className: "solid-filter-dialog-body solid-generate-code-popup__body", children: [_jsx("p", { className: "solid-generate-code-popup__intro", children: "This clears all incomplete and completed package import or export runs, including previews, extracted archives, resumable transaction state, and generated `.sldx` export artifacts." }), _jsxs("div", { className: "solid-generate-code-popup__panel", children: [_jsxs("div", { className: "solid-generate-code-popup__panel-title", children: [_jsx(HardDriveDownload, { size: 15 }), _jsx("span", { children: "What gets removed" })] }), _jsxs("ul", { className: "solid-generate-code-popup__list", children: [_jsx("li", { children: "Uploaded `.sldx` files and extracted import working folders" }), _jsx("li", { children: "Import preview metadata, status files, and resumable pointers" }), _jsx("li", { children: "Generated export staging folders and downloaded archive temp files" }), _jsx("li", { children: "Any stale package runtime state kept under `.solidx-runtime`" })] })] }), _jsxs("div", { className: "solid-generate-code-popup__notice is-warning", children: [_jsx(AlertTriangle, { size: 16 }), _jsx("span", { children: "If a package was already imported and files were placed into `solid-api` or `solid-ui`, this cleanup does not roll those files back. If build and seed were not run yet, the developer must do that manually afterward." })] }), _jsxs("div", { className: "solid-generate-code-popup__panel", children: [_jsxs("div", { className: "solid-generate-code-popup__panel-title", children: [_jsx(TerminalSquare, { size: 15 }), _jsx("span", { children: "Manual recovery commands" })] }), _jsx("div", { className: "solid-generate-code-popup__command-grid", children: commands.map(function (command) {
136
+ var copied = copiedCommandKey === command.key;
137
+ return (_jsxs("div", { className: "solid-generate-code-popup__command-item", children: [_jsxs("div", { className: "solid-generate-code-popup__command-meta", children: [_jsx("div", { className: "solid-generate-code-popup__command-label", children: command.label }), _jsx("pre", { className: "solid-generate-code-popup__command-code", children: command.command }), _jsx("div", { className: "solid-generate-code-popup__command-help", children: command.help })] }), _jsx(SolidButton, { size: "small", variant: "outline", className: "solid-generate-code-popup__command-copy", leftIcon: copied ? _jsx(Check, { size: 14 }) : _jsx(Copy, { size: 14 }), onClick: function () { return handleCopy(command); }, children: copied ? "Copied" : "Copy" })] }, command.key));
138
+ }) })] }), errorState ? (_jsxs("div", { className: "solid-generate-code-popup__notice is-warning", children: [_jsx(AlertTriangle, { size: 16 }), _jsx("span", { children: errorState })] })) : null, _jsxs("div", { className: "solid-generate-code-popup__actions", children: [_jsx(SolidButton, { size: "small", autoFocus: true, severity: "danger", leftIcon: _jsx(Trash2, { size: 14 }), onClick: handleClear, children: "Clear Package Runtime" }), _jsx(SolidButton, { size: "small", variant: "outline", onClick: function () { return dispatch(closePopup()); }, children: "Cancel" })] })] })] }));
139
+ };
140
+ export { ClearModulePackageRuntimeHeaderAction };
141
+ //# sourceMappingURL=ClearModulePackageRuntimeHeaderAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClearModulePackageRuntimeHeaderAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { AlertTriangle, Check, Copy, HardDriveDownload, TerminalSquare, Trash2 } from \"lucide-react\";\nimport { SolidCircularLoader } from \"../../../../../../components/core/common/SolidLoaders/SolidCircularLoader\";\nimport { useClearModulePackageRuntimeMutation } from \"../../../../../../redux/api/moduleApi\";\nimport { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport { showToast } from \"../../../../../../redux/features/toastSlice\";\nimport { SolidButton } from \"../../../../../shad-cn-ui\";\n\ntype RuntimeCommand = {\n key: string;\n label: string;\n command: string;\n help: string;\n};\n\nconst ClearModulePackageRuntimeHeaderAction = () => {\n const dispatch = useDispatch();\n const [clearModulePackageRuntime] = useClearModulePackageRuntimeMutation();\n const [isClearing, setIsClearing] = useState(false);\n const [errorState, setErrorState] = useState<string | null>(null);\n const [copiedCommandKey, setCopiedCommandKey] = useState<string | null>(null);\n\n const commands = useMemo<RuntimeCommand[]>(\n () => [\n {\n key: \"build-api\",\n label: \"Build API and shared artifacts\",\n command: \"npx -y @solidxai/solidctl@latest build\",\n help: \"Run from the consuming project root after the imported files are in place.\",\n },\n {\n key: \"build-ui\",\n label: \"Build UI bundle\",\n command: \"npx -y @solidxai/solidctl@latest build --ui-only\",\n help: \"Use this when the imported package introduced or changed `solid-ui` files.\",\n },\n {\n key: \"seed-module\",\n label: \"Seed one imported module\",\n command: \"npx -y @solidxai/solidctl@latest seed --modules-to-seed <module-name>\",\n help: \"Replace `<module-name>` with the imported module if metadata files were already placed locally.\",\n },\n ],\n []\n );\n\n const handleCopy = async (command: RuntimeCommand) => {\n try {\n await navigator.clipboard.writeText(command.command);\n setCopiedCommandKey(command.key);\n window.setTimeout(() => {\n setCopiedCommandKey((current) => (current === command.key ? null : current));\n }, 1800);\n } catch (error) {\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Copy failed\",\n detail: \"Unable to copy the recovery command to the clipboard.\",\n })\n );\n }\n };\n\n const handleClear = async () => {\n try {\n setIsClearing(true);\n setErrorState(null);\n\n const response = await clearModulePackageRuntime({}).unwrap();\n const removedImports = Number(response?.removedImportTransactions ?? 0);\n const removedExports = Number(response?.removedExportTransactions ?? 0);\n\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Package runtime cleared\",\n detail: `Removed ${removedImports} import run(s) and ${removedExports} export run(s) from local module package runtime storage.`,\n })\n );\n dispatch(closePopup());\n } catch (error: any) {\n const detail = error?.data?.message || error?.message || \"Unable to clear package runtime.\";\n setErrorState(String(detail));\n dispatch(showToast({ severity: \"error\", summary: \"Cleanup failed\", detail: String(detail) }));\n } finally {\n setIsClearing(false);\n }\n };\n\n if (isClearing) {\n return (\n <div className=\"solid-generate-code-popup\">\n <div className=\"solid-filter-dialog-head solid-generate-code-popup__head\">\n <div>\n <h3 className=\"solid-filter-dialog-title\">Clear Package Runtime</h3>\n <p className=\"solid-filter-dialog-subtitle m-0\">Removing past import and export working files from local runtime storage.</p>\n </div>\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"solid-filter-dialog-body solid-generate-code-popup__body solid-generate-code-popup__body--loading\">\n <SolidCircularLoader />\n <p className=\"solid-generate-code-popup__loading-title\">Clearing runtime storage...</p>\n <p className=\"solid-generate-code-popup__loading-copy\">Deleting past `.sldx` imports, exports, extracted previews, and resumable transaction markers.</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"solid-generate-code-popup\">\n <div className=\"solid-filter-dialog-head solid-generate-code-popup__head\">\n <div>\n <h3 className=\"solid-filter-dialog-title\">Clear Package Runtime</h3>\n <p className=\"solid-filter-dialog-subtitle m-0\">\n Remove all past module package import and export temp storage from the local SolidX runtime.\n </p>\n </div>\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"solid-filter-dialog-body solid-generate-code-popup__body\">\n <p className=\"solid-generate-code-popup__intro\">\n This clears all incomplete and completed package import or export runs, including previews, extracted archives,\n resumable transaction state, and generated `.sldx` export artifacts.\n </p>\n\n <div className=\"solid-generate-code-popup__panel\">\n <div className=\"solid-generate-code-popup__panel-title\">\n <HardDriveDownload size={15} />\n <span>What gets removed</span>\n </div>\n <ul className=\"solid-generate-code-popup__list\">\n <li>Uploaded `.sldx` files and extracted import working folders</li>\n <li>Import preview metadata, status files, and resumable pointers</li>\n <li>Generated export staging folders and downloaded archive temp files</li>\n <li>Any stale package runtime state kept under `.solidx-runtime`</li>\n </ul>\n </div>\n\n <div className=\"solid-generate-code-popup__notice is-warning\">\n <AlertTriangle size={16} />\n <span>\n If a package was already imported and files were placed into `solid-api` or `solid-ui`, this cleanup does not\n roll those files back. If build and seed were not run yet, the developer must do that manually afterward.\n </span>\n </div>\n\n <div className=\"solid-generate-code-popup__panel\">\n <div className=\"solid-generate-code-popup__panel-title\">\n <TerminalSquare size={15} />\n <span>Manual recovery commands</span>\n </div>\n <div className=\"solid-generate-code-popup__command-grid\">\n {commands.map((command) => {\n const copied = copiedCommandKey === command.key;\n return (\n <div key={command.key} className=\"solid-generate-code-popup__command-item\">\n <div className=\"solid-generate-code-popup__command-meta\">\n <div className=\"solid-generate-code-popup__command-label\">{command.label}</div>\n <pre className=\"solid-generate-code-popup__command-code\">{command.command}</pre>\n <div className=\"solid-generate-code-popup__command-help\">{command.help}</div>\n </div>\n <SolidButton\n size=\"small\"\n variant=\"outline\"\n className=\"solid-generate-code-popup__command-copy\"\n leftIcon={copied ? <Check size={14} /> : <Copy size={14} />}\n onClick={() => handleCopy(command)}\n >\n {copied ? \"Copied\" : \"Copy\"}\n </SolidButton>\n </div>\n );\n })}\n </div>\n </div>\n\n {errorState ? (\n <div className=\"solid-generate-code-popup__notice is-warning\">\n <AlertTriangle size={16} />\n <span>{errorState}</span>\n </div>\n ) : null}\n\n <div className=\"solid-generate-code-popup__actions\">\n <SolidButton\n size=\"small\"\n autoFocus\n severity=\"danger\"\n leftIcon={<Trash2 size={14} />}\n onClick={handleClear}\n >\n Clear Package Runtime\n </SolidButton>\n <SolidButton size=\"small\" variant=\"outline\" onClick={() => dispatch(closePopup())}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n );\n};\n\nexport { ClearModulePackageRuntimeHeaderAction };\n"]}
@@ -0,0 +1,205 @@
1
+ import { useMemo, useState } from "react";
2
+ import { useDispatch } from "react-redux";
3
+ import { AlertTriangle, Check, Copy, HardDriveDownload, TerminalSquare, Trash2 } from "lucide-react";
4
+ import { SolidCircularLoader } from "../../../../../../components/core/common/SolidLoaders/SolidCircularLoader";
5
+ import { useClearModulePackageRuntimeMutation } from "../../../../../../redux/api/moduleApi";
6
+ import { closePopup } from "../../../../../../redux/features/popupSlice";
7
+ import { showToast } from "../../../../../../redux/features/toastSlice";
8
+ import { SolidButton } from "../../../../../shad-cn-ui";
9
+
10
+ type RuntimeCommand = {
11
+ key: string;
12
+ label: string;
13
+ command: string;
14
+ help: string;
15
+ };
16
+
17
+ const ClearModulePackageRuntimeHeaderAction = () => {
18
+ const dispatch = useDispatch();
19
+ const [clearModulePackageRuntime] = useClearModulePackageRuntimeMutation();
20
+ const [isClearing, setIsClearing] = useState(false);
21
+ const [errorState, setErrorState] = useState<string | null>(null);
22
+ const [copiedCommandKey, setCopiedCommandKey] = useState<string | null>(null);
23
+
24
+ const commands = useMemo<RuntimeCommand[]>(
25
+ () => [
26
+ {
27
+ key: "build-api",
28
+ label: "Build API and shared artifacts",
29
+ command: "npx -y @solidxai/solidctl@latest build",
30
+ help: "Run from the consuming project root after the imported files are in place.",
31
+ },
32
+ {
33
+ key: "build-ui",
34
+ label: "Build UI bundle",
35
+ command: "npx -y @solidxai/solidctl@latest build --ui-only",
36
+ help: "Use this when the imported package introduced or changed `solid-ui` files.",
37
+ },
38
+ {
39
+ key: "seed-module",
40
+ label: "Seed one imported module",
41
+ command: "npx -y @solidxai/solidctl@latest seed --modules-to-seed <module-name>",
42
+ help: "Replace `<module-name>` with the imported module if metadata files were already placed locally.",
43
+ },
44
+ ],
45
+ []
46
+ );
47
+
48
+ const handleCopy = async (command: RuntimeCommand) => {
49
+ try {
50
+ await navigator.clipboard.writeText(command.command);
51
+ setCopiedCommandKey(command.key);
52
+ window.setTimeout(() => {
53
+ setCopiedCommandKey((current) => (current === command.key ? null : current));
54
+ }, 1800);
55
+ } catch (error) {
56
+ dispatch(
57
+ showToast({
58
+ severity: "error",
59
+ summary: "Copy failed",
60
+ detail: "Unable to copy the recovery command to the clipboard.",
61
+ })
62
+ );
63
+ }
64
+ };
65
+
66
+ const handleClear = async () => {
67
+ try {
68
+ setIsClearing(true);
69
+ setErrorState(null);
70
+
71
+ const response = await clearModulePackageRuntime({}).unwrap();
72
+ const removedImports = Number(response?.removedImportTransactions ?? 0);
73
+ const removedExports = Number(response?.removedExportTransactions ?? 0);
74
+
75
+ dispatch(
76
+ showToast({
77
+ severity: "success",
78
+ summary: "Package runtime cleared",
79
+ detail: `Removed ${removedImports} import run(s) and ${removedExports} export run(s) from local module package runtime storage.`,
80
+ })
81
+ );
82
+ dispatch(closePopup());
83
+ } catch (error: any) {
84
+ const detail = error?.data?.message || error?.message || "Unable to clear package runtime.";
85
+ setErrorState(String(detail));
86
+ dispatch(showToast({ severity: "error", summary: "Cleanup failed", detail: String(detail) }));
87
+ } finally {
88
+ setIsClearing(false);
89
+ }
90
+ };
91
+
92
+ if (isClearing) {
93
+ return (
94
+ <div className="solid-generate-code-popup">
95
+ <div className="solid-filter-dialog-head solid-generate-code-popup__head">
96
+ <div>
97
+ <h3 className="solid-filter-dialog-title">Clear Package Runtime</h3>
98
+ <p className="solid-filter-dialog-subtitle m-0">Removing past import and export working files from local runtime storage.</p>
99
+ </div>
100
+ </div>
101
+ <div className="solid-filter-dialog-sep" />
102
+ <div className="solid-filter-dialog-body solid-generate-code-popup__body solid-generate-code-popup__body--loading">
103
+ <SolidCircularLoader />
104
+ <p className="solid-generate-code-popup__loading-title">Clearing runtime storage...</p>
105
+ <p className="solid-generate-code-popup__loading-copy">Deleting past `.sldx` imports, exports, extracted previews, and resumable transaction markers.</p>
106
+ </div>
107
+ </div>
108
+ );
109
+ }
110
+
111
+ return (
112
+ <div className="solid-generate-code-popup">
113
+ <div className="solid-filter-dialog-head solid-generate-code-popup__head">
114
+ <div>
115
+ <h3 className="solid-filter-dialog-title">Clear Package Runtime</h3>
116
+ <p className="solid-filter-dialog-subtitle m-0">
117
+ Remove all past module package import and export temp storage from the local SolidX runtime.
118
+ </p>
119
+ </div>
120
+ </div>
121
+ <div className="solid-filter-dialog-sep" />
122
+ <div className="solid-filter-dialog-body solid-generate-code-popup__body">
123
+ <p className="solid-generate-code-popup__intro">
124
+ This clears all incomplete and completed package import or export runs, including previews, extracted archives,
125
+ resumable transaction state, and generated `.sldx` export artifacts.
126
+ </p>
127
+
128
+ <div className="solid-generate-code-popup__panel">
129
+ <div className="solid-generate-code-popup__panel-title">
130
+ <HardDriveDownload size={15} />
131
+ <span>What gets removed</span>
132
+ </div>
133
+ <ul className="solid-generate-code-popup__list">
134
+ <li>Uploaded `.sldx` files and extracted import working folders</li>
135
+ <li>Import preview metadata, status files, and resumable pointers</li>
136
+ <li>Generated export staging folders and downloaded archive temp files</li>
137
+ <li>Any stale package runtime state kept under `.solidx-runtime`</li>
138
+ </ul>
139
+ </div>
140
+
141
+ <div className="solid-generate-code-popup__notice is-warning">
142
+ <AlertTriangle size={16} />
143
+ <span>
144
+ If a package was already imported and files were placed into `solid-api` or `solid-ui`, this cleanup does not
145
+ roll those files back. If build and seed were not run yet, the developer must do that manually afterward.
146
+ </span>
147
+ </div>
148
+
149
+ <div className="solid-generate-code-popup__panel">
150
+ <div className="solid-generate-code-popup__panel-title">
151
+ <TerminalSquare size={15} />
152
+ <span>Manual recovery commands</span>
153
+ </div>
154
+ <div className="solid-generate-code-popup__command-grid">
155
+ {commands.map((command) => {
156
+ const copied = copiedCommandKey === command.key;
157
+ return (
158
+ <div key={command.key} className="solid-generate-code-popup__command-item">
159
+ <div className="solid-generate-code-popup__command-meta">
160
+ <div className="solid-generate-code-popup__command-label">{command.label}</div>
161
+ <pre className="solid-generate-code-popup__command-code">{command.command}</pre>
162
+ <div className="solid-generate-code-popup__command-help">{command.help}</div>
163
+ </div>
164
+ <SolidButton
165
+ size="small"
166
+ variant="outline"
167
+ className="solid-generate-code-popup__command-copy"
168
+ leftIcon={copied ? <Check size={14} /> : <Copy size={14} />}
169
+ onClick={() => handleCopy(command)}
170
+ >
171
+ {copied ? "Copied" : "Copy"}
172
+ </SolidButton>
173
+ </div>
174
+ );
175
+ })}
176
+ </div>
177
+ </div>
178
+
179
+ {errorState ? (
180
+ <div className="solid-generate-code-popup__notice is-warning">
181
+ <AlertTriangle size={16} />
182
+ <span>{errorState}</span>
183
+ </div>
184
+ ) : null}
185
+
186
+ <div className="solid-generate-code-popup__actions">
187
+ <SolidButton
188
+ size="small"
189
+ autoFocus
190
+ severity="danger"
191
+ leftIcon={<Trash2 size={14} />}
192
+ onClick={handleClear}
193
+ >
194
+ Clear Package Runtime
195
+ </SolidButton>
196
+ <SolidButton size="small" variant="outline" onClick={() => dispatch(closePopup())}>
197
+ Cancel
198
+ </SolidButton>
199
+ </div>
200
+ </div>
201
+ </div>
202
+ );
203
+ };
204
+
205
+ export { ClearModulePackageRuntimeHeaderAction };
@@ -0,0 +1,4 @@
1
+ import { SolidListRowdataDynamicFunctionProps } from "../../../../../../types/solid-core";
2
+ declare const ExportModulePackageRowAction: (event: SolidListRowdataDynamicFunctionProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default ExportModulePackageRowAction;
4
+ //# sourceMappingURL=ExportModulePackageRowAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExportModulePackageRowAction.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAG1F,QAAA,MAAM,4BAA4B,UAAW,oCAAoC,4CAqIhF,CAAC;AAEF,eAAe,4BAA4B,CAAC"}