@solidxai/core-ui 0.1.9-beta.9 → 0.1.10

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 (871) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/auth/handleLogout.d.ts +1 -1
  3. package/dist/adapters/auth/handleLogout.d.ts.map +1 -1
  4. package/dist/adapters/auth/handleLogout.js +20 -32
  5. package/dist/adapters/auth/handleLogout.js.map +1 -1
  6. package/dist/adapters/auth/handleLogout.ts +7 -14
  7. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  8. package/dist/components/auth/AuthLayout.js +23 -19
  9. package/dist/components/auth/AuthLayout.js.map +1 -1
  10. package/dist/components/auth/AuthLayout.tsx +62 -52
  11. package/dist/components/auth/ForgotPasswordThankYou.js +1 -1
  12. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  13. package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -2
  14. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts +2 -0
  15. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts.map +1 -0
  16. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js +112 -0
  17. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js.map +1 -0
  18. package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.tsx +78 -0
  19. package/dist/components/auth/SolidChangeForcePassword.js +2 -2
  20. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  21. package/dist/components/auth/SolidChangeForcePassword.tsx +13 -13
  22. package/dist/components/auth/SolidForgotPassword.js +1 -1
  23. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  24. package/dist/components/auth/SolidForgotPassword.tsx +3 -3
  25. package/dist/components/auth/SolidInitialLoginOtp.js +1 -1
  26. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  27. package/dist/components/auth/SolidInitialLoginOtp.tsx +2 -2
  28. package/dist/components/auth/SolidInitiateRegisterOtp.js +1 -1
  29. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  30. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +2 -2
  31. package/dist/components/auth/SolidLogin.js +4 -4
  32. package/dist/components/auth/SolidLogin.js.map +1 -1
  33. package/dist/components/auth/SolidLogin.tsx +13 -13
  34. package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
  35. package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
  36. package/dist/components/auth/SolidOTPVerify.js +67 -0
  37. package/dist/components/auth/SolidOTPVerify.js.map +1 -0
  38. package/dist/components/auth/SolidOTPVerify.tsx +133 -0
  39. package/dist/components/auth/SolidRegister.js +6 -6
  40. package/dist/components/auth/SolidRegister.js.map +1 -1
  41. package/dist/components/auth/SolidRegister.tsx +15 -15
  42. package/dist/components/auth/SolidResetPassword.js +2 -2
  43. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  44. package/dist/components/auth/SolidResetPassword.tsx +8 -8
  45. package/dist/components/common/AuthBanner.js.map +1 -1
  46. package/dist/components/common/BackButton.js +1 -1
  47. package/dist/components/common/BackButton.js.map +1 -1
  48. package/dist/components/common/BackButton.tsx +1 -1
  49. package/dist/components/common/CancelButton.js +2 -2
  50. package/dist/components/common/CancelButton.js.map +1 -1
  51. package/dist/components/common/CancelButton.tsx +3 -3
  52. package/dist/components/common/GeneralSettings.js +18 -18
  53. package/dist/components/common/GeneralSettings.js.map +1 -1
  54. package/dist/components/common/GeneralSettings.tsx +137 -137
  55. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  56. package/dist/components/common/SettingsComponent.js +4 -1
  57. package/dist/components/common/SettingsComponent.js.map +1 -1
  58. package/dist/components/common/SettingsComponent.module.css +95 -2
  59. package/dist/components/common/SettingsComponent.tsx +4 -1
  60. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  61. package/dist/components/common/SocialMediaLogin.js +1 -1
  62. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  63. package/dist/components/common/SocialMediaLogin.tsx +4 -0
  64. package/dist/components/common/SolidExport.d.ts +1 -1
  65. package/dist/components/common/SolidExport.d.ts.map +1 -1
  66. package/dist/components/common/SolidExport.js +11 -4
  67. package/dist/components/common/SolidExport.js.map +1 -1
  68. package/dist/components/common/SolidExport.tsx +12 -2
  69. package/dist/components/common/SolidFaviconProvider.d.ts +3 -0
  70. package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -0
  71. package/dist/components/common/SolidFaviconProvider.js +102 -0
  72. package/dist/components/common/SolidFaviconProvider.js.map +1 -0
  73. package/dist/components/common/SolidFaviconProvider.tsx +55 -0
  74. package/dist/components/common/SolidFormHeader.js +1 -1
  75. package/dist/components/common/SolidFormHeader.js.map +1 -1
  76. package/dist/components/common/SolidFormHeader.tsx +1 -1
  77. package/dist/components/common/SolidModuleHome.js +2 -2
  78. package/dist/components/common/SolidModuleHome.js.map +1 -1
  79. package/dist/components/common/SolidModuleHome.tsx +7 -7
  80. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +3 -3
  81. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  82. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +6 -6
  83. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js +1 -1
  84. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js.map +1 -1
  85. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.tsx +4 -4
  86. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js +1 -1
  87. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js.map +1 -1
  88. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.tsx +4 -4
  89. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js +1 -1
  90. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js.map +1 -1
  91. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.tsx +1 -1
  92. package/dist/components/core/card/SolidCardView.js +1 -1
  93. package/dist/components/core/card/SolidCardView.js.map +1 -1
  94. package/dist/components/core/card/SolidCardView.tsx +6 -6
  95. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  96. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  97. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  98. package/dist/components/core/card/SolidCardViewConfigure.tsx +5 -1
  99. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  100. package/dist/components/core/chatter/SolidChatter.js +29 -16
  101. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  102. package/dist/components/core/chatter/SolidChatter.tsx +28 -14
  103. package/dist/components/core/chatter/SolidChatterAuditMessage.js +1 -1
  104. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  105. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +2 -2
  106. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  107. package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
  108. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  109. package/dist/components/core/chatter/SolidChatterHeader.tsx +10 -6
  110. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +1 -0
  111. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  112. package/dist/components/core/chatter/SolidChatterMessageBox.js +151 -12
  113. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  114. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +256 -15
  115. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  116. package/dist/components/core/chatter/SolidMessageComposer.js +3 -2
  117. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  118. package/dist/components/core/chatter/SolidMessageComposer.tsx +11 -9
  119. package/dist/components/core/chatter/chatter.module.css +1 -1
  120. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  121. package/dist/components/core/common/FilterComponent.js +5 -3
  122. package/dist/components/core/common/FilterComponent.js.map +1 -1
  123. package/dist/components/core/common/FilterComponent.tsx +6 -2
  124. package/dist/components/core/common/GroupingComponent.d.ts.map +1 -1
  125. package/dist/components/core/common/GroupingComponent.js +2 -2
  126. package/dist/components/core/common/GroupingComponent.js.map +1 -1
  127. package/dist/components/core/common/GroupingComponent.tsx +2 -0
  128. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
  129. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
  130. package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
  131. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
  132. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  133. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  134. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +1 -10
  135. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  136. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +1 -8
  137. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  138. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +6 -11
  139. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  140. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +5 -31
  141. package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
  142. package/dist/components/core/common/SolidCreateButton.js +16 -1
  143. package/dist/components/core/common/SolidCreateButton.js.map +1 -1
  144. package/dist/components/core/common/SolidCreateButton.tsx +18 -1
  145. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +61 -1
  146. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  147. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +3 -1
  148. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  149. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +4 -2
  150. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
  151. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +19 -1
  152. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
  153. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +16 -3
  154. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  155. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +168 -26
  156. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  157. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +174 -10
  158. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  159. package/dist/components/core/common/SolidGlobalSearchElement.js +180 -90
  160. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  161. package/dist/components/core/common/SolidGlobalSearchElement.tsx +167 -49
  162. package/dist/components/core/common/SolidLayoutViews.js +2 -2
  163. package/dist/components/core/common/SolidLayoutViews.js.map +1 -1
  164. package/dist/components/core/common/SolidLayoutViews.tsx +4 -4
  165. package/dist/components/core/common/SolidListViewOptions.js +1 -1
  166. package/dist/components/core/common/SolidListViewOptions.js.map +1 -1
  167. package/dist/components/core/common/SolidListViewOptions.tsx +1 -1
  168. package/dist/components/core/common/SolidPasswordHelperText.js +2 -2
  169. package/dist/components/core/common/SolidPasswordHelperText.js.map +1 -1
  170. package/dist/components/core/common/SolidPasswordHelperText.tsx +4 -4
  171. package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
  172. package/dist/components/core/common/SolidSaveCustomFilterForm.js +1 -1
  173. package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
  174. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +0 -1
  175. package/dist/components/core/common/SolidSearchBox.js +1 -1
  176. package/dist/components/core/common/SolidSearchBox.js.map +1 -1
  177. package/dist/components/core/common/SolidSearchBox.tsx +1 -1
  178. package/dist/components/core/common/SolidXAiIframe.js +1 -1
  179. package/dist/components/core/common/SolidXAiIframe.js.map +1 -1
  180. package/dist/components/core/common/SolidXAiIframe.tsx +1 -1
  181. package/dist/components/core/dashboard/mappers/echartsOptionMapper.d.ts +4 -0
  182. package/dist/components/core/dashboard/mappers/echartsOptionMapper.d.ts.map +1 -0
  183. package/dist/components/core/dashboard/mappers/echartsOptionMapper.js +79 -0
  184. package/dist/components/core/dashboard/mappers/echartsOptionMapper.js.map +1 -0
  185. package/dist/components/core/dashboard/mappers/echartsOptionMapper.ts +81 -0
  186. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.d.ts +3 -0
  187. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.d.ts.map +1 -0
  188. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.js +17 -0
  189. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.js.map +1 -0
  190. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.tsx +6 -0
  191. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.d.ts +3 -0
  192. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.d.ts.map +1 -0
  193. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.js +41 -0
  194. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.js.map +1 -0
  195. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.tsx +56 -0
  196. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.d.ts +3 -0
  197. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.d.ts.map +1 -0
  198. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js +14 -0
  199. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js.map +1 -0
  200. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.tsx +19 -0
  201. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.d.ts +3 -0
  202. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.d.ts.map +1 -0
  203. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.js +17 -0
  204. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.js.map +1 -0
  205. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.tsx +6 -0
  206. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.d.ts +3 -0
  207. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.d.ts.map +1 -0
  208. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.js +17 -0
  209. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.js.map +1 -0
  210. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.tsx +6 -0
  211. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.d.ts +3 -0
  212. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.d.ts.map +1 -0
  213. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js +12 -0
  214. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js.map +1 -0
  215. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx +39 -0
  216. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.d.ts +3 -0
  217. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.d.ts.map +1 -0
  218. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.js +7 -0
  219. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.js.map +1 -0
  220. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.tsx +9 -0
  221. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.d.ts +3 -0
  222. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.d.ts.map +1 -0
  223. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js +203 -0
  224. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js.map +1 -0
  225. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.tsx +251 -0
  226. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js +1 -1
  227. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js.map +1 -1
  228. package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx +2 -2
  229. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +16 -0
  230. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -0
  231. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +31 -0
  232. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -0
  233. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +43 -0
  234. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts +3 -0
  235. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts.map +1 -0
  236. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js +141 -0
  237. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js.map +1 -0
  238. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx +205 -0
  239. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts +4 -0
  240. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -0
  241. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +112 -0
  242. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -0
  243. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +146 -0
  244. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +11 -0
  245. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -0
  246. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +22 -0
  247. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -0
  248. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +36 -0
  249. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts +3 -0
  250. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts.map +1 -0
  251. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js +133 -0
  252. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js.map +1 -0
  253. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.ts +76 -0
  254. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +2 -2
  255. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  256. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +5 -5
  257. package/dist/components/core/field/FieldListViewData.js +2 -2
  258. package/dist/components/core/field/FieldListViewData.js.map +1 -1
  259. package/dist/components/core/field/FieldListViewData.tsx +5 -5
  260. package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
  261. package/dist/components/core/filter/fields/SolidBooleanField.js +2 -2
  262. package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
  263. package/dist/components/core/filter/fields/SolidBooleanField.tsx +5 -13
  264. package/dist/components/core/filter/fields/SolidDateField.d.ts.map +1 -1
  265. package/dist/components/core/filter/fields/SolidDateField.js +2 -2
  266. package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
  267. package/dist/components/core/filter/fields/SolidDateField.tsx +4 -3
  268. package/dist/components/core/filter/fields/SolidDatetimeField.d.ts.map +1 -1
  269. package/dist/components/core/filter/fields/SolidDatetimeField.js +2 -2
  270. package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
  271. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +5 -4
  272. package/dist/components/core/filter/fields/SolidExternalIdField.d.ts.map +1 -1
  273. package/dist/components/core/filter/fields/SolidExternalIdField.js +2 -2
  274. package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
  275. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +4 -3
  276. package/dist/components/core/filter/fields/SolidIdField.d.ts.map +1 -1
  277. package/dist/components/core/filter/fields/SolidIdField.js +2 -2
  278. package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
  279. package/dist/components/core/filter/fields/SolidIdField.tsx +3 -2
  280. package/dist/components/core/filter/fields/SolidIntField.d.ts.map +1 -1
  281. package/dist/components/core/filter/fields/SolidIntField.js +2 -2
  282. package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
  283. package/dist/components/core/filter/fields/SolidIntField.tsx +4 -3
  284. package/dist/components/core/filter/fields/SolidMediaMultipleField.d.ts.map +1 -1
  285. package/dist/components/core/filter/fields/SolidMediaMultipleField.js +2 -2
  286. package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
  287. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +4 -3
  288. package/dist/components/core/filter/fields/SolidMediaSingleField.d.ts.map +1 -1
  289. package/dist/components/core/filter/fields/SolidMediaSingleField.js +2 -2
  290. package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
  291. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +4 -3
  292. package/dist/components/core/filter/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  293. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +2 -2
  294. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
  295. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +5 -4
  296. package/dist/components/core/filter/fields/SolidSelectionStaticField.d.ts.map +1 -1
  297. package/dist/components/core/filter/fields/SolidSelectionStaticField.js +2 -2
  298. package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
  299. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +5 -4
  300. package/dist/components/core/filter/fields/SolidShortTextField.d.ts.map +1 -1
  301. package/dist/components/core/filter/fields/SolidShortTextField.js +2 -2
  302. package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
  303. package/dist/components/core/filter/fields/SolidShortTextField.tsx +4 -3
  304. package/dist/components/core/filter/fields/SolidTimeField.d.ts.map +1 -1
  305. package/dist/components/core/filter/fields/SolidTimeField.js +2 -2
  306. package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
  307. package/dist/components/core/filter/fields/SolidTimeField.tsx +5 -4
  308. package/dist/components/core/filter/fields/SolidUuidField.d.ts.map +1 -1
  309. package/dist/components/core/filter/fields/SolidUuidField.js +2 -2
  310. package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
  311. package/dist/components/core/filter/fields/SolidUuidField.tsx +5 -4
  312. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  313. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +2 -2
  314. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  315. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +5 -4
  316. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  317. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +2 -2
  318. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  319. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +5 -4
  320. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  321. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +2 -2
  322. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  323. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +5 -4
  324. package/dist/components/core/form/SolidFormActionHeader.js +8 -8
  325. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  326. package/dist/components/core/form/SolidFormActionHeader.tsx +13 -13
  327. package/dist/components/core/form/SolidFormFieldRender.js +1 -1
  328. package/dist/components/core/form/SolidFormFieldRender.js.map +1 -1
  329. package/dist/components/core/form/SolidFormFieldRender.tsx +1 -1
  330. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  331. package/dist/components/core/form/SolidFormFooter.js +14 -7
  332. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  333. package/dist/components/core/form/SolidFormFooter.tsx +16 -7
  334. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  335. package/dist/components/core/form/SolidFormView.js +207 -68
  336. package/dist/components/core/form/SolidFormView.js.map +1 -1
  337. package/dist/components/core/form/SolidFormView.tsx +197 -45
  338. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  339. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +16 -3
  340. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  341. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +25 -16
  342. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  343. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +19 -5
  344. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  345. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +25 -9
  346. package/dist/components/core/form/SolidFormViewShimmerLoading.js +1 -1
  347. package/dist/components/core/form/SolidFormViewShimmerLoading.js.map +1 -1
  348. package/dist/components/core/form/SolidFormViewShimmerLoading.tsx +46 -46
  349. package/dist/components/core/form/field-quality-check-fixes.md +201 -0
  350. package/dist/components/core/form/fields/SolidBooleanField.js +3 -3
  351. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  352. package/dist/components/core/form/fields/SolidBooleanField.tsx +3 -3
  353. package/dist/components/core/form/fields/SolidComputedField.js +1 -1
  354. package/dist/components/core/form/fields/SolidComputedField.js.map +1 -1
  355. package/dist/components/core/form/fields/SolidComputedField.tsx +1 -1
  356. package/dist/components/core/form/fields/SolidDateField.js +2 -2
  357. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  358. package/dist/components/core/form/fields/SolidDateField.tsx +2 -2
  359. package/dist/components/core/form/fields/SolidDateTimeField.js +2 -2
  360. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  361. package/dist/components/core/form/fields/SolidDateTimeField.tsx +2 -2
  362. package/dist/components/core/form/fields/SolidDecimalField.js +1 -1
  363. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  364. package/dist/components/core/form/fields/SolidDecimalField.tsx +1 -1
  365. package/dist/components/core/form/fields/SolidEmailField.js +1 -1
  366. package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
  367. package/dist/components/core/form/fields/SolidEmailField.tsx +1 -1
  368. package/dist/components/core/form/fields/SolidIntegerField.js +3 -3
  369. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  370. package/dist/components/core/form/fields/SolidIntegerField.tsx +3 -3
  371. package/dist/components/core/form/fields/SolidJsonField.js +3 -3
  372. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  373. package/dist/components/core/form/fields/SolidJsonField.tsx +3 -3
  374. package/dist/components/core/form/fields/SolidLongTextField.d.ts +0 -1
  375. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  376. package/dist/components/core/form/fields/SolidLongTextField.js +6 -58
  377. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  378. package/dist/components/core/form/fields/SolidLongTextField.tsx +12 -107
  379. package/dist/components/core/form/fields/SolidMediaMultipleField.js +11 -11
  380. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  381. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +28 -28
  382. package/dist/components/core/form/fields/SolidMediaSingleField.js +5 -5
  383. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  384. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +9 -9
  385. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  386. package/dist/components/core/form/fields/SolidPasswordField.js +12 -6
  387. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  388. package/dist/components/core/form/fields/SolidPasswordField.tsx +13 -6
  389. package/dist/components/core/form/fields/SolidRichTextField.js +2 -2
  390. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  391. package/dist/components/core/form/fields/SolidRichTextField.tsx +2 -2
  392. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +2 -2
  393. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  394. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +2 -2
  395. package/dist/components/core/form/fields/SolidSelectionStaticField.js +1 -1
  396. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  397. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +1 -1
  398. package/dist/components/core/form/fields/SolidShortTextField.js +1 -1
  399. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  400. package/dist/components/core/form/fields/SolidShortTextField.tsx +1 -1
  401. package/dist/components/core/form/fields/SolidTimeField.js +2 -2
  402. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  403. package/dist/components/core/form/fields/SolidTimeField.tsx +2 -2
  404. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +8 -0
  405. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -0
  406. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +123 -0
  407. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -0
  408. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +140 -0
  409. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  410. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +20 -18
  411. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  412. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +47 -37
  413. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  414. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +18 -18
  415. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  416. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +17 -13
  417. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  418. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +19 -17
  419. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  420. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +28 -27
  421. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +1 -1
  422. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  423. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +1 -1
  424. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js +1 -1
  425. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js.map +1 -1
  426. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.tsx +1 -1
  427. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js +1 -1
  428. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js.map +1 -1
  429. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.tsx +1 -1
  430. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +5 -5
  431. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  432. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +17 -17
  433. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js +1 -1
  434. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js.map +1 -1
  435. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +1 -1
  436. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js +1 -1
  437. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js.map +1 -1
  438. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.tsx +1 -1
  439. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  440. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  441. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  442. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  443. package/dist/components/core/kanban/KanbanBoard.tsx +2 -1
  444. package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
  445. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  446. package/dist/components/core/kanban/KanbanCard.js +15 -4
  447. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  448. package/dist/components/core/kanban/KanbanCard.tsx +27 -4
  449. package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
  450. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  451. package/dist/components/core/kanban/KanbanColumn.js +4 -4
  452. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  453. package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
  454. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  455. package/dist/components/core/kanban/SolidKanbanView.js +44 -39
  456. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  457. package/dist/components/core/kanban/SolidKanbanView.tsx +22 -10
  458. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  459. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  460. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  461. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +5 -1
  462. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  463. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  464. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +2 -1
  465. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  466. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  467. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  468. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +10 -21
  469. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  470. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  471. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  472. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +10 -18
  473. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  474. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +6 -3
  475. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  476. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +24 -30
  477. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  478. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  479. package/dist/components/core/list/ListViewRowActionPopup.js +1 -1
  480. package/dist/components/core/list/ListViewRowActionPopup.js.map +1 -1
  481. package/dist/components/core/list/ListViewRowActionPopup.tsx +1 -2
  482. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +1 -1
  483. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  484. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +3 -3
  485. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  486. package/dist/components/core/list/SolidDataTable.js +3 -2
  487. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  488. package/dist/components/core/list/SolidDataTable.tsx +9 -10
  489. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  490. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -0
  491. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  492. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -0
  493. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  494. package/dist/components/core/list/SolidListView.js +123 -100
  495. package/dist/components/core/list/SolidListView.js.map +1 -1
  496. package/dist/components/core/list/SolidListView.tsx +70 -41
  497. package/dist/components/core/list/SolidListViewColumn.d.ts +3 -1
  498. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  499. package/dist/components/core/list/SolidListViewColumn.js +27 -2
  500. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  501. package/dist/components/core/list/SolidListViewColumn.tsx +16 -3
  502. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  503. package/dist/components/core/list/SolidListViewConfigure.js +11 -10
  504. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  505. package/dist/components/core/list/SolidListViewConfigure.tsx +9 -3
  506. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  507. package/dist/components/core/list/SolidListViewHeaderButton.js +13 -3
  508. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  509. package/dist/components/core/list/SolidListViewHeaderButton.tsx +16 -7
  510. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  511. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +19 -7
  512. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  513. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +19 -6
  514. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
  515. package/dist/components/core/list/SolidListViewRowActionMenuItem.js +14 -5
  516. package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
  517. package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +17 -6
  518. package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -1
  519. package/dist/components/core/list/SolidListViewRowActionsMenu.js +7 -1
  520. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  521. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +5 -1
  522. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  523. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  524. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +7 -6
  525. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  526. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +10 -9
  527. package/dist/components/core/list/SolidListingHeader.js +1 -1
  528. package/dist/components/core/list/SolidListingHeader.js.map +1 -1
  529. package/dist/components/core/list/SolidListingHeader.tsx +4 -4
  530. package/dist/components/core/list/SolidTableRowCell.js +1 -1
  531. package/dist/components/core/list/SolidTableRowCell.js.map +1 -1
  532. package/dist/components/core/list/SolidTableRowCell.tsx +1 -1
  533. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  534. package/dist/components/core/list/columns/SolidBooleanColumn.js +4 -6
  535. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  536. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -3
  537. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  538. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +8 -7
  539. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  540. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +11 -10
  541. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  542. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +6 -5
  543. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  544. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +6 -5
  545. package/dist/components/core/list/columns/SolidRelationColumn.d.ts +1 -1
  546. package/dist/components/core/list/columns/SolidRelationColumn.d.ts.map +1 -1
  547. package/dist/components/core/list/columns/SolidRelationColumn.js +2 -2
  548. package/dist/components/core/list/columns/SolidRelationColumn.js.map +1 -1
  549. package/dist/components/core/list/columns/SolidRelationColumn.tsx +2 -2
  550. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts +2 -2
  551. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  552. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +9 -4
  553. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  554. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +14 -4
  555. package/dist/components/core/list/field-quality-check-fixes.md +178 -0
  556. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js +1 -1
  557. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js.map +1 -1
  558. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.tsx +1 -1
  559. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +1 -1
  560. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -1
  561. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +1 -2
  562. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.d.ts +3 -0
  563. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.d.ts.map +1 -0
  564. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.js +39 -0
  565. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.js.map +1 -0
  566. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.tsx +50 -0
  567. package/dist/components/core/locales/SolidLocale.js +3 -3
  568. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  569. package/dist/components/core/locales/SolidLocale.tsx +7 -7
  570. package/dist/components/core/locales/solid-locale.css +5 -4
  571. package/dist/components/core/model/CreateModel.css +48 -0
  572. package/dist/components/core/model/CreateModel.d.ts +1 -0
  573. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  574. package/dist/components/core/model/CreateModel.js +80 -128
  575. package/dist/components/core/model/CreateModel.js.map +1 -1
  576. package/dist/components/core/model/CreateModel.tsx +102 -226
  577. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  578. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  579. package/dist/components/core/model/FieldMetaData.js +7 -23
  580. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  581. package/dist/components/core/model/FieldMetaData.tsx +17 -50
  582. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  583. package/dist/components/core/model/FieldMetaDataForm.js +198 -224
  584. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  585. package/dist/components/core/model/FieldMetaDataForm.tsx +75 -302
  586. package/dist/components/core/model/ModelListViewData.js +4 -4
  587. package/dist/components/core/model/ModelListViewData.js.map +1 -1
  588. package/dist/components/core/model/ModelListViewData.tsx +7 -7
  589. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  590. package/dist/components/core/model/ModelMetaData.js +13 -25
  591. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  592. package/dist/components/core/model/ModelMetaData.tsx +18 -79
  593. package/dist/components/core/module/CreateModule.css +44 -0
  594. package/dist/components/core/module/CreateModule.d.ts +1 -0
  595. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  596. package/dist/components/core/module/CreateModule.js +40 -57
  597. package/dist/components/core/module/CreateModule.js.map +1 -1
  598. package/dist/components/core/module/CreateModule.tsx +246 -264
  599. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  600. package/dist/components/core/module/ModuleListViewData.js +48 -8
  601. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  602. package/dist/components/core/module/ModuleListViewData.tsx +65 -7
  603. package/dist/components/core/module/ModuleMetadataExplorer.css +638 -0
  604. package/dist/components/core/module/ModuleMetadataExplorer.d.ts +15 -0
  605. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -0
  606. package/dist/components/core/module/ModuleMetadataExplorer.js +666 -0
  607. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -0
  608. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1000 -0
  609. package/dist/components/core/module/ModulePackageDialog.css +540 -0
  610. package/dist/components/core/module/ModulePackageDialog.d.ts +16 -0
  611. package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -0
  612. package/dist/components/core/module/ModulePackageDialog.js +625 -0
  613. package/dist/components/core/module/ModulePackageDialog.js.map +1 -0
  614. package/dist/components/core/module/ModulePackageDialog.tsx +906 -0
  615. package/dist/components/core/solid-ai/SolidAiChat.module.css +2 -2
  616. package/dist/components/core/tree/SolidTreeTable.js +1 -1
  617. package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
  618. package/dist/components/core/tree/SolidTreeTable.tsx +1 -1
  619. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  620. package/dist/components/core/tree/SolidTreeView.js +4 -4
  621. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  622. package/dist/components/core/tree/SolidTreeView.tsx +16 -12
  623. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  624. package/dist/components/core/users/CreateUser.js +51 -27
  625. package/dist/components/core/users/CreateUser.js.map +1 -1
  626. package/dist/components/core/users/CreateUser.tsx +47 -68
  627. package/dist/components/core/users/CreateUserRole.js +2 -2
  628. package/dist/components/core/users/CreateUserRole.js.map +1 -1
  629. package/dist/components/core/users/CreateUserRole.tsx +9 -9
  630. package/dist/components/core/users/UserListView.js +4 -4
  631. package/dist/components/core/users/UserListView.js.map +1 -1
  632. package/dist/components/core/users/UserListView.tsx +6 -6
  633. package/dist/components/layout/AdminHeaderActions.d.ts +8 -0
  634. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -0
  635. package/dist/components/layout/AdminHeaderActions.js +77 -0
  636. package/dist/components/layout/AdminHeaderActions.js.map +1 -0
  637. package/dist/components/layout/AdminHeaderActions.tsx +155 -0
  638. package/dist/components/layout/AdminSidebar.js +1 -1
  639. package/dist/components/layout/AdminSidebar.js.map +1 -1
  640. package/dist/components/layout/AdminSidebar.tsx +1 -1
  641. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  642. package/dist/components/layout/AdminTopHeader.js +14 -5
  643. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  644. package/dist/components/layout/AdminTopHeader.tsx +35 -28
  645. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  646. package/dist/components/layout/AppSidebar.js +2 -1
  647. package/dist/components/layout/AppSidebar.js.map +1 -1
  648. package/dist/components/layout/AppSidebar.tsx +2 -0
  649. package/dist/components/layout/CustomPagination.js +0 -1
  650. package/dist/components/layout/CustomPagination.js.map +1 -1
  651. package/dist/components/layout/CustomPagination.tsx +0 -1
  652. package/dist/components/layout/FilterMenu.js +1 -1
  653. package/dist/components/layout/FilterMenu.js.map +1 -1
  654. package/dist/components/layout/FilterMenu.tsx +4 -4
  655. package/dist/components/layout/Footer.js +1 -1
  656. package/dist/components/layout/Footer.js.map +1 -1
  657. package/dist/components/layout/Footer.tsx +1 -1
  658. package/dist/components/layout/GlobalSearch.js +1 -1
  659. package/dist/components/layout/GlobalSearch.js.map +1 -1
  660. package/dist/components/layout/GlobalSearch.tsx +1 -1
  661. package/dist/components/layout/ListingHeader.js +3 -3
  662. package/dist/components/layout/ListingHeader.js.map +1 -1
  663. package/dist/components/layout/ListingHeader.tsx +4 -4
  664. package/dist/components/layout/Loader.js +1 -1
  665. package/dist/components/layout/Loader.js.map +1 -1
  666. package/dist/components/layout/Loader.tsx +1 -1
  667. package/dist/components/layout/UserSidebar.js +1 -1
  668. package/dist/components/layout/UserSidebar.js.map +1 -1
  669. package/dist/components/layout/UserSidebar.tsx +1 -1
  670. package/dist/components/layout/navbar-one.js +2 -2
  671. package/dist/components/layout/navbar-one.js.map +1 -1
  672. package/dist/components/layout/navbar-one.tsx +8 -8
  673. package/dist/components/layout/navbar-two-menu.js +2 -2
  674. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  675. package/dist/components/layout/navbar-two-menu.tsx +7 -7
  676. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  677. package/dist/components/layout/user-profile-menu.js +57 -33
  678. package/dist/components/layout/user-profile-menu.js.map +1 -1
  679. package/dist/components/layout/user-profile-menu.tsx +11 -59
  680. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +2 -1
  681. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  682. package/dist/components/shad-cn-ui/SolidAutocomplete.js +60 -6
  683. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  684. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +81 -22
  685. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
  686. package/dist/components/shad-cn-ui/SolidButton.js +10 -2
  687. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
  688. package/dist/components/shad-cn-ui/SolidButton.tsx +10 -2
  689. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  690. package/dist/components/shad-cn-ui/SolidCodeEditor.js +3 -1
  691. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  692. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +3 -0
  693. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts +1 -1
  694. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  695. package/dist/components/shad-cn-ui/SolidDatePicker.js +2 -2
  696. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  697. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +4 -0
  698. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  699. package/dist/components/shad-cn-ui/SolidDialog.js +38 -4
  700. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  701. package/dist/components/shad-cn-ui/SolidDialog.tsx +47 -3
  702. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -1
  703. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  704. package/dist/components/shad-cn-ui/SolidIcon.js +1 -0
  705. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  706. package/dist/components/shad-cn-ui/SolidIcon.tsx +1 -0
  707. package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -1
  708. package/dist/components/shad-cn-ui/SolidPasswordInput.js +1 -1
  709. package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -1
  710. package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +1 -0
  711. package/dist/components/shad-cn-ui/SolidPopover.d.ts +1 -0
  712. package/dist/components/shad-cn-ui/SolidPopover.d.ts.map +1 -1
  713. package/dist/components/shad-cn-ui/SolidPopover.js +124 -5
  714. package/dist/components/shad-cn-ui/SolidPopover.js.map +1 -1
  715. package/dist/components/shad-cn-ui/SolidPopover.tsx +173 -10
  716. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  717. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  718. package/dist/components/shad-cn-ui/SolidSelect.js +51 -1
  719. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  720. package/dist/components/shad-cn-ui/SolidSelect.tsx +95 -0
  721. package/dist/constants/error-messages.d.ts +13 -0
  722. package/dist/constants/error-messages.d.ts.map +1 -1
  723. package/dist/constants/error-messages.js +17 -0
  724. package/dist/constants/error-messages.js.map +1 -1
  725. package/dist/constants/error-messages.ts +15 -0
  726. package/dist/helpers/buttonEnvironment.d.ts +5 -0
  727. package/dist/helpers/buttonEnvironment.d.ts.map +1 -0
  728. package/dist/helpers/buttonEnvironment.js +30 -0
  729. package/dist/helpers/buttonEnvironment.js.map +1 -0
  730. package/dist/helpers/buttonEnvironment.ts +35 -0
  731. package/dist/helpers/buttonPresentation.d.ts +24 -0
  732. package/dist/helpers/buttonPresentation.d.ts.map +1 -0
  733. package/dist/helpers/buttonPresentation.js +28 -0
  734. package/dist/helpers/buttonPresentation.js.map +1 -0
  735. package/dist/helpers/buttonPresentation.ts +53 -0
  736. package/dist/helpers/fileTypeIcon.d.ts +12 -0
  737. package/dist/helpers/fileTypeIcon.d.ts.map +1 -0
  738. package/dist/helpers/fileTypeIcon.js +37 -0
  739. package/dist/helpers/fileTypeIcon.js.map +1 -0
  740. package/dist/helpers/fileTypeIcon.tsx +65 -0
  741. package/dist/helpers/registry.d.ts.map +1 -1
  742. package/dist/helpers/registry.js +28 -10
  743. package/dist/helpers/registry.js.map +1 -1
  744. package/dist/helpers/registry.ts +31 -13
  745. package/dist/helpers/waitForBackendAvailability.d.ts +7 -0
  746. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -0
  747. package/dist/helpers/waitForBackendAvailability.js +86 -0
  748. package/dist/helpers/waitForBackendAvailability.js.map +1 -0
  749. package/dist/helpers/waitForBackendAvailability.ts +37 -0
  750. package/dist/index.d.ts +8 -9
  751. package/dist/index.d.ts.map +1 -1
  752. package/dist/index.js +6 -8
  753. package/dist/index.js.map +1 -1
  754. package/dist/index.ts +32 -13
  755. package/dist/nextAuth/authProviders.d.ts +4 -0
  756. package/dist/nextAuth/authProviders.d.ts.map +1 -0
  757. package/dist/nextAuth/authProviders.js +198 -0
  758. package/dist/nextAuth/authProviders.js.map +1 -0
  759. package/dist/nextAuth/authProviders.tsx +232 -0
  760. package/dist/nextAuth/handleLogout.d.ts +2 -0
  761. package/dist/nextAuth/handleLogout.d.ts.map +1 -0
  762. package/dist/nextAuth/handleLogout.js +36 -0
  763. package/dist/nextAuth/handleLogout.js.map +1 -0
  764. package/dist/nextAuth/handleLogout.tsx +39 -0
  765. package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
  766. package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
  767. package/dist/nextAuth/refreshAccessToken.js +24 -0
  768. package/dist/nextAuth/refreshAccessToken.js.map +1 -0
  769. package/dist/nextAuth/refreshAccessToken.tsx +28 -0
  770. package/dist/redux/api/dashboardRuntimeApi.d.ts +34 -0
  771. package/dist/redux/api/dashboardRuntimeApi.d.ts.map +1 -0
  772. package/dist/redux/api/dashboardRuntimeApi.js +79 -0
  773. package/dist/redux/api/dashboardRuntimeApi.js.map +1 -0
  774. package/dist/redux/api/dashboardRuntimeApi.ts +75 -0
  775. package/dist/redux/api/moduleApi.d.ts +26 -1
  776. package/dist/redux/api/moduleApi.d.ts.map +1 -1
  777. package/dist/redux/api/moduleApi.js +237 -1
  778. package/dist/redux/api/moduleApi.js.map +1 -1
  779. package/dist/redux/api/moduleApi.ts +181 -1
  780. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
  781. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  782. package/dist/redux/api/solidChatterMessageApi.js +11 -1
  783. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  784. package/dist/redux/api/solidChatterMessageApi.ts +10 -1
  785. package/dist/redux/features/settingsSlice.d.ts +20 -0
  786. package/dist/redux/features/settingsSlice.d.ts.map +1 -0
  787. package/dist/redux/features/settingsSlice.js +39 -0
  788. package/dist/redux/features/settingsSlice.js.map +1 -0
  789. package/dist/redux/features/settingsSlice.ts +60 -0
  790. package/dist/redux/store/defaultStoreConfig.d.ts +57 -9
  791. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  792. package/dist/redux/store/defaultStoreConfig.js +2 -6
  793. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  794. package/dist/redux/store/defaultStoreConfig.ts +2 -6
  795. package/dist/redux/store/solidEntityApiPool.d.ts +1 -0
  796. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  797. package/dist/redux/store/solidEntityApiPool.js +4 -0
  798. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  799. package/dist/redux/store/solidEntityApiPool.ts +4 -0
  800. package/dist/resources/globals.css +195 -20
  801. package/dist/resources/shadcn-base.css +392 -175
  802. package/dist/resources/solid-custom.css +6565 -0
  803. package/dist/resources/solid-primereact.css +14 -12
  804. package/dist/resources/solid-responsive.css +259 -51
  805. package/dist/resources/solid-tailwind-generated.css +1 -0
  806. package/dist/resources/solid-tailwind.css +3 -0
  807. package/dist/routes/AppEventListener.d.ts.map +1 -1
  808. package/dist/routes/AppEventListener.js +58 -8
  809. package/dist/routes/AppEventListener.js.map +1 -1
  810. package/dist/routes/AppEventListener.tsx +69 -8
  811. package/dist/routes/pages/admin/core/DashboardPage.d.ts +1 -0
  812. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  813. package/dist/routes/pages/admin/core/DashboardPage.js +860 -5
  814. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  815. package/dist/routes/pages/admin/core/DashboardPage.module.css +219 -0
  816. package/dist/routes/pages/admin/core/DashboardPage.tsx +1025 -7
  817. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts +2 -0
  818. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts.map +1 -0
  819. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js +6 -0
  820. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js.map +1 -0
  821. package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.tsx +5 -0
  822. package/dist/routes/pages/auth/SsoPage.js +1 -1
  823. package/dist/routes/pages/auth/SsoPage.js.map +1 -1
  824. package/dist/routes/pages/auth/SsoPage.tsx +1 -1
  825. package/dist/routes/solidRoutes.d.ts.map +1 -1
  826. package/dist/routes/solidRoutes.js +2 -2
  827. package/dist/routes/solidRoutes.js.map +1 -1
  828. package/dist/routes/solidRoutes.tsx +2 -2
  829. package/dist/routes/types.d.ts +1 -1
  830. package/dist/routes/types.d.ts.map +1 -1
  831. package/dist/routes/types.js.map +1 -1
  832. package/dist/routes/types.ts +1 -1
  833. package/dist/styles.d.ts +2 -1
  834. package/dist/styles.d.ts.map +1 -1
  835. package/dist/styles.js +2 -1
  836. package/dist/styles.js.map +1 -1
  837. package/dist/styles.ts +2 -1
  838. package/dist/types/dashboard.d.ts +16 -0
  839. package/dist/types/dashboard.d.ts.map +1 -0
  840. package/dist/types/dashboard.js +2 -0
  841. package/dist/types/dashboard.js.map +1 -0
  842. package/dist/types/dashboard.ts +23 -0
  843. package/dist/types/extension-registry.d.ts +1 -0
  844. package/dist/types/extension-registry.d.ts.map +1 -1
  845. package/dist/types/extension-registry.js +1 -0
  846. package/dist/types/extension-registry.js.map +1 -1
  847. package/dist/types/extension-registry.ts +1 -0
  848. package/dist/types/index.d.ts +3 -0
  849. package/dist/types/jsoneditor.d.ts +4 -0
  850. package/dist/types/solid-core.d.ts +1 -0
  851. package/package.json +9 -3
  852. package/dist/components/core/list/SolidDataTablePagination.d.ts +0 -15
  853. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +0 -1
  854. package/dist/components/core/list/SolidDataTablePagination.js +0 -22
  855. package/dist/components/core/list/SolidDataTablePagination.js.map +0 -1
  856. package/dist/components/core/list/SolidDataTablePagination.tsx +0 -71
  857. package/dist/components/solid-ui/SolidButton.d.ts +0 -14
  858. package/dist/components/solid-ui/SolidButton.d.ts.map +0 -1
  859. package/dist/components/solid-ui/SolidButton.js +0 -36
  860. package/dist/components/solid-ui/SolidButton.js.map +0 -1
  861. package/dist/components/solid-ui/SolidButton.tsx +0 -54
  862. package/dist/components/solid-ui/SolidTabs.d.ts +0 -18
  863. package/dist/components/solid-ui/SolidTabs.d.ts.map +0 -1
  864. package/dist/components/solid-ui/SolidTabs.js +0 -22
  865. package/dist/components/solid-ui/SolidTabs.js.map +0 -1
  866. package/dist/components/solid-ui/SolidTabs.tsx +0 -73
  867. package/dist/components/solid-ui/index.d.ts +0 -3
  868. package/dist/components/solid-ui/index.d.ts.map +0 -1
  869. package/dist/components/solid-ui/index.js +0 -3
  870. package/dist/components/solid-ui/index.js.map +0 -1
  871. package/dist/components/solid-ui/index.ts +0 -2
@@ -0,0 +1,1000 @@
1
+ import { ChevronDown, ChevronRight, DatabaseZap, FileSearch, Save, Search, Settings, Wand2 } from "lucide-react";
2
+ import React, { useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
3
+ import { useDispatch } from "react-redux";
4
+ import {
5
+ useGetModuleMetadataExplorerDocumentQuery,
6
+ useGetModuleMetadataExplorerManifestQuery,
7
+ useSeedModuleMetadataMutation,
8
+ useUpdateModuleMetadataExplorerSectionMutation,
9
+ useValidateModuleMetadataExplorerSectionMutation,
10
+ } from "../../../redux/api/moduleApi";
11
+ import { showToast } from "../../../redux/features/toastSlice";
12
+ import {
13
+ SolidButton,
14
+ SolidDialog,
15
+ SolidDialogBody,
16
+ SolidDialogFooter,
17
+ SolidDialogHeader,
18
+ SolidDialogSeparator,
19
+ SolidDialogTitle,
20
+ SolidDropdownMenu,
21
+ SolidDropdownMenuContent,
22
+ SolidDropdownMenuItem,
23
+ SolidDropdownMenuTrigger,
24
+ SolidInput,
25
+ SolidMessage,
26
+ SolidTag,
27
+ } from "../../shad-cn-ui";
28
+ import "jsoneditor/dist/jsoneditor.css";
29
+ import "./ModuleMetadataExplorer.css";
30
+
31
+ type ModuleMetadataExplorerProps = {
32
+ moduleName?: string;
33
+ moduleId?: number;
34
+ modelSingularName?: string;
35
+ scopedArrayPath?: string;
36
+ scopedItemValue?: string;
37
+ scopedItemField?: string;
38
+ readOnly?: boolean;
39
+ allowSeed?: boolean;
40
+ };
41
+
42
+ type MetadataIssue = {
43
+ path: string;
44
+ message: string;
45
+ severity: "error" | "warning";
46
+ };
47
+
48
+ type ExplorerSectionDefinition = {
49
+ key: string;
50
+ title: string;
51
+ jsonPath: string;
52
+ type: "object" | "array";
53
+ description: string;
54
+ };
55
+
56
+ type ExplorerTreeNode = {
57
+ id: string;
58
+ label: string;
59
+ path: string;
60
+ parentPath: string | null;
61
+ sectionKey: string;
62
+ sectionTitle: string;
63
+ children: ExplorerTreeNode[];
64
+ };
65
+
66
+ type JsonEditorHandle = {
67
+ format: () => void;
68
+ };
69
+
70
+ function extractApiErrorMessage(error: any) {
71
+ const message = error?.data?.message ?? error?.message ?? "Something went wrong";
72
+ return Array.isArray(message) ? message.join(", ") : String(message);
73
+ }
74
+
75
+ function serializeJson(value: any) {
76
+ try {
77
+ return JSON.stringify(value);
78
+ } catch (_error) {
79
+ return "";
80
+ }
81
+ }
82
+
83
+ function deepCloneJson<T>(value: T): T {
84
+ return JSON.parse(JSON.stringify(value));
85
+ }
86
+
87
+ function humanizeKey(value: string) {
88
+ return value
89
+ .replace(/([a-z0-9])([A-Z])/g, "$1 $2")
90
+ .replace(/[_-]+/g, " ")
91
+ .replace(/\s+/g, " ")
92
+ .trim()
93
+ .replace(/^./, (char) => char.toUpperCase());
94
+ }
95
+
96
+ function tokenizePath(path: string) {
97
+ const tokens: Array<string | number> = [];
98
+ const regex = /([^[.\]]+)|\[(\d+)\]/g;
99
+ let match: RegExpExecArray | null;
100
+ while ((match = regex.exec(path)) !== null) {
101
+ if (match[1] !== undefined) {
102
+ tokens.push(match[1]);
103
+ } else if (match[2] !== undefined) {
104
+ tokens.push(Number(match[2]));
105
+ }
106
+ }
107
+ return tokens;
108
+ }
109
+
110
+ function getValueAtJsonPath(source: any, path: string) {
111
+ if (!path) return source;
112
+ return tokenizePath(path).reduce((current, token) => {
113
+ if (current === undefined || current === null) return undefined;
114
+ return current[token as keyof typeof current];
115
+ }, source);
116
+ }
117
+
118
+ function setValueAtJsonPath(target: any, path: string, value: any) {
119
+ const tokens = tokenizePath(path);
120
+ if (!tokens.length) return;
121
+
122
+ let current = target;
123
+ for (let index = 0; index < tokens.length - 1; index += 1) {
124
+ current = current[tokens[index] as keyof typeof current];
125
+ }
126
+
127
+ current[tokens[tokens.length - 1] as keyof typeof current] = value;
128
+ }
129
+
130
+ function appendPath(basePath: string, key: string) {
131
+ return basePath ? `${basePath}.${key}` : key;
132
+ }
133
+
134
+ function getArrayItemLabel(item: any, index: number, parentKey: string) {
135
+ const labelCandidates = [
136
+ "singularName",
137
+ "name",
138
+ "displayName",
139
+ "pluralName",
140
+ "label",
141
+ "key",
142
+ "title",
143
+ "id",
144
+ ];
145
+
146
+ for (const candidate of labelCandidates) {
147
+ const nextValue = item?.[candidate];
148
+ if (nextValue !== undefined && nextValue !== null && `${nextValue}`.trim()) {
149
+ return `${nextValue}`;
150
+ }
151
+ }
152
+
153
+ return `${humanizeKey(parentKey || "Item")} ${index + 1}`;
154
+ }
155
+
156
+ function buildTreeNode(
157
+ value: any,
158
+ options: {
159
+ label: string;
160
+ path: string;
161
+ parentPath: string | null;
162
+ sectionKey: string;
163
+ sectionTitle: string;
164
+ hintKey: string;
165
+ },
166
+ ): ExplorerTreeNode {
167
+ const { label, path, parentPath, sectionKey, sectionTitle, hintKey } = options;
168
+
169
+ let children: ExplorerTreeNode[] = [];
170
+
171
+ if (Array.isArray(value)) {
172
+ children = value
173
+ .filter((item) => item !== null && typeof item === "object")
174
+ .map((item, index) => buildTreeNode(item, {
175
+ label: getArrayItemLabel(item, index, hintKey),
176
+ path: `${path}[${index}]`,
177
+ parentPath: path,
178
+ sectionKey,
179
+ sectionTitle,
180
+ hintKey,
181
+ }));
182
+ } else if (value && typeof value === "object") {
183
+ children = Object.entries(value)
184
+ .filter(([, nextValue]) => nextValue !== null && typeof nextValue === "object")
185
+ .map(([key, nextValue]) => buildTreeNode(nextValue, {
186
+ label: humanizeKey(key),
187
+ path: appendPath(path, key),
188
+ parentPath: path,
189
+ sectionKey,
190
+ sectionTitle,
191
+ hintKey: key,
192
+ }));
193
+ }
194
+
195
+ return {
196
+ id: path,
197
+ label,
198
+ path,
199
+ parentPath,
200
+ sectionKey,
201
+ sectionTitle,
202
+ children,
203
+ };
204
+ }
205
+
206
+ function buildTreeFromDocument(sections: ExplorerSectionDefinition[], documentValue: any) {
207
+ const nodes = sections
208
+ .map((section) => {
209
+ const sectionValue = getValueAtJsonPath(documentValue, section.jsonPath);
210
+ if (sectionValue === undefined) return null;
211
+ return buildTreeNode(sectionValue, {
212
+ label: section.title,
213
+ path: section.jsonPath,
214
+ parentPath: null,
215
+ sectionKey: section.key,
216
+ sectionTitle: section.title,
217
+ hintKey: section.key,
218
+ });
219
+ })
220
+ .filter(Boolean) as ExplorerTreeNode[];
221
+
222
+ const nodeMap = new Map<string, ExplorerTreeNode>();
223
+ const visit = (nextNodes: ExplorerTreeNode[]) => {
224
+ nextNodes.forEach((node) => {
225
+ nodeMap.set(node.path, node);
226
+ if (node.children.length) visit(node.children);
227
+ });
228
+ };
229
+ visit(nodes);
230
+
231
+ return { nodes, nodeMap };
232
+ }
233
+
234
+ function filterTreeNodes(nodes: ExplorerTreeNode[], query: string): ExplorerTreeNode[] {
235
+ const needle = query.trim().toLowerCase();
236
+ if (!needle) return nodes;
237
+
238
+ const visit = (node: ExplorerTreeNode): ExplorerTreeNode | null => {
239
+ const filteredChildren = node.children
240
+ .map(visit)
241
+ .filter(Boolean) as ExplorerTreeNode[];
242
+ const matches = node.label.toLowerCase().includes(needle) || node.path.toLowerCase().includes(needle);
243
+
244
+ if (matches || filteredChildren.length) {
245
+ return { ...node, children: filteredChildren };
246
+ }
247
+
248
+ return null;
249
+ };
250
+
251
+ return nodes.map(visit).filter(Boolean) as ExplorerTreeNode[];
252
+ }
253
+
254
+ function getAncestorPaths(nodeMap: Map<string, ExplorerTreeNode>, path: string) {
255
+ const paths: string[] = [];
256
+ let current = nodeMap.get(path);
257
+
258
+ while (current?.parentPath) {
259
+ paths.push(current.parentPath);
260
+ current = nodeMap.get(current.parentPath);
261
+ }
262
+
263
+ return paths;
264
+ }
265
+
266
+ function getSectionForPath(sections: ExplorerSectionDefinition[], path: string) {
267
+ return sections
268
+ .filter((section) => path === section.jsonPath || path.startsWith(`${section.jsonPath}.`) || path.startsWith(`${section.jsonPath}[`))
269
+ .sort((left, right) => right.jsonPath.length - left.jsonPath.length)[0] ?? null;
270
+ }
271
+
272
+ function filterIssuesForPath(issues: MetadataIssue[], path: string) {
273
+ return issues.filter((issue) => {
274
+ if (!issue.path) return false;
275
+ return issue.path === path || issue.path.startsWith(`${path}.`) || issue.path.startsWith(`${path}[`);
276
+ });
277
+ }
278
+
279
+ const JsonEditorSurface = React.forwardRef<JsonEditorHandle, {
280
+ value: any;
281
+ resetToken: string;
282
+ readOnly?: boolean;
283
+ onValueChange: (value: any) => void;
284
+ onErrorChange: (message: string | null) => void;
285
+ }>(function JsonEditorSurface({ value, resetToken, readOnly = false, onValueChange, onErrorChange }, ref) {
286
+ const containerRef = useRef<HTMLDivElement | null>(null);
287
+ const editorRef = useRef<any>(null);
288
+ // Keep a ref to the latest value so the async init can seed the editor correctly
289
+ const latestValueRef = useRef<any>(value);
290
+
291
+ // Sync latest value into ref so async editor init can use it
292
+ useEffect(() => { latestValueRef.current = value; }, [value]);
293
+
294
+ const emitState = () => {
295
+ const editor = editorRef.current;
296
+ if (!editor) return;
297
+
298
+ try {
299
+ const nextValue = editor.get();
300
+ onValueChange(nextValue);
301
+ onErrorChange(null);
302
+ } catch (error: any) {
303
+ onErrorChange(error?.message ? String(error.message) : "The JSON is currently invalid.");
304
+ }
305
+ };
306
+
307
+ useImperativeHandle(ref, () => ({
308
+ format() {
309
+ try {
310
+ editorRef.current?.format?.();
311
+ } catch (_error) {
312
+ // jsoneditor already surfaces parse states through onErrorChange
313
+ }
314
+ emitState();
315
+ },
316
+ }), []);
317
+
318
+ useEffect(() => {
319
+ if (!containerRef.current || editorRef.current) return;
320
+
321
+ let destroyed = false;
322
+
323
+ // @ts-ignore
324
+ void import("jsoneditor").then((jsonEditorModule: any) => {
325
+ if (destroyed || !containerRef.current || editorRef.current) {
326
+ return;
327
+ }
328
+
329
+ const JSONEditor = jsonEditorModule?.default ?? jsonEditorModule;
330
+ editorRef.current = new JSONEditor(containerRef.current, {
331
+ mode: "code",
332
+ modes: ["code"],
333
+ mainMenuBar: true,
334
+ navigationBar: true,
335
+ statusBar: true,
336
+ search: true,
337
+ enableSort: false,
338
+ enableTransform: false,
339
+ onChange: () => emitState(),
340
+ });
341
+
342
+ // Seed editor with current value (which may already be set before async init resolved)
343
+ try { editorRef.current.set(latestValueRef.current); } catch (_e) {}
344
+ emitState();
345
+
346
+ if (editorRef.current?.aceEditor?.setReadOnly) {
347
+ editorRef.current.aceEditor.setReadOnly(readOnly);
348
+ }
349
+ });
350
+
351
+ return () => {
352
+ destroyed = true;
353
+ editorRef.current?.destroy?.();
354
+ editorRef.current = null;
355
+ };
356
+ }, []);
357
+
358
+ useEffect(() => {
359
+ if (!editorRef.current) return;
360
+ editorRef.current.set(value);
361
+ emitState();
362
+ }, [resetToken, value]);
363
+
364
+ useEffect(() => {
365
+ if (!editorRef.current?.aceEditor?.setReadOnly) return;
366
+ editorRef.current.aceEditor.setReadOnly(readOnly);
367
+ }, [readOnly]);
368
+
369
+ return <div ref={containerRef} className={`solid-module-explorer-editor-host solid-module-explorer-jsoneditor ${readOnly ? "is-readonly" : ""}`} />;
370
+ });
371
+
372
+ function MetadataTree({
373
+ nodes,
374
+ activePath,
375
+ expandedPaths,
376
+ onToggle,
377
+ onSelect,
378
+ depth = 0,
379
+ }: {
380
+ nodes: ExplorerTreeNode[];
381
+ activePath: string;
382
+ expandedPaths: Set<string>;
383
+ onToggle: (path: string) => void;
384
+ onSelect: (path: string) => void;
385
+ depth?: number;
386
+ }) {
387
+ return (
388
+ <>
389
+ {nodes.map((node) => {
390
+ const isExpanded = expandedPaths.has(node.path);
391
+ const hasChildren = node.children.length > 0;
392
+ const isActive = activePath === node.path;
393
+
394
+ return (
395
+ <div key={node.id} className="solid-module-explorer-tree-node">
396
+ <div
397
+ className={`solid-module-explorer-tree-row ${isActive ? "is-active" : ""}`}
398
+ style={{ paddingLeft: `${depth * 0.9}rem` }}
399
+ >
400
+ <button
401
+ type="button"
402
+ className="solid-module-explorer-tree-toggle"
403
+ onClick={() => hasChildren && onToggle(node.path)}
404
+ aria-label={hasChildren ? (isExpanded ? "Collapse node" : "Expand node") : "Leaf node"}
405
+ disabled={!hasChildren}
406
+ >
407
+ {hasChildren ? (isExpanded ? <ChevronDown size={14} /> : <ChevronRight size={14} />) : <span className="solid-module-explorer-tree-dot" />}
408
+ </button>
409
+ <button
410
+ type="button"
411
+ className="solid-module-explorer-tree-label"
412
+ onClick={() => onSelect(node.path)}
413
+ title={node.path}
414
+ >
415
+ {node.label}
416
+ </button>
417
+ </div>
418
+
419
+ {hasChildren && isExpanded && (
420
+ <MetadataTree
421
+ nodes={node.children}
422
+ activePath={activePath}
423
+ expandedPaths={expandedPaths}
424
+ onToggle={onToggle}
425
+ onSelect={onSelect}
426
+ depth={depth + 1}
427
+ />
428
+ )}
429
+ </div>
430
+ );
431
+ })}
432
+ </>
433
+ );
434
+ }
435
+
436
+ export function ModuleMetadataExplorer({
437
+ moduleName,
438
+ moduleId,
439
+ modelSingularName,
440
+ scopedArrayPath,
441
+ scopedItemValue,
442
+ scopedItemField,
443
+ readOnly = false,
444
+ allowSeed = true,
445
+ }: ModuleMetadataExplorerProps) {
446
+ const dispatch = useDispatch();
447
+ const editorRef = useRef<JsonEditorHandle | null>(null);
448
+ const explorerRef = useRef<HTMLDivElement | null>(null);
449
+ const isResizingRef = useRef(false);
450
+ const [activePath, setActivePath] = useState("");
451
+ const [expandedPaths, setExpandedPaths] = useState<Set<string>>(new Set());
452
+ const [treeFilter, setTreeFilter] = useState("");
453
+ const [sidebarWidth, setSidebarWidth] = useState(280);
454
+ const [editorValue, setEditorValue] = useState<any>({});
455
+ const [savedValue, setSavedValue] = useState<any>({});
456
+ const [editorError, setEditorError] = useState<string | null>(null);
457
+ const [editorResetToken, setEditorResetToken] = useState("initial");
458
+ const [validationIssues, setValidationIssues] = useState<MetadataIssue[] | null>(null);
459
+ const [localActionSummary, setLocalActionSummary] = useState("");
460
+ const [isContextDialogOpen, setIsContextDialogOpen] = useState(false);
461
+ const [isSeedDialogOpen, setIsSeedDialogOpen] = useState(false);
462
+
463
+ const {
464
+ data: manifestData,
465
+ error: manifestError,
466
+ refetch: refetchManifest,
467
+ } = useGetModuleMetadataExplorerManifestQuery(moduleName as string, {
468
+ skip: !moduleName,
469
+ });
470
+
471
+ const {
472
+ data: documentData,
473
+ isLoading: isDocumentLoading,
474
+ error: documentError,
475
+ refetch: refetchDocument,
476
+ } = useGetModuleMetadataExplorerDocumentQuery(moduleName as string, {
477
+ skip: !moduleName,
478
+ });
479
+
480
+ const [updateSection, { isLoading: isSavingSection }] = useUpdateModuleMetadataExplorerSectionMutation();
481
+ const [validateSection, { isLoading: isValidatingSection }] = useValidateModuleMetadataExplorerSectionMutation();
482
+ const [seedModuleMetadata, { isLoading: isSeedingModule }] = useSeedModuleMetadataMutation();
483
+ const isReadOnlyExplorer = readOnly || moduleName?.toLowerCase() === "solid-core";
484
+
485
+ const sections = (manifestData?.sections ?? []) as ExplorerSectionDefinition[];
486
+ const fullDocument = documentData?.value ?? {};
487
+ const loadError = !manifestData || !documentData ? (manifestError ?? documentError) : null;
488
+
489
+ const { nodes: treeNodes, nodeMap } = useMemo(
490
+ () => buildTreeFromDocument(sections, fullDocument),
491
+ [sections, fullDocument],
492
+ );
493
+
494
+ const scopedRootPath = useMemo(() => {
495
+ // Scope to a specific model definition
496
+ if (modelSingularName) {
497
+ const models = getValueAtJsonPath(fullDocument, "moduleMetadata.models");
498
+ if (!Array.isArray(models)) return "";
499
+ const modelIndex = models.findIndex((model) => model?.singularName === modelSingularName);
500
+ return modelIndex >= 0 ? `moduleMetadata.models[${modelIndex}]` : "";
501
+ }
502
+ // Scope to a specific item in a root-level array (e.g. views, actions, menus)
503
+ if (scopedArrayPath && scopedItemValue) {
504
+ const arr = getValueAtJsonPath(fullDocument, scopedArrayPath);
505
+ if (!Array.isArray(arr)) return "";
506
+ const matchField = scopedItemField ?? "name";
507
+ const itemIndex = arr.findIndex((item) => item?.[matchField] === scopedItemValue);
508
+ return itemIndex >= 0 ? `${scopedArrayPath}[${itemIndex}]` : "";
509
+ }
510
+ return "";
511
+ }, [fullDocument, modelSingularName, scopedArrayPath, scopedItemValue, scopedItemField]);
512
+
513
+ const scopedTreeNodes = useMemo(() => {
514
+ if (!scopedRootPath) return treeNodes;
515
+ const scopedNode = nodeMap.get(scopedRootPath);
516
+ return scopedNode ? [scopedNode] : [];
517
+ }, [nodeMap, scopedRootPath, treeNodes]);
518
+
519
+ const filteredTreeNodes = useMemo(
520
+ () => filterTreeNodes(scopedTreeNodes, treeFilter),
521
+ [scopedTreeNodes, treeFilter],
522
+ );
523
+
524
+ const visibleExpandedPaths = useMemo(() => {
525
+ if (!treeFilter.trim()) return expandedPaths;
526
+ const nextExpanded = new Set<string>();
527
+ const visit = (nodesToVisit: ExplorerTreeNode[]) => {
528
+ nodesToVisit.forEach((node) => {
529
+ if (node.children.length) {
530
+ nextExpanded.add(node.path);
531
+ visit(node.children);
532
+ }
533
+ });
534
+ };
535
+ visit(filteredTreeNodes);
536
+ return nextExpanded;
537
+ }, [expandedPaths, filteredTreeNodes, treeFilter]);
538
+
539
+ const activeNode = activePath ? nodeMap.get(activePath) ?? null : null;
540
+ const activeSection = activePath ? getSectionForPath(sections, activePath) : null;
541
+ const activeValidationIssues = filterIssuesForPath(validationIssues ?? [], activePath);
542
+ const savedSerialized = serializeJson(savedValue);
543
+ const editorSerialized = serializeJson(editorValue);
544
+ const isDirty = editorError ? true : savedSerialized !== editorSerialized;
545
+ const hasMutableChanges = !isReadOnlyExplorer && isDirty;
546
+ const canSave = !isReadOnlyExplorer && isDirty && !editorError;
547
+ const hasValidationFailure = Boolean(editorError) || activeValidationIssues.length > 0;
548
+ const validationSummary = editorError
549
+ ? editorError
550
+ : activeValidationIssues.length
551
+ ? `${activeValidationIssues.length} validation issue${activeValidationIssues.length === 1 ? "" : "s"}: ${activeValidationIssues[0]?.message ?? "Review this JSON before saving."}`
552
+ : "";
553
+
554
+ useEffect(() => {
555
+ setValidationIssues(documentData?.validation?.issues ?? []);
556
+ }, [documentData?.lastModifiedAt]);
557
+
558
+ useEffect(() => {
559
+ const handlePointerMove = (event: PointerEvent) => {
560
+ if (!isResizingRef.current || !explorerRef.current) return;
561
+ const bounds = explorerRef.current.getBoundingClientRect();
562
+ const nextWidth = Math.min(Math.max(event.clientX - bounds.left, 220), 520);
563
+ setSidebarWidth(nextWidth);
564
+ };
565
+
566
+ const handlePointerUp = () => {
567
+ isResizingRef.current = false;
568
+ document.body.style.cursor = "";
569
+ document.body.style.userSelect = "";
570
+ };
571
+
572
+ window.addEventListener("pointermove", handlePointerMove);
573
+ window.addEventListener("pointerup", handlePointerUp);
574
+
575
+ return () => {
576
+ window.removeEventListener("pointermove", handlePointerMove);
577
+ window.removeEventListener("pointerup", handlePointerUp);
578
+ };
579
+ }, []);
580
+
581
+ useEffect(() => {
582
+ if (!scopedTreeNodes.length) return;
583
+
584
+ const isPathInsideScope =
585
+ !scopedRootPath ||
586
+ activePath === scopedRootPath ||
587
+ activePath.startsWith(`${scopedRootPath}.`) ||
588
+ activePath.startsWith(`${scopedRootPath}[`);
589
+
590
+ if (!activePath || !nodeMap.has(activePath) || !isPathInsideScope) {
591
+ const defaultPath = scopedTreeNodes[0].path;
592
+ setActivePath(defaultPath);
593
+ setExpandedPaths(new Set([defaultPath]));
594
+ }
595
+ }, [activePath, nodeMap, scopedRootPath, scopedTreeNodes]);
596
+
597
+ useEffect(() => {
598
+ if (!activePath) return;
599
+ const nextValue = getValueAtJsonPath(fullDocument, activePath);
600
+ if (nextValue === undefined) return;
601
+ setSavedValue(nextValue);
602
+ setEditorValue(nextValue);
603
+ setEditorError(null);
604
+ setEditorResetToken(`${activePath}:${documentData?.lastModifiedAt ?? ""}`);
605
+ }, [activePath, documentData?.lastModifiedAt, fullDocument]);
606
+
607
+ const showErrorToast = (error: any) => {
608
+ dispatch(showToast({
609
+ severity: "error",
610
+ summary: "Metadata Explorer",
611
+ detail: extractApiErrorMessage(error),
612
+ life: 4000,
613
+ }));
614
+ };
615
+
616
+ const toggleExpandedPath = (path: string) => {
617
+ setExpandedPaths((current) => {
618
+ const next = new Set(current);
619
+ if (next.has(path)) {
620
+ next.delete(path);
621
+ } else {
622
+ next.add(path);
623
+ }
624
+ return next;
625
+ });
626
+ };
627
+
628
+ const selectPath = (path: string) => {
629
+ if (path === activePath) return;
630
+ if (!isReadOnlyExplorer && isDirty) {
631
+ const shouldProceed = window.confirm("You have unsaved metadata changes. Switch nodes and discard them?");
632
+ if (!shouldProceed) return;
633
+ }
634
+
635
+ const ancestorPaths = getAncestorPaths(nodeMap, path);
636
+ setExpandedPaths((current) => {
637
+ const next = new Set(current);
638
+ ancestorPaths.forEach((ancestorPath) => next.add(ancestorPath));
639
+ return next;
640
+ });
641
+ setActivePath(path);
642
+ };
643
+
644
+ const handleSidebarResizeStart = () => {
645
+ isResizingRef.current = true;
646
+ document.body.style.cursor = "col-resize";
647
+ document.body.style.userSelect = "none";
648
+ };
649
+
650
+ const handleCollapseAll = () => {
651
+ setExpandedPaths(new Set());
652
+ };
653
+
654
+ const handleFormat = () => {
655
+ editorRef.current?.format();
656
+ };
657
+
658
+ const buildPatchedDocument = () => {
659
+ const nextDocument = deepCloneJson(fullDocument);
660
+ setValueAtJsonPath(nextDocument, activePath, editorValue);
661
+ return nextDocument;
662
+ };
663
+
664
+ const buildPatchedSectionValue = () => {
665
+ if (!activeSection) return undefined;
666
+ return getValueAtJsonPath(buildPatchedDocument(), activeSection.jsonPath);
667
+ };
668
+
669
+ const handleValidate = async () => {
670
+ if (!moduleName || !activePath || !activeSection) return;
671
+
672
+ if (editorError) {
673
+ setLocalActionSummary("Validation blocked because the JSON is currently invalid.");
674
+ dispatch(showToast({
675
+ severity: "error",
676
+ summary: "Metadata Explorer",
677
+ detail: "Fix the invalid JSON before validating.",
678
+ life: 3500,
679
+ }));
680
+ return;
681
+ }
682
+
683
+ try {
684
+ const response: any = await validateSection({
685
+ moduleName,
686
+ sectionKey: activeSection.key,
687
+ value: buildPatchedSectionValue(),
688
+ }).unwrap();
689
+
690
+ setValidationIssues(response?.issues ?? []);
691
+ setLocalActionSummary(response?.valid ? "Validation passed for the current JSON fragment." : "Validation reported issues for the current JSON fragment.");
692
+ dispatch(showToast({
693
+ severity: response?.valid ? "success" : "warn",
694
+ summary: "Metadata Explorer",
695
+ detail: response?.valid ? "Validation passed." : "Validation reported issues.",
696
+ life: 3000,
697
+ }));
698
+ } catch (error) {
699
+ showErrorToast(error);
700
+ }
701
+ };
702
+
703
+ const handleSave = async () => {
704
+ if (!moduleName || !activePath || !activeSection) return;
705
+
706
+ if (editorError) {
707
+ dispatch(showToast({
708
+ severity: "error",
709
+ summary: "Metadata Explorer",
710
+ detail: "Fix the invalid JSON before saving.",
711
+ life: 3500,
712
+ }));
713
+ return;
714
+ }
715
+
716
+ try {
717
+ const response: any = await updateSection({
718
+ moduleName,
719
+ sectionKey: activeSection.key,
720
+ value: buildPatchedSectionValue(),
721
+ }).unwrap();
722
+
723
+ setValidationIssues(response?.validation?.issues ?? []);
724
+ setLocalActionSummary("JSON fragment saved to the metadata file.");
725
+ dispatch(showToast({
726
+ severity: "success",
727
+ summary: "Metadata Explorer",
728
+ detail: "Metadata saved successfully.",
729
+ life: 3000,
730
+ }));
731
+ refetchManifest();
732
+ refetchDocument();
733
+ } catch (error) {
734
+ showErrorToast(error);
735
+ }
736
+ };
737
+
738
+ const handleSeedModule = async () => {
739
+ if (!moduleId) return;
740
+
741
+ try {
742
+ const response: any = await seedModuleMetadata({ id: moduleId }).unwrap();
743
+ setIsSeedDialogOpen(false);
744
+ setLocalActionSummary(response?.message ?? `Seeded metadata for module ${moduleName}.`);
745
+ dispatch(showToast({
746
+ severity: "success",
747
+ summary: "Metadata Explorer",
748
+ detail: response?.message ?? "Module metadata seeded successfully.",
749
+ life: 3000,
750
+ }));
751
+ refetchManifest();
752
+ refetchDocument();
753
+ } catch (error) {
754
+ showErrorToast(error);
755
+ }
756
+ };
757
+
758
+ if (!moduleName) {
759
+ return null;
760
+ }
761
+
762
+ return (
763
+ <div className="solid-module-explorer">
764
+ <div className="solid-module-explorer-panel">
765
+ {loadError && (
766
+ <div className="solid-module-explorer-alert">
767
+ <SolidMessage
768
+ severity="error"
769
+ text={`Unable to load metadata explorer: ${extractApiErrorMessage(loadError)}`}
770
+ className="justify-start"
771
+ />
772
+ </div>
773
+ )}
774
+
775
+ <div
776
+ ref={explorerRef}
777
+ className="solid-module-explorer-workspace"
778
+ style={{ gridTemplateColumns: `${sidebarWidth}px 8px minmax(0, 1fr)` }}
779
+ >
780
+ <aside className="solid-module-explorer-sidebar">
781
+ <div className="solid-module-explorer-sidebar-section solid-module-explorer-sidebar-sections">
782
+ <div className="solid-module-explorer-sidebar-heading">
783
+ <div className="solid-module-explorer-sidebar-heading-main">
784
+ <div className="solid-module-explorer-sidebar-title">{modelSingularName ? "Explorer" : "Sections"}</div>
785
+ <SolidTag tone="info">{modelSingularName ? scopedTreeNodes.length : sections.length}</SolidTag>
786
+ </div>
787
+ <button
788
+ type="button"
789
+ className="solid-module-explorer-sidebar-action"
790
+ onClick={handleCollapseAll}
791
+ >
792
+ Collapse all
793
+ </button>
794
+ </div>
795
+
796
+ <div className="solid-module-explorer-sidebar-search">
797
+ <SolidInput
798
+ value={treeFilter}
799
+ onChange={(event) => setTreeFilter(event.target.value)}
800
+ placeholder="Search metadata tree"
801
+ />
802
+ <div className="solid-module-explorer-sidebar-search-icon">
803
+ <Search size={14} />
804
+ </div>
805
+ </div>
806
+
807
+ <div className="solid-module-explorer-section-list solid-module-explorer-tree-list">
808
+ <MetadataTree
809
+ nodes={filteredTreeNodes}
810
+ activePath={activePath}
811
+ expandedPaths={visibleExpandedPaths}
812
+ onToggle={toggleExpandedPath}
813
+ onSelect={selectPath}
814
+ />
815
+ </div>
816
+ </div>
817
+ </aside>
818
+
819
+ <div
820
+ className="solid-module-explorer-resizer"
821
+ role="separator"
822
+ aria-orientation="vertical"
823
+ aria-label="Resize metadata navigation panel"
824
+ onPointerDown={handleSidebarResizeStart}
825
+ />
826
+
827
+ <section className="solid-module-explorer-main">
828
+ <div className="solid-module-explorer-main-header">
829
+ <div className="solid-module-explorer-main-title">
830
+ <div className="solid-module-explorer-main-heading-row">
831
+ <h4>{activeNode?.label ?? activeSection?.title ?? "Metadata"}</h4>
832
+ <p>{activePath || "Choose a metadata node from the tree."}</p>
833
+ </div>
834
+ {hasValidationFailure && (
835
+ <div className="solid-module-explorer-inline-validation" title={validationSummary}>
836
+ {validationSummary}
837
+ </div>
838
+ )}
839
+ {isReadOnlyExplorer && (
840
+ <div className="solid-module-explorer-readonly-note">
841
+ This metadata is browse-only in the explorer.
842
+ </div>
843
+ )}
844
+ </div>
845
+ <div className="solid-module-explorer-main-actions">
846
+ <div className="solid-module-explorer-main-meta">
847
+ {hasMutableChanges && <SolidTag tone="warn">Unsaved changes</SolidTag>}
848
+ {editorError && <SolidTag tone="danger">Invalid JSON</SolidTag>}
849
+ {isReadOnlyExplorer && <SolidTag tone="info">Read only</SolidTag>}
850
+ </div>
851
+ {!isReadOnlyExplorer && (
852
+ <SolidButton
853
+ size="sm"
854
+ leftIcon={<Save size={14} />}
855
+ onClick={handleSave}
856
+ loading={isSavingSection}
857
+ disabled={!canSave}
858
+ >
859
+ Save Section
860
+ </SolidButton>
861
+ )}
862
+ <SolidDropdownMenu>
863
+ <SolidDropdownMenuTrigger asChild>
864
+ <SolidButton
865
+ variant="ghost"
866
+ size="sm"
867
+ className="solid-icon-button"
868
+ aria-label="Explorer actions"
869
+ >
870
+ <Settings size={16} />
871
+ </SolidButton>
872
+ </SolidDropdownMenuTrigger>
873
+ <SolidDropdownMenuContent className="solid-module-explorer-actions-menu">
874
+ {!isReadOnlyExplorer && (
875
+ <SolidDropdownMenuItem onSelect={handleFormat}>
876
+ <div className="solid-module-explorer-actions-item">
877
+ <Wand2 size={14} />
878
+ <span>Format</span>
879
+ </div>
880
+ </SolidDropdownMenuItem>
881
+ )}
882
+ <SolidDropdownMenuItem onSelect={handleValidate} disabled={isValidatingSection}>
883
+ <div className="solid-module-explorer-actions-item">
884
+ <FileSearch size={14} />
885
+ <span>{isValidatingSection ? "Validating..." : "Validate"}</span>
886
+ </div>
887
+ </SolidDropdownMenuItem>
888
+ <SolidDropdownMenuItem onSelect={() => setIsContextDialogOpen(true)}>
889
+ <div className="solid-module-explorer-actions-item">
890
+ <Settings size={14} />
891
+ <span>Context</span>
892
+ </div>
893
+ </SolidDropdownMenuItem>
894
+ {allowSeed && (
895
+ <SolidDropdownMenuItem onSelect={() => setIsSeedDialogOpen(true)} disabled={!moduleId || isSeedingModule}>
896
+ <div className="solid-module-explorer-actions-item">
897
+ <DatabaseZap size={14} />
898
+ <span>{isSeedingModule ? "Seeding..." : "Seed"}</span>
899
+ </div>
900
+ </SolidDropdownMenuItem>
901
+ )}
902
+ </SolidDropdownMenuContent>
903
+ </SolidDropdownMenu>
904
+ </div>
905
+ </div>
906
+
907
+ <div className="solid-module-explorer-editor-wrap">
908
+ <div className="solid-module-explorer-editor-shell">
909
+ {isDocumentLoading ? (
910
+ <div style={{ padding: "1rem" }} className="solid-module-explorer-empty">
911
+ Loading metadata JSON...
912
+ </div>
913
+ ) : (
914
+ <JsonEditorSurface
915
+ ref={editorRef}
916
+ value={savedValue}
917
+ resetToken={editorResetToken}
918
+ readOnly={isReadOnlyExplorer}
919
+ onValueChange={setEditorValue}
920
+ onErrorChange={setEditorError}
921
+ />
922
+ )}
923
+ </div>
924
+ </div>
925
+ </section>
926
+ </div>
927
+ </div>
928
+
929
+ <SolidDialog
930
+ open={isContextDialogOpen}
931
+ onOpenChange={setIsContextDialogOpen}
932
+ header="Context"
933
+ contentClassName="solid-module-explorer-context-dialog"
934
+ >
935
+ <SolidDialogBody>
936
+ <div className="solid-module-explorer-context-dialog-body">
937
+ <div className="solid-module-explorer-context-dialog-header">
938
+ <div className="solid-module-explorer-context-dialog-title">
939
+ {activeNode?.label ?? "Metadata node"}
940
+ </div>
941
+ <div className="solid-module-explorer-context-dialog-meta">
942
+ {activeNode?.sectionTitle && <SolidTag tone="info">{activeNode.sectionTitle}</SolidTag>}
943
+ </div>
944
+ </div>
945
+
946
+ <div className="solid-module-explorer-context-grid">
947
+ <div className="solid-module-explorer-context-row">
948
+ <div className="solid-module-explorer-context-label">JSON Path</div>
949
+ <div className="solid-module-explorer-context-value">{activePath || "-"}</div>
950
+ </div>
951
+ <div className="solid-module-explorer-context-row">
952
+ <div className="solid-module-explorer-context-label">File</div>
953
+ <div className="solid-module-explorer-context-value">{manifestData?.filePath ?? "-"}</div>
954
+ </div>
955
+ {localActionSummary && (
956
+ <div className="solid-module-explorer-context-row">
957
+ <div className="solid-module-explorer-context-label">Last Action</div>
958
+ <div className="solid-module-explorer-context-value">{localActionSummary}</div>
959
+ </div>
960
+ )}
961
+ </div>
962
+
963
+ <div className="solid-module-explorer-context-note">
964
+ Clicking any branch or leaf in the tree opens that exact JSON fragment on the right.
965
+ </div>
966
+ </div>
967
+ </SolidDialogBody>
968
+ </SolidDialog>
969
+
970
+ <SolidDialog
971
+ open={isSeedDialogOpen}
972
+ onOpenChange={setIsSeedDialogOpen}
973
+ contentClassName="solid-module-explorer-seed-dialog"
974
+ >
975
+ <SolidDialogHeader>
976
+ <SolidDialogTitle>Seed Module Metadata</SolidDialogTitle>
977
+ </SolidDialogHeader>
978
+ <SolidDialogSeparator />
979
+ <SolidDialogBody>
980
+ <div className="solid-module-explorer-seed-dialog-body">
981
+ <p>
982
+ Re-seed metadata for <strong>{moduleName}</strong> from its JSON file?
983
+ </p>
984
+ <p className="solid-module-explorer-seed-dialog-note">
985
+ This only re-runs metadata seeding for the current module and refreshes database metadata from the module JSON.
986
+ </p>
987
+ </div>
988
+ </SolidDialogBody>
989
+ <SolidDialogFooter>
990
+ <SolidButton variant="outline" size="sm" onClick={() => setIsSeedDialogOpen(false)} disabled={isSeedingModule}>
991
+ Cancel
992
+ </SolidButton>
993
+ <SolidButton size="sm" onClick={handleSeedModule} loading={isSeedingModule} disabled={!moduleId}>
994
+ Seed
995
+ </SolidButton>
996
+ </SolidDialogFooter>
997
+ </SolidDialog>
998
+ </div>
999
+ );
1000
+ }