@solidxai/core-ui 0.1.12-beta.6 → 0.1.12-beta.8

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 (286) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +19 -17
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +59 -34
  5. package/dist/components/common/BackendReconnectIndicator.d.ts +6 -0
  6. package/dist/components/common/BackendReconnectIndicator.d.ts.map +1 -0
  7. package/dist/components/common/BackendReconnectIndicator.js +25 -0
  8. package/dist/components/common/BackendReconnectIndicator.js.map +1 -0
  9. package/dist/components/common/BackendReconnectIndicator.tsx +45 -0
  10. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  11. package/dist/components/common/SettingsComponent.js +7 -3
  12. package/dist/components/common/SettingsComponent.js.map +1 -1
  13. package/dist/components/common/SettingsComponent.module.css +144 -12
  14. package/dist/components/common/SettingsComponent.tsx +22 -3
  15. package/dist/components/common/SolidAdmin.d.ts.map +1 -1
  16. package/dist/components/common/SolidAdmin.js +7 -2
  17. package/dist/components/common/SolidAdmin.js.map +1 -1
  18. package/dist/components/common/SolidAdmin.tsx +7 -2
  19. package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
  20. package/dist/components/common/SolidBreadcrumb.js +1 -6
  21. package/dist/components/common/SolidBreadcrumb.js.map +1 -1
  22. package/dist/components/common/SolidBreadcrumb.tsx +1 -8
  23. package/dist/components/common/SolidMaterialSymbol.d.ts +10 -0
  24. package/dist/components/common/SolidMaterialSymbol.d.ts.map +1 -0
  25. package/dist/components/common/SolidMaterialSymbol.js +69 -0
  26. package/dist/components/common/SolidMaterialSymbol.js.map +1 -0
  27. package/dist/components/common/SolidMaterialSymbol.tsx +96 -0
  28. package/dist/components/common/SolidToastProvider.d.ts.map +1 -1
  29. package/dist/components/common/SolidToastProvider.js +14 -1
  30. package/dist/components/common/SolidToastProvider.js.map +1 -1
  31. package/dist/components/common/SolidToastProvider.tsx +19 -1
  32. package/dist/components/core/card/CardGrid.d.ts +1 -1
  33. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  34. package/dist/components/core/card/CardGrid.js +2 -2
  35. package/dist/components/core/card/CardGrid.js.map +1 -1
  36. package/dist/components/core/card/CardGrid.tsx +4 -0
  37. package/dist/components/core/card/CardItem.d.ts +2 -0
  38. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  39. package/dist/components/core/card/CardItem.js +7 -2
  40. package/dist/components/core/card/CardItem.js.map +1 -1
  41. package/dist/components/core/card/CardItem.tsx +30 -8
  42. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  43. package/dist/components/core/card/SolidCardView.js +87 -21
  44. package/dist/components/core/card/SolidCardView.js.map +1 -1
  45. package/dist/components/core/card/SolidCardView.tsx +96 -40
  46. package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
  47. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  48. package/dist/components/core/card/SolidCardViewConfigure.js +9 -7
  49. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  50. package/dist/components/core/card/SolidCardViewConfigure.tsx +14 -1
  51. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +3 -1
  52. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  53. package/dist/components/core/common/SolidGlobalSearchElement.js +4 -3
  54. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  55. package/dist/components/core/common/SolidGlobalSearchElement.tsx +15 -19
  56. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  57. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +43 -16
  58. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  59. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +24 -2
  60. package/dist/components/core/form/SolidFormFooter.js +1 -1
  61. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  62. package/dist/components/core/form/SolidFormFooter.tsx +1 -1
  63. package/dist/components/core/form/SolidFormLayouts.js +1 -1
  64. package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
  65. package/dist/components/core/form/SolidFormLayouts.tsx +2 -2
  66. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  67. package/dist/components/core/form/fields/SolidMediaMultipleField.js +120 -56
  68. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  69. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +63 -50
  70. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  71. package/dist/components/core/form/fields/SolidMediaSingleField.js +115 -37
  72. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  73. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +36 -35
  74. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  75. package/dist/components/core/form/fields/SolidRichTextField.js +67 -4
  76. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  77. package/dist/components/core/form/fields/SolidRichTextField.tsx +89 -7
  78. package/dist/components/core/form/fields/mediaFieldUtils.d.ts +3 -0
  79. package/dist/components/core/form/fields/mediaFieldUtils.d.ts.map +1 -0
  80. package/dist/components/core/form/fields/mediaFieldUtils.js +30 -0
  81. package/dist/components/core/form/fields/mediaFieldUtils.js.map +1 -0
  82. package/dist/components/core/form/fields/mediaFieldUtils.ts +45 -0
  83. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
  84. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +1 -1
  85. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
  86. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +3 -1
  87. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  88. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +22 -23
  89. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  90. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +13 -7
  91. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
  92. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +16 -11
  93. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  94. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +32 -18
  95. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.d.ts.map +1 -1
  96. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js +3 -1
  97. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js.map +1 -1
  98. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.tsx +11 -5
  99. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  100. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  101. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  102. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  103. package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
  104. package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
  105. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  106. package/dist/components/core/kanban/KanbanCard.js +10 -5
  107. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  108. package/dist/components/core/kanban/KanbanCard.tsx +28 -12
  109. package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
  110. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  111. package/dist/components/core/kanban/KanbanColumn.js +2 -2
  112. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  113. package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
  114. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  115. package/dist/components/core/kanban/SolidKanbanView.js +154 -25
  116. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  117. package/dist/components/core/kanban/SolidKanbanView.tsx +129 -16
  118. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
  119. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  120. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +13 -10
  121. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  122. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +18 -3
  123. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  124. package/dist/components/core/list/SolidDataTable.js +3 -2
  125. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  126. package/dist/components/core/list/SolidDataTable.tsx +3 -2
  127. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  128. package/dist/components/core/list/SolidListView.js +16 -5
  129. package/dist/components/core/list/SolidListView.js.map +1 -1
  130. package/dist/components/core/list/SolidListView.tsx +20 -8
  131. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  132. package/dist/components/core/list/SolidListViewColumn.js +1 -0
  133. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  134. package/dist/components/core/list/SolidListViewColumn.tsx +1 -0
  135. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  136. package/dist/components/core/list/columns/SolidShortTextColumn.js +7 -2
  137. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  138. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +7 -2
  139. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
  140. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +4 -1
  141. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
  142. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +5 -2
  143. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  144. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +2 -1
  145. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  146. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +2 -1
  147. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
  148. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +4 -1
  149. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
  150. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +5 -2
  151. package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
  152. package/dist/components/core/locales/SolidLocale.js +1 -1
  153. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  154. package/dist/components/core/locales/SolidLocale.tsx +1 -0
  155. package/dist/components/core/model/CreateModel.css +26 -0
  156. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  157. package/dist/components/core/model/FieldMetaData.js +21 -3
  158. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  159. package/dist/components/core/model/FieldMetaData.tsx +45 -4
  160. package/dist/components/core/model/FieldMetaDataForm.css +82 -0
  161. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -0
  162. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  163. package/dist/components/core/model/FieldMetaDataForm.js +246 -235
  164. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  165. package/dist/components/core/model/FieldMetaDataForm.tsx +46 -34
  166. package/dist/components/core/model/FieldSelector.js +1 -1
  167. package/dist/components/core/model/FieldSelector.js.map +1 -1
  168. package/dist/components/core/model/FieldSelector.tsx +1 -1
  169. package/dist/components/core/model/ModelMetaData.js +1 -1
  170. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  171. package/dist/components/core/model/ModelMetaData.tsx +1 -1
  172. package/dist/components/core/module/CreateModule.css +55 -2
  173. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  174. package/dist/components/core/module/CreateModule.js +2 -2
  175. package/dist/components/core/module/CreateModule.js.map +1 -1
  176. package/dist/components/core/module/CreateModule.tsx +3 -2
  177. package/dist/components/core/module/ModuleMetadataExplorer.css +27 -0
  178. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -1
  179. package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
  180. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
  181. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -0
  182. package/dist/components/core/tree/SolidTreeTable.d.ts +2 -1
  183. package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
  184. package/dist/components/core/tree/SolidTreeTable.js +2 -2
  185. package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
  186. package/dist/components/core/tree/SolidTreeTable.tsx +3 -1
  187. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  188. package/dist/components/core/tree/SolidTreeView.js +44 -16
  189. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  190. package/dist/components/core/tree/SolidTreeView.tsx +55 -24
  191. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  192. package/dist/components/core/users/CreateUser.js +45 -32
  193. package/dist/components/core/users/CreateUser.js.map +1 -1
  194. package/dist/components/core/users/CreateUser.tsx +15 -4
  195. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
  196. package/dist/components/layout/AdminHeaderActions.js +10 -9
  197. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  198. package/dist/components/layout/AdminHeaderActions.tsx +2 -0
  199. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  200. package/dist/components/layout/AppSidebar.js +2 -1
  201. package/dist/components/layout/AppSidebar.js.map +1 -1
  202. package/dist/components/layout/AppSidebar.tsx +12 -5
  203. package/dist/components/layout/SolidMenuItemIcon.d.ts +9 -0
  204. package/dist/components/layout/SolidMenuItemIcon.d.ts.map +1 -0
  205. package/dist/components/layout/SolidMenuItemIcon.js +20 -0
  206. package/dist/components/layout/SolidMenuItemIcon.js.map +1 -0
  207. package/dist/components/layout/SolidMenuItemIcon.tsx +45 -0
  208. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  209. package/dist/components/layout/navbar-two-menu.js +6 -7
  210. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  211. package/dist/components/layout/navbar-two-menu.tsx +4 -12
  212. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  213. package/dist/components/shad-cn-ui/SolidCodeEditor.js +30 -2
  214. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  215. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +38 -1
  216. package/dist/helpers/backendHealthMonitor.d.ts +39 -0
  217. package/dist/helpers/backendHealthMonitor.d.ts.map +1 -0
  218. package/dist/helpers/backendHealthMonitor.js +255 -0
  219. package/dist/helpers/backendHealthMonitor.js.map +1 -0
  220. package/dist/helpers/backendHealthMonitor.ts +177 -0
  221. package/dist/helpers/helpers.d.ts +1 -0
  222. package/dist/helpers/helpers.d.ts.map +1 -1
  223. package/dist/helpers/helpers.js +9 -0
  224. package/dist/helpers/helpers.js.map +1 -1
  225. package/dist/helpers/helpers.ts +11 -1
  226. package/dist/helpers/menuItemIcons.d.ts +34 -0
  227. package/dist/helpers/menuItemIcons.d.ts.map +1 -0
  228. package/dist/helpers/menuItemIcons.js +144 -0
  229. package/dist/helpers/menuItemIcons.js.map +1 -0
  230. package/dist/helpers/menuItemIcons.ts +191 -0
  231. package/dist/helpers/relationDisplay.d.ts +3 -0
  232. package/dist/helpers/relationDisplay.d.ts.map +1 -0
  233. package/dist/helpers/relationDisplay.js +92 -0
  234. package/dist/helpers/relationDisplay.js.map +1 -0
  235. package/dist/helpers/relationDisplay.ts +101 -0
  236. package/dist/helpers/settingsPayload.d.ts +1 -0
  237. package/dist/helpers/settingsPayload.d.ts.map +1 -1
  238. package/dist/helpers/settingsPayload.js.map +1 -1
  239. package/dist/helpers/settingsPayload.ts +1 -0
  240. package/dist/helpers/solidIcons.d.ts +2 -0
  241. package/dist/helpers/solidIcons.d.ts.map +1 -1
  242. package/dist/helpers/solidIcons.js +8 -0
  243. package/dist/helpers/solidIcons.js.map +1 -1
  244. package/dist/helpers/solidIcons.tsx +10 -1
  245. package/dist/helpers/waitForBackendAvailability.d.ts +1 -0
  246. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -1
  247. package/dist/helpers/waitForBackendAvailability.js +35 -22
  248. package/dist/helpers/waitForBackendAvailability.js.map +1 -1
  249. package/dist/helpers/waitForBackendAvailability.ts +18 -12
  250. package/dist/http/solidHttp.d.ts.map +1 -1
  251. package/dist/http/solidHttp.js +10 -4
  252. package/dist/http/solidHttp.js.map +1 -1
  253. package/dist/http/solidHttp.ts +9 -4
  254. package/dist/redux/api/datasourceIntrospectionApi.d.ts +4 -0
  255. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
  256. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
  257. package/dist/redux/api/datasourceIntrospectionApi.ts +4 -0
  258. package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
  259. package/dist/redux/api/fetchBaseQuery.js +9 -3
  260. package/dist/redux/api/fetchBaseQuery.js.map +1 -1
  261. package/dist/redux/api/fetchBaseQuery.tsx +9 -3
  262. package/dist/redux/store/StoreProvider.d.ts.map +1 -1
  263. package/dist/redux/store/StoreProvider.js +4 -3
  264. package/dist/redux/store/StoreProvider.js.map +1 -1
  265. package/dist/redux/store/StoreProvider.tsx +4 -3
  266. package/dist/redux/store/defaultStoreConfig.d.ts +5 -5
  267. package/dist/resources/globals.css +341 -49
  268. package/dist/resources/solid-custom.css +464 -11
  269. package/dist/resources/solid-responsive.css +31 -20
  270. package/dist/resources/solid-tailwind-generated.css +1 -1
  271. package/dist/routes/AppEventListener.d.ts.map +1 -1
  272. package/dist/routes/AppEventListener.js +23 -0
  273. package/dist/routes/AppEventListener.js.map +1 -1
  274. package/dist/routes/AppEventListener.tsx +29 -0
  275. package/dist/routes/pages/admin/core/DashboardPage.module.css +12 -0
  276. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +306 -3
  277. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
  278. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +745 -393
  279. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
  280. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1074 -420
  281. package/dist/routes/pages/admin/core/DatasourcesPage.css +15 -0
  282. package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -1
  283. package/dist/routes/pages/admin/core/DatasourcesPage.js +7 -188
  284. package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -1
  285. package/dist/routes/pages/admin/core/DatasourcesPage.tsx +3 -393
  286. package/package.json +1 -1
@@ -1,12 +1,17 @@
1
1
  import { env } from "../../adapters/env";
2
- import SolidLogo from '../../resources/images/SolidXLogo-dark.svg'
2
+ import { useContext } from "react";
3
+ import SolidLogoDark from '../../resources/images/SolidXLogo-dark.svg'
4
+ import SolidLogoLight from '../../resources/images/SolidXLogo-light.svg'
3
5
  import { ChatIcon } from "../layout/SolidAiStudioLayout";
6
+ import { LayoutContext } from "../layout/context/layoutcontext";
4
7
 
5
8
  export const SolidAdmin = () => {
9
+ const layoutContext = useContext(LayoutContext);
6
10
  const redirectUrl = env("NEXT_PUBLIC_LOGIN_REDIRECT_URL");
7
11
  const hasRedirect = Boolean(redirectUrl);
8
12
  const aiChatUrl = env("VITE_SOLIDX_AI_URL");
9
13
  const canOpenChat = Boolean(aiChatUrl);
14
+ const solidLogo = layoutContext?.themeMode === "dark" ? SolidLogoLight : SolidLogoDark;
10
15
 
11
16
  const handleChatLaunch = () => {
12
17
  if (!aiChatUrl) return;
@@ -129,7 +134,7 @@ export const SolidAdmin = () => {
129
134
  <div className="welcome-card-header">
130
135
  <img
131
136
  alt="solid logo"
132
- src={SolidLogo}
137
+ src={solidLogo}
133
138
  className="mb-2 w-4rem flex-shrink-0"
134
139
  style={{ opacity: 0.9 }}
135
140
  />
@@ -1 +1 @@
1
- {"version":3,"file":"SolidBreadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidBreadcrumb.tsx"],"names":[],"mappings":"AAaA,UAAU,KAAK;IACb,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB;AAcD,eAAO,MAAM,eAAe,UAAW,KAAK,4CAyG3C,CAAC"}
1
+ {"version":3,"file":"SolidBreadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidBreadcrumb.tsx"],"names":[],"mappings":"AAaA,UAAU,KAAK;IACb,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB;AAOD,eAAO,MAAM,eAAe,UAAW,KAAK,4CAyG3C,CAAC"}
@@ -1,15 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { toTitleCase } from "../../helpers/helpers";
2
3
  import { usePathname } from "../../hooks/usePathname";
3
4
  import { useRouter } from "../../hooks/useRouter";
4
5
  import { useSearchParams } from "../../hooks/useSearchParams";
5
6
  import { useEffect, useState } from "react";
6
7
  import { ChevronRight } from "lucide-react";
7
- var toTitleCase = function (str) {
8
- return str
9
- .replace(/[-_]/g, " ")
10
- .replace(/([a-z])([A-Z])/g, "$1 $2")
11
- .replace(/\b\w/g, function (char) { return char.toUpperCase(); });
12
- };
13
8
  var truncateText = function (text, maxLength) {
14
9
  if (maxLength === void 0) { maxLength = 15; }
15
10
  if (text.length <= maxLength)
@@ -1 +1 @@
1
- {"version":3,"file":"SolidBreadcrumb.js","sourceRoot":"","sources":["../../../src/components/common/SolidBreadcrumb.tsx"],"names":[],"mappings":"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","sourcesContent":["\n\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\nimport { useEffect, useState } from \"react\";\nimport { ChevronRight } from \"lucide-react\";\n\ninterface BreadcrumbItem {\n label: string;\n link?: string;\n}\n\ninterface Props {\n solidFormViewMetaData?: any;\n initialEntityData?: any;\n}\n\nconst toTitleCase = (str: string) => {\n return str\n .replace(/[-_]/g, \" \")\n .replace(/([a-z])([A-Z])/g, \"$1 $2\")\n .replace(/\\b\\w/g, (char) => char.toUpperCase());\n};\n\nconst truncateText = (text: string, maxLength: number = 15) => {\n if (text.length <= maxLength) return text;\n return `${text.substring(0, maxLength)}...`;\n};\n\nexport const SolidBreadcrumb = (props: Props) => {\n const { solidFormViewMetaData, initialEntityData } = props;\n\n const modelMetadata = solidFormViewMetaData?.data?.solidView?.model;\n const pathname = usePathname();\n const router = useRouter();\n const searchParams = useSearchParams();\n const segments = pathname.split(\"/\").filter(Boolean);\n\n let userKeyFieldValue: string | null = null;\n\n if (modelMetadata?.userKeyField) {\n const userKeyFieldName = modelMetadata.userKeyField.name;\n if (userKeyFieldName && initialEntityData?.[userKeyFieldName] !== undefined) {\n userKeyFieldValue = initialEntityData[userKeyFieldName];\n }\n }\n\n const queryUserKeyField = searchParams.get(\"userKeyField\");\n const isNewForm = pathname.endsWith(\"/new\");\n\n useEffect(() => {\n if (!isNewForm && userKeyFieldValue && !queryUserKeyField) {\n const params = new URLSearchParams(searchParams.toString());\n params.set(\"userKeyField\", userKeyFieldValue);\n const newUrl = `${pathname}?${params.toString()}`;\n router.push(newUrl);\n }\n }, [pathname, userKeyFieldValue, queryUserKeyField, isNewForm, router]);\n\n const [fromView, setFromView] = useState<\"list\" | \"kanban\" | \"card\" | \"tree\" | null>(null);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n const storedView = sessionStorage.getItem(\"fromView\");\n if (storedView === \"list\" || storedView === \"kanban\" || storedView === \"card\" || storedView === \"tree\") {\n setFromView(storedView);\n }\n }\n }, []);\n\n const breadcrumbItems: BreadcrumbItem[] = [];\n\n if (segments.length >= 4 && segments[0] === \"admin\" && segments[1] === \"core\") {\n const moduleName = segments[2];\n const modelName = segments[3];\n const modelDisplayName = modelMetadata?.displayName || toTitleCase(modelName);\n\n // Link to model list or kanban view based on stored view\n breadcrumbItems.push({\n label: modelDisplayName,\n link: `/admin/core/${moduleName}/${modelName}/${fromView || \"list\"}`,\n });\n\n breadcrumbItems.push({\n label: isNewForm\n ? `Add ${modelDisplayName} Details`\n : decodeURIComponent(queryUserKeyField || userKeyFieldValue || segments[segments.length - 1] || \"\"),\n });\n }\n\n return (\n <nav className=\"solid-breadcrumb\" aria-label=\"Breadcrumb\">\n <ol className=\"solid-breadcrumb-list\">\n {breadcrumbItems.map((item, index) => {\n const fullLabel = item.label;\n const truncatedLabel = truncateText(fullLabel, 10);\n const shouldTruncate = fullLabel.length > 10;\n const isLast = index === breadcrumbItems.length - 1;\n\n const handleClick = () => {\n if (!item.link) return;\n if (typeof window !== \"undefined\") {\n const storedFullUrl = sessionStorage.getItem(\"fromViewUrl\");\n if (storedFullUrl) {\n router.push(storedFullUrl);\n return;\n }\n }\n router.push(item.link);\n };\n\n return (\n <li key={`${item.label}-${index}`} className=\"solid-breadcrumb-item\">\n {item.link ? (\n <button\n type=\"button\"\n className=\"solid-breadcrumb-link\"\n onClick={handleClick}\n title={shouldTruncate ? fullLabel : undefined}\n >\n <span className={isLast ? \"font-bold\" : \"font-normal\"}>{truncatedLabel}</span>\n </button>\n ) : (\n <span className=\"solid-breadcrumb-current\" title={shouldTruncate ? fullLabel : undefined}>\n {truncatedLabel}\n </span>\n )}\n {!isLast ? <ChevronRight size={14} className=\"solid-breadcrumb-separator\" /> : null}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidBreadcrumb.js","sourceRoot":"","sources":["../../../src/components/common/SolidBreadcrumb.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { toTitleCase } from \"../../helpers/helpers\";\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\nimport { useEffect, useState } from \"react\";\nimport { ChevronRight } from \"lucide-react\";\n\ninterface BreadcrumbItem {\n label: string;\n link?: string;\n}\n\ninterface Props {\n solidFormViewMetaData?: any;\n initialEntityData?: any;\n}\n\nconst truncateText = (text: string, maxLength: number = 15) => {\n if (text.length <= maxLength) return text;\n return `${text.substring(0, maxLength)}...`;\n};\n\nexport const SolidBreadcrumb = (props: Props) => {\n const { solidFormViewMetaData, initialEntityData } = props;\n\n const modelMetadata = solidFormViewMetaData?.data?.solidView?.model;\n const pathname = usePathname();\n const router = useRouter();\n const searchParams = useSearchParams();\n const segments = pathname.split(\"/\").filter(Boolean);\n\n let userKeyFieldValue: string | null = null;\n\n if (modelMetadata?.userKeyField) {\n const userKeyFieldName = modelMetadata.userKeyField.name;\n if (userKeyFieldName && initialEntityData?.[userKeyFieldName] !== undefined) {\n userKeyFieldValue = initialEntityData[userKeyFieldName];\n }\n }\n\n const queryUserKeyField = searchParams.get(\"userKeyField\");\n const isNewForm = pathname.endsWith(\"/new\");\n\n useEffect(() => {\n if (!isNewForm && userKeyFieldValue && !queryUserKeyField) {\n const params = new URLSearchParams(searchParams.toString());\n params.set(\"userKeyField\", userKeyFieldValue);\n const newUrl = `${pathname}?${params.toString()}`;\n router.push(newUrl);\n }\n }, [pathname, userKeyFieldValue, queryUserKeyField, isNewForm, router]);\n\n const [fromView, setFromView] = useState<\"list\" | \"kanban\" | \"card\" | \"tree\" | null>(null);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n const storedView = sessionStorage.getItem(\"fromView\");\n if (storedView === \"list\" || storedView === \"kanban\" || storedView === \"card\" || storedView === \"tree\") {\n setFromView(storedView);\n }\n }\n }, []);\n\n const breadcrumbItems: BreadcrumbItem[] = [];\n\n if (segments.length >= 4 && segments[0] === \"admin\" && segments[1] === \"core\") {\n const moduleName = segments[2];\n const modelName = segments[3];\n const modelDisplayName = modelMetadata?.displayName || toTitleCase(modelName);\n\n // Link to model list or kanban view based on stored view\n breadcrumbItems.push({\n label: modelDisplayName,\n link: `/admin/core/${moduleName}/${modelName}/${fromView || \"list\"}`,\n });\n\n breadcrumbItems.push({\n label: isNewForm\n ? `Add ${modelDisplayName} Details`\n : decodeURIComponent(queryUserKeyField || userKeyFieldValue || segments[segments.length - 1] || \"\"),\n });\n }\n\n return (\n <nav className=\"solid-breadcrumb\" aria-label=\"Breadcrumb\">\n <ol className=\"solid-breadcrumb-list\">\n {breadcrumbItems.map((item, index) => {\n const fullLabel = item.label;\n const truncatedLabel = truncateText(fullLabel, 10);\n const shouldTruncate = fullLabel.length > 10;\n const isLast = index === breadcrumbItems.length - 1;\n\n const handleClick = () => {\n if (!item.link) return;\n if (typeof window !== \"undefined\") {\n const storedFullUrl = sessionStorage.getItem(\"fromViewUrl\");\n if (storedFullUrl) {\n router.push(storedFullUrl);\n return;\n }\n }\n router.push(item.link);\n };\n\n return (\n <li key={`${item.label}-${index}`} className=\"solid-breadcrumb-item\">\n {item.link ? (\n <button\n type=\"button\"\n className=\"solid-breadcrumb-link\"\n onClick={handleClick}\n title={shouldTruncate ? fullLabel : undefined}\n >\n <span className={isLast ? \"font-bold\" : \"font-normal\"}>{truncatedLabel}</span>\n </button>\n ) : (\n <span className=\"solid-breadcrumb-current\" title={shouldTruncate ? fullLabel : undefined}>\n {truncatedLabel}\n </span>\n )}\n {!isLast ? <ChevronRight size={14} className=\"solid-breadcrumb-separator\" /> : null}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n};\n"]}
@@ -1,5 +1,5 @@
1
1
 
2
-
2
+ import { toTitleCase } from "../../helpers/helpers";
3
3
  import { usePathname } from "../../hooks/usePathname";
4
4
  import { useRouter } from "../../hooks/useRouter";
5
5
  import { useSearchParams } from "../../hooks/useSearchParams";
@@ -16,13 +16,6 @@ interface Props {
16
16
  initialEntityData?: any;
17
17
  }
18
18
 
19
- const toTitleCase = (str: string) => {
20
- return str
21
- .replace(/[-_]/g, " ")
22
- .replace(/([a-z])([A-Z])/g, "$1 $2")
23
- .replace(/\b\w/g, (char) => char.toUpperCase());
24
- };
25
-
26
19
  const truncateText = (text: string, maxLength: number = 15) => {
27
20
  if (text.length <= maxLength) return text;
28
21
  return `${text.substring(0, maxLength)}...`;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ type SolidMaterialSymbolProps = React.HTMLAttributes<HTMLSpanElement> & {
3
+ name: string;
4
+ size?: number | string;
5
+ fallback?: React.ReactNode;
6
+ onSupportChange?: (supported: boolean) => void;
7
+ };
8
+ export declare const SolidMaterialSymbol: ({ name, size, className, style, fallback, onSupportChange, ...rest }: SolidMaterialSymbolProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=SolidMaterialSymbol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidMaterialSymbol.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidMaterialSymbol.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,KAAK,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,CAAC;AAsBF,eAAO,MAAM,mBAAmB,yEAQ7B,wBAAwB,4CA0D1B,CAAC"}
@@ -0,0 +1,69 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
24
+ import { useEffect, useRef, useState } from "react";
25
+ var MATERIAL_SYMBOL_WIDTH_MULTIPLIER = 2.25;
26
+ function cx() {
27
+ var parts = [];
28
+ for (var _i = 0; _i < arguments.length; _i++) {
29
+ parts[_i] = arguments[_i];
30
+ }
31
+ return parts.filter(Boolean).join(" ");
32
+ }
33
+ function getSizeInPixels(size, computedFontSize) {
34
+ if (typeof size === "number") {
35
+ return size;
36
+ }
37
+ var explicitSize = Number.parseFloat(size);
38
+ if (Number.isFinite(explicitSize)) {
39
+ return explicitSize;
40
+ }
41
+ var computedSize = Number.parseFloat(computedFontSize);
42
+ return Number.isFinite(computedSize) ? computedSize : 24;
43
+ }
44
+ export var SolidMaterialSymbol = function (_a) {
45
+ var name = _a.name, _b = _a.size, size = _b === void 0 ? 24 : _b, className = _a.className, style = _a.style, _c = _a.fallback, fallback = _c === void 0 ? null : _c, onSupportChange = _a.onSupportChange, rest = __rest(_a, ["name", "size", "className", "style", "fallback", "onSupportChange"]);
46
+ var symbolRef = useRef(null);
47
+ var _d = useState(null), isSupported = _d[0], setIsSupported = _d[1];
48
+ useEffect(function () {
49
+ var frameId = 0;
50
+ var measureSupport = function () {
51
+ var node = symbolRef.current;
52
+ if (!node)
53
+ return;
54
+ var computedStyle = window.getComputedStyle(node);
55
+ var sizePx = getSizeInPixels(size, computedStyle.fontSize);
56
+ var renderedWidth = Math.max(node.scrollWidth, node.getBoundingClientRect().width);
57
+ var supported = renderedWidth <= sizePx * MATERIAL_SYMBOL_WIDTH_MULTIPLIER;
58
+ setIsSupported(function (previousValue) { return previousValue === supported ? previousValue : supported; });
59
+ onSupportChange === null || onSupportChange === void 0 ? void 0 : onSupportChange(supported);
60
+ };
61
+ frameId = window.requestAnimationFrame(measureSupport);
62
+ return function () { return window.cancelAnimationFrame(frameId); };
63
+ }, [className, name, onSupportChange, size]);
64
+ if (isSupported === false) {
65
+ return _jsx(_Fragment, { children: fallback });
66
+ }
67
+ return (_jsx("span", __assign({}, rest, { ref: symbolRef, className: cx("material-symbols-outlined", className), style: __assign({ fontFamily: "\"Material Symbols Outlined\"", fontWeight: 400, fontStyle: "normal", fontSize: size, lineHeight: 1, letterSpacing: "normal", textTransform: "none", whiteSpace: "nowrap", wordWrap: "normal", direction: "ltr", display: "inline-flex", alignItems: "center", justifyContent: "center", overflow: "hidden", WebkitFontSmoothing: "antialiased", fontFeatureSettings: "\"liga\"", WebkitFontFeatureSettings: "\"liga\"", visibility: isSupported === null ? "hidden" : undefined }, style), children: name })));
68
+ };
69
+ //# sourceMappingURL=SolidMaterialSymbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SolidMaterialSymbol.js","sourceRoot":"","sources":["../../../src/components/common/SolidMaterialSymbol.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\n\ntype SolidMaterialSymbolProps = React.HTMLAttributes<HTMLSpanElement> & {\n name: string;\n size?: number | string;\n fallback?: React.ReactNode;\n onSupportChange?: (supported: boolean) => void;\n};\n\nconst MATERIAL_SYMBOL_WIDTH_MULTIPLIER = 2.25;\n\nfunction cx(...parts: Array<string | undefined | false>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction getSizeInPixels(size: number | string, computedFontSize: string): number {\n if (typeof size === \"number\") {\n return size;\n }\n\n const explicitSize = Number.parseFloat(size);\n if (Number.isFinite(explicitSize)) {\n return explicitSize;\n }\n\n const computedSize = Number.parseFloat(computedFontSize);\n return Number.isFinite(computedSize) ? computedSize : 24;\n}\n\nexport const SolidMaterialSymbol = ({\n name,\n size = 24,\n className,\n style,\n fallback = null,\n onSupportChange,\n ...rest\n}: SolidMaterialSymbolProps) => {\n const symbolRef = useRef<HTMLSpanElement | null>(null);\n const [isSupported, setIsSupported] = useState<boolean | null>(null);\n\n useEffect(() => {\n let frameId = 0;\n\n const measureSupport = () => {\n const node = symbolRef.current;\n if (!node) return;\n\n const computedStyle = window.getComputedStyle(node);\n const sizePx = getSizeInPixels(size, computedStyle.fontSize);\n const renderedWidth = Math.max(node.scrollWidth, node.getBoundingClientRect().width);\n const supported = renderedWidth <= sizePx * MATERIAL_SYMBOL_WIDTH_MULTIPLIER;\n\n setIsSupported((previousValue) => previousValue === supported ? previousValue : supported);\n onSupportChange?.(supported);\n };\n\n frameId = window.requestAnimationFrame(measureSupport);\n return () => window.cancelAnimationFrame(frameId);\n }, [className, name, onSupportChange, size]);\n\n if (isSupported === false) {\n return <>{fallback}</>;\n }\n\n return (\n <span\n {...rest}\n ref={symbolRef}\n className={cx(\"material-symbols-outlined\", className)}\n style={{\n fontFamily: \"\\\"Material Symbols Outlined\\\"\",\n fontWeight: 400,\n fontStyle: \"normal\",\n fontSize: size,\n lineHeight: 1,\n letterSpacing: \"normal\",\n textTransform: \"none\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n direction: \"ltr\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n WebkitFontSmoothing: \"antialiased\",\n fontFeatureSettings: \"\\\"liga\\\"\",\n WebkitFontFeatureSettings: \"\\\"liga\\\"\",\n visibility: isSupported === null ? \"hidden\" : undefined,\n ...style,\n }}\n >\n {name}\n </span>\n );\n};\n"]}
@@ -0,0 +1,96 @@
1
+ import React, { useEffect, useRef, useState } from "react";
2
+
3
+ type SolidMaterialSymbolProps = React.HTMLAttributes<HTMLSpanElement> & {
4
+ name: string;
5
+ size?: number | string;
6
+ fallback?: React.ReactNode;
7
+ onSupportChange?: (supported: boolean) => void;
8
+ };
9
+
10
+ const MATERIAL_SYMBOL_WIDTH_MULTIPLIER = 2.25;
11
+
12
+ function cx(...parts: Array<string | undefined | false>) {
13
+ return parts.filter(Boolean).join(" ");
14
+ }
15
+
16
+ function getSizeInPixels(size: number | string, computedFontSize: string): number {
17
+ if (typeof size === "number") {
18
+ return size;
19
+ }
20
+
21
+ const explicitSize = Number.parseFloat(size);
22
+ if (Number.isFinite(explicitSize)) {
23
+ return explicitSize;
24
+ }
25
+
26
+ const computedSize = Number.parseFloat(computedFontSize);
27
+ return Number.isFinite(computedSize) ? computedSize : 24;
28
+ }
29
+
30
+ export const SolidMaterialSymbol = ({
31
+ name,
32
+ size = 24,
33
+ className,
34
+ style,
35
+ fallback = null,
36
+ onSupportChange,
37
+ ...rest
38
+ }: SolidMaterialSymbolProps) => {
39
+ const symbolRef = useRef<HTMLSpanElement | null>(null);
40
+ const [isSupported, setIsSupported] = useState<boolean | null>(null);
41
+
42
+ useEffect(() => {
43
+ let frameId = 0;
44
+
45
+ const measureSupport = () => {
46
+ const node = symbolRef.current;
47
+ if (!node) return;
48
+
49
+ const computedStyle = window.getComputedStyle(node);
50
+ const sizePx = getSizeInPixels(size, computedStyle.fontSize);
51
+ const renderedWidth = Math.max(node.scrollWidth, node.getBoundingClientRect().width);
52
+ const supported = renderedWidth <= sizePx * MATERIAL_SYMBOL_WIDTH_MULTIPLIER;
53
+
54
+ setIsSupported((previousValue) => previousValue === supported ? previousValue : supported);
55
+ onSupportChange?.(supported);
56
+ };
57
+
58
+ frameId = window.requestAnimationFrame(measureSupport);
59
+ return () => window.cancelAnimationFrame(frameId);
60
+ }, [className, name, onSupportChange, size]);
61
+
62
+ if (isSupported === false) {
63
+ return <>{fallback}</>;
64
+ }
65
+
66
+ return (
67
+ <span
68
+ {...rest}
69
+ ref={symbolRef}
70
+ className={cx("material-symbols-outlined", className)}
71
+ style={{
72
+ fontFamily: "\"Material Symbols Outlined\"",
73
+ fontWeight: 400,
74
+ fontStyle: "normal",
75
+ fontSize: size,
76
+ lineHeight: 1,
77
+ letterSpacing: "normal",
78
+ textTransform: "none",
79
+ whiteSpace: "nowrap",
80
+ wordWrap: "normal",
81
+ direction: "ltr",
82
+ display: "inline-flex",
83
+ alignItems: "center",
84
+ justifyContent: "center",
85
+ overflow: "hidden",
86
+ WebkitFontSmoothing: "antialiased",
87
+ fontFeatureSettings: "\"liga\"",
88
+ WebkitFontFeatureSettings: "\"liga\"",
89
+ visibility: isSupported === null ? "hidden" : undefined,
90
+ ...style,
91
+ }}
92
+ >
93
+ {name}
94
+ </span>
95
+ );
96
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"SolidToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidToastProvider.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,kBAAkB,sDA0B9B,CAAC"}
1
+ {"version":3,"file":"SolidToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidToastProvider.tsx"],"names":[],"mappings":"AAqBA,eAAO,MAAM,kBAAkB,sDAmC9B,CAAC"}
@@ -24,6 +24,12 @@ import { useDispatch, useSelector } from "react-redux";
24
24
  import { clearToast } from "../../redux/features/toastSlice";
25
25
  import { SolidToast } from "../shad-cn-ui";
26
26
  var toastId = 0;
27
+ function isSameToastMessage(current, next) {
28
+ return (current.severity === next.severity &&
29
+ current.summary === next.summary &&
30
+ current.detail === next.detail &&
31
+ current.sticky === next.sticky);
32
+ }
27
33
  export var SolidToastProvider = function () {
28
34
  var dispatch = useDispatch();
29
35
  var message = useSelector(function (state) { return state.toast.message; });
@@ -32,7 +38,14 @@ export var SolidToastProvider = function () {
32
38
  if (!message)
33
39
  return;
34
40
  toastId += 1;
35
- setQueue(function (current) { return __spreadArray(__spreadArray([], current, true), [__assign({ id: toastId }, message)], false); });
41
+ setQueue(function (current) {
42
+ var lastToast = current[current.length - 1];
43
+ var nextToast = __assign({ id: toastId }, message);
44
+ if (lastToast && isSameToastMessage(lastToast, message)) {
45
+ return __spreadArray(__spreadArray([], current.slice(0, -1), true), [nextToast], false);
46
+ }
47
+ return __spreadArray(__spreadArray([], current, true), [nextToast], false);
48
+ });
36
49
  dispatch(clearToast());
37
50
  }, [dispatch, message]);
38
51
  var handleClose = function (id) {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidToastProvider.js","sourceRoot":"","sources":["../../../src/components/common/SolidToastProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAgB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,OAAO,GAAG,WAAW,CAAC,UAAC,KAAgB,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,OAAO,EAAnB,CAAmB,CAAC,CAAC;IACjE,IAAA,KAAoB,QAAQ,CAAe,EAAE,CAAC,EAA7C,KAAK,QAAA,EAAE,QAAQ,QAA8B,CAAC;IAErD,SAAS,CAAC;QACR,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,OAAO,IAAI,CAAC,CAAC;QACb,QAAQ,CAAC,UAAC,OAAO,IAAK,uCAAI,OAAO,qBAAI,EAAE,EAAE,OAAO,IAAK,OAAO,YAAtC,CAAyC,CAAC,CAAC;QACjE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAExB,IAAM,WAAW,GAAG,UAAC,EAAU;QAC7B,QAAQ,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,EAAE,EAAf,CAAe,CAAC,EAA1C,CAA0C,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/B,OAAO,CACL,cAAK,SAAS,EAAC,sBAAsB,eAAW,QAAQ,iBAAa,MAAM,YACxE,KAAK,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CACpB,KAAC,UAAU,eAAoB,KAAK,IAAE,OAAO,EAAE,WAAW,KAAzC,KAAK,CAAC,EAAE,CAAqC,CAC/D,EAFqB,CAErB,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState } from \"../../types/solid-core\";\nimport { clearToast, ToastMessage } from \"../../redux/features/toastSlice\";\nimport { SolidToast } from \"../shad-cn-ui\";\n\ntype QueueToast = ToastMessage & {\n id: number;\n};\n\nlet toastId = 0;\n\nexport const SolidToastProvider = () => {\n const dispatch = useDispatch();\n const message = useSelector((state: RootState) => state.toast.message);\n const [queue, setQueue] = useState<QueueToast[]>([]);\n\n useEffect(() => {\n if (!message) return;\n\n toastId += 1;\n setQueue((current) => [...current, { id: toastId, ...message }]);\n dispatch(clearToast());\n }, [dispatch, message]);\n\n const handleClose = (id: number) => {\n setQueue((current) => current.filter((toast) => toast.id !== id));\n };\n\n if (!queue.length) return null;\n\n return (\n <div className=\"solid-toast-viewport\" aria-live=\"polite\" aria-atomic=\"true\">\n {queue.map((toast) => (\n <SolidToast key={toast.id} {...toast} onClose={handleClose} />\n ))}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidToastProvider.js","sourceRoot":"","sources":["../../../src/components/common/SolidToastProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAgB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,SAAS,kBAAkB,CAAC,OAAqB,EAAE,IAAkB;IACnE,OAAO,CACL,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;QAClC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;QAChC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC9B,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,OAAO,GAAG,WAAW,CAAC,UAAC,KAAgB,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,OAAO,EAAnB,CAAmB,CAAC,CAAC;IACjE,IAAA,KAAoB,QAAQ,CAAe,EAAE,CAAC,EAA7C,KAAK,QAAA,EAAE,QAAQ,QAA8B,CAAC;IAErD,SAAS,CAAC;QACR,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,OAAO,IAAI,CAAC,CAAC;QACb,QAAQ,CAAC,UAAC,OAAO;YACf,IAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAM,SAAS,cAAK,EAAE,EAAE,OAAO,IAAK,OAAO,CAAE,CAAC;YAE9C,IAAI,SAAS,IAAI,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACvD,uCAAW,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAE,SAAS,UAAE;aAC7C;YAED,uCAAW,OAAO,UAAE,SAAS,UAAE;QACjC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAExB,IAAM,WAAW,GAAG,UAAC,EAAU;QAC7B,QAAQ,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,EAAE,EAAf,CAAe,CAAC,EAA1C,CAA0C,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/B,OAAO,CACL,cAAK,SAAS,EAAC,sBAAsB,eAAW,QAAQ,iBAAa,MAAM,YACxE,KAAK,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CACpB,KAAC,UAAU,eAAoB,KAAK,IAAE,OAAO,EAAE,WAAW,KAAzC,KAAK,CAAC,EAAE,CAAqC,CAC/D,EAFqB,CAErB,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState } from \"../../types/solid-core\";\nimport { clearToast, ToastMessage } from \"../../redux/features/toastSlice\";\nimport { SolidToast } from \"../shad-cn-ui\";\n\ntype QueueToast = ToastMessage & {\n id: number;\n};\n\nlet toastId = 0;\n\nfunction isSameToastMessage(current: ToastMessage, next: ToastMessage) {\n return (\n current.severity === next.severity &&\n current.summary === next.summary &&\n current.detail === next.detail &&\n current.sticky === next.sticky\n );\n}\n\nexport const SolidToastProvider = () => {\n const dispatch = useDispatch();\n const message = useSelector((state: RootState) => state.toast.message);\n const [queue, setQueue] = useState<QueueToast[]>([]);\n\n useEffect(() => {\n if (!message) return;\n\n toastId += 1;\n setQueue((current) => {\n const lastToast = current[current.length - 1];\n const nextToast = { id: toastId, ...message };\n\n if (lastToast && isSameToastMessage(lastToast, message)) {\n return [...current.slice(0, -1), nextToast];\n }\n\n return [...current, nextToast];\n });\n dispatch(clearToast());\n }, [dispatch, message]);\n\n const handleClose = (id: number) => {\n setQueue((current) => current.filter((toast) => toast.id !== id));\n };\n\n if (!queue.length) return null;\n\n return (\n <div className=\"solid-toast-viewport\" aria-live=\"polite\" aria-atomic=\"true\">\n {queue.map((toast) => (\n <SolidToast key={toast.id} {...toast} onClose={handleClose} />\n ))}\n </div>\n );\n};\n"]}
@@ -10,6 +10,15 @@ type QueueToast = ToastMessage & {
10
10
 
11
11
  let toastId = 0;
12
12
 
13
+ function isSameToastMessage(current: ToastMessage, next: ToastMessage) {
14
+ return (
15
+ current.severity === next.severity &&
16
+ current.summary === next.summary &&
17
+ current.detail === next.detail &&
18
+ current.sticky === next.sticky
19
+ );
20
+ }
21
+
13
22
  export const SolidToastProvider = () => {
14
23
  const dispatch = useDispatch();
15
24
  const message = useSelector((state: RootState) => state.toast.message);
@@ -19,7 +28,16 @@ export const SolidToastProvider = () => {
19
28
  if (!message) return;
20
29
 
21
30
  toastId += 1;
22
- setQueue((current) => [...current, { id: toastId, ...message }]);
31
+ setQueue((current) => {
32
+ const lastToast = current[current.length - 1];
33
+ const nextToast = { id: toastId, ...message };
34
+
35
+ if (lastToast && isSameToastMessage(lastToast, message)) {
36
+ return [...current.slice(0, -1), nextToast];
37
+ }
38
+
39
+ return [...current, nextToast];
40
+ });
23
41
  dispatch(clearToast());
24
42
  }, [dispatch, message]);
25
43
 
@@ -1,3 +1,3 @@
1
- export declare const CardGrid: ({ records, solidCardViewMetaData, editButtonUrl, setLightboxUrls, setOpenLightbox, }: any) => import("react/jsx-runtime").JSX.Element;
1
+ export declare const CardGrid: ({ records, solidCardViewMetaData, editButtonUrl, onRecover, setLightboxUrls, setOpenLightbox, showArchived, }: any) => import("react/jsx-runtime").JSX.Element;
2
2
  export default CardGrid;
3
3
  //# sourceMappingURL=CardGrid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardGrid.tsx"],"names":[],"mappings":"AAiBA,eAAO,MAAM,QAAQ,yFAMlB,GAAG,4CAyDL,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"CardGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardGrid.tsx"],"names":[],"mappings":"AAiBA,eAAO,MAAM,QAAQ,kHAQlB,GAAG,4CA2DL,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -20,7 +20,7 @@ var findCardNode = function (nodes) {
20
20
  };
21
21
  export var CardGrid = function (_a) {
22
22
  var _b, _c, _d;
23
- var records = _a.records, solidCardViewMetaData = _a.solidCardViewMetaData, editButtonUrl = _a.editButtonUrl, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox;
23
+ var records = _a.records, solidCardViewMetaData = _a.solidCardViewMetaData, editButtonUrl = _a.editButtonUrl, onRecover = _a.onRecover, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, showArchived = _a.showArchived;
24
24
  var cardNode = findCardNode(((_c = (_b = solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.children) || []);
25
25
  var cardWidget = ((_d = cardNode === null || cardNode === void 0 ? void 0 : cardNode.attrs) === null || _d === void 0 ? void 0 : _d.cardWidget) || (cardNode === null || cardNode === void 0 ? void 0 : cardNode.cardWidget);
26
26
  var DynamicCardWidget = cardWidget ? getExtensionComponent(cardWidget) : null;
@@ -36,7 +36,7 @@ export var CardGrid = function (_a) {
36
36
  ? "Register the widget in the extension registry or update the card metadata to point at a valid component."
37
37
  : "Configure attrs.cardWidget on the card metadata so the grid can render each record." })] }) }));
38
38
  }
39
- return (_jsx("div", { className: "solid-card-view-grid", children: records.map(function (record) { return (_jsx(CardItem, { data: record, solidCardViewMetaData: solidCardViewMetaData, editButtonUrl: editButtonUrl, cardNode: cardNode, DynamicCardWidget: DynamicCardWidget, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox }, record.id)); }) }));
39
+ return (_jsx("div", { className: "solid-card-view-grid", children: records.map(function (record) { return (_jsx(CardItem, { data: record, solidCardViewMetaData: solidCardViewMetaData, editButtonUrl: editButtonUrl, cardNode: cardNode, DynamicCardWidget: DynamicCardWidget, onRecover: onRecover, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, showArchived: showArchived }, record.id)); }) }));
40
40
  };
41
41
  export default CardGrid;
42
42
  //# sourceMappingURL=CardGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardGrid.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport CardItem from \"./CardItem\";\nimport { getExtensionComponent } from \"../../../helpers/registry\";\n\nconst findCardNode = (nodes: any[] = []): any => {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node?.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n};\n\nexport const CardGrid = ({\n records,\n solidCardViewMetaData,\n editButtonUrl,\n setLightboxUrls,\n setOpenLightbox,\n}: any) => {\n const cardNode = findCardNode(solidCardViewMetaData?.solidView?.layout?.children || []);\n const cardWidget = cardNode?.attrs?.cardWidget || cardNode?.cardWidget;\n const DynamicCardWidget = cardWidget ? getExtensionComponent(cardWidget) : null;\n const cardConfigurationIssue = !cardWidget\n ? { type: \"missing_widget_reference\" }\n : !DynamicCardWidget\n ? { type: \"missing_widget\", cardWidget }\n : null;\n\n if (cardConfigurationIssue) {\n return (\n <div className=\"solid-kanban-config-placeholder-container\">\n <div className=\"solid-kanban-config-placeholder-panel\">\n <div className=\"solid-kanban-config-placeholder-badge\">CARD CONFIGURATION</div>\n <div className=\"solid-kanban-config-placeholder-title\">\n {cardConfigurationIssue.type === \"missing_widget\"\n ? \"Card widget could not be resolved\"\n : \"Card widget is not configured\"}\n </div>\n <div className=\"solid-kanban-config-placeholder-description\">\n {cardConfigurationIssue.type === \"missing_widget\" ? (\n <>\n This card view references <code>{cardConfigurationIssue.cardWidget}</code>, but no matching card widget is registered.\n </>\n ) : (\n <>\n This card view does not define a <code>cardWidget</code> on the card node.\n </>\n )}\n </div>\n <div className=\"solid-kanban-config-placeholder-hint\">\n {cardConfigurationIssue.type === \"missing_widget\"\n ? \"Register the widget in the extension registry or update the card metadata to point at a valid component.\"\n : \"Configure attrs.cardWidget on the card metadata so the grid can render each record.\"}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"solid-card-view-grid\">\n {records.map((record: any) => (\n <CardItem\n key={record.id}\n data={record}\n solidCardViewMetaData={solidCardViewMetaData}\n editButtonUrl={editButtonUrl}\n cardNode={cardNode}\n DynamicCardWidget={DynamicCardWidget}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n />\n ))}\n </div>\n );\n};\n\nexport default CardGrid;\n"]}
1
+ {"version":3,"file":"CardGrid.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport CardItem from \"./CardItem\";\nimport { getExtensionComponent } from \"../../../helpers/registry\";\n\nconst findCardNode = (nodes: any[] = []): any => {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node?.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n};\n\nexport const CardGrid = ({\n records,\n solidCardViewMetaData,\n editButtonUrl,\n onRecover,\n setLightboxUrls,\n setOpenLightbox,\n showArchived,\n}: any) => {\n const cardNode = findCardNode(solidCardViewMetaData?.solidView?.layout?.children || []);\n const cardWidget = cardNode?.attrs?.cardWidget || cardNode?.cardWidget;\n const DynamicCardWidget = cardWidget ? getExtensionComponent(cardWidget) : null;\n const cardConfigurationIssue = !cardWidget\n ? { type: \"missing_widget_reference\" }\n : !DynamicCardWidget\n ? { type: \"missing_widget\", cardWidget }\n : null;\n\n if (cardConfigurationIssue) {\n return (\n <div className=\"solid-kanban-config-placeholder-container\">\n <div className=\"solid-kanban-config-placeholder-panel\">\n <div className=\"solid-kanban-config-placeholder-badge\">CARD CONFIGURATION</div>\n <div className=\"solid-kanban-config-placeholder-title\">\n {cardConfigurationIssue.type === \"missing_widget\"\n ? \"Card widget could not be resolved\"\n : \"Card widget is not configured\"}\n </div>\n <div className=\"solid-kanban-config-placeholder-description\">\n {cardConfigurationIssue.type === \"missing_widget\" ? (\n <>\n This card view references <code>{cardConfigurationIssue.cardWidget}</code>, but no matching card widget is registered.\n </>\n ) : (\n <>\n This card view does not define a <code>cardWidget</code> on the card node.\n </>\n )}\n </div>\n <div className=\"solid-kanban-config-placeholder-hint\">\n {cardConfigurationIssue.type === \"missing_widget\"\n ? \"Register the widget in the extension registry or update the card metadata to point at a valid component.\"\n : \"Configure attrs.cardWidget on the card metadata so the grid can render each record.\"}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"solid-card-view-grid\">\n {records.map((record: any) => (\n <CardItem\n key={record.id}\n data={record}\n solidCardViewMetaData={solidCardViewMetaData}\n editButtonUrl={editButtonUrl}\n cardNode={cardNode}\n DynamicCardWidget={DynamicCardWidget}\n onRecover={onRecover}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n showArchived={showArchived}\n />\n ))}\n </div>\n );\n};\n\nexport default CardGrid;\n"]}
@@ -19,8 +19,10 @@ export const CardGrid = ({
19
19
  records,
20
20
  solidCardViewMetaData,
21
21
  editButtonUrl,
22
+ onRecover,
22
23
  setLightboxUrls,
23
24
  setOpenLightbox,
25
+ showArchived,
24
26
  }: any) => {
25
27
  const cardNode = findCardNode(solidCardViewMetaData?.solidView?.layout?.children || []);
26
28
  const cardWidget = cardNode?.attrs?.cardWidget || cardNode?.cardWidget;
@@ -72,8 +74,10 @@ export const CardGrid = ({
72
74
  editButtonUrl={editButtonUrl}
73
75
  cardNode={cardNode}
74
76
  DynamicCardWidget={DynamicCardWidget}
77
+ onRecover={onRecover}
75
78
  setLightboxUrls={setLightboxUrls}
76
79
  setOpenLightbox={setOpenLightbox}
80
+ showArchived={showArchived}
77
81
  />
78
82
  ))}
79
83
  </div>
@@ -5,8 +5,10 @@ interface CardItemProps {
5
5
  editButtonUrl?: string;
6
6
  cardNode?: any;
7
7
  DynamicCardWidget?: any;
8
+ onRecover?: (record: any) => void;
8
9
  setLightboxUrls?: any;
9
10
  setOpenLightbox?: any;
11
+ showArchived?: boolean;
10
12
  }
11
13
  declare const CardItem: React.FC<CardItemProps>;
12
14
  export default CardItem;
@@ -1 +1 @@
1
- {"version":3,"file":"CardItem.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;CACvB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAiErC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"CardItem.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqFrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -4,17 +4,22 @@ import { storeCurrentModelViewContext } from "../../../helpers/modelViewPersiste
4
4
  import { SolidDropdownMenu, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuTrigger, SolidIcon, } from "../../shad-cn-ui";
5
5
  var CardItem = function (_a) {
6
6
  var _b, _c;
7
- var data = _a.data, solidCardViewMetaData = _a.solidCardViewMetaData, editButtonUrl = _a.editButtonUrl, cardNode = _a.cardNode, DynamicCardWidget = _a.DynamicCardWidget, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox;
7
+ var data = _a.data, solidCardViewMetaData = _a.solidCardViewMetaData, editButtonUrl = _a.editButtonUrl, cardNode = _a.cardNode, DynamicCardWidget = _a.DynamicCardWidget, onRecover = _a.onRecover, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, showArchived = _a.showArchived;
8
8
  var router = useRouter();
9
+ var isArchivedRecord = (data === null || data === void 0 ? void 0 : data.deletedAt) !== null && (data === null || data === void 0 ? void 0 : data.deletedAt) !== undefined;
9
10
  var openRecord = function () {
11
+ if (isArchivedRecord)
12
+ return;
10
13
  storeCurrentModelViewContext();
11
14
  router.push("".concat(editButtonUrl, "/").concat(data === null || data === void 0 ? void 0 : data.id));
12
15
  };
13
16
  var openEdit = function () {
17
+ if (isArchivedRecord)
18
+ return;
14
19
  storeCurrentModelViewContext();
15
20
  router.push("".concat(editButtonUrl, "/").concat(data === null || data === void 0 ? void 0 : data.id));
16
21
  };
17
- return (_jsx("div", { className: "solid-card-view-item", children: _jsxs("div", { className: "solid-card-view-card solid-kanban-card", onClick: openRecord, children: [_jsx("div", { className: "solid-kanban-action", onClick: function (e) { return e.stopPropagation(); }, children: _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger solid-kanban-action-trigger", "aria-label": "Open card actions", children: _jsx(SolidIcon, { name: "si-ellipsis-v", "aria-hidden": true }) }) }), _jsx(SolidDropdownMenuContent, { className: "solid-custom-overlay", align: "end", children: _jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: openEdit, children: [_jsx(SolidIcon, { name: "si-pencil", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Edit" })] }) })] }) }), DynamicCardWidget ? (_jsx(DynamicCardWidget, { rowData: data, solidKanbanViewMetaData: solidCardViewMetaData, solidView: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView, solidFieldsMetadata: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidFieldsMetadata, card: cardNode, layoutAttrs: ((_c = (_b = solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.attrs) || {}, groupedView: false, editButtonUrl: editButtonUrl, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, openRecord: openRecord, openEdit: openEdit })) : null] }) }));
22
+ return (_jsx("div", { className: "solid-card-view-item", children: _jsxs("div", { className: "solid-card-view-card solid-kanban-card".concat(isArchivedRecord ? " greyed-out-row" : ""), onClick: openRecord, style: { cursor: isArchivedRecord ? "default" : "pointer" }, children: [_jsx("div", { className: "solid-kanban-action", onClick: function (e) { return e.stopPropagation(); }, children: _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger solid-kanban-action-trigger", "aria-label": "Open card actions", children: _jsx(SolidIcon, { name: "si-ellipsis-v", "aria-hidden": true }) }) }), _jsxs(SolidDropdownMenuContent, { className: "solid-custom-overlay", align: "end", children: [!isArchivedRecord ? (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: openEdit, children: [_jsx(SolidIcon, { name: "si-pencil", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Edit" })] })) : null, showArchived && (data === null || data === void 0 ? void 0 : data.deletedAt) !== null && (data === null || data === void 0 ? void 0 : data.deletedAt) !== undefined && onRecover ? (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () { return onRecover(data); }, children: [_jsx(SolidIcon, { name: "si-refresh", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Recover" })] })) : null] })] }) }), DynamicCardWidget ? (_jsx(DynamicCardWidget, { rowData: data, solidKanbanViewMetaData: solidCardViewMetaData, solidView: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView, solidFieldsMetadata: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidFieldsMetadata, card: cardNode, layoutAttrs: ((_c = (_b = solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.attrs) || {}, groupedView: false, editButtonUrl: editButtonUrl, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, openRecord: openRecord, openEdit: openEdit })) : null] }) }));
18
23
  };
19
24
  export default CardItem;
20
25
  //# sourceMappingURL=CardItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardItem.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,SAAS,GACV,MAAM,kBAAkB,CAAC;AAY1B,IAAM,QAAQ,GAA4B,UAAC,EAQ1C;;QAPC,IAAI,UAAA,EACJ,qBAAqB,2BAAA,EACrB,aAAa,mBAAA,EACb,QAAQ,cAAA,EACR,iBAAiB,uBAAA,EACjB,eAAe,qBAAA,EACf,eAAe,qBAAA;IAEf,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAM,UAAU,GAAG;QACjB,4BAA4B,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,UAAG,aAAa,cAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,IAAM,QAAQ,GAAG;QACf,4BAA4B,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,UAAG,aAAa,cAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,sBAAsB,YACnC,eAAK,SAAS,EAAC,wCAAwC,EAAC,OAAO,EAAE,UAAU,aACzE,cAAK,SAAS,EAAC,qBAAqB,EAAC,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,eAAe,EAAE,EAAnB,CAAmB,YACtE,MAAC,iBAAiB,eAChB,KAAC,wBAAwB,IAAC,OAAO,kBAC/B,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sDAAsD,gBACrD,mBAAmB,YAE9B,KAAC,SAAS,IAAC,IAAI,EAAC,eAAe,wBAAe,GACvC,GACgB,EAC3B,KAAC,wBAAwB,IAAC,SAAS,EAAC,sBAAsB,EAAC,KAAK,EAAC,KAAK,YACpE,MAAC,qBAAqB,IACpB,SAAS,EAAC,4BAA4B,EACtC,QAAQ,EAAE,QAAQ,aAElB,KAAC,SAAS,IAAC,IAAI,EAAC,WAAW,EAAC,SAAS,EAAC,iCAAiC,wBAAe,EACtF,eAAM,SAAS,EAAC,kCAAkC,qBAAY,IACxC,GACC,IACT,GAChB,EACL,iBAAiB,CAAC,CAAC,CAAC,CACnB,KAAC,iBAAiB,IAChB,OAAO,EAAE,IAAI,EACb,uBAAuB,EAAE,qBAAqB,EAC9C,SAAS,EAAE,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,SAAS,EAC3C,mBAAmB,EAAE,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,mBAAmB,EAC/D,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,CAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,KAAI,EAAE,EAClE,WAAW,EAAE,KAAK,EAClB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,IAAI,IACJ,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["// @ts-nocheck\nimport React from \"react\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { storeCurrentModelViewContext } from \"../../../helpers/modelViewPersistence\";\nimport {\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\ninterface CardItemProps {\n data: any;\n solidCardViewMetaData: any;\n editButtonUrl?: string;\n cardNode?: any;\n DynamicCardWidget?: any;\n setLightboxUrls?: any;\n setOpenLightbox?: any;\n}\n\nconst CardItem: React.FC<CardItemProps> = ({\n data,\n solidCardViewMetaData,\n editButtonUrl,\n cardNode,\n DynamicCardWidget,\n setLightboxUrls,\n setOpenLightbox,\n}) => {\n const router = useRouter();\n\n const openRecord = () => {\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n const openEdit = () => {\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n return (\n <div className=\"solid-card-view-item\">\n <div className=\"solid-card-view-card solid-kanban-card\" onClick={openRecord}>\n <div className=\"solid-kanban-action\" onClick={(e) => e.stopPropagation()}>\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger solid-kanban-action-trigger\"\n aria-label=\"Open card actions\"\n >\n <SolidIcon name=\"si-ellipsis-v\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay\" align=\"end\">\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={openEdit}\n >\n <SolidIcon name=\"si-pencil\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Edit</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n </div>\n {DynamicCardWidget ? (\n <DynamicCardWidget\n rowData={data}\n solidKanbanViewMetaData={solidCardViewMetaData}\n solidView={solidCardViewMetaData?.solidView}\n solidFieldsMetadata={solidCardViewMetaData?.solidFieldsMetadata}\n card={cardNode}\n layoutAttrs={solidCardViewMetaData?.solidView?.layout?.attrs || {}}\n groupedView={false}\n editButtonUrl={editButtonUrl}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n openRecord={openRecord}\n openEdit={openEdit}\n />\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default CardItem;\n"]}
1
+ {"version":3,"file":"CardItem.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport React from \"react\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { storeCurrentModelViewContext } from \"../../../helpers/modelViewPersistence\";\nimport {\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\ninterface CardItemProps {\n data: any;\n solidCardViewMetaData: any;\n editButtonUrl?: string;\n cardNode?: any;\n DynamicCardWidget?: any;\n onRecover?: (record: any) => void;\n setLightboxUrls?: any;\n setOpenLightbox?: any;\n showArchived?: boolean;\n}\n\nconst CardItem: React.FC<CardItemProps> = ({\n data,\n solidCardViewMetaData,\n editButtonUrl,\n cardNode,\n DynamicCardWidget,\n onRecover,\n setLightboxUrls,\n setOpenLightbox,\n showArchived,\n}) => {\n const router = useRouter();\n const isArchivedRecord = data?.deletedAt !== null && data?.deletedAt !== undefined;\n\n const openRecord = () => {\n if (isArchivedRecord) return;\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n const openEdit = () => {\n if (isArchivedRecord) return;\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n return (\n <div className=\"solid-card-view-item\">\n <div\n className={`solid-card-view-card solid-kanban-card${isArchivedRecord ? \" greyed-out-row\" : \"\"}`}\n onClick={openRecord}\n style={{ cursor: isArchivedRecord ? \"default\" : \"pointer\" }}\n >\n <div className=\"solid-kanban-action\" onClick={(e) => e.stopPropagation()}>\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger solid-kanban-action-trigger\"\n aria-label=\"Open card actions\"\n >\n <SolidIcon name=\"si-ellipsis-v\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay\" align=\"end\">\n {!isArchivedRecord ? (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={openEdit}\n >\n <SolidIcon name=\"si-pencil\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Edit</span>\n </SolidDropdownMenuItem>\n ) : null}\n {showArchived && data?.deletedAt !== null && data?.deletedAt !== undefined && onRecover ? (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => onRecover(data)}\n >\n <SolidIcon name=\"si-refresh\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Recover</span>\n </SolidDropdownMenuItem>\n ) : null}\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n </div>\n {DynamicCardWidget ? (\n <DynamicCardWidget\n rowData={data}\n solidKanbanViewMetaData={solidCardViewMetaData}\n solidView={solidCardViewMetaData?.solidView}\n solidFieldsMetadata={solidCardViewMetaData?.solidFieldsMetadata}\n card={cardNode}\n layoutAttrs={solidCardViewMetaData?.solidView?.layout?.attrs || {}}\n groupedView={false}\n editButtonUrl={editButtonUrl}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n openRecord={openRecord}\n openEdit={openEdit}\n />\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default CardItem;\n"]}