@solidxai/core-ui 0.1.8-beta.19 → 0.1.8-beta.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/dist/adapters/auth/getSession.d.ts.map +1 -1
  2. package/dist/adapters/auth/getSession.js +1 -1
  3. package/dist/adapters/auth/getSession.js.map +1 -1
  4. package/dist/adapters/auth/getSession.ts +1 -0
  5. package/dist/adapters/auth/helper.d.ts.map +1 -1
  6. package/dist/adapters/auth/helper.js +1 -0
  7. package/dist/adapters/auth/helper.js.map +1 -1
  8. package/dist/adapters/auth/helper.ts +3 -1
  9. package/dist/adapters/auth/signIn.d.ts.map +1 -1
  10. package/dist/adapters/auth/signIn.js +1 -0
  11. package/dist/adapters/auth/signIn.js.map +1 -1
  12. package/dist/adapters/auth/signIn.ts +3 -1
  13. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -0
  14. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
  15. package/dist/adapters/auth/signInWithOAuthAccessCode.js +10 -9
  16. package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
  17. package/dist/adapters/auth/signInWithOAuthAccessCode.ts +6 -3
  18. package/dist/adapters/auth/signOut.d.ts.map +1 -1
  19. package/dist/adapters/auth/signOut.js +7 -1
  20. package/dist/adapters/auth/signOut.js.map +1 -1
  21. package/dist/adapters/auth/signOut.ts +7 -1
  22. package/dist/adapters/auth/types.d.ts +1 -0
  23. package/dist/adapters/auth/types.d.ts.map +1 -1
  24. package/dist/adapters/auth/types.js.map +1 -1
  25. package/dist/adapters/auth/types.ts +1 -0
  26. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  27. package/dist/components/auth/AuthLayout.js +2 -1
  28. package/dist/components/auth/AuthLayout.js.map +1 -1
  29. package/dist/components/auth/AuthLayout.tsx +2 -1
  30. package/dist/components/auth/FacebookAuthChecking.d.ts +2 -0
  31. package/dist/components/auth/FacebookAuthChecking.d.ts.map +1 -0
  32. package/dist/components/auth/FacebookAuthChecking.js +103 -0
  33. package/dist/components/auth/FacebookAuthChecking.js.map +1 -0
  34. package/dist/components/auth/FacebookAuthChecking.tsx +64 -0
  35. package/dist/components/auth/GoogleAuthChecking.js +0 -1
  36. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  37. package/dist/components/auth/GoogleAuthChecking.tsx +1 -1
  38. package/dist/components/auth/MicrosoftAuthChecking.d.ts +2 -0
  39. package/dist/components/auth/MicrosoftAuthChecking.d.ts.map +1 -0
  40. package/dist/components/auth/MicrosoftAuthChecking.js +103 -0
  41. package/dist/components/auth/MicrosoftAuthChecking.js.map +1 -0
  42. package/dist/components/auth/MicrosoftAuthChecking.tsx +64 -0
  43. package/dist/components/auth/SolidInitialLoginOtp.js +0 -1
  44. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  45. package/dist/components/auth/SolidInitialLoginOtp.tsx +1 -1
  46. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  47. package/dist/components/auth/SolidInitiateRegisterOtp.js +28 -12
  48. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  49. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +26 -11
  50. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  51. package/dist/components/auth/SolidLogin.js +7 -4
  52. package/dist/components/auth/SolidLogin.js.map +1 -1
  53. package/dist/components/auth/SolidLogin.tsx +15 -3
  54. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  55. package/dist/components/auth/SolidRegister.js +48 -17
  56. package/dist/components/auth/SolidRegister.js.map +1 -1
  57. package/dist/components/auth/SolidRegister.tsx +87 -30
  58. package/dist/components/common/AuthBanner.js.map +1 -1
  59. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  60. package/dist/components/common/GeneralSettings.js +228 -146
  61. package/dist/components/common/GeneralSettings.js.map +1 -1
  62. package/dist/components/common/GeneralSettings.tsx +1103 -772
  63. package/dist/components/common/SettingsComponent.d.ts +2 -0
  64. package/dist/components/common/SettingsComponent.d.ts.map +1 -0
  65. package/dist/components/common/SettingsComponent.js +351 -0
  66. package/dist/components/common/SettingsComponent.js.map +1 -0
  67. package/dist/components/common/SettingsComponent.module.css +421 -0
  68. package/dist/components/common/SettingsComponent.tsx +582 -0
  69. package/dist/components/common/SocialMediaLogin.d.ts +8 -1
  70. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  71. package/dist/components/common/SocialMediaLogin.js +6 -13
  72. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  73. package/dist/components/common/SocialMediaLogin.tsx +120 -58
  74. package/dist/components/common/SolidExport.d.ts.map +1 -1
  75. package/dist/components/common/SolidExport.js +1 -1
  76. package/dist/components/common/SolidExport.js.map +1 -1
  77. package/dist/components/common/SolidExport.tsx +2 -1
  78. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  79. package/dist/components/common/SolidFormStepper.js +2 -1
  80. package/dist/components/common/SolidFormStepper.js.map +1 -1
  81. package/dist/components/common/SolidFormStepper.tsx +2 -1
  82. package/dist/components/common/solid-export.css +26 -0
  83. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  84. package/dist/components/core/card/SolidCardView.js +24 -25
  85. package/dist/components/core/card/SolidCardView.js.map +1 -1
  86. package/dist/components/core/card/SolidCardView.tsx +22 -27
  87. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  88. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  89. package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
  90. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  91. package/dist/components/core/chatter/SolidChatter.js +39 -9
  92. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  93. package/dist/components/core/chatter/SolidChatter.tsx +42 -7
  94. package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts.map +1 -1
  95. package/dist/components/core/chatter/SolidChatterAuditMessage.js +19 -1
  96. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  97. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +22 -1
  98. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +3 -0
  99. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  100. package/dist/components/core/chatter/SolidChatterMessageBox.js +68 -4
  101. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  102. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +45 -3
  103. package/dist/components/core/chatter/chatter.module.css +0 -3
  104. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
  105. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +3 -1
  106. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
  107. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +3 -1
  108. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  109. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +9 -8
  110. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  111. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +4 -2
  112. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts +3 -0
  113. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts.map +1 -0
  114. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js +81 -0
  115. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js.map +1 -0
  116. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.tsx +114 -0
  117. package/dist/components/core/form/SolidFormActionHeader.d.ts +1 -1
  118. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  119. package/dist/components/core/form/SolidFormActionHeader.js +5 -3
  120. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  121. package/dist/components/core/form/SolidFormActionHeader.tsx +27 -1
  122. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  123. package/dist/components/core/form/SolidFormView.js +67 -27
  124. package/dist/components/core/form/SolidFormView.js.map +1 -1
  125. package/dist/components/core/form/SolidFormView.tsx +54 -7
  126. package/dist/components/core/form/fields/SolidComputedField.d.ts +25 -0
  127. package/dist/components/core/form/fields/SolidComputedField.d.ts.map +1 -0
  128. package/dist/components/core/form/fields/SolidComputedField.js +128 -0
  129. package/dist/components/core/form/fields/SolidComputedField.js.map +1 -0
  130. package/dist/components/core/form/fields/SolidComputedField.tsx +134 -0
  131. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  132. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +11 -3
  133. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  134. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +13 -4
  135. package/dist/components/core/kanban/KanbanBoard.js +1 -1
  136. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  137. package/dist/components/core/kanban/KanbanBoard.tsx +1 -1
  138. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  139. package/dist/components/core/kanban/SolidKanbanView.js +216 -102
  140. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  141. package/dist/components/core/kanban/SolidKanbanView.tsx +204 -72
  142. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  143. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  144. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
  145. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  146. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  147. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
  148. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  149. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  150. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  151. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
  152. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  153. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  154. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  155. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
  156. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  157. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
  158. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  159. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
  160. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  161. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  162. package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
  163. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
  164. package/dist/components/core/list/SolidDataTablePagination.js +22 -0
  165. package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
  166. package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
  167. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  168. package/dist/components/core/list/SolidListView.js +58 -61
  169. package/dist/components/core/list/SolidListView.js.map +1 -1
  170. package/dist/components/core/list/SolidListView.tsx +42 -46
  171. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  172. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  173. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  174. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  175. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  176. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
  177. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  178. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
  179. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  180. package/dist/components/layout/user-profile-menu.js +15 -14
  181. package/dist/components/layout/user-profile-menu.js.map +1 -1
  182. package/dist/components/layout/user-profile-menu.tsx +8 -6
  183. package/dist/components/shad-cn-ui/SolidDialog.d.ts +1 -1
  184. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  185. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  186. package/dist/components/shad-cn-ui/SolidDialog.tsx +1 -1
  187. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
  188. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  189. package/dist/components/shad-cn-ui/SolidIcon.js +3 -4
  190. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  191. package/dist/components/shad-cn-ui/SolidIcon.tsx +12 -15
  192. package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts.map +1 -1
  193. package/dist/components/shad-cn-ui/SolidRichTextEditor.js +9 -1
  194. package/dist/components/shad-cn-ui/SolidRichTextEditor.js.map +1 -1
  195. package/dist/components/shad-cn-ui/SolidRichTextEditor.tsx +8 -1
  196. package/dist/components/shad-cn-ui/SolidTabs.d.ts +2 -1
  197. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  198. package/dist/components/shad-cn-ui/SolidTabs.js +2 -2
  199. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  200. package/dist/components/shad-cn-ui/SolidTabs.tsx +12 -1
  201. package/dist/components/solid-ui/SolidButton.d.ts +14 -0
  202. package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
  203. package/dist/components/solid-ui/SolidButton.js +36 -0
  204. package/dist/components/solid-ui/SolidButton.js.map +1 -0
  205. package/dist/components/solid-ui/SolidButton.tsx +54 -0
  206. package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
  207. package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
  208. package/dist/components/solid-ui/SolidTabs.js +22 -0
  209. package/dist/components/solid-ui/SolidTabs.js.map +1 -0
  210. package/dist/components/solid-ui/SolidTabs.tsx +73 -0
  211. package/dist/components/solid-ui/index.d.ts +3 -0
  212. package/dist/components/solid-ui/index.d.ts.map +1 -0
  213. package/dist/components/solid-ui/index.js +3 -0
  214. package/dist/components/solid-ui/index.js.map +1 -0
  215. package/dist/components/solid-ui/index.ts +2 -0
  216. package/dist/helpers/registry.d.ts +2 -2
  217. package/dist/helpers/registry.d.ts.map +1 -1
  218. package/dist/helpers/registry.js +4 -0
  219. package/dist/helpers/registry.js.map +1 -1
  220. package/dist/helpers/registry.ts +5 -3
  221. package/dist/helpers/settingsPayload.d.ts +32 -0
  222. package/dist/helpers/settingsPayload.d.ts.map +1 -0
  223. package/dist/helpers/settingsPayload.js +72 -0
  224. package/dist/helpers/settingsPayload.js.map +1 -0
  225. package/dist/helpers/settingsPayload.ts +125 -0
  226. package/dist/index.d.ts +4 -0
  227. package/dist/index.d.ts.map +1 -1
  228. package/dist/index.js +4 -0
  229. package/dist/index.js.map +1 -1
  230. package/dist/index.ts +4 -0
  231. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
  232. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  233. package/dist/redux/api/solidChatterMessageApi.js +11 -1
  234. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  235. package/dist/redux/api/solidChatterMessageApi.ts +10 -1
  236. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  237. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  238. package/dist/resources/globals.css +5 -1
  239. package/dist/resources/shadcn-base.css +242 -81
  240. package/dist/resources/solid-responsive.css +22 -4
  241. package/dist/routes/AppEventListener.js +1 -1
  242. package/dist/routes/AppEventListener.js.map +1 -1
  243. package/dist/routes/AppEventListener.tsx +1 -1
  244. package/dist/routes/pages/admin/core/SettingsPage.js +2 -2
  245. package/dist/routes/pages/admin/core/SettingsPage.js.map +1 -1
  246. package/dist/routes/pages/admin/core/SettingsPage.tsx +2 -2
  247. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts +2 -0
  248. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts.map +1 -0
  249. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js +6 -0
  250. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js.map +1 -0
  251. package/dist/routes/pages/auth/InitiateFacebookOauthPage.tsx +5 -0
  252. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts +2 -0
  253. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts.map +1 -0
  254. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js +6 -0
  255. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js.map +1 -0
  256. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.tsx +5 -0
  257. package/dist/routes/solidRoutes.d.ts.map +1 -1
  258. package/dist/routes/solidRoutes.js +5 -1
  259. package/dist/routes/solidRoutes.js.map +1 -1
  260. package/dist/routes/solidRoutes.tsx +5 -1
  261. package/dist/routes/types.d.ts +1 -1
  262. package/dist/routes/types.d.ts.map +1 -1
  263. package/dist/routes/types.js.map +1 -1
  264. package/dist/routes/types.ts +2 -0
  265. package/dist/types/extension-registry.d.ts +1 -0
  266. package/dist/types/extension-registry.d.ts.map +1 -1
  267. package/dist/types/extension-registry.js +1 -0
  268. package/dist/types/extension-registry.js.map +1 -1
  269. package/dist/types/extension-registry.ts +1 -0
  270. package/dist/types/index.d.ts +2 -0
  271. package/dist/types/solid-core.d.ts +10 -0
  272. package/package.json +1 -1
  273. package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
  274. package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
  275. package/dist/components/auth/SolidOTPVerify.js +0 -67
  276. package/dist/components/auth/SolidOTPVerify.js.map +0 -1
  277. package/dist/components/auth/SolidOTPVerify.tsx +0 -133
  278. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
  279. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
  280. package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
  281. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
  282. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
  283. package/dist/nextAuth/authProviders.d.ts +0 -4
  284. package/dist/nextAuth/authProviders.d.ts.map +0 -1
  285. package/dist/nextAuth/authProviders.js +0 -198
  286. package/dist/nextAuth/authProviders.js.map +0 -1
  287. package/dist/nextAuth/authProviders.tsx +0 -232
  288. package/dist/nextAuth/handleLogout.d.ts +0 -2
  289. package/dist/nextAuth/handleLogout.d.ts.map +0 -1
  290. package/dist/nextAuth/handleLogout.js +0 -36
  291. package/dist/nextAuth/handleLogout.js.map +0 -1
  292. package/dist/nextAuth/handleLogout.tsx +0 -39
  293. package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
  294. package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
  295. package/dist/nextAuth/refreshAccessToken.js +0 -24
  296. package/dist/nextAuth/refreshAccessToken.js.map +0 -1
  297. package/dist/nextAuth/refreshAccessToken.tsx +0 -28
  298. package/dist/redux/features/settingsSlice.d.ts +0 -20
  299. package/dist/redux/features/settingsSlice.d.ts.map +0 -1
  300. package/dist/redux/features/settingsSlice.js +0 -39
  301. package/dist/redux/features/settingsSlice.js.map +0 -1
  302. package/dist/redux/features/settingsSlice.ts +0 -60
@@ -1 +1 @@
1
- {"version":3,"file":"SocialMediaLogin.js","sourceRoot":"","sources":["../../../src/components/common/SocialMediaLogin.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,MAAM,CAAC,IAAM,gBAAgB,GAAG;IAC5B,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,IAAM,2BAA2B,GAAG,UAAG,GAAG,CAAC,6BAA6B,CAAC,4BAAyB,CAAC;IAEnG,IAAM,mBAAmB,GAAG,UAAC,QAA0B;QACnD,QAAQ,CACJ,SAAS,CAAC;YACN,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,UAAG,QAAQ,WAAQ;YAC5B,MAAM,EAAE,mCAAmC;YAC3C,IAAI,EAAE,IAAI;SACb,CAAC,CACL,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CACH,cAAK,SAAS,EAAC,MAAM,YACjB,eAAK,SAAS,EAAC,wBAAwB,aACnC,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,cAAM,OAAA,mBAAmB,CAAC,OAAO,CAAC,EAA5B,CAA4B,gBAChC,gCAAgC,YAE3C,cAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,cAAc,iBAAa,MAAM,YAClF,eAAM,CAAC,EAAC,+hBAA+hB,GAAG,GACxiB,GACI,EAEd,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,cAAM,OAAA,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAxC,CAAwC,gBAC5C,mBAAmB,YAE9B,eAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,aAC1E,eAAM,CAAC,EAAC,+GAA+G,EAAC,IAAI,EAAC,SAAS,GAAG,EACzI,eAAM,CAAC,EAAC,0HAA0H,EAAC,IAAI,EAAC,SAAS,GAAG,EACpJ,eAAM,CAAC,EAAC,qEAAqE,EAAC,IAAI,EAAC,SAAS,GAAG,EAC/F,eAAM,CAAC,EAAC,6HAA6H,EAAC,IAAI,EAAC,SAAS,GAAG,IACrJ,GACI,EAEd,KAAC,WAAW,IACR,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,cAAM,OAAA,mBAAmB,CAAC,MAAM,CAAC,EAA3B,CAA2B,gBAC/B,+BAA+B,YAE1C,cAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,YAC1E,eAAM,CAAC,EAAC,oOAAoO,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAG,GAClU,GACI,IACZ,GACJ,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { useRouter } from \"../../hooks/useRouter\";\nimport { env } from \"../../adapters/env\";\nimport { SolidButton } from \"../shad-cn-ui\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../redux/features/toastSlice\";\n\nexport const SocialMediaLogin = () => {\n const router = useRouter();\n const dispatch = useDispatch();\n\n const googleApiConnectRedirectUrl = `${env(\"NEXT_PUBLIC_BACKEND_API_URL\")}/api/iam/google/connect`;\n\n const showNotEnabledToast = (provider: \"Apple\" | \"Meta\") => {\n dispatch(\n showToast({\n severity: \"info\",\n summary: `${provider} login`,\n detail: \"This provider is not enabled yet.\",\n life: 2200,\n })\n );\n };\n\n return (\n <div className=\"mt-4\">\n <div className=\"solid-auth-social-grid\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n className=\"solid-auth-social-btn\"\n onClick={() => showNotEnabledToast(\"Apple\")}\n aria-label=\"Login with Apple (not enabled)\"\n >\n <svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701\" />\n </svg>\n </SolidButton>\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n className=\"solid-auth-social-btn\"\n onClick={() => router.push(googleApiConnectRedirectUrl)}\n aria-label=\"Login with Google\"\n >\n <svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M21.8 12.23c0-.74-.07-1.45-.2-2.13H12v4.03h5.5a4.7 4.7 0 0 1-2.04 3.08v2.55h3.3c1.93-1.78 3.04-4.4 3.04-7.53z\" fill=\"#4285F4\" />\n <path d=\"M12 22c2.75 0 5.05-.91 6.73-2.47l-3.3-2.55c-.92.62-2.1.99-3.43.99-2.64 0-4.88-1.78-5.68-4.18H2.9v2.63A10 10 0 0 0 12 22z\" fill=\"#34A853\" />\n <path d=\"M6.32 13.79a6 6 0 0 1 0-3.58V7.58H2.9a10 10 0 0 0 0 8.84l3.42-2.63z\" fill=\"#FBBC05\" />\n <path d=\"M12 6.02c1.49 0 2.82.51 3.87 1.5l2.9-2.9C17.04 2.98 14.74 2 12 2A10 10 0 0 0 2.9 7.58l3.42 2.63c.8-2.4 3.04-4.19 5.68-4.19z\" fill=\"#EA4335\" />\n </svg>\n </SolidButton>\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n className=\"solid-auth-social-btn\"\n onClick={() => showNotEnabledToast(\"Meta\")}\n aria-label=\"Login with Meta (not enabled)\"\n >\n <svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M5.4 15.6c0-3.14 1.62-7.09 3.76-7.09 1.43 0 2.56 1.72 2.84 2.25.28-.53 1.41-2.25 2.84-2.25 2.14 0 3.76 3.95 3.76 7.09 0 1.79-.63 2.89-1.82 2.89-2.12 0-3.75-3.02-4.78-4.82-1.03 1.8-2.66 4.82-4.78 4.82-1.19 0-1.82-1.1-1.82-2.89z\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </SolidButton>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SocialMediaLogin.js","sourceRoot":"","sources":["../../../src/components/common/SocialMediaLogin.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useRouter } from \"../../hooks/useRouter\";\nimport { env } from \"../../adapters/env\";\nimport { SolidButton } from \"../shad-cn-ui\";\n\ntype SocialMediaLoginProps = {\n googleEnabled?: boolean;\n facebookEnabled?: boolean;\n appleEnabled?: boolean;\n microsoftEnabled?: boolean;\n};\n\nexport const SocialMediaLogin = ({\n googleEnabled = true,\n facebookEnabled = true,\n appleEnabled = true,\n microsoftEnabled = true,\n}: SocialMediaLoginProps) => {\n const router = useRouter();\n\n const googleApiConnectRedirectUrl = `${env(\"NEXT_PUBLIC_BACKEND_API_URL\")}/api/iam/google/connect`;\n const facebookApiConnectRedirectUrl = `${env(\"NEXT_PUBLIC_BACKEND_API_URL\")}/api/iam/facebook/connect`;\n const appleApiConnectRedirectUrl = `${env(\"NEXT_PUBLIC_BACKEND_API_URL\")}/api/iam/apple/connect`;\n const microsoftApiConnectRedirectUrl = `${env(\"NEXT_PUBLIC_BACKEND_API_URL\")}/api/iam/microsoft/connect`;\n\n return (\n <div className=\"mt-4\">\n <div className=\"solid-auth-social-grid\">\n {appleEnabled && (\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n className=\"solid-auth-social-btn\"\n onClick={() => router.push(appleApiConnectRedirectUrl)}\n aria-label=\"Login with Apple\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n width=\"18\"\n height=\"18\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d=\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701\" />\n </svg>\n </SolidButton>\n )}\n\n {googleEnabled && (\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n className=\"solid-auth-social-btn\"\n onClick={() => router.push(googleApiConnectRedirectUrl)}\n aria-label=\"Login with Google\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M21.8 12.23c0-.74-.07-1.45-.2-2.13H12v4.03h5.5a4.7 4.7 0 0 1-2.04 3.08v2.55h3.3c1.93-1.78 3.04-4.4 3.04-7.53z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 22c2.75 0 5.05-.91 6.73-2.47l-3.3-2.55c-.92.62-2.1.99-3.43.99-2.64 0-4.88-1.78-5.68-4.18H2.9v2.63A10 10 0 0 0 12 22z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M6.32 13.79a6 6 0 0 1 0-3.58V7.58H2.9a10 10 0 0 0 0 8.84l3.42-2.63z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 6.02c1.49 0 2.82.51 3.87 1.5l2.9-2.9C17.04 2.98 14.74 2 12 2A10 10 0 0 0 2.9 7.58l3.42 2.63c.8-2.4 3.04-4.19 5.68-4.19z\"\n fill=\"#EA4335\"\n />\n </svg>\n </SolidButton>\n )}\n\n {facebookEnabled && (\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n className=\"solid-auth-social-btn\"\n onClick={() => router.push(facebookApiConnectRedirectUrl)}\n aria-label=\"Login with Meta\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M5.4 15.6c0-3.14 1.62-7.09 3.76-7.09 1.43 0 2.56 1.72 2.84 2.25.28-.53 1.41-2.25 2.84-2.25 2.14 0 3.76 3.95 3.76 7.09 0 1.79-.63 2.89-1.82 2.89-2.12 0-3.75-3.02-4.78-4.82-1.03 1.8-2.66 4.82-4.78 4.82-1.19 0-1.82-1.1-1.82-2.89z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </SolidButton>\n )}\n\n {microsoftEnabled && (\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n className=\"solid-auth-social-btn\"\n onClick={() => router.push(microsoftApiConnectRedirectUrl)}\n aria-label=\"Login with Microsoft\"\n >\n <svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" aria-hidden=\"true\">\n <g transform=\"translate(2, 2)\">\n <rect width=\"9\" height=\"9\" x=\"0\" y=\"0\" fill=\"#f25022\" />\n <rect width=\"9\" height=\"9\" x=\"11\" y=\"0\" fill=\"#7fba00\" />\n <rect width=\"9\" height=\"9\" x=\"0\" y=\"11\" fill=\"#00a4ef\" />\n <rect width=\"9\" height=\"9\" x=\"11\" y=\"11\" fill=\"#ffb900\" />\n </g>\n </svg>\n </SolidButton>\n )}\n </div>\n </div>\n );\n};\n"]}
@@ -1,68 +1,130 @@
1
1
  import { useRouter } from "../../hooks/useRouter";
2
2
  import { env } from "../../adapters/env";
3
3
  import { SolidButton } from "../shad-cn-ui";
4
- import { useDispatch } from "react-redux";
5
- import { showToast } from "../../redux/features/toastSlice";
6
4
 
7
- export const SocialMediaLogin = () => {
8
- const router = useRouter();
9
- const dispatch = useDispatch();
5
+ type SocialMediaLoginProps = {
6
+ googleEnabled?: boolean;
7
+ facebookEnabled?: boolean;
8
+ appleEnabled?: boolean;
9
+ microsoftEnabled?: boolean;
10
+ };
11
+
12
+ export const SocialMediaLogin = ({
13
+ googleEnabled = true,
14
+ facebookEnabled = true,
15
+ appleEnabled = true,
16
+ microsoftEnabled = true,
17
+ }: SocialMediaLoginProps) => {
18
+ const router = useRouter();
10
19
 
11
- const googleApiConnectRedirectUrl = `${env("NEXT_PUBLIC_BACKEND_API_URL")}/api/iam/google/connect`;
20
+ const googleApiConnectRedirectUrl = `${env("NEXT_PUBLIC_BACKEND_API_URL")}/api/iam/google/connect`;
21
+ const facebookApiConnectRedirectUrl = `${env("NEXT_PUBLIC_BACKEND_API_URL")}/api/iam/facebook/connect`;
22
+ const appleApiConnectRedirectUrl = `${env("NEXT_PUBLIC_BACKEND_API_URL")}/api/iam/apple/connect`;
23
+ const microsoftApiConnectRedirectUrl = `${env("NEXT_PUBLIC_BACKEND_API_URL")}/api/iam/microsoft/connect`;
12
24
 
13
- const showNotEnabledToast = (provider: "Apple" | "Meta") => {
14
- dispatch(
15
- showToast({
16
- severity: "info",
17
- summary: `${provider} login`,
18
- detail: "This provider is not enabled yet.",
19
- life: 2200,
20
- })
21
- );
22
- };
25
+ return (
26
+ <div className="mt-4">
27
+ <div className="solid-auth-social-grid">
28
+ {appleEnabled && (
29
+ <SolidButton
30
+ type="button"
31
+ variant="outline"
32
+ className="solid-auth-social-btn"
33
+ onClick={() => router.push(appleApiConnectRedirectUrl)}
34
+ aria-label="Login with Apple"
35
+ >
36
+ <svg
37
+ viewBox="0 0 24 24"
38
+ width="18"
39
+ height="18"
40
+ fill="currentColor"
41
+ aria-hidden="true"
42
+ >
43
+ <path d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701" />
44
+ </svg>
45
+ </SolidButton>
46
+ )}
23
47
 
24
- return (
25
- <div className="mt-4">
26
- <div className="solid-auth-social-grid">
27
- <SolidButton
28
- type="button"
29
- variant="outline"
30
- className="solid-auth-social-btn"
31
- onClick={() => showNotEnabledToast("Apple")}
32
- aria-label="Login with Apple (not enabled)"
33
- >
34
- <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor" aria-hidden="true">
35
- <path d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701" />
36
- </svg>
37
- </SolidButton>
48
+ {googleEnabled && (
49
+ <SolidButton
50
+ type="button"
51
+ variant="outline"
52
+ className="solid-auth-social-btn"
53
+ onClick={() => router.push(googleApiConnectRedirectUrl)}
54
+ aria-label="Login with Google"
55
+ >
56
+ <svg
57
+ viewBox="0 0 24 24"
58
+ width="18"
59
+ height="18"
60
+ fill="none"
61
+ aria-hidden="true"
62
+ >
63
+ <path
64
+ d="M21.8 12.23c0-.74-.07-1.45-.2-2.13H12v4.03h5.5a4.7 4.7 0 0 1-2.04 3.08v2.55h3.3c1.93-1.78 3.04-4.4 3.04-7.53z"
65
+ fill="#4285F4"
66
+ />
67
+ <path
68
+ d="M12 22c2.75 0 5.05-.91 6.73-2.47l-3.3-2.55c-.92.62-2.1.99-3.43.99-2.64 0-4.88-1.78-5.68-4.18H2.9v2.63A10 10 0 0 0 12 22z"
69
+ fill="#34A853"
70
+ />
71
+ <path
72
+ d="M6.32 13.79a6 6 0 0 1 0-3.58V7.58H2.9a10 10 0 0 0 0 8.84l3.42-2.63z"
73
+ fill="#FBBC05"
74
+ />
75
+ <path
76
+ d="M12 6.02c1.49 0 2.82.51 3.87 1.5l2.9-2.9C17.04 2.98 14.74 2 12 2A10 10 0 0 0 2.9 7.58l3.42 2.63c.8-2.4 3.04-4.19 5.68-4.19z"
77
+ fill="#EA4335"
78
+ />
79
+ </svg>
80
+ </SolidButton>
81
+ )}
38
82
 
39
- <SolidButton
40
- type="button"
41
- variant="outline"
42
- className="solid-auth-social-btn"
43
- onClick={() => router.push(googleApiConnectRedirectUrl)}
44
- aria-label="Login with Google"
45
- >
46
- <svg viewBox="0 0 24 24" width="18" height="18" fill="none" aria-hidden="true">
47
- <path d="M21.8 12.23c0-.74-.07-1.45-.2-2.13H12v4.03h5.5a4.7 4.7 0 0 1-2.04 3.08v2.55h3.3c1.93-1.78 3.04-4.4 3.04-7.53z" fill="#4285F4" />
48
- <path d="M12 22c2.75 0 5.05-.91 6.73-2.47l-3.3-2.55c-.92.62-2.1.99-3.43.99-2.64 0-4.88-1.78-5.68-4.18H2.9v2.63A10 10 0 0 0 12 22z" fill="#34A853" />
49
- <path d="M6.32 13.79a6 6 0 0 1 0-3.58V7.58H2.9a10 10 0 0 0 0 8.84l3.42-2.63z" fill="#FBBC05" />
50
- <path d="M12 6.02c1.49 0 2.82.51 3.87 1.5l2.9-2.9C17.04 2.98 14.74 2 12 2A10 10 0 0 0 2.9 7.58l3.42 2.63c.8-2.4 3.04-4.19 5.68-4.19z" fill="#EA4335" />
51
- </svg>
52
- </SolidButton>
83
+ {facebookEnabled && (
84
+ <SolidButton
85
+ type="button"
86
+ variant="outline"
87
+ className="solid-auth-social-btn"
88
+ onClick={() => router.push(facebookApiConnectRedirectUrl)}
89
+ aria-label="Login with Meta"
90
+ >
91
+ <svg
92
+ viewBox="0 0 24 24"
93
+ width="18"
94
+ height="18"
95
+ fill="none"
96
+ aria-hidden="true"
97
+ >
98
+ <path
99
+ d="M5.4 15.6c0-3.14 1.62-7.09 3.76-7.09 1.43 0 2.56 1.72 2.84 2.25.28-.53 1.41-2.25 2.84-2.25 2.14 0 3.76 3.95 3.76 7.09 0 1.79-.63 2.89-1.82 2.89-2.12 0-3.75-3.02-4.78-4.82-1.03 1.8-2.66 4.82-4.78 4.82-1.19 0-1.82-1.1-1.82-2.89z"
100
+ stroke="currentColor"
101
+ strokeWidth="1.8"
102
+ strokeLinecap="round"
103
+ strokeLinejoin="round"
104
+ />
105
+ </svg>
106
+ </SolidButton>
107
+ )}
53
108
 
54
- <SolidButton
55
- type="button"
56
- variant="outline"
57
- className="solid-auth-social-btn"
58
- onClick={() => showNotEnabledToast("Meta")}
59
- aria-label="Login with Meta (not enabled)"
60
- >
61
- <svg viewBox="0 0 24 24" width="18" height="18" fill="none" aria-hidden="true">
62
- <path d="M5.4 15.6c0-3.14 1.62-7.09 3.76-7.09 1.43 0 2.56 1.72 2.84 2.25.28-.53 1.41-2.25 2.84-2.25 2.14 0 3.76 3.95 3.76 7.09 0 1.79-.63 2.89-1.82 2.89-2.12 0-3.75-3.02-4.78-4.82-1.03 1.8-2.66 4.82-4.78 4.82-1.19 0-1.82-1.1-1.82-2.89z" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round" />
63
- </svg>
64
- </SolidButton>
65
- </div>
66
- </div>
67
- );
109
+ {microsoftEnabled && (
110
+ <SolidButton
111
+ type="button"
112
+ variant="outline"
113
+ className="solid-auth-social-btn"
114
+ onClick={() => router.push(microsoftApiConnectRedirectUrl)}
115
+ aria-label="Login with Microsoft"
116
+ >
117
+ <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
118
+ <g transform="translate(2, 2)">
119
+ <rect width="9" height="9" x="0" y="0" fill="#f25022" />
120
+ <rect width="9" height="9" x="11" y="0" fill="#7fba00" />
121
+ <rect width="9" height="9" x="0" y="11" fill="#00a4ef" />
122
+ <rect width="9" height="9" x="11" y="11" fill="#ffb900" />
123
+ </g>
124
+ </svg>
125
+ </SolidButton>
126
+ )}
127
+ </div>
128
+ </div>
129
+ );
68
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SolidExport.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidExport.tsx"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,CAAC;AAgF5B,eAAO,MAAM,WAAW,kCAAmC,GAAG,mDAga7D,CAAC"}
1
+ {"version":3,"file":"SolidExport.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidExport.tsx"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,CAAC;AAgF5B,eAAO,MAAM,WAAW,kCAAmC,GAAG,mDAia7D,CAAC"}
@@ -290,7 +290,7 @@ export var SolidExport = function (_a) {
290
290
  var next = FORMAT_OPTIONS.find(function (option) { return option.code === event.value; });
291
291
  if (next)
292
292
  setSelectedFormat(next);
293
- }, placeholder: "Select format" })] }), _jsxs("label", { className: "solid-export-field solid-export-field--template", children: [_jsx("span", { className: "solid-export-field-label", children: "Template" }), _jsx(SolidSelect, { value: (_c = selectedTemplate === null || selectedTemplate === void 0 ? void 0 : selectedTemplate.code) !== null && _c !== void 0 ? _c : "", options: resolvedTemplateOptions.map(function (option) { return ({ label: option.name, value: option.code }); }), onChange: function (event) { return handleTemplateSelect(event.value); }, placeholder: resolvedTemplateOptions.length ? "Choose template" : "No saved templates" })] })] }), _jsxs("div", { className: "solid-export-toolbar-side", children: [_jsx("div", { className: "solid-export-toolbar-options", children: _jsx(SolidCheckbox, { checked: checkApplyFilter, onChange: function (event) { return setCheckedApplyFilter(event.target.checked); }, label: "Apply Filters" }) }), _jsxs("div", { className: "solid-export-toolbar-actions", children: [_jsx(SolidButton, { variant: "outline", size: "small", leftIcon: _jsx(Save, { size: 14 }), onClick: function () { return setIsSaveDialogVisible(true); }, children: "Save Template" }), _jsx(SolidButton, { variant: "ghost", size: "small", leftIcon: _jsx(Trash2, { size: 14 }), onClick: handleDeleteTemplate, disabled: !selectedTemplate || isDeletingTemplate, children: "Delete" }), _jsx(SolidButton, { size: "small", leftIcon: _jsx(Download, { size: 14 }), onClick: handleDownload, disabled: selectedColumns.length === 0, children: "Export" })] })] })] }), _jsxs("div", { className: "solid-export-summary", children: [_jsx("div", { className: "solid-export-summary-card", children: _jsxs("div", { className: "solid-export-summary-title-row", children: [_jsx("div", { className: "solid-export-summary-format-icon", children: selectedFormatMeta.icon }), _jsxs("div", { className: "solid-export-summary-copy-block", children: [_jsxs("div", { className: "solid-export-summary-title", children: [selectedFormatMeta.label, " export"] }), _jsxs("div", { className: "solid-export-summary-meta", children: [_jsx("span", { className: "solid-export-summary-copy", children: selectionSummary }), _jsx("span", { className: "solid-export-summary-dot", "aria-hidden": "true" }), _jsx("span", { className: "solid-export-summary-copy", children: filterSummary })] })] })] }) }), _jsxs("div", { className: "solid-export-summary-chip", children: [_jsx(Check, { size: 13 }), selectedTemplateFieldsCount, " field", selectedTemplateFieldsCount === 1 ? "" : "s", " selected"] })] }), _jsxs("div", { className: "solid-export-builder", children: [_jsxs("div", { className: "solid-export-pane", children: [_jsxs("div", { className: "solid-export-pane-header", children: [_jsxs("div", { children: [_jsx("div", { className: "solid-export-pane-title", children: "Available Fields" }), _jsx("div", { className: "solid-export-pane-copy", children: "Add fields to include in the export." })] }), _jsx("div", { className: "solid-export-pane-count", children: availableColumns.length })] }), _jsx("div", { className: "solid-export-list", children: availableColumns.length ? (availableColumns.map(function (item) { return (_jsxs("div", { className: "solid-export-list-row", children: [_jsx("div", { className: "solid-export-list-row-copy", children: _jsxs("div", { className: "solid-export-list-row-title", children: [item.name, _jsxs("span", { className: "solid-export-list-row-key", children: ["(", item.key, ")"] })] }) }), _jsx(SolidButton, { variant: "ghost", size: "small", className: "solid-export-list-row-action", leftIcon: _jsx(Plus, { size: 14 }), "aria-label": "Add ".concat(item.name), tooltip: "Add ".concat(item.name), onClick: function () { return moveToSelected(item); } })] }, item.key)); })) : (_jsxs("div", { className: "solid-export-empty", children: [_jsx("div", { className: "solid-export-empty-title", children: "All fields are already selected" }), _jsx("div", { className: "solid-export-empty-copy", children: "Remove a field from the export set to make it available here again." })] })) })] }), _jsxs("div", { className: "solid-export-pane", children: [_jsxs("div", { className: "solid-export-pane-header", children: [_jsxs("div", { children: [_jsx("div", { className: "solid-export-pane-title", children: "Selected Fields" }), _jsx("div", { className: "solid-export-pane-copy", children: "These columns will be exported in the file." })] }), _jsx("div", { className: "solid-export-pane-count is-selected", children: selectedColumns.length })] }), _jsx("div", { className: "solid-export-list", children: selectedColumns.length ? (selectedColumns.map(function (item) { return (_jsxs("div", { className: "solid-export-list-row", children: [_jsx("div", { className: "solid-export-list-row-copy", children: _jsxs("div", { className: "solid-export-list-row-title", children: [item.name, _jsxs("span", { className: "solid-export-list-row-key", children: ["(", item.key, ")"] })] }) }), _jsx(SolidButton, { variant: "ghost", size: "small", className: "solid-export-list-row-action is-remove", leftIcon: _jsx(Trash2, { size: 14 }), "aria-label": "Remove ".concat(item.name), tooltip: "Remove ".concat(item.name), onClick: function () { return moveToAvailable(item); } })] }, item.key)); })) : (_jsxs("div", { className: "solid-export-empty", children: [_jsx("div", { className: "solid-export-empty-title", children: "No fields selected yet" }), _jsx("div", { className: "solid-export-empty-copy", children: "Pick at least one field before starting the export." })] })) })] })] })] }), _jsxs(SolidDialog, { open: isSaveDialogVisible, onOpenChange: setIsSaveDialogVisible, className: "solid-export-save-dialog", style: { width: "min(420px, calc(100vw - 24px))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Save Export Template" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Save the current format and selected fields so this export can be reused later." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsxs("label", { className: "solid-export-field solid-export-save-field", children: [_jsx("span", { className: "solid-export-field-label", children: "Template name" }), _jsx(SolidInput, { value: newTemplateName, onChange: function (event) { return setNewTemplateName(event.target.value); }, placeholder: "Enter template name", autoFocus: true })] }) }), _jsxs(SolidDialogFooter, { className: "solid-export-save-footer", children: [_jsx(SolidButton, { type: "button", size: "small", variant: "outline", onClick: function () {
293
+ }, placeholder: "Select format" })] }), _jsxs("label", { className: "solid-export-field solid-export-field--template", children: [_jsx("span", { className: "solid-export-field-label", children: "Template" }), _jsx(SolidSelect, { value: (_c = selectedTemplate === null || selectedTemplate === void 0 ? void 0 : selectedTemplate.code) !== null && _c !== void 0 ? _c : "", options: resolvedTemplateOptions.map(function (option) { return ({ label: option.name, value: option.code }); }), onChange: function (event) { return handleTemplateSelect(event.value); }, placeholder: resolvedTemplateOptions.length ? "Choose template" : "No saved templates" })] })] }), _jsxs("div", { className: "solid-export-toolbar-side", children: [_jsx("div", { className: "solid-export-toolbar-options", children: _jsx(SolidCheckbox, { checked: checkApplyFilter, onChange: function (event) { return setCheckedApplyFilter(event.target.checked); }, label: "Apply Filters" }) }), _jsxs("div", { className: "solid-export-toolbar-actions", children: [_jsx(SolidButton, { variant: "outline", size: "small", leftIcon: _jsx(Save, { size: 14 }), onClick: function () { return setIsSaveDialogVisible(true); }, children: "Save Template" }), _jsx(SolidButton, { variant: "outline", size: "small", leftIcon: _jsx(Trash2, { size: 14 }), onClick: handleDeleteTemplate, disabled: !selectedTemplate || isDeletingTemplate, className: "solid-export-delete-btn", children: "Delete" }), _jsx(SolidButton, { size: "small", leftIcon: _jsx(Download, { size: 14 }), onClick: handleDownload, disabled: selectedColumns.length === 0, children: "Export" })] })] })] }), _jsxs("div", { className: "solid-export-summary", children: [_jsx("div", { className: "solid-export-summary-card", children: _jsxs("div", { className: "solid-export-summary-title-row", children: [_jsx("div", { className: "solid-export-summary-format-icon", children: selectedFormatMeta.icon }), _jsxs("div", { className: "solid-export-summary-copy-block", children: [_jsxs("div", { className: "solid-export-summary-title", children: [selectedFormatMeta.label, " export"] }), _jsxs("div", { className: "solid-export-summary-meta", children: [_jsx("span", { className: "solid-export-summary-copy", children: selectionSummary }), _jsx("span", { className: "solid-export-summary-dot", "aria-hidden": "true" }), _jsx("span", { className: "solid-export-summary-copy", children: filterSummary })] })] })] }) }), _jsxs("div", { className: "solid-export-summary-chip", children: [_jsx(Check, { size: 13 }), selectedTemplateFieldsCount, " field", selectedTemplateFieldsCount === 1 ? "" : "s", " selected"] })] }), _jsxs("div", { className: "solid-export-builder", children: [_jsxs("div", { className: "solid-export-pane", children: [_jsxs("div", { className: "solid-export-pane-header", children: [_jsxs("div", { children: [_jsx("div", { className: "solid-export-pane-title", children: "Available Fields" }), _jsx("div", { className: "solid-export-pane-copy", children: "Add fields to include in the export." })] }), _jsx("div", { className: "solid-export-pane-count", children: availableColumns.length })] }), _jsx("div", { className: "solid-export-list", children: availableColumns.length ? (availableColumns.map(function (item) { return (_jsxs("div", { className: "solid-export-list-row", children: [_jsx("div", { className: "solid-export-list-row-copy", children: _jsxs("div", { className: "solid-export-list-row-title", children: [item.name, _jsxs("span", { className: "solid-export-list-row-key", children: ["(", item.key, ")"] })] }) }), _jsx(SolidButton, { variant: "ghost", size: "small", className: "solid-export-list-row-action", leftIcon: _jsx(Plus, { size: 14 }), "aria-label": "Add ".concat(item.name), tooltip: "Add ".concat(item.name), onClick: function () { return moveToSelected(item); } })] }, item.key)); })) : (_jsxs("div", { className: "solid-export-empty", children: [_jsx("div", { className: "solid-export-empty-title", children: "All fields are already selected" }), _jsx("div", { className: "solid-export-empty-copy", children: "Remove a field from the export set to make it available here again." })] })) })] }), _jsxs("div", { className: "solid-export-pane", children: [_jsxs("div", { className: "solid-export-pane-header", children: [_jsxs("div", { children: [_jsx("div", { className: "solid-export-pane-title", children: "Selected Fields" }), _jsx("div", { className: "solid-export-pane-copy", children: "These columns will be exported in the file." })] }), _jsx("div", { className: "solid-export-pane-count is-selected", children: selectedColumns.length })] }), _jsx("div", { className: "solid-export-list", children: selectedColumns.length ? (selectedColumns.map(function (item) { return (_jsxs("div", { className: "solid-export-list-row", children: [_jsx("div", { className: "solid-export-list-row-copy", children: _jsxs("div", { className: "solid-export-list-row-title", children: [item.name, _jsxs("span", { className: "solid-export-list-row-key", children: ["(", item.key, ")"] })] }) }), _jsx(SolidButton, { variant: "ghost", size: "small", className: "solid-export-list-row-action is-remove", leftIcon: _jsx(Trash2, { size: 14 }), "aria-label": "Remove ".concat(item.name), tooltip: "Remove ".concat(item.name), onClick: function () { return moveToAvailable(item); } })] }, item.key)); })) : (_jsxs("div", { className: "solid-export-empty", children: [_jsx("div", { className: "solid-export-empty-title", children: "No fields selected yet" }), _jsx("div", { className: "solid-export-empty-copy", children: "Pick at least one field before starting the export." })] })) })] })] })] }), _jsxs(SolidDialog, { open: isSaveDialogVisible, onOpenChange: setIsSaveDialogVisible, className: "solid-export-save-dialog", style: { width: "min(420px, calc(100vw - 24px))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Save Export Template" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Save the current format and selected fields so this export can be reused later." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsxs("label", { className: "solid-export-field solid-export-save-field", children: [_jsx("span", { className: "solid-export-field-label", children: "Template name" }), _jsx(SolidInput, { value: newTemplateName, onChange: function (event) { return setNewTemplateName(event.target.value); }, placeholder: "Enter template name", autoFocus: true })] }) }), _jsxs(SolidDialogFooter, { className: "solid-export-save-footer", children: [_jsx(SolidButton, { type: "button", size: "small", variant: "outline", onClick: function () {
294
294
  setNewTemplateName("");
295
295
  setIsSaveDialogVisible(false);
296
296
  }, children: "Cancel" }), _jsx(SolidButton, { type: "button", size: "small", loading: isSavingTemplate, disabled: !newTemplateName.trim() || isSavingTemplate, onClick: handleAddTemplate, children: "Save Template" })] })] }), _jsx(DownloadProgressToast, { visible: showProgress, progress: progress, message: message, submessage: messageDescription, status: status, onClose: function () { return setShowProgress(false); } })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SolidExport.js","sourceRoot":"","sources":["../../../src/components/common/SolidExport.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport { Check, Download, FileSpreadsheet, FileText, Plus, Save, Trash2 } from \"lucide-react\";\nimport \"./solid-export.css\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../redux/features/toastSlice\";\nimport {\n useCreateExportTemplateMutation,\n useDeleteExportTemplateMutation,\n useGetExportTemplatesQuery,\n} from \"../../redux/api/exportTemplateApi\";\nimport { downloadFileWithProgress } from \"../../helpers/downloadFileWithProgress\";\nimport { DownloadProgressToast } from \"./DownloadProgressToast\";\nimport { ERROR_MESSAGES } from \"../../constants/error-messages\";\nimport {\n SolidButton,\n SolidCheckbox,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidInput,\n SolidSelect,\n} from \"../shad-cn-ui\";\n\ninterface FieldMetadata {\n displayName: string;\n type: string;\n}\n\ninterface FilterColumn {\n name: string;\n key: string;\n}\n\ninterface TemplateOption {\n name: string;\n code: string;\n fields: string[] | string;\n templateFormat: string;\n}\n\ninterface FormatOption {\n name: string;\n code: string;\n}\n\nconst EXCLUDED_TYPES = new Set([\"mediaSingle\", \"mediaMultiple\"]);\nconst FORMAT_OPTIONS: FormatOption[] = [\n { name: \"CSV\", code: \"csv\" },\n { name: \"Excel\", code: \"excel\" },\n];\n\nfunction parseTemplateFields(value: string[] | string | undefined): string[] {\n if (Array.isArray(value)) return value;\n if (typeof value !== \"string\") return [];\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed : [];\n } catch (error) {\n console.error(ERROR_MESSAGES.PARSED_FIELD, error);\n return [];\n }\n}\n\nfunction exportFormatMeta(code?: string) {\n if (code === \"excel\") {\n return {\n label: \"Excel\",\n icon: <FileSpreadsheet size={14} />,\n };\n }\n\n return {\n label: \"CSV\",\n icon: <FileText size={14} />,\n };\n}\n\nexport const SolidExport = ({ listViewMetaData, filters }: any) => {\n const dispatch = useDispatch();\n\n if (!listViewMetaData?.data) return null;\n\n const solidView = listViewMetaData.data.solidView;\n const solidFieldsMetadata = listViewMetaData.data.solidFieldsMetadata as Record<string, FieldMetadata>;\n if (!solidView || !solidFieldsMetadata) return null;\n\n const layoutChildren = Array.isArray(solidView?.layout?.children) ? solidView.layout.children : [];\n const checkedFieldNames = useMemo(\n () =>\n new Set(\n layoutChildren\n .map((col: { attrs?: { name?: string } }) => col?.attrs?.name)\n .filter(Boolean)\n ),\n [layoutChildren]\n );\n\n const allColumns = useMemo<FilterColumn[]>(\n () =>\n Object.entries(solidFieldsMetadata)\n .filter(([, field]) => !EXCLUDED_TYPES.has(field.type))\n .map(([key, field]) => ({\n name: field.displayName,\n key,\n })),\n [solidFieldsMetadata]\n );\n\n const defaultSelectedColumns = useMemo(\n () => allColumns.filter((col) => checkedFieldNames.has(col.key)),\n [allColumns, checkedFieldNames]\n );\n\n const [selectedColumns, setSelectedColumns] = useState<FilterColumn[]>(defaultSelectedColumns);\n const [selectedTemplate, setSelectedTemplate] = useState<TemplateOption | null>(null);\n const [selectedFormat, setSelectedFormat] = useState<FormatOption>(FORMAT_OPTIONS[0]);\n const [isSaveDialogVisible, setIsSaveDialogVisible] = useState(false);\n const [newTemplateName, setNewTemplateName] = useState(\"\");\n const [progress, setProgress] = useState(0);\n const [showProgress, setShowProgress] = useState(false);\n const [message, setMessage] = useState(\"\");\n const [messageDescription, setMessageDescription] = useState(\"\");\n const [status, setStatus] = useState(\"In Progress\");\n const [checkApplyFilter, setCheckedApplyFilter] = useState(false);\n\n const [createExportTemplate, { isLoading: isSavingTemplate }] = useCreateExportTemplateMutation();\n const [deleteExportTemplate, { isLoading: isDeletingTemplate }] = useDeleteExportTemplateMutation();\n const { data: templatesData } = useGetExportTemplatesQuery({});\n\n const templateOptions = useMemo<TemplateOption[]>(() => {\n const records = templatesData?.records ?? [];\n return records.map((template: any) => ({\n name: template.templateName,\n code: String(template.id),\n fields: template.fields,\n templateFormat: template.templateFormat,\n }));\n }, [templatesData]);\n\n const resolvedTemplateOptions = useMemo(() => {\n if (!selectedTemplate) return templateOptions;\n if (templateOptions.some((template) => template.code === selectedTemplate.code)) return templateOptions;\n return [selectedTemplate, ...templateOptions];\n }, [selectedTemplate, templateOptions]);\n\n useEffect(() => {\n setSelectedColumns(defaultSelectedColumns);\n }, [defaultSelectedColumns]);\n\n const selectedKeys = new Set(selectedColumns.map((item) => item.key));\n const availableColumns = allColumns.filter((col) => !selectedKeys.has(col.key));\n\n const moveToSelected = (col: FilterColumn) => {\n setSelectedColumns((current) => (current.some((item) => item.key === col.key) ? current : [...current, col]));\n };\n\n const moveToAvailable = (col: FilterColumn) => {\n setSelectedColumns((current) => current.filter((item) => item.key !== col.key));\n };\n\n const handleTemplateSelect = (templateCode?: string) => {\n const nextTemplate = templateOptions.find((option) => option.code === templateCode) ?? null;\n setSelectedTemplate(nextTemplate);\n\n if (!nextTemplate) {\n setSelectedColumns(defaultSelectedColumns);\n setSelectedFormat(FORMAT_OPTIONS[0]);\n return;\n }\n\n const fields = parseTemplateFields(nextTemplate.fields);\n const resolvedColumns = fields\n .map((field) => allColumns.find((column) => column.key === field))\n .filter(Boolean) as FilterColumn[];\n\n setSelectedColumns(resolvedColumns);\n setSelectedFormat(\n FORMAT_OPTIONS.find((option) => option.code === nextTemplate.templateFormat) ?? FORMAT_OPTIONS[0]\n );\n };\n\n const handleAddTemplate = async () => {\n const trimmedName = newTemplateName.trim();\n if (!trimmedName) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n return;\n }\n\n const exportData = {\n templateName: trimmedName,\n templateFormat: selectedFormat.code,\n notifyOnEmail: true,\n fields: JSON.stringify(selectedColumns.map((col) => col.key)),\n modelMetadataId: solidView?.model?.id,\n };\n\n try {\n const response = await createExportTemplate(exportData).unwrap();\n setSelectedTemplate({\n name: trimmedName,\n code: String(response.data.id),\n fields: selectedColumns.map((col) => col.key),\n templateFormat: selectedFormat.code,\n });\n setNewTemplateName(\"\");\n setIsSaveDialogVisible(false);\n dispatch(showToast({ severity: \"success\", summary: \"Template Added\", detail: \"Template Saved\" }));\n } catch (error) {\n console.error(ERROR_MESSAGES.TEMPLATE_FAILED, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n }\n };\n\n const handleDeleteTemplate = async () => {\n if (!selectedTemplate?.code) return;\n try {\n await deleteExportTemplate(selectedTemplate.code).unwrap();\n setSelectedTemplate(null);\n dispatch(showToast({ severity: \"success\", summary: \"Template Deleted\", detail: \"Template Deleted\" }));\n } catch (error) {\n console.error(ERROR_MESSAGES.TEMPLATE_FAILED, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n }\n };\n\n const downloadHandlers = {\n onProgress: (value: number) => {\n setProgress(value);\n },\n onStatusChange: (statusType: \"In Progress\" | \"success\" | \"error\", msg: string, submsg: string) => {\n setStatus(statusType);\n setMessage(msg);\n setMessageDescription(submsg);\n setShowProgress(true);\n },\n };\n\n const handleDownload = async () => {\n const exportData = {\n id: selectedTemplate?.code ?? null,\n templateName: selectedTemplate?.name ?? null,\n templateFormat: selectedFormat.code,\n notifyOnEmail: true,\n fields: JSON.stringify(selectedColumns.map((col) => col.key)),\n modelMetadataId: solidView?.model?.id,\n };\n\n try {\n await downloadFileWithProgress(\n `/export-template/startExport/sync`,\n downloadHandlers,\n filters,\n checkApplyFilter,\n exportData\n );\n } catch (error) {\n console.error(ERROR_MESSAGES.DOWNLOAD_FAILED, error);\n }\n };\n\n const selectedTemplateFieldsCount = selectedColumns.length;\n const selectedFormatMeta = exportFormatMeta(selectedFormat.code);\n const selectionSummary = selectedTemplate ? `Template: ${selectedTemplate.name}` : \"Current field selection\";\n const filterSummary = checkApplyFilter ? \"Filters applied\" : \"All records\";\n\n return (\n <>\n <div className=\"solid-export-shell\">\n <div className=\"solid-export-toolbar\">\n <div className=\"solid-export-toolbar-main\">\n <label className=\"solid-export-field\">\n <span className=\"solid-export-field-label\">Format</span>\n <SolidSelect\n value={selectedFormat.code}\n options={FORMAT_OPTIONS.map((option) => ({ label: option.name, value: option.code }))}\n onChange={(event) => {\n const next = FORMAT_OPTIONS.find((option) => option.code === event.value);\n if (next) setSelectedFormat(next);\n }}\n placeholder=\"Select format\"\n />\n </label>\n\n <label className=\"solid-export-field solid-export-field--template\">\n <span className=\"solid-export-field-label\">Template</span>\n <SolidSelect\n value={selectedTemplate?.code ?? \"\"}\n options={resolvedTemplateOptions.map((option) => ({ label: option.name, value: option.code }))}\n onChange={(event) => handleTemplateSelect(event.value)}\n placeholder={resolvedTemplateOptions.length ? \"Choose template\" : \"No saved templates\"}\n />\n </label>\n </div>\n\n <div className=\"solid-export-toolbar-side\">\n <div className=\"solid-export-toolbar-options\">\n <SolidCheckbox\n checked={checkApplyFilter}\n onChange={(event) => setCheckedApplyFilter(event.target.checked)}\n label=\"Apply Filters\"\n />\n </div>\n <div className=\"solid-export-toolbar-actions\">\n <SolidButton\n variant=\"outline\"\n size=\"small\"\n leftIcon={<Save size={14} />}\n onClick={() => setIsSaveDialogVisible(true)}\n >\n Save Template\n </SolidButton>\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n leftIcon={<Trash2 size={14} />}\n onClick={handleDeleteTemplate}\n disabled={!selectedTemplate || isDeletingTemplate}\n >\n Delete\n </SolidButton>\n <SolidButton\n size=\"small\"\n leftIcon={<Download size={14} />}\n onClick={handleDownload}\n disabled={selectedColumns.length === 0}\n >\n Export\n </SolidButton>\n </div>\n </div>\n </div>\n\n <div className=\"solid-export-summary\">\n <div className=\"solid-export-summary-card\">\n <div className=\"solid-export-summary-title-row\">\n <div className=\"solid-export-summary-format-icon\">{selectedFormatMeta.icon}</div>\n <div className=\"solid-export-summary-copy-block\">\n <div className=\"solid-export-summary-title\">{selectedFormatMeta.label} export</div>\n <div className=\"solid-export-summary-meta\">\n <span className=\"solid-export-summary-copy\">{selectionSummary}</span>\n <span className=\"solid-export-summary-dot\" aria-hidden=\"true\" />\n <span className=\"solid-export-summary-copy\">{filterSummary}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"solid-export-summary-chip\">\n <Check size={13} />\n {selectedTemplateFieldsCount} field{selectedTemplateFieldsCount === 1 ? \"\" : \"s\"} selected\n </div>\n </div>\n\n <div className=\"solid-export-builder\">\n <div className=\"solid-export-pane\">\n <div className=\"solid-export-pane-header\">\n <div>\n <div className=\"solid-export-pane-title\">Available Fields</div>\n <div className=\"solid-export-pane-copy\">Add fields to include in the export.</div>\n </div>\n <div className=\"solid-export-pane-count\">{availableColumns.length}</div>\n </div>\n <div className=\"solid-export-list\">\n {availableColumns.length ? (\n availableColumns.map((item) => (\n <div key={item.key} className=\"solid-export-list-row\">\n <div className=\"solid-export-list-row-copy\">\n <div className=\"solid-export-list-row-title\">\n {item.name}\n <span className=\"solid-export-list-row-key\">({item.key})</span>\n </div>\n </div>\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n className=\"solid-export-list-row-action\"\n leftIcon={<Plus size={14} />}\n aria-label={`Add ${item.name}`}\n tooltip={`Add ${item.name}`}\n onClick={() => moveToSelected(item)}\n />\n </div>\n ))\n ) : (\n <div className=\"solid-export-empty\">\n <div className=\"solid-export-empty-title\">All fields are already selected</div>\n <div className=\"solid-export-empty-copy\">Remove a field from the export set to make it available here again.</div>\n </div>\n )}\n </div>\n </div>\n\n <div className=\"solid-export-pane\">\n <div className=\"solid-export-pane-header\">\n <div>\n <div className=\"solid-export-pane-title\">Selected Fields</div>\n <div className=\"solid-export-pane-copy\">These columns will be exported in the file.</div>\n </div>\n <div className=\"solid-export-pane-count is-selected\">{selectedColumns.length}</div>\n </div>\n <div className=\"solid-export-list\">\n {selectedColumns.length ? (\n selectedColumns.map((item) => (\n <div key={item.key} className=\"solid-export-list-row\">\n <div className=\"solid-export-list-row-copy\">\n <div className=\"solid-export-list-row-title\">\n {item.name}\n <span className=\"solid-export-list-row-key\">({item.key})</span>\n </div>\n </div>\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n className=\"solid-export-list-row-action is-remove\"\n leftIcon={<Trash2 size={14} />}\n aria-label={`Remove ${item.name}`}\n tooltip={`Remove ${item.name}`}\n onClick={() => moveToAvailable(item)}\n />\n </div>\n ))\n ) : (\n <div className=\"solid-export-empty\">\n <div className=\"solid-export-empty-title\">No fields selected yet</div>\n <div className=\"solid-export-empty-copy\">Pick at least one field before starting the export.</div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n\n <SolidDialog\n open={isSaveDialogVisible}\n onOpenChange={setIsSaveDialogVisible}\n className=\"solid-export-save-dialog\"\n style={{ width: \"min(420px, calc(100vw - 24px))\" }}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Save Export Template</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Save the current format and selected fields so this export can be reused later.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <label className=\"solid-export-field solid-export-save-field\">\n <span className=\"solid-export-field-label\">Template name</span>\n <SolidInput\n value={newTemplateName}\n onChange={(event) => setNewTemplateName(event.target.value)}\n placeholder=\"Enter template name\"\n autoFocus\n />\n </label>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-export-save-footer\">\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={() => {\n setNewTemplateName(\"\");\n setIsSaveDialogVisible(false);\n }}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n size=\"small\"\n loading={isSavingTemplate}\n disabled={!newTemplateName.trim() || isSavingTemplate}\n onClick={handleAddTemplate}\n >\n Save Template\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n <DownloadProgressToast\n visible={showProgress}\n progress={progress}\n message={message}\n submessage={messageDescription}\n status={status}\n onClose={() => setShowProgress(false)}\n />\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidExport.js","sourceRoot":"","sources":["../../../src/components/common/SolidExport.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport { Check, Download, FileSpreadsheet, FileText, Plus, Save, Trash2 } from \"lucide-react\";\nimport \"./solid-export.css\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../redux/features/toastSlice\";\nimport {\n useCreateExportTemplateMutation,\n useDeleteExportTemplateMutation,\n useGetExportTemplatesQuery,\n} from \"../../redux/api/exportTemplateApi\";\nimport { downloadFileWithProgress } from \"../../helpers/downloadFileWithProgress\";\nimport { DownloadProgressToast } from \"./DownloadProgressToast\";\nimport { ERROR_MESSAGES } from \"../../constants/error-messages\";\nimport {\n SolidButton,\n SolidCheckbox,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidInput,\n SolidSelect,\n} from \"../shad-cn-ui\";\n\ninterface FieldMetadata {\n displayName: string;\n type: string;\n}\n\ninterface FilterColumn {\n name: string;\n key: string;\n}\n\ninterface TemplateOption {\n name: string;\n code: string;\n fields: string[] | string;\n templateFormat: string;\n}\n\ninterface FormatOption {\n name: string;\n code: string;\n}\n\nconst EXCLUDED_TYPES = new Set([\"mediaSingle\", \"mediaMultiple\"]);\nconst FORMAT_OPTIONS: FormatOption[] = [\n { name: \"CSV\", code: \"csv\" },\n { name: \"Excel\", code: \"excel\" },\n];\n\nfunction parseTemplateFields(value: string[] | string | undefined): string[] {\n if (Array.isArray(value)) return value;\n if (typeof value !== \"string\") return [];\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed : [];\n } catch (error) {\n console.error(ERROR_MESSAGES.PARSED_FIELD, error);\n return [];\n }\n}\n\nfunction exportFormatMeta(code?: string) {\n if (code === \"excel\") {\n return {\n label: \"Excel\",\n icon: <FileSpreadsheet size={14} />,\n };\n }\n\n return {\n label: \"CSV\",\n icon: <FileText size={14} />,\n };\n}\n\nexport const SolidExport = ({ listViewMetaData, filters }: any) => {\n const dispatch = useDispatch();\n\n if (!listViewMetaData?.data) return null;\n\n const solidView = listViewMetaData.data.solidView;\n const solidFieldsMetadata = listViewMetaData.data.solidFieldsMetadata as Record<string, FieldMetadata>;\n if (!solidView || !solidFieldsMetadata) return null;\n\n const layoutChildren = Array.isArray(solidView?.layout?.children) ? solidView.layout.children : [];\n const checkedFieldNames = useMemo(\n () =>\n new Set(\n layoutChildren\n .map((col: { attrs?: { name?: string } }) => col?.attrs?.name)\n .filter(Boolean)\n ),\n [layoutChildren]\n );\n\n const allColumns = useMemo<FilterColumn[]>(\n () =>\n Object.entries(solidFieldsMetadata)\n .filter(([, field]) => !EXCLUDED_TYPES.has(field.type))\n .map(([key, field]) => ({\n name: field.displayName,\n key,\n })),\n [solidFieldsMetadata]\n );\n\n const defaultSelectedColumns = useMemo(\n () => allColumns.filter((col) => checkedFieldNames.has(col.key)),\n [allColumns, checkedFieldNames]\n );\n\n const [selectedColumns, setSelectedColumns] = useState<FilterColumn[]>(defaultSelectedColumns);\n const [selectedTemplate, setSelectedTemplate] = useState<TemplateOption | null>(null);\n const [selectedFormat, setSelectedFormat] = useState<FormatOption>(FORMAT_OPTIONS[0]);\n const [isSaveDialogVisible, setIsSaveDialogVisible] = useState(false);\n const [newTemplateName, setNewTemplateName] = useState(\"\");\n const [progress, setProgress] = useState(0);\n const [showProgress, setShowProgress] = useState(false);\n const [message, setMessage] = useState(\"\");\n const [messageDescription, setMessageDescription] = useState(\"\");\n const [status, setStatus] = useState(\"In Progress\");\n const [checkApplyFilter, setCheckedApplyFilter] = useState(false);\n\n const [createExportTemplate, { isLoading: isSavingTemplate }] = useCreateExportTemplateMutation();\n const [deleteExportTemplate, { isLoading: isDeletingTemplate }] = useDeleteExportTemplateMutation();\n const { data: templatesData } = useGetExportTemplatesQuery({});\n\n const templateOptions = useMemo<TemplateOption[]>(() => {\n const records = templatesData?.records ?? [];\n return records.map((template: any) => ({\n name: template.templateName,\n code: String(template.id),\n fields: template.fields,\n templateFormat: template.templateFormat,\n }));\n }, [templatesData]);\n\n const resolvedTemplateOptions = useMemo(() => {\n if (!selectedTemplate) return templateOptions;\n if (templateOptions.some((template) => template.code === selectedTemplate.code)) return templateOptions;\n return [selectedTemplate, ...templateOptions];\n }, [selectedTemplate, templateOptions]);\n\n useEffect(() => {\n setSelectedColumns(defaultSelectedColumns);\n }, [defaultSelectedColumns]);\n\n const selectedKeys = new Set(selectedColumns.map((item) => item.key));\n const availableColumns = allColumns.filter((col) => !selectedKeys.has(col.key));\n\n const moveToSelected = (col: FilterColumn) => {\n setSelectedColumns((current) => (current.some((item) => item.key === col.key) ? current : [...current, col]));\n };\n\n const moveToAvailable = (col: FilterColumn) => {\n setSelectedColumns((current) => current.filter((item) => item.key !== col.key));\n };\n\n const handleTemplateSelect = (templateCode?: string) => {\n const nextTemplate = templateOptions.find((option) => option.code === templateCode) ?? null;\n setSelectedTemplate(nextTemplate);\n\n if (!nextTemplate) {\n setSelectedColumns(defaultSelectedColumns);\n setSelectedFormat(FORMAT_OPTIONS[0]);\n return;\n }\n\n const fields = parseTemplateFields(nextTemplate.fields);\n const resolvedColumns = fields\n .map((field) => allColumns.find((column) => column.key === field))\n .filter(Boolean) as FilterColumn[];\n\n setSelectedColumns(resolvedColumns);\n setSelectedFormat(\n FORMAT_OPTIONS.find((option) => option.code === nextTemplate.templateFormat) ?? FORMAT_OPTIONS[0]\n );\n };\n\n const handleAddTemplate = async () => {\n const trimmedName = newTemplateName.trim();\n if (!trimmedName) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n return;\n }\n\n const exportData = {\n templateName: trimmedName,\n templateFormat: selectedFormat.code,\n notifyOnEmail: true,\n fields: JSON.stringify(selectedColumns.map((col) => col.key)),\n modelMetadataId: solidView?.model?.id,\n };\n\n try {\n const response = await createExportTemplate(exportData).unwrap();\n setSelectedTemplate({\n name: trimmedName,\n code: String(response.data.id),\n fields: selectedColumns.map((col) => col.key),\n templateFormat: selectedFormat.code,\n });\n setNewTemplateName(\"\");\n setIsSaveDialogVisible(false);\n dispatch(showToast({ severity: \"success\", summary: \"Template Added\", detail: \"Template Saved\" }));\n } catch (error) {\n console.error(ERROR_MESSAGES.TEMPLATE_FAILED, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n }\n };\n\n const handleDeleteTemplate = async () => {\n if (!selectedTemplate?.code) return;\n try {\n await deleteExportTemplate(selectedTemplate.code).unwrap();\n setSelectedTemplate(null);\n dispatch(showToast({ severity: \"success\", summary: \"Template Deleted\", detail: \"Template Deleted\" }));\n } catch (error) {\n console.error(ERROR_MESSAGES.TEMPLATE_FAILED, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n }\n };\n\n const downloadHandlers = {\n onProgress: (value: number) => {\n setProgress(value);\n },\n onStatusChange: (statusType: \"In Progress\" | \"success\" | \"error\", msg: string, submsg: string) => {\n setStatus(statusType);\n setMessage(msg);\n setMessageDescription(submsg);\n setShowProgress(true);\n },\n };\n\n const handleDownload = async () => {\n const exportData = {\n id: selectedTemplate?.code ?? null,\n templateName: selectedTemplate?.name ?? null,\n templateFormat: selectedFormat.code,\n notifyOnEmail: true,\n fields: JSON.stringify(selectedColumns.map((col) => col.key)),\n modelMetadataId: solidView?.model?.id,\n };\n\n try {\n await downloadFileWithProgress(\n `/export-template/startExport/sync`,\n downloadHandlers,\n filters,\n checkApplyFilter,\n exportData\n );\n } catch (error) {\n console.error(ERROR_MESSAGES.DOWNLOAD_FAILED, error);\n }\n };\n\n const selectedTemplateFieldsCount = selectedColumns.length;\n const selectedFormatMeta = exportFormatMeta(selectedFormat.code);\n const selectionSummary = selectedTemplate ? `Template: ${selectedTemplate.name}` : \"Current field selection\";\n const filterSummary = checkApplyFilter ? \"Filters applied\" : \"All records\";\n\n return (\n <>\n <div className=\"solid-export-shell\">\n <div className=\"solid-export-toolbar\">\n <div className=\"solid-export-toolbar-main\">\n <label className=\"solid-export-field\">\n <span className=\"solid-export-field-label\">Format</span>\n <SolidSelect\n value={selectedFormat.code}\n options={FORMAT_OPTIONS.map((option) => ({ label: option.name, value: option.code }))}\n onChange={(event) => {\n const next = FORMAT_OPTIONS.find((option) => option.code === event.value);\n if (next) setSelectedFormat(next);\n }}\n placeholder=\"Select format\"\n />\n </label>\n\n <label className=\"solid-export-field solid-export-field--template\">\n <span className=\"solid-export-field-label\">Template</span>\n <SolidSelect\n value={selectedTemplate?.code ?? \"\"}\n options={resolvedTemplateOptions.map((option) => ({ label: option.name, value: option.code }))}\n onChange={(event) => handleTemplateSelect(event.value)}\n placeholder={resolvedTemplateOptions.length ? \"Choose template\" : \"No saved templates\"}\n />\n </label>\n </div>\n\n <div className=\"solid-export-toolbar-side\">\n <div className=\"solid-export-toolbar-options\">\n <SolidCheckbox\n checked={checkApplyFilter}\n onChange={(event) => setCheckedApplyFilter(event.target.checked)}\n label=\"Apply Filters\"\n />\n </div>\n <div className=\"solid-export-toolbar-actions\">\n <SolidButton\n variant=\"outline\"\n size=\"small\"\n leftIcon={<Save size={14} />}\n onClick={() => setIsSaveDialogVisible(true)}\n >\n Save Template\n </SolidButton>\n <SolidButton\n variant=\"outline\"\n size=\"small\"\n leftIcon={<Trash2 size={14} />}\n onClick={handleDeleteTemplate}\n disabled={!selectedTemplate || isDeletingTemplate}\n className=\"solid-export-delete-btn\"\n >\n Delete\n </SolidButton>\n <SolidButton\n size=\"small\"\n leftIcon={<Download size={14} />}\n onClick={handleDownload}\n disabled={selectedColumns.length === 0}\n >\n Export\n </SolidButton>\n </div>\n </div>\n </div>\n\n <div className=\"solid-export-summary\">\n <div className=\"solid-export-summary-card\">\n <div className=\"solid-export-summary-title-row\">\n <div className=\"solid-export-summary-format-icon\">{selectedFormatMeta.icon}</div>\n <div className=\"solid-export-summary-copy-block\">\n <div className=\"solid-export-summary-title\">{selectedFormatMeta.label} export</div>\n <div className=\"solid-export-summary-meta\">\n <span className=\"solid-export-summary-copy\">{selectionSummary}</span>\n <span className=\"solid-export-summary-dot\" aria-hidden=\"true\" />\n <span className=\"solid-export-summary-copy\">{filterSummary}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"solid-export-summary-chip\">\n <Check size={13} />\n {selectedTemplateFieldsCount} field{selectedTemplateFieldsCount === 1 ? \"\" : \"s\"} selected\n </div>\n </div>\n\n <div className=\"solid-export-builder\">\n <div className=\"solid-export-pane\">\n <div className=\"solid-export-pane-header\">\n <div>\n <div className=\"solid-export-pane-title\">Available Fields</div>\n <div className=\"solid-export-pane-copy\">Add fields to include in the export.</div>\n </div>\n <div className=\"solid-export-pane-count\">{availableColumns.length}</div>\n </div>\n <div className=\"solid-export-list\">\n {availableColumns.length ? (\n availableColumns.map((item) => (\n <div key={item.key} className=\"solid-export-list-row\">\n <div className=\"solid-export-list-row-copy\">\n <div className=\"solid-export-list-row-title\">\n {item.name}\n <span className=\"solid-export-list-row-key\">({item.key})</span>\n </div>\n </div>\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n className=\"solid-export-list-row-action\"\n leftIcon={<Plus size={14} />}\n aria-label={`Add ${item.name}`}\n tooltip={`Add ${item.name}`}\n onClick={() => moveToSelected(item)}\n />\n </div>\n ))\n ) : (\n <div className=\"solid-export-empty\">\n <div className=\"solid-export-empty-title\">All fields are already selected</div>\n <div className=\"solid-export-empty-copy\">Remove a field from the export set to make it available here again.</div>\n </div>\n )}\n </div>\n </div>\n\n <div className=\"solid-export-pane\">\n <div className=\"solid-export-pane-header\">\n <div>\n <div className=\"solid-export-pane-title\">Selected Fields</div>\n <div className=\"solid-export-pane-copy\">These columns will be exported in the file.</div>\n </div>\n <div className=\"solid-export-pane-count is-selected\">{selectedColumns.length}</div>\n </div>\n <div className=\"solid-export-list\">\n {selectedColumns.length ? (\n selectedColumns.map((item) => (\n <div key={item.key} className=\"solid-export-list-row\">\n <div className=\"solid-export-list-row-copy\">\n <div className=\"solid-export-list-row-title\">\n {item.name}\n <span className=\"solid-export-list-row-key\">({item.key})</span>\n </div>\n </div>\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n className=\"solid-export-list-row-action is-remove\"\n leftIcon={<Trash2 size={14} />}\n aria-label={`Remove ${item.name}`}\n tooltip={`Remove ${item.name}`}\n onClick={() => moveToAvailable(item)}\n />\n </div>\n ))\n ) : (\n <div className=\"solid-export-empty\">\n <div className=\"solid-export-empty-title\">No fields selected yet</div>\n <div className=\"solid-export-empty-copy\">Pick at least one field before starting the export.</div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n\n <SolidDialog\n open={isSaveDialogVisible}\n onOpenChange={setIsSaveDialogVisible}\n className=\"solid-export-save-dialog\"\n style={{ width: \"min(420px, calc(100vw - 24px))\" }}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Save Export Template</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Save the current format and selected fields so this export can be reused later.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <label className=\"solid-export-field solid-export-save-field\">\n <span className=\"solid-export-field-label\">Template name</span>\n <SolidInput\n value={newTemplateName}\n onChange={(event) => setNewTemplateName(event.target.value)}\n placeholder=\"Enter template name\"\n autoFocus\n />\n </label>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-export-save-footer\">\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={() => {\n setNewTemplateName(\"\");\n setIsSaveDialogVisible(false);\n }}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n size=\"small\"\n loading={isSavingTemplate}\n disabled={!newTemplateName.trim() || isSavingTemplate}\n onClick={handleAddTemplate}\n >\n Save Template\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n <DownloadProgressToast\n visible={showProgress}\n progress={progress}\n message={message}\n submessage={messageDescription}\n status={status}\n onClose={() => setShowProgress(false)}\n />\n </>\n );\n};\n"]}
@@ -315,11 +315,12 @@ export const SolidExport = ({ listViewMetaData, filters }: any) => {
315
315
  Save Template
316
316
  </SolidButton>
317
317
  <SolidButton
318
- variant="ghost"
318
+ variant="outline"
319
319
  size="small"
320
320
  leftIcon={<Trash2 size={14} />}
321
321
  onClick={handleDeleteTemplate}
322
322
  disabled={!selectedTemplate || isDeletingTemplate}
323
+ className="solid-export-delete-btn"
323
324
  >
324
325
  Delete
325
326
  </SolidButton>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormStepper.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidFormStepper.tsx"],"names":[],"mappings":"AAUA,UAAU,KAAK;IACX,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,uBAAuB,CAAC,EAAE,GAAG,CAAA;IAC7B,0BAA0B,CAAC,EAAE,GAAG,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC/B;AAED,eAAO,MAAM,gBAAgB,UAAW,KAAK,4CAuS5C,CAAA"}
1
+ {"version":3,"file":"SolidFormStepper.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidFormStepper.tsx"],"names":[],"mappings":"AAUA,UAAU,KAAK;IACX,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,uBAAuB,CAAC,EAAE,GAAG,CAAA;IAC7B,0BAA0B,CAAC,EAAE,GAAG,CAAA;IAChC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC/B;AAED,eAAO,MAAM,gBAAgB,UAAW,KAAK,4CAwS5C,CAAA"}
@@ -75,7 +75,8 @@ export var SolidFormStepper = function (props) {
75
75
  if (!containerRef.current || !solidFormViewWorkflowData || solidFormViewWorkflowData.length === 0)
76
76
  return;
77
77
  var containerWidth = containerRef.current.offsetWidth;
78
- var overflowButtonWidth = 50;
78
+ var isMobile = window.innerWidth <= 767;
79
+ var overflowButtonWidth = isMobile ? 38 : 50;
79
80
  var arrowWidth = 30; // Width for arrow between buttons
80
81
  var spacing = 0; // No gap needed as arrows connect buttons
81
82
  var tempContainer = document.createElement('div');