@solidstarters/solid-core-ui 1.1.18 → 1.1.20

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 (495) hide show
  1. package/dist/components/Svg/FileSvg.d.ts +4 -0
  2. package/dist/components/Svg/FileSvg.d.ts.map +1 -0
  3. package/dist/components/Svg/FileSvg.js +15 -0
  4. package/dist/components/Svg/FileSvg.js.map +1 -0
  5. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  6. package/dist/components/auth/AuthLayout.js +9 -7
  7. package/dist/components/auth/AuthLayout.js.map +1 -1
  8. package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -1
  9. package/dist/components/auth/ForgotPasswordThankYou.js +3 -1
  10. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  11. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  12. package/dist/components/auth/SolidForgotPassword.js +3 -1
  13. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  14. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  15. package/dist/components/auth/SolidInitialLoginOtp.js +4 -2
  16. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  17. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  18. package/dist/components/auth/SolidInitiateRegisterOtp.js +4 -2
  19. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  20. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  21. package/dist/components/auth/SolidLogin.js +3 -1
  22. package/dist/components/auth/SolidLogin.js.map +1 -1
  23. package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -1
  24. package/dist/components/auth/SolidOTPVerify.js +3 -1
  25. package/dist/components/auth/SolidOTPVerify.js.map +1 -1
  26. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  27. package/dist/components/auth/SolidRegister.js +3 -1
  28. package/dist/components/auth/SolidRegister.js.map +1 -1
  29. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  30. package/dist/components/auth/SolidResetPassword.js +4 -2
  31. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  32. package/dist/components/common/CancelButton.js +2 -2
  33. package/dist/components/common/CancelButton.js.map +1 -1
  34. package/dist/components/common/DropzonePlaceholder.d.ts +6 -1
  35. package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
  36. package/dist/components/common/DropzonePlaceholder.js +8 -2
  37. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  38. package/dist/components/common/FileReaderExt.d.ts.map +1 -1
  39. package/dist/components/common/FileReaderExt.js +2 -1
  40. package/dist/components/common/FileReaderExt.js.map +1 -1
  41. package/dist/components/common/SolidBreadcrumb.d.ts +11 -0
  42. package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -0
  43. package/dist/components/common/SolidBreadcrumb.js +22 -0
  44. package/dist/components/common/SolidBreadcrumb.js.map +1 -0
  45. package/dist/components/core/common/SolidConfigureLayoutElement.d.ts +1 -1
  46. package/dist/components/core/common/SolidConfigureLayoutElement.d.ts.map +1 -1
  47. package/dist/components/core/common/SolidConfigureLayoutElement.js +38 -10
  48. package/dist/components/core/common/SolidConfigureLayoutElement.js.map +1 -1
  49. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  50. package/dist/components/core/common/SolidGlobalSearchElement.js +3 -3
  51. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  52. package/dist/components/core/filter/SolidManyToOneFilterElement.js +1 -1
  53. package/dist/components/core/filter/SolidManyToOneFilterElement.js.map +1 -1
  54. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  55. package/dist/components/core/form/SolidFormView.js +33 -40
  56. package/dist/components/core/form/SolidFormView.js.map +1 -1
  57. package/dist/components/core/form/fields/ISolidField.d.ts +1 -0
  58. package/dist/components/core/form/fields/ISolidField.d.ts.map +1 -1
  59. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  60. package/dist/components/core/form/fields/SolidBooleanField.js +3 -2
  61. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  62. package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
  63. package/dist/components/core/form/fields/SolidDateField.js +3 -2
  64. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  65. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  66. package/dist/components/core/form/fields/SolidDateTimeField.js +3 -2
  67. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  68. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  69. package/dist/components/core/form/fields/SolidDecimalField.js +10 -2
  70. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  71. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  72. package/dist/components/core/form/fields/SolidIntegerField.js +10 -2
  73. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  74. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  75. package/dist/components/core/form/fields/SolidJsonField.js +3 -2
  76. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  77. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  78. package/dist/components/core/form/fields/SolidLongTextField.js +3 -2
  79. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  80. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  81. package/dist/components/core/form/fields/SolidMediaMultipleField.js +69 -66
  82. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  83. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  84. package/dist/components/core/form/fields/SolidMediaSingleField.js +75 -93
  85. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  86. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  87. package/dist/components/core/form/fields/SolidRichTextField.js +3 -2
  88. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  89. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  90. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +3 -2
  91. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  92. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  93. package/dist/components/core/form/fields/SolidSelectionStaticField.js +3 -2
  94. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  95. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  96. package/dist/components/core/form/fields/SolidShortTextField.js +3 -2
  97. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  98. package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
  99. package/dist/components/core/form/fields/SolidTimeField.js +3 -2
  100. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  101. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  102. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +9 -5
  103. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  104. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +7 -8
  105. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  106. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  107. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +10 -8
  108. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  109. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  110. package/dist/components/core/list/SolidListView.js +54 -48
  111. package/dist/components/core/list/SolidListView.js.map +1 -1
  112. package/dist/components/core/list/SolidManyToOneFilterElement.js +1 -1
  113. package/dist/components/core/list/SolidManyToOneFilterElement.js.map +1 -1
  114. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  115. package/dist/components/core/model/CreateModel.js +15 -8
  116. package/dist/components/core/model/CreateModel.js.map +1 -1
  117. package/dist/components/core/model/FieldMetaData.js +1 -1
  118. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  119. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  120. package/dist/components/core/model/FieldMetaDataForm.js +65 -68
  121. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  122. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  123. package/dist/components/core/model/ModelMetaData.js +6 -1
  124. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  125. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  126. package/dist/components/core/module/CreateModule.js +13 -7
  127. package/dist/components/core/module/CreateModule.js.map +1 -1
  128. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  129. package/dist/components/core/users/CreateUser.js +10 -4
  130. package/dist/components/core/users/CreateUser.js.map +1 -1
  131. package/dist/components/layout/AppConfig.js +1 -1
  132. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  133. package/dist/components/layout/AppSidebar.js +34 -5
  134. package/dist/components/layout/AppSidebar.js.map +1 -1
  135. package/dist/components/layout/navbar-two-menu.js +1 -1
  136. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  137. package/dist/components/layout/user-profile-menu.js +3 -1
  138. package/dist/components/layout/user-profile-menu.js.map +1 -1
  139. package/dist/helpers/downloadMediaFile.d.ts +2 -0
  140. package/dist/helpers/downloadMediaFile.d.ts.map +1 -0
  141. package/dist/helpers/downloadMediaFile.js +66 -0
  142. package/dist/helpers/downloadMediaFile.js.map +1 -0
  143. package/dist/helpers/getAcceptedFileTypes.d.ts +4 -0
  144. package/dist/helpers/getAcceptedFileTypes.d.ts.map +1 -0
  145. package/dist/helpers/getAcceptedFileTypes.js +20 -0
  146. package/dist/helpers/getAcceptedFileTypes.js.map +1 -0
  147. package/dist/helpers/permissions.d.ts +1 -0
  148. package/dist/helpers/permissions.d.ts.map +1 -1
  149. package/dist/helpers/permissions.js +3 -0
  150. package/dist/helpers/permissions.js.map +1 -1
  151. package/dist/index.js +2 -2
  152. package/dist/nextAuth/authProviders.d.ts.map +1 -1
  153. package/dist/nextAuth/authProviders.js +15 -10
  154. package/dist/nextAuth/authProviders.js.map +1 -1
  155. package/dist/redux/api/authApi.d.ts.map +1 -1
  156. package/dist/redux/api/authApi.js +1 -1
  157. package/dist/redux/api/authApi.js.map +1 -1
  158. package/dist/redux/api/solidViewApi.d.ts +1 -1
  159. package/dist/redux/api/solidViewApi.d.ts.map +1 -1
  160. package/dist/redux/api/solidViewApi.js +1 -1
  161. package/dist/redux/api/solidViewApi.js.map +1 -1
  162. package/dist/resources/globals.css +2551 -0
  163. package/dist/resources/images/AvatarDemo.png +0 -0
  164. package/dist/resources/images/Footerbg.png +0 -0
  165. package/dist/resources/images/LoginBanner.png +0 -0
  166. package/dist/resources/images/Navigation/Level.svg +5 -0
  167. package/dist/resources/images/Navigation/Presure.svg +7 -0
  168. package/dist/resources/images/Navigation/Temperature.svg +13 -0
  169. package/dist/resources/images/Navigation/settings.png +0 -0
  170. package/dist/resources/images/Profile/Avatar.png +0 -0
  171. package/dist/resources/images/SS-Logo.png +0 -0
  172. package/dist/resources/images/activity.svg +3 -0
  173. package/dist/resources/images/app-builder.png +0 -0
  174. package/dist/resources/images/auth/solid-left-layout-bg.png +0 -0
  175. package/dist/resources/images/auth/solid-login-light.png +0 -0
  176. package/dist/resources/images/auth/solid-right-layout-bg.png +0 -0
  177. package/dist/resources/images/clog-wheel.png +0 -0
  178. package/dist/resources/images/dark-mode.png +0 -0
  179. package/dist/resources/images/dashboard/Ellipse 1.svg +10 -0
  180. package/dist/resources/images/dashboard/Rectangle 17.svg +10 -0
  181. package/dist/resources/images/dashboard/Rectangle 25.svg +11 -0
  182. package/dist/resources/images/dashboard/image 5.svg +9 -0
  183. package/dist/resources/images/eye-icon.png +0 -0
  184. package/dist/resources/images/fb.svg +3 -0
  185. package/dist/resources/images/fileReader/image-jpg.png +0 -0
  186. package/dist/resources/images/filter-icon.png +0 -0
  187. package/dist/resources/images/form/user.png +0 -0
  188. package/dist/resources/images/iam.png +0 -0
  189. package/dist/resources/images/icons/icon-activity.svg +3 -0
  190. package/dist/resources/images/icons/icon-calender.svg +3 -0
  191. package/dist/resources/images/icons/icon-graph.svg +3 -0
  192. package/dist/resources/images/icons/icon-kanban.svg +3 -0
  193. package/dist/resources/images/icons/icon-list.svg +3 -0
  194. package/dist/resources/images/icons/icon-users.svg +3 -0
  195. package/dist/resources/images/icons/jump-to-icon.png +0 -0
  196. package/dist/resources/images/insta.svg +3 -0
  197. package/dist/resources/images/layout/images/comfortable.png +0 -0
  198. package/dist/resources/images/layout/images/compact.png +0 -0
  199. package/dist/resources/images/layout/images/cozy.png +0 -0
  200. package/dist/resources/images/layout/images/kanban.png +0 -0
  201. package/dist/resources/images/li.svg +3 -0
  202. package/dist/resources/images/loginhero.png +0 -0
  203. package/dist/resources/images/logo.png +0 -0
  204. package/dist/resources/images/mail-icon.png +0 -0
  205. package/dist/resources/images/menu/app-builder.svg +19 -0
  206. package/dist/resources/images/menu/iam.svg +14 -0
  207. package/dist/resources/images/menu/logicloop-black.svg +28 -0
  208. package/dist/resources/images/menu/logicloop-blue.svg +32 -0
  209. package/dist/resources/images/menu/logicloop-white.svg +32 -0
  210. package/dist/resources/images/menu/queues.svg +14 -0
  211. package/dist/resources/images/menu/radix.svg +9 -0
  212. package/dist/resources/images/menu/rl-lead-middleware.svg +19 -0
  213. package/dist/resources/images/menu/solid-address-master.svg +10 -0
  214. package/dist/resources/images/menu/srmd-tracker-black.svg +16 -0
  215. package/dist/resources/images/menu/srmd-tracker-original.svg +32 -0
  216. package/dist/resources/images/menu/srmd-tracker-white.svg +17 -0
  217. package/dist/resources/images/menu/srmd-tracker.svg +16 -0
  218. package/dist/resources/images/menu-icon.png +0 -0
  219. package/dist/resources/images/menu-toggle.png +0 -0
  220. package/dist/resources/images/password-icon.png +0 -0
  221. package/dist/resources/images/profile.png +0 -0
  222. package/dist/resources/images/radix-logo-white.png +0 -0
  223. package/dist/resources/images/radix-logo.png +0 -0
  224. package/dist/resources/images/search-icon.png +0 -0
  225. package/dist/resources/images/signupBanner.png +0 -0
  226. package/dist/resources/images/tw.svg +3 -0
  227. package/dist/resources/images/user-icon.png +0 -0
  228. package/dist/resources/stylesheets/_config.scss +54 -0
  229. package/dist/resources/stylesheets/_content.scss +91 -0
  230. package/dist/resources/stylesheets/_footer.scss +8 -0
  231. package/dist/resources/stylesheets/_main.scss +47 -0
  232. package/dist/resources/stylesheets/_menu.scss +185 -0
  233. package/dist/resources/stylesheets/_mixins.scss +13 -0
  234. package/dist/resources/stylesheets/_responsive.scss +99 -0
  235. package/dist/resources/stylesheets/_topbar.scss +149 -0
  236. package/dist/resources/stylesheets/_typography.scss +63 -0
  237. package/dist/resources/stylesheets/_utils.scss +27 -0
  238. package/dist/resources/stylesheets/_variables.scss +3 -0
  239. package/dist/resources/stylesheets/layout.scss +11 -0
  240. package/dist/stylesheets/globals.css +2476 -0
  241. package/dist/stylesheets/styles/SF-Pro-Display-Regular.otf +0 -0
  242. package/dist/stylesheets/styles/layout/_config.scss +54 -0
  243. package/dist/stylesheets/styles/layout/_content.scss +77 -0
  244. package/dist/stylesheets/styles/layout/_footer.scss +8 -0
  245. package/dist/stylesheets/styles/layout/_main.scss +47 -0
  246. package/dist/stylesheets/styles/layout/_menu.scss +185 -0
  247. package/dist/stylesheets/styles/layout/_mixins.scss +13 -0
  248. package/dist/stylesheets/styles/layout/_responsive.scss +99 -0
  249. package/dist/stylesheets/styles/layout/_topbar.scss +149 -0
  250. package/dist/stylesheets/styles/layout/_typography.scss +63 -0
  251. package/dist/stylesheets/styles/layout/_utils.scss +27 -0
  252. package/dist/stylesheets/styles/layout/_variables.scss +3 -0
  253. package/dist/stylesheets/styles/layout/layout.scss +11 -0
  254. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Black.otf +0 -0
  255. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Bold.otf +0 -0
  256. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Heavy.otf +0 -0
  257. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Light.otf +0 -0
  258. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Medium.otf +0 -0
  259. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Regular.otf +0 -0
  260. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Semibold.otf +0 -0
  261. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Thin.otf +0 -0
  262. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Ultralight.otf +0 -0
  263. package/dist/stylesheets/themes/solid-dark-purple/theme.css +9051 -0
  264. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Black.otf +0 -0
  265. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Bold.otf +0 -0
  266. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Heavy.otf +0 -0
  267. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Light.otf +0 -0
  268. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Medium.otf +0 -0
  269. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Regular.otf +0 -0
  270. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Semibold.otf +0 -0
  271. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Thin.otf +0 -0
  272. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Ultralight.otf +0 -0
  273. package/dist/stylesheets/themes/solid-light-purple/theme.css +9077 -0
  274. package/package.json +6 -3
  275. package/src/components/Svg/FileSvg.tsx +18 -0
  276. package/src/components/auth/AuthLayout.tsx +13 -8
  277. package/src/components/auth/ForgotPasswordThankYou.tsx +6 -3
  278. package/src/components/auth/SolidForgotPassword.tsx +7 -4
  279. package/src/components/auth/SolidInitialLoginOtp.tsx +7 -4
  280. package/src/components/auth/SolidInitiateRegisterOtp.tsx +7 -4
  281. package/src/components/auth/SolidLogin.tsx +6 -3
  282. package/src/components/auth/SolidOTPVerify.tsx +6 -3
  283. package/src/components/auth/SolidRegister.tsx +6 -4
  284. package/src/components/auth/SolidResetPassword.tsx +7 -4
  285. package/src/components/common/CancelButton.tsx +2 -2
  286. package/src/components/common/DropzonePlaceholder.tsx +22 -9
  287. package/src/components/common/FileReaderExt.tsx +5 -3
  288. package/src/components/common/SolidBreadcrumb.tsx +27 -0
  289. package/src/components/core/common/SolidConfigureLayoutElement.tsx +102 -42
  290. package/src/components/core/common/SolidGlobalSearchElement.tsx +4 -3
  291. package/src/components/core/filter/SolidManyToOneFilterElement.tsx +1 -1
  292. package/src/components/core/form/SolidFormView.tsx +67 -69
  293. package/src/components/core/form/fields/ISolidField.tsx +2 -1
  294. package/src/components/core/form/fields/SolidBooleanField.tsx +3 -2
  295. package/src/components/core/form/fields/SolidDateField.tsx +3 -2
  296. package/src/components/core/form/fields/SolidDateTimeField.tsx +3 -2
  297. package/src/components/core/form/fields/SolidDecimalField.tsx +10 -2
  298. package/src/components/core/form/fields/SolidIntegerField.tsx +10 -2
  299. package/src/components/core/form/fields/SolidJsonField.tsx +3 -2
  300. package/src/components/core/form/fields/SolidLongTextField.tsx +3 -2
  301. package/src/components/core/form/fields/SolidMediaMultipleField.tsx +119 -97
  302. package/src/components/core/form/fields/SolidMediaSingleField.tsx +112 -125
  303. package/src/components/core/form/fields/SolidRichTextField.tsx +3 -2
  304. package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +3 -2
  305. package/src/components/core/form/fields/SolidSelectionStaticField.tsx +3 -2
  306. package/src/components/core/form/fields/SolidShortTextField.tsx +3 -2
  307. package/src/components/core/form/fields/SolidTimeField.tsx +3 -2
  308. package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +14 -7
  309. package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +7 -7
  310. package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +11 -7
  311. package/src/components/core/list/SolidListView.tsx +36 -55
  312. package/src/components/core/list/SolidManyToOneFilterElement.tsx +1 -1
  313. package/src/components/core/model/CreateModel.tsx +36 -27
  314. package/src/components/core/model/FieldMetaData.tsx +24 -24
  315. package/src/components/core/model/FieldMetaDataForm.tsx +45 -60
  316. package/src/components/core/model/ModelMetaData.tsx +7 -1
  317. package/src/components/core/module/CreateModule.tsx +24 -19
  318. package/src/components/core/users/CreateUser.tsx +15 -5
  319. package/src/components/layout/AppConfig.tsx +1 -1
  320. package/src/components/layout/AppSidebar.tsx +58 -23
  321. package/src/components/layout/navbar-two-menu.tsx +1 -1
  322. package/src/components/layout/user-profile-menu.tsx +18 -16
  323. package/src/declarations.d.ts +19 -0
  324. package/src/helpers/downloadMediaFile.tsx +19 -0
  325. package/src/helpers/getAcceptedFileTypes.tsx +22 -0
  326. package/src/helpers/permissions.ts +3 -0
  327. package/src/nextAuth/authProviders.tsx +3 -2
  328. package/src/redux/api/authApi.ts +2 -1
  329. package/src/redux/api/solidViewApi.ts +1 -0
  330. package/src/resources/globals.css +2551 -0
  331. package/src/resources/images/AvatarDemo.png +0 -0
  332. package/src/resources/images/Footerbg.png +0 -0
  333. package/src/resources/images/LoginBanner.png +0 -0
  334. package/src/resources/images/Navigation/Level.svg +5 -0
  335. package/src/resources/images/Navigation/Presure.svg +7 -0
  336. package/src/resources/images/Navigation/Temperature.svg +13 -0
  337. package/src/resources/images/Navigation/settings.png +0 -0
  338. package/src/resources/images/Profile/Avatar.png +0 -0
  339. package/src/resources/images/SS-Logo.png +0 -0
  340. package/src/resources/images/activity.svg +3 -0
  341. package/src/resources/images/app-builder.png +0 -0
  342. package/src/resources/images/auth/solid-left-layout-bg.png +0 -0
  343. package/src/resources/images/auth/solid-login-light.png +0 -0
  344. package/src/resources/images/auth/solid-right-layout-bg.png +0 -0
  345. package/src/resources/images/clog-wheel.png +0 -0
  346. package/src/resources/images/dark-mode.png +0 -0
  347. package/src/resources/images/dashboard/Ellipse 1.svg +10 -0
  348. package/src/resources/images/dashboard/Rectangle 17.svg +10 -0
  349. package/src/resources/images/dashboard/Rectangle 25.svg +11 -0
  350. package/src/resources/images/dashboard/image 5.svg +9 -0
  351. package/src/resources/images/eye-icon.png +0 -0
  352. package/src/resources/images/fb.svg +3 -0
  353. package/src/resources/images/fileReader/image-jpg.png +0 -0
  354. package/src/resources/images/filter-icon.png +0 -0
  355. package/src/resources/images/form/user.png +0 -0
  356. package/src/resources/images/iam.png +0 -0
  357. package/src/resources/images/icons/icon-activity.svg +3 -0
  358. package/src/resources/images/icons/icon-calender.svg +3 -0
  359. package/src/resources/images/icons/icon-graph.svg +3 -0
  360. package/src/resources/images/icons/icon-kanban.svg +3 -0
  361. package/src/resources/images/icons/icon-list.svg +3 -0
  362. package/src/resources/images/icons/icon-users.svg +3 -0
  363. package/src/resources/images/icons/jump-to-icon.png +0 -0
  364. package/src/resources/images/insta.svg +3 -0
  365. package/src/resources/images/layout/images/comfortable.png +0 -0
  366. package/src/resources/images/layout/images/compact.png +0 -0
  367. package/src/resources/images/layout/images/cozy.png +0 -0
  368. package/src/resources/images/layout/images/kanban.png +0 -0
  369. package/src/resources/images/li.svg +3 -0
  370. package/src/resources/images/loginhero.png +0 -0
  371. package/src/resources/images/logo.png +0 -0
  372. package/src/resources/images/mail-icon.png +0 -0
  373. package/src/resources/images/menu/app-builder.svg +19 -0
  374. package/src/resources/images/menu/iam.svg +14 -0
  375. package/src/resources/images/menu/logicloop-black.svg +28 -0
  376. package/src/resources/images/menu/logicloop-blue.svg +32 -0
  377. package/src/resources/images/menu/logicloop-white.svg +32 -0
  378. package/src/resources/images/menu/queues.svg +14 -0
  379. package/src/resources/images/menu/radix.svg +9 -0
  380. package/src/resources/images/menu/rl-lead-middleware.svg +19 -0
  381. package/src/resources/images/menu/solid-address-master.svg +10 -0
  382. package/src/resources/images/menu/srmd-tracker-black.svg +16 -0
  383. package/src/resources/images/menu/srmd-tracker-original.svg +32 -0
  384. package/src/resources/images/menu/srmd-tracker-white.svg +17 -0
  385. package/src/resources/images/menu/srmd-tracker.svg +16 -0
  386. package/src/resources/images/menu-icon.png +0 -0
  387. package/src/resources/images/menu-toggle.png +0 -0
  388. package/src/resources/images/password-icon.png +0 -0
  389. package/src/resources/images/profile.png +0 -0
  390. package/src/resources/images/radix-logo-white.png +0 -0
  391. package/src/resources/images/radix-logo.png +0 -0
  392. package/src/resources/images/search-icon.png +0 -0
  393. package/src/resources/images/signupBanner.png +0 -0
  394. package/src/resources/images/tw.svg +3 -0
  395. package/src/resources/images/user-icon.png +0 -0
  396. package/src/resources/stylesheets/_config.scss +54 -0
  397. package/src/resources/stylesheets/_content.scss +91 -0
  398. package/src/resources/stylesheets/_footer.scss +8 -0
  399. package/src/resources/stylesheets/_main.scss +47 -0
  400. package/src/resources/stylesheets/_menu.scss +185 -0
  401. package/src/resources/stylesheets/_mixins.scss +13 -0
  402. package/src/resources/stylesheets/_responsive.scss +99 -0
  403. package/src/resources/stylesheets/_topbar.scss +149 -0
  404. package/src/resources/stylesheets/_typography.scss +63 -0
  405. package/src/resources/stylesheets/_utils.scss +27 -0
  406. package/src/resources/stylesheets/_variables.scss +3 -0
  407. package/src/resources/stylesheets/layout.scss +11 -0
  408. package/dist/components/common/FilterComponent.d.ts +0 -3
  409. package/dist/components/common/FilterComponent.d.ts.map +0 -1
  410. package/dist/components/common/FilterComponent.js +0 -214
  411. package/dist/components/common/FilterComponent.js.map +0 -1
  412. package/dist/components/core/filter/columns/SolidBigintField.d.ts +0 -4
  413. package/dist/components/core/filter/columns/SolidBigintField.d.ts.map +0 -1
  414. package/dist/components/core/filter/columns/SolidBigintField.js +0 -8
  415. package/dist/components/core/filter/columns/SolidBigintField.js.map +0 -1
  416. package/dist/components/core/filter/columns/SolidBooleanField.d.ts +0 -4
  417. package/dist/components/core/filter/columns/SolidBooleanField.d.ts.map +0 -1
  418. package/dist/components/core/filter/columns/SolidBooleanField.js +0 -27
  419. package/dist/components/core/filter/columns/SolidBooleanField.js.map +0 -1
  420. package/dist/components/core/filter/columns/SolidComputedField.d.ts +0 -4
  421. package/dist/components/core/filter/columns/SolidComputedField.d.ts.map +0 -1
  422. package/dist/components/core/filter/columns/SolidComputedField.js +0 -22
  423. package/dist/components/core/filter/columns/SolidComputedField.js.map +0 -1
  424. package/dist/components/core/filter/columns/SolidDateField.d.ts +0 -9
  425. package/dist/components/core/filter/columns/SolidDateField.d.ts.map +0 -1
  426. package/dist/components/core/filter/columns/SolidDateField.js +0 -35
  427. package/dist/components/core/filter/columns/SolidDateField.js.map +0 -1
  428. package/dist/components/core/filter/columns/SolidDatetimeField.d.ts +0 -4
  429. package/dist/components/core/filter/columns/SolidDatetimeField.d.ts.map +0 -1
  430. package/dist/components/core/filter/columns/SolidDatetimeField.js +0 -24
  431. package/dist/components/core/filter/columns/SolidDatetimeField.js.map +0 -1
  432. package/dist/components/core/filter/columns/SolidDecimalField.d.ts +0 -4
  433. package/dist/components/core/filter/columns/SolidDecimalField.d.ts.map +0 -1
  434. package/dist/components/core/filter/columns/SolidDecimalField.js +0 -8
  435. package/dist/components/core/filter/columns/SolidDecimalField.js.map +0 -1
  436. package/dist/components/core/filter/columns/SolidExternalIdField.d.ts +0 -4
  437. package/dist/components/core/filter/columns/SolidExternalIdField.d.ts.map +0 -1
  438. package/dist/components/core/filter/columns/SolidExternalIdField.js +0 -25
  439. package/dist/components/core/filter/columns/SolidExternalIdField.js.map +0 -1
  440. package/dist/components/core/filter/columns/SolidFloatField.d.ts +0 -4
  441. package/dist/components/core/filter/columns/SolidFloatField.d.ts.map +0 -1
  442. package/dist/components/core/filter/columns/SolidFloatField.js +0 -8
  443. package/dist/components/core/filter/columns/SolidFloatField.js.map +0 -1
  444. package/dist/components/core/filter/columns/SolidIdField.d.ts +0 -4
  445. package/dist/components/core/filter/columns/SolidIdField.d.ts.map +0 -1
  446. package/dist/components/core/filter/columns/SolidIdField.js +0 -25
  447. package/dist/components/core/filter/columns/SolidIdField.js.map +0 -1
  448. package/dist/components/core/filter/columns/SolidIntField.d.ts +0 -4
  449. package/dist/components/core/filter/columns/SolidIntField.d.ts.map +0 -1
  450. package/dist/components/core/filter/columns/SolidIntField.js +0 -34
  451. package/dist/components/core/filter/columns/SolidIntField.js.map +0 -1
  452. package/dist/components/core/filter/columns/SolidLongTextField.d.ts +0 -4
  453. package/dist/components/core/filter/columns/SolidLongTextField.d.ts.map +0 -1
  454. package/dist/components/core/filter/columns/SolidLongTextField.js +0 -8
  455. package/dist/components/core/filter/columns/SolidLongTextField.js.map +0 -1
  456. package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts +0 -4
  457. package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts.map +0 -1
  458. package/dist/components/core/filter/columns/SolidMediaMultipleField.js +0 -35
  459. package/dist/components/core/filter/columns/SolidMediaMultipleField.js.map +0 -1
  460. package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts +0 -4
  461. package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts.map +0 -1
  462. package/dist/components/core/filter/columns/SolidMediaSingleField.js +0 -35
  463. package/dist/components/core/filter/columns/SolidMediaSingleField.js.map +0 -1
  464. package/dist/components/core/filter/columns/SolidRelationField.d.ts +0 -4
  465. package/dist/components/core/filter/columns/SolidRelationField.d.ts.map +0 -1
  466. package/dist/components/core/filter/columns/SolidRelationField.js +0 -12
  467. package/dist/components/core/filter/columns/SolidRelationField.js.map +0 -1
  468. package/dist/components/core/filter/columns/SolidRichTextField.d.ts +0 -4
  469. package/dist/components/core/filter/columns/SolidRichTextField.d.ts.map +0 -1
  470. package/dist/components/core/filter/columns/SolidRichTextField.js +0 -8
  471. package/dist/components/core/filter/columns/SolidRichTextField.js.map +0 -1
  472. package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts +0 -4
  473. package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts.map +0 -1
  474. package/dist/components/core/filter/columns/SolidSelectionDynamicField.js +0 -25
  475. package/dist/components/core/filter/columns/SolidSelectionDynamicField.js.map +0 -1
  476. package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts +0 -4
  477. package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts.map +0 -1
  478. package/dist/components/core/filter/columns/SolidSelectionStaticField.js +0 -26
  479. package/dist/components/core/filter/columns/SolidSelectionStaticField.js.map +0 -1
  480. package/dist/components/core/filter/columns/SolidShortTextField.d.ts +0 -4
  481. package/dist/components/core/filter/columns/SolidShortTextField.d.ts.map +0 -1
  482. package/dist/components/core/filter/columns/SolidShortTextField.js +0 -33
  483. package/dist/components/core/filter/columns/SolidShortTextField.js.map +0 -1
  484. package/dist/components/core/filter/columns/SolidTimeField.d.ts +0 -4
  485. package/dist/components/core/filter/columns/SolidTimeField.d.ts.map +0 -1
  486. package/dist/components/core/filter/columns/SolidTimeField.js +0 -24
  487. package/dist/components/core/filter/columns/SolidTimeField.js.map +0 -1
  488. package/dist/components/core/filter/columns/SolidUuidField.d.ts +0 -4
  489. package/dist/components/core/filter/columns/SolidUuidField.d.ts.map +0 -1
  490. package/dist/components/core/filter/columns/SolidUuidField.js +0 -25
  491. package/dist/components/core/filter/columns/SolidUuidField.js.map +0 -1
  492. package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts +0 -4
  493. package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts.map +0 -1
  494. package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js +0 -54
  495. package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js.map +0 -1
@@ -1,22 +1,43 @@
1
1
  "use client"
2
+ import { deleteManyPermission, deletePermission } from "@/helpers/permissions";
3
+ import Image from "next/image";
2
4
  import { Accordion, AccordionTab } from "primereact/accordion";
3
5
  import { Button } from "primereact/button";
4
6
  import { Checkbox, CheckboxChangeEvent } from "primereact/checkbox";
5
7
  import { Divider } from "primereact/divider";
6
8
  import { OverlayPanel } from "primereact/overlaypanel";
7
9
  import { RadioButton } from "primereact/radiobutton";
8
- import { useRef, useState } from "react";
10
+ import { useEffect, useRef, useState } from "react";
9
11
 
10
12
  interface FilterColumns {
11
13
  name: string;
12
14
  key: string;
13
15
  }
14
- export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, viewData, sizeOptions, setSize, size, viewModes, setView, view }: any) => {
16
+ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, viewData, sizeOptions, setSize, size, viewModes, setView, view, params, actionsAllowed, selectedRecords, setDialogVisible }: any) => {
15
17
 
16
18
  // const [visible, setVisible] = useState<boolean>(false);
17
19
  const op = useRef(null);
18
- const customizeLayout = useRef(null);
19
- const [isOverlayOpen, setIsOverlayOpen] = useState(true);
20
+ const customizeLayout = useRef<OverlayPanel | null>(null);
21
+ const [isOverlayOpen, setIsOverlayOpen] = useState(false);
22
+ console.log("isOverlayOpen", isOverlayOpen);
23
+ useEffect(() => {
24
+ const handleClickOutside = (event: MouseEvent) => {
25
+ if (
26
+ customizeLayout.current &&
27
+ !customizeLayout.current.getElement()?.contains(event.target as Node)
28
+ ) {
29
+ setIsOverlayOpen(false);
30
+ }
31
+ };
32
+
33
+ if (isOverlayOpen) {
34
+ document.addEventListener("click", handleClickOutside);
35
+ } else {
36
+ document.removeEventListener("click", handleClickOutside);
37
+ }
38
+
39
+ return () => document.removeEventListener("click", handleClickOutside);
40
+ }, [isOverlayOpen])
20
41
 
21
42
  const categories: FilterColumns[] = [
22
43
  { name: 'ID', key: 'A' },
@@ -48,55 +69,89 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
48
69
  // @ts-ignore
49
70
  onClick={(e) => op.current.toggle(e)}
50
71
  />
51
- <OverlayPanel ref={op}>
72
+ <OverlayPanel ref={op} className="listview-cogwheel-panel">
52
73
  <div className="p-2">
53
74
  <div className="flex flex-column">
54
- <Button text icon='pi pi-download' label="Import" size="small" severity="secondary" className="text-left gap-2" />
55
- <Button text icon='pi pi-upload' label="Export" size="small" severity="secondary" className="text-left gap-2" />
56
- <Button text icon='pi pi-share-alt' label="Share" size="small" severity="secondary" className="text-left gap-2" />
75
+ {actionsAllowed.includes(`${deleteManyPermission(params.modelName)}`) && viewData?.data?.solidView?.layout?.attrs?.delete !== false && selectedRecords.length > 0 &&
76
+ <Button
77
+ text
78
+ type="button"
79
+ className="text-left gap-2 text-base"
80
+ label="Delete"
81
+ size="small"
82
+ iconPos="left"
83
+ severity="danger"
84
+ icon={'pi pi-trash'}
85
+ onClick={() => setDialogVisible(true)}
86
+ />}
87
+ <Button text icon='pi pi-download' label="Import" size="small" severity="secondary" className="text-left gap-2 text-base" />
88
+ <Button text icon='pi pi-upload' label="Export" size="small" severity="secondary" className="text-left gap-2 text-base" />
89
+ {/* <Button text icon='pi pi-share-alt' label="Share" size="small" severity="secondary" className="text-left gap-2" /> */}
90
+ {/* {viewData?.data?.solidView?.model?.enableSoftDelete &&
91
+ <Button text severity="secondary" size="small" className="text-left w-13rem" label={showArchived ? "Hide Archived Records" : "Show Archived Records"} iconPos="left" onClick={() => { setShowArchived(!showArchived); }} />
92
+ } */}
93
+ {viewData?.data?.solidView?.model?.enableSoftDelete && (
94
+ <div className="flex align-items-center px-3 gap-2 mt-2 mb-1">
95
+ <Checkbox
96
+ inputId="showArchived"
97
+ checked={showArchived}
98
+ onChange={() => setShowArchived(!showArchived)}
99
+ />
100
+ <label htmlFor="showArchived" className="ml-2 text-base solid-secondary-text-color">
101
+ Show Archived Records
102
+ </label>
103
+ </div>
104
+ )}
105
+
106
+
57
107
  </div>
58
108
  </div>
59
109
  <Divider className="m-0" />
60
110
  <div className="p-2 position-relative flex flex-column gap-1">
61
- {viewData?.data?.solidView?.model?.enableSoftDelete &&
62
- <Button text size="small" className="text-left w-13rem" label={showArchived ? "Hide Archived Records" : "Show Archived Records"} iconPos="left" onClick={() => { setShowArchived(!showArchived); }} />
63
- }
64
111
  <Button
65
112
  icon='pi pi-sliders-h'
66
113
  label="Customize Layout"
114
+ severity={isOverlayOpen ? undefined : "secondary"}
67
115
  size="small"
68
- text={isOverlayOpen}
69
- className="text-left gap-2 w-13rem"
116
+ text={isOverlayOpen ? false : true}
117
+ className="text-left gap-2 w-full text-base"
70
118
  // @ts-ignore
71
- onClick={(e) => customizeLayout.current.toggle(e)}
72
- // onMouseEnter={(e) => customizeLayout.current.show(e)}
73
- />
74
- <p className="mt-3 mb-1 font-medium" style={{ color: 'var(--gray-400)' }}>Saved Layouts</p>
75
- <Button text severity="secondary" label="Diet Tracking" icon="pi pi-plus" size="small" />
119
+ onClick={(e) => {
120
+ customizeLayout.current?.toggle(e);
121
+ setIsOverlayOpen((prev) => !prev); // ✅ Ensure state updates when toggled
122
+ }}
123
+ >
124
+ <i className="pi pi-chevron-right text-sm"></i>
125
+ </Button>
126
+ {/* <p className="mt-3 mb-1 font-medium" style={{ color: 'var(--gray-400)' }}>Saved Layouts</p> */}
127
+ {/* <Button text severity="secondary" label="Diet Tracking" icon="pi pi-plus" size="small" /> */}
76
128
  <OverlayPanel ref={customizeLayout} className="customize-layout-panel" style={{ minWidth: 250 }}
77
- onShow={() => setIsOverlayOpen(false)}
78
- onHide={() => setIsOverlayOpen(true)}
129
+ onShow={() => setIsOverlayOpen(true)}
130
+ onHide={() => {
131
+ console.log("Overlay closed");
132
+ setTimeout(() => setIsOverlayOpen(false), 50); // ✅ Ensure state updates
133
+ }}
79
134
  >
80
135
  <div className="solid-layout-accordion">
81
136
  <Accordion multiple expandIcon="pi pi-chevron-down" collapseIcon="pi pi-chevron-up">
82
137
  <AccordionTab header="Switch Type">
83
- <div className="flex flex-column gap-1">
84
- {sizeOptions.map((option: any) => (
85
- <div key={option.value} className={`flex align-items-center ${option.value === size ? 'solid-active-view' : 'solid-view'}`}>
138
+ <div className="flex flex-column gap-1 p-1">
139
+ {viewModes.map((option: any) => (
140
+ <div key={option.value} className={`flex align-items-center ${option.value === view ? 'solid-active-view' : 'solid-view'}`}>
86
141
  <RadioButton
87
142
  inputId={option.value}
88
- name="sizes"
143
+ name="views"
89
144
  value={option.value}
90
- onChange={(e) => setSize(e.value)}
91
- checked={option.value === size}
145
+ onChange={(e) => setView(e.value)}
146
+ checked={option.value === view}
92
147
  />
93
148
  <label htmlFor={option.value} className="ml-2 flex align-items-center justify-content-between w-full">
94
149
  {option.label}
95
- <img
150
+ <Image
96
151
  src={option.image}
97
152
  alt={option.value}
98
- className='img-fluid position-relative'
99
- style={{ width: '2.75rem' }}
153
+ fill
154
+ className='relative row-spacing-img'
100
155
  />
101
156
  </label>
102
157
  </div>
@@ -104,23 +159,24 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
104
159
  </div>
105
160
  </AccordionTab>
106
161
  <AccordionTab header="List">
107
- <div className="flex flex-column gap-1">
108
- {viewModes.map((option: any) => (
109
- <div key={option.value} className={`flex align-items-center ${option.value === view ? 'solid-active-view' : 'solid-view'}`}>
162
+ <div className="flex flex-column gap-1 p-1">
163
+ <p className="m-0 px-3">Row Spacing</p>
164
+ {sizeOptions.map((option: any) => (
165
+ <div key={option.value} className={`flex align-items-center ${option.value === size ? 'solid-active-view' : 'solid-view'}`}>
110
166
  <RadioButton
111
167
  inputId={option.value}
112
- name="views"
168
+ name="sizes"
113
169
  value={option.value}
114
- onChange={(e) => setView(e.value)}
115
- checked={option.value === view}
170
+ onChange={(e) => setSize(e.value)}
171
+ checked={option.value === size}
116
172
  />
117
173
  <label htmlFor={option.value} className="ml-2 flex align-items-center justify-content-between w-full">
118
174
  {option.label}
119
- <img
175
+ <Image
120
176
  src={option.image}
121
177
  alt={option.value}
122
- className='img-fluid position-relative'
123
- style={{ width: '2.75rem' }}
178
+ fill
179
+ className='relative row-spacing-img'
124
180
  />
125
181
  </label>
126
182
  </div>
@@ -134,7 +190,7 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
134
190
  <p className="m-0">Column Selector</p>
135
191
  {/* <Button text label="Save Layout" icon="pi pi-plus" /> */}
136
192
  </div>
137
- <div className="flex flex-column gap-3 p-3">
193
+ <div className="flex flex-column gap-3 p-3 cogwheel-column-filter">
138
194
  {categories.map((category) => {
139
195
  return (
140
196
  <div key={category.key} className="flex align-items-center gap-1">
@@ -144,8 +200,9 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
144
200
  value={category}
145
201
  onChange={onCategoryChange}
146
202
  checked={selectedCategories.some((item) => item.key === category.key)}
203
+ className="text-base"
147
204
  />
148
- <label htmlFor={category.key} className="ml-2">
205
+ <label htmlFor={category.key} className="ml-2 text-base">
149
206
  {category.name}
150
207
  </label>
151
208
  </div>
@@ -155,11 +212,14 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
155
212
  <Divider className="m-0" />
156
213
  <div className="p-3 flex gap-2">
157
214
  <Button label="Apply" size="small" />
158
- <Button outlined label="Cancel" size="small" />
215
+ <Button outlined label="Cancel" size="small"
216
+ // @ts-ignore
217
+ onClick={(e) => op.current.hide(e)}
218
+ />
159
219
  </div>
160
220
  </OverlayPanel>
161
221
  </div>
162
222
  </OverlayPanel>
163
- </div >
223
+ </div>
164
224
  )
165
225
  }
@@ -340,7 +340,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, handleApplyCusto
340
340
  // }}
341
341
  />
342
342
  </div>
343
- <OverlayPanel ref={op} className="solid-custom-overlay" style={{ minWidth: 378 }}>
343
+ <OverlayPanel ref={op} className="solid-custom-overlay" style={{ minWidth: 405 }}>
344
344
  {inputValue ? (
345
345
  <>
346
346
  <div className="custom-filter-search-options px-2 py-2 flex flex-column">
@@ -353,6 +353,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, handleApplyCusto
353
353
  onClick={() => handleAddChip(value?.attrs?.name)}
354
354
  text
355
355
  severity="secondary"
356
+ size="small"
356
357
  >
357
358
  Search <strong>{value?.attrs?.name}</strong> for :
358
359
  <span className="font-bold" style={{ color: '#000' }}>{inputValue}</span>
@@ -364,12 +365,12 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, handleApplyCusto
364
365
  </>
365
366
  ) :
366
367
  <>
367
- <div className="p-3">Search Here...</div>
368
+ <div className="p-3 text-base">Search Here...</div>
368
369
  <Divider className="m-0" />
369
370
  </>
370
371
  }
371
372
  <div className="px-2 py-1">
372
- <Button text size="small" label="Custom Filter" iconPos="left" icon='pi pi-plus' onClick={() => setShowGlobalSearchElement(true)} />
373
+ <Button text size="small" label="Custom Filter" iconPos="left" icon='pi pi-plus' onClick={() => setShowGlobalSearchElement(true)} className="font-bold" />
373
374
  </div>
374
375
  <Divider className="m-0" />
375
376
  </OverlayPanel>
@@ -7,7 +7,7 @@ import qs from "qs";
7
7
 
8
8
  export const SolidManyToOneFilterElement = ({ value, updateInputs, index, fieldMetadata }: any) => {
9
9
 
10
- const entityApi = createSolidEntityApi(fieldMetadata.relationModelSingularName);
10
+ const entityApi = createSolidEntityApi(fieldMetadata.relationCoModelSingularName);
11
11
  const { useLazyGetSolidEntitiesQuery } = entityApi;
12
12
  const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();
13
13
 
@@ -35,6 +35,7 @@ import { SolidTimeField } from "./fields/SolidTimeField";
35
35
  import { BackButton } from "@/components/common/BackButton";
36
36
  import { SolidFormStepper } from "@/components/common/SolidFormStepper";
37
37
  import { OverlayPanel } from "primereact/overlaypanel";
38
+ import { SolidBreadcrumb } from "@/components/common/SolidBreadcrumb";
38
39
 
39
40
  export type SolidFormViewProps = {
40
41
  moduleName: string;
@@ -130,7 +131,7 @@ const fieldFactory = (type: string, fieldContext: SolidFieldProps): ISolidField
130
131
  }
131
132
 
132
133
  // solidFieldsMetadata={solidFieldsMetadata} solidView={solidView}
133
- const SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidFormViewMetaData, modelName }: any) => {
134
+ const SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidFormViewMetaData, modelName, readOnly }: any) => {
134
135
  const fieldContext: SolidFieldProps = {
135
136
  // field metadata - coming from the field-metadata table.
136
137
  fieldMetadata: fieldMetadata,
@@ -141,6 +142,7 @@ const SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidForm
141
142
  // complete form view metadata - this includes layout of the whole form & metadata about all fields in the corresponding model.
142
143
  solidFormViewMetaData: solidFormViewMetaData,
143
144
  modelName: modelName,
145
+ readOnly: readOnly
144
146
  }
145
147
  const solidField = fieldFactory(fieldMetadata?.type, fieldContext);
146
148
 
@@ -543,7 +545,13 @@ const SolidFormView = (params: SolidFormViewProps) => {
543
545
  const {
544
546
  data: solidFormViewData,
545
547
  isLoading: solidFormViewDataIsLoading,
546
- } = useGetSolidEntityByIdQuery({ id: params.id, qs: formViewDataQs }, { skip: !solidFormViewMetaData || params.id === 'new' });
548
+ refetch: refetchSolidFormViewData,
549
+ } = useGetSolidEntityByIdQuery({ id: params.id, qs: formViewDataQs });
550
+ useEffect(() => {
551
+ refetchSolidFormViewData()
552
+ }, [formViewDataQs])
553
+
554
+
547
555
  useEffect(() => {
548
556
  if (solidFormViewData) {
549
557
  setInitialEntityData(solidFormViewData.data);
@@ -628,8 +636,9 @@ const SolidFormView = (params: SolidFormViewProps) => {
628
636
  case "field": {
629
637
  // const fieldMetadata = solidFieldsMetadata[attrs.name];
630
638
  const fieldMetadata = solidFormViewMetaData.data.solidFieldsMetadata[attrs.name];
631
-
632
- return <SolidField key={key} field={element} formik={formik} fieldMetadata={fieldMetadata} initialEntityData={solidFormViewData ? solidFormViewData.data : null} solidFormViewMetaData={solidFormViewMetaData} modelName={params.modelName} />;
639
+ // Read only permission if there is no update permission on model and router doesnt contains new
640
+ const readOnlyPermission = !actionsAllowed.includes(`${updatePermission(params.modelName)}`) && params.id !== "new"
641
+ return <SolidField key={key} field={element} formik={formik} fieldMetadata={fieldMetadata} initialEntityData={solidFormViewData ? solidFormViewData.data : null} solidFormViewMetaData={solidFormViewMetaData} modelName={params.modelName} readOnly={readOnlyPermission} />;
633
642
  }
634
643
  case "notebook":
635
644
  return <SolidNotebook key={key}>{children.map((element: any) => renderFormElementDynamically(element, solidFormViewMetaData))}</SolidNotebook>;
@@ -688,16 +697,12 @@ const SolidFormView = (params: SolidFormViewProps) => {
688
697
  outlined
689
698
  severity="secondary"
690
699
  type="button"
691
- icon={
692
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
693
- <path d="M6 14C5.45 14 4.97917 13.8042 4.5875 13.4125C4.19583 13.0208 4 12.55 4 12C4 11.45 4.19583 10.9792 4.5875 10.5875C4.97917 10.1958 5.45 10 6 10C6.55 10 7.02083 10.1958 7.4125 10.5875C7.80417 10.9792 8 11.45 8 12C8 12.55 7.80417 13.0208 7.4125 13.4125C7.02083 13.8042 6.55 14 6 14ZM12 14C11.45 14 10.9792 13.8042 10.5875 13.4125C10.1958 13.0208 10 12.55 10 12C10 11.45 10.1958 10.9792 10.5875 10.5875C10.9792 10.1958 11.45 10 12 10C12.55 10 13.0208 10.1958 13.4125 10.5875C13.8042 10.9792 14 11.45 14 12C14 12.55 13.8042 13.0208 13.4125 13.4125C13.0208 13.8042 12.55 14 12 14ZM18 14C17.45 14 16.9792 13.8042 16.5875 13.4125C16.1958 13.0208 16 12.55 16 12C16 11.45 16.1958 10.9792 16.5875 10.5875C16.9792 10.1958 17.45 10 18 10C18.55 10 19.0208 10.1958 19.4125 10.5875C19.8042 10.9792 20 11.45 20 12C20 12.55 19.8042 13.0208 19.4125 13.4125C19.0208 13.8042 18.55 14 18 14Z" fill="#4B4D52" />
694
- </svg>
695
- }
700
+ icon={'pi pi-cog'}
696
701
  size="small"
697
- className="bg-primary-reverse p-0"
702
+ className="surface-card p-0"
698
703
  style={{
699
- height: 32,
700
- width: 32
704
+ height: 33.06,
705
+ width: 33.06
701
706
  }}
702
707
  onClick={(e) =>
703
708
  // @ts-ignore
@@ -706,7 +711,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
706
711
  />
707
712
  <OverlayPanel ref={op} className="solid-custom-overlay">
708
713
  <div className="flex flex-column gap-1 p-1">
709
- <Button
714
+ {/* <Button
710
715
  text
711
716
  type="button"
712
717
  className="w-8rem text-left gap-2 text-color"
@@ -716,26 +721,48 @@ const SolidFormView = (params: SolidFormViewProps) => {
716
721
  icon={<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
717
722
  <path d="M6 11.9997C5.63333 11.9997 5.31944 11.8691 5.05833 11.608C4.79722 11.3469 4.66667 11.033 4.66667 10.6663V2.66634C4.66667 2.29967 4.79722 1.98579 5.05833 1.72467C5.31944 1.46356 5.63333 1.33301 6 1.33301H12C12.3667 1.33301 12.6806 1.46356 12.9417 1.72467C13.2028 1.98579 13.3333 2.29967 13.3333 2.66634V10.6663C13.3333 11.033 13.2028 11.3469 12.9417 11.608C12.6806 11.8691 12.3667 11.9997 12 11.9997H6ZM6 10.6663H12V2.66634H6V10.6663ZM3.33333 14.6663C2.96667 14.6663 2.65278 14.5358 2.39167 14.2747C2.13056 14.0136 2 13.6997 2 13.333V3.99967H3.33333V13.333H10.6667V14.6663H3.33333Z" fill="black" fill-opacity="0.88" />
718
723
  </svg>}
719
- />
720
- <Button
721
- text
722
- type="button"
723
- className="w-8rem text-left gap-2 text-color"
724
- label="Delete"
725
- size="small"
726
- iconPos="left"
727
- icon={<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
728
- <path d="M4.66666 14C4.29999 14 3.9861 13.8694 3.72499 13.6083C3.46388 13.3472 3.33332 13.0333 3.33332 12.6667V4H2.66666V2.66667H5.99999V2H9.99999V2.66667H13.3333V4H12.6667V12.6667C12.6667 13.0333 12.5361 13.3472 12.275 13.6083C12.0139 13.8694 11.7 14 11.3333 14H4.66666ZM11.3333 4H4.66666V12.6667H11.3333V4ZM5.99999 11.3333H7.33332V5.33333H5.99999V11.3333ZM8.66666 11.3333H9.99999V5.33333H8.66666V11.3333Z" fill="#4B4D52" />
729
- </svg>
730
- }
731
- onClick={() => setDeleteDialogVisible(true)}
732
- />
724
+ /> */}
725
+ {params.embeded !== true &&
726
+ actionsAllowed.includes(`${deletePermission(params.modelName)}`) &&
727
+ !formViewLayout.attrs.readonly &&
728
+ <Button
729
+ text
730
+ type="button"
731
+ className="w-8rem text-left gap-2"
732
+ label="Delete"
733
+ size="small"
734
+ iconPos="left"
735
+ severity="danger"
736
+ icon={'pi pi-trash'}
737
+ onClick={() => setDeleteDialogVisible(true)}
738
+ />
739
+ }
740
+ {params.embeded == true &&
741
+ actionsAllowed.includes(`${deletePermission(params.modelName)}`) &&
742
+ !formViewLayout.attrs.readonly &&
743
+ <Button
744
+ text
745
+ type="button"
746
+ className="w-8rem text-left gap-2"
747
+ label="Delete"
748
+ size="small"
749
+ iconPos="left"
750
+ severity="danger"
751
+ icon={'pi pi-trash'}
752
+ onClick={() => setDeleteDialogVisible(true)}
753
+ />
754
+ }
733
755
  </div>
734
756
  </OverlayPanel>
735
757
  </div>
736
758
  )
737
759
  }
738
760
 
761
+ const breadcrumbData = [
762
+ { label: 'Book', link: '/admin/core/library-management/book/list' },
763
+ { label: params.id === "new" ? `Add ${params.modelName}` : `Edit ${params.modelName}` },
764
+ ];
765
+
739
766
  return (
740
767
  <div className="solid-form-wrapper">
741
768
  <Toast ref={toast} />
@@ -752,7 +779,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
752
779
  {params.embeded !== true &&
753
780
  actionsAllowed.includes(`${createPermission(params.modelName)}`) &&
754
781
  !formViewLayout.attrs.readonly &&
755
- !formViewLayout.attrs.readonly &&
782
+ formik.dirty &&
756
783
  <div>
757
784
  <Button
758
785
  label="Save"
@@ -762,10 +789,9 @@ const SolidFormView = (params: SolidFormViewProps) => {
762
789
  />
763
790
  </div>
764
791
  }
765
- {params.embeded !== true &&
792
+ {/* {params.embeded !== true &&
766
793
  actionsAllowed.includes(`${createPermission(params.modelName)}`) &&
767
794
  !formViewLayout.attrs.readonly &&
768
- !formViewLayout.attrs.readonly &&
769
795
  <div>
770
796
  <Button
771
797
  label="Save & Close"
@@ -777,11 +803,11 @@ const SolidFormView = (params: SolidFormViewProps) => {
777
803
  type="submit"
778
804
  />
779
805
  </div>
780
- }
806
+ } */}
781
807
  {params.embeded == true &&
782
808
  actionsAllowed.includes(`${createPermission(params.modelName)}`) &&
783
809
  !formViewLayout.attrs.readonly &&
784
- !formViewLayout.attrs.readonly &&
810
+ formik.dirty &&
785
811
  <div>
786
812
  <Button
787
813
  label="Save"
@@ -795,7 +821,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
795
821
  </div>
796
822
  }
797
823
  {params.embeded == true &&
798
- <Button outlined size="small" type="button" label="Cancel" onClick={() => params.handlePopupClose()} className='bg-primary-reverse' />
824
+ <Button outlined size="small" type="button" label="Close" onClick={() => params.handlePopupClose()} className='bg-primary-reverse' />
799
825
 
800
826
  }
801
827
  {params.embeded !== true &&
@@ -814,7 +840,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
814
840
  {params.embeded !== true &&
815
841
  actionsAllowed.includes(`${updatePermission(params.modelName)}`) &&
816
842
  !formViewLayout.attrs.readonly &&
817
- !formViewLayout.attrs.readonly &&
843
+ formik.dirty &&
818
844
  <div>
819
845
  <Button
820
846
  label="Save"
@@ -827,7 +853,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
827
853
  {params.embeded == true &&
828
854
  actionsAllowed.includes(`${updatePermission(params.modelName)}`) &&
829
855
  !formViewLayout.attrs.readonly &&
830
- !formViewLayout.attrs.readonly &&
856
+ formik.dirty &&
831
857
  <div>
832
858
  <Button
833
859
  label="Save"
@@ -837,10 +863,9 @@ const SolidFormView = (params: SolidFormViewProps) => {
837
863
  />
838
864
  </div>
839
865
  }
840
- {params.embeded !== true &&
866
+ {/* {params.embeded !== true &&
841
867
  actionsAllowed.includes(`${updatePermission(params.modelName)}`) &&
842
868
  !formViewLayout.attrs.readonly &&
843
- !formViewLayout.attrs.readonly &&
844
869
  <div>
845
870
  <Button
846
871
  label="Save & Close"
@@ -852,37 +877,9 @@ const SolidFormView = (params: SolidFormViewProps) => {
852
877
  type="submit"
853
878
  />
854
879
  </div>
855
- }
856
- {params.embeded !== true &&
857
- actionsAllowed.includes(`${deletePermission(params.modelName)}`) &&
858
- !formViewLayout.attrs.readonly &&
859
- !formViewLayout.attrs.readonly &&
860
- <div>
861
- <Button
862
- size="small"
863
- type="button"
864
- label="Delete"
865
- severity="danger"
866
- onClick={() => setDeleteDialogVisible(true)}
867
- />
868
- </div>
869
- }
870
- {params.embeded == true &&
871
- actionsAllowed.includes(`${deletePermission(params.modelName)}`) &&
872
- !formViewLayout.attrs.readonly &&
873
- !formViewLayout.attrs.readonly &&
874
- <div>
875
- <Button
876
- size="small"
877
- type="button"
878
- label="Delete"
879
- severity="danger"
880
- onClick={() => setDeleteDialogVisible(true)}
881
- />
882
- </div>
883
- }
880
+ } */}
884
881
  {params.embeded == true &&
885
- <Button outlined size="small" type="button" label="Cancel" onClick={() => params.handlePopupClose()} className='bg-primary-reverse' />
882
+ <Button outlined size="small" type="button" label="Close" onClick={() => params.handlePopupClose()} className='bg-primary-reverse' />
886
883
 
887
884
  }
888
885
  {params.embeded !== true &&
@@ -893,11 +890,12 @@ const SolidFormView = (params: SolidFormViewProps) => {
893
890
  </>
894
891
  )}
895
892
  </div>
896
- {params.embeded !== true &&
893
+ <SolidBreadcrumb breadcrumbItems={breadcrumbData} />
894
+ {/* {params.embeded !== true &&
897
895
  <div className="solid-form-stepper">
898
896
  <SolidFormStepper />
899
897
  </div>
900
- }
898
+ } */}
901
899
  <div className="p-4 solid-form-content">
902
900
  {renderFormDynamically(formViewMetaData)}
903
901
  </div>
@@ -7,7 +7,8 @@ export type SolidFieldProps = {
7
7
  fieldMetadata: any,
8
8
  field: any,
9
9
  data: any,
10
- modelName?: any
10
+ modelName?: any,
11
+ readOnly?: any
11
12
  };
12
13
 
13
14
  export type FormikObject = {
@@ -70,6 +70,7 @@ export class SolidBooleanField implements ISolidField {
70
70
  const booleanOptions = ["false", "true"];
71
71
  const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
72
72
  const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
73
+ const readOnlyPermission = this.fieldContext.readOnly;
73
74
 
74
75
  useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, "false") }, [])
75
76
 
@@ -86,7 +87,7 @@ export class SolidBooleanField implements ISolidField {
86
87
  <div className="flex flex-column gap-2 mt-4">
87
88
  {showFieldLabel != false &&
88
89
  <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
89
- &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
90
+ {/* &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>} */}
90
91
  </label>
91
92
  }
92
93
  {/* <InputText
@@ -97,7 +98,7 @@ export class SolidBooleanField implements ISolidField {
97
98
  value={formik.values[fieldLayoutInfo.attrs.name] || ''}
98
99
  /> */}
99
100
  <SelectButton
100
- readOnly={formReadonly || fieldReadonly}
101
+ readOnly={formReadonly || fieldReadonly || readOnlyPermission}
101
102
  disabled={formDisabled || fieldDisabled}
102
103
  id={fieldLayoutInfo.attrs.name}
103
104
  aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}
@@ -53,6 +53,7 @@ export class SolidDateField implements ISolidField {
53
53
  const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
54
54
  const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
55
55
  const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
56
+ const readOnlyPermission = this.fieldContext.readOnly;
56
57
 
57
58
  const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
58
59
  // const fieldReadonly = fieldLayoutInfo.attrs?.readonly;
@@ -65,11 +66,11 @@ export class SolidDateField implements ISolidField {
65
66
  <div className="flex flex-column gap-2 mt-4">
66
67
  {showFieldLabel != false &&
67
68
  <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
68
- &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
69
+ {/* &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>} */}
69
70
  </label>
70
71
  }
71
72
  <Calendar
72
- disabled={formDisabled || fieldDisabled}
73
+ disabled={formDisabled || fieldDisabled || readOnlyPermission}
73
74
  ref={calendarRef} // Attach ref to Calendar
74
75
  id={fieldLayoutInfo.attrs.name}
75
76
  aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}