@solidxai/core-ui 0.1.7-beta.4 → 0.1.7-beta.6

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 (268) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +1 -1
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +5 -3
  5. package/dist/components/auth/SolidLogin.js +3 -3
  6. package/dist/components/auth/SolidLogin.js.map +1 -1
  7. package/dist/components/auth/SolidLogin.tsx +2 -2
  8. package/dist/components/common/AuthBanner.js.map +1 -1
  9. package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
  10. package/dist/components/common/DropzonePlaceholder.js +1 -1
  11. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  12. package/dist/components/common/DropzonePlaceholder.tsx +8 -6
  13. package/dist/components/core/chatter/SolidChatter.d.ts +2 -1
  14. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  15. package/dist/components/core/chatter/SolidChatter.js +2 -4
  16. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  17. package/dist/components/core/chatter/SolidChatter.tsx +3 -4
  18. package/dist/components/core/chatter/SolidChatterHeader.d.ts +1 -0
  19. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  20. package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
  21. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  22. package/dist/components/core/chatter/SolidChatterHeader.tsx +4 -3
  23. package/dist/components/core/chatter/chatter.module.css +42 -32
  24. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js +1 -1
  25. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js.map +1 -1
  26. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.tsx +2 -2
  27. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +153 -30
  28. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
  29. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +7 -7
  30. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
  31. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +9 -10
  32. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.d.ts.map +1 -1
  33. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js +1 -1
  34. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js.map +1 -1
  35. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.tsx +6 -4
  36. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.d.ts.map +1 -1
  37. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js +1 -1
  38. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js.map +1 -1
  39. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.tsx +3 -1
  40. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  41. package/dist/components/core/form/SolidFormActionHeader.js +13 -13
  42. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  43. package/dist/components/core/form/SolidFormActionHeader.tsx +21 -24
  44. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  45. package/dist/components/core/form/SolidFormFooter.js +1 -1
  46. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  47. package/dist/components/core/form/SolidFormFooter.tsx +0 -1
  48. package/dist/components/core/form/SolidFormUserViewLayout.js +1 -1
  49. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  50. package/dist/components/core/form/SolidFormUserViewLayout.tsx +1 -1
  51. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  52. package/dist/components/core/form/SolidFormView.js +22 -33
  53. package/dist/components/core/form/SolidFormView.js.map +1 -1
  54. package/dist/components/core/form/SolidFormView.tsx +38 -59
  55. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  56. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +12 -1
  57. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  58. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +1 -0
  59. package/dist/components/core/form/fields/SolidLongTextField.js +4 -4
  60. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  61. package/dist/components/core/form/fields/SolidLongTextField.tsx +4 -4
  62. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  63. package/dist/components/core/form/fields/SolidMediaMultipleField.js +14 -14
  64. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  65. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +35 -21
  66. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  67. package/dist/components/core/form/fields/SolidMediaSingleField.js +2 -2
  68. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  69. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +48 -34
  70. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  71. package/dist/components/core/form/fields/SolidPasswordField.js +2 -2
  72. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  73. package/dist/components/core/form/fields/SolidPasswordField.tsx +46 -42
  74. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  75. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +23 -27
  76. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  77. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +64 -66
  78. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  79. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -6
  80. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  81. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +4 -7
  82. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  83. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -15
  84. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  85. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +30 -16
  86. package/dist/components/core/form/fields/solidFields.module.css +86 -15
  87. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
  88. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
  89. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
  90. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
  91. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
  92. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
  93. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +18 -28
  94. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  95. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +52 -48
  96. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
  97. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
  98. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
  99. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
  100. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
  101. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts.map +1 -1
  102. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +1 -1
  103. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  104. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +5 -4
  105. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  106. package/dist/components/core/kanban/KanbanBoard.js +11 -5
  107. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  108. package/dist/components/core/kanban/KanbanBoard.tsx +8 -0
  109. package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
  110. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  111. package/dist/components/core/kanban/KanbanCard.js +4 -4
  112. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  113. package/dist/components/core/kanban/KanbanCard.tsx +5 -4
  114. package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
  115. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  116. package/dist/components/core/kanban/KanbanColumn.js +3 -3
  117. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  118. package/dist/components/core/kanban/KanbanColumn.tsx +4 -3
  119. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
  120. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
  121. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +1 -2
  122. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
  123. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
  124. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
  125. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +21 -10
  126. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
  127. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
  128. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
  129. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +18 -10
  130. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
  131. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +3 -6
  132. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
  133. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +30 -24
  134. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
  135. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
  136. package/dist/components/core/list/SolidDataTable.d.ts +1 -0
  137. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  138. package/dist/components/core/list/SolidDataTable.js +19 -2
  139. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  140. package/dist/components/core/list/SolidDataTable.tsx +30 -2
  141. package/dist/components/core/list/SolidDataTablePagination.d.ts +15 -0
  142. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +1 -0
  143. package/dist/components/core/list/SolidDataTablePagination.js +22 -0
  144. package/dist/components/core/list/SolidDataTablePagination.js.map +1 -0
  145. package/dist/components/core/list/SolidDataTablePagination.tsx +71 -0
  146. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  147. package/dist/components/core/list/SolidListView.js +1 -1
  148. package/dist/components/core/list/SolidListView.js.map +1 -1
  149. package/dist/components/core/list/SolidListView.tsx +1 -0
  150. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  151. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  152. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
  153. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
  154. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +6 -7
  155. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
  156. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +9 -10
  157. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
  158. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
  159. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
  160. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
  161. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
  162. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
  163. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
  164. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
  165. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
  166. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
  167. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
  168. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
  169. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
  170. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
  171. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
  172. package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
  173. package/dist/components/core/locales/SolidChatterLocaleTabView.js +7 -4
  174. package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
  175. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +28 -11
  176. package/dist/components/core/locales/SolidLocale.js +4 -4
  177. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  178. package/dist/components/core/locales/SolidLocale.tsx +18 -18
  179. package/dist/components/core/locales/solid-locale.css +105 -7
  180. package/dist/components/core/model/CreateModel.js +2 -2
  181. package/dist/components/core/model/CreateModel.js.map +1 -1
  182. package/dist/components/core/model/CreateModel.tsx +2 -2
  183. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  184. package/dist/components/core/model/FieldMetaData.js +3 -3
  185. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  186. package/dist/components/core/model/FieldMetaData.tsx +45 -22
  187. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  188. package/dist/components/layout/AppSidebar.js +75 -7
  189. package/dist/components/layout/AppSidebar.js.map +1 -1
  190. package/dist/components/layout/AppSidebar.tsx +84 -7
  191. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  192. package/dist/components/shad-cn-ui/SolidCodeEditor.js +13 -7
  193. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  194. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +22 -12
  195. package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
  196. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  197. package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
  198. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  199. package/dist/components/shad-cn-ui/SolidDialog.tsx +6 -3
  200. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  201. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  202. package/dist/components/shad-cn-ui/SolidSelect.js +2 -2
  203. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  204. package/dist/components/shad-cn-ui/SolidSelect.tsx +3 -0
  205. package/dist/components/shad-cn-ui/SolidTextarea.d.ts +1 -1
  206. package/dist/components/shad-cn-ui/SolidTextarea.d.ts.map +1 -1
  207. package/dist/components/shad-cn-ui/SolidTextarea.js +3 -2
  208. package/dist/components/shad-cn-ui/SolidTextarea.js.map +1 -1
  209. package/dist/components/shad-cn-ui/SolidTextarea.tsx +17 -2
  210. package/dist/components/solid-ui/SolidButton.d.ts +14 -0
  211. package/dist/components/solid-ui/SolidButton.d.ts.map +1 -0
  212. package/dist/components/solid-ui/SolidButton.js +36 -0
  213. package/dist/components/solid-ui/SolidButton.js.map +1 -0
  214. package/dist/components/solid-ui/SolidButton.tsx +54 -0
  215. package/dist/components/solid-ui/SolidTabs.d.ts +18 -0
  216. package/dist/components/solid-ui/SolidTabs.d.ts.map +1 -0
  217. package/dist/components/solid-ui/SolidTabs.js +22 -0
  218. package/dist/components/solid-ui/SolidTabs.js.map +1 -0
  219. package/dist/components/solid-ui/SolidTabs.tsx +73 -0
  220. package/dist/components/solid-ui/index.d.ts +3 -0
  221. package/dist/components/solid-ui/index.d.ts.map +1 -0
  222. package/dist/components/solid-ui/index.js +3 -0
  223. package/dist/components/solid-ui/index.js.map +1 -0
  224. package/dist/components/solid-ui/index.ts +2 -0
  225. package/dist/helpers/registry.d.ts.map +1 -1
  226. package/dist/helpers/registry.js +10 -0
  227. package/dist/helpers/registry.js.map +1 -1
  228. package/dist/helpers/registry.ts +16 -0
  229. package/dist/index.d.ts +3 -2
  230. package/dist/index.d.ts.map +1 -1
  231. package/dist/index.js +3 -2
  232. package/dist/index.js.map +1 -1
  233. package/dist/index.ts +71 -2
  234. package/dist/resources/globals.css +628 -67
  235. package/dist/resources/shadcn-base.css +333 -7
  236. package/dist/resources/solid-responsive.css +6 -6
  237. package/dist/resources/themes/solid-dark-purple/theme.css +1 -1
  238. package/package.json +1 -1
  239. package/dist/components/auth/SolidOTPVerify.d.ts +0 -3
  240. package/dist/components/auth/SolidOTPVerify.d.ts.map +0 -1
  241. package/dist/components/auth/SolidOTPVerify.js +0 -67
  242. package/dist/components/auth/SolidOTPVerify.js.map +0 -1
  243. package/dist/components/auth/SolidOTPVerify.tsx +0 -133
  244. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +0 -2
  245. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +0 -1
  246. package/dist/components/core/common/LoadDynamicJsxComponent.js +0 -50
  247. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +0 -1
  248. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +0 -70
  249. package/dist/nextAuth/authProviders.d.ts +0 -4
  250. package/dist/nextAuth/authProviders.d.ts.map +0 -1
  251. package/dist/nextAuth/authProviders.js +0 -198
  252. package/dist/nextAuth/authProviders.js.map +0 -1
  253. package/dist/nextAuth/authProviders.tsx +0 -232
  254. package/dist/nextAuth/handleLogout.d.ts +0 -2
  255. package/dist/nextAuth/handleLogout.d.ts.map +0 -1
  256. package/dist/nextAuth/handleLogout.js +0 -36
  257. package/dist/nextAuth/handleLogout.js.map +0 -1
  258. package/dist/nextAuth/handleLogout.tsx +0 -39
  259. package/dist/nextAuth/refreshAccessToken.d.ts +0 -2
  260. package/dist/nextAuth/refreshAccessToken.d.ts.map +0 -1
  261. package/dist/nextAuth/refreshAccessToken.js +0 -24
  262. package/dist/nextAuth/refreshAccessToken.js.map +0 -1
  263. package/dist/nextAuth/refreshAccessToken.tsx +0 -28
  264. package/dist/redux/features/settingsSlice.d.ts +0 -20
  265. package/dist/redux/features/settingsSlice.d.ts.map +0 -1
  266. package/dist/redux/features/settingsSlice.js +0 -39
  267. package/dist/redux/features/settingsSlice.js.map +0 -1
  268. package/dist/redux/features/settingsSlice.ts +0 -60
@@ -1,6 +1,5 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
- import { Dialog } from 'primereact/dialog';
4
3
  import { Document, Page } from "react-pdf";
5
4
  import { PDFSvg } from '../../../../components/Svg/PDFSvg';
6
5
  import MP3Image from '../../../../resources/images/fileTypes/Mp3.png';
@@ -8,6 +7,7 @@ import MP4Image from '../../../../resources/images/fileTypes/Mp4.png';
8
7
  import FileImage from '../../../../resources/images/fileTypes/File.png';
9
8
  import Image from "../../../common/Image";
10
9
  import { ExcelSvg } from '../../../../components/Svg/ExcelSvg';
10
+ import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogHeader, SolidDialogTitle, } from "../../../shad-cn-ui";
11
11
  var SolidShortTextKanbanField = function (_a) {
12
12
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
13
13
  var solidKanbanViewMetaData = _a.solidKanbanViewMetaData, fieldMetadata = _a.fieldMetadata, fieldLayout = _a.fieldLayout, data = _a.data, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, groupedView = _a.groupedView;
@@ -15,9 +15,6 @@ var SolidShortTextKanbanField = function (_a) {
15
15
  var widget = ((_b = fieldLayout === null || fieldLayout === void 0 ? void 0 : fieldLayout.attrs) === null || _b === void 0 ? void 0 : _b.widget) ? (_c = fieldLayout === null || fieldLayout === void 0 ? void 0 : fieldLayout.attrs) === null || _c === void 0 ? void 0 : _c.widget : "text";
16
16
  var mimeType = data && (data === null || data === void 0 ? void 0 : data.mimeType);
17
17
  var fileName = data === null || data === void 0 ? void 0 : data.originalFileName;
18
- var PDFHeader = function () {
19
- return (_jsxs("div", { className: 'flex justify-content-between align-items-center', children: [_jsx("p", { className: 'm-0', children: fileName }), _jsx("a", { href: data[fieldMetadata.name], download: fileName, target: "_blank", rel: "noopener noreferrer", className: 'mr-4', children: _jsx("i", { className: 'pi pi-download' }) })] }));
20
- };
21
18
  return (_jsxs("div", { className: "".concat(((_d = fieldLayout === null || fieldLayout === void 0 ? void 0 : fieldLayout.attrs) === null || _d === void 0 ? void 0 : _d.className) ? " ".concat(fieldLayout.attrs.className) : ""), children: [widget === "text" && groupedView &&
22
19
  _jsxs("p", { className: 'font-medium', children: [((_e = fieldLayout === null || fieldLayout === void 0 ? void 0 : fieldLayout.attrs) === null || _e === void 0 ? void 0 : _e.showLabel) !== false && ((_f = fieldLayout === null || fieldLayout === void 0 ? void 0 : fieldLayout.attrs) === null || _f === void 0 ? void 0 : _f.label) ? "".concat((_g = fieldLayout === null || fieldLayout === void 0 ? void 0 : fieldLayout.attrs) === null || _g === void 0 ? void 0 : _g.label, " : ") : "", data && data[fieldMetadata.name] ? "".concat(data[fieldMetadata.name]) : ""] }), widget === "text" && !groupedView && (fieldMetadata === null || fieldMetadata === void 0 ? void 0 : fieldMetadata.name) === 'originalFileName' &&
23
20
  _jsxs("p", { className: 'font-medium', children: [((_h = fieldLayout === null || fieldLayout === void 0 ? void 0 : fieldLayout.attrs) === null || _h === void 0 ? void 0 : _h.showLabel) !== false && ((_j = fieldLayout === null || fieldLayout === void 0 ? void 0 : fieldLayout.attrs) === null || _j === void 0 ? void 0 : _j.label) ? "".concat((_k = fieldLayout === null || fieldLayout === void 0 ? void 0 : fieldLayout.attrs) === null || _k === void 0 ? void 0 : _k.label, " : ") : "", data && data[fieldMetadata.name] ? "".concat(data[fieldMetadata.name]) : ""] }), widget === "text" && !groupedView && (fieldMetadata === null || fieldMetadata === void 0 ? void 0 : fieldMetadata.name) === 'mimeType' &&
@@ -26,7 +23,7 @@ var SolidShortTextKanbanField = function (_a) {
26
23
  event.stopPropagation();
27
24
  setLightboxUrls([{ src: data[fieldMetadata.name] }]);
28
25
  setOpenLightbox(true);
29
- }, className: "".concat(!groupedView ? 'kanban-media-image-preview' : 'kanban-image-preview') }) }), widget === "image" && !groupedView && mimeType && mimeType.includes("pdf") && (_jsxs("div", { className: 'mt-3', onClick: function (e) { return e.stopPropagation(); }, children: [_jsx("div", { className: 'kanban-media-view-card', onClick: function () { return setVisible(true); }, style: { cursor: 'pointer' }, children: _jsx(PDFSvg, {}) }), _jsx(Dialog, { header: _jsx(PDFHeader, {}), visible: visible, style: { width: "" }, onHide: function () { return setVisible(false); }, modal: true, children: _jsx(Document, { file: data[fieldMetadata.name], children: _jsx(Page, { pageNumber: 1 }) }) })] })), widget === "image" && !groupedView && mimeType && (mimeType.includes("excel") || mimeType.includes("spreadsheet")) && (_jsx("a", { href: data[fieldMetadata.name], className: 'kanban-media-view-card mt-3', onClick: function (e) { return e.stopPropagation(); }, style: { cursor: 'pointer' }, download: true, target: "_blank", rel: "noopener noreferrer", children: _jsx(ExcelSvg, {}) })), widget === "image" && !groupedView && mimeType && mimeType.includes("audio") && (_jsx("a", { href: data[fieldMetadata.name], className: 'kanban-media-view-card my-2', onClick: function (e) { return e.stopPropagation(); }, style: { cursor: 'pointer' }, download: true, target: "_blank", rel: "noopener noreferrer", children: _jsx(Image, { src: MP3Image, alt: fileName, className: "relative", height: 80, width: 80 }) })), widget === "image" && !groupedView && mimeType && mimeType.includes("video") && (_jsx("a", { href: data[fieldMetadata.name], className: 'kanban-media-view-card mt-3', onClick: function (e) { return e.stopPropagation(); }, style: { cursor: 'pointer' }, download: true, target: "_blank", rel: "noopener noreferrer", children: _jsx(Image, { src: MP4Image, alt: fileName, className: "relative", height: 80, width: 80 }) })), widget === "image" && !groupedView && mimeType && !mimeType.includes("image/") &&
26
+ }, className: "".concat(!groupedView ? 'kanban-media-image-preview' : 'kanban-image-preview') }) }), widget === "image" && !groupedView && mimeType && mimeType.includes("pdf") && (_jsxs("div", { className: 'mt-3', onClick: function (e) { return e.stopPropagation(); }, children: [_jsx("div", { className: 'kanban-media-view-card', onClick: function () { return setVisible(true); }, style: { cursor: 'pointer' }, children: _jsx(PDFSvg, {}) }), _jsxs(SolidDialog, { open: visible, onOpenChange: setVisible, className: "solid-kanban-preview-dialog", children: [_jsx(SolidDialogHeader, { className: "solid-kanban-preview-dialog-header", children: _jsxs("div", { className: "solid-kanban-preview-dialog-title-row", children: [_jsx(SolidDialogTitle, { children: fileName }), _jsx("a", { href: data[fieldMetadata.name], download: fileName, target: "_blank", rel: "noopener noreferrer", className: "solid-kanban-preview-download", onClick: function (event) { return event.stopPropagation(); }, children: _jsx("i", { className: 'pi pi-download' }) }), _jsx(SolidDialogClose, {})] }) }), _jsx(SolidDialogBody, { className: "solid-kanban-preview-dialog-body", children: _jsx(Document, { file: data[fieldMetadata.name], children: _jsx(Page, { pageNumber: 1 }) }) })] })] })), widget === "image" && !groupedView && mimeType && (mimeType.includes("excel") || mimeType.includes("spreadsheet")) && (_jsx("a", { href: data[fieldMetadata.name], className: 'kanban-media-view-card mt-3', onClick: function (e) { return e.stopPropagation(); }, style: { cursor: 'pointer' }, download: true, target: "_blank", rel: "noopener noreferrer", children: _jsx(ExcelSvg, {}) })), widget === "image" && !groupedView && mimeType && mimeType.includes("audio") && (_jsx("a", { href: data[fieldMetadata.name], className: 'kanban-media-view-card my-2', onClick: function (e) { return e.stopPropagation(); }, style: { cursor: 'pointer' }, download: true, target: "_blank", rel: "noopener noreferrer", children: _jsx(Image, { src: MP3Image, alt: fileName, className: "relative", height: 80, width: 80 }) })), widget === "image" && !groupedView && mimeType && mimeType.includes("video") && (_jsx("a", { href: data[fieldMetadata.name], className: 'kanban-media-view-card mt-3', onClick: function (e) { return e.stopPropagation(); }, style: { cursor: 'pointer' }, download: true, target: "_blank", rel: "noopener noreferrer", children: _jsx(Image, { src: MP4Image, alt: fileName, className: "relative", height: 80, width: 80 }) })), widget === "image" && !groupedView && mimeType && !mimeType.includes("image/") &&
30
27
  !mimeType.includes("pdf") &&
31
28
  !mimeType.includes("excel") &&
32
29
  !mimeType.includes("spreadsheet") &&
@@ -1 +1 @@
1
- {"version":3,"file":"SolidShortTextKanbanField.js","sourceRoot":"","sources":["../../../../../src/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useState } from 'react';\nimport { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';\nimport { Dialog } from 'primereact/dialog';\nimport { Document, Page } from \"react-pdf\";\nimport { PDFSvg } from '../../../../components/Svg/PDFSvg';\nimport MP3Image from '../../../../resources/images/fileTypes/Mp3.png'\nimport MP4Image from '../../../../resources/images/fileTypes/Mp4.png'\nimport FileImage from '../../../../resources/images/fileTypes/File.png'\nimport Image from \"../../../common/Image\";\nimport { ExcelSvg } from '../../../../components/Svg/ExcelSvg';\nconst SolidShortTextKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout, data, setLightboxUrls, setOpenLightbox, groupedView }: SolidKanbanViewFieldsParams) => {\n const [visible, setVisible] = useState(false);\n const widget = fieldLayout?.attrs?.widget ? fieldLayout?.attrs?.widget : \"text\";\n const mimeType = data && data?.mimeType\n const fileName = data?.originalFileName;\n const PDFHeader = () => {\n return (\n <div className='flex justify-content-between align-items-center'>\n <p className='m-0'>\n {fileName}\n </p>\n <a\n href={data[fieldMetadata.name]}\n download={fileName}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className='mr-4'\n >\n <i className='pi pi-download' />\n </a>\n </div>\n )\n }\n return (\n <div className={`${fieldLayout?.attrs?.className ? ` ${fieldLayout.attrs.className}` : \"\"}`}>\n {widget === \"text\" && groupedView &&\n <p className='font-medium'>{fieldLayout?.attrs?.showLabel !== false && fieldLayout?.attrs?.label ? `${fieldLayout?.attrs?.label} : ` : \"\"}{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}` : \"\"}</p>\n }\n {widget === \"text\" && !groupedView && fieldMetadata?.name === 'originalFileName' &&\n <p className='font-medium'>{fieldLayout?.attrs?.showLabel !== false && fieldLayout?.attrs?.label ? `${fieldLayout?.attrs?.label} : ` : \"\"}{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}` : \"\"}</p>\n }\n {widget === \"text\" && !groupedView && fieldMetadata?.name === 'mimeType' &&\n <span className='solid-mimetype-chip'>{fieldLayout?.attrs?.showLabel !== false && fieldLayout?.attrs?.label ? `${fieldLayout?.attrs?.label} : ` : \"\"}{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}` : \"\"}</span>\n }\n {widget === \"image\" && !groupedView && mimeType && mimeType.includes(\"image/\") &&\n < div className='mt-3'>\n <img\n src={data[fieldMetadata.name]}\n onClick={(event) => {\n event.stopPropagation();\n setLightboxUrls([{ src: data[fieldMetadata.name] }]);\n setOpenLightbox(true);\n }}\n className={`${!groupedView ? 'kanban-media-image-preview' : 'kanban-image-preview'}`}\n ></img>\n </div>\n }\n {widget === \"image\" && !groupedView && mimeType && mimeType.includes(\"pdf\") && (\n <div className='mt-3' onClick={(e) => e.stopPropagation()}>\n <div className='kanban-media-view-card' onClick={() => setVisible(true)} style={{ cursor: 'pointer' }}>\n <PDFSvg />\n </div>\n <Dialog header={<PDFHeader />} visible={visible} style={{ width: \"\" }} onHide={() => setVisible(false)} modal>\n <Document file={data[fieldMetadata.name]}>\n <Page pageNumber={1} />\n </Document>\n </Dialog>\n </div>\n )}\n\n {widget === \"image\" && !groupedView && mimeType && (mimeType.includes(\"excel\") || mimeType.includes(\"spreadsheet\")) && (\n <a href={data[fieldMetadata.name]} className='kanban-media-view-card mt-3' onClick={(e) => e.stopPropagation()} style={{ cursor: 'pointer' }} download target=\"_blank\" rel=\"noopener noreferrer\">\n <ExcelSvg />\n </a>\n )}\n {widget === \"image\" && !groupedView && mimeType && mimeType.includes(\"audio\") && (\n <a href={data[fieldMetadata.name]} className='kanban-media-view-card my-2' onClick={(e) => e.stopPropagation()} style={{ cursor: 'pointer' }} download target=\"_blank\" rel=\"noopener noreferrer\">\n <Image\n src={MP3Image}\n alt={fileName}\n className=\"relative\"\n height={80}\n width={80}\n />\n </a>\n )}\n {widget === \"image\" && !groupedView && mimeType && mimeType.includes(\"video\") && (\n <a href={data[fieldMetadata.name]} className='kanban-media-view-card mt-3' onClick={(e) => e.stopPropagation()} style={{ cursor: 'pointer' }} download target=\"_blank\" rel=\"noopener noreferrer\">\n <Image\n src={MP4Image}\n alt={fileName}\n className=\"relative\"\n height={80}\n width={80}\n />\n </a>\n )}\n\n {widget === \"image\" && !groupedView && mimeType && !mimeType.includes(\"image/\") &&\n !mimeType.includes(\"pdf\") &&\n !mimeType.includes(\"excel\") &&\n !mimeType.includes(\"spreadsheet\") &&\n !mimeType.includes(\"audio\") &&\n !mimeType.includes(\"video\") && (\n <a href={data[fieldMetadata.name]} className='kanban-media-view-card mt-3' onClick={(e) => e.stopPropagation()} style={{ cursor: 'pointer' }} download target=\"_blank\" rel=\"noopener noreferrer\">\n <Image\n src={FileImage}\n alt={fileName}\n className=\"relative\"\n height={80}\n width={80}\n />\n </a>\n )}\n </div>\n );\n\n};\n\nexport default SolidShortTextKanbanField;\n"]}
1
+ {"version":3,"file":"SolidShortTextKanbanField.js","sourceRoot":"","sources":["../../../../../src/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useState } from 'react';\nimport { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';\nimport { Document, Page } from \"react-pdf\";\nimport { PDFSvg } from '../../../../components/Svg/PDFSvg';\nimport MP3Image from '../../../../resources/images/fileTypes/Mp3.png'\nimport MP4Image from '../../../../resources/images/fileTypes/Mp4.png'\nimport FileImage from '../../../../resources/images/fileTypes/File.png'\nimport Image from \"../../../common/Image\";\nimport { ExcelSvg } from '../../../../components/Svg/ExcelSvg';\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogTitle,\n} from \"../../../shad-cn-ui\";\nconst SolidShortTextKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout, data, setLightboxUrls, setOpenLightbox, groupedView }: SolidKanbanViewFieldsParams) => {\n const [visible, setVisible] = useState(false);\n const widget = fieldLayout?.attrs?.widget ? fieldLayout?.attrs?.widget : \"text\";\n const mimeType = data && data?.mimeType\n const fileName = data?.originalFileName;\n return (\n <div className={`${fieldLayout?.attrs?.className ? ` ${fieldLayout.attrs.className}` : \"\"}`}>\n {widget === \"text\" && groupedView &&\n <p className='font-medium'>{fieldLayout?.attrs?.showLabel !== false && fieldLayout?.attrs?.label ? `${fieldLayout?.attrs?.label} : ` : \"\"}{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}` : \"\"}</p>\n }\n {widget === \"text\" && !groupedView && fieldMetadata?.name === 'originalFileName' &&\n <p className='font-medium'>{fieldLayout?.attrs?.showLabel !== false && fieldLayout?.attrs?.label ? `${fieldLayout?.attrs?.label} : ` : \"\"}{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}` : \"\"}</p>\n }\n {widget === \"text\" && !groupedView && fieldMetadata?.name === 'mimeType' &&\n <span className='solid-mimetype-chip'>{fieldLayout?.attrs?.showLabel !== false && fieldLayout?.attrs?.label ? `${fieldLayout?.attrs?.label} : ` : \"\"}{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}` : \"\"}</span>\n }\n {widget === \"image\" && !groupedView && mimeType && mimeType.includes(\"image/\") &&\n < div className='mt-3'>\n <img\n src={data[fieldMetadata.name]}\n onClick={(event) => {\n event.stopPropagation();\n setLightboxUrls([{ src: data[fieldMetadata.name] }]);\n setOpenLightbox(true);\n }}\n className={`${!groupedView ? 'kanban-media-image-preview' : 'kanban-image-preview'}`}\n ></img>\n </div>\n }\n {widget === \"image\" && !groupedView && mimeType && mimeType.includes(\"pdf\") && (\n <div className='mt-3' onClick={(e) => e.stopPropagation()}>\n <div className='kanban-media-view-card' onClick={() => setVisible(true)} style={{ cursor: 'pointer' }}>\n <PDFSvg />\n </div>\n <SolidDialog open={visible} onOpenChange={setVisible} className=\"solid-kanban-preview-dialog\">\n <SolidDialogHeader className=\"solid-kanban-preview-dialog-header\">\n <div className=\"solid-kanban-preview-dialog-title-row\">\n <SolidDialogTitle>{fileName}</SolidDialogTitle>\n <a\n href={data[fieldMetadata.name]}\n download={fileName}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"solid-kanban-preview-download\"\n onClick={(event) => event.stopPropagation()}\n >\n <i className='pi pi-download' />\n </a>\n <SolidDialogClose />\n </div>\n </SolidDialogHeader>\n <SolidDialogBody className=\"solid-kanban-preview-dialog-body\">\n <Document file={data[fieldMetadata.name]}>\n <Page pageNumber={1} />\n </Document>\n </SolidDialogBody>\n </SolidDialog>\n </div>\n )}\n\n {widget === \"image\" && !groupedView && mimeType && (mimeType.includes(\"excel\") || mimeType.includes(\"spreadsheet\")) && (\n <a href={data[fieldMetadata.name]} className='kanban-media-view-card mt-3' onClick={(e) => e.stopPropagation()} style={{ cursor: 'pointer' }} download target=\"_blank\" rel=\"noopener noreferrer\">\n <ExcelSvg />\n </a>\n )}\n {widget === \"image\" && !groupedView && mimeType && mimeType.includes(\"audio\") && (\n <a href={data[fieldMetadata.name]} className='kanban-media-view-card my-2' onClick={(e) => e.stopPropagation()} style={{ cursor: 'pointer' }} download target=\"_blank\" rel=\"noopener noreferrer\">\n <Image\n src={MP3Image}\n alt={fileName}\n className=\"relative\"\n height={80}\n width={80}\n />\n </a>\n )}\n {widget === \"image\" && !groupedView && mimeType && mimeType.includes(\"video\") && (\n <a href={data[fieldMetadata.name]} className='kanban-media-view-card mt-3' onClick={(e) => e.stopPropagation()} style={{ cursor: 'pointer' }} download target=\"_blank\" rel=\"noopener noreferrer\">\n <Image\n src={MP4Image}\n alt={fileName}\n className=\"relative\"\n height={80}\n width={80}\n />\n </a>\n )}\n\n {widget === \"image\" && !groupedView && mimeType && !mimeType.includes(\"image/\") &&\n !mimeType.includes(\"pdf\") &&\n !mimeType.includes(\"excel\") &&\n !mimeType.includes(\"spreadsheet\") &&\n !mimeType.includes(\"audio\") &&\n !mimeType.includes(\"video\") && (\n <a href={data[fieldMetadata.name]} className='kanban-media-view-card mt-3' onClick={(e) => e.stopPropagation()} style={{ cursor: 'pointer' }} download target=\"_blank\" rel=\"noopener noreferrer\">\n <Image\n src={FileImage}\n alt={fileName}\n className=\"relative\"\n height={80}\n width={80}\n />\n </a>\n )}\n </div>\n );\n\n};\n\nexport default SolidShortTextKanbanField;\n"]}
@@ -1,7 +1,6 @@
1
1
 
2
2
  import { useState } from 'react';
3
3
  import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
4
- import { Dialog } from 'primereact/dialog';
5
4
  import { Document, Page } from "react-pdf";
6
5
  import { PDFSvg } from '../../../../components/Svg/PDFSvg';
7
6
  import MP3Image from '../../../../resources/images/fileTypes/Mp3.png'
@@ -9,29 +8,18 @@ import MP4Image from '../../../../resources/images/fileTypes/Mp4.png'
9
8
  import FileImage from '../../../../resources/images/fileTypes/File.png'
10
9
  import Image from "../../../common/Image";
11
10
  import { ExcelSvg } from '../../../../components/Svg/ExcelSvg';
11
+ import {
12
+ SolidDialog,
13
+ SolidDialogBody,
14
+ SolidDialogClose,
15
+ SolidDialogHeader,
16
+ SolidDialogTitle,
17
+ } from "../../../shad-cn-ui";
12
18
  const SolidShortTextKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout, data, setLightboxUrls, setOpenLightbox, groupedView }: SolidKanbanViewFieldsParams) => {
13
19
  const [visible, setVisible] = useState(false);
14
20
  const widget = fieldLayout?.attrs?.widget ? fieldLayout?.attrs?.widget : "text";
15
21
  const mimeType = data && data?.mimeType
16
22
  const fileName = data?.originalFileName;
17
- const PDFHeader = () => {
18
- return (
19
- <div className='flex justify-content-between align-items-center'>
20
- <p className='m-0'>
21
- {fileName}
22
- </p>
23
- <a
24
- href={data[fieldMetadata.name]}
25
- download={fileName}
26
- target="_blank"
27
- rel="noopener noreferrer"
28
- className='mr-4'
29
- >
30
- <i className='pi pi-download' />
31
- </a>
32
- </div>
33
- )
34
- }
35
23
  return (
36
24
  <div className={`${fieldLayout?.attrs?.className ? ` ${fieldLayout.attrs.className}` : ""}`}>
37
25
  {widget === "text" && groupedView &&
@@ -61,11 +49,29 @@ const SolidShortTextKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fie
61
49
  <div className='kanban-media-view-card' onClick={() => setVisible(true)} style={{ cursor: 'pointer' }}>
62
50
  <PDFSvg />
63
51
  </div>
64
- <Dialog header={<PDFHeader />} visible={visible} style={{ width: "" }} onHide={() => setVisible(false)} modal>
65
- <Document file={data[fieldMetadata.name]}>
66
- <Page pageNumber={1} />
67
- </Document>
68
- </Dialog>
52
+ <SolidDialog open={visible} onOpenChange={setVisible} className="solid-kanban-preview-dialog">
53
+ <SolidDialogHeader className="solid-kanban-preview-dialog-header">
54
+ <div className="solid-kanban-preview-dialog-title-row">
55
+ <SolidDialogTitle>{fileName}</SolidDialogTitle>
56
+ <a
57
+ href={data[fieldMetadata.name]}
58
+ download={fileName}
59
+ target="_blank"
60
+ rel="noopener noreferrer"
61
+ className="solid-kanban-preview-download"
62
+ onClick={(event) => event.stopPropagation()}
63
+ >
64
+ <i className='pi pi-download' />
65
+ </a>
66
+ <SolidDialogClose />
67
+ </div>
68
+ </SolidDialogHeader>
69
+ <SolidDialogBody className="solid-kanban-preview-dialog-body">
70
+ <Document file={data[fieldMetadata.name]}>
71
+ <Page pageNumber={1} />
72
+ </Document>
73
+ </SolidDialogBody>
74
+ </SolidDialog>
69
75
  </div>
70
76
  )}
71
77
 
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToOneKanbanField.js","sourceRoot":"","sources":["../../../../../../src/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx"],"names":[],"mappings":";AAOA,IAAM,iCAAiC,GAAG,UAAC,EAAyF;QAAvF,uBAAuB,6BAAA,EAAE,aAAa,mBAAA,EAAE,WAAW,iBAAA,EAAC,IAAI,UAAA;IAEjG,OAAO,CACJ,mBAAK,CACP,CAAC;AAEN,CAAC,CAAC;AAEF,eAAe,iCAAiC,CAAC","sourcesContent":["\nimport { FilterMatchMode } from 'primereact/api';\nimport { Column, ColumnFilterElementTemplateOptions } from \"primereact/column\";\nimport { FormEvent } from \"primereact/ts-helpers\";\nimport { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/kanban/SolidVarInputsFilterElement';\nimport { SolidKanbanViewFieldsParams } from '../../../../../components/core/kanban/SolidKanbanViewFields';\n\nconst SolidRelationManyToOneKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {\n \n return (\n <></>\n );\n\n};\n\nexport default SolidRelationManyToOneKanbanField;"]}
1
+ {"version":3,"file":"SolidRelationManyToOneKanbanField.js","sourceRoot":"","sources":["../../../../../../src/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx"],"names":[],"mappings":";AAOA,IAAM,iCAAiC,GAAG,UAAC,EAAyF;QAAvF,uBAAuB,6BAAA,EAAE,aAAa,mBAAA,EAAE,WAAW,iBAAA,EAAC,IAAI,UAAA;IAEjG,OAAO,CACJ,mBAAK,CACP,CAAC;AAEN,CAAC,CAAC;AAEF,eAAe,iCAAiC,CAAC","sourcesContent":["\nimport { FilterMatchMode } from 'primereact/api';\nimport { Column, ColumnFilterElementTemplateOptions } from \"primereact/column\";\nimport { FormEvent } from \"primereact/ts-helpers\";\nimport { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/filter/SolidVarInputsFilterElement';\nimport { SolidKanbanViewFieldsParams } from '../../../../../components/core/kanban/SolidKanbanViewFields';\n\nconst SolidRelationManyToOneKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {\n \n return (\n <></>\n );\n\n};\n\nexport default SolidRelationManyToOneKanbanField;\n"]}
@@ -2,7 +2,7 @@
2
2
  import { FilterMatchMode } from 'primereact/api';
3
3
  import { Column, ColumnFilterElementTemplateOptions } from "primereact/column";
4
4
  import { FormEvent } from "primereact/ts-helpers";
5
- import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/kanban/SolidVarInputsFilterElement';
5
+ import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/filter/SolidVarInputsFilterElement';
6
6
  import { SolidKanbanViewFieldsParams } from '../../../../../components/core/kanban/SolidKanbanViewFields';
7
7
 
8
8
  const SolidRelationManyToOneKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {
@@ -13,4 +13,4 @@ const SolidRelationManyToOneKanbanField = ({ solidKanbanViewMetaData, fieldMetad
13
13
 
14
14
  };
15
15
 
16
- export default SolidRelationManyToOneKanbanField;
16
+ export default SolidRelationManyToOneKanbanField;
@@ -17,6 +17,7 @@ export type SolidColumnProps = {
17
17
  headerClassName?: string;
18
18
  frozen?: boolean;
19
19
  alignFrozen?: "left" | "right";
20
+ frozenBackground?: string;
20
21
  [key: string]: any;
21
22
  };
22
23
  export declare function Column(_props: SolidColumnProps): null;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDataTable.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidDataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;CACxB,CAAC;AAEF,KAAK,cAAc,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;AAChE,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,wBAAgB,MAAM,CAAC,MAAM,EAAE,gBAAgB,QAE9C;AAED,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IACtD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,MAAM,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AA4BF,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,IAAe,EACf,cAAc,EACd,OAAc,EACd,YAAY,EACZ,IAAS,EACT,KAAS,EACT,YAAgB,EAChB,kBAAsC,EACtC,MAAM,EACN,MAAM,EACN,SAAS,EACT,SAAa,EACb,aAAoB,EACpB,SAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,yBAAgE,GACjE,EAAE,mBAAmB,2CAiNrB"}
1
+ {"version":3,"file":"SolidDataTable.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidDataTable.tsx"],"names":[],"mappings":"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"}
@@ -56,6 +56,23 @@ function nextSortOrder(active, order, removableSort) {
56
56
  return -1;
57
57
  return removableSort ? 0 : 1;
58
58
  }
59
+ function getFrozenCellStyle(props, baseStyle) {
60
+ var _a;
61
+ if (!props.frozen)
62
+ return baseStyle !== null && baseStyle !== void 0 ? baseStyle : {};
63
+ var stickyStyle = {
64
+ position: "sticky",
65
+ zIndex: 3,
66
+ background: (_a = props.frozenBackground) !== null && _a !== void 0 ? _a : "var(--background)",
67
+ };
68
+ if (props.alignFrozen === "right") {
69
+ stickyStyle.right = 0;
70
+ }
71
+ else {
72
+ stickyStyle.left = 0;
73
+ }
74
+ return __assign(__assign({}, baseStyle), stickyStyle);
75
+ }
59
76
  export function SolidDataTable(_a) {
60
77
  var value = _a.value, children = _a.children, _b = _a.size, size = _b === void 0 ? "normal" : _b, viewportHeight = _a.viewportHeight, _c = _a.dataKey, dataKey = _c === void 0 ? "id" : _c, emptyMessage = _a.emptyMessage, _d = _a.rows, rows = _d === void 0 ? 25 : _d, _e = _a.first, first = _e === void 0 ? 0 : _e, _f = _a.totalRecords, totalRecords = _f === void 0 ? 0 : _f, _g = _a.rowsPerPageOptions, rowsPerPageOptions = _g === void 0 ? [10, 25, 50, 100] : _g, onPage = _a.onPage, onSort = _a.onSort, sortField = _a.sortField, _h = _a.sortOrder, sortOrder = _h === void 0 ? 0 : _h, _j = _a.removableSort, removableSort = _j === void 0 ? true : _j, _k = _a.selection, selection = _k === void 0 ? [] : _k, selectionMode = _a.selectionMode, onSelectionChange = _a.onSelectionChange, onRowClick = _a.onRowClick, rowClassName = _a.rowClassName, tableClassName = _a.tableClassName, paginatorClassName = _a.paginatorClassName, _l = _a.currentPageReportTemplate, currentPageReportTemplate = _l === void 0 ? "{first} - {last} of {totalRecords}" : _l;
61
78
  var columns = normalizeColumns(children);
@@ -110,7 +127,7 @@ export function SolidDataTable(_a) {
110
127
  var isSortable = Boolean(props.sortable && props.field && !isSelectionColumn);
111
128
  var isActiveSort = isSortable && sortField === props.field;
112
129
  var iconNode = resolveSortIcon(Boolean(isActiveSort), sortOrder);
113
- return (_jsx("th", { className: cx("solid-data-table-th text-left text-foreground whitespace-nowrap", isSelectionColumn ? "solid-data-table-selection-col" : undefined, props.headerClassName), style: __assign(__assign({}, props.style), props.headerStyle), children: isSelectionColumn ? (_jsx("input", { type: "checkbox", checked: allSelected, onChange: function (e) { return toggleSelectAll(e.currentTarget.checked); }, "aria-label": "Select all rows" })) : (_jsxs("button", { type: "button", className: cx("solid-table-header-button", isSortable ? "is-sortable" : undefined), onClick: function () {
130
+ return (_jsx("th", { className: cx("solid-data-table-th text-left text-foreground whitespace-nowrap", props.frozen ? "solid-tree-sticky-cell" : undefined, props.frozen && props.alignFrozen === "right" ? "solid-tree-sticky-cell-right" : undefined, props.frozen && props.alignFrozen !== "right" ? "solid-tree-sticky-cell-left" : undefined, isSelectionColumn ? "solid-data-table-selection-col" : undefined, props.headerClassName), style: getFrozenCellStyle(props, __assign(__assign({}, props.style), props.headerStyle)), children: isSelectionColumn ? (_jsx("input", { type: "checkbox", checked: allSelected, onChange: function (e) { return toggleSelectAll(e.currentTarget.checked); }, "aria-label": "Select all rows" })) : (_jsxs("button", { type: "button", className: cx("solid-table-header-button", isSortable ? "is-sortable" : undefined), onClick: function () {
114
131
  if (!isSortable)
115
132
  return;
116
133
  var nextOrder = nextSortOrder(Boolean(isActiveSort), sortOrder, removableSort);
@@ -137,7 +154,7 @@ export function SolidDataTable(_a) {
137
154
  : props.field
138
155
  ? rowData === null || rowData === void 0 ? void 0 : rowData[props.field]
139
156
  : null;
140
- return (_jsx("td", { className: cx("solid-data-table-td align-top text-foreground", isSelectionColumn ? "solid-data-table-selection-col" : undefined, props.className), style: props.style, children: content }, "cell-".concat(key, "-").concat(index)));
157
+ return (_jsx("td", { className: cx("solid-data-table-td align-top text-foreground", props.frozen ? "solid-tree-sticky-cell" : undefined, props.frozen && props.alignFrozen === "right" ? "solid-tree-sticky-cell-right" : undefined, props.frozen && props.alignFrozen !== "right" ? "solid-tree-sticky-cell-left" : undefined, isSelectionColumn ? "solid-data-table-selection-col" : undefined, props.className), style: getFrozenCellStyle(props, props.style), children: content }, "cell-".concat(key, "-").concat(index)));
141
158
  }) }, key));
142
159
  })) })] }) }), typeof onPage === "function" ? (_jsxs("div", { className: cx("w-full solid-table-paginator solid-table-paginator-align-end flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background", paginatorClassName), children: [_jsxs("div", { className: "solid-paginator-meta flex items-center gap-2 ml-auto", children: [_jsx("span", { className: "solid-paginator-label", children: "Rows" }), _jsx("select", { value: rows, onChange: function (e) { return onPage({ first: 0, rows: Number(e.target.value) }); }, className: "solid-paginator-select", children: rowsPerPageOptions.map(function (option) { return (_jsx("option", { value: option, children: option }, option)); }) }), _jsx("span", { className: "solid-paginator-report", children: report })] }), _jsxs("div", { className: "solid-paginator-actions flex items-center gap-2", children: [_jsx("button", { type: "button", className: "solid-paginator-btn", onClick: function () { return onPage({ first: Math.max(0, first - rows), rows: rows }); }, disabled: currentPage <= 1, children: "Previous" }), _jsx("button", { type: "button", className: "solid-paginator-btn", onClick: function () { return onPage({ first: Math.min((totalPages - 1) * rows, first + rows), rows: rows }); }, disabled: currentPage >= totalPages, children: "Next" })] })] })) : null] }));
143
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDataTable.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidDataTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { ArrowDownWideNarrow, ArrowUpDown, ArrowUpWideNarrow } from \"lucide-react\";\n\nexport type DataTableStateEvent = {\n sortField?: string;\n sortOrder?: 1 | -1 | 0;\n};\n\ntype HeaderRenderer = React.ReactNode | (() => React.ReactNode);\ntype BodyRenderer = (rowData: any) => React.ReactNode;\n\nexport type SolidColumnProps = {\n field?: string;\n header?: HeaderRenderer;\n body?: BodyRenderer;\n sortable?: boolean;\n selectionMode?: \"multiple\" | \"single\" | null;\n headerStyle?: React.CSSProperties;\n style?: React.CSSProperties;\n className?: string;\n headerClassName?: string;\n frozen?: boolean;\n alignFrozen?: \"left\" | \"right\";\n [key: string]: any;\n};\n\nexport function Column(_props: SolidColumnProps) {\n return null;\n}\n\ntype SolidDataTableProps = {\n value: any[];\n children: React.ReactNode;\n size?: \"small\" | \"normal\" | \"large\";\n viewportHeight?: string;\n dataKey?: string;\n emptyMessage?: React.ReactNode;\n rows?: number;\n first?: number;\n totalRecords?: number;\n rowsPerPageOptions?: number[];\n onPage?: (event: { first: number; rows: number }) => void;\n onSort?: (event: DataTableStateEvent) => void;\n sortField?: string;\n sortOrder?: 1 | -1 | 0;\n removableSort?: boolean;\n selection?: any[];\n selectionMode?: \"checkbox\" | null;\n onSelectionChange?: (event: { value: any[] }) => void;\n onRowClick?: (event: { data: any }) => void;\n rowClassName?: (rowData: any) => string;\n tableClassName?: string;\n paginatorClassName?: string;\n currentPageReportTemplate?: string;\n [key: string]: any;\n};\n\nconst cx = (...parts: Array<string | undefined | false>) => parts.filter(Boolean).join(\" \");\n\nfunction renderHeaderNode(header?: HeaderRenderer) {\n if (typeof header === \"function\") return header();\n return header ?? null;\n}\n\nfunction normalizeColumns(children: React.ReactNode): React.ReactElement<SolidColumnProps>[] {\n return React.Children.toArray(children).filter((child): child is React.ReactElement<SolidColumnProps> => {\n return React.isValidElement(child);\n });\n}\n\nfunction resolveSortIcon(active: boolean, order: 1 | -1 | 0): React.ReactNode {\n if (!active || order === 0) return <ArrowUpDown size={14} aria-hidden=\"true\" />;\n return order === 1\n ? <ArrowUpWideNarrow size={14} aria-hidden=\"true\" />\n : <ArrowDownWideNarrow size={14} aria-hidden=\"true\" />;\n}\n\nfunction nextSortOrder(active: boolean, order: 1 | -1 | 0, removableSort = true): 1 | -1 | 0 {\n if (!active || order === 0) return 1;\n if (order === 1) return -1;\n return removableSort ? 0 : 1;\n}\n\nexport function SolidDataTable({\n value,\n children,\n size = \"normal\",\n viewportHeight,\n dataKey = \"id\",\n emptyMessage,\n rows = 25,\n first = 0,\n totalRecords = 0,\n rowsPerPageOptions = [10, 25, 50, 100],\n onPage,\n onSort,\n sortField,\n sortOrder = 0,\n removableSort = true,\n selection = [],\n selectionMode,\n onSelectionChange,\n onRowClick,\n rowClassName,\n tableClassName,\n paginatorClassName,\n currentPageReportTemplate = \"{first} - {last} of {totalRecords}\",\n}: SolidDataTableProps) {\n const columns = normalizeColumns(children);\n const pageRows = value ?? [];\n\n const selectedKeys = new Set((selection || []).map((row: any) => String(row?.[dataKey])));\n const allSelected = pageRows.length > 0 && pageRows.every((row: any) => selectedKeys.has(String(row?.[dataKey])));\n\n const start = totalRecords === 0 ? 0 : first + 1;\n const end = Math.min(first + rows, totalRecords);\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n\n const report = currentPageReportTemplate\n .replace(\"{first}\", String(start))\n .replace(\"{last}\", String(end))\n .replace(\"{totalRecords}\", String(totalRecords));\n\n const emitSelection = (nextSelection: any[]) => {\n onSelectionChange?.({ value: nextSelection });\n };\n\n const toggleSelectAll = (checked: boolean) => {\n if (!checked) {\n const pageKeys = new Set(pageRows.map((row: any) => String(row?.[dataKey])));\n emitSelection((selection || []).filter((row: any) => !pageKeys.has(String(row?.[dataKey]))));\n return;\n }\n const merged = [...(selection || [])];\n const mergedKeys = new Set(merged.map((row: any) => String(row?.[dataKey])));\n pageRows.forEach((row: any) => {\n const key = String(row?.[dataKey]);\n if (!mergedKeys.has(key)) merged.push(row);\n });\n emitSelection(merged);\n };\n\n const toggleRowSelection = (rowData: any, checked: boolean) => {\n const key = String(rowData?.[dataKey]);\n if (!checked) {\n emitSelection((selection || []).filter((row: any) => String(row?.[dataKey]) !== key));\n return;\n }\n emitSelection([...(selection || []), rowData]);\n };\n\n const densityClass =\n size === \"small\"\n ? \"solid-table-density-compact\"\n : size === \"large\"\n ? \"solid-table-density-comfortable\"\n : \"solid-table-density-cozy\";\n\n return (\n <div\n className={cx(\"solid-data-table-root w-full min-h-0\", densityClass)}\n style={{\n height: viewportHeight || \"100%\",\n maxHeight: viewportHeight || \"100%\",\n }}\n >\n <div className=\"solid-data-table-viewport min-h-0 rounded-md border border-border/60 bg-background\">\n <table className={cx(\"w-full text-sm border-collapse\", tableClassName)}>\n <thead className=\"solid-data-table-head sticky top-0 z-2\">\n <tr>\n {columns.map((column, index) => {\n const props = column.props;\n const isSelectionColumn = props.selectionMode === \"multiple\";\n const isSortable = Boolean(props.sortable && props.field && !isSelectionColumn);\n const isActiveSort = isSortable && sortField === props.field;\n const iconNode = resolveSortIcon(Boolean(isActiveSort), sortOrder);\n return (\n <th\n key={`header-${index}`}\n className={cx(\n \"solid-data-table-th text-left text-foreground whitespace-nowrap\",\n isSelectionColumn ? \"solid-data-table-selection-col\" : undefined,\n props.headerClassName\n )}\n style={{ ...props.style, ...props.headerStyle }}\n >\n {isSelectionColumn ? (\n <input\n type=\"checkbox\"\n checked={allSelected}\n onChange={(e) => toggleSelectAll(e.currentTarget.checked)}\n aria-label=\"Select all rows\"\n />\n ) : (\n <button\n type=\"button\"\n className={cx(\"solid-table-header-button\", isSortable ? \"is-sortable\" : undefined)}\n onClick={() => {\n if (!isSortable) return;\n const nextOrder = nextSortOrder(Boolean(isActiveSort), sortOrder, removableSort);\n onSort?.({\n sortField: nextOrder === 0 ? undefined : props.field,\n sortOrder: nextOrder,\n });\n }}\n >\n {renderHeaderNode(props.header)}\n {isSortable ? iconNode : null}\n </button>\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {pageRows.length === 0 ? (\n <tr>\n <td className=\"px-3 py-6 text-center text-muted-foreground\" colSpan={Math.max(columns.length, 1)}>\n {emptyMessage || \"No records found\"}\n </td>\n </tr>\n ) : (\n pageRows.map((rowData: any) => {\n const key = String(rowData?.[dataKey]);\n const rowSelected = selectedKeys.has(key);\n return (\n <tr\n key={key}\n className={cx(\"solid-data-table-row\", rowClassName?.(rowData))}\n onClick={(event) => {\n const target = event.target as HTMLElement;\n if (target.closest(\"button,a,input,label,[data-no-row-click='true']\")) return;\n onRowClick?.({ data: rowData });\n }}\n >\n {columns.map((column, index) => {\n const props = column.props;\n const isSelectionColumn = props.selectionMode === \"multiple\";\n const content = isSelectionColumn\n ? (\n <input\n type=\"checkbox\"\n checked={rowSelected}\n onChange={(e) => toggleRowSelection(rowData, e.currentTarget.checked)}\n onClick={(e) => e.stopPropagation()}\n aria-label=\"Select row\"\n />\n )\n : props.body\n ? props.body(rowData)\n : props.field\n ? rowData?.[props.field]\n : null;\n return (\n <td\n key={`cell-${key}-${index}`}\n className={cx(\n \"solid-data-table-td align-top text-foreground\",\n isSelectionColumn ? \"solid-data-table-selection-col\" : undefined,\n props.className\n )}\n style={props.style}\n >\n {content}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n\n {typeof onPage === \"function\" ? (\n <div\n className={cx(\"w-full solid-table-paginator solid-table-paginator-align-end flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\", paginatorClassName)}\n >\n <div className=\"solid-paginator-meta flex items-center gap-2 ml-auto\">\n <span className=\"solid-paginator-label\">Rows</span>\n <select\n value={rows}\n onChange={(e) => onPage({ first: 0, rows: Number(e.target.value) })}\n className=\"solid-paginator-select\"\n >\n {rowsPerPageOptions.map((option) => (\n <option key={option} value={option}>{option}</option>\n ))}\n </select>\n <span className=\"solid-paginator-report\">{report}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={() => onPage({ first: Math.max(0, first - rows), rows })}\n disabled={currentPage <= 1}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={() => onPage({ first: Math.min((totalPages - 1) * rows, first + rows), rows })}\n disabled={currentPage >= totalPages}\n >\n Next\n </button>\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidDataTable.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidDataTable.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { ArrowDownWideNarrow, ArrowUpDown, ArrowUpWideNarrow } from \"lucide-react\";\n\nexport type DataTableStateEvent = {\n sortField?: string;\n sortOrder?: 1 | -1 | 0;\n};\n\ntype HeaderRenderer = React.ReactNode | (() => React.ReactNode);\ntype BodyRenderer = (rowData: any) => React.ReactNode;\n\nexport type SolidColumnProps = {\n field?: string;\n header?: HeaderRenderer;\n body?: BodyRenderer;\n sortable?: boolean;\n selectionMode?: \"multiple\" | \"single\" | null;\n headerStyle?: React.CSSProperties;\n style?: React.CSSProperties;\n className?: string;\n headerClassName?: string;\n frozen?: boolean;\n alignFrozen?: \"left\" | \"right\";\n frozenBackground?: string;\n [key: string]: any;\n};\n\nexport function Column(_props: SolidColumnProps) {\n return null;\n}\n\ntype SolidDataTableProps = {\n value: any[];\n children: React.ReactNode;\n size?: \"small\" | \"normal\" | \"large\";\n viewportHeight?: string;\n dataKey?: string;\n emptyMessage?: React.ReactNode;\n rows?: number;\n first?: number;\n totalRecords?: number;\n rowsPerPageOptions?: number[];\n onPage?: (event: { first: number; rows: number }) => void;\n onSort?: (event: DataTableStateEvent) => void;\n sortField?: string;\n sortOrder?: 1 | -1 | 0;\n removableSort?: boolean;\n selection?: any[];\n selectionMode?: \"checkbox\" | null;\n onSelectionChange?: (event: { value: any[] }) => void;\n onRowClick?: (event: { data: any }) => void;\n rowClassName?: (rowData: any) => string;\n tableClassName?: string;\n paginatorClassName?: string;\n currentPageReportTemplate?: string;\n [key: string]: any;\n};\n\nconst cx = (...parts: Array<string | undefined | false>) => parts.filter(Boolean).join(\" \");\n\nfunction renderHeaderNode(header?: HeaderRenderer) {\n if (typeof header === \"function\") return header();\n return header ?? null;\n}\n\nfunction normalizeColumns(children: React.ReactNode): React.ReactElement<SolidColumnProps>[] {\n return React.Children.toArray(children).filter((child): child is React.ReactElement<SolidColumnProps> => {\n return React.isValidElement(child);\n });\n}\n\nfunction resolveSortIcon(active: boolean, order: 1 | -1 | 0): React.ReactNode {\n if (!active || order === 0) return <ArrowUpDown size={14} aria-hidden=\"true\" />;\n return order === 1\n ? <ArrowUpWideNarrow size={14} aria-hidden=\"true\" />\n : <ArrowDownWideNarrow size={14} aria-hidden=\"true\" />;\n}\n\nfunction nextSortOrder(active: boolean, order: 1 | -1 | 0, removableSort = true): 1 | -1 | 0 {\n if (!active || order === 0) return 1;\n if (order === 1) return -1;\n return removableSort ? 0 : 1;\n}\n\nfunction getFrozenCellStyle(\n props: SolidColumnProps,\n baseStyle?: React.CSSProperties\n): React.CSSProperties {\n if (!props.frozen) return baseStyle ?? {};\n\n const stickyStyle: React.CSSProperties = {\n position: \"sticky\",\n zIndex: 3,\n background: props.frozenBackground ?? \"var(--background)\",\n };\n\n if (props.alignFrozen === \"right\") {\n stickyStyle.right = 0;\n } else {\n stickyStyle.left = 0;\n }\n\n return { ...baseStyle, ...stickyStyle };\n}\n\nexport function SolidDataTable({\n value,\n children,\n size = \"normal\",\n viewportHeight,\n dataKey = \"id\",\n emptyMessage,\n rows = 25,\n first = 0,\n totalRecords = 0,\n rowsPerPageOptions = [10, 25, 50, 100],\n onPage,\n onSort,\n sortField,\n sortOrder = 0,\n removableSort = true,\n selection = [],\n selectionMode,\n onSelectionChange,\n onRowClick,\n rowClassName,\n tableClassName,\n paginatorClassName,\n currentPageReportTemplate = \"{first} - {last} of {totalRecords}\",\n}: SolidDataTableProps) {\n const columns = normalizeColumns(children);\n const pageRows = value ?? [];\n\n const selectedKeys = new Set((selection || []).map((row: any) => String(row?.[dataKey])));\n const allSelected = pageRows.length > 0 && pageRows.every((row: any) => selectedKeys.has(String(row?.[dataKey])));\n\n const start = totalRecords === 0 ? 0 : first + 1;\n const end = Math.min(first + rows, totalRecords);\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n\n const report = currentPageReportTemplate\n .replace(\"{first}\", String(start))\n .replace(\"{last}\", String(end))\n .replace(\"{totalRecords}\", String(totalRecords));\n\n const emitSelection = (nextSelection: any[]) => {\n onSelectionChange?.({ value: nextSelection });\n };\n\n const toggleSelectAll = (checked: boolean) => {\n if (!checked) {\n const pageKeys = new Set(pageRows.map((row: any) => String(row?.[dataKey])));\n emitSelection((selection || []).filter((row: any) => !pageKeys.has(String(row?.[dataKey]))));\n return;\n }\n const merged = [...(selection || [])];\n const mergedKeys = new Set(merged.map((row: any) => String(row?.[dataKey])));\n pageRows.forEach((row: any) => {\n const key = String(row?.[dataKey]);\n if (!mergedKeys.has(key)) merged.push(row);\n });\n emitSelection(merged);\n };\n\n const toggleRowSelection = (rowData: any, checked: boolean) => {\n const key = String(rowData?.[dataKey]);\n if (!checked) {\n emitSelection((selection || []).filter((row: any) => String(row?.[dataKey]) !== key));\n return;\n }\n emitSelection([...(selection || []), rowData]);\n };\n\n const densityClass =\n size === \"small\"\n ? \"solid-table-density-compact\"\n : size === \"large\"\n ? \"solid-table-density-comfortable\"\n : \"solid-table-density-cozy\";\n\n return (\n <div\n className={cx(\"solid-data-table-root w-full min-h-0\", densityClass)}\n style={{\n height: viewportHeight || \"100%\",\n maxHeight: viewportHeight || \"100%\",\n }}\n >\n <div className=\"solid-data-table-viewport min-h-0 rounded-md border border-border/60 bg-background\">\n <table className={cx(\"w-full text-sm border-collapse\", tableClassName)}>\n <thead className=\"solid-data-table-head sticky top-0 z-2\">\n <tr>\n {columns.map((column, index) => {\n const props = column.props;\n const isSelectionColumn = props.selectionMode === \"multiple\";\n const isSortable = Boolean(props.sortable && props.field && !isSelectionColumn);\n const isActiveSort = isSortable && sortField === props.field;\n const iconNode = resolveSortIcon(Boolean(isActiveSort), sortOrder);\n return (\n <th\n key={`header-${index}`}\n className={cx(\n \"solid-data-table-th text-left text-foreground whitespace-nowrap\",\n props.frozen ? \"solid-tree-sticky-cell\" : undefined,\n props.frozen && props.alignFrozen === \"right\" ? \"solid-tree-sticky-cell-right\" : undefined,\n props.frozen && props.alignFrozen !== \"right\" ? \"solid-tree-sticky-cell-left\" : undefined,\n isSelectionColumn ? \"solid-data-table-selection-col\" : undefined,\n props.headerClassName\n )}\n style={getFrozenCellStyle(props, { ...props.style, ...props.headerStyle })}\n >\n {isSelectionColumn ? (\n <input\n type=\"checkbox\"\n checked={allSelected}\n onChange={(e) => toggleSelectAll(e.currentTarget.checked)}\n aria-label=\"Select all rows\"\n />\n ) : (\n <button\n type=\"button\"\n className={cx(\"solid-table-header-button\", isSortable ? \"is-sortable\" : undefined)}\n onClick={() => {\n if (!isSortable) return;\n const nextOrder = nextSortOrder(Boolean(isActiveSort), sortOrder, removableSort);\n onSort?.({\n sortField: nextOrder === 0 ? undefined : props.field,\n sortOrder: nextOrder,\n });\n }}\n >\n {renderHeaderNode(props.header)}\n {isSortable ? iconNode : null}\n </button>\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {pageRows.length === 0 ? (\n <tr>\n <td className=\"px-3 py-6 text-center text-muted-foreground\" colSpan={Math.max(columns.length, 1)}>\n {emptyMessage || \"No records found\"}\n </td>\n </tr>\n ) : (\n pageRows.map((rowData: any) => {\n const key = String(rowData?.[dataKey]);\n const rowSelected = selectedKeys.has(key);\n return (\n <tr\n key={key}\n className={cx(\"solid-data-table-row\", rowClassName?.(rowData))}\n onClick={(event) => {\n const target = event.target as HTMLElement;\n if (target.closest(\"button,a,input,label,[data-no-row-click='true']\")) return;\n onRowClick?.({ data: rowData });\n }}\n >\n {columns.map((column, index) => {\n const props = column.props;\n const isSelectionColumn = props.selectionMode === \"multiple\";\n const content = isSelectionColumn\n ? (\n <input\n type=\"checkbox\"\n checked={rowSelected}\n onChange={(e) => toggleRowSelection(rowData, e.currentTarget.checked)}\n onClick={(e) => e.stopPropagation()}\n aria-label=\"Select row\"\n />\n )\n : props.body\n ? props.body(rowData)\n : props.field\n ? rowData?.[props.field]\n : null;\n return (\n <td\n key={`cell-${key}-${index}`}\n className={cx(\n \"solid-data-table-td align-top text-foreground\",\n props.frozen ? \"solid-tree-sticky-cell\" : undefined,\n props.frozen && props.alignFrozen === \"right\" ? \"solid-tree-sticky-cell-right\" : undefined,\n props.frozen && props.alignFrozen !== \"right\" ? \"solid-tree-sticky-cell-left\" : undefined,\n isSelectionColumn ? \"solid-data-table-selection-col\" : undefined,\n props.className\n )}\n style={getFrozenCellStyle(props, props.style)}\n >\n {content}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n\n {typeof onPage === \"function\" ? (\n <div\n className={cx(\"w-full solid-table-paginator solid-table-paginator-align-end flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\", paginatorClassName)}\n >\n <div className=\"solid-paginator-meta flex items-center gap-2 ml-auto\">\n <span className=\"solid-paginator-label\">Rows</span>\n <select\n value={rows}\n onChange={(e) => onPage({ first: 0, rows: Number(e.target.value) })}\n className=\"solid-paginator-select\"\n >\n {rowsPerPageOptions.map((option) => (\n <option key={option} value={option}>{option}</option>\n ))}\n </select>\n <span className=\"solid-paginator-report\">{report}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={() => onPage({ first: Math.max(0, first - rows), rows })}\n disabled={currentPage <= 1}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={() => onPage({ first: Math.min((totalPages - 1) * rows, first + rows), rows })}\n disabled={currentPage >= totalPages}\n >\n Next\n </button>\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n"]}
@@ -21,6 +21,7 @@ export type SolidColumnProps = {
21
21
  headerClassName?: string;
22
22
  frozen?: boolean;
23
23
  alignFrozen?: "left" | "right";
24
+ frozenBackground?: string;
24
25
  [key: string]: any;
25
26
  };
26
27
 
@@ -81,6 +82,27 @@ function nextSortOrder(active: boolean, order: 1 | -1 | 0, removableSort = true)
81
82
  return removableSort ? 0 : 1;
82
83
  }
83
84
 
85
+ function getFrozenCellStyle(
86
+ props: SolidColumnProps,
87
+ baseStyle?: React.CSSProperties
88
+ ): React.CSSProperties {
89
+ if (!props.frozen) return baseStyle ?? {};
90
+
91
+ const stickyStyle: React.CSSProperties = {
92
+ position: "sticky",
93
+ zIndex: 3,
94
+ background: props.frozenBackground ?? "var(--background)",
95
+ };
96
+
97
+ if (props.alignFrozen === "right") {
98
+ stickyStyle.right = 0;
99
+ } else {
100
+ stickyStyle.left = 0;
101
+ }
102
+
103
+ return { ...baseStyle, ...stickyStyle };
104
+ }
105
+
84
106
  export function SolidDataTable({
85
107
  value,
86
108
  children,
@@ -180,10 +202,13 @@ export function SolidDataTable({
180
202
  key={`header-${index}`}
181
203
  className={cx(
182
204
  "solid-data-table-th text-left text-foreground whitespace-nowrap",
205
+ props.frozen ? "solid-tree-sticky-cell" : undefined,
206
+ props.frozen && props.alignFrozen === "right" ? "solid-tree-sticky-cell-right" : undefined,
207
+ props.frozen && props.alignFrozen !== "right" ? "solid-tree-sticky-cell-left" : undefined,
183
208
  isSelectionColumn ? "solid-data-table-selection-col" : undefined,
184
209
  props.headerClassName
185
210
  )}
186
- style={{ ...props.style, ...props.headerStyle }}
211
+ style={getFrozenCellStyle(props, { ...props.style, ...props.headerStyle })}
187
212
  >
188
213
  {isSelectionColumn ? (
189
214
  <input
@@ -258,10 +283,13 @@ export function SolidDataTable({
258
283
  key={`cell-${key}-${index}`}
259
284
  className={cx(
260
285
  "solid-data-table-td align-top text-foreground",
286
+ props.frozen ? "solid-tree-sticky-cell" : undefined,
287
+ props.frozen && props.alignFrozen === "right" ? "solid-tree-sticky-cell-right" : undefined,
288
+ props.frozen && props.alignFrozen !== "right" ? "solid-tree-sticky-cell-left" : undefined,
261
289
  isSelectionColumn ? "solid-data-table-selection-col" : undefined,
262
290
  props.className
263
291
  )}
264
- style={props.style}
292
+ style={getFrozenCellStyle(props, props.style)}
265
293
  >
266
294
  {content}
267
295
  </td>
@@ -0,0 +1,15 @@
1
+ type SolidDataTablePaginationProps = {
2
+ rows: number;
3
+ first: number;
4
+ totalRecords: number;
5
+ rowsPerPageOptions?: number[];
6
+ onPage: (event: {
7
+ first: number;
8
+ rows: number;
9
+ }) => void;
10
+ currentPageReportTemplate?: string;
11
+ className?: string;
12
+ };
13
+ export declare function SolidDataTablePagination({ rows, first, totalRecords, rowsPerPageOptions, onPage, currentPageReportTemplate, className, }: SolidDataTablePaginationProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=SolidDataTablePagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidDataTablePagination.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidDataTablePagination.tsx"],"names":[],"mappings":"AAEA,KAAK,6BAA6B,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACzD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,kBAAsC,EACtC,MAAM,EACN,yBAAgE,EAChE,SAAS,GACV,EAAE,6BAA6B,2CA+C/B"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ var cx = function () {
3
+ var parts = [];
4
+ for (var _i = 0; _i < arguments.length; _i++) {
5
+ parts[_i] = arguments[_i];
6
+ }
7
+ return parts.filter(Boolean).join(" ");
8
+ };
9
+ export function SolidDataTablePagination(_a) {
10
+ var rows = _a.rows, first = _a.first, totalRecords = _a.totalRecords, _b = _a.rowsPerPageOptions, rowsPerPageOptions = _b === void 0 ? [10, 25, 50, 100] : _b, onPage = _a.onPage, _c = _a.currentPageReportTemplate, currentPageReportTemplate = _c === void 0 ? "{first} - {last} of {totalRecords}" : _c, className = _a.className;
11
+ var safeRows = rows > 0 ? rows : 25;
12
+ var start = totalRecords === 0 ? 0 : first + 1;
13
+ var end = Math.min(first + safeRows, totalRecords);
14
+ var currentPage = Math.floor(first / safeRows) + 1;
15
+ var totalPages = Math.max(1, Math.ceil(totalRecords / safeRows));
16
+ var report = currentPageReportTemplate
17
+ .replace("{first}", String(start))
18
+ .replace("{last}", String(end))
19
+ .replace("{totalRecords}", String(totalRecords));
20
+ return (_jsxs("div", { className: cx("w-full solid-table-paginator flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background", className), children: [_jsxs("div", { className: "solid-paginator-meta flex items-center gap-2 ml-auto", children: [_jsx("span", { className: "solid-paginator-label", children: "Rows" }), _jsx("select", { value: safeRows, onChange: function (e) { return onPage({ first: 0, rows: Number(e.target.value) }); }, className: "solid-paginator-select", children: rowsPerPageOptions.map(function (option) { return (_jsx("option", { value: option, children: option }, option)); }) }), _jsx("span", { className: "solid-paginator-report", children: report })] }), _jsxs("div", { className: "solid-paginator-actions flex items-center gap-2", children: [_jsx("button", { type: "button", className: "solid-paginator-btn", onClick: function () { return onPage({ first: Math.max(0, first - safeRows), rows: safeRows }); }, disabled: currentPage <= 1, children: "Previous" }), _jsx("button", { type: "button", className: "solid-paginator-btn", onClick: function () { return onPage({ first: Math.min((totalPages - 1) * safeRows, first + safeRows), rows: safeRows }); }, disabled: currentPage >= totalPages, children: "Next" })] })] }));
21
+ }
22
+ //# sourceMappingURL=SolidDataTablePagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidDataTablePagination.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidDataTablePagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\ntype SolidDataTablePaginationProps = {\n rows: number;\n first: number;\n totalRecords: number;\n rowsPerPageOptions?: number[];\n onPage: (event: { first: number; rows: number }) => void;\n currentPageReportTemplate?: string;\n className?: string;\n};\n\nconst cx = (...parts: Array<string | undefined | false>) => parts.filter(Boolean).join(\" \");\n\nexport function SolidDataTablePagination({\n rows,\n first,\n totalRecords,\n rowsPerPageOptions = [10, 25, 50, 100],\n onPage,\n currentPageReportTemplate = \"{first} - {last} of {totalRecords}\",\n className,\n}: SolidDataTablePaginationProps) {\n const safeRows = rows > 0 ? rows : 25;\n const start = totalRecords === 0 ? 0 : first + 1;\n const end = Math.min(first + safeRows, totalRecords);\n const currentPage = Math.floor(first / safeRows) + 1;\n const totalPages = Math.max(1, Math.ceil(totalRecords / safeRows));\n\n const report = currentPageReportTemplate\n .replace(\"{first}\", String(start))\n .replace(\"{last}\", String(end))\n .replace(\"{totalRecords}\", String(totalRecords));\n\n return (\n <div className={cx(\"w-full solid-table-paginator flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\", className)}>\n <div className=\"solid-paginator-meta flex items-center gap-2 ml-auto\">\n <span className=\"solid-paginator-label\">Rows</span>\n <select\n value={safeRows}\n onChange={(e) => onPage({ first: 0, rows: Number(e.target.value) })}\n className=\"solid-paginator-select\"\n >\n {rowsPerPageOptions.map((option) => (\n <option key={option} value={option}>{option}</option>\n ))}\n </select>\n <span className=\"solid-paginator-report\">{report}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={() => onPage({ first: Math.max(0, first - safeRows), rows: safeRows })}\n disabled={currentPage <= 1}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={() => onPage({ first: Math.min((totalPages - 1) * safeRows, first + safeRows), rows: safeRows })}\n disabled={currentPage >= totalPages}\n >\n Next\n </button>\n </div>\n </div>\n );\n}\n\n"]}
@@ -0,0 +1,71 @@
1
+ import React from "react";
2
+
3
+ type SolidDataTablePaginationProps = {
4
+ rows: number;
5
+ first: number;
6
+ totalRecords: number;
7
+ rowsPerPageOptions?: number[];
8
+ onPage: (event: { first: number; rows: number }) => void;
9
+ currentPageReportTemplate?: string;
10
+ className?: string;
11
+ };
12
+
13
+ const cx = (...parts: Array<string | undefined | false>) => parts.filter(Boolean).join(" ");
14
+
15
+ export function SolidDataTablePagination({
16
+ rows,
17
+ first,
18
+ totalRecords,
19
+ rowsPerPageOptions = [10, 25, 50, 100],
20
+ onPage,
21
+ currentPageReportTemplate = "{first} - {last} of {totalRecords}",
22
+ className,
23
+ }: SolidDataTablePaginationProps) {
24
+ const safeRows = rows > 0 ? rows : 25;
25
+ const start = totalRecords === 0 ? 0 : first + 1;
26
+ const end = Math.min(first + safeRows, totalRecords);
27
+ const currentPage = Math.floor(first / safeRows) + 1;
28
+ const totalPages = Math.max(1, Math.ceil(totalRecords / safeRows));
29
+
30
+ const report = currentPageReportTemplate
31
+ .replace("{first}", String(start))
32
+ .replace("{last}", String(end))
33
+ .replace("{totalRecords}", String(totalRecords));
34
+
35
+ return (
36
+ <div className={cx("w-full solid-table-paginator flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background", className)}>
37
+ <div className="solid-paginator-meta flex items-center gap-2 ml-auto">
38
+ <span className="solid-paginator-label">Rows</span>
39
+ <select
40
+ value={safeRows}
41
+ onChange={(e) => onPage({ first: 0, rows: Number(e.target.value) })}
42
+ className="solid-paginator-select"
43
+ >
44
+ {rowsPerPageOptions.map((option) => (
45
+ <option key={option} value={option}>{option}</option>
46
+ ))}
47
+ </select>
48
+ <span className="solid-paginator-report">{report}</span>
49
+ </div>
50
+ <div className="solid-paginator-actions flex items-center gap-2">
51
+ <button
52
+ type="button"
53
+ className="solid-paginator-btn"
54
+ onClick={() => onPage({ first: Math.max(0, first - safeRows), rows: safeRows })}
55
+ disabled={currentPage <= 1}
56
+ >
57
+ Previous
58
+ </button>
59
+ <button
60
+ type="button"
61
+ className="solid-paginator-btn"
62
+ onClick={() => onPage({ first: Math.min((totalPages - 1) * safeRows, first + safeRows), rows: safeRows })}
63
+ disabled={currentPage >= totalPages}
64
+ >
65
+ Next
66
+ </button>
67
+ </div>
68
+ </div>
69
+ );
70
+ }
71
+