robobyte-front-builder 1.0.17 → 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 (516) 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 +59 -1
  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 +723 -563
  21. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +137 -71
  22. package/src/pages/reportModule/reportBuilder/reports/index.js +51 -13
  23. package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +126 -0
  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 +241 -0
  49. package/src/services/helper/reportSessionHelper.js +83 -0
  50. package/src/services/reportData/fetchReportData.js +69 -28
  51. package/src/services/routerRef.js +35 -0
  52. package/src/views/ConfirmDialog.js +2 -2
  53. package/src/views/builder/JSEditor.js +105 -107
  54. package/src/views/builder/inspector/Inspector.jsx +6 -9
  55. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
  56. package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
  57. package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
  58. package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
  59. package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
  60. package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
  61. package/src/views/builder/inspector/definitions/banner/main.js +22 -0
  62. package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
  63. package/src/views/builder/inspector/definitions/banner/style.js +1 -0
  64. package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
  65. package/src/views/builder/inspector/definitions/button/main.js +11 -12
  66. package/src/views/builder/inspector/definitions/button/style.js +18 -30
  67. package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
  68. package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
  69. package/src/views/builder/inspector/definitions/common/main.js +13 -2
  70. package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
  71. package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
  72. package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
  73. package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
  74. package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
  75. package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
  76. package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
  77. package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
  78. package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
  79. package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
  80. package/src/views/builder/inspector/definitions/header/main.js +10 -1
  81. package/src/views/builder/inspector/definitions/index.js +106 -19
  82. package/src/views/builder/inspector/definitions/input/actions.js +4 -1
  83. package/src/views/builder/inspector/definitions/input/main.js +20 -11
  84. package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
  85. package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
  86. package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
  87. package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
  88. package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
  89. package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
  90. package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
  91. package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
  92. package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
  93. package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
  94. package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
  95. package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
  96. package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
  97. package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
  98. package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
  99. package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
  100. package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
  101. package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
  102. package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
  103. package/src/views/builder/inspector/definitions/label/main.js +10 -1
  104. package/src/views/builder/inspector/definitions/layout/main.js +27 -3
  105. package/src/views/builder/inspector/definitions/number/main.js +6 -14
  106. package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
  107. package/src/views/builder/inspector/definitions/popover/main.js +71 -0
  108. package/src/views/builder/inspector/definitions/radio/main.js +5 -8
  109. package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
  110. package/src/views/builder/inspector/definitions/reportViewer/main.js +15 -1
  111. package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
  112. package/src/views/builder/inspector/definitions/signature/main.js +4 -1
  113. package/src/views/builder/inspector/definitions/tag/main.js +5 -8
  114. package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
  115. package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
  116. package/src/views/builder/inspector/definitions/time/main.js +5 -8
  117. package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
  118. package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
  119. package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
  120. package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
  121. package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
  122. package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
  123. package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
  124. package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
  125. package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
  126. package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
  127. package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
  128. package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
  129. package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
  130. package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
  131. package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
  132. package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
  133. package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
  134. package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
  135. package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
  136. package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
  137. package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
  138. package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
  139. package/src/views/builder/sidebar/Sidebar.jsx +4 -2
  140. package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
  141. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
  142. package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
  143. package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +49 -0
  144. package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
  145. package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +102 -0
  146. package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
  147. package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
  148. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
  149. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
  150. package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
  151. package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
  152. package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
  153. package/src/views/builder/sidebar/tabs/ViewTab.jsx +1 -1
  154. package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
  155. package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
  156. package/src/views/builder/viewer/DialogsZone.jsx +259 -0
  157. package/src/views/builder/viewer/FieldLabel.jsx +106 -0
  158. package/src/views/builder/viewer/PrintDialog.jsx +481 -0
  159. package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
  160. package/src/views/builder/viewer/Viewer.jsx +106 -8
  161. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +61 -4
  162. package/src/views/builder/viewer/ViewerToolbar.jsx +273 -59
  163. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
  164. package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
  165. package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
  166. package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
  167. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
  168. package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
  169. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
  170. package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
  171. package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
  172. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
  173. package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
  174. package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
  175. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
  176. package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
  177. package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
  178. package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
  179. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
  180. package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
  181. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
  182. package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
  183. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
  184. package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
  185. package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
  186. package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
  187. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
  188. package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
  189. package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
  190. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
  191. package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
  192. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
  193. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
  194. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
  195. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
  196. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
  197. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
  198. package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
  199. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
  200. package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
  201. package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
  202. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
  203. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
  204. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
  205. package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
  206. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
  207. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +219 -5
  208. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
  209. package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
  210. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
  211. package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
  212. package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
  213. package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
  214. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
  215. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
  216. package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
  217. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
  218. package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
  219. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
  220. package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
  221. package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
  222. package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
  223. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
  224. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
  225. package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
  226. package/src/views/customFilter/CustomFilterDialog.js +1023 -660
  227. package/src/views/customFilter/FixedFilterDialog.js +649 -0
  228. package/src/views/customFilter/SearchFilterDialog.js +248 -0
  229. package/src/views/genericTable/BuilderExpressionParams.js +3 -3
  230. package/src/views/genericTable/ColumnConfiguratorDialog.js +771 -0
  231. package/src/views/genericTable/FixedFilterDialog.js +3 -2
  232. package/src/views/genericTable/FormattingSettingsDialog.js +551 -0
  233. package/src/views/genericTable/ReportSettingsDialog.js +151 -0
  234. package/src/views/genericTable/SGrid.js +1061 -247
  235. package/src/views/genericTable/SearchFilterDialog.js +3 -2
  236. package/src/views/genericTable/TAGGrid.js +83 -69
  237. package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
  238. package/src/views/genericTable/convertStringFunctions.js +336 -0
  239. package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
  240. package/src/views/genericTable/updateRefHelpers.js +424 -0
  241. package/src/views/printBuilder/PrintBuilderViewer.jsx +607 -0
  242. package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
  243. package/src/views/rolePermissions/UpdateReportPermissionDialog.js +316 -0
  244. package/src/@core/components/auth/AclGuard.js +0 -55
  245. package/src/@core/components/auth/AuthGuard.js +0 -40
  246. package/src/@core/components/auth/GuestGuard.js +0 -30
  247. package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
  248. package/src/@core/components/custom-inputs/Image.jsx +0 -78
  249. package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
  250. package/src/@core/components/customizer/index.jsx +0 -470
  251. package/src/@core/components/customizer/styles.module.css +0 -169
  252. package/src/@core/components/mui/Avatar.jsx +0 -41
  253. package/src/@core/components/mui/Badge.jsx +0 -20
  254. package/src/@core/components/mui/IconButton.jsx +0 -74
  255. package/src/@core/components/mui/TabList.jsx +0 -60
  256. package/src/@core/components/option-menu/index.jsx +0 -137
  257. package/src/@core/components/scroll-to-top/index.jsx +0 -43
  258. package/src/@core/components/spinner/index.js +0 -26
  259. package/src/@core/components/window-wrapper/index.js +0 -27
  260. package/src/@core/contexts/settingsContext.jsx +0 -98
  261. package/src/@core/hooks/useBgColor.js +0 -63
  262. package/src/@core/hooks/useImageVariant.js +0 -27
  263. package/src/@core/hooks/useLayoutInit.js +0 -37
  264. package/src/@core/hooks/useObjectCookie.js +0 -18
  265. package/src/@core/hooks/useSettings.jsx +0 -15
  266. package/src/@core/layouts/BlankLayout.js +0 -37
  267. package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
  268. package/src/@core/layouts/HorizontalLayout.jsx +0 -151
  269. package/src/@core/layouts/Layout.js +0 -39
  270. package/src/@core/layouts/VerticalLayout.jsx +0 -124
  271. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
  272. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
  273. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
  274. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
  275. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
  276. package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
  277. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
  278. package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
  279. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
  280. package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
  281. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
  282. package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
  283. package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
  284. package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
  285. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
  286. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
  287. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
  288. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
  289. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
  290. package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
  291. package/src/@core/layouts/utils.js +0 -69
  292. package/src/@core/styles/Table.module.css +0 -93
  293. package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
  294. package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
  295. package/src/@core/styles/libs/fullcalendar/index.js +0 -461
  296. package/src/@core/styles/libs/keen-slider/index.js +0 -111
  297. package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
  298. package/src/@core/styles/libs/react-cleave/index.js +0 -33
  299. package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
  300. package/src/@core/styles/libs/react-datepicker/index.js +0 -388
  301. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
  302. package/src/@core/styles/libs/react-dropzone/index.js +0 -76
  303. package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
  304. package/src/@core/styles/libs/recharts/index.js +0 -47
  305. package/src/@core/styles/stepper.js +0 -103
  306. package/src/@core/styles/vertical/menuItemStyles.js +0 -138
  307. package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
  308. package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
  309. package/src/@core/svg/ContentCompact.jsx +0 -17
  310. package/src/@core/svg/ContentWide.jsx +0 -17
  311. package/src/@core/svg/DirectionLtr.jsx +0 -93
  312. package/src/@core/svg/DirectionRtl.jsx +0 -93
  313. package/src/@core/svg/LayoutCollapsed.jsx +0 -59
  314. package/src/@core/svg/LayoutHorizontal.jsx +0 -42
  315. package/src/@core/svg/LayoutVertical.jsx +0 -59
  316. package/src/@core/svg/Logo.jsx +0 -76
  317. package/src/@core/svg/SkinBordered.jsx +0 -54
  318. package/src/@core/svg/SkinDefault.jsx +0 -59
  319. package/src/@core/tailwind/plugin.js +0 -78
  320. package/src/@core/theme/ThemeComponent.js +0 -63
  321. package/src/@core/theme/ThemeOptions.js +0 -71
  322. package/src/@core/theme/breakpoints/index.js +0 -11
  323. package/src/@core/theme/colorSchemes.js +0 -326
  324. package/src/@core/theme/customShadows.js +0 -11
  325. package/src/@core/theme/globalStyles.js +0 -81
  326. package/src/@core/theme/index.js +0 -42
  327. package/src/@core/theme/overrides/accordion.js +0 -51
  328. package/src/@core/theme/overrides/accordion.jsx +0 -85
  329. package/src/@core/theme/overrides/alerts.js +0 -110
  330. package/src/@core/theme/overrides/alerts.jsx +0 -180
  331. package/src/@core/theme/overrides/autocomplete.js +0 -14
  332. package/src/@core/theme/overrides/autocomplete.jsx +0 -68
  333. package/src/@core/theme/overrides/avatar.js +0 -38
  334. package/src/@core/theme/overrides/avatars.js +0 -27
  335. package/src/@core/theme/overrides/backdrop.js +0 -22
  336. package/src/@core/theme/overrides/badges.js +0 -16
  337. package/src/@core/theme/overrides/breadcrumbs.js +0 -11
  338. package/src/@core/theme/overrides/button-group.js +0 -84
  339. package/src/@core/theme/overrides/button.js +0 -93
  340. package/src/@core/theme/overrides/buttonGroup.js +0 -9
  341. package/src/@core/theme/overrides/card.js +0 -83
  342. package/src/@core/theme/overrides/checkbox.jsx +0 -95
  343. package/src/@core/theme/overrides/chip.js +0 -72
  344. package/src/@core/theme/overrides/dataGrid.js +0 -114
  345. package/src/@core/theme/overrides/dateTimePicker.js +0 -65
  346. package/src/@core/theme/overrides/dialog.js +0 -120
  347. package/src/@core/theme/overrides/divider.js +0 -13
  348. package/src/@core/theme/overrides/drawer.js +0 -20
  349. package/src/@core/theme/overrides/fab.js +0 -13
  350. package/src/@core/theme/overrides/form-control-label.js +0 -19
  351. package/src/@core/theme/overrides/icon-button.js +0 -145
  352. package/src/@core/theme/overrides/index.js +0 -103
  353. package/src/@core/theme/overrides/input.js +0 -72
  354. package/src/@core/theme/overrides/link.js +0 -9
  355. package/src/@core/theme/overrides/list.js +0 -44
  356. package/src/@core/theme/overrides/menu.js +0 -25
  357. package/src/@core/theme/overrides/pagination.js +0 -41
  358. package/src/@core/theme/overrides/paper.js +0 -9
  359. package/src/@core/theme/overrides/popover.js +0 -16
  360. package/src/@core/theme/overrides/progress.js +0 -38
  361. package/src/@core/theme/overrides/radio.jsx +0 -80
  362. package/src/@core/theme/overrides/rating.js +0 -16
  363. package/src/@core/theme/overrides/rating.jsx +0 -32
  364. package/src/@core/theme/overrides/select.js +0 -19
  365. package/src/@core/theme/overrides/select.jsx +0 -52
  366. package/src/@core/theme/overrides/slider.js +0 -97
  367. package/src/@core/theme/overrides/snackbar.js +0 -19
  368. package/src/@core/theme/overrides/switch.js +0 -73
  369. package/src/@core/theme/overrides/switches.js +0 -25
  370. package/src/@core/theme/overrides/table-pagination.js +0 -39
  371. package/src/@core/theme/overrides/table.js +0 -81
  372. package/src/@core/theme/overrides/tabs.js +0 -30
  373. package/src/@core/theme/overrides/timeline.js +0 -80
  374. package/src/@core/theme/overrides/toggle-button.js +0 -33
  375. package/src/@core/theme/overrides/toggleButton.js +0 -16
  376. package/src/@core/theme/overrides/tooltip.js +0 -21
  377. package/src/@core/theme/overrides/typography.js +0 -13
  378. package/src/@core/theme/palette/index.js +0 -107
  379. package/src/@core/theme/shadows/index.js +0 -61
  380. package/src/@core/theme/shadows.js +0 -12
  381. package/src/@core/theme/spacing/index.js +0 -3
  382. package/src/@core/theme/spacing.js +0 -5
  383. package/src/@core/theme/typography/index.js +0 -65
  384. package/src/@core/theme/typography.js +0 -84
  385. package/src/@core/utils/create-emotion-cache.js +0 -5
  386. package/src/@core/utils/hex-to-rgba.js +0 -11
  387. package/src/@core/utils/serverHelpers.js +0 -45
  388. package/src/@menu/components/RouterLink.jsx +0 -18
  389. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
  390. package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
  391. package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
  392. package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
  393. package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
  394. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
  395. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
  396. package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
  397. package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
  398. package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
  399. package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
  400. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
  401. package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
  402. package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
  403. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
  404. package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
  405. package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
  406. package/src/@menu/contexts/verticalNavContext.jsx +0 -65
  407. package/src/@menu/defaultConfigs.js +0 -12
  408. package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
  409. package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
  410. package/src/@menu/hooks/useMediaQuery.jsx +0 -29
  411. package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
  412. package/src/@menu/hooks/useVerticalNav.jsx +0 -19
  413. package/src/@menu/horizontal-menu/index.jsx +0 -8
  414. package/src/@menu/styles/StyledBackdrop.jsx +0 -15
  415. package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
  416. package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
  417. package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
  418. package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
  419. package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
  420. package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
  421. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
  422. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
  423. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
  424. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
  425. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
  426. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
  427. package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
  428. package/src/@menu/styles/styles.module.css +0 -5
  429. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
  430. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
  431. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
  432. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
  433. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
  434. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
  435. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
  436. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
  437. package/src/@menu/svg/ChevronRight.jsx +0 -9
  438. package/src/@menu/svg/Close.jsx +0 -12
  439. package/src/@menu/svg/RadioCircle.jsx +0 -12
  440. package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
  441. package/src/@menu/utils/menuClasses.js +0 -44
  442. package/src/@menu/utils/menuUtils.jsx +0 -145
  443. package/src/@menu/vertical-menu/index.jsx +0 -11
  444. package/src/configs/acl.js +0 -115
  445. package/src/configs/auth.js +0 -5
  446. package/src/configs/aws-exports.js +0 -30
  447. package/src/configs/firebase.js +0 -25
  448. package/src/configs/i18n.js +0 -34
  449. package/src/configs/primaryColorConfig.js +0 -35
  450. package/src/configs/themeConfig.js +0 -44
  451. package/src/layouts/UserLayout.js +0 -94
  452. package/src/layouts/UserThemeOptions.js +0 -191
  453. package/src/layouts/components/Direction.js +0 -30
  454. package/src/layouts/components/HtmlTooltip.js +0 -15
  455. package/src/layouts/components/Translations.js +0 -11
  456. package/src/layouts/components/UserDropdown.js +0 -217
  457. package/src/layouts/components/UserIcon.js +0 -40
  458. package/src/layouts/components/acl/Can.js +0 -6
  459. package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
  460. package/src/layouts/components/acl/CanViewNavLink.js +0 -17
  461. package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
  462. package/src/layouts/components/horizontal/AppBarContent.js +0 -39
  463. package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
  464. package/src/layouts/components/mui/StepperComps.js +0 -55
  465. package/src/layouts/components/vertical/AppBarContent.js +0 -35
  466. package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
  467. package/src/libs/ApexCharts.jsx +0 -5
  468. package/src/libs/ReactPlayer.jsx +0 -5
  469. package/src/libs/Recharts.jsx +0 -4
  470. package/src/libs/auth.js +0 -124
  471. package/src/libs/styles/AppFullCalendar.js +0 -505
  472. package/src/libs/styles/AppKeenSlider.js +0 -116
  473. package/src/libs/styles/AppReactApexCharts.jsx +0 -110
  474. package/src/libs/styles/AppReactDatepicker.jsx +0 -470
  475. package/src/libs/styles/AppReactDropzone.js +0 -76
  476. package/src/libs/styles/AppReactToastify.jsx +0 -108
  477. package/src/libs/styles/AppRecharts.js +0 -55
  478. package/src/libs/styles/inputOtp.module.css +0 -39
  479. package/src/libs/styles/tiptapEditor.css +0 -72
  480. package/src/navigation/horizontal/index.js +0 -246
  481. package/src/navigation/vertical/index.js +0 -253
  482. package/src/pages/401.js +0 -70
  483. package/src/pages/404.js +0 -67
  484. package/src/pages/500.js +0 -68
  485. package/src/pages/[slug].js +0 -115
  486. package/src/pages/_document.js +0 -72
  487. package/src/pages/api/navigation/regenerate-registry.js +0 -116
  488. package/src/pages/api/navigation/save.js +0 -218
  489. package/src/pages/authModule/acl/index.js +0 -48
  490. package/src/pages/authModule/forgot-password/index.js +0 -228
  491. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
  492. package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
  493. package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
  494. package/src/pages/authModule/privacy/index.js +0 -721
  495. package/src/pages/authModule/users/index.js +0 -210
  496. package/src/pages/login/index.js +0 -328
  497. package/src/pages/mainHome/index.js +0 -181
  498. package/src/views/builder/inspector/definitions/cell/main.js +0 -4
  499. package/src/views/builder/inspector/definitions/column/main.js +0 -9
  500. package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
  501. package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
  502. package/src/views/builder/inspector/definitions/table/main.js +0 -9
  503. package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
  504. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
  505. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
  506. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
  507. package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
  508. package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
  509. package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
  510. package/src/views/pages/misc/FooterIllustrations.js +0 -47
  511. package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
  512. package/src/views/pages/users/UserManageDialog.js +0 -283
  513. package/src/views/pages/users/UserViewPage.js +0 -199
  514. package/src/views/users/AddUserNameDialog.js +0 -162
  515. package/src/views/users/ContactManage.js +0 -449
  516. 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,12 +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
50
  import { AllEnterpriseModule, LicenseManager } from 'ag-grid-enterprise'
49
51
  import { NavigationExtensionProvider } from '../navigation/NavigationExtensionContext'
50
52
  import { configureRoboByte } from '../../services/config'
51
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
+ }
52
68
 
53
69
  /**
54
70
  * @param {string} [baseURL] Root API server URL (with trailing slash)
@@ -62,6 +78,12 @@ import { AuthContext } from '../../context/AuthContext'
62
78
  * Pass your key here — the provider calls
63
79
  * LicenseManager.setLicenseKey() and registers
64
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' }
65
87
  * @param {ReactNode} children
66
88
  */
67
89
  const RoboByteFrontBuilderProvider = ({
@@ -73,6 +95,7 @@ const RoboByteFrontBuilderProvider = ({
73
95
  navExtensions = [],
74
96
  endpoints = null,
75
97
  agGridLicenseKey = null,
98
+ toasterProps = {},
76
99
  }) => {
77
100
  // Apply URL + endpoint config synchronously before any child renders.
78
101
  useMemo(() => {
@@ -98,7 +121,42 @@ const RoboByteFrontBuilderProvider = ({
98
121
  return (
99
122
  <AuthContext.Provider value={authValue}>
100
123
  <NavigationExtensionProvider items={navExtensions}>
124
+ <RouterSync />
101
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
+ />
102
160
  </NavigationExtensionProvider>
103
161
  </AuthContext.Provider>
104
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'