robobyte-front-builder 1.0.19 → 1.0.23

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 (520) hide show
  1. package/INTEGRATION.md +1586 -0
  2. package/README.md +928 -0
  3. package/RoboByteBuilder_User_Manual.docx +0 -0
  4. package/next.config.js +19 -48
  5. package/package.json +42 -86
  6. package/src/context/BuilderContext.jsx +191 -7
  7. package/src/context/SystemContext.js +2 -2
  8. package/src/hooks/useGlobalStore.js +36 -0
  9. package/src/hooks/useTimerEngine.js +54 -0
  10. package/src/lib/index.js +11 -3
  11. package/src/lib/layouts/BlankLayout.jsx +13 -0
  12. package/src/lib/providers/RoboByteFrontBuilderProvider.jsx +61 -7
  13. package/src/lib/themes/builderTheme.js +41 -0
  14. package/src/pages/_app.js +32 -134
  15. package/src/pages/api/ai.js +107 -0
  16. package/src/pages/builders/report/index.js +1 -0
  17. package/src/pages/builders/report/list/index.js +1 -0
  18. package/src/pages/builders/report/viewer/index.js +1 -0
  19. package/src/pages/index.js +88 -37
  20. package/src/pages/printBuilder/index.jsx +263 -0
  21. package/src/pages/printBuilder/layouts/index.jsx +298 -0
  22. package/src/pages/reportModule/reportBuilder/index.js +8 -6
  23. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +92 -25
  24. package/src/pages/reportModule/reportBuilder/reports/index.js +3 -5
  25. package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +2 -3
  26. package/src/pages/viewBuilder/index.jsx +117 -32
  27. package/src/pages/viewBuilder/views/index.js +3 -3
  28. package/src/pages/viewer/[id]/index.js +2 -1
  29. package/src/services/DeleteService.js +31 -60
  30. package/src/services/Endpoints/PrintLayoutEndpoints.js +42 -0
  31. package/src/services/Endpoints/ReportBuilderEndpoints.js +7 -7
  32. package/src/services/Endpoints.js +2 -0
  33. package/src/services/GetService.js +33 -54
  34. package/src/services/PatchService.js +38 -65
  35. package/src/services/PostService.js +37 -63
  36. package/src/services/UpdateService.js +39 -65
  37. package/src/services/builderHelper/actionExecutor.js +141 -25
  38. package/src/services/builderHelper/builderHelper.js +92 -0
  39. package/src/services/builderHelper/colorSchema.js +95 -0
  40. package/src/services/builderHelper/iconResolver.js +50 -0
  41. package/src/services/builderHelper/jsExecutor.js +212 -46
  42. package/src/services/builderHelper/nodeFactory.js +32 -15
  43. package/src/services/builderHelper/numberFormat.js +123 -0
  44. package/src/services/builderHelper/resolveProps.js +73 -4
  45. package/src/services/builderHelper/thresholdEngine.js +77 -0
  46. package/src/services/builderHelper/tree.js +31 -0
  47. package/src/services/components/agGridAutoComplete.js +5 -9
  48. package/src/services/config.js +9 -1
  49. package/src/services/globalStore.js +80 -0
  50. package/src/services/helper/multiSelectEditor.js +5 -9
  51. package/src/services/helper/multiSelectEditorByBuilder.js +5 -9
  52. package/src/services/reportData/fetchReportData.js +69 -28
  53. package/src/services/routerRef.js +35 -0
  54. package/src/services/sessionLog.js +171 -0
  55. package/src/views/ConfirmDialog.js +2 -2
  56. package/src/views/builder/JSEditor.js +105 -107
  57. package/src/views/builder/SessionLogDialog.jsx +350 -0
  58. package/src/views/builder/UnsavedChangesGuard.jsx +103 -0
  59. package/src/views/builder/inspector/Inspector.jsx +6 -9
  60. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
  61. package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
  62. package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
  63. package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
  64. package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
  65. package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
  66. package/src/views/builder/inspector/definitions/banner/main.js +22 -0
  67. package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
  68. package/src/views/builder/inspector/definitions/banner/style.js +1 -0
  69. package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
  70. package/src/views/builder/inspector/definitions/button/main.js +11 -12
  71. package/src/views/builder/inspector/definitions/button/style.js +18 -30
  72. package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
  73. package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
  74. package/src/views/builder/inspector/definitions/common/main.js +13 -2
  75. package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
  76. package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
  77. package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
  78. package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
  79. package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
  80. package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
  81. package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
  82. package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
  83. package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
  84. package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
  85. package/src/views/builder/inspector/definitions/header/main.js +10 -1
  86. package/src/views/builder/inspector/definitions/index.js +106 -19
  87. package/src/views/builder/inspector/definitions/input/actions.js +4 -1
  88. package/src/views/builder/inspector/definitions/input/main.js +20 -11
  89. package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
  90. package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
  91. package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
  92. package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
  93. package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
  94. package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
  95. package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
  96. package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
  97. package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
  98. package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
  99. package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
  100. package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
  101. package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
  102. package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
  103. package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
  104. package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
  105. package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
  106. package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
  107. package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
  108. package/src/views/builder/inspector/definitions/label/main.js +10 -1
  109. package/src/views/builder/inspector/definitions/layout/main.js +27 -3
  110. package/src/views/builder/inspector/definitions/number/main.js +6 -14
  111. package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
  112. package/src/views/builder/inspector/definitions/popover/main.js +71 -0
  113. package/src/views/builder/inspector/definitions/radio/main.js +5 -8
  114. package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
  115. package/src/views/builder/inspector/definitions/reportViewer/main.js +28 -1
  116. package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
  117. package/src/views/builder/inspector/definitions/signature/main.js +4 -1
  118. package/src/views/builder/inspector/definitions/tag/main.js +5 -8
  119. package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
  120. package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
  121. package/src/views/builder/inspector/definitions/time/main.js +5 -8
  122. package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
  123. package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
  124. package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
  125. package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
  126. package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
  127. package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
  128. package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
  129. package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
  130. package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
  131. package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
  132. package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
  133. package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
  134. package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
  135. package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
  136. package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
  137. package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
  138. package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
  139. package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
  140. package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
  141. package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
  142. package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
  143. package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
  144. package/src/views/builder/sidebar/Sidebar.jsx +4 -2
  145. package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
  146. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
  147. package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
  148. package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +53 -0
  149. package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
  150. package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +167 -0
  151. package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
  152. package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
  153. package/src/views/builder/sidebar/tabs/AiTab/trainingExport.js +131 -0
  154. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
  155. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
  156. package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
  157. package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
  158. package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
  159. package/src/views/builder/sidebar/tabs/ViewTab.jsx +173 -13
  160. package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
  161. package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
  162. package/src/views/builder/viewer/DialogsZone.jsx +259 -0
  163. package/src/views/builder/viewer/FieldLabel.jsx +106 -0
  164. package/src/views/builder/viewer/PrintDialog.jsx +481 -0
  165. package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
  166. package/src/views/builder/viewer/Viewer.jsx +106 -8
  167. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +70 -9
  168. package/src/views/builder/viewer/ViewerToolbar.jsx +285 -56
  169. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
  170. package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
  171. package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
  172. package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
  173. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
  174. package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
  175. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
  176. package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
  177. package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
  178. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
  179. package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
  180. package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
  181. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
  182. package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
  183. package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
  184. package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
  185. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
  186. package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
  187. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
  188. package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
  189. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
  190. package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
  191. package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
  192. package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
  193. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
  194. package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
  195. package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
  196. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
  197. package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
  198. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
  199. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
  200. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
  201. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
  202. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
  203. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
  204. package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
  205. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
  206. package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
  207. package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
  208. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
  209. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
  210. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
  211. package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
  212. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
  213. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +263 -5
  214. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
  215. package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
  216. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
  217. package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
  218. package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
  219. package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
  220. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
  221. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
  222. package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
  223. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
  224. package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
  225. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
  226. package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
  227. package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
  228. package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
  229. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
  230. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
  231. package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
  232. package/src/views/customFilter/CustomFilterDialog.js +1023 -660
  233. package/src/views/customFilter/FixedFilterDialog.js +649 -0
  234. package/src/views/customFilter/SearchFilterDialog.js +248 -0
  235. package/src/views/genericTable/BuilderExpressionParams.js +3 -3
  236. package/src/views/genericTable/ColumnConfiguratorDialog.js +33 -24
  237. package/src/views/genericTable/FixedFilterDialog.js +3 -2
  238. package/src/views/genericTable/FormattingSettingsDialog.js +8 -3
  239. package/src/views/genericTable/SGrid.js +821 -448
  240. package/src/views/genericTable/SearchFilterDialog.js +3 -2
  241. package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
  242. package/src/views/genericTable/convertStringFunctions.js +274 -138
  243. package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
  244. package/src/views/genericTable/updateRefHelpers.js +9 -6
  245. package/src/views/printBuilder/PrintBuilderViewer.jsx +627 -0
  246. package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
  247. package/src/views/rolePermissions/UpdateReportPermissionDialog.js +3 -2
  248. package/src/@core/components/auth/AclGuard.js +0 -55
  249. package/src/@core/components/auth/AuthGuard.js +0 -40
  250. package/src/@core/components/auth/GuestGuard.js +0 -30
  251. package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
  252. package/src/@core/components/custom-inputs/Image.jsx +0 -78
  253. package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
  254. package/src/@core/components/customizer/index.jsx +0 -470
  255. package/src/@core/components/customizer/styles.module.css +0 -169
  256. package/src/@core/components/mui/Avatar.jsx +0 -41
  257. package/src/@core/components/mui/Badge.jsx +0 -20
  258. package/src/@core/components/mui/IconButton.jsx +0 -74
  259. package/src/@core/components/mui/TabList.jsx +0 -60
  260. package/src/@core/components/option-menu/index.jsx +0 -137
  261. package/src/@core/components/scroll-to-top/index.jsx +0 -43
  262. package/src/@core/components/spinner/index.js +0 -26
  263. package/src/@core/components/window-wrapper/index.js +0 -27
  264. package/src/@core/contexts/settingsContext.jsx +0 -98
  265. package/src/@core/hooks/useBgColor.js +0 -63
  266. package/src/@core/hooks/useImageVariant.js +0 -27
  267. package/src/@core/hooks/useLayoutInit.js +0 -37
  268. package/src/@core/hooks/useObjectCookie.js +0 -18
  269. package/src/@core/hooks/useSettings.jsx +0 -15
  270. package/src/@core/layouts/BlankLayout.js +0 -37
  271. package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
  272. package/src/@core/layouts/HorizontalLayout.jsx +0 -151
  273. package/src/@core/layouts/Layout.js +0 -39
  274. package/src/@core/layouts/VerticalLayout.jsx +0 -124
  275. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
  276. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
  277. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
  278. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
  279. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
  280. package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
  281. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
  282. package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
  283. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
  284. package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
  285. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
  286. package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
  287. package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
  288. package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
  289. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
  290. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
  291. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
  292. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
  293. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
  294. package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
  295. package/src/@core/layouts/utils.js +0 -69
  296. package/src/@core/styles/Table.module.css +0 -93
  297. package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
  298. package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
  299. package/src/@core/styles/libs/fullcalendar/index.js +0 -461
  300. package/src/@core/styles/libs/keen-slider/index.js +0 -111
  301. package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
  302. package/src/@core/styles/libs/react-cleave/index.js +0 -33
  303. package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
  304. package/src/@core/styles/libs/react-datepicker/index.js +0 -388
  305. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
  306. package/src/@core/styles/libs/react-dropzone/index.js +0 -76
  307. package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
  308. package/src/@core/styles/libs/recharts/index.js +0 -47
  309. package/src/@core/styles/stepper.js +0 -103
  310. package/src/@core/styles/vertical/menuItemStyles.js +0 -138
  311. package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
  312. package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
  313. package/src/@core/svg/ContentCompact.jsx +0 -17
  314. package/src/@core/svg/ContentWide.jsx +0 -17
  315. package/src/@core/svg/DirectionLtr.jsx +0 -93
  316. package/src/@core/svg/DirectionRtl.jsx +0 -93
  317. package/src/@core/svg/LayoutCollapsed.jsx +0 -59
  318. package/src/@core/svg/LayoutHorizontal.jsx +0 -42
  319. package/src/@core/svg/LayoutVertical.jsx +0 -59
  320. package/src/@core/svg/Logo.jsx +0 -76
  321. package/src/@core/svg/SkinBordered.jsx +0 -54
  322. package/src/@core/svg/SkinDefault.jsx +0 -59
  323. package/src/@core/tailwind/plugin.js +0 -78
  324. package/src/@core/theme/ThemeComponent.js +0 -63
  325. package/src/@core/theme/ThemeOptions.js +0 -71
  326. package/src/@core/theme/breakpoints/index.js +0 -11
  327. package/src/@core/theme/colorSchemes.js +0 -326
  328. package/src/@core/theme/customShadows.js +0 -11
  329. package/src/@core/theme/globalStyles.js +0 -81
  330. package/src/@core/theme/index.js +0 -42
  331. package/src/@core/theme/overrides/accordion.js +0 -51
  332. package/src/@core/theme/overrides/accordion.jsx +0 -85
  333. package/src/@core/theme/overrides/alerts.js +0 -110
  334. package/src/@core/theme/overrides/alerts.jsx +0 -180
  335. package/src/@core/theme/overrides/autocomplete.js +0 -14
  336. package/src/@core/theme/overrides/autocomplete.jsx +0 -68
  337. package/src/@core/theme/overrides/avatar.js +0 -38
  338. package/src/@core/theme/overrides/avatars.js +0 -27
  339. package/src/@core/theme/overrides/backdrop.js +0 -22
  340. package/src/@core/theme/overrides/badges.js +0 -16
  341. package/src/@core/theme/overrides/breadcrumbs.js +0 -11
  342. package/src/@core/theme/overrides/button-group.js +0 -84
  343. package/src/@core/theme/overrides/button.js +0 -93
  344. package/src/@core/theme/overrides/buttonGroup.js +0 -9
  345. package/src/@core/theme/overrides/card.js +0 -83
  346. package/src/@core/theme/overrides/checkbox.jsx +0 -95
  347. package/src/@core/theme/overrides/chip.js +0 -72
  348. package/src/@core/theme/overrides/dataGrid.js +0 -114
  349. package/src/@core/theme/overrides/dateTimePicker.js +0 -65
  350. package/src/@core/theme/overrides/dialog.js +0 -120
  351. package/src/@core/theme/overrides/divider.js +0 -13
  352. package/src/@core/theme/overrides/drawer.js +0 -20
  353. package/src/@core/theme/overrides/fab.js +0 -13
  354. package/src/@core/theme/overrides/form-control-label.js +0 -19
  355. package/src/@core/theme/overrides/icon-button.js +0 -145
  356. package/src/@core/theme/overrides/index.js +0 -103
  357. package/src/@core/theme/overrides/input.js +0 -72
  358. package/src/@core/theme/overrides/link.js +0 -9
  359. package/src/@core/theme/overrides/list.js +0 -44
  360. package/src/@core/theme/overrides/menu.js +0 -25
  361. package/src/@core/theme/overrides/pagination.js +0 -41
  362. package/src/@core/theme/overrides/paper.js +0 -9
  363. package/src/@core/theme/overrides/popover.js +0 -16
  364. package/src/@core/theme/overrides/progress.js +0 -38
  365. package/src/@core/theme/overrides/radio.jsx +0 -80
  366. package/src/@core/theme/overrides/rating.js +0 -16
  367. package/src/@core/theme/overrides/rating.jsx +0 -32
  368. package/src/@core/theme/overrides/select.js +0 -19
  369. package/src/@core/theme/overrides/select.jsx +0 -52
  370. package/src/@core/theme/overrides/slider.js +0 -97
  371. package/src/@core/theme/overrides/snackbar.js +0 -19
  372. package/src/@core/theme/overrides/switch.js +0 -73
  373. package/src/@core/theme/overrides/switches.js +0 -25
  374. package/src/@core/theme/overrides/table-pagination.js +0 -39
  375. package/src/@core/theme/overrides/table.js +0 -81
  376. package/src/@core/theme/overrides/tabs.js +0 -30
  377. package/src/@core/theme/overrides/timeline.js +0 -80
  378. package/src/@core/theme/overrides/toggle-button.js +0 -33
  379. package/src/@core/theme/overrides/toggleButton.js +0 -16
  380. package/src/@core/theme/overrides/tooltip.js +0 -21
  381. package/src/@core/theme/overrides/typography.js +0 -13
  382. package/src/@core/theme/palette/index.js +0 -107
  383. package/src/@core/theme/shadows/index.js +0 -61
  384. package/src/@core/theme/shadows.js +0 -12
  385. package/src/@core/theme/spacing/index.js +0 -3
  386. package/src/@core/theme/spacing.js +0 -5
  387. package/src/@core/theme/typography/index.js +0 -65
  388. package/src/@core/theme/typography.js +0 -84
  389. package/src/@core/utils/create-emotion-cache.js +0 -5
  390. package/src/@core/utils/hex-to-rgba.js +0 -11
  391. package/src/@core/utils/serverHelpers.js +0 -45
  392. package/src/@menu/components/RouterLink.jsx +0 -18
  393. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
  394. package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
  395. package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
  396. package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
  397. package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
  398. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
  399. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
  400. package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
  401. package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
  402. package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
  403. package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
  404. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
  405. package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
  406. package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
  407. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
  408. package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
  409. package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
  410. package/src/@menu/contexts/verticalNavContext.jsx +0 -65
  411. package/src/@menu/defaultConfigs.js +0 -12
  412. package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
  413. package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
  414. package/src/@menu/hooks/useMediaQuery.jsx +0 -29
  415. package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
  416. package/src/@menu/hooks/useVerticalNav.jsx +0 -19
  417. package/src/@menu/horizontal-menu/index.jsx +0 -8
  418. package/src/@menu/styles/StyledBackdrop.jsx +0 -15
  419. package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
  420. package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
  421. package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
  422. package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
  423. package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
  424. package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
  425. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
  426. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
  427. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
  428. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
  429. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
  430. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
  431. package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
  432. package/src/@menu/styles/styles.module.css +0 -5
  433. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
  434. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
  435. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
  436. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
  437. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
  438. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
  439. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
  440. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
  441. package/src/@menu/svg/ChevronRight.jsx +0 -9
  442. package/src/@menu/svg/Close.jsx +0 -12
  443. package/src/@menu/svg/RadioCircle.jsx +0 -12
  444. package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
  445. package/src/@menu/utils/menuClasses.js +0 -44
  446. package/src/@menu/utils/menuUtils.jsx +0 -145
  447. package/src/@menu/vertical-menu/index.jsx +0 -11
  448. package/src/configs/acl.js +0 -115
  449. package/src/configs/auth.js +0 -5
  450. package/src/configs/aws-exports.js +0 -30
  451. package/src/configs/firebase.js +0 -25
  452. package/src/configs/i18n.js +0 -34
  453. package/src/configs/primaryColorConfig.js +0 -35
  454. package/src/configs/themeConfig.js +0 -44
  455. package/src/layouts/UserLayout.js +0 -94
  456. package/src/layouts/UserThemeOptions.js +0 -191
  457. package/src/layouts/components/Direction.js +0 -30
  458. package/src/layouts/components/HtmlTooltip.js +0 -15
  459. package/src/layouts/components/Translations.js +0 -11
  460. package/src/layouts/components/UserDropdown.js +0 -217
  461. package/src/layouts/components/UserIcon.js +0 -40
  462. package/src/layouts/components/acl/Can.js +0 -6
  463. package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
  464. package/src/layouts/components/acl/CanViewNavLink.js +0 -17
  465. package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
  466. package/src/layouts/components/horizontal/AppBarContent.js +0 -39
  467. package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
  468. package/src/layouts/components/mui/StepperComps.js +0 -55
  469. package/src/layouts/components/vertical/AppBarContent.js +0 -35
  470. package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
  471. package/src/libs/ApexCharts.jsx +0 -5
  472. package/src/libs/ReactPlayer.jsx +0 -5
  473. package/src/libs/Recharts.jsx +0 -4
  474. package/src/libs/auth.js +0 -124
  475. package/src/libs/styles/AppFullCalendar.js +0 -505
  476. package/src/libs/styles/AppKeenSlider.js +0 -116
  477. package/src/libs/styles/AppReactApexCharts.jsx +0 -110
  478. package/src/libs/styles/AppReactDatepicker.jsx +0 -470
  479. package/src/libs/styles/AppReactDropzone.js +0 -76
  480. package/src/libs/styles/AppReactToastify.jsx +0 -108
  481. package/src/libs/styles/AppRecharts.js +0 -55
  482. package/src/libs/styles/inputOtp.module.css +0 -39
  483. package/src/libs/styles/tiptapEditor.css +0 -72
  484. package/src/navigation/horizontal/index.js +0 -246
  485. package/src/navigation/vertical/index.js +0 -253
  486. package/src/pages/401.js +0 -70
  487. package/src/pages/404.js +0 -67
  488. package/src/pages/500.js +0 -68
  489. package/src/pages/[slug].js +0 -115
  490. package/src/pages/_document.js +0 -72
  491. package/src/pages/api/navigation/regenerate-registry.js +0 -116
  492. package/src/pages/api/navigation/save.js +0 -218
  493. package/src/pages/authModule/acl/index.js +0 -48
  494. package/src/pages/authModule/forgot-password/index.js +0 -228
  495. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
  496. package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
  497. package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
  498. package/src/pages/authModule/privacy/index.js +0 -721
  499. package/src/pages/authModule/users/index.js +0 -210
  500. package/src/pages/login/index.js +0 -328
  501. package/src/pages/mainHome/index.js +0 -181
  502. package/src/views/builder/inspector/definitions/cell/main.js +0 -4
  503. package/src/views/builder/inspector/definitions/column/main.js +0 -9
  504. package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
  505. package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
  506. package/src/views/builder/inspector/definitions/table/main.js +0 -9
  507. package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
  508. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
  509. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
  510. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
  511. package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
  512. package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
  513. package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
  514. package/src/views/pages/misc/FooterIllustrations.js +0 -47
  515. package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
  516. package/src/views/pages/users/UserManageDialog.js +0 -283
  517. package/src/views/pages/users/UserViewPage.js +0 -199
  518. package/src/views/users/AddUserNameDialog.js +0 -162
  519. package/src/views/users/ContactManage.js +0 -449
  520. package/src/views/users/ResetPasswordDialog.js +0 -242
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,107 @@
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
+ // Together AI — OpenAI-compatible API. Set TOGETHER_API_KEY and
47
+ // (optionally) NEXT_PUBLIC_TOGETHER_MODEL — point this at the base
48
+ // model for testing, or at your fine-tuned model id once a fine-tune
49
+ // job has finished (e.g. "username/llama-3.3-70b-rbb-ft-2026-05-10").
50
+ together: {
51
+ url: 'https://api.together.xyz/v1/chat/completions',
52
+ apiKey: () => process.env.TOGETHER_API_KEY ?? '',
53
+ model: () => process.env.NEXT_PUBLIC_TOGETHER_MODEL ?? 'meta-llama/Llama-3.3-70B-Instruct-Turbo',
54
+ headers: (key) => ({
55
+ 'Content-Type': 'application/json',
56
+ Authorization: `Bearer ${key}`,
57
+ }),
58
+ body: (model, messages, system) => ({
59
+ model,
60
+ max_tokens: 8096,
61
+ messages: [{ role: 'system', content: system }, ...messages],
62
+ }),
63
+ extract: (data) => data?.choices?.[0]?.message?.content ?? '',
64
+ },
65
+ }
66
+
67
+ export default async function handler(req, res) {
68
+ if (req.method !== 'POST') {
69
+ return res.status(405).json({ error: 'Method not allowed' })
70
+ }
71
+
72
+ const { messages, systemPrompt, provider: providerOverride } = req.body
73
+
74
+ if (!messages || !systemPrompt) {
75
+ return res.status(400).json({ error: 'Missing messages or systemPrompt' })
76
+ }
77
+
78
+ const providerId = providerOverride ?? process.env.NEXT_PUBLIC_AI_PROVIDER ?? 'claude'
79
+ const provider = PROVIDERS[providerId] ?? PROVIDERS.claude
80
+ const apiKey = provider.apiKey()
81
+ const model = provider.model()
82
+
83
+ if (!apiKey) {
84
+ return res.status(500).json({
85
+ error: `No API key configured for provider "${providerId}". Set ${providerId.toUpperCase()}_API_KEY in .env.local.`,
86
+ })
87
+ }
88
+
89
+ try {
90
+ const upstream = await fetch(provider.url, {
91
+ method: 'POST',
92
+ headers: provider.headers(apiKey),
93
+ body: JSON.stringify(provider.body(model, messages, systemPrompt)),
94
+ })
95
+
96
+ if (!upstream.ok) {
97
+ const body = await upstream.text().catch(() => '')
98
+ return res.status(upstream.status).json({ error: `Provider error (${upstream.status}): ${body}` })
99
+ }
100
+
101
+ const data = await upstream.json()
102
+ const content = provider.extract(data)
103
+ return res.status(200).json({ content })
104
+ } catch (err) {
105
+ return res.status(500).json({ error: err.message })
106
+ }
107
+ }
@@ -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'
@@ -1,44 +1,95 @@
1
- // ** React Imports
2
- import { useEffect } from 'react'
1
+ /**
2
+ * Dev landing page — quick links to every builder page.
3
+ * Not shipped in the npm package (only appears when running `next dev` directly).
4
+ */
3
5
 
4
- // ** Next Imports
5
6
  import { useRouter } from 'next/router'
7
+ import { Box, Button, Typography, Stack, Divider, Chip } from '@mui/material'
6
8
 
7
- // ** Spinner Import
8
- import Spinner from 'src/@core/components/spinner'
9
+ const PAGES = [
10
+ { label: 'UI Builder', path: '/viewBuilder', color: '#4a90e2' },
11
+ { label: 'UI Views List', path: '/viewBuilder/views', color: '#4a90e2' },
12
+ { label: 'Report Builder', path: '/reportModule/reportBuilder', color: '#7b68ee' },
13
+ { label: 'Report Viewer', path: '/reportModule/reportBuilder/reportViewer', color: '#7b68ee' },
14
+ { label: 'Reports List', path: '/reportModule/reportBuilder/reports', color: '#7b68ee' },
15
+ { label: 'Reports Permissions', path: '/reportModule/reportBuilder/reportsPermissions', color: '#7b68ee' },
16
+ { label: 'Navigator Builder', path: '/navigatorBuilder', color: '#50c878' },
17
+ { label: 'Print Layout Builder', path: '/printBuilder', color: '#f5a623' },
18
+ ]
9
19
 
10
- // ** Hook Imports
11
- import { useAuth } from 'src/hooks/useAuth'
12
- import jwt_decode from 'jwt-decode';
20
+ export default function DevIndex() {
21
+ const router = useRouter()
13
22
 
14
- export const getHomeRoute = role => {
15
- return '/mainHome'
16
- }
23
+ return (
24
+ <Box
25
+ sx={{
26
+ minHeight: '100vh',
27
+ bgcolor: '#0f1117',
28
+ color: '#e0e0e0',
29
+ display: 'flex',
30
+ alignItems: 'center',
31
+ justifyContent: 'center',
32
+ p: 4,
33
+ }}
34
+ >
35
+ <Box sx={{ maxWidth: 480, width: '100%' }}>
36
+ <Stack direction='row' alignItems='center' spacing={1} mb={1}>
37
+ <Typography variant='h5' fontWeight={700} color='#fff'>
38
+ RoboByte Front Builder
39
+ </Typography>
40
+ <Chip label='DEV' size='small' sx={{ bgcolor: '#2e7d32', color: '#fff', fontWeight: 700, fontSize: 10 }} />
41
+ </Stack>
17
42
 
18
- export const getLoginRoute = () => {
19
- return '/login'
20
- }
21
- const Home = () => {
22
- // ** Hooks
23
- const auth = useAuth()
24
- const router = useRouter()
25
- useEffect(() => {
26
- if (!router.isReady) {
27
- return
28
- }
29
-
30
- if (auth.user) {
31
- const homeRoute = getHomeRoute()
32
- router.replace(homeRoute)
33
- }
34
- else {
35
- const loginRoute = getLoginRoute()
36
- router.replace(loginRoute)
37
- }
38
- // eslint-disable-next-line react-hooks/exhaustive-deps
39
- }, [])
40
-
41
- return <Spinner />
42
- }
43
+ <Typography variant='body2' color='#888' mb={3}>
44
+ Running standalone — pick a builder page to open.
45
+ </Typography>
43
46
 
44
- export default Home
47
+ <Divider sx={{ borderColor: '#2a2a2a', mb: 3 }} />
48
+
49
+ <Stack spacing={1.5}>
50
+ {PAGES.map(({ label, path, color }) => (
51
+ <Button
52
+ key={path}
53
+ fullWidth
54
+ variant='outlined'
55
+ onClick={() => router.push(path)}
56
+ sx={{
57
+ justifyContent: 'flex-start',
58
+ borderColor: '#2a2a2a',
59
+ color: '#e0e0e0',
60
+ textTransform: 'none',
61
+ py: 1.2,
62
+ px: 2,
63
+ borderRadius: 2,
64
+ '&:hover': { borderColor: color, color: color, bgcolor: 'transparent' },
65
+ }}
66
+ >
67
+ <Box
68
+ component='span'
69
+ sx={{
70
+ display: 'inline-block',
71
+ width: 8,
72
+ height: 8,
73
+ borderRadius: '50%',
74
+ bgcolor: color,
75
+ mr: 1.5,
76
+ flexShrink: 0,
77
+ }}
78
+ />
79
+ {label}
80
+ <Typography variant='caption' color='#555' ml='auto'>
81
+ {path}
82
+ </Typography>
83
+ </Button>
84
+ ))}
85
+ </Stack>
86
+
87
+ <Divider sx={{ borderColor: '#2a2a2a', mt: 3, mb: 2 }} />
88
+
89
+ <Typography variant='caption' color='#444'>
90
+ API: {process.env.NEXT_PUBLIC_API_BASE_URL || 'http://140.82.34.191:3400/'}
91
+ </Typography>
92
+ </Box>
93
+ </Box>
94
+ )
95
+ }