robobyte-front-builder 1.0.19 → 1.0.21

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 (513) hide show
  1. package/README.md +211 -0
  2. package/next.config.js +19 -48
  3. package/package.json +39 -85
  4. package/src/context/BuilderContext.jsx +134 -6
  5. package/src/context/SystemContext.js +2 -2
  6. package/src/hooks/useGlobalStore.js +36 -0
  7. package/src/hooks/useTimerEngine.js +54 -0
  8. package/src/lib/index.js +11 -3
  9. package/src/lib/layouts/BlankLayout.jsx +13 -0
  10. package/src/lib/providers/RoboByteFrontBuilderProvider.jsx +61 -7
  11. package/src/lib/themes/builderTheme.js +41 -0
  12. package/src/pages/_app.js +32 -134
  13. package/src/pages/api/ai.js +87 -0
  14. package/src/pages/builders/report/index.js +1 -0
  15. package/src/pages/builders/report/list/index.js +1 -0
  16. package/src/pages/builders/report/viewer/index.js +1 -0
  17. package/src/pages/index.js +88 -37
  18. package/src/pages/printBuilder/index.jsx +263 -0
  19. package/src/pages/printBuilder/layouts/index.jsx +298 -0
  20. package/src/pages/reportModule/reportBuilder/index.js +8 -6
  21. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +33 -22
  22. package/src/pages/reportModule/reportBuilder/reports/index.js +3 -5
  23. package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +2 -3
  24. package/src/pages/viewBuilder/index.jsx +117 -32
  25. package/src/pages/viewBuilder/views/index.js +3 -3
  26. package/src/pages/viewer/[id]/index.js +2 -1
  27. package/src/services/DeleteService.js +31 -60
  28. package/src/services/Endpoints/PrintLayoutEndpoints.js +42 -0
  29. package/src/services/Endpoints.js +2 -0
  30. package/src/services/GetService.js +33 -54
  31. package/src/services/PatchService.js +38 -65
  32. package/src/services/PostService.js +37 -63
  33. package/src/services/UpdateService.js +39 -65
  34. package/src/services/builderHelper/actionExecutor.js +141 -25
  35. package/src/services/builderHelper/builderHelper.js +92 -0
  36. package/src/services/builderHelper/colorSchema.js +95 -0
  37. package/src/services/builderHelper/iconResolver.js +50 -0
  38. package/src/services/builderHelper/jsExecutor.js +212 -46
  39. package/src/services/builderHelper/nodeFactory.js +32 -15
  40. package/src/services/builderHelper/numberFormat.js +123 -0
  41. package/src/services/builderHelper/resolveProps.js +73 -4
  42. package/src/services/builderHelper/thresholdEngine.js +77 -0
  43. package/src/services/builderHelper/tree.js +31 -0
  44. package/src/services/components/agGridAutoComplete.js +5 -9
  45. package/src/services/config.js +9 -1
  46. package/src/services/globalStore.js +80 -0
  47. package/src/services/helper/multiSelectEditor.js +5 -9
  48. package/src/services/helper/multiSelectEditorByBuilder.js +5 -9
  49. package/src/services/reportData/fetchReportData.js +69 -28
  50. package/src/services/routerRef.js +35 -0
  51. package/src/views/ConfirmDialog.js +2 -2
  52. package/src/views/builder/JSEditor.js +105 -107
  53. package/src/views/builder/inspector/Inspector.jsx +6 -9
  54. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
  55. package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
  56. package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
  57. package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
  58. package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
  59. package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
  60. package/src/views/builder/inspector/definitions/banner/main.js +22 -0
  61. package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
  62. package/src/views/builder/inspector/definitions/banner/style.js +1 -0
  63. package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
  64. package/src/views/builder/inspector/definitions/button/main.js +11 -12
  65. package/src/views/builder/inspector/definitions/button/style.js +18 -30
  66. package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
  67. package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
  68. package/src/views/builder/inspector/definitions/common/main.js +13 -2
  69. package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
  70. package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
  71. package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
  72. package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
  73. package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
  74. package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
  75. package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
  76. package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
  77. package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
  78. package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
  79. package/src/views/builder/inspector/definitions/header/main.js +10 -1
  80. package/src/views/builder/inspector/definitions/index.js +106 -19
  81. package/src/views/builder/inspector/definitions/input/actions.js +4 -1
  82. package/src/views/builder/inspector/definitions/input/main.js +20 -11
  83. package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
  84. package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
  85. package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
  86. package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
  87. package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
  88. package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
  89. package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
  90. package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
  91. package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
  92. package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
  93. package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
  94. package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
  95. package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
  96. package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
  97. package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
  98. package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
  99. package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
  100. package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
  101. package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
  102. package/src/views/builder/inspector/definitions/label/main.js +10 -1
  103. package/src/views/builder/inspector/definitions/layout/main.js +27 -3
  104. package/src/views/builder/inspector/definitions/number/main.js +6 -14
  105. package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
  106. package/src/views/builder/inspector/definitions/popover/main.js +71 -0
  107. package/src/views/builder/inspector/definitions/radio/main.js +5 -8
  108. package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
  109. package/src/views/builder/inspector/definitions/reportViewer/main.js +15 -1
  110. package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
  111. package/src/views/builder/inspector/definitions/signature/main.js +4 -1
  112. package/src/views/builder/inspector/definitions/tag/main.js +5 -8
  113. package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
  114. package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
  115. package/src/views/builder/inspector/definitions/time/main.js +5 -8
  116. package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
  117. package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
  118. package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
  119. package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
  120. package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
  121. package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
  122. package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
  123. package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
  124. package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
  125. package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
  126. package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
  127. package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
  128. package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
  129. package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
  130. package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
  131. package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
  132. package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
  133. package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
  134. package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
  135. package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
  136. package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
  137. package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
  138. package/src/views/builder/sidebar/Sidebar.jsx +4 -2
  139. package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
  140. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
  141. package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
  142. package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +49 -0
  143. package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
  144. package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +102 -0
  145. package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
  146. package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
  147. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
  148. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
  149. package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
  150. package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
  151. package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
  152. package/src/views/builder/sidebar/tabs/ViewTab.jsx +1 -1
  153. package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
  154. package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
  155. package/src/views/builder/viewer/DialogsZone.jsx +259 -0
  156. package/src/views/builder/viewer/FieldLabel.jsx +106 -0
  157. package/src/views/builder/viewer/PrintDialog.jsx +481 -0
  158. package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
  159. package/src/views/builder/viewer/Viewer.jsx +106 -8
  160. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +61 -4
  161. package/src/views/builder/viewer/ViewerToolbar.jsx +273 -59
  162. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
  163. package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
  164. package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
  165. package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
  166. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
  167. package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
  168. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
  169. package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
  170. package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
  171. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
  172. package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
  173. package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
  174. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
  175. package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
  176. package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
  177. package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
  178. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
  179. package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
  180. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
  181. package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
  182. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
  183. package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
  184. package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
  185. package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
  186. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
  187. package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
  188. package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
  189. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
  190. package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
  191. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
  192. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
  193. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
  194. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
  195. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
  196. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
  197. package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
  198. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
  199. package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
  200. package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
  201. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
  202. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
  203. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
  204. package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
  205. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
  206. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +219 -5
  207. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
  208. package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
  209. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
  210. package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
  211. package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
  212. package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
  213. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
  214. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
  215. package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
  216. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
  217. package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
  218. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
  219. package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
  220. package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
  221. package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
  222. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
  223. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
  224. package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
  225. package/src/views/customFilter/CustomFilterDialog.js +1023 -660
  226. package/src/views/customFilter/FixedFilterDialog.js +649 -0
  227. package/src/views/customFilter/SearchFilterDialog.js +248 -0
  228. package/src/views/genericTable/BuilderExpressionParams.js +3 -3
  229. package/src/views/genericTable/ColumnConfiguratorDialog.js +33 -24
  230. package/src/views/genericTable/FixedFilterDialog.js +3 -2
  231. package/src/views/genericTable/FormattingSettingsDialog.js +8 -3
  232. package/src/views/genericTable/SGrid.js +198 -97
  233. package/src/views/genericTable/SearchFilterDialog.js +3 -2
  234. package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
  235. package/src/views/genericTable/convertStringFunctions.js +274 -138
  236. package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
  237. package/src/views/genericTable/updateRefHelpers.js +9 -6
  238. package/src/views/printBuilder/PrintBuilderViewer.jsx +607 -0
  239. package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
  240. package/src/views/rolePermissions/UpdateReportPermissionDialog.js +3 -2
  241. package/src/@core/components/auth/AclGuard.js +0 -55
  242. package/src/@core/components/auth/AuthGuard.js +0 -40
  243. package/src/@core/components/auth/GuestGuard.js +0 -30
  244. package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
  245. package/src/@core/components/custom-inputs/Image.jsx +0 -78
  246. package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
  247. package/src/@core/components/customizer/index.jsx +0 -470
  248. package/src/@core/components/customizer/styles.module.css +0 -169
  249. package/src/@core/components/mui/Avatar.jsx +0 -41
  250. package/src/@core/components/mui/Badge.jsx +0 -20
  251. package/src/@core/components/mui/IconButton.jsx +0 -74
  252. package/src/@core/components/mui/TabList.jsx +0 -60
  253. package/src/@core/components/option-menu/index.jsx +0 -137
  254. package/src/@core/components/scroll-to-top/index.jsx +0 -43
  255. package/src/@core/components/spinner/index.js +0 -26
  256. package/src/@core/components/window-wrapper/index.js +0 -27
  257. package/src/@core/contexts/settingsContext.jsx +0 -98
  258. package/src/@core/hooks/useBgColor.js +0 -63
  259. package/src/@core/hooks/useImageVariant.js +0 -27
  260. package/src/@core/hooks/useLayoutInit.js +0 -37
  261. package/src/@core/hooks/useObjectCookie.js +0 -18
  262. package/src/@core/hooks/useSettings.jsx +0 -15
  263. package/src/@core/layouts/BlankLayout.js +0 -37
  264. package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
  265. package/src/@core/layouts/HorizontalLayout.jsx +0 -151
  266. package/src/@core/layouts/Layout.js +0 -39
  267. package/src/@core/layouts/VerticalLayout.jsx +0 -124
  268. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
  269. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
  270. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
  271. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
  272. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
  273. package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
  274. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
  275. package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
  276. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
  277. package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
  278. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
  279. package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
  280. package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
  281. package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
  282. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
  283. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
  284. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
  285. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
  286. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
  287. package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
  288. package/src/@core/layouts/utils.js +0 -69
  289. package/src/@core/styles/Table.module.css +0 -93
  290. package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
  291. package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
  292. package/src/@core/styles/libs/fullcalendar/index.js +0 -461
  293. package/src/@core/styles/libs/keen-slider/index.js +0 -111
  294. package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
  295. package/src/@core/styles/libs/react-cleave/index.js +0 -33
  296. package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
  297. package/src/@core/styles/libs/react-datepicker/index.js +0 -388
  298. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
  299. package/src/@core/styles/libs/react-dropzone/index.js +0 -76
  300. package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
  301. package/src/@core/styles/libs/recharts/index.js +0 -47
  302. package/src/@core/styles/stepper.js +0 -103
  303. package/src/@core/styles/vertical/menuItemStyles.js +0 -138
  304. package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
  305. package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
  306. package/src/@core/svg/ContentCompact.jsx +0 -17
  307. package/src/@core/svg/ContentWide.jsx +0 -17
  308. package/src/@core/svg/DirectionLtr.jsx +0 -93
  309. package/src/@core/svg/DirectionRtl.jsx +0 -93
  310. package/src/@core/svg/LayoutCollapsed.jsx +0 -59
  311. package/src/@core/svg/LayoutHorizontal.jsx +0 -42
  312. package/src/@core/svg/LayoutVertical.jsx +0 -59
  313. package/src/@core/svg/Logo.jsx +0 -76
  314. package/src/@core/svg/SkinBordered.jsx +0 -54
  315. package/src/@core/svg/SkinDefault.jsx +0 -59
  316. package/src/@core/tailwind/plugin.js +0 -78
  317. package/src/@core/theme/ThemeComponent.js +0 -63
  318. package/src/@core/theme/ThemeOptions.js +0 -71
  319. package/src/@core/theme/breakpoints/index.js +0 -11
  320. package/src/@core/theme/colorSchemes.js +0 -326
  321. package/src/@core/theme/customShadows.js +0 -11
  322. package/src/@core/theme/globalStyles.js +0 -81
  323. package/src/@core/theme/index.js +0 -42
  324. package/src/@core/theme/overrides/accordion.js +0 -51
  325. package/src/@core/theme/overrides/accordion.jsx +0 -85
  326. package/src/@core/theme/overrides/alerts.js +0 -110
  327. package/src/@core/theme/overrides/alerts.jsx +0 -180
  328. package/src/@core/theme/overrides/autocomplete.js +0 -14
  329. package/src/@core/theme/overrides/autocomplete.jsx +0 -68
  330. package/src/@core/theme/overrides/avatar.js +0 -38
  331. package/src/@core/theme/overrides/avatars.js +0 -27
  332. package/src/@core/theme/overrides/backdrop.js +0 -22
  333. package/src/@core/theme/overrides/badges.js +0 -16
  334. package/src/@core/theme/overrides/breadcrumbs.js +0 -11
  335. package/src/@core/theme/overrides/button-group.js +0 -84
  336. package/src/@core/theme/overrides/button.js +0 -93
  337. package/src/@core/theme/overrides/buttonGroup.js +0 -9
  338. package/src/@core/theme/overrides/card.js +0 -83
  339. package/src/@core/theme/overrides/checkbox.jsx +0 -95
  340. package/src/@core/theme/overrides/chip.js +0 -72
  341. package/src/@core/theme/overrides/dataGrid.js +0 -114
  342. package/src/@core/theme/overrides/dateTimePicker.js +0 -65
  343. package/src/@core/theme/overrides/dialog.js +0 -120
  344. package/src/@core/theme/overrides/divider.js +0 -13
  345. package/src/@core/theme/overrides/drawer.js +0 -20
  346. package/src/@core/theme/overrides/fab.js +0 -13
  347. package/src/@core/theme/overrides/form-control-label.js +0 -19
  348. package/src/@core/theme/overrides/icon-button.js +0 -145
  349. package/src/@core/theme/overrides/index.js +0 -103
  350. package/src/@core/theme/overrides/input.js +0 -72
  351. package/src/@core/theme/overrides/link.js +0 -9
  352. package/src/@core/theme/overrides/list.js +0 -44
  353. package/src/@core/theme/overrides/menu.js +0 -25
  354. package/src/@core/theme/overrides/pagination.js +0 -41
  355. package/src/@core/theme/overrides/paper.js +0 -9
  356. package/src/@core/theme/overrides/popover.js +0 -16
  357. package/src/@core/theme/overrides/progress.js +0 -38
  358. package/src/@core/theme/overrides/radio.jsx +0 -80
  359. package/src/@core/theme/overrides/rating.js +0 -16
  360. package/src/@core/theme/overrides/rating.jsx +0 -32
  361. package/src/@core/theme/overrides/select.js +0 -19
  362. package/src/@core/theme/overrides/select.jsx +0 -52
  363. package/src/@core/theme/overrides/slider.js +0 -97
  364. package/src/@core/theme/overrides/snackbar.js +0 -19
  365. package/src/@core/theme/overrides/switch.js +0 -73
  366. package/src/@core/theme/overrides/switches.js +0 -25
  367. package/src/@core/theme/overrides/table-pagination.js +0 -39
  368. package/src/@core/theme/overrides/table.js +0 -81
  369. package/src/@core/theme/overrides/tabs.js +0 -30
  370. package/src/@core/theme/overrides/timeline.js +0 -80
  371. package/src/@core/theme/overrides/toggle-button.js +0 -33
  372. package/src/@core/theme/overrides/toggleButton.js +0 -16
  373. package/src/@core/theme/overrides/tooltip.js +0 -21
  374. package/src/@core/theme/overrides/typography.js +0 -13
  375. package/src/@core/theme/palette/index.js +0 -107
  376. package/src/@core/theme/shadows/index.js +0 -61
  377. package/src/@core/theme/shadows.js +0 -12
  378. package/src/@core/theme/spacing/index.js +0 -3
  379. package/src/@core/theme/spacing.js +0 -5
  380. package/src/@core/theme/typography/index.js +0 -65
  381. package/src/@core/theme/typography.js +0 -84
  382. package/src/@core/utils/create-emotion-cache.js +0 -5
  383. package/src/@core/utils/hex-to-rgba.js +0 -11
  384. package/src/@core/utils/serverHelpers.js +0 -45
  385. package/src/@menu/components/RouterLink.jsx +0 -18
  386. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
  387. package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
  388. package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
  389. package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
  390. package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
  391. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
  392. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
  393. package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
  394. package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
  395. package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
  396. package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
  397. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
  398. package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
  399. package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
  400. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
  401. package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
  402. package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
  403. package/src/@menu/contexts/verticalNavContext.jsx +0 -65
  404. package/src/@menu/defaultConfigs.js +0 -12
  405. package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
  406. package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
  407. package/src/@menu/hooks/useMediaQuery.jsx +0 -29
  408. package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
  409. package/src/@menu/hooks/useVerticalNav.jsx +0 -19
  410. package/src/@menu/horizontal-menu/index.jsx +0 -8
  411. package/src/@menu/styles/StyledBackdrop.jsx +0 -15
  412. package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
  413. package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
  414. package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
  415. package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
  416. package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
  417. package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
  418. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
  419. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
  420. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
  421. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
  422. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
  423. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
  424. package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
  425. package/src/@menu/styles/styles.module.css +0 -5
  426. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
  427. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
  428. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
  429. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
  430. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
  431. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
  432. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
  433. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
  434. package/src/@menu/svg/ChevronRight.jsx +0 -9
  435. package/src/@menu/svg/Close.jsx +0 -12
  436. package/src/@menu/svg/RadioCircle.jsx +0 -12
  437. package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
  438. package/src/@menu/utils/menuClasses.js +0 -44
  439. package/src/@menu/utils/menuUtils.jsx +0 -145
  440. package/src/@menu/vertical-menu/index.jsx +0 -11
  441. package/src/configs/acl.js +0 -115
  442. package/src/configs/auth.js +0 -5
  443. package/src/configs/aws-exports.js +0 -30
  444. package/src/configs/firebase.js +0 -25
  445. package/src/configs/i18n.js +0 -34
  446. package/src/configs/primaryColorConfig.js +0 -35
  447. package/src/configs/themeConfig.js +0 -44
  448. package/src/layouts/UserLayout.js +0 -94
  449. package/src/layouts/UserThemeOptions.js +0 -191
  450. package/src/layouts/components/Direction.js +0 -30
  451. package/src/layouts/components/HtmlTooltip.js +0 -15
  452. package/src/layouts/components/Translations.js +0 -11
  453. package/src/layouts/components/UserDropdown.js +0 -217
  454. package/src/layouts/components/UserIcon.js +0 -40
  455. package/src/layouts/components/acl/Can.js +0 -6
  456. package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
  457. package/src/layouts/components/acl/CanViewNavLink.js +0 -17
  458. package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
  459. package/src/layouts/components/horizontal/AppBarContent.js +0 -39
  460. package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
  461. package/src/layouts/components/mui/StepperComps.js +0 -55
  462. package/src/layouts/components/vertical/AppBarContent.js +0 -35
  463. package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
  464. package/src/libs/ApexCharts.jsx +0 -5
  465. package/src/libs/ReactPlayer.jsx +0 -5
  466. package/src/libs/Recharts.jsx +0 -4
  467. package/src/libs/auth.js +0 -124
  468. package/src/libs/styles/AppFullCalendar.js +0 -505
  469. package/src/libs/styles/AppKeenSlider.js +0 -116
  470. package/src/libs/styles/AppReactApexCharts.jsx +0 -110
  471. package/src/libs/styles/AppReactDatepicker.jsx +0 -470
  472. package/src/libs/styles/AppReactDropzone.js +0 -76
  473. package/src/libs/styles/AppReactToastify.jsx +0 -108
  474. package/src/libs/styles/AppRecharts.js +0 -55
  475. package/src/libs/styles/inputOtp.module.css +0 -39
  476. package/src/libs/styles/tiptapEditor.css +0 -72
  477. package/src/navigation/horizontal/index.js +0 -246
  478. package/src/navigation/vertical/index.js +0 -253
  479. package/src/pages/401.js +0 -70
  480. package/src/pages/404.js +0 -67
  481. package/src/pages/500.js +0 -68
  482. package/src/pages/[slug].js +0 -115
  483. package/src/pages/_document.js +0 -72
  484. package/src/pages/api/navigation/regenerate-registry.js +0 -116
  485. package/src/pages/api/navigation/save.js +0 -218
  486. package/src/pages/authModule/acl/index.js +0 -48
  487. package/src/pages/authModule/forgot-password/index.js +0 -228
  488. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
  489. package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
  490. package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
  491. package/src/pages/authModule/privacy/index.js +0 -721
  492. package/src/pages/authModule/users/index.js +0 -210
  493. package/src/pages/login/index.js +0 -328
  494. package/src/pages/mainHome/index.js +0 -181
  495. package/src/views/builder/inspector/definitions/cell/main.js +0 -4
  496. package/src/views/builder/inspector/definitions/column/main.js +0 -9
  497. package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
  498. package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
  499. package/src/views/builder/inspector/definitions/table/main.js +0 -9
  500. package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
  501. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
  502. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
  503. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
  504. package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
  505. package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
  506. package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
  507. package/src/views/pages/misc/FooterIllustrations.js +0 -47
  508. package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
  509. package/src/views/pages/users/UserManageDialog.js +0 -283
  510. package/src/views/pages/users/UserViewPage.js +0 -199
  511. package/src/views/users/AddUserNameDialog.js +0 -162
  512. package/src/views/users/ContactManage.js +0 -449
  513. package/src/views/users/ResetPasswordDialog.js +0 -242
@@ -7,7 +7,7 @@ import axios from 'axios'
7
7
 
8
8
  // ** Config
9
9
  import {Endpoints, Services} from 'services/Endpoints'
10
- import {getBaseURL} from 'services/config'
10
+ import {getBaseURL, getAccessToken} from 'services/config'
11
11
  import {useJsApiLoader} from '@react-google-maps/api'
12
12
  import {AuthContext} from './AuthContext'
13
13
  import handleChange from 'services/helper/handleChange'
@@ -44,7 +44,7 @@ const SystemProvider = ({children}) => {
44
44
  const auth = useContext(AuthContext)
45
45
  //
46
46
  useEffect(() => {
47
- if (localStorage.getItem('accessToken') != null) {
47
+ if (getAccessToken() != null) {
48
48
  handleGetNavigationSettings()
49
49
  console.log(navigation)
50
50
  }
@@ -0,0 +1,36 @@
1
+ import { useState, useEffect } from 'react'
2
+ import { getGlobalData, setGlobalData, subscribeGlobal } from '../services/globalStore'
3
+
4
+ /**
5
+ * React hook for consuming and updating the cross-route global store.
6
+ *
7
+ * Components that call this hook will re-render whenever any part of
8
+ * globalData changes (via setGlobalData from any Calculation, renderer,
9
+ * or component anywhere in the app).
10
+ *
11
+ * @returns {{ globalData: object, setGlobalData: (updater: object | Function) => void }}
12
+ *
13
+ * @example
14
+ * function MyComponent() {
15
+ * const { globalData, setGlobalData } = useGlobalStore()
16
+ *
17
+ * return (
18
+ * <div>
19
+ * Selected: {globalData.selectedUser?.name}
20
+ * <button onClick={() => setGlobalData({ selectedUser: null })}>Clear</button>
21
+ * </div>
22
+ * )
23
+ * }
24
+ */
25
+ export function useGlobalStore() {
26
+ const [state, setState] = useState(getGlobalData)
27
+
28
+ useEffect(() => {
29
+ // Sync with any changes that happened between render and effect
30
+ setState(getGlobalData())
31
+ // Subscribe for future updates
32
+ return subscribeGlobal(setState)
33
+ }, [])
34
+
35
+ return { globalData: state, setGlobalData }
36
+ }
@@ -0,0 +1,54 @@
1
+ import { useEffect, useRef } from 'react'
2
+ import { executeJSCode } from 'services/builderHelper/jsExecutor'
3
+
4
+ /**
5
+ * useTimerEngine
6
+ *
7
+ * Starts client-side timers (setInterval / setTimeout) for each enabled timer
8
+ * in the schema, executes their Calculation code via executeJSCode, and cleans
9
+ * up all handles when the component unmounts or the timer configuration changes.
10
+ *
11
+ * IMPORTANT — context is read through a ref, NOT a dep:
12
+ * The effect only re-registers when `timers` config changes, not on every
13
+ * render caused by data/form state updates. This prevents runaway re-mounts
14
+ * while still ensuring each tick uses the freshest data/setData values.
15
+ *
16
+ * @param {object[]} timers - schema.timers array
17
+ * @param {object} context - Execution context (data, setData, dataRef, …)
18
+ * Caller must update this object on every render.
19
+ */
20
+ export function useTimerEngine({ timers, context }) {
21
+ // Always hold a ref to the latest context so timer callbacks see fresh state
22
+ // without adding context to the effect dependency array.
23
+ const contextRef = useRef(context)
24
+ useEffect(() => { contextRef.current = context }) // sync every render
25
+
26
+ useEffect(() => {
27
+ const active = (timers ?? []).filter(t => t.enabled && t.code?.trim())
28
+ if (!active.length) return
29
+
30
+ const cleanups = []
31
+
32
+ for (const timer of active) {
33
+ // Enforce a 1 s minimum to avoid accidental tight loops
34
+ const ms = Math.max(Number(timer.interval) || 5000, 1000)
35
+
36
+ const run = () => {
37
+ executeJSCode(timer.code, contextRef.current).catch(err =>
38
+ console.error(`[Timer "${timer.name ?? timer.id}"]`, err)
39
+ )
40
+ }
41
+
42
+ if (timer.type === 'interval') {
43
+ if (timer.runOnLoad) run() // fire immediately if requested
44
+ const id = setInterval(run, ms)
45
+ cleanups.push(() => clearInterval(id))
46
+ } else if (timer.type === 'delay') {
47
+ const id = setTimeout(run, ms)
48
+ cleanups.push(() => clearTimeout(id))
49
+ }
50
+ }
51
+
52
+ return () => cleanups.forEach(fn => fn())
53
+ }, [timers]) // re-registers only when timer config (name/type/interval/code) changes
54
+ }
package/src/lib/index.js CHANGED
@@ -73,14 +73,22 @@ export { default as RoboByteFrontBuilderProvider } from './providers/RoboByteFro
73
73
  export { default as UIBuilderPage } from '../pages/viewBuilder/index'
74
74
  export { default as ReportBuilderPage } from '../pages/reportModule/reportBuilder/index'
75
75
  export { default as NavigatorBuilderPage } from '../pages/navigatorBuilder/index'
76
+ // PrintBuilderPage — full print layout designer (header / body pages / footer / settings).
77
+ // Create a host page at e.g. pages/printBuilder/index.jsx and re-export this component.
78
+ // Open a saved layout from action code: openPrintLayout('layoutId', data)
79
+ export { default as PrintBuilderPage } from '../pages/printBuilder/index'
80
+ // PrintLayoutsList — browse, preview, and delete saved print layouts.
81
+ // Create a host page at e.g. pages/printBuilder/layouts/index.jsx and re-export this component.
82
+ export { default as PrintLayoutsList } from '../pages/printBuilder/layouts/index'
76
83
  // ViewerPage renders a saved UI Builder view (read-only production mode).
77
84
  // Create a host page at e.g. pages/viewer/[id].jsx and re-export this component.
78
85
  export { default as ViewerPage } from '../pages/viewer/[id]/index'
79
86
  // Internal list / viewer pages — use these to embed the browse/list experience
80
87
  // inside the host app with its own layout.
81
- export { default as ViewsList } from '../pages/viewBuilder/views/index'
82
- export { default as ReportsList } from '../pages/reportModule/reportBuilder/reports/index'
83
- export { default as ReportViewer } from '../pages/reportModule/reportBuilder/reportViewer/index'
88
+ export { default as ViewsList } from '../pages/viewBuilder/views/index'
89
+ export { default as ReportsList } from '../pages/reportModule/reportBuilder/reports/index'
90
+ export { default as ReportViewer } from '../pages/reportModule/reportBuilder/reportViewer/index'
91
+ export { default as ReportsCard } from '../pages/reportModule/reportBuilder/reportsPermissions/index'
84
92
 
85
93
  // ── Core Contexts & Hooks (advanced use) ─────────────────────────────────────
86
94
  // Useful when you need to read or drive builder state from the host app.
@@ -0,0 +1,13 @@
1
+ import Box from '@mui/material/Box'
2
+
3
+ /**
4
+ * BlankLayout — minimal full-height wrapper used by builder pages.
5
+ * Standalone replacement for @core/layouts/BlankLayout.
6
+ */
7
+ const BlankLayout = ({ children }) => (
8
+ <Box sx={{ minHeight: '100vh', width: '100%', overflow: 'hidden' }}>
9
+ {children}
10
+ </Box>
11
+ )
12
+
13
+ export default BlankLayout
@@ -43,13 +43,28 @@
43
43
  * }
44
44
  */
45
45
 
46
- import { useMemo } from 'react'
46
+ import { useEffect, useMemo } from 'react'
47
+ import { useRouter } from 'next/router'
48
+ import { Toaster } from 'react-hot-toast'
47
49
  import { ModuleRegistry } from 'ag-grid-community'
48
- import { AllEnterpriseModule, IntegratedChartsModule, LicenseManager } from 'ag-grid-enterprise'
49
- import { AgChartsEnterpriseModule } from 'ag-charts-enterprise'
50
+ import { AllEnterpriseModule, LicenseManager } from 'ag-grid-enterprise'
50
51
  import { NavigationExtensionProvider } from '../navigation/NavigationExtensionContext'
51
52
  import { configureRoboByte } from '../../services/config'
52
53
  import { AuthContext } from '../../context/AuthContext'
54
+ import { setRouter } from '../../services/routerRef'
55
+
56
+ /**
57
+ * Keeps the routerRef singleton in sync with the current Next.js router.
58
+ * Must render inside a Next.js page tree so useRouter() is available.
59
+ * Returns null — purely a side-effect component.
60
+ */
61
+ function RouterSync() {
62
+ const router = useRouter()
63
+ useEffect(() => {
64
+ setRouter(router)
65
+ }, [router])
66
+ return null
67
+ }
53
68
 
54
69
  /**
55
70
  * @param {string} [baseURL] Root API server URL (with trailing slash)
@@ -63,6 +78,12 @@ import { AuthContext } from '../../context/AuthContext'
63
78
  * Pass your key here — the provider calls
64
79
  * LicenseManager.setLicenseKey() and registers
65
80
  * AllEnterpriseModule automatically.
81
+ * @param {object} [toasterProps] Props forwarded to react-hot-toast's <Toaster />.
82
+ * The provider mounts its own Toaster so the package
83
+ * controls its own toast instance — no setup needed
84
+ * in the host app. Override position, toastOptions,
85
+ * etc. here if needed.
86
+ * Default: { position: 'top-right' }
66
87
  * @param {ReactNode} children
67
88
  */
68
89
  const RoboByteFrontBuilderProvider = ({
@@ -74,6 +95,7 @@ const RoboByteFrontBuilderProvider = ({
74
95
  navExtensions = [],
75
96
  endpoints = null,
76
97
  agGridLicenseKey = null,
98
+ toasterProps = {},
77
99
  }) => {
78
100
  // Apply URL + endpoint config synchronously before any child renders.
79
101
  useMemo(() => {
@@ -87,10 +109,7 @@ const RoboByteFrontBuilderProvider = ({
87
109
  if (agGridLicenseKey) {
88
110
  LicenseManager.setLicenseKey(agGridLicenseKey)
89
111
  }
90
- ModuleRegistry.registerModules([
91
- AllEnterpriseModule,
92
- IntegratedChartsModule.with(AgChartsEnterpriseModule),
93
- ])
112
+ ModuleRegistry.registerModules([AllEnterpriseModule])
94
113
  }, [agGridLicenseKey])
95
114
 
96
115
  // Auth context value — comes entirely from the host. No logic here.
@@ -102,7 +121,42 @@ const RoboByteFrontBuilderProvider = ({
102
121
  return (
103
122
  <AuthContext.Provider value={authValue}>
104
123
  <NavigationExtensionProvider items={navExtensions}>
124
+ <RouterSync />
105
125
  {children}
126
+ {/* Package-owned Toaster — same react-hot-toast instance used by all
127
+ services (GetService, PostService, …) and showToast() in action code.
128
+ Mounted here so the host app needs zero toast setup. */}
129
+ <Toaster
130
+ position='bottom-center'
131
+ gutter={10}
132
+ containerStyle={{ bottom: 24 }}
133
+ toastOptions={{
134
+ duration: 4000,
135
+ style: {
136
+ borderRadius: '10px',
137
+ background: '#1e1e2e',
138
+ color: '#f0f0f5',
139
+ fontSize: '14px',
140
+ fontFamily: 'inherit',
141
+ padding: '12px 16px',
142
+ boxShadow: '0 8px 24px rgba(0,0,0,0.25)',
143
+ maxWidth: '380px',
144
+ },
145
+ success: {
146
+ iconTheme: { primary: '#4ade80', secondary: '#1e1e2e' },
147
+ style: { borderLeft: '4px solid #4ade80' },
148
+ },
149
+ error: {
150
+ iconTheme: { primary: '#f87171', secondary: '#1e1e2e' },
151
+ style: { borderLeft: '4px solid #f87171' },
152
+ },
153
+ loading: {
154
+ iconTheme: { primary: '#60a5fa', secondary: '#1e1e2e' },
155
+ style: { borderLeft: '4px solid #60a5fa' },
156
+ },
157
+ }}
158
+ {...toasterProps}
159
+ />
106
160
  </NavigationExtensionProvider>
107
161
  </AuthContext.Provider>
108
162
  )
@@ -0,0 +1,41 @@
1
+ import { createTheme } from '@mui/material/styles'
2
+
3
+ const STORAGE_KEY = 'rbb:builderThemeMode'
4
+
5
+ // ── Dark theme ────────────────────────────────────────────────────────────────
6
+ export const builderDarkTheme = createTheme({
7
+ palette: {
8
+ mode: 'dark',
9
+ primary: { main: '#9c27b0' }, // purple (UI builder indicator)
10
+ secondary: { main: '#f5a623' }, // amber (print builder indicator)
11
+ background: { default: '#141618', paper: '#1e2227' },
12
+ divider: '#3a3f45',
13
+ text: { primary: '#e8eaed', secondary: '#9aa0aa' },
14
+ },
15
+ })
16
+
17
+ // ── Light theme ───────────────────────────────────────────────────────────────
18
+ export const builderLightTheme = createTheme({
19
+ palette: {
20
+ mode: 'light',
21
+ primary: { main: '#9c27b0' },
22
+ secondary: { main: '#f5a623' },
23
+ background: { default: '#f0f2f5', paper: '#ffffff' },
24
+ divider: '#dde1e7',
25
+ },
26
+ })
27
+
28
+ export const BUILDER_THEMES = {
29
+ dark: builderDarkTheme,
30
+ light: builderLightTheme,
31
+ }
32
+
33
+ // ── Persistence ───────────────────────────────────────────────────────────────
34
+ export function getBuilderThemeMode() {
35
+ try { return localStorage.getItem(STORAGE_KEY) === 'light' ? 'light' : 'dark' }
36
+ catch { return 'dark' }
37
+ }
38
+
39
+ export function saveBuilderThemeMode(mode) {
40
+ try { localStorage.setItem(STORAGE_KEY, mode) } catch {}
41
+ }
package/src/pages/_app.js CHANGED
@@ -1,140 +1,38 @@
1
- // ** Next Imports
2
- import Head from 'next/head'
3
- import {Router, useRouter} from 'next/router'
4
-
5
- // ** Loader Import
6
- import NProgress from 'nprogress'
7
-
8
- // ** Emotion Imports
9
- import { CacheProvider } from '@emotion/react'
10
-
11
- // ** Config Imports
12
-
13
- import { defaultACLObj } from 'src/configs/acl'
14
- import themeConfig from 'src/configs/themeConfig'
15
-
16
- import { Toaster } from 'react-hot-toast'
17
- import 'src/configs/i18n'
18
-
19
- import UserLayout from 'src/layouts/UserLayout'
20
- import AclGuard from 'src/@core/components/auth/AclGuard'
21
- import ThemeComponent from 'src/@core/theme/ThemeComponent'
22
- import AuthGuard from 'src/@core/components/auth/AuthGuard'
23
- import GuestGuard from 'src/@core/components/auth/GuestGuard'
24
- import WindowWrapper from 'src/@core/components/window-wrapper'
25
-
26
- import Spinner from 'src/@core/components/spinner'
27
-
28
- import { AuthProvider } from 'src/context/AuthContext'
29
- import {SettingsConsumer, SettingsContext, SettingsProvider} from 'src/@core/contexts/settingsContext'
30
-
31
- import ReactHotToast from 'src/@core/styles/libs/react-hot-toast'
32
-
33
- import { createEmotionCache } from 'src/@core/utils/create-emotion-cache'
34
-
35
- import 'prismjs'
36
- import 'prismjs/themes/prism-tomorrow.css'
37
- import 'prismjs/components/prism-jsx'
38
- import 'prismjs/components/prism-tsx'
39
-
40
- import 'react-perfect-scrollbar/dist/css/styles.css'
41
-
42
- import '../../styles/globals.css'
43
- import 'src/services/helper/yupCutomization'
44
- import { SystemProvider } from 'context/SystemContext'
45
- import {useContext, useEffect} from "react";
46
- import { NavigationExtensionProvider } from 'src/lib/navigation/NavigationExtensionContext'
47
-
48
- const clientSideEmotionCache = createEmotionCache()
49
- // ** Pace Loader
50
- if (themeConfig.routingLoader) {
51
- Router.events.on('routeChangeStart', () => {
52
- NProgress.start()
53
- })
54
- Router.events.on('routeChangeError', () => {
55
- NProgress.done()
56
- })
57
- Router.events.on('routeChangeComplete', () => {
58
- NProgress.done()
59
- })
60
- }
61
-
62
- const Guard = ({ children, authGuard, guestGuard }) => {
63
- if (guestGuard) {
64
- return <GuestGuard fallback={<Spinner />}>{children}</GuestGuard>
65
- } else if (!guestGuard && !authGuard) {
66
- return <>{children}</>
67
- } else {
68
- return <AuthGuard fallback={<Spinner />}>{children}</AuthGuard>
69
- }
70
-
71
-
1
+ /**
2
+ * _app.js — Dev bootstrap for running robobyte-front-builder standalone.
3
+ *
4
+ * Wraps every page with RoboByteFrontBuilderProvider so all builder pages
5
+ * (viewBuilder, reportModule, navigatorBuilder, etc.) have access to the
6
+ * configured API URLs, AG Grid license, and auth context.
7
+ *
8
+ * Auth is mocked for development: a static dev user + token are used so you
9
+ * can navigate all builders without a real auth server.
10
+ */
11
+
12
+ import RoboByteFrontBuilderProvider from '../lib/providers/RoboByteFrontBuilderProvider'
13
+
14
+ // ── Dev credentials ────────────────────────────────────────────────────────
15
+ // Replace these with real values (or wire a login form) when needed.
16
+ const DEV_USER = {
17
+ id: 1,
18
+ name: 'Dev User',
19
+ email: 'dev@robobyte.local',
20
+ role: 'admin',
72
21
  }
22
+ const DEV_ACCESS_TOKEN = null // Set to a real token string if your API requires auth
73
23
 
74
- // ** Configure JSS & ClassName
75
- const App = props => {
76
- const { Component, emotionCache = clientSideEmotionCache, pageProps } = props
77
- const router = useRouter();
78
- // Variables
79
- const getLayout = Component.getLayout ?? (page => <UserLayout>{page}</UserLayout>)
80
- const setConfig = Component.setConfig ?? undefined
81
- const authGuard = Component.authGuard ?? true
82
- const guestGuard = Component.guestGuard ?? false
83
- const context = useContext(SettingsContext)
84
-
85
- const settings = context?.settings
86
- const saveSettings = context?.saveSettings
87
- const aclAbilities = Component.acl ?? defaultACLObj
88
-
89
- useEffect(()=>{
90
- if (router.pathname === '/mainHome' || router.pathname === '/finance' || router.pathname === '/realStateManagement' || router.pathname == '/authModule' || router.pathname == '/reports') {
91
- document.body.classList.add('home-page-body');
92
- saveSettings({...settings,navHidden:true})
93
- } else {
94
- document.body.classList.remove('home-page-body');
95
- saveSettings({...settings,navHidden:false})
96
- }
97
- }, [router.pathname])
24
+ export default function App({ Component, pageProps }) {
25
+ const getLayout = Component.getLayout ?? (page => page)
98
26
 
99
27
  return (
100
- <CacheProvider value={emotionCache}>
101
- <Head>
102
- <title>{`${themeConfig.templateName} - By RoboByte`}</title>
103
- {/* <meta
104
- name='description'
105
- content={`${themeConfig.templateName} – Material Design React Admin Dashboard Template – is the most developer friendly & highly customizable Admin Dashboard Template based on MUI v5.`}
106
- /> */}
107
- {/* <meta name='keywords' content='Material Design, MUI, Admin Template, React Admin Template' /> */}
108
- <meta name='viewport' content='initial-scale=1, width=device-width' />
109
- </Head>
110
- <AuthProvider>
111
- <NavigationExtensionProvider>
112
- <SystemProvider>
113
- <SettingsProvider {...(setConfig ? { pageSettings: setConfig() } : {})}>
114
- <SettingsConsumer>
115
- {({ settings }) => {
116
- return (
117
- <ThemeComponent settings={settings}>
118
- <WindowWrapper>
119
- <Guard authGuard={authGuard} guestGuard={guestGuard}>
120
- <AclGuard aclAbilities={aclAbilities} guestGuard={guestGuard}>
121
- {getLayout(<Component {...pageProps} />)}
122
- </AclGuard>
123
- </Guard>
124
- </WindowWrapper>
125
- <ReactHotToast>
126
- <Toaster position={settings.toastPosition} toastOptions={{ className: 'react-hot-toast' }} />
127
- </ReactHotToast>
128
- </ThemeComponent>
129
- )
130
- }}
131
- </SettingsConsumer>
132
- </SettingsProvider>
133
- </SystemProvider>
134
- </NavigationExtensionProvider>
135
- </AuthProvider>
136
- </CacheProvider>
28
+ <RoboByteFrontBuilderProvider
29
+ baseURL={process.env.NEXT_PUBLIC_API_BASE_URL || 'http://140.82.34.191:3400/'}
30
+ apiURL={process.env.NEXT_PUBLIC_API_URL || 'http://140.82.34.191:3400/api/'}
31
+ user={DEV_USER}
32
+ accessToken={DEV_ACCESS_TOKEN}
33
+ agGridLicenseKey={process.env.NEXT_PUBLIC_AG_GRID_LICENSE_KEY}
34
+ >
35
+ {getLayout(<Component {...pageProps} />)}
36
+ </RoboByteFrontBuilderProvider>
137
37
  )
138
38
  }
139
-
140
- export default App
@@ -0,0 +1,87 @@
1
+ /**
2
+ * POST /api/ai
3
+ *
4
+ * Thin proxy that forwards builder AI requests to the configured provider.
5
+ * Runs server-side — API keys are never exposed to the browser.
6
+ *
7
+ * Body: { messages: [{role, content}], systemPrompt: string, provider?: string }
8
+ * Response: { content: string }
9
+ */
10
+
11
+ const PROVIDERS = {
12
+ claude: {
13
+ url: 'https://api.anthropic.com/v1/messages',
14
+ apiKey: () => process.env.CLAUDE_API_KEY ?? '',
15
+ model: () => process.env.NEXT_PUBLIC_CLAUDE_MODEL ?? 'claude-sonnet-4-6',
16
+ headers: (key) => ({
17
+ 'Content-Type': 'application/json',
18
+ 'x-api-key': key,
19
+ 'anthropic-version': '2023-06-01',
20
+ }),
21
+ body: (model, messages, system) => ({
22
+ model,
23
+ max_tokens: 8096,
24
+ system,
25
+ messages,
26
+ }),
27
+ extract: (data) => data?.content?.[0]?.text ?? '',
28
+ },
29
+
30
+ openai: {
31
+ url: 'https://api.openai.com/v1/chat/completions',
32
+ apiKey: () => process.env.OPENAI_API_KEY ?? '',
33
+ model: () => process.env.NEXT_PUBLIC_OPENAI_MODEL ?? 'gpt-4o',
34
+ headers: (key) => ({
35
+ 'Content-Type': 'application/json',
36
+ Authorization: `Bearer ${key}`,
37
+ }),
38
+ body: (model, messages, system) => ({
39
+ model,
40
+ max_tokens: 8096,
41
+ messages: [{ role: 'system', content: system }, ...messages],
42
+ }),
43
+ extract: (data) => data?.choices?.[0]?.message?.content ?? '',
44
+ },
45
+ }
46
+
47
+ export default async function handler(req, res) {
48
+ if (req.method !== 'POST') {
49
+ return res.status(405).json({ error: 'Method not allowed' })
50
+ }
51
+
52
+ const { messages, systemPrompt, provider: providerOverride } = req.body
53
+
54
+ if (!messages || !systemPrompt) {
55
+ return res.status(400).json({ error: 'Missing messages or systemPrompt' })
56
+ }
57
+
58
+ const providerId = providerOverride ?? process.env.NEXT_PUBLIC_AI_PROVIDER ?? 'claude'
59
+ const provider = PROVIDERS[providerId] ?? PROVIDERS.claude
60
+ const apiKey = provider.apiKey()
61
+ const model = provider.model()
62
+
63
+ if (!apiKey) {
64
+ return res.status(500).json({
65
+ error: `No API key configured for provider "${providerId}". Set ${providerId.toUpperCase()}_API_KEY in .env.local.`,
66
+ })
67
+ }
68
+
69
+ try {
70
+ const upstream = await fetch(provider.url, {
71
+ method: 'POST',
72
+ headers: provider.headers(apiKey),
73
+ body: JSON.stringify(provider.body(model, messages, systemPrompt)),
74
+ })
75
+
76
+ if (!upstream.ok) {
77
+ const body = await upstream.text().catch(() => '')
78
+ return res.status(upstream.status).json({ error: `Provider error (${upstream.status}): ${body}` })
79
+ }
80
+
81
+ const data = await upstream.json()
82
+ const content = provider.extract(data)
83
+ return res.status(200).json({ content })
84
+ } catch (err) {
85
+ return res.status(500).json({ error: err.message })
86
+ }
87
+ }
@@ -0,0 +1 @@
1
+ export { default } from '../../reportModule/reportBuilder'
@@ -0,0 +1 @@
1
+ export { default } from '../../../reportModule/reportBuilder/reports'
@@ -0,0 +1 @@
1
+ export { default } from '../../../reportModule/reportBuilder/reportViewer'