@solidxai/core-ui 0.1.12-beta.5 → 0.1.12-beta.7

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 (475) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +5 -2
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +6 -2
  5. package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
  6. package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
  7. package/dist/components/auth/SolidOTPVerify.js +67 -0
  8. package/dist/components/auth/SolidOTPVerify.js.map +1 -0
  9. package/dist/components/auth/SolidOTPVerify.tsx +133 -0
  10. package/dist/components/common/AuthBanner.d.ts +3 -0
  11. package/dist/components/common/AuthBanner.d.ts.map +1 -0
  12. package/dist/components/common/AuthBanner.js +15 -0
  13. package/dist/components/common/AuthBanner.js.map +1 -0
  14. package/dist/components/common/AuthBanner.tsx +41 -0
  15. package/dist/components/common/SingleSelectAutoCompleteField.d.ts +2 -0
  16. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -0
  17. package/dist/components/common/SingleSelectAutoCompleteField.js +92 -0
  18. package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -0
  19. package/dist/components/common/SingleSelectAutoCompleteField.tsx +73 -0
  20. package/dist/components/common/SolidExportStepper.d.ts +12 -0
  21. package/dist/components/common/SolidExportStepper.d.ts.map +1 -0
  22. package/dist/components/common/SolidExportStepper.js +30 -0
  23. package/dist/components/common/SolidExportStepper.js.map +1 -0
  24. package/dist/components/common/SolidExportStepper.tsx +135 -0
  25. package/dist/components/core/card/CardGrid.d.ts +1 -1
  26. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  27. package/dist/components/core/card/CardGrid.js +2 -2
  28. package/dist/components/core/card/CardGrid.js.map +1 -1
  29. package/dist/components/core/card/CardGrid.tsx +4 -0
  30. package/dist/components/core/card/CardItem.d.ts +2 -0
  31. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  32. package/dist/components/core/card/CardItem.js +7 -2
  33. package/dist/components/core/card/CardItem.js.map +1 -1
  34. package/dist/components/core/card/CardItem.tsx +30 -8
  35. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  36. package/dist/components/core/card/SolidCardView.js +87 -21
  37. package/dist/components/core/card/SolidCardView.js.map +1 -1
  38. package/dist/components/core/card/SolidCardView.tsx +96 -40
  39. package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
  40. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  41. package/dist/components/core/card/SolidCardViewConfigure.js +9 -7
  42. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  43. package/dist/components/core/card/SolidCardViewConfigure.tsx +14 -1
  44. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
  45. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
  46. package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
  47. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
  48. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  49. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts +2 -0
  50. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts.map +1 -0
  51. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js +16 -0
  52. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js.map +1 -0
  53. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +29 -0
  54. package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
  55. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  56. package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
  57. package/dist/components/core/dashboard/DashboardFilter.d.ts +13 -0
  58. package/dist/components/core/dashboard/DashboardFilter.d.ts.map +1 -0
  59. package/dist/components/core/dashboard/DashboardFilter.js +299 -0
  60. package/dist/components/core/dashboard/DashboardFilter.js.map +1 -0
  61. package/dist/components/core/dashboard/DashboardFilter.tsx +348 -0
  62. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +3 -0
  63. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +1 -0
  64. package/dist/components/core/dashboard/PrimeDataTableWrapper.js +21 -0
  65. package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -0
  66. package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +40 -0
  67. package/dist/components/core/dashboard/SolidDashboard.d.ts +28 -0
  68. package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -0
  69. package/dist/components/core/dashboard/SolidDashboard.js +183 -0
  70. package/dist/components/core/dashboard/SolidDashboard.js.map +1 -0
  71. package/dist/components/core/dashboard/SolidDashboard.module.css +83 -0
  72. package/dist/components/core/dashboard/SolidDashboard.tsx +263 -0
  73. package/dist/components/core/dashboard/SolidDashboardBody.d.ts +24 -0
  74. package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -0
  75. package/dist/components/core/dashboard/SolidDashboardBody.js +162 -0
  76. package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -0
  77. package/dist/components/core/dashboard/SolidDashboardBody.tsx +168 -0
  78. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts +2 -0
  79. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts.map +1 -0
  80. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +11 -0
  81. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -0
  82. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +28 -0
  83. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts +3 -0
  84. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts.map +1 -0
  85. package/dist/components/core/dashboard/SolidDashboardHeader.js +6 -0
  86. package/dist/components/core/dashboard/SolidDashboardHeader.js.map +1 -0
  87. package/dist/components/core/dashboard/SolidDashboardHeader.tsx +10 -0
  88. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts +2 -0
  89. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts.map +1 -0
  90. package/dist/components/core/dashboard/SolidDashboardLoading.js +10 -0
  91. package/dist/components/core/dashboard/SolidDashboardLoading.js.map +1 -0
  92. package/dist/components/core/dashboard/SolidDashboardLoading.tsx +61 -0
  93. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts +3 -0
  94. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts.map +1 -0
  95. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +12 -0
  96. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -0
  97. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +32 -0
  98. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts +2 -0
  99. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts.map +1 -0
  100. package/dist/components/core/dashboard/SolidDashboardRenderError.js +11 -0
  101. package/dist/components/core/dashboard/SolidDashboardRenderError.js.map +1 -0
  102. package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +28 -0
  103. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts +19 -0
  104. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts.map +1 -0
  105. package/dist/components/core/dashboard/SolidDashboardVariable.js +171 -0
  106. package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -0
  107. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +259 -0
  108. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts +9 -0
  109. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -0
  110. package/dist/components/core/dashboard/SolidQuestionRenderer.js +42 -0
  111. package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -0
  112. package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +99 -0
  113. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts +9 -0
  114. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +1 -0
  115. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +35 -0
  116. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +1 -0
  117. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +48 -0
  118. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts +7 -0
  119. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts.map +1 -0
  120. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js +22 -0
  121. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js.map +1 -0
  122. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +51 -0
  123. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts +2 -0
  124. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts.map +1 -0
  125. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js +4 -0
  126. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js.map +1 -0
  127. package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +25 -0
  128. package/dist/components/core/dashboard/dashboard-utils.d.ts +2 -0
  129. package/dist/components/core/dashboard/dashboard-utils.d.ts.map +1 -0
  130. package/dist/components/core/dashboard/dashboard-utils.js +38 -0
  131. package/dist/components/core/dashboard/dashboard-utils.js.map +1 -0
  132. package/dist/components/core/dashboard/dashboard-utils.ts +39 -0
  133. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +10 -0
  134. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +1 -0
  135. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +16 -0
  136. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +1 -0
  137. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +19 -0
  138. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +8 -0
  139. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +1 -0
  140. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +64 -0
  141. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +1 -0
  142. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +30 -0
  143. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +8 -0
  144. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +1 -0
  145. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +62 -0
  146. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +1 -0
  147. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +29 -0
  148. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts +4 -0
  149. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts.map +1 -0
  150. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js +23 -0
  151. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js.map +1 -0
  152. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +36 -0
  153. package/dist/components/core/form/SolidFormView.js +1 -1
  154. package/dist/components/core/form/SolidFormView.js.map +1 -1
  155. package/dist/components/core/form/SolidFormView.tsx +1 -1
  156. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
  157. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +11 -1
  158. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
  159. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +26 -19
  160. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  161. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +13 -5
  162. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  163. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +16 -9
  164. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
  165. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
  166. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
  167. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
  168. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
  169. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
  170. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
  171. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
  172. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
  173. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
  174. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  175. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  176. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  177. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  178. package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
  179. package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
  180. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  181. package/dist/components/core/kanban/KanbanCard.js +10 -5
  182. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  183. package/dist/components/core/kanban/KanbanCard.tsx +28 -12
  184. package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
  185. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  186. package/dist/components/core/kanban/KanbanColumn.js +2 -2
  187. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  188. package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
  189. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  190. package/dist/components/core/kanban/SolidKanbanView.js +154 -25
  191. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  192. package/dist/components/core/kanban/SolidKanbanView.tsx +129 -16
  193. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
  194. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  195. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +13 -10
  196. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  197. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +18 -3
  198. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts +12 -0
  199. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +1 -0
  200. package/dist/components/core/kanban/SolidKanbanViewFields.js +145 -0
  201. package/dist/components/core/kanban/SolidKanbanViewFields.js.map +1 -0
  202. package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
  203. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +2 -0
  204. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -0
  205. package/dist/components/core/kanban/SolidManyToOneFilterElement.js +87 -0
  206. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -0
  207. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
  208. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +2 -0
  209. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +1 -0
  210. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +73 -0
  211. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +1 -0
  212. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
  213. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +2 -0
  214. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +1 -0
  215. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +20 -0
  216. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +1 -0
  217. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
  218. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +12 -0
  219. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +1 -0
  220. package/dist/components/core/kanban/SolidVarInputsFilterElement.js +81 -0
  221. package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +1 -0
  222. package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
  223. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +4 -0
  224. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +1 -0
  225. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +7 -0
  226. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +1 -0
  227. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
  228. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +4 -0
  229. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +1 -0
  230. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +8 -0
  231. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -0
  232. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +16 -0
  233. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +4 -0
  234. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +1 -0
  235. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +21 -0
  236. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +1 -0
  237. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
  238. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +4 -0
  239. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +1 -0
  240. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +8 -0
  241. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -0
  242. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
  243. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +4 -0
  244. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +1 -0
  245. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +8 -0
  246. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -0
  247. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
  248. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +4 -0
  249. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +1 -0
  250. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +7 -0
  251. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +1 -0
  252. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
  253. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +4 -0
  254. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +1 -0
  255. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +8 -0
  256. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -0
  257. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
  258. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +4 -0
  259. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +1 -0
  260. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +7 -0
  261. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +1 -0
  262. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
  263. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +4 -0
  264. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +1 -0
  265. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +8 -0
  266. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -0
  267. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
  268. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +4 -0
  269. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +1 -0
  270. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +16 -0
  271. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -0
  272. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
  273. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +4 -0
  274. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +1 -0
  275. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +7 -0
  276. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +1 -0
  277. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
  278. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +4 -0
  279. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -0
  280. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +56 -0
  281. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -0
  282. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +140 -0
  283. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +4 -0
  284. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -0
  285. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +42 -0
  286. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -0
  287. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +164 -0
  288. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +4 -0
  289. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +1 -0
  290. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +11 -0
  291. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +1 -0
  292. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
  293. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +4 -0
  294. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +1 -0
  295. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +7 -0
  296. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +1 -0
  297. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
  298. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +4 -0
  299. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +1 -0
  300. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +8 -0
  301. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -0
  302. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +14 -0
  303. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +4 -0
  304. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +1 -0
  305. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +8 -0
  306. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -0
  307. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
  308. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +4 -0
  309. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -0
  310. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +37 -0
  311. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -0
  312. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
  313. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +4 -0
  314. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +1 -0
  315. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +8 -0
  316. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -0
  317. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
  318. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +4 -0
  319. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +1 -0
  320. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +8 -0
  321. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +1 -0
  322. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
  323. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +4 -0
  324. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +1 -0
  325. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +7 -0
  326. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -0
  327. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
  328. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  329. package/dist/components/core/list/SolidDataTable.js +1 -1
  330. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  331. package/dist/components/core/list/SolidDataTable.tsx +1 -0
  332. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  333. package/dist/components/core/list/SolidListView.js +6 -1
  334. package/dist/components/core/list/SolidListView.js.map +1 -1
  335. package/dist/components/core/list/SolidListView.tsx +6 -1
  336. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +2 -0
  337. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -0
  338. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +39 -0
  339. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -0
  340. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +40 -0
  341. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts +12 -0
  342. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts.map +1 -0
  343. package/dist/components/core/list/SolidVarInputsFilterElement.js +81 -0
  344. package/dist/components/core/list/SolidVarInputsFilterElement.js.map +1 -0
  345. package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
  346. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
  347. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
  348. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
  349. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
  350. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
  351. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
  352. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
  353. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
  354. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
  355. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
  356. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
  357. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
  358. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
  359. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
  360. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
  361. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
  362. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  363. package/dist/components/core/model/FieldMetaDataForm.js +119 -102
  364. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  365. package/dist/components/core/model/FieldMetaDataForm.tsx +82 -39
  366. package/dist/components/core/model/FieldSelector.d.ts +5 -1
  367. package/dist/components/core/model/FieldSelector.d.ts.map +1 -1
  368. package/dist/components/core/model/FieldSelector.js +25 -6
  369. package/dist/components/core/model/FieldSelector.js.map +1 -1
  370. package/dist/components/core/model/FieldSelector.tsx +50 -5
  371. package/dist/components/core/tree/SolidTreeTable.d.ts +2 -1
  372. package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
  373. package/dist/components/core/tree/SolidTreeTable.js +2 -2
  374. package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
  375. package/dist/components/core/tree/SolidTreeTable.tsx +3 -1
  376. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  377. package/dist/components/core/tree/SolidTreeView.js +38 -15
  378. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  379. package/dist/components/core/tree/SolidTreeView.tsx +48 -23
  380. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  381. package/dist/components/core/users/CreateUser.js +45 -32
  382. package/dist/components/core/users/CreateUser.js.map +1 -1
  383. package/dist/components/core/users/CreateUser.tsx +15 -4
  384. package/dist/components/layout/DashboardHeader.d.ts +3 -0
  385. package/dist/components/layout/DashboardHeader.d.ts.map +1 -0
  386. package/dist/components/layout/DashboardHeader.js +20 -0
  387. package/dist/components/layout/DashboardHeader.js.map +1 -0
  388. package/dist/components/layout/DashboardHeader.tsx +94 -0
  389. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  390. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  391. package/dist/components/shad-cn-ui/SolidSelect.js +12 -4
  392. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  393. package/dist/components/shad-cn-ui/SolidSelect.tsx +13 -1
  394. package/dist/helpers/# no such endpoints exist, need to calle +3 -0
  395. package/dist/helpers/ToastContainer.d.ts +4 -0
  396. package/dist/helpers/ToastContainer.d.ts.map +1 -0
  397. package/dist/helpers/ToastContainer.js +49 -0
  398. package/dist/helpers/ToastContainer.js.map +1 -0
  399. package/dist/helpers/ToastContainer.tsx +94 -0
  400. package/dist/helpers/showToast.d.ts +5 -0
  401. package/dist/helpers/showToast.d.ts.map +1 -0
  402. package/dist/helpers/showToast.js +17 -0
  403. package/dist/helpers/showToast.js.map +1 -0
  404. package/dist/helpers/showToast.ts +13 -0
  405. package/dist/helpers/studioSandbox.d.ts +31 -0
  406. package/dist/helpers/studioSandbox.d.ts.map +1 -0
  407. package/dist/helpers/studioSandbox.js +104 -0
  408. package/dist/helpers/studioSandbox.js.map +1 -0
  409. package/dist/helpers/studioSandbox.ts +117 -0
  410. package/dist/nextAuth/authProviders.d.ts +4 -0
  411. package/dist/nextAuth/authProviders.d.ts.map +1 -0
  412. package/dist/nextAuth/authProviders.js +198 -0
  413. package/dist/nextAuth/authProviders.js.map +1 -0
  414. package/dist/nextAuth/authProviders.tsx +232 -0
  415. package/dist/nextAuth/handleLogout.d.ts +2 -0
  416. package/dist/nextAuth/handleLogout.d.ts.map +1 -0
  417. package/dist/nextAuth/handleLogout.js +36 -0
  418. package/dist/nextAuth/handleLogout.js.map +1 -0
  419. package/dist/nextAuth/handleLogout.tsx +39 -0
  420. package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
  421. package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
  422. package/dist/nextAuth/refreshAccessToken.js +24 -0
  423. package/dist/nextAuth/refreshAccessToken.js.map +1 -0
  424. package/dist/nextAuth/refreshAccessToken.tsx +28 -0
  425. package/dist/redux/api/dashboardApi.d.ts +23 -0
  426. package/dist/redux/api/dashboardApi.d.ts.map +1 -0
  427. package/dist/redux/api/dashboardApi.js +35 -0
  428. package/dist/redux/api/dashboardApi.js.map +1 -0
  429. package/dist/redux/api/dashboardApi.ts +56 -0
  430. package/dist/redux/api/dashboardLayoutApi.d.ts +24 -0
  431. package/dist/redux/api/dashboardLayoutApi.d.ts.map +1 -0
  432. package/dist/redux/api/dashboardLayoutApi.js +34 -0
  433. package/dist/redux/api/dashboardLayoutApi.js.map +1 -0
  434. package/dist/redux/api/dashboardLayoutApi.ts +55 -0
  435. package/dist/redux/api/dashboardQuestionApi.d.ts +5 -0
  436. package/dist/redux/api/dashboardQuestionApi.d.ts.map +1 -0
  437. package/dist/redux/api/dashboardQuestionApi.js +18 -0
  438. package/dist/redux/api/dashboardQuestionApi.js.map +1 -0
  439. package/dist/redux/api/dashboardQuestionApi.ts +17 -0
  440. package/dist/redux/api/datasourceIntrospectionApi.d.ts +1 -0
  441. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
  442. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
  443. package/dist/redux/api/datasourceIntrospectionApi.ts +1 -0
  444. package/dist/redux/features/settingsSlice.d.ts +20 -0
  445. package/dist/redux/features/settingsSlice.d.ts.map +1 -0
  446. package/dist/redux/features/settingsSlice.js +39 -0
  447. package/dist/redux/features/settingsSlice.js.map +1 -0
  448. package/dist/redux/features/settingsSlice.ts +60 -0
  449. package/dist/redux/store/defaultStoreConfig.d.ts +5 -5
  450. package/dist/resources/images/Footerbg.png +0 -0
  451. package/dist/resources/images/LoginBanner.png +0 -0
  452. package/dist/resources/images/dashboard/Ellipse 1.svg +10 -0
  453. package/dist/resources/images/dashboard/Rectangle 17.svg +10 -0
  454. package/dist/resources/images/dashboard/Rectangle 25.svg +11 -0
  455. package/dist/resources/images/dashboard/image 5.svg +9 -0
  456. package/dist/resources/images/loginhero.png +0 -0
  457. package/dist/resources/images/logo.png +0 -0
  458. package/dist/resources/images/radix-logo-white.png +0 -0
  459. package/dist/resources/images/radix-logo.png +0 -0
  460. package/dist/resources/images/signupBanner.png +0 -0
  461. package/dist/resources/shadcn-base.css +16 -70
  462. package/dist/resources/solid-custom.css +55 -0
  463. package/dist/resources/solid-responsive.css +4 -4
  464. package/dist/resources/solid-tailwind-generated.css +1 -1
  465. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +12 -0
  466. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
  467. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +160 -59
  468. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
  469. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +293 -41
  470. package/package.json +1 -1
  471. package/dist/helpers/modulePackageResumeState.d.ts +0 -6
  472. package/dist/helpers/modulePackageResumeState.d.ts.map +0 -1
  473. package/dist/helpers/modulePackageResumeState.js +0 -46
  474. package/dist/helpers/modulePackageResumeState.js.map +0 -1
  475. package/dist/helpers/modulePackageResumeState.ts +0 -57
@@ -0,0 +1,94 @@
1
+
2
+ import { useState } from "react";
3
+ import { SolidButton, SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from "../shad-cn-ui";
4
+ import { SolidIcon, parseSolidIconMeta } from "../shad-cn-ui/SolidIcon";
5
+
6
+ const DashboardHeader = () => {
7
+
8
+ const [menuOpen, setMenuOpen] = useState(false);
9
+ const items = [
10
+ {
11
+ label: 'Refresh',
12
+ icon: 'pi pi-refresh'
13
+ },
14
+ {
15
+ label: 'Export',
16
+ icon: 'pi pi-upload'
17
+ }
18
+ ];
19
+
20
+ return (
21
+ <div className="flex justify-content-between align-items-center px-5 surface-0 border-bottom-1 surface-border relative lg:static" style={{ height: "60px" }}>
22
+ <div className="flex align-items-center">
23
+ <SolidButton label="New" size="sm" type="submit" className="small-button" />
24
+ <SolidPopover open={menuOpen} onOpenChange={setMenuOpen}>
25
+ <SolidPopoverTrigger asChild>
26
+ <SolidButton
27
+ type="button"
28
+ icon="pi pi-cog"
29
+ variant="ghost"
30
+ size="sm"
31
+ className="ml-2"
32
+ />
33
+ </SolidPopoverTrigger>
34
+ <SolidPopoverContent side="bottom" align="start" className="solid-form-actions-popover">
35
+ <div className="solid-row-actions-menu">
36
+ {items.map((item) => (
37
+ <button key={item.label} type="button" className="solid-row-action-button" onClick={() => setMenuOpen(false)}>
38
+ {(() => { const m = parseSolidIconMeta(item.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className="solid-row-action-button-icon" /> : <i className={`${item.icon} solid-row-action-button-icon`} />; })()}
39
+ <span className="solid-row-action-button-label">{item.label}</span>
40
+ </button>
41
+ ))}
42
+ </div>
43
+ </SolidPopoverContent>
44
+ </SolidPopover>
45
+ </div>
46
+ <div className="flex align-items-center">
47
+ <div className="bgCircle">
48
+ <div style={{ position: "relative" }}>
49
+ <SolidIcon name="si-bell" />
50
+ <span className="topbar-badge">
51
+ </span>
52
+ </div>
53
+ </div>
54
+ <div className="bgCircle ml-3">
55
+ <div style={{ position: "relative" }}>
56
+ <SolidIcon name="si-envelope" />
57
+ <span className="topbar-badge">
58
+ </span>
59
+ </div>
60
+ </div>
61
+ <div className="topbar-profile">
62
+ <button className="topbar-profile-button p-link" type="button">
63
+ <img alt="avatar" src="/images/dashboard/Ellipse 1.svg" />
64
+ <span className="profile-details">
65
+ <span className="profile-name">Gene Russell</span>
66
+ <span className="profile-email">ben95@example.com</span>
67
+ </span>
68
+ <SolidIcon name="si-angle-down" />
69
+ </button>
70
+ <ul className="list-none p-3 m-0 border-round shadow-2 absolute surface-overlay origin-top w-full sm:w-12rem mt-2 right-0 top-auto hidden">
71
+ <li>
72
+ <a className="p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
73
+ <SolidIcon name="si-user" className="mr-3" />
74
+ <span>Profile</span>
75
+ </a>
76
+ <a className="p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
77
+ <SolidIcon name="si-inbox" className="mr-3" />
78
+ <span>Inbox</span></a>
79
+ <a className="p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
80
+ <SolidIcon name="si-cog" className="mr-3" />
81
+ <span>Settings</span>
82
+ </a>
83
+ <a className="p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
84
+ <SolidIcon name="si-power-off" className="mr-3" />
85
+ <span>Sign Out</span>
86
+ </a>
87
+ </li>
88
+ </ul>
89
+ </div>
90
+ </div>
91
+ </div>
92
+ );
93
+ }
94
+ export default DashboardHeader;
@@ -12,7 +12,8 @@ type SolidSelectProps = {
12
12
  }) => void;
13
13
  id?: string;
14
14
  native?: boolean;
15
+ menuPlacement?: "auto" | "top" | "bottom";
15
16
  };
16
- export declare function SolidSelect({ value, options, optionLabel, optionValue, placeholder, className, disabled, onChange, id, native, }: SolidSelectProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function SolidSelect({ value, options, optionLabel, optionValue, placeholder, className, disabled, onChange, id, native, menuPlacement, }: SolidSelectProps): import("react/jsx-runtime").JSX.Element;
17
18
  export {};
18
19
  //# sourceMappingURL=SolidSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidSelect.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidSelect.tsx"],"names":[],"mappings":"AAGA,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE7C,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAMF,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAY,EACZ,WAAqB,EACrB,WAAqB,EACrB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,MAAa,GACd,EAAE,gBAAgB,2CAiIlB"}
1
+ {"version":3,"file":"SolidSelect.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidSelect.tsx"],"names":[],"mappings":"AAGA,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE7C,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;CAC3C,CAAC;AAMF,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAY,EACZ,WAAqB,EACrB,WAAqB,EACrB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,MAAa,EACb,aAAsB,GACvB,EAAE,gBAAgB,2CA2IlB"}
@@ -9,9 +9,9 @@ function cx() {
9
9
  return parts.filter(Boolean).join(" ");
10
10
  }
11
11
  export function SolidSelect(_a) {
12
- var value = _a.value, _b = _a.options, options = _b === void 0 ? [] : _b, _c = _a.optionLabel, optionLabel = _c === void 0 ? "label" : _c, _d = _a.optionValue, optionValue = _d === void 0 ? "value" : _d, placeholder = _a.placeholder, className = _a.className, disabled = _a.disabled, onChange = _a.onChange, id = _a.id, _e = _a.native, native = _e === void 0 ? true : _e;
13
- var _f = React.useState(false), open = _f[0], setOpen = _f[1];
14
- var _g = React.useState(false), openUpward = _g[0], setOpenUpward = _g[1];
12
+ var value = _a.value, _b = _a.options, options = _b === void 0 ? [] : _b, _c = _a.optionLabel, optionLabel = _c === void 0 ? "label" : _c, _d = _a.optionValue, optionValue = _d === void 0 ? "value" : _d, placeholder = _a.placeholder, className = _a.className, disabled = _a.disabled, onChange = _a.onChange, id = _a.id, _e = _a.native, native = _e === void 0 ? true : _e, _f = _a.menuPlacement, menuPlacement = _f === void 0 ? "auto" : _f;
13
+ var _g = React.useState(false), open = _g[0], setOpen = _g[1];
14
+ var _h = React.useState(false), openUpward = _h[0], setOpenUpward = _h[1];
15
15
  var rootRef = React.useRef(null);
16
16
  var menuRef = React.useRef(null);
17
17
  var normalized = options.map(function (option, index) {
@@ -51,6 +51,14 @@ export function SolidSelect(_a) {
51
51
  React.useLayoutEffect(function () {
52
52
  if (!open || native || !rootRef.current || !menuRef.current)
53
53
  return;
54
+ if (menuPlacement === "top") {
55
+ setOpenUpward(true);
56
+ return;
57
+ }
58
+ if (menuPlacement === "bottom") {
59
+ setOpenUpward(false);
60
+ return;
61
+ }
54
62
  var rootRect = rootRef.current.getBoundingClientRect();
55
63
  var menuHeight = menuRef.current.offsetHeight;
56
64
  var viewportHeight = window.innerHeight;
@@ -58,7 +66,7 @@ export function SolidSelect(_a) {
58
66
  var spaceAbove = rootRect.top;
59
67
  var needsOpenUpward = spaceBelow < menuHeight + 8 && spaceAbove > spaceBelow;
60
68
  setOpenUpward(needsOpenUpward);
61
- }, [open, native, options.length]);
69
+ }, [open, native, options.length, menuPlacement]);
62
70
  if (!native) {
63
71
  return (_jsxs("div", { ref: rootRef, className: cx("solid-select-wrap", "solid-select-wrap-custom", className), children: [_jsxs("button", { id: id, type: "button", className: "solid-select solid-select-trigger", disabled: disabled, "aria-haspopup": "listbox", "aria-expanded": open, onClick: function () {
64
72
  if (disabled)
@@ -1 +1 @@
1
- {"version":3,"file":"SolidSelect.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { ChevronDown } from \"lucide-react\";\n\ntype SolidSelectOption = Record<string, any>;\n\ntype SolidSelectProps = {\n value?: any;\n options?: SolidSelectOption[];\n optionLabel?: string;\n optionValue?: string;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n onChange?: (event: { value: any }) => void;\n id?: string;\n native?: boolean;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidSelect({\n value,\n options = [],\n optionLabel = \"label\",\n optionValue = \"value\",\n placeholder,\n className,\n disabled,\n onChange,\n id,\n native = true,\n}: SolidSelectProps) {\n const [open, setOpen] = React.useState(false);\n const [openUpward, setOpenUpward] = React.useState(false);\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const menuRef = React.useRef<HTMLDivElement | null>(null);\n const normalized = options.map((option, index) => ({\n key: String(index),\n label: option?.[optionLabel] ?? \"\",\n value: option?.[optionValue],\n }));\n\n const selectedIndex = normalized.findIndex((item) => item.value === value);\n const selectedKey = selectedIndex >= 0 ? normalized[selectedIndex].key : \"\";\n const selectedOption = selectedIndex >= 0 ? normalized[selectedIndex] : null;\n\n React.useEffect(() => {\n if (!open) return;\n\n const handlePointerDown = (event: MouseEvent | TouchEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handlePointerDown);\n document.addEventListener(\"touchstart\", handlePointerDown);\n document.addEventListener(\"keydown\", handleEscape);\n\n return () => {\n document.removeEventListener(\"mousedown\", handlePointerDown);\n document.removeEventListener(\"touchstart\", handlePointerDown);\n document.removeEventListener(\"keydown\", handleEscape);\n };\n }, [open]);\n\n React.useLayoutEffect(() => {\n if (!open || native || !rootRef.current || !menuRef.current) return;\n\n const rootRect = rootRef.current.getBoundingClientRect();\n const menuHeight = menuRef.current.offsetHeight;\n const viewportHeight = window.innerHeight;\n const spaceBelow = viewportHeight - rootRect.bottom;\n const spaceAbove = rootRect.top;\n const needsOpenUpward = spaceBelow < menuHeight + 8 && spaceAbove > spaceBelow;\n\n setOpenUpward(needsOpenUpward);\n }, [open, native, options.length]);\n\n if (!native) {\n return (\n <div ref={rootRef} className={cx(\"solid-select-wrap\", \"solid-select-wrap-custom\", className)}>\n <button\n id={id}\n type=\"button\"\n className=\"solid-select solid-select-trigger\"\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n onClick={() => {\n if (disabled) return;\n setOpen((prev) => !prev);\n }}\n >\n <span className={cx(\"solid-select-trigger-label\", !selectedOption && \"solid-select-placeholder\")}>\n {selectedOption?.label || placeholder || \"Select\"}\n </span>\n <span className=\"solid-select-icon\" aria-hidden=\"true\">\n <ChevronDown size={14} />\n </span>\n </button>\n {open ? (\n <div\n ref={menuRef}\n className={cx(\"solid-select-menu\", openUpward && \"solid-select-menu-top\")}\n role=\"listbox\"\n >\n {normalized.map((item) => (\n <button\n key={item.key}\n type=\"button\"\n role=\"option\"\n className={cx(\"solid-select-menu-item\", item.value === value && \"is-selected\")}\n aria-selected={item.value === value}\n onClick={() => {\n onChange?.({ value: item.value });\n setOpen(false);\n }}\n >\n {item.label}\n </button>\n ))}\n </div>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className={cx(\"solid-select-wrap\", className)}>\n <select\n id={id}\n className=\"solid-select\"\n value={selectedKey}\n disabled={disabled}\n onChange={(event) => {\n const next = normalized.find((item) => item.key === event.target.value);\n onChange?.({ value: next?.value });\n }}\n >\n <option value=\"\" disabled>\n {placeholder || \"Select\"}\n </option>\n {normalized.map((item) => (\n <option key={item.key} value={item.key}>\n {item.label}\n </option>\n ))}\n </select>\n <span className=\"solid-select-icon\" aria-hidden=\"true\">\n <ChevronDown size={14} />\n </span>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidSelect.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { ChevronDown } from \"lucide-react\";\n\ntype SolidSelectOption = Record<string, any>;\n\ntype SolidSelectProps = {\n value?: any;\n options?: SolidSelectOption[];\n optionLabel?: string;\n optionValue?: string;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n onChange?: (event: { value: any }) => void;\n id?: string;\n native?: boolean;\n menuPlacement?: \"auto\" | \"top\" | \"bottom\";\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidSelect({\n value,\n options = [],\n optionLabel = \"label\",\n optionValue = \"value\",\n placeholder,\n className,\n disabled,\n onChange,\n id,\n native = true,\n menuPlacement = \"auto\",\n}: SolidSelectProps) {\n const [open, setOpen] = React.useState(false);\n const [openUpward, setOpenUpward] = React.useState(false);\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const menuRef = React.useRef<HTMLDivElement | null>(null);\n const normalized = options.map((option, index) => ({\n key: String(index),\n label: option?.[optionLabel] ?? \"\",\n value: option?.[optionValue],\n }));\n\n const selectedIndex = normalized.findIndex((item) => item.value === value);\n const selectedKey = selectedIndex >= 0 ? normalized[selectedIndex].key : \"\";\n const selectedOption = selectedIndex >= 0 ? normalized[selectedIndex] : null;\n\n React.useEffect(() => {\n if (!open) return;\n\n const handlePointerDown = (event: MouseEvent | TouchEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handlePointerDown);\n document.addEventListener(\"touchstart\", handlePointerDown);\n document.addEventListener(\"keydown\", handleEscape);\n\n return () => {\n document.removeEventListener(\"mousedown\", handlePointerDown);\n document.removeEventListener(\"touchstart\", handlePointerDown);\n document.removeEventListener(\"keydown\", handleEscape);\n };\n }, [open]);\n\n React.useLayoutEffect(() => {\n if (!open || native || !rootRef.current || !menuRef.current) return;\n\n if (menuPlacement === \"top\") {\n setOpenUpward(true);\n return;\n }\n\n if (menuPlacement === \"bottom\") {\n setOpenUpward(false);\n return;\n }\n\n const rootRect = rootRef.current.getBoundingClientRect();\n const menuHeight = menuRef.current.offsetHeight;\n const viewportHeight = window.innerHeight;\n const spaceBelow = viewportHeight - rootRect.bottom;\n const spaceAbove = rootRect.top;\n const needsOpenUpward = spaceBelow < menuHeight + 8 && spaceAbove > spaceBelow;\n\n setOpenUpward(needsOpenUpward);\n }, [open, native, options.length, menuPlacement]);\n\n if (!native) {\n return (\n <div ref={rootRef} className={cx(\"solid-select-wrap\", \"solid-select-wrap-custom\", className)}>\n <button\n id={id}\n type=\"button\"\n className=\"solid-select solid-select-trigger\"\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n onClick={() => {\n if (disabled) return;\n setOpen((prev) => !prev);\n }}\n >\n <span className={cx(\"solid-select-trigger-label\", !selectedOption && \"solid-select-placeholder\")}>\n {selectedOption?.label || placeholder || \"Select\"}\n </span>\n <span className=\"solid-select-icon\" aria-hidden=\"true\">\n <ChevronDown size={14} />\n </span>\n </button>\n {open ? (\n <div\n ref={menuRef}\n className={cx(\"solid-select-menu\", openUpward && \"solid-select-menu-top\")}\n role=\"listbox\"\n >\n {normalized.map((item) => (\n <button\n key={item.key}\n type=\"button\"\n role=\"option\"\n className={cx(\"solid-select-menu-item\", item.value === value && \"is-selected\")}\n aria-selected={item.value === value}\n onClick={() => {\n onChange?.({ value: item.value });\n setOpen(false);\n }}\n >\n {item.label}\n </button>\n ))}\n </div>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className={cx(\"solid-select-wrap\", className)}>\n <select\n id={id}\n className=\"solid-select\"\n value={selectedKey}\n disabled={disabled}\n onChange={(event) => {\n const next = normalized.find((item) => item.key === event.target.value);\n onChange?.({ value: next?.value });\n }}\n >\n <option value=\"\" disabled>\n {placeholder || \"Select\"}\n </option>\n {normalized.map((item) => (\n <option key={item.key} value={item.key}>\n {item.label}\n </option>\n ))}\n </select>\n <span className=\"solid-select-icon\" aria-hidden=\"true\">\n <ChevronDown size={14} />\n </span>\n </div>\n );\n}\n"]}
@@ -14,6 +14,7 @@ type SolidSelectProps = {
14
14
  onChange?: (event: { value: any }) => void;
15
15
  id?: string;
16
16
  native?: boolean;
17
+ menuPlacement?: "auto" | "top" | "bottom";
17
18
  };
18
19
 
19
20
  function cx(...parts: Array<string | false | undefined>) {
@@ -31,6 +32,7 @@ export function SolidSelect({
31
32
  onChange,
32
33
  id,
33
34
  native = true,
35
+ menuPlacement = "auto",
34
36
  }: SolidSelectProps) {
35
37
  const [open, setOpen] = React.useState(false);
36
38
  const [openUpward, setOpenUpward] = React.useState(false);
@@ -75,6 +77,16 @@ export function SolidSelect({
75
77
  React.useLayoutEffect(() => {
76
78
  if (!open || native || !rootRef.current || !menuRef.current) return;
77
79
 
80
+ if (menuPlacement === "top") {
81
+ setOpenUpward(true);
82
+ return;
83
+ }
84
+
85
+ if (menuPlacement === "bottom") {
86
+ setOpenUpward(false);
87
+ return;
88
+ }
89
+
78
90
  const rootRect = rootRef.current.getBoundingClientRect();
79
91
  const menuHeight = menuRef.current.offsetHeight;
80
92
  const viewportHeight = window.innerHeight;
@@ -83,7 +95,7 @@ export function SolidSelect({
83
95
  const needsOpenUpward = spaceBelow < menuHeight + 8 && spaceAbove > spaceBelow;
84
96
 
85
97
  setOpenUpward(needsOpenUpward);
86
- }, [open, native, options.length]);
98
+ }, [open, native, options.length, menuPlacement]);
87
99
 
88
100
  if (!native) {
89
101
  return (
@@ -0,0 +1,3 @@
1
+ # no such endpoints exist, need to called user get with populate api key filter
2
+ useGetSelfApiKeysQuery() → GET /iam/api-keys (self mode)
3
+ useGetUserApiKeysQuery(userId) → GET /users/:id/api-keys (admin mode)
@@ -0,0 +1,4 @@
1
+ export declare const ToastContainer: () => import("react/jsx-runtime").JSX.Element;
2
+ export declare const handleError: (errorToast: any) => void;
3
+ export declare const handleSuccess: (successMessage: any) => void;
4
+ //# sourceMappingURL=ToastContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastContainer.d.ts","sourceRoot":"","sources":["../../src/helpers/ToastContainer.tsx"],"names":[],"mappings":"AAgBA,eAAO,MAAM,cAAc,+CAI1B,CAAC;AAUF,eAAO,MAAM,WAAW,eAAgB,GAAG,SAqC1C,CAAC;AAEF,eAAO,MAAM,aAAa,mBAAoB,GAAG,SAwBhD,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ERROR_MESSAGES } from '../constants/error-messages';
3
+ import { Toast } from 'primereact/toast';
4
+ import { useRef } from 'react';
5
+ var toastRef = null;
6
+ export var ToastContainer = function () {
7
+ toastRef = useRef(null);
8
+ return _jsx(Toast, { ref: toastRef });
9
+ };
10
+ function isFetchBaseQueryErrorWithErrorResponse(error) {
11
+ return error && typeof error === 'object' && 'data' in error && 'message' in error.data;
12
+ }
13
+ var extractErrorMessages = function (errorObj) {
14
+ return Object.values(errorObj);
15
+ };
16
+ export var handleError = function (errorToast) {
17
+ var _a;
18
+ var errorMessage = errorToast ? errorToast : [ERROR_MESSAGES.ERROR_OCCURED];
19
+ if (typeof errorMessage == 'object') {
20
+ if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
21
+ errorMessage = errorToast.data.message;
22
+ }
23
+ }
24
+ // if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
25
+ // errorMessage = errorToast.data.message;
26
+ // } else {
27
+ // errorMessage = ['Something went wrong'];
28
+ // }
29
+ (_a = toastRef === null || toastRef === void 0 ? void 0 : toastRef.current) === null || _a === void 0 ? void 0 : _a.show({
30
+ severity: 'error',
31
+ summary: ERROR_MESSAGES.ERROR,
32
+ detail: errorMessage,
33
+ life: 3000,
34
+ //@ts-ignore
35
+ content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: Array.isArray(errorMessage) ? (errorMessage.map(function (message, index) { return (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: message.trim() }) }, index)); })) : (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: errorMessage === null || errorMessage === void 0 ? void 0 : errorMessage.trim() }) })) })); },
36
+ });
37
+ };
38
+ export var handleSuccess = function (successMessage) {
39
+ var _a;
40
+ (_a = toastRef === null || toastRef === void 0 ? void 0 : toastRef.current) === null || _a === void 0 ? void 0 : _a.show({
41
+ severity: 'error',
42
+ summary: ERROR_MESSAGES.IS_SUCCESS,
43
+ detail: successMessage,
44
+ life: 3000,
45
+ //@ts-ignore
46
+ content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: Array.isArray(successMessage) ? (successMessage.map(function (message, index) { return (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: message.trim() }) }, index)); })) : (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: successMessage === null || successMessage === void 0 ? void 0 : successMessage.trim() }) })) })); },
47
+ });
48
+ };
49
+ //# sourceMappingURL=ToastContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastContainer.js","sourceRoot":"","sources":["../../src/helpers/ToastContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { ERROR_MESSAGES } from '../constants/error-messages';\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/dist/query';\nimport { Toast } from 'primereact/toast';\nimport React, { useRef } from 'react';\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\n\nlet toastRef: React.MutableRefObject<Toast | null> | null = null;\n\nexport const ToastContainer = () => {\n toastRef = useRef(null);\n\n return <Toast ref={toastRef} />;\n};\n\nfunction isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n}\nconst extractErrorMessages = (errorObj: Record<string, string>): string[] => {\n return Object.values(errorObj);\n};\n\n\nexport const handleError = (errorToast: any) => {\n let errorMessage: any = errorToast ? errorToast : [ERROR_MESSAGES.ERROR_OCCURED];\n\n\n if (typeof errorMessage == 'object') {\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n }\n }\n // if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n // errorMessage = errorToast.data.message;\n // } else {\n // errorMessage = ['Something went wrong'];\n // }\n\n toastRef?.current?.show({\n severity: 'error',\n summary: ERROR_MESSAGES.ERROR,\n detail: errorMessage,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n {Array.isArray(errorMessage) ? (\n errorMessage.map((message, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{message.trim()}</span>\n </div>\n ))\n ) : (\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{errorMessage?.trim()}</span>\n </div>\n )}\n </div>\n ),\n });\n};\n\nexport const handleSuccess = (successMessage: any) => {\n\n toastRef?.current?.show({\n severity: 'error',\n summary: ERROR_MESSAGES.IS_SUCCESS,\n detail: successMessage,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n {Array.isArray(successMessage) ? (\n successMessage.map((message, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{message.trim()}</span>\n </div>\n ))\n ) : (\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{successMessage?.trim()}</span>\n </div>\n )}\n </div>\n ),\n });\n};\n"]}
@@ -0,0 +1,94 @@
1
+
2
+ import { ERROR_MESSAGES } from '../constants/error-messages';
3
+ import { FetchBaseQueryError } from '@reduxjs/toolkit/dist/query';
4
+ import { Toast } from 'primereact/toast';
5
+ import React, { useRef } from 'react';
6
+
7
+
8
+ interface ErrorResponseData {
9
+ message: string;
10
+ statusCode: number;
11
+ error: string;
12
+ }
13
+
14
+
15
+ let toastRef: React.MutableRefObject<Toast | null> | null = null;
16
+
17
+ export const ToastContainer = () => {
18
+ toastRef = useRef(null);
19
+
20
+ return <Toast ref={toastRef} />;
21
+ };
22
+
23
+ function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {
24
+ return error && typeof error === 'object' && 'data' in error && 'message' in error.data;
25
+ }
26
+ const extractErrorMessages = (errorObj: Record<string, string>): string[] => {
27
+ return Object.values(errorObj);
28
+ };
29
+
30
+
31
+ export const handleError = (errorToast: any) => {
32
+ let errorMessage: any = errorToast ? errorToast : [ERROR_MESSAGES.ERROR_OCCURED];
33
+
34
+
35
+ if (typeof errorMessage == 'object') {
36
+ if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
37
+ errorMessage = errorToast.data.message;
38
+ }
39
+ }
40
+ // if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
41
+ // errorMessage = errorToast.data.message;
42
+ // } else {
43
+ // errorMessage = ['Something went wrong'];
44
+ // }
45
+
46
+ toastRef?.current?.show({
47
+ severity: 'error',
48
+ summary: ERROR_MESSAGES.ERROR,
49
+ detail: errorMessage,
50
+ life: 3000,
51
+ //@ts-ignore
52
+ content: (props) => (
53
+ <div className="flex flex-column align-items-left" style={{ flex: "1" }}>
54
+ {Array.isArray(errorMessage) ? (
55
+ errorMessage.map((message, index) => (
56
+ <div className="flex align-items-center gap-2" key={index}>
57
+ <span className="font-bold text-900">{message.trim()}</span>
58
+ </div>
59
+ ))
60
+ ) : (
61
+ <div className="flex align-items-center gap-2">
62
+ <span className="font-bold text-900">{errorMessage?.trim()}</span>
63
+ </div>
64
+ )}
65
+ </div>
66
+ ),
67
+ });
68
+ };
69
+
70
+ export const handleSuccess = (successMessage: any) => {
71
+
72
+ toastRef?.current?.show({
73
+ severity: 'error',
74
+ summary: ERROR_MESSAGES.IS_SUCCESS,
75
+ detail: successMessage,
76
+ life: 3000,
77
+ //@ts-ignore
78
+ content: (props) => (
79
+ <div className="flex flex-column align-items-left" style={{ flex: "1" }}>
80
+ {Array.isArray(successMessage) ? (
81
+ successMessage.map((message, index) => (
82
+ <div className="flex align-items-center gap-2" key={index}>
83
+ <span className="font-bold text-900">{message.trim()}</span>
84
+ </div>
85
+ ))
86
+ ) : (
87
+ <div className="flex align-items-center gap-2">
88
+ <span className="font-bold text-900">{successMessage?.trim()}</span>
89
+ </div>
90
+ )}
91
+ </div>
92
+ ),
93
+ });
94
+ };
@@ -0,0 +1,5 @@
1
+ import { Toast } from "primereact/toast";
2
+ import { RefObject } from "react";
3
+ declare const showToast: (toast: RefObject<Toast>, severity: "success" | "error" | "info", summary: string, detail: string) => void;
4
+ export default showToast;
5
+ //# sourceMappingURL=showToast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showToast.d.ts","sourceRoot":"","sources":["../../src/helpers/showToast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,QAAA,MAAM,SAAS,UAAW,UAAU,KAAK,CAAC,YAAY,SAAS,GAAG,OAAO,GAAG,MAAM,WAAW,MAAM,UAAU,MAAM,SAQlH,CAAC;AACF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,17 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var showToast = function (toast, severity, summary, detail) {
13
+ var _a;
14
+ (_a = toast.current) === null || _a === void 0 ? void 0 : _a.show(__assign({ severity: severity, summary: summary, detail: detail }, (severity === "error" ? { sticky: true } : { life: 3000 })));
15
+ };
16
+ export default showToast;
17
+ //# sourceMappingURL=showToast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showToast.js","sourceRoot":"","sources":["../../src/helpers/showToast.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,IAAM,SAAS,GAAG,UAAC,KAAuB,EAAE,QAAsC,EAAE,OAAe,EAAE,MAAc;;IAC/G,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,YACf,QAAQ,UAAA,EACR,OAAO,SAAA,EACP,MAAM,QAAA,IAEH,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAC/D,CAAC;AACP,CAAC,CAAC;AACF,eAAe,SAAS,CAAC","sourcesContent":["import { Toast } from \"primereact/toast\";\nimport { RefObject } from \"react\";\n\nconst showToast = (toast: RefObject<Toast>, severity: \"success\" | \"error\" | \"info\", summary: string, detail: string) => {\n toast.current?.show({\n severity,\n summary,\n detail,\n // stays until user closes\n ...(severity === \"error\" ? { sticky: true } : { life: 3000 }),\n });\n};\nexport default showToast;"]}
@@ -0,0 +1,13 @@
1
+ import { Toast } from "primereact/toast";
2
+ import { RefObject } from "react";
3
+
4
+ const showToast = (toast: RefObject<Toast>, severity: "success" | "error" | "info", summary: string, detail: string) => {
5
+ toast.current?.show({
6
+ severity,
7
+ summary,
8
+ detail,
9
+ // stays until user closes
10
+ ...(severity === "error" ? { sticky: true } : { life: 3000 }),
11
+ });
12
+ };
13
+ export default showToast;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Studio Sandbox Mode API
3
+ *
4
+ * This module isolates the application layout from the Solid Studio UI.
5
+ * It dynamically creates a container to wrap the application root, converting
6
+ * it into a relative containing block. This prevents \`position: fixed\` elements
7
+ * within the application from inadvertently overlapping with the global Studio UI.
8
+ */
9
+ /**
10
+ * Wraps the app root into the sandbox container.
11
+ */
12
+ export declare function enableStudioMode(): void;
13
+ /**
14
+ * Restores the application to its original state.
15
+ */
16
+ export declare function disableStudioMode(): void;
17
+ /**
18
+ * Returns the active scroll element based on sandbox state.
19
+ * When Studio Mode is enabled, the scroll element becomes the container.
20
+ * Otherwise, it uses the default Window object.
21
+ */
22
+ export declare function getScrollElement(): HTMLElement | Window;
23
+ /**
24
+ * Returns the current vertical scroll position.
25
+ */
26
+ export declare function getScrollY(): number;
27
+ /**
28
+ * Returns the effective viewport height.
29
+ */
30
+ export declare function getViewportHeight(): number;
31
+ //# sourceMappingURL=studioSandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studioSandbox.d.ts","sourceRoot":"","sources":["../../src/helpers/studioSandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH;;GAEG;AACH,wBAAgB,gBAAgB,SAgC/B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,SAoBhC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,GAAG,MAAM,CAOvD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Studio Sandbox Mode API
3
+ *
4
+ * This module isolates the application layout from the Solid Studio UI.
5
+ * It dynamically creates a container to wrap the application root, converting
6
+ * it into a relative containing block. This prevents \`position: fixed\` elements
7
+ * within the application from inadvertently overlapping with the global Studio UI.
8
+ */
9
+ var originalRootParent = null;
10
+ var originalRootNextSibling = null;
11
+ var isSandboxActive = false;
12
+ function getAppRoot() {
13
+ // Determine the root depending on the framework (Vite uses #root, Next uses #__next)
14
+ return document.getElementById("root") || document.getElementById("__next") || document.body.firstElementChild;
15
+ }
16
+ /**
17
+ * Wraps the app root into the sandbox container.
18
+ */
19
+ export function enableStudioMode() {
20
+ if (typeof window === "undefined" || isSandboxActive)
21
+ return;
22
+ var appRoot = getAppRoot();
23
+ if (!appRoot || appRoot.id === "solid-studio-root" || appRoot.id === "solid-studio-app-container") {
24
+ return;
25
+ }
26
+ var parent = appRoot.parentNode;
27
+ if (!parent)
28
+ return;
29
+ isSandboxActive = true;
30
+ originalRootParent = parent;
31
+ originalRootNextSibling = appRoot.nextSibling;
32
+ // Create the outer wrapper
33
+ var studioRoot = document.createElement("div");
34
+ studioRoot.id = "solid-studio-root";
35
+ // Create the isolation container
36
+ var appContainer = document.createElement("div");
37
+ appContainer.id = "solid-studio-app-container";
38
+ // Re-parent the app node
39
+ appContainer.appendChild(appRoot);
40
+ studioRoot.appendChild(appContainer);
41
+ // Insert the wrapper into the DOM where the root used to be
42
+ parent.insertBefore(studioRoot, originalRootNextSibling);
43
+ // Set a class on the body to indicate Studio Mode
44
+ document.body.classList.add("solid-studio-active");
45
+ }
46
+ /**
47
+ * Restores the application to its original state.
48
+ */
49
+ export function disableStudioMode() {
50
+ if (typeof window === "undefined" || !isSandboxActive)
51
+ return;
52
+ var studioRoot = document.getElementById("solid-studio-root");
53
+ var appContainer = document.getElementById("solid-studio-app-container");
54
+ // Find our wrapped app root
55
+ var appRoot = appContainer === null || appContainer === void 0 ? void 0 : appContainer.firstElementChild;
56
+ if (studioRoot && appRoot && originalRootParent) {
57
+ originalRootParent.insertBefore(appRoot, originalRootNextSibling);
58
+ studioRoot.remove();
59
+ }
60
+ isSandboxActive = false;
61
+ originalRootParent = null;
62
+ originalRootNextSibling = null;
63
+ // Remove body class
64
+ document.body.classList.remove("solid-studio-active");
65
+ }
66
+ /**
67
+ * Returns the active scroll element based on sandbox state.
68
+ * When Studio Mode is enabled, the scroll element becomes the container.
69
+ * Otherwise, it uses the default Window object.
70
+ */
71
+ export function getScrollElement() {
72
+ if (typeof window === "undefined")
73
+ return window;
74
+ if (isSandboxActive) {
75
+ var container = document.getElementById("solid-studio-app-container");
76
+ return container || window;
77
+ }
78
+ return window;
79
+ }
80
+ /**
81
+ * Returns the current vertical scroll position.
82
+ */
83
+ export function getScrollY() {
84
+ if (typeof window === "undefined")
85
+ return 0;
86
+ if (isSandboxActive) {
87
+ var container = document.getElementById("solid-studio-app-container");
88
+ return container ? container.scrollTop : 0;
89
+ }
90
+ return window.scrollY;
91
+ }
92
+ /**
93
+ * Returns the effective viewport height.
94
+ */
95
+ export function getViewportHeight() {
96
+ if (typeof window === "undefined")
97
+ return 0;
98
+ if (isSandboxActive) {
99
+ var container = document.getElementById("solid-studio-app-container");
100
+ return container ? container.clientHeight : window.innerHeight;
101
+ }
102
+ return window.innerHeight;
103
+ }
104
+ //# sourceMappingURL=studioSandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studioSandbox.js","sourceRoot":"","sources":["../../src/helpers/studioSandbox.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Studio Sandbox Mode API\n * \n * This module isolates the application layout from the Solid Studio UI. \n * It dynamically creates a container to wrap the application root, converting\n * it into a relative containing block. This prevents \\`position: fixed\\` elements \n * within the application from inadvertently overlapping with the global Studio UI.\n */\n\nlet originalRootParent: ParentNode | null = null;\nlet originalRootNextSibling: Node | null = null;\nlet isSandboxActive = false;\n\nfunction getAppRoot() {\n // Determine the root depending on the framework (Vite uses #root, Next uses #__next)\n return document.getElementById(\"root\") || document.getElementById(\"__next\") || document.body.firstElementChild;\n}\n\n/**\n * Wraps the app root into the sandbox container.\n */\nexport function enableStudioMode() {\n if (typeof window === \"undefined\" || isSandboxActive) return;\n\n const appRoot = getAppRoot();\n if (!appRoot || appRoot.id === \"solid-studio-root\" || appRoot.id === \"solid-studio-app-container\") {\n return;\n }\n\n const parent = appRoot.parentNode;\n if (!parent) return;\n\n isSandboxActive = true;\n originalRootParent = parent;\n originalRootNextSibling = appRoot.nextSibling;\n\n // Create the outer wrapper\n const studioRoot = document.createElement(\"div\");\n studioRoot.id = \"solid-studio-root\";\n\n // Create the isolation container\n const appContainer = document.createElement(\"div\");\n appContainer.id = \"solid-studio-app-container\";\n\n // Re-parent the app node\n appContainer.appendChild(appRoot);\n studioRoot.appendChild(appContainer);\n\n // Insert the wrapper into the DOM where the root used to be\n parent.insertBefore(studioRoot, originalRootNextSibling);\n\n // Set a class on the body to indicate Studio Mode\n document.body.classList.add(\"solid-studio-active\");\n}\n\n/**\n * Restores the application to its original state.\n */\nexport function disableStudioMode() {\n if (typeof window === \"undefined\" || !isSandboxActive) return;\n\n const studioRoot = document.getElementById(\"solid-studio-root\");\n const appContainer = document.getElementById(\"solid-studio-app-container\");\n\n // Find our wrapped app root\n const appRoot = appContainer?.firstElementChild;\n\n if (studioRoot && appRoot && originalRootParent) {\n originalRootParent.insertBefore(appRoot, originalRootNextSibling);\n studioRoot.remove();\n }\n\n isSandboxActive = false;\n originalRootParent = null;\n originalRootNextSibling = null;\n\n // Remove body class\n document.body.classList.remove(\"solid-studio-active\");\n}\n\n/**\n * Returns the active scroll element based on sandbox state.\n * When Studio Mode is enabled, the scroll element becomes the container.\n * Otherwise, it uses the default Window object.\n */\nexport function getScrollElement(): HTMLElement | Window {\n if (typeof window === \"undefined\") return window;\n if (isSandboxActive) {\n const container = document.getElementById(\"solid-studio-app-container\");\n return container || window;\n }\n return window;\n}\n\n/**\n * Returns the current vertical scroll position.\n */\nexport function getScrollY(): number {\n if (typeof window === \"undefined\") return 0;\n if (isSandboxActive) {\n const container = document.getElementById(\"solid-studio-app-container\");\n return container ? container.scrollTop : 0;\n }\n return window.scrollY;\n}\n\n/**\n * Returns the effective viewport height.\n */\nexport function getViewportHeight(): number {\n if (typeof window === \"undefined\") return 0;\n if (isSandboxActive) {\n const container = document.getElementById(\"solid-studio-app-container\");\n return container ? container.clientHeight : window.innerHeight;\n }\n return window.innerHeight;\n}\n"]}