@solidstarters/solid-core-ui 1.1.211 → 1.1.212

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 (373) hide show
  1. package/dist/components/Svg/DevDocs.tsx +9 -0
  2. package/dist/components/Svg/DocsSvg.tsx +9 -0
  3. package/dist/components/Svg/ExcelSvg.tsx +15 -0
  4. package/dist/components/Svg/FieldSvg.tsx +9 -0
  5. package/dist/components/Svg/FileSvg.tsx +18 -0
  6. package/dist/components/Svg/HomePageModuleSvg.tsx +179 -0
  7. package/dist/components/Svg/ModelSvg.tsx +9 -0
  8. package/dist/components/Svg/ModuleSvg.tsx +9 -0
  9. package/dist/components/Svg/PDFSvg.tsx +15 -0
  10. package/dist/components/Svg/RightArrowSvg.tsx +9 -0
  11. package/dist/components/Svg/SettingsSvg.tsx +9 -0
  12. package/dist/components/auth/AuthLayout.tsx +223 -0
  13. package/dist/components/auth/ForgotPasswordThankYou.tsx +33 -0
  14. package/dist/components/auth/GoogleAuthChecking.tsx +63 -0
  15. package/dist/components/auth/SolidChangeForcePassword.tsx +222 -0
  16. package/dist/components/auth/SolidForgotPassword.tsx +127 -0
  17. package/dist/components/auth/SolidInitialLoginOtp.tsx +271 -0
  18. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +218 -0
  19. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  20. package/dist/components/auth/SolidLogin.js +14 -8
  21. package/dist/components/auth/SolidLogin.js.map +1 -1
  22. package/dist/components/auth/SolidLogin.tsx +428 -0
  23. package/dist/components/auth/SolidOTPVerify.tsx +133 -0
  24. package/dist/components/auth/SolidRegister.tsx +454 -0
  25. package/dist/components/auth/SolidResetPassword.tsx +194 -0
  26. package/dist/components/common/AuthBanner.tsx +41 -0
  27. package/dist/components/common/AutoCompleteField.tsx +79 -0
  28. package/dist/components/common/BackButton.tsx +72 -0
  29. package/dist/components/common/CancelButton.tsx +61 -0
  30. package/dist/components/common/CodeEditor.tsx +38 -0
  31. package/dist/components/common/CreateButton.tsx +17 -0
  32. package/dist/components/common/DownloadProgressToast.tsx +55 -0
  33. package/dist/components/common/DropzonePlaceholder.tsx +31 -0
  34. package/dist/components/common/DropzoneUpload.tsx +11 -0
  35. package/dist/components/common/FileReaderExt.tsx +20 -0
  36. package/dist/components/common/GeneralSettings.tsx +1225 -0
  37. package/dist/components/common/HeaderDynamicTitles.tsx +13 -0
  38. package/dist/components/common/MarkdownViewer.tsx +84 -0
  39. package/dist/components/common/MultipleSelectAutoCompleteField.tsx +64 -0
  40. package/dist/components/common/NotFound.tsx +22 -0
  41. package/dist/components/common/SingleSelectAutoCompleteField.tsx +73 -0
  42. package/dist/components/common/SocialMediaLogin.tsx +53 -0
  43. package/dist/components/common/SolidAdmin.tsx +6 -0
  44. package/dist/components/common/SolidBreadcrumb.tsx +129 -0
  45. package/dist/components/common/SolidExport.tsx +563 -0
  46. package/dist/components/common/SolidExportStepper.tsx +135 -0
  47. package/dist/components/common/SolidFieldTooltip.tsx +23 -0
  48. package/dist/components/common/SolidFormHeader.tsx +25 -0
  49. package/dist/components/common/SolidFormStepper.tsx +350 -0
  50. package/dist/components/common/SolidModuleHome.tsx +128 -0
  51. package/dist/components/common/SolidPopupContainer.tsx +37 -0
  52. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.tsx +45 -0
  53. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.tsx +45 -0
  54. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.tsx +20 -0
  55. package/dist/components/common/SolidSettings/SettingsImageRemoveButton.tsx +15 -0
  56. package/dist/components/common/SolidSettings/SolidUploadedImage.tsx +16 -0
  57. package/dist/components/common/SolidThemeLink.tsx +6 -0
  58. package/dist/components/common/SolidThemeProvider.tsx +44 -0
  59. package/dist/components/common/StepperArrows/ActiveArrowStep.tsx +18 -0
  60. package/dist/components/common/StepperArrows/ActiveBeforeStepArrow.tsx +18 -0
  61. package/dist/components/common/StepperArrows/InactiveStepArrow.tsx +19 -0
  62. package/dist/components/common/error.tsx +30 -0
  63. package/dist/components/common/useHandleFormCustomButtonClick.ts +40 -0
  64. package/dist/components/common/useHandleListCustomButtonClick.ts +42 -0
  65. package/dist/components/core/chatter/SolidChatter.tsx +248 -0
  66. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +35 -0
  67. package/dist/components/core/chatter/SolidChatterCustomMessage.tsx +46 -0
  68. package/dist/components/core/chatter/SolidChatterDateDivider.tsx +16 -0
  69. package/dist/components/core/chatter/SolidChatterHeader.tsx +218 -0
  70. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +163 -0
  71. package/dist/components/core/chatter/SolidMessageComposer.tsx +146 -0
  72. package/dist/components/core/common/AvatarWidget.tsx +55 -0
  73. package/dist/components/core/common/DateFieldViewComponent.tsx +36 -0
  74. package/dist/components/core/common/FilterComponent.tsx +458 -0
  75. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  76. package/dist/components/core/common/PDFViewer.tsx +117 -0
  77. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +89 -0
  78. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +188 -0
  79. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +139 -0
  80. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +311 -0
  81. package/dist/components/core/common/SolidCreateButton.tsx +48 -0
  82. package/dist/components/core/common/SolidGenericImport/DocumentSvg.tsx +15 -0
  83. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.tsx +64 -0
  84. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +125 -0
  85. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +122 -0
  86. package/dist/components/core/common/SolidGenericImport/SolidImportStepper.tsx +217 -0
  87. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +205 -0
  88. package/dist/components/core/common/SolidGenericImport/SolidImportTransactionStatus.tsx +158 -0
  89. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +29 -0
  90. package/dist/components/core/common/SolidGlobalSearchElement.tsx +1470 -0
  91. package/dist/components/core/common/SolidLayoutViews.tsx +87 -0
  92. package/dist/components/core/common/SolidListViewOptions.tsx +31 -0
  93. package/dist/components/core/common/SolidLoaders/SolidCircularLoader.tsx +7 -0
  94. package/dist/components/core/common/SolidPasswordHelperText.tsx +34 -0
  95. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +75 -0
  96. package/dist/components/core/common/SolidSearchBox.tsx +17 -0
  97. package/dist/components/core/common/SolidViewLayoutManager.ts +421 -0
  98. package/dist/components/core/common/SolidXAiIframe.tsx +77 -0
  99. package/dist/components/core/dashboard/SolidDashboard.tsx +332 -0
  100. package/dist/components/core/dashboard/SolidDashboardBody.tsx +117 -0
  101. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +28 -0
  102. package/dist/components/core/dashboard/SolidDashboardHeader.tsx +10 -0
  103. package/dist/components/core/dashboard/SolidDashboardLoading.tsx +55 -0
  104. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +32 -0
  105. package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +29 -0
  106. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +256 -0
  107. package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +78 -0
  108. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +18 -0
  109. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +54 -0
  110. package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +25 -0
  111. package/dist/components/core/dashboard/dashboard-utils.ts +39 -0
  112. package/dist/components/core/extension/solid-core/CustomIcon/StatusIcon.tsx +17 -0
  113. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +36 -0
  114. package/dist/components/core/extension/solid-core/emailTemplate/emailFormTypeChangeHandler.ts +18 -0
  115. package/dist/components/core/extension/solid-core/emailTemplate/emailFormTypeLoad.ts +18 -0
  116. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +114 -0
  117. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +213 -0
  118. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +138 -0
  119. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +209 -0
  120. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +131 -0
  121. package/dist/components/core/field/FieldListViewData.tsx +313 -0
  122. package/dist/components/core/filter/SolidBooleanFilterElement.tsx +30 -0
  123. package/dist/components/core/filter/SolidFilterFields.tsx +131 -0
  124. package/dist/components/core/filter/SolidManyToManyFilterElement.tsx +64 -0
  125. package/dist/components/core/filter/SolidManyToOneFilterElement.tsx +61 -0
  126. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.tsx +50 -0
  127. package/dist/components/core/filter/SolidSelectionStaticFilterElement.tsx +32 -0
  128. package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +209 -0
  129. package/dist/components/core/filter/fields/SolidBigintField.tsx +9 -0
  130. package/dist/components/core/filter/fields/SolidBooleanField.tsx +68 -0
  131. package/dist/components/core/filter/fields/SolidComputedField.tsx +23 -0
  132. package/dist/components/core/filter/fields/SolidDateField.tsx +63 -0
  133. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +54 -0
  134. package/dist/components/core/filter/fields/SolidDecimalField.tsx +9 -0
  135. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +52 -0
  136. package/dist/components/core/filter/fields/SolidFloatField.tsx +9 -0
  137. package/dist/components/core/filter/fields/SolidIdField.tsx +46 -0
  138. package/dist/components/core/filter/fields/SolidIntField.tsx +61 -0
  139. package/dist/components/core/filter/fields/SolidLongTextField.tsx +9 -0
  140. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +60 -0
  141. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +62 -0
  142. package/dist/components/core/filter/fields/SolidRelationField.tsx +17 -0
  143. package/dist/components/core/filter/fields/SolidRichTextField.tsx +9 -0
  144. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +52 -0
  145. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +54 -0
  146. package/dist/components/core/filter/fields/SolidShortTextField.tsx +60 -0
  147. package/dist/components/core/filter/fields/SolidTimeField.tsx +48 -0
  148. package/dist/components/core/filter/fields/SolidUuidField.tsx +51 -0
  149. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +62 -0
  150. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +84 -0
  151. package/dist/components/core/form/SolidFormActionHeader.tsx +497 -0
  152. package/dist/components/core/form/SolidFormFieldRender.tsx +53 -0
  153. package/dist/components/core/form/SolidFormFieldRenderExtension.tsx +26 -0
  154. package/dist/components/core/form/SolidFormFooter.tsx +162 -0
  155. package/dist/components/core/form/SolidFormLayouts.tsx +104 -0
  156. package/dist/components/core/form/SolidFormUserViewLayout.tsx +84 -0
  157. package/dist/components/core/form/SolidFormView.tsx +1856 -0
  158. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +52 -0
  159. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +52 -0
  160. package/dist/components/core/form/SolidFormViewShimmerLoading.tsx +109 -0
  161. package/dist/components/core/form/fields/ISolidField.tsx +71 -0
  162. package/dist/components/core/form/fields/SolidBooleanField.tsx +434 -0
  163. package/dist/components/core/form/fields/SolidDateField.tsx +247 -0
  164. package/dist/components/core/form/fields/SolidDateTimeField.tsx +229 -0
  165. package/dist/components/core/form/fields/SolidDecimalField.tsx +171 -0
  166. package/dist/components/core/form/fields/SolidEmailField.tsx +176 -0
  167. package/dist/components/core/form/fields/SolidIntegerField.tsx +282 -0
  168. package/dist/components/core/form/fields/SolidJsonField.tsx +185 -0
  169. package/dist/components/core/form/fields/SolidLongTextField.tsx +618 -0
  170. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +663 -0
  171. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +547 -0
  172. package/dist/components/core/form/fields/SolidPasswordField.tsx +390 -0
  173. package/dist/components/core/form/fields/SolidRelationField.tsx +56 -0
  174. package/dist/components/core/form/fields/SolidRichTextField.tsx +188 -0
  175. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +340 -0
  176. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +462 -0
  177. package/dist/components/core/form/fields/SolidShortTextField.tsx +399 -0
  178. package/dist/components/core/form/fields/SolidTimeField.tsx +245 -0
  179. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +453 -0
  180. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +1036 -0
  181. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +627 -0
  182. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +38 -0
  183. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +64 -0
  184. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.tsx +135 -0
  185. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.tsx +144 -0
  186. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +265 -0
  187. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.tsx +32 -0
  188. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +50 -0
  189. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +222 -0
  190. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.tsx +70 -0
  191. package/dist/components/core/form/widgets/CustomHtml.tsx +20 -0
  192. package/dist/components/core/kanban/KanbanBoard.tsx +150 -0
  193. package/dist/components/core/kanban/KanbanCard.tsx +279 -0
  194. package/dist/components/core/kanban/KanbanColumn.tsx +139 -0
  195. package/dist/components/core/kanban/KanbanUserViewLayout.tsx +84 -0
  196. package/dist/components/core/kanban/SolidKanbanView.tsx +894 -0
  197. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +154 -0
  198. package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
  199. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
  200. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
  201. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
  202. package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
  203. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
  204. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +16 -0
  205. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
  206. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
  207. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
  208. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
  209. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
  210. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
  211. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
  212. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
  213. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
  214. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +140 -0
  215. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +164 -0
  216. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
  217. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
  218. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +14 -0
  219. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
  220. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
  221. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
  222. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
  223. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
  224. package/dist/components/core/list/ListViewRowActionPopup.tsx +41 -0
  225. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +242 -0
  226. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +111 -0
  227. package/dist/components/core/list/SolidListView.tsx +2007 -0
  228. package/dist/components/core/list/SolidListViewColumn.tsx +165 -0
  229. package/dist/components/core/list/SolidListViewConfigure.tsx +339 -0
  230. package/dist/components/core/list/SolidListViewHeaderButton.tsx +31 -0
  231. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +30 -0
  232. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +41 -0
  233. package/dist/components/core/list/SolidListViewShimmerLoading.tsx +78 -0
  234. package/dist/components/core/list/SolidListingHeader.tsx +42 -0
  235. package/dist/components/core/list/SolidManyToOneFilterElement.tsx +60 -0
  236. package/dist/components/core/list/SolidSelectionDynamicFilterElement.tsx +50 -0
  237. package/dist/components/core/list/SolidSelectionStaticFilterElement.tsx +32 -0
  238. package/dist/components/core/list/SolidTableRowCell.tsx +35 -0
  239. package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
  240. package/dist/components/core/list/columns/SolidBigintColumn.tsx +9 -0
  241. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +90 -0
  242. package/dist/components/core/list/columns/SolidComputedColumn.tsx +27 -0
  243. package/dist/components/core/list/columns/SolidDateColumn.tsx +90 -0
  244. package/dist/components/core/list/columns/SolidDatetimeColumn.tsx +79 -0
  245. package/dist/components/core/list/columns/SolidDecimalColumn.tsx +9 -0
  246. package/dist/components/core/list/columns/SolidExternalIdColumn.tsx +80 -0
  247. package/dist/components/core/list/columns/SolidFloatColumn.tsx +9 -0
  248. package/dist/components/core/list/columns/SolidIdColumn.tsx +79 -0
  249. package/dist/components/core/list/columns/SolidIntColumn.tsx +87 -0
  250. package/dist/components/core/list/columns/SolidLongTextColumn.tsx +9 -0
  251. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +301 -0
  252. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +170 -0
  253. package/dist/components/core/list/columns/SolidRelationColumn.tsx +21 -0
  254. package/dist/components/core/list/columns/SolidRichTextColumn.tsx +9 -0
  255. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.tsx +80 -0
  256. package/dist/components/core/list/columns/SolidSelectionStaticColumn.tsx +81 -0
  257. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +160 -0
  258. package/dist/components/core/list/columns/SolidTimeColumn.tsx +78 -0
  259. package/dist/components/core/list/columns/SolidUuidColumn.tsx +79 -0
  260. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +106 -0
  261. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +117 -0
  262. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +110 -0
  263. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.tsx +30 -0
  264. package/dist/components/core/list/widgets/SolidManyToOneRelationAvatarListWidget.tsx +30 -0
  265. package/dist/components/core/list/widgets/SolidShortTextAvatarWidget.tsx +70 -0
  266. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +21 -0
  267. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +91 -0
  268. package/dist/components/core/locales/SolidLocale.tsx +127 -0
  269. package/dist/components/core/model/CreateModel.tsx +495 -0
  270. package/dist/components/core/model/FieldMetaData.tsx +263 -0
  271. package/dist/components/core/model/FieldMetaDataForm.tsx +3509 -0
  272. package/dist/components/core/model/FieldSelector.tsx +62 -0
  273. package/dist/components/core/model/ModelListViewData.tsx +384 -0
  274. package/dist/components/core/model/ModelMetaData.tsx +921 -0
  275. package/dist/components/core/module/CreateModule.tsx +617 -0
  276. package/dist/components/core/module/ModuleListViewData.tsx +431 -0
  277. package/dist/components/core/solid-ai/SolidAiMainWrapper.tsx +8 -0
  278. package/dist/components/core/solid-ai/SolidXAIIcon.tsx +37 -0
  279. package/dist/components/core/users/CreateUser.tsx +467 -0
  280. package/dist/components/core/users/CreateUserRole.tsx +212 -0
  281. package/dist/components/core/users/UserListView.tsx +376 -0
  282. package/dist/components/layout/AdminLayout.tsx +57 -0
  283. package/dist/components/layout/AdminSidebar.tsx +65 -0
  284. package/dist/components/layout/AppConfig.tsx +104 -0
  285. package/dist/components/layout/AppSidebar.tsx +232 -0
  286. package/dist/components/layout/ButtonLoader.tsx +7 -0
  287. package/dist/components/layout/CustomPagination.tsx +55 -0
  288. package/dist/components/layout/DashboardHeader.tsx +89 -0
  289. package/dist/components/layout/FilterMenu.tsx +122 -0
  290. package/dist/components/layout/Footer.tsx +13 -0
  291. package/dist/components/layout/GlobalSearch.tsx +37 -0
  292. package/dist/components/layout/Header.tsx +8 -0
  293. package/dist/components/layout/Layout.tsx +205 -0
  294. package/dist/components/layout/ListingHeader.tsx +204 -0
  295. package/dist/components/layout/Loader.tsx +16 -0
  296. package/dist/components/layout/UserSidebar.tsx +53 -0
  297. package/dist/components/layout/context/layoutcontext.tsx +52 -0
  298. package/dist/components/layout/navbar-one.tsx +258 -0
  299. package/dist/components/layout/navbar-two-menu.tsx +72 -0
  300. package/dist/components/layout/navbar-two.tsx +37 -0
  301. package/dist/components/layout/user-profile-menu.tsx +213 -0
  302. package/dist/components/layout/user-profile.tsx +7 -0
  303. package/dist/components/modelsComponents/filterIcon.tsx +9 -0
  304. package/dist/constants/error-messages.ts +238 -0
  305. package/dist/declarations.d.ts +22 -0
  306. package/dist/helpers/AppTitle.tsx +12 -0
  307. package/dist/helpers/ToastContainer.tsx +94 -0
  308. package/dist/helpers/autoCompleteVirtualScroll.ts +41 -0
  309. package/dist/helpers/countries.tsx +260 -0
  310. package/dist/helpers/downloadFileWithProgress.ts +91 -0
  311. package/dist/helpers/downloadMediaFile.tsx +21 -0
  312. package/dist/helpers/getAcceptedFileTypes.tsx +22 -0
  313. package/dist/helpers/getRandomColors.tsx +68 -0
  314. package/dist/helpers/helpers.ts +61 -0
  315. package/dist/helpers/hydrateRelationRules.ts +120 -0
  316. package/dist/helpers/permissions.ts +7 -0
  317. package/dist/helpers/registry.ts +337 -0
  318. package/dist/helpers/resendOtpHelper.tsx +5 -0
  319. package/dist/helpers/revalidate.ts +7 -0
  320. package/dist/helpers/rolesHelper.ts +17 -0
  321. package/dist/helpers/solidIcons.tsx +1831 -0
  322. package/dist/helpers/updatePasswordField.ts +41 -0
  323. package/dist/index.ts +421 -0
  324. package/dist/nextAuth/authProviders.d.ts.map +1 -1
  325. package/dist/nextAuth/authProviders.js +6 -5
  326. package/dist/nextAuth/authProviders.js.map +1 -1
  327. package/dist/nextAuth/authProviders.tsx +232 -0
  328. package/dist/nextAuth/handleLogout.tsx +39 -0
  329. package/dist/nextAuth/refreshAccessToken.tsx +28 -0
  330. package/dist/redux/api/aiInteractionApi.ts +59 -0
  331. package/dist/redux/api/authApi.ts +131 -0
  332. package/dist/redux/api/dashboardApi.ts +56 -0
  333. package/dist/redux/api/dashboardQuestionApi.ts +17 -0
  334. package/dist/redux/api/exportTemplateApi.tsx +59 -0
  335. package/dist/redux/api/fetchBaseQuery.tsx +118 -0
  336. package/dist/redux/api/fieldApi.ts +86 -0
  337. package/dist/redux/api/importTransactionApi.tsx +69 -0
  338. package/dist/redux/api/mediaApi.ts +55 -0
  339. package/dist/redux/api/mediaStorageProviderApi.ts +55 -0
  340. package/dist/redux/api/modelApi.ts +80 -0
  341. package/dist/redux/api/moduleApi.ts +72 -0
  342. package/dist/redux/api/permissionApi.ts +32 -0
  343. package/dist/redux/api/pincodeApi.tsx +56 -0
  344. package/dist/redux/api/roleApi.ts +58 -0
  345. package/dist/redux/api/solidActionApi.ts +66 -0
  346. package/dist/redux/api/solidChatterMessageApi.ts +25 -0
  347. package/dist/redux/api/solidEntityApi.tsx +164 -0
  348. package/dist/redux/api/solidMenuApi.ts +71 -0
  349. package/dist/redux/api/solidServiceApi.ts +31 -0
  350. package/dist/redux/api/solidSettingsApi.tsx +83 -0
  351. package/dist/redux/api/solidViewApi.ts +73 -0
  352. package/dist/redux/api/stateApi.tsx +56 -0
  353. package/dist/redux/api/testApi.ts +21 -0
  354. package/dist/redux/api/userApi.ts +135 -0
  355. package/dist/redux/features/authSlice.ts +19 -0
  356. package/dist/redux/features/dataViewSlice.ts +26 -0
  357. package/dist/redux/features/navbarSlice.ts +21 -0
  358. package/dist/redux/features/popupSlice.ts +37 -0
  359. package/dist/redux/features/settingsSlice.ts +60 -0
  360. package/dist/redux/features/themeSlice.ts +17 -0
  361. package/dist/redux/features/userSlice.ts +28 -0
  362. package/dist/redux/hooks/useSolidPopup.ts +20 -0
  363. package/dist/redux/store/defaultStoreConfig.ts +62 -0
  364. package/dist/styles.ts +4 -0
  365. package/dist/types/handlebars.d.ts +4 -0
  366. package/dist/types/index.d.ts +76 -0
  367. package/dist/types/layout.d.ts +94 -0
  368. package/dist/types/next-auth.d.ts +0 -0
  369. package/dist/types/next.d.ts +46 -0
  370. package/dist/types/solid-core.d.ts +320 -0
  371. package/package.json +1 -1
  372. package/src/components/auth/SolidLogin.tsx +26 -13
  373. package/src/nextAuth/authProviders.tsx +9 -5
@@ -0,0 +1,64 @@
1
+ import { useState } from "react";
2
+ import qs from "qs";
3
+ import { createSolidEntityApi } from "../../../../../../../redux/api/solidEntityApi";
4
+
5
+ export const useRelationEntityHandler = ({ fieldContext, formik, autoCompleteLimit = 1000 }: any) => {
6
+ const fieldMetadata = fieldContext.fieldMetadata;
7
+ const fieldLayoutInfo = fieldContext.field;
8
+
9
+ const entityApi = createSolidEntityApi(fieldMetadata.relationCoModelSingularName);
10
+ const { useLazyGetSolidEntitiesQuery } = entityApi;
11
+ const [triggerGetSolidEntities] = useLazyGetSolidEntitiesQuery();
12
+
13
+ const [autoCompleteItems, setAutoCompleteItems] = useState([]);
14
+
15
+ const fetchRelationEntities = async (autocompleteQs = "", limit = autoCompleteLimit) => {
16
+ // const queryData = {
17
+ // offset: 0,
18
+ // limit: limit,
19
+ // filters: {
20
+ // [fieldMetadata?.relationModel?.userKeyField?.name]: {
21
+ // '$containsi': query
22
+ // }
23
+ // }
24
+ // };
25
+
26
+ // const autocompleteQs = qs.stringify(queryData, { encodeValuesOnly: true });
27
+
28
+ const response = await triggerGetSolidEntities(autocompleteQs);
29
+ const data = response.data;
30
+
31
+ if (data) {
32
+ const mappedItems = data.records.map((item: any) => ({
33
+ label: item[fieldMetadata?.relationModel?.userKeyField?.name],
34
+ value: item['id'],
35
+ original: item
36
+ }));
37
+ setAutoCompleteItems(mappedItems);
38
+ }
39
+ };
40
+
41
+ const addNewRelation = (values: any) => {
42
+ const currentData = formik.values[fieldLayoutInfo.attrs.name] || [];
43
+ const jsonValues = Object.fromEntries(values.entries());
44
+ const newItem = {
45
+ label: jsonValues[fieldMetadata?.relationModel?.userKeyField?.name],
46
+ value: "new",
47
+ original: jsonValues,
48
+ };
49
+
50
+ formik.setFieldValue(fieldLayoutInfo.attrs.name, [...currentData, newItem]);
51
+
52
+ // Optionally add to autocomplete list
53
+ setAutoCompleteItems((prev: any) => {
54
+ const exists = prev.some((item: any) => item.label === newItem.label);
55
+ return exists ? prev : [...prev, newItem];
56
+ });
57
+ };
58
+
59
+ return {
60
+ autoCompleteItems,
61
+ fetchRelationEntities,
62
+ addNewRelation
63
+ };
64
+ };
@@ -0,0 +1,135 @@
1
+ "use client";
2
+ import { SolidFormFieldWidgetProps } from "../../../../../types/solid-core";
3
+ import MarkdownViewer from "../../../../../components/common/MarkdownViewer";
4
+ import ReactCodeMirror, { EditorView } from "@uiw/react-codemirror";
5
+ import { javascript } from '@codemirror/lang-javascript';
6
+ import { oneDark } from '@codemirror/theme-one-dark';
7
+ import { ERROR_MESSAGES } from "../../../../../constants/error-messages";
8
+
9
+
10
+ export const SolidAiInteractionMessageFieldFormWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {
11
+
12
+ const fieldMetadata = fieldContext.fieldMetadata;
13
+ const fieldLayoutInfo = fieldContext.field;
14
+ const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
15
+ const userKeyFieldName = fieldMetadata.relationModel?.userKeyField?.name;
16
+ const value = formik.values[fieldLayoutInfo.attrs.name];
17
+ const contentType = formik?.values?.contentType ? formik?.values?.contentType : "markdown"
18
+
19
+ const renderContent = () => {
20
+
21
+ switch (contentType) {
22
+ case 'json':
23
+ return (
24
+ <JsonDisplay message={value} />
25
+ )
26
+ case 'markdown':
27
+ return (
28
+ <MarkdownDisplay message={value} />
29
+ )
30
+ case 'plain_text':
31
+ default:
32
+ return <PlainTextDisplay message={value} />
33
+ }
34
+ }
35
+
36
+ return (
37
+ <div className="mt-2 flex-column">
38
+ <p className="m-0 form-field-label font-medium">{fieldLabel}</p>
39
+ {value && renderContent()}
40
+ </div>
41
+ );
42
+ }
43
+
44
+
45
+
46
+ export interface MarkdownDisplayProps {
47
+ message: any
48
+ }
49
+
50
+ export const MarkdownDisplay: React.FC<MarkdownDisplayProps> = ({ message }) => {
51
+ // const jsonMsg = JSON.parse(interaction.message);
52
+ // const markdown = jsonMsg.data;
53
+ let jsonMsg: any;
54
+ let markdown: string;
55
+
56
+ try {
57
+ if (typeof message === "string") {
58
+ try {
59
+ jsonMsg = JSON.parse(message.trim());
60
+ markdown = jsonMsg?.data ?? "";
61
+ } catch (jsonErr) {
62
+ // Not valid JSON → treat the raw string as markdown
63
+ markdown = message.trim();
64
+ }
65
+ } else if (typeof message === "object" && message !== null) {
66
+ // Already an object
67
+ jsonMsg = message;
68
+ markdown = jsonMsg?.data ?? "";
69
+ } else {
70
+ // Fallback for other types
71
+ markdown = String(message ?? "");
72
+ }
73
+ } catch (err: any) {
74
+ // Worst-case fallback: put the error string in markdown
75
+ markdown = ERROR_MESSAGES.INTERATCTION_MESSGAE(err?.message,err);
76
+
77
+ }
78
+ // 🔧 Normalize escaped newlines, tabs, and quotes
79
+ if (markdown.includes("\\n")) {
80
+ markdown = markdown
81
+ .replace(/\\n/g, "\n")
82
+ .replace(/\\t/g, "\t")
83
+ .replace(/\\r/g, "")
84
+ .replace(/\\"/g, '"');
85
+ }
86
+
87
+ // ✅ markdown is now clean and render-ready
88
+
89
+ return (
90
+ <div className={`p-3 `} style={{ width: '100%' }}>
91
+ <MarkdownViewer data={markdown} />
92
+ </div>
93
+ )
94
+ }
95
+
96
+
97
+ export interface JsonDisplayProps {
98
+ message: any
99
+ }
100
+
101
+ export const JsonDisplay: React.FC<JsonDisplayProps> = ({ message }) => {
102
+ let formattedJson = ''
103
+ try {
104
+ const parsed = JSON.parse(message)
105
+ formattedJson = JSON.stringify(parsed, null, 2)
106
+ } catch (e) {
107
+ // formattedJson = 'Invalid JSON'
108
+ formattedJson = message;
109
+ }
110
+
111
+ return (
112
+ <div className={`p-3 `} style={{ width: '100%' }}>
113
+ <ReactCodeMirror
114
+ value={formattedJson}
115
+ style={{ fontSize: '10px' }}
116
+ theme={oneDark}
117
+ extensions={[javascript(), EditorView.lineWrapping]}
118
+ />
119
+ </div>
120
+ )
121
+ }
122
+
123
+
124
+
125
+ export interface PlainTextDisplayProps {
126
+ message: any
127
+ }
128
+
129
+ export const PlainTextDisplay: React.FC<PlainTextDisplayProps> = ({ message }) => {
130
+ return (
131
+ <div className={`p-3`}>
132
+ {message}
133
+ </div>
134
+ )
135
+ }
@@ -0,0 +1,144 @@
1
+ "use client";
2
+ import { SolidFormFieldWidgetProps } from "../../../../../types/solid-core";
3
+ import MarkdownViewer from "../../../../../components/common/MarkdownViewer";
4
+ import { Accordion, AccordionTab } from "primereact/accordion";
5
+ import { Button } from "primereact/button";
6
+ import { TabView, TabPanel } from "primereact/tabview";
7
+ import ReactCodeMirror, { EditorView, oneDark } from "@uiw/react-codemirror";
8
+ import { javascript } from "@codemirror/lang-javascript";
9
+
10
+ export const SolidAiInteractionMetadataFieldFormWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {
11
+
12
+ const fieldMetadata = fieldContext.fieldMetadata;
13
+ const fieldLayoutInfo = fieldContext.field;
14
+ const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
15
+ const userKeyFieldName = fieldMetadata.relationModel?.userKeyField?.name;
16
+ const value = formik.values[fieldLayoutInfo.attrs.name];
17
+
18
+ return (
19
+ <div className="mt-2 flex-column">
20
+ {/* <p className="m-0 form-field-label font-medium">{fieldLabel}</p> */}
21
+
22
+ <TabView>
23
+ {/* -------------------- Tab 1: Metadata & Prompts -------------------- */}
24
+ <TabPanel header="Chunks">
25
+ <div className="solid-layout-accordion">
26
+ <Accordion multiple expandIcon="pi pi-chevron-down" collapseIcon="pi pi-chevron-up" activeIndex={[0]}>
27
+ {value?.chunks?.map((c: any) => {
28
+ let processedText = c.text || '';
29
+ const meta = c.metadata || {};
30
+
31
+ // 🧠 Identify type
32
+ const isDoc = !!meta.path || meta.source === "docusaurus";
33
+ const isModule = meta.type === "module";
34
+ const isModel = meta.type === "model";
35
+
36
+ // 🧹 Clean text for docs
37
+ if (isDoc) {
38
+ processedText = processedText
39
+ .replace(/^Document Title:\s*/i, "")
40
+ .replace(/^Text:\s*/i, "")
41
+ .trim();
42
+ }
43
+
44
+ // 🧩 Extract "Full model metadata json" if present
45
+ if (isModel) {
46
+ const match = processedText.match(/Full model metadata json:\s*\n?({[\s\S]+})/);
47
+ if (match) {
48
+ try {
49
+ // Format the JSON nicely
50
+ const pretty = JSON.stringify(JSON.parse(match[1]), null, 2);
51
+ // Replace the raw JSON text with a fenced code block
52
+ processedText = processedText.replace(
53
+ match[0],
54
+ `**Full model metadata json:**\n\n\`\`\`json\n${pretty}\n\`\`\``
55
+ );
56
+ } catch {
57
+ // Fallback: wrap raw text if JSON invalid
58
+ processedText = processedText.replace(
59
+ match[0],
60
+ `**Full model metadata json (raw):**\n\n\`\`\`\n${match[1]}\n\`\`\``
61
+ );
62
+ }
63
+ }
64
+ }
65
+
66
+ // 🏷️ Header label
67
+ let headerTitle = "Unknown";
68
+ if (isModule) {
69
+ headerTitle = `Module: ${meta.moduleName} (${meta.modelCount} models)`;
70
+ } else if (isModel) {
71
+ headerTitle = `Model: ${meta.modelName} (${meta.fieldCount} fields)`;
72
+ } else if (isDoc) {
73
+ headerTitle = `Doc: ${meta.title || meta.doc_title || meta.path}`;
74
+ }
75
+
76
+ // 🌐 External link (docs only)
77
+ const openDoc = (e: any) => {
78
+ e.stopPropagation();
79
+ if (isDoc) {
80
+ const cleanPath = (meta.path || "").replace(/\.md$/, "");
81
+ const url = `https://docs.solidxai.com/docs/${cleanPath}`;
82
+ window.open(url, "_blank");
83
+ }
84
+ };
85
+
86
+ return (
87
+ <AccordionTab
88
+ key={c.id}
89
+ header={
90
+ <div className="flex justify-between items-center w-full">
91
+ <span className="font-medium">{headerTitle}</span>
92
+ {isDoc && (
93
+ <Button
94
+ icon="pi pi-external-link"
95
+ rounded
96
+ text
97
+ outlined
98
+ style={{ height: "1.5rem" }}
99
+ onClick={openDoc}
100
+ />
101
+ )}
102
+ </div>
103
+ }
104
+ >
105
+ <div key={c.id} className="shadow-1 bg-bluegray-50 p-3">
106
+ <MarkdownViewer data={processedText} />
107
+ </div>
108
+ </AccordionTab>
109
+ );
110
+ })}
111
+ </Accordion>
112
+ </div>
113
+ </TabPanel>
114
+ <TabPanel header="System Prompt">
115
+ {value?.system_prompt && (
116
+ <div>
117
+ <MarkdownViewer data={value.system_prompt} />
118
+ </div>
119
+ )}
120
+ </TabPanel>
121
+ <TabPanel header="User Prompt">
122
+ {value?.user_prompt && (
123
+ <div>
124
+ <MarkdownViewer data={value.user_prompt} />
125
+ </div>
126
+ )}
127
+ </TabPanel>
128
+ <TabPanel header="Token Usage">
129
+ {value?.tokenUsage && (
130
+ <div className={`p-3 `} style={{ width: '100%' }}>
131
+ <ReactCodeMirror
132
+ value={JSON.stringify(value.tokenUsage, null, 2)}
133
+ style={{ fontSize: '10px' }}
134
+ theme={oneDark}
135
+ extensions={[javascript(), EditorView.lineWrapping]}
136
+ />
137
+ </div>
138
+ )}
139
+ </TabPanel>
140
+ </TabView>
141
+ </div>
142
+ );
143
+ }
144
+
@@ -0,0 +1,265 @@
1
+ "use client";
2
+ import { solidIcons } from "../../../../../helpers/solidIcons";
3
+ import { SolidFormFieldWidgetProps } from "../../../../../types/solid-core";
4
+ import { Button } from "primereact/button";
5
+ import { Dialog } from "primereact/dialog";
6
+ import { Dropdown } from "primereact/dropdown";
7
+ import { InputText } from "primereact/inputtext";
8
+ import { useEffect, useState } from "react";
9
+
10
+ export const SolidIconEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {
11
+ console.log("SolidIconWidget", "formik : ", formik, "fieldContext : ", fieldContext);
12
+
13
+ const fieldMetadata = fieldContext.fieldMetadata;
14
+ const fieldLayoutInfo = fieldContext.field;
15
+ const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
16
+ const fieldName = fieldLayoutInfo?.attrs?.name;
17
+
18
+ const [openIconDialog, setOpenIconDialog] = useState(false);
19
+ const [selectedCategory, setSelectedCategory] = useState("All");
20
+ const [searchIcon, setSearchIcon] = useState("");
21
+ const [selectedIcon, setSelectedIcon] = useState(formik.values?.[fieldName] || "");
22
+
23
+ // const [iconVariant, setIconVariant] = useState(formik.values.iconVariant || "outlined");
24
+
25
+ // const iconVariants = [
26
+ // { label: "Outlined", value: "outlined" },
27
+ // { label: "Rounded", value: "rounded" },
28
+ // { label: "Sharp", value: "sharp" }
29
+ // ];
30
+
31
+ const allIcons = solidIcons.flatMap(({ category, icons }) =>
32
+ icons.map((icon) => ({ icon, category }))
33
+ );
34
+
35
+ const filteredIcons = (selectedCategory === "All" ? allIcons :
36
+ allIcons.filter((i) => i.category === selectedCategory)
37
+ ).filter(({ icon }) => icon.toLowerCase().includes(searchIcon.toLowerCase()));
38
+
39
+ const tabs = ["All", ...solidIcons.map((c) => c.category)];
40
+
41
+ useEffect(() => {
42
+ if (openIconDialog) {
43
+ setSelectedIcon(formik?.values?.[fieldName] ?? "");
44
+ // setIconVariant(formik.values.iconVariant ?? "outlined");
45
+ }
46
+ }, [openIconDialog]);
47
+
48
+ const handleSelectIcon = (icon: string) => {
49
+ setSelectedIcon(icon);
50
+ // setIconVariant(variant)
51
+ formik.setFieldValue(fieldName, icon);
52
+ // formik.setFieldValue("iconVariant", variant);
53
+ };
54
+
55
+ const handleRemoveIcon = () => {
56
+ setSelectedIcon("");
57
+ // setIconVariant(null)
58
+ formik.setFieldTouched(fieldName, true);
59
+ formik.setFieldValue(fieldName, "", true);
60
+ // formik.setFieldValue("iconVariant", null);
61
+ };
62
+
63
+ return (
64
+ <div>
65
+ <label className="form-field-label">{fieldLabel}</label>
66
+ <div className="flex align-items-end gap-3 mt-2">
67
+ <div style={{ display: 'inline-block' }}>
68
+ {selectedIcon ? (
69
+ // <Button
70
+ // type="button"
71
+ // icon={<span className={`material-symbols-outlined`}>{selectedIcon}</span>}
72
+ // onClick={() => setOpenIconDialog(true)}
73
+ // outlined
74
+ // />
75
+ <div>
76
+ <span className={`material-symbols-outlined`} style={{ fontSize: 48, cursor: 'pointer' }} onClick={() => setOpenIconDialog(true)}>
77
+ {selectedIcon}
78
+ </span>
79
+ <p className="mb-0 text-center">
80
+ {selectedIcon
81
+ .split('_')
82
+ .map((word: string) => word.charAt(0).toUpperCase() + word.slice(1))
83
+ .join(' ')
84
+ }
85
+ </p>
86
+ </div>
87
+ ) : (
88
+ <Button
89
+ type="button"
90
+ size="small"
91
+ label="Select Icon"
92
+ onClick={() => setOpenIconDialog(true)}
93
+ outlined
94
+ />
95
+ )}
96
+ </div>
97
+ {selectedIcon && (
98
+ <div>
99
+ <Button
100
+ type="button"
101
+ label="Remove"
102
+ className="p-button-text p-button-danger ml-2"
103
+ onClick={() => {
104
+ setSelectedIcon("");
105
+ formik.setFieldValue(fieldName, "");
106
+ }}
107
+ />
108
+ </div>
109
+ )}
110
+ </div>
111
+ <Dialog contentClassName="p-0" className="solid-icon-dialog" contentStyle={{ borderRadius: 6 }} showHeader={false} header={false} closable={false} visible={openIconDialog} style={{ width: '70vw', height: '70vh' }} breakpoints={{ '1024px': '75vw','991px': '90vw','767px':'94w', '250px': '96vw'}} onHide={() => setOpenIconDialog(false)}>
112
+ <div>
113
+ <div className="grid m-0 flex-column md:flex-row ">
114
+ <div className="col-12 lg:col-3 p-0">
115
+ <div className="flex flex-column justify-content-between p-3 lg:p-4" style={{ height: '100%' }}>
116
+ <div className="">
117
+ {/* <p className="font-medium">Variant</p>
118
+ <Dropdown
119
+ value={iconVariant}
120
+ onChange={(e) => setIconVariant(e.value)}
121
+ options={iconVariants}
122
+ optionLabel="label"
123
+ className="w-full mb-3"
124
+ checkmark
125
+ highlightOnSelect={false}
126
+ placeholder="Select Variant"
127
+ /> */}
128
+
129
+ <p className="font-medium">Category</p>
130
+ <div style={{ marginBottom: "1rem", display: "flex", gap: "1rem", flexWrap: "wrap" }} className="solid-icon-category-wrapper">
131
+ {tabs.map((tab) => (
132
+ <Button
133
+ type='button'
134
+ key={tab}
135
+ size="small"
136
+ onClick={() => {
137
+ setSelectedCategory(tab);
138
+ setSearchIcon("");
139
+ }}
140
+ outlined={selectedCategory === tab ? false : true}
141
+ style={{
142
+ padding: "8px 16px",
143
+ fontSize: 12
144
+ }}
145
+ className="solid-icon-category"
146
+ severity="secondary"
147
+ >
148
+ {tab}
149
+ </Button>
150
+ ))}
151
+ </div>
152
+ </div>
153
+ <div className="flex gap-3">
154
+ <Button type="button" size="small" label="Select" onClick={() => setOpenIconDialog(false)} />
155
+ <Button type="button" size="small" outlined label="Cancel" onClick={() => setOpenIconDialog(false)} />
156
+ </div>
157
+ </div>
158
+ </div>
159
+
160
+ <div className="col-6 p-0 flex lg:hidden">
161
+ <div className="p-3 lg:p-4">
162
+ <p className="font-medium">Selected Icon</p>
163
+ {selectedIcon && (
164
+ <>
165
+ <div className="flex justify-content-center">
166
+ <span className={`material-symbols-outlined`} style={{ fontSize: 100 }}>
167
+ {selectedIcon}
168
+ </span>
169
+ </div>
170
+ <p className='mt-2 text-center'>
171
+ {selectedIcon
172
+ .split('_')
173
+ .map((word: any) => word.charAt(0).toUpperCase() + word.slice(1))
174
+ .join(' ')
175
+ }
176
+ </p>
177
+ {/* <code className="mt-2 d-block">
178
+ {`<span class="material-symbols-${iconVariant || "outlined"}">${selectedIcon}</span>`}
179
+ </code> */}
180
+ </>
181
+ )}
182
+ </div>
183
+
184
+ </div>
185
+ <div className="col-12 lg:col-6 p-0" style={{ borderLeft: '1px solid var(--primary-light-color)', borderRight: '1px solid var(--primary-light-color)' }}>
186
+ <div className="px-3 lg:px-4 pt-3 lg:pt-4">
187
+ <div>
188
+ <p className="font-medium">Select Icon</p>
189
+ <InputText
190
+ type="text"
191
+ placeholder={`Search icons in "${selectedCategory}"`}
192
+ value={searchIcon}
193
+ onChange={(e) => setSearchIcon(e.target.value)}
194
+ className="w-full"
195
+ />
196
+ </div>
197
+ </div>
198
+ <div style={{ height: 'calc(70vh - 125px)', overflowY: 'auto', overflowX: 'hidden' }} className="px-4 pb-3 mt-4">
199
+ <div className="grid">
200
+ {filteredIcons.length > 0 ? (
201
+ filteredIcons.map(({ icon, category }) => (
202
+ <div className="col-3" key={icon}>
203
+ <div className="w-full flex flex-column align-items-center justify-content-center gap-3">
204
+ <span
205
+ className={`material-symbols-outlined`}
206
+ style={{
207
+ fontSize: 32,
208
+ cursor: "pointer",
209
+ padding: "8px",
210
+ border: selectedIcon === icon ? "2px solid var(--primary-color)" : "2px solid transparent",
211
+ borderRadius: "6px",
212
+ }}
213
+ onClick={() => handleSelectIcon(icon)}
214
+ title={`${icon} (${category})`}
215
+ >
216
+ {icon}
217
+ </span>
218
+ <p className='mb-0 mt-1 text-center'>
219
+ {icon
220
+ .split('_')
221
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
222
+ .join(' ')
223
+ }
224
+ </p>
225
+ </div>
226
+ </div>
227
+ ))
228
+ ) : (
229
+ <p className="mt">No icons found.</p>
230
+ )}
231
+ </div>
232
+ </div>
233
+ </div>
234
+
235
+ <div className="col-3 p-0 hidden lg:flex">
236
+ <div className="p-3 lg:p-4">
237
+ <p className="font-medium">Selected Icon</p>
238
+ {selectedIcon && (
239
+ <>
240
+ <div className="flex justify-content-center">
241
+ <span className={`material-symbols-outlined`} style={{ fontSize: 100 }}>
242
+ {selectedIcon}
243
+ </span>
244
+ </div>
245
+ <p className='mt-2 text-center'>
246
+ {selectedIcon
247
+ .split('_')
248
+ .map((word: any) => word.charAt(0).toUpperCase() + word.slice(1))
249
+ .join(' ')
250
+ }
251
+ </p>
252
+ {/* <code className="mt-2 d-block">
253
+ {`<span class="material-symbols-${iconVariant || "outlined"}">${selectedIcon}</span>`}
254
+ </code> */}
255
+ </>
256
+ )}
257
+ </div>
258
+
259
+ </div>
260
+ </div>
261
+ </div>
262
+ </Dialog>
263
+ </div>
264
+ );
265
+ };
@@ -0,0 +1,32 @@
1
+ import { SolidFormFieldWidgetProps } from "../../../../../types/solid-core";
2
+
3
+ export const SolidIconViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {
4
+ const fieldMetadata = fieldContext.fieldMetadata;
5
+ const fieldLayoutInfo = fieldContext.field;
6
+ const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
7
+ const fieldName = fieldLayoutInfo?.attrs?.name;
8
+ const selectedIcon = formik.values?.[fieldName];
9
+
10
+ const formattedIconName = selectedIcon
11
+ ? selectedIcon
12
+ .split('_')
13
+ .map((word: string) => word.charAt(0).toUpperCase() + word.slice(1))
14
+ .join(' ')
15
+ : '';
16
+
17
+ return (
18
+ <div>
19
+ <label className="form-field-label">{fieldLabel}</label>
20
+ {selectedIcon ? (
21
+ <div className="mt-2" style={{display:'inline-block'}}>
22
+ <span className="material-symbols-outlined" style={{ fontSize: 48 , cursor:'pointer'}}>
23
+ {selectedIcon}
24
+ </span>
25
+ <p className="mb-0 text-center">{formattedIconName}</p>
26
+ </div>
27
+ ) : (
28
+ <p className="mt-2">No icon selected.</p>
29
+ )}
30
+ </div>
31
+ );
32
+ };