@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
@@ -1 +1 @@
1
- {"version":3,"file":"solidEntityApiPool.js","sourceRoot":"","sources":["../../../src/redux/store/solidEntityApiPool.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AnyAction, Dispatch, Middleware, Reducer } from \"@reduxjs/toolkit\";\nimport type { DynamicEntityApiMiddlewareManager } from \"./dynamicEntityApiMiddleware\";\nimport type { DynamicReducerManager } from \"./dynamicReducerManager\";\n\nexport const SOLID_ENTITY_API_POOL_LIMIT = 64;\n\ntype SolidEntityApi = {\n reducerPath: string;\n reducer: Reducer;\n middleware: Middleware;\n util?: {\n resetApiState?: () => AnyAction;\n };\n};\n\ntype SolidEntityApiPoolEntry = {\n entityName: string;\n api: SolidEntityApi;\n registeredAt: number;\n lastAccessedAt: number;\n};\n\ntype SolidEntityApiStore = {\n dispatch: Dispatch;\n getState: () => any;\n replaceReducer: (nextReducer: Reducer) => void;\n reducerManager: DynamicReducerManager;\n middlewareManager: DynamicEntityApiMiddlewareManager;\n};\n\nlet activeStore: SolidEntityApiStore | null = null;\nlet clock = 0;\nconst pool = new Map<string, SolidEntityApiPoolEntry>();\n\nfunction nextTimestamp() {\n clock += 1;\n return clock;\n}\n\nfunction log(message: string, data?: Record<string, unknown>) {\n // Centralized logs make pool behavior easy to trace in consuming apps.\n console.info(`[SolidEntityApiPool] ${message}`, data ?? {});\n}\n\nfunction warn(message: string, data?: Record<string, unknown>) {\n console.warn(`[SolidEntityApiPool] ${message}`, data ?? {});\n}\n\nfunction getLiveSnapshot() {\n return Array.from(pool.values()).map((entry) => ({\n entityName: entry.entityName,\n reducerPath: entry.api.reducerPath,\n registeredAt: entry.registeredAt,\n lastAccessedAt: entry.lastAccessedAt,\n active: Boolean(activeStore?.middlewareManager.has(entry.api.reducerPath)),\n }));\n}\n\nfunction getActiveEntries() {\n return Array.from(pool.values()).filter((entry) => activeStore?.middlewareManager.has(entry.api.reducerPath));\n}\n\nfunction hasActiveUsage(entry: SolidEntityApiPoolEntry) {\n if (!activeStore) return false;\n\n const state = activeStore.getState()?.[entry.api.reducerPath];\n if (!state) return false;\n\n const hasSubscriptions = Object.values(state.subscriptions ?? {}).some((subscription: any) => {\n return subscription && Object.keys(subscription).length > 0;\n });\n const hasPendingQueries = Object.values(state.queries ?? {}).some((query: any) => query?.status === \"pending\");\n const hasPendingMutations = Object.values(state.mutations ?? {}).some((mutation: any) => mutation?.status === \"pending\");\n\n return hasSubscriptions || hasPendingQueries || hasPendingMutations;\n}\n\nfunction findEvictionCandidate() {\n return getActiveEntries()\n .filter((entry) => !hasActiveUsage(entry))\n .sort((left, right) => left.lastAccessedAt - right.lastAccessedAt)[0] ?? null;\n}\n\nfunction evictIfNeeded(nextEntityName: string) {\n if (!activeStore) return;\n\n const activeEntries = getActiveEntries();\n if (activeEntries.length < SOLID_ENTITY_API_POOL_LIMIT) return;\n\n warn(\"Pool is full; attempting LRU eviction.\", {\n limit: SOLID_ENTITY_API_POOL_LIMIT,\n requestedEntityName: nextEntityName,\n activeCount: activeEntries.length,\n });\n\n const candidate = findEvictionCandidate();\n if (!candidate) {\n warn(\"Pool is full but all entries look active; allowing temporary overflow.\", {\n limit: SOLID_ENTITY_API_POOL_LIMIT,\n requestedEntityName: nextEntityName,\n activeCount: activeEntries.length,\n });\n return;\n }\n\n const resetApiState = candidate.api.util?.resetApiState;\n if (resetApiState) {\n activeStore.dispatch(resetApiState());\n }\n activeStore.middlewareManager.remove(candidate.api.reducerPath);\n activeStore.reducerManager.remove(candidate.api.reducerPath);\n activeStore.replaceReducer(activeStore.reducerManager.reduce);\n\n log(\"Evicted entity API from pool.\", {\n entityName: candidate.entityName,\n reducerPath: candidate.api.reducerPath,\n requestedEntityName: nextEntityName,\n });\n}\n\nexport function setSolidEntityApiStore(store: SolidEntityApiStore) {\n activeStore = store;\n}\n\nexport function ensureSolidEntityApiRegistered(entityName: string, api: SolidEntityApi) {\n const timestamp = nextTimestamp();\n const existingEntry = pool.get(entityName);\n\n if (existingEntry) {\n existingEntry.lastAccessedAt = timestamp;\n } else {\n pool.set(entityName, {\n entityName,\n api,\n registeredAt: timestamp,\n lastAccessedAt: timestamp,\n });\n log(\"Created entity API cache entry.\", {\n entityName,\n reducerPath: api.reducerPath,\n });\n }\n\n if (!activeStore || activeStore.middlewareManager.has(api.reducerPath)) return;\n\n evictIfNeeded(entityName);\n\n activeStore.reducerManager.add(api.reducerPath, api.reducer);\n activeStore.middlewareManager.add(api.reducerPath, api.middleware);\n\n log(\"Dynamically registered entity API reducer and middleware.\", {\n entityName,\n reducerPath: api.reducerPath,\n activeCount: getActiveEntries().length,\n limit: SOLID_ENTITY_API_POOL_LIMIT,\n });\n}\n\nexport function getSolidEntityApiPoolSnapshot() {\n return getLiveSnapshot();\n}\n\nexport function resetSolidEntityApiPoolForTests() {\n activeStore = null;\n clock = 0;\n pool.clear();\n}\n"]}
1
+ {"version":3,"file":"solidEntityApiPool.js","sourceRoot":"","sources":["../../../src/redux/store/solidEntityApiPool.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AnyAction, Dispatch, Middleware, Reducer } from \"@reduxjs/toolkit\";\nimport type { DynamicEntityApiMiddlewareManager } from \"./dynamicEntityApiMiddleware\";\nimport type { DynamicReducerManager } from \"./dynamicReducerManager\";\n\nexport const SOLID_ENTITY_API_POOL_LIMIT = 64;\n\ntype SolidEntityApi = {\n reducerPath: string;\n reducer: Reducer;\n middleware: Middleware;\n util?: {\n resetApiState?: () => AnyAction;\n };\n};\n\ntype SolidEntityApiPoolEntry = {\n entityName: string;\n api: SolidEntityApi;\n registeredAt: number;\n lastAccessedAt: number;\n};\n\ntype SolidEntityApiStore = {\n dispatch: Dispatch;\n getState: () => any;\n replaceReducer: (nextReducer: Reducer) => void;\n reducerManager: DynamicReducerManager;\n middlewareManager: DynamicEntityApiMiddlewareManager;\n};\n\nlet activeStore: SolidEntityApiStore | null = null;\nlet clock = 0;\nconst pool = new Map<string, SolidEntityApiPoolEntry>();\n\nfunction nextTimestamp() {\n clock += 1;\n return clock;\n}\n\nfunction log(message: string, data?: Record<string, unknown>) {\n // Centralized logs make pool behavior easy to trace in consuming apps.\n console.info(`[SolidEntityApiPool] ${message}`, data ?? {});\n}\n\nfunction warn(message: string, data?: Record<string, unknown>) {\n console.warn(`[SolidEntityApiPool] ${message}`, data ?? {});\n}\n\nfunction getLiveSnapshot() {\n return Array.from(pool.values()).map((entry) => ({\n entityName: entry.entityName,\n reducerPath: entry.api.reducerPath,\n registeredAt: entry.registeredAt,\n lastAccessedAt: entry.lastAccessedAt,\n active: Boolean(activeStore?.middlewareManager.has(entry.api.reducerPath)),\n }));\n}\n\nfunction getActiveEntries() {\n return Array.from(pool.values()).filter((entry) => activeStore?.middlewareManager.has(entry.api.reducerPath));\n}\n\nfunction hasActiveUsage(entry: SolidEntityApiPoolEntry) {\n if (!activeStore) return false;\n\n const state = activeStore.getState()?.[entry.api.reducerPath];\n if (!state) return false;\n\n const hasSubscriptions = Object.values(state.subscriptions ?? {}).some((subscription: any) => {\n return subscription && Object.keys(subscription).length > 0;\n });\n const hasPendingQueries = Object.values(state.queries ?? {}).some((query: any) => query?.status === \"pending\");\n const hasPendingMutations = Object.values(state.mutations ?? {}).some((mutation: any) => mutation?.status === \"pending\");\n\n return hasSubscriptions || hasPendingQueries || hasPendingMutations;\n}\n\nfunction findEvictionCandidate() {\n return getActiveEntries()\n .filter((entry) => !hasActiveUsage(entry))\n .sort((left, right) => left.lastAccessedAt - right.lastAccessedAt)[0] ?? null;\n}\n\nfunction evictIfNeeded(nextEntityName: string) {\n if (!activeStore) return;\n\n const activeEntries = getActiveEntries();\n if (activeEntries.length < SOLID_ENTITY_API_POOL_LIMIT) return;\n\n warn(\"Pool is full; attempting LRU eviction.\", {\n limit: SOLID_ENTITY_API_POOL_LIMIT,\n requestedEntityName: nextEntityName,\n activeCount: activeEntries.length,\n });\n\n const candidate = findEvictionCandidate();\n if (!candidate) {\n warn(\"Pool is full but all entries look active; allowing temporary overflow.\", {\n limit: SOLID_ENTITY_API_POOL_LIMIT,\n requestedEntityName: nextEntityName,\n activeCount: activeEntries.length,\n });\n return;\n }\n\n const resetApiState = candidate.api.util?.resetApiState;\n if (resetApiState) {\n activeStore.dispatch(resetApiState());\n }\n activeStore.middlewareManager.remove(candidate.api.reducerPath);\n activeStore.reducerManager.remove(candidate.api.reducerPath);\n activeStore.replaceReducer(activeStore.reducerManager.reduce);\n\n log(\"Evicted entity API from pool.\", {\n entityName: candidate.entityName,\n reducerPath: candidate.api.reducerPath,\n requestedEntityName: nextEntityName,\n });\n}\n\nexport function setSolidEntityApiStore(store: SolidEntityApiStore) {\n activeStore = store;\n}\n\nexport function getSolidStoreDispatch() {\n return activeStore?.dispatch ?? null;\n}\n\nexport function ensureSolidEntityApiRegistered(entityName: string, api: SolidEntityApi) {\n const timestamp = nextTimestamp();\n const existingEntry = pool.get(entityName);\n\n if (existingEntry) {\n existingEntry.lastAccessedAt = timestamp;\n } else {\n pool.set(entityName, {\n entityName,\n api,\n registeredAt: timestamp,\n lastAccessedAt: timestamp,\n });\n log(\"Created entity API cache entry.\", {\n entityName,\n reducerPath: api.reducerPath,\n });\n }\n\n if (!activeStore || activeStore.middlewareManager.has(api.reducerPath)) return;\n\n evictIfNeeded(entityName);\n\n activeStore.reducerManager.add(api.reducerPath, api.reducer);\n activeStore.middlewareManager.add(api.reducerPath, api.middleware);\n\n log(\"Dynamically registered entity API reducer and middleware.\", {\n entityName,\n reducerPath: api.reducerPath,\n activeCount: getActiveEntries().length,\n limit: SOLID_ENTITY_API_POOL_LIMIT,\n });\n}\n\nexport function getSolidEntityApiPoolSnapshot() {\n return getLiveSnapshot();\n}\n\nexport function resetSolidEntityApiPoolForTests() {\n activeStore = null;\n clock = 0;\n pool.clear();\n}\n"]}
@@ -122,6 +122,10 @@ export function setSolidEntityApiStore(store: SolidEntityApiStore) {
122
122
  activeStore = store;
123
123
  }
124
124
 
125
+ export function getSolidStoreDispatch() {
126
+ return activeStore?.dispatch ?? null;
127
+ }
128
+
125
129
  export function ensureSolidEntityApiRegistered(entityName: string, api: SolidEntityApi) {
126
130
  const timestamp = nextTimestamp();
127
131
  const existingEntry = pool.get(entityName);
@@ -3317,6 +3317,62 @@ li.header-li-px {
3317
3317
  color: color-mix(in srgb, var(--foreground) 72%, transparent);
3318
3318
  }
3319
3319
 
3320
+ .solid-generate-code-popup__command-grid {
3321
+ display: flex;
3322
+ flex-direction: column;
3323
+ gap: 12px;
3324
+ }
3325
+
3326
+ .solid-generate-code-popup__command-item {
3327
+ display: flex;
3328
+ align-items: flex-start;
3329
+ justify-content: space-between;
3330
+ gap: 14px;
3331
+ padding: 14px;
3332
+ border: 1px solid color-mix(in srgb, var(--border) 86%, transparent);
3333
+ border-radius: 14px;
3334
+ background: color-mix(in srgb, var(--card) 98%, var(--background) 2%);
3335
+ }
3336
+
3337
+ .solid-generate-code-popup__command-meta {
3338
+ min-width: 0;
3339
+ display: flex;
3340
+ flex-direction: column;
3341
+ gap: 8px;
3342
+ }
3343
+
3344
+ .solid-generate-code-popup__command-label {
3345
+ font-size: 11px;
3346
+ font-weight: 700;
3347
+ letter-spacing: 0.08em;
3348
+ text-transform: uppercase;
3349
+ color: color-mix(in srgb, var(--foreground) 72%, transparent);
3350
+ }
3351
+
3352
+ .solid-generate-code-popup__command-code {
3353
+ margin: 0;
3354
+ padding: 12px 14px;
3355
+ border-radius: 12px;
3356
+ background: #101828;
3357
+ color: #f8fafc;
3358
+ font-size: 13px;
3359
+ line-height: 1.6;
3360
+ font-family: "SFMono-Regular", SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
3361
+ overflow-x: auto;
3362
+ white-space: pre-wrap;
3363
+ word-break: break-word;
3364
+ }
3365
+
3366
+ .solid-generate-code-popup__command-help {
3367
+ font-size: 13px;
3368
+ line-height: 1.6;
3369
+ color: color-mix(in srgb, var(--foreground) 70%, transparent);
3370
+ }
3371
+
3372
+ .solid-generate-code-popup__command-copy {
3373
+ flex-shrink: 0;
3374
+ }
3375
+
3320
3376
  .solid-filter-dialog-shell-grouping .solid-filter-dialog-body {
3321
3377
  padding: 10px 12px 12px;
3322
3378
  }
@@ -941,6 +941,8 @@ body {
941
941
  font-size: 11.5px;
942
942
  line-height: 1.45;
943
943
  color: color-mix(in srgb, var(--foreground) 72%, transparent);
944
+ white-space: pre-wrap;
945
+ overflow-wrap: anywhere;
944
946
  }
945
947
 
946
948
  .solid-toast-close {
@@ -1036,10 +1038,12 @@ body {
1036
1038
  width: min(560px, calc(100vw - 32px));
1037
1039
  }
1038
1040
 
1041
+ .solid-field-delete-flow-dialog .solid-shadcn-dialog-head,
1039
1042
  .solid-field-delete-flow-head {
1040
1043
  text-align: left;
1041
1044
  }
1042
1045
 
1046
+ .solid-field-delete-flow-dialog .solid-shadcn-dialog-body,
1043
1047
  .solid-field-delete-flow-body {
1044
1048
  text-align: left;
1045
1049
  }
@@ -1075,6 +1079,7 @@ body {
1075
1079
  color: var(--muted-foreground);
1076
1080
  }
1077
1081
 
1082
+ .solid-field-delete-flow-dialog .solid-shadcn-dialog-actions,
1078
1083
  .solid-field-delete-flow-actions {
1079
1084
  justify-content: flex-end;
1080
1085
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AppEventListener.d.ts","sourceRoot":"","sources":["../../src/routes/AppEventListener.tsx"],"names":[],"mappings":"AAWA,wBAAgB,gBAAgB,4CAsB/B"}
1
+ {"version":3,"file":"AppEventListener.d.ts","sourceRoot":"","sources":["../../src/routes/AppEventListener.tsx"],"names":[],"mappings":"AAiEA,wBAAgB,gBAAgB,4CA6B/B"}
@@ -1,23 +1,73 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect } from "react";
3
3
  import { eventBus, AppEvents } from "../helpers/eventBus";
4
- import { useRouter } from "../hooks/useRouter";
5
4
  import { usePathname } from "../hooks/usePathname";
6
5
  import { SolidStudio, PreviewModePersist } from "../components/layout/SolidAiStudioLayout";
6
+ import { useDispatch } from "react-redux";
7
+ import { showToast } from "../redux/features/toastSlice";
8
+ import { env } from "../adapters/env";
9
+ function isDevMode() {
10
+ var envName = (env("VITE_SOLIDX_ENV") || "").toLowerCase();
11
+ return envName === "dev" || envName === "development";
12
+ }
13
+ function formatUnknownValue(value) {
14
+ if (typeof value === "string")
15
+ return value;
16
+ if (value === null || value === undefined)
17
+ return "";
18
+ try {
19
+ return JSON.stringify(value, null, 2);
20
+ }
21
+ catch (_a) {
22
+ return String(value);
23
+ }
24
+ }
25
+ function buildDevErrorDetail(payload) {
26
+ var _a, _b;
27
+ if (!payload)
28
+ return undefined;
29
+ var error = payload.error;
30
+ var lines = [];
31
+ if (payload.status !== undefined) {
32
+ lines.push("Status: ".concat(String(payload.status)));
33
+ }
34
+ if (payload.message) {
35
+ lines.push("Summary: ".concat(payload.message));
36
+ }
37
+ if (error === null || error === void 0 ? void 0 : error.message) {
38
+ lines.push("Error: ".concat(error.message));
39
+ }
40
+ if (error === null || error === void 0 ? void 0 : error.code) {
41
+ lines.push("Code: ".concat(error.code));
42
+ }
43
+ var responseData = (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : error === null || error === void 0 ? void 0 : error.data;
44
+ var responseText = formatUnknownValue(responseData);
45
+ if (responseText) {
46
+ lines.push("Response:\n".concat(responseText));
47
+ }
48
+ if (error === null || error === void 0 ? void 0 : error.stack) {
49
+ lines.push("Stack:\n".concat(error.stack));
50
+ }
51
+ return lines.length > 0 ? lines.join("\n\n") : undefined;
52
+ }
7
53
  export function AppEventListener() {
8
- var router = useRouter();
9
54
  var pathname = usePathname();
55
+ var dispatch = useDispatch();
10
56
  useEffect(function () {
11
57
  var off = eventBus.on(AppEvents.GlobalError, function (payload) {
12
- if (payload === null || payload === void 0 ? void 0 : payload.message) {
13
- sessionStorage.setItem("solidx.globalError", payload.message);
14
- }
15
- if (pathname !== "/error" && pathname.startsWith("/admin")) {
16
- router.push("/error");
58
+ if (!pathname.startsWith("/admin") && !pathname.startsWith("/auth")) {
59
+ return;
17
60
  }
61
+ dispatch(showToast({
62
+ severity: "error",
63
+ summary: (payload === null || payload === void 0 ? void 0 : payload.message) || "Something went wrong",
64
+ detail: isDevMode() ? buildDevErrorDetail(payload) : undefined,
65
+ sticky: isDevMode(),
66
+ life: isDevMode() ? 10000 : 4000,
67
+ }));
18
68
  });
19
69
  return function () { return off(); };
20
- }, [router, pathname]);
70
+ }, [dispatch, pathname]);
21
71
  return (_jsxs(_Fragment, { children: [_jsx(SolidStudio, {}), _jsx(PreviewModePersist, {})] }));
22
72
  }
23
73
  //# sourceMappingURL=AppEventListener.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppEventListener.js","sourceRoot":"","sources":["../../src/routes/AppEventListener.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAO3F,MAAM,UAAU,gBAAgB;IAC9B,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,SAAS,CAAC;QACR,IAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAqB,SAAS,CAAC,WAAW,EAAE,UAAC,OAAO;YACzE,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE;gBACpB,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;aAC/D;YACD,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC1D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,cAAM,OAAA,GAAG,EAAE,EAAL,CAAK,CAAC;IACrB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,8BACE,KAAC,WAAW,KAAG,EACf,KAAC,kBAAkB,KAAG,IACrB,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect } from \"react\";\nimport { eventBus, AppEvents } from \"../helpers/eventBus\";\nimport { useRouter } from \"../hooks/useRouter\";\nimport { usePathname } from \"../hooks/usePathname\";\nimport { SolidStudio, PreviewModePersist } from \"../components/layout/SolidAiStudioLayout\";\n\ntype GlobalErrorPayload = {\n status?: number | string;\n message?: string;\n};\n\nexport function AppEventListener() {\n const router = useRouter();\n const pathname = usePathname();\n\n useEffect(() => {\n const off = eventBus.on<GlobalErrorPayload>(AppEvents.GlobalError, (payload) => {\n if (payload?.message) {\n sessionStorage.setItem(\"solidx.globalError\", payload.message);\n }\n if (pathname !== \"/error\" && pathname.startsWith(\"/admin\")) {\n router.push(\"/error\");\n }\n });\n return () => off();\n }, [router, pathname]);\n\n return (\n <>\n <SolidStudio />\n <PreviewModePersist />\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"AppEventListener.js","sourceRoot":"","sources":["../../src/routes/AppEventListener.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from \"react\";\nimport { eventBus, AppEvents } from \"../helpers/eventBus\";\nimport { usePathname } from \"../hooks/usePathname\";\nimport { SolidStudio, PreviewModePersist } from \"../components/layout/SolidAiStudioLayout\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../redux/features/toastSlice\";\nimport { env } from \"../adapters/env\";\n\ntype GlobalErrorPayload = {\n status?: number | string;\n message?: string;\n error?: unknown;\n};\n\nfunction isDevMode() {\n const envName = (env(\"VITE_SOLIDX_ENV\") || \"\").toLowerCase();\n return envName === \"dev\" || envName === \"development\";\n}\n\nfunction formatUnknownValue(value: unknown) {\n if (typeof value === \"string\") return value;\n if (value === null || value === undefined) return \"\";\n\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\n\nfunction buildDevErrorDetail(payload?: GlobalErrorPayload) {\n if (!payload) return undefined;\n\n const error = payload.error as any;\n const lines: string[] = [];\n\n if (payload.status !== undefined) {\n lines.push(`Status: ${String(payload.status)}`);\n }\n\n if (payload.message) {\n lines.push(`Summary: ${payload.message}`);\n }\n\n if (error?.message) {\n lines.push(`Error: ${error.message}`);\n }\n\n if (error?.code) {\n lines.push(`Code: ${error.code}`);\n }\n\n const responseData = error?.response?.data ?? error?.data;\n const responseText = formatUnknownValue(responseData);\n if (responseText) {\n lines.push(`Response:\\n${responseText}`);\n }\n\n if (error?.stack) {\n lines.push(`Stack:\\n${error.stack}`);\n }\n\n return lines.length > 0 ? lines.join(\"\\n\\n\") : undefined;\n}\n\nexport function AppEventListener() {\n const pathname = usePathname();\n const dispatch = useDispatch();\n\n useEffect(() => {\n const off = eventBus.on<GlobalErrorPayload>(AppEvents.GlobalError, (payload) => {\n if (!pathname.startsWith(\"/admin\") && !pathname.startsWith(\"/auth\")) {\n return;\n }\n\n dispatch(\n showToast({\n severity: \"error\",\n summary: payload?.message || \"Something went wrong\",\n detail: isDevMode() ? buildDevErrorDetail(payload) : undefined,\n sticky: isDevMode(),\n life: isDevMode() ? 10000 : 4000,\n })\n );\n });\n return () => off();\n }, [dispatch, pathname]);\n\n return (\n <>\n <SolidStudio />\n <PreviewModePersist />\n </>\n );\n}\n"]}
@@ -1,29 +1,90 @@
1
1
  import { useEffect } from "react";
2
2
  import { eventBus, AppEvents } from "../helpers/eventBus";
3
- import { useRouter } from "../hooks/useRouter";
4
3
  import { usePathname } from "../hooks/usePathname";
5
4
  import { SolidStudio, PreviewModePersist } from "../components/layout/SolidAiStudioLayout";
5
+ import { useDispatch } from "react-redux";
6
+ import { showToast } from "../redux/features/toastSlice";
7
+ import { env } from "../adapters/env";
6
8
 
7
9
  type GlobalErrorPayload = {
8
10
  status?: number | string;
9
11
  message?: string;
12
+ error?: unknown;
10
13
  };
11
14
 
15
+ function isDevMode() {
16
+ const envName = (env("VITE_SOLIDX_ENV") || "").toLowerCase();
17
+ return envName === "dev" || envName === "development";
18
+ }
19
+
20
+ function formatUnknownValue(value: unknown) {
21
+ if (typeof value === "string") return value;
22
+ if (value === null || value === undefined) return "";
23
+
24
+ try {
25
+ return JSON.stringify(value, null, 2);
26
+ } catch {
27
+ return String(value);
28
+ }
29
+ }
30
+
31
+ function buildDevErrorDetail(payload?: GlobalErrorPayload) {
32
+ if (!payload) return undefined;
33
+
34
+ const error = payload.error as any;
35
+ const lines: string[] = [];
36
+
37
+ if (payload.status !== undefined) {
38
+ lines.push(`Status: ${String(payload.status)}`);
39
+ }
40
+
41
+ if (payload.message) {
42
+ lines.push(`Summary: ${payload.message}`);
43
+ }
44
+
45
+ if (error?.message) {
46
+ lines.push(`Error: ${error.message}`);
47
+ }
48
+
49
+ if (error?.code) {
50
+ lines.push(`Code: ${error.code}`);
51
+ }
52
+
53
+ const responseData = error?.response?.data ?? error?.data;
54
+ const responseText = formatUnknownValue(responseData);
55
+ if (responseText) {
56
+ lines.push(`Response:\n${responseText}`);
57
+ }
58
+
59
+ if (error?.stack) {
60
+ lines.push(`Stack:\n${error.stack}`);
61
+ }
62
+
63
+ return lines.length > 0 ? lines.join("\n\n") : undefined;
64
+ }
65
+
12
66
  export function AppEventListener() {
13
- const router = useRouter();
14
67
  const pathname = usePathname();
68
+ const dispatch = useDispatch();
15
69
 
16
70
  useEffect(() => {
17
71
  const off = eventBus.on<GlobalErrorPayload>(AppEvents.GlobalError, (payload) => {
18
- if (payload?.message) {
19
- sessionStorage.setItem("solidx.globalError", payload.message);
20
- }
21
- if (pathname !== "/error" && pathname.startsWith("/admin")) {
22
- router.push("/error");
72
+ if (!pathname.startsWith("/admin") && !pathname.startsWith("/auth")) {
73
+ return;
23
74
  }
75
+
76
+ dispatch(
77
+ showToast({
78
+ severity: "error",
79
+ summary: payload?.message || "Something went wrong",
80
+ detail: isDevMode() ? buildDevErrorDetail(payload) : undefined,
81
+ sticky: isDevMode(),
82
+ life: isDevMode() ? 10000 : 4000,
83
+ })
84
+ );
24
85
  });
25
86
  return () => off();
26
- }, [router, pathname]);
87
+ }, [dispatch, pathname]);
27
88
 
28
89
  return (
29
90
  <>
@@ -5,6 +5,7 @@ declare module "nodemailer";
5
5
  declare module "mapbox-gl/dist/mapbox-gl.js";
6
6
  declare module "react-datepicker";
7
7
  declare module "moment";
8
+ declare module "jsoneditor";
8
9
 
9
10
  import React, { ReactNode } from 'react';
10
11
  import {
@@ -0,0 +1,4 @@
1
+ declare module "jsoneditor" {
2
+ const JSONEditor: any;
3
+ export default JSONEditor;
4
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidxai/core-ui",
3
- "version": "0.1.9-beta.18",
3
+ "version": "0.1.9-beta.19",
4
4
  "scripts": {
5
5
  "prebuild": "npm run copy-resources && npm run copy-styles",
6
6
  "build": "tsc -p tsconfig.json && tsc-alias -p tsconfig.json",
@@ -49,6 +49,7 @@
49
49
  "handlebars": "^4.7.8",
50
50
  "html-react-parser": "^5.2.2",
51
51
  "html2canvas": "^1.4.1",
52
+ "jsoneditor": "^10.4.3",
52
53
  "jspdf": "^2.5.1",
53
54
  "jwt-decode": "^4.0.0",
54
55
  "lodash": "^4.17.21",