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
@@ -0,0 +1,82 @@
1
+ import { Box } from '@mui/material'
2
+ import { resolveIcon } from 'services/builderHelper/iconResolver'
3
+
4
+ /**
5
+ * Inline prefix + text + suffix row used by LabelRenderer, HeaderRenderer,
6
+ * and FieldLabel.
7
+ *
8
+ * Props
9
+ * ─────
10
+ * prefix / suffix — MUI icon name OR plain text string
11
+ * gap — MUI sx gap between pieces (default 0.5)
12
+ * sx — sx applied to the outer wrapper span
13
+ *
14
+ * Per-adornment styling (each accepts a full MUI sx object):
15
+ * prefixSx / suffixSx — applied to that adornment's wrapper span
16
+ *
17
+ * Shorthand helpers (applied to both adornments unless overridden by *Sx):
18
+ * iconSize — MUI fontSize value ('small' | 'medium' | 'large' | 'inherit' | CSS string)
19
+ * iconColor — CSS / MUI color token for the icon / text adornment
20
+ *
21
+ * When neither adornment is present, children are returned unwrapped so the
22
+ * caller retains full control over display / text-align.
23
+ */
24
+ export default function AdornedLabel({
25
+ prefix,
26
+ suffix,
27
+ gap = 0.5,
28
+ iconSize = 'inherit',
29
+ iconColor,
30
+ prefixSx,
31
+ suffixSx,
32
+ sx,
33
+ children,
34
+ }) {
35
+ if (!prefix && !suffix) return children ?? null
36
+
37
+ // Base sx shared by both adornments (overrideable per-side via *Sx props)
38
+ const baseAdornSx = {
39
+ display: 'inline-flex',
40
+ alignItems: 'center',
41
+ flexShrink: 0,
42
+ ...(iconColor && { color: iconColor }),
43
+ }
44
+
45
+ function Piece({ value, sideSx }) {
46
+ if (!value) return null
47
+ const str = String(value)
48
+ const Icon = resolveIcon(str)
49
+ const merged = { ...baseAdornSx, ...sideSx }
50
+
51
+ if (Icon) {
52
+ return (
53
+ <Box component='span' sx={merged}>
54
+ <Icon fontSize={sideSx?.fontSize ?? iconSize} />
55
+ </Box>
56
+ )
57
+ }
58
+ // Plain-text adornment — fontSize/color come from merged sx
59
+ return (
60
+ <Box component='span' sx={{ flexShrink: 0, lineHeight: 'inherit', ...merged }}>
61
+ {str}
62
+ </Box>
63
+ )
64
+ }
65
+
66
+ return (
67
+ <Box
68
+ component='span'
69
+ sx={{
70
+ display: 'inline-flex',
71
+ alignItems: 'center',
72
+ gap,
73
+ verticalAlign: 'middle',
74
+ ...sx,
75
+ }}
76
+ >
77
+ <Piece value={prefix} sideSx={prefixSx} />
78
+ {children && <Box component='span'>{children}</Box>}
79
+ <Piece value={suffix} sideSx={suffixSx} />
80
+ </Box>
81
+ )
82
+ }
@@ -21,22 +21,46 @@ import MenuRenderer from './renderers/MenuRenderer'
21
21
  import ProgressCircleRenderer from './renderers/ProgressCircleRenderer'
22
22
  import ProgressLineRenderer from './renderers/ProgressLineRenderer'
23
23
  import CardRenderer from './renderers/CardRenderer'
24
- import ColumnGroupRenderer from './renderers/ColumnGroupRenderer'
25
- import ColumnRenderer from './renderers/ColumnRenderer'
26
- import CellRenderer from './renderers/CellRenderer'
27
- import HeaderCellRenderer from './renderers/HeaderCellRenderer'
28
24
  import BreadcrumbRenderer from './renderers/BreadcrumbRenderer'
29
- import TableRenderer from './renderers/TableRenderer'
30
- import TabRenderer from './renderers/TabRenderer'
31
25
  import WizardRenderer from './renderers/WizardRenderer'
32
26
  import WizardStepRenderer from './renderers/WizardStepRenderer'
33
27
  import RepeaterRenderer from './renderers/RepeaterRenderer'
34
28
  import ReportViewerRenderer from './renderers/ReportViewerRenderer'
29
+ import DataTableViewerRenderer from './renderers/DataTableViewerRenderer'
30
+ import ViewRendererRenderer from './renderers/ViewRendererRenderer'
31
+ import DialogRenderer from './renderers/DialogRenderer'
35
32
  import AutoCompleteRenderer from './renderers/AutoCompleteRenderer'
36
33
  import LayoutRenderer from './renderers/LayoutRenderer'
37
34
  import LayoutCellRenderer from './renderers/LayoutCellRenderer'
35
+ import PopoverRenderer from './renderers/PopoverRenderer'
36
+ import DataGridRenderer from './renderers/DataGridRenderer'
37
+ import ExcelUploadRenderer from './renderers/ExcelUploadRenderer'
38
+ import BannerRenderer from './renderers/BannerRenderer'
39
+ import PageNumberRenderer from './renderers/PageNumberRenderer'
40
+ import TreeViewRenderer from './renderers/TreeViewRenderer'
38
41
  import ViewerComponentWrapper from 'views/builder/viewer/ViewerComponentWrapper'
39
42
 
43
+ // KPI / data-viz renderers
44
+ import MetricRenderer from './renderers/MetricRenderer'
45
+ import TrendRenderer from './renderers/TrendRenderer'
46
+ import BadgeRenderer from './renderers/BadgeRenderer'
47
+ import StatusDotRenderer from './renderers/StatusDotRenderer'
48
+ import IconBoxRenderer from './renderers/IconBoxRenderer'
49
+ import ChartRenderer from './renderers/ChartRenderer'
50
+ import GaugeRenderer from './renderers/GaugeRenderer'
51
+ import DonutRenderer from './renderers/DonutRenderer'
52
+ import FunnelRenderer from './renderers/FunnelRenderer'
53
+ import BulletChartRenderer from './renderers/BulletChartRenderer'
54
+ import ComparisonBarsRenderer from './renderers/ComparisonBarsRenderer'
55
+ import TimelineRenderer from './renderers/TimelineRenderer'
56
+ import TagListRenderer from './renderers/TagListRenderer'
57
+ import HeatmapGridRenderer from './renderers/HeatmapGridRenderer'
58
+ import CountdownRenderer from './renderers/CountdownRenderer'
59
+ import AvatarGroupRenderer from './renderers/AvatarGroupRenderer'
60
+ import RatingRenderer from './renderers/RatingRenderer'
61
+ import StepStageRenderer from './renderers/StepStageRenderer'
62
+ import ColorScaleRenderer from './renderers/ColorScaleRenderer'
63
+
40
64
  export default function ComponentRenderer({ node, viewerContext }) {
41
65
  if (!node) return null
42
66
 
@@ -110,27 +134,9 @@ export default function ComponentRenderer({ node, viewerContext }) {
110
134
  case 'card':
111
135
  return <CardRenderer node={node} viewerContext={viewerContext} />
112
136
 
113
- case 'column-group':
114
- return <ColumnGroupRenderer node={node} viewerContext={viewerContext} />
115
-
116
- case 'column':
117
- return <ColumnRenderer node={node} viewerContext={viewerContext} />
118
-
119
- case 'cell':
120
- return <CellRenderer node={node} viewerContext={viewerContext} />
121
-
122
- case 'header-cell':
123
- return <HeaderCellRenderer node={node} viewerContext={viewerContext} />
124
-
125
137
  case 'breadcrumb':
126
138
  return <BreadcrumbRenderer node={node} viewerContext={viewerContext} />
127
139
 
128
- case 'table':
129
- return <TableRenderer node={node} viewerContext={viewerContext} />
130
-
131
- case 'tab':
132
- return <TabRenderer node={node} viewerContext={viewerContext} />
133
-
134
140
  case 'wizard':
135
141
  return <WizardRenderer node={node} viewerContext={viewerContext} />
136
142
 
@@ -142,6 +148,14 @@ export default function ComponentRenderer({ node, viewerContext }) {
142
148
 
143
149
  case 'reportViewer':
144
150
  return <ReportViewerRenderer node={node} viewerContext={viewerContext} />
151
+ case 'data-table-viewer':
152
+ return <DataTableViewerRenderer node={node} viewerContext={viewerContext} />
153
+
154
+ case 'viewRenderer':
155
+ return <ViewRendererRenderer node={node} viewerContext={viewerContext} />
156
+
157
+ case 'dialog':
158
+ return <DialogRenderer node={node} viewerContext={viewerContext} />
145
159
 
146
160
  case 'autocomplete':
147
161
  return <AutoCompleteRenderer node={node} viewerContext={viewerContext} />
@@ -152,6 +166,66 @@ export default function ComponentRenderer({ node, viewerContext }) {
152
166
  case 'layout-cell':
153
167
  return <LayoutCellRenderer node={node} layoutNode={node} viewerContext={viewerContext} />
154
168
 
169
+ case 'popover':
170
+ return <PopoverRenderer node={node} viewerContext={viewerContext} />
171
+
172
+ case 'data-grid':
173
+ return <DataGridRenderer node={node} viewerContext={viewerContext} />
174
+
175
+ case 'excel-upload':
176
+ return <ExcelUploadRenderer node={node} viewerContext={viewerContext} />
177
+
178
+ case 'banner':
179
+ return <BannerRenderer node={node} viewerContext={viewerContext} />
180
+
181
+ case 'pageNumber':
182
+ return <PageNumberRenderer node={node} viewerContext={viewerContext} />
183
+
184
+ case 'treeView':
185
+ return <TreeViewRenderer node={node} viewerContext={viewerContext} />
186
+
187
+ // KPI / data-viz
188
+ case 'kpi-metric':
189
+ return <MetricRenderer node={node} viewerContext={viewerContext} />
190
+ case 'kpi-trend':
191
+ return <TrendRenderer node={node} viewerContext={viewerContext} />
192
+ case 'kpi-badge':
193
+ return <BadgeRenderer node={node} viewerContext={viewerContext} />
194
+ case 'kpi-status-dot':
195
+ return <StatusDotRenderer node={node} viewerContext={viewerContext} />
196
+ case 'kpi-icon-box':
197
+ return <IconBoxRenderer node={node} viewerContext={viewerContext} />
198
+ case 'kpi-chart':
199
+ case 'kpi-sparkline': // legacy alias
200
+ case 'kpi-mini-bar': // legacy alias
201
+ return <ChartRenderer node={node} viewerContext={viewerContext} />
202
+ case 'kpi-gauge':
203
+ return <GaugeRenderer node={node} viewerContext={viewerContext} />
204
+ case 'kpi-donut':
205
+ return <DonutRenderer node={node} viewerContext={viewerContext} />
206
+ case 'kpi-funnel':
207
+ return <FunnelRenderer node={node} viewerContext={viewerContext} />
208
+ case 'kpi-bullet':
209
+ return <BulletChartRenderer node={node} viewerContext={viewerContext} />
210
+ case 'kpi-comparison':
211
+ return <ComparisonBarsRenderer node={node} viewerContext={viewerContext} />
212
+ case 'kpi-timeline':
213
+ return <TimelineRenderer node={node} viewerContext={viewerContext} />
214
+ case 'kpi-tag-list':
215
+ return <TagListRenderer node={node} viewerContext={viewerContext} />
216
+ case 'kpi-heatmap':
217
+ return <HeatmapGridRenderer node={node} viewerContext={viewerContext} />
218
+ case 'kpi-countdown':
219
+ return <CountdownRenderer node={node} viewerContext={viewerContext} />
220
+ case 'kpi-avatar-group':
221
+ return <AvatarGroupRenderer node={node} viewerContext={viewerContext} />
222
+ case 'kpi-rating':
223
+ return <RatingRenderer node={node} viewerContext={viewerContext} />
224
+ case 'kpi-step-stage':
225
+ return <StepStageRenderer node={node} viewerContext={viewerContext} />
226
+ case 'kpi-color-scale':
227
+ return <ColorScaleRenderer node={node} viewerContext={viewerContext} />
228
+
155
229
  case 'widget':
156
230
  return <ViewerComponentWrapper node={node} viewerContext={viewerContext} />
157
231
 
@@ -0,0 +1,259 @@
1
+ import { useState, useCallback } from 'react'
2
+ import { Box, Typography, Chip, Menu, MenuItem, ListItemIcon, ListItemText, Divider } from '@mui/material'
3
+ import { OpenInBrowserOutlined, KeyboardArrowDown, KeyboardArrowUp, AddOutlined, DeleteOutlined } from '@mui/icons-material'
4
+ import { createNode } from 'services/builderHelper/nodeFactory'
5
+ import { useBuilder } from 'src/context/BuilderContext'
6
+ import DialogRenderer from './renderers/DialogRenderer'
7
+
8
+ // ── DialogsZone ───────────────────────────────────────────────────────────────
9
+ //
10
+ // Renders at the bottom of the canvas / ProductionViewer.
11
+ //
12
+ // EDIT MODE
13
+ // • Collapsible panel showing all dialog cards.
14
+ // • Acts as the ONLY valid drop target for 'dialog' type nodes.
15
+ // • Right-click on the zone header opens a context menu (add / delete all).
16
+ // • Right-click on an individual dialog card deletes that dialog.
17
+ // • Each card is clickable → selects the dialog in the inspector.
18
+ //
19
+ // PRODUCTION MODE
20
+ // • Invisible — just mounts every <DialogRenderer> so they register themselves
21
+ // in dialogRefs and are ready to be opened via openDialog(key).
22
+
23
+ function EditDropZone({ onDrop }) {
24
+ const [over, setOver] = useState(false)
25
+
26
+ return (
27
+ <Box
28
+ onDragOver={e => { e.preventDefault(); setOver(true) }}
29
+ onDragLeave={() => setOver(false)}
30
+ onDrop={e => { e.preventDefault(); setOver(false); onDrop(e) }}
31
+ sx={{
32
+ border: `2px dashed ${over ? '#9c27b0' : '#3a3f4a'}`,
33
+ borderRadius: 1.5,
34
+ p: 1.5,
35
+ textAlign: 'center',
36
+ color: over ? '#9c27b0' : '#555',
37
+ fontSize: 11,
38
+ cursor: 'copy',
39
+ bgcolor: over ? 'rgba(156,39,176,0.06)' : 'transparent',
40
+ transition: 'all 0.15s',
41
+ }}
42
+ >
43
+ Drop a Dialog component here
44
+ </Box>
45
+ )
46
+ }
47
+
48
+ // ── Zone-level context menu ───────────────────────────────────────────────────
49
+
50
+ function ZoneContextMenu({ anchor, onClose, onAddDialog, onDeleteAll, hasDialogs }) {
51
+ return (
52
+ <Menu
53
+ open={Boolean(anchor)}
54
+ anchorReference='anchorPosition'
55
+ anchorPosition={anchor ? { top: anchor.mouseY, left: anchor.mouseX } : undefined}
56
+ onClose={onClose}
57
+ slotProps={{ paper: { sx: { bgcolor: '#1e1e2e', border: '1px solid #333', minWidth: 180 } } }}
58
+ >
59
+ <MenuItem onClick={() => { onAddDialog(); onClose() }}
60
+ sx={{ color: '#ce93d8', '&:hover': { bgcolor: 'rgba(156,39,176,0.12)' } }}>
61
+ <ListItemIcon><AddOutlined sx={{ fontSize: 16, color: '#ce93d8' }} /></ListItemIcon>
62
+ <ListItemText primaryTypographyProps={{ fontSize: 13 }}>Add Dialog</ListItemText>
63
+ </MenuItem>
64
+
65
+ {hasDialogs && [
66
+ <Divider key='div' sx={{ borderColor: '#333', my: 0.5 }} />,
67
+ <MenuItem key='del-all' onClick={() => { onDeleteAll(); onClose() }}
68
+ sx={{ color: '#f44336', '&:hover': { bgcolor: 'rgba(244,67,54,0.12)' } }}>
69
+ <ListItemIcon><DeleteOutlined sx={{ fontSize: 16, color: '#f44336' }} /></ListItemIcon>
70
+ <ListItemText primaryTypographyProps={{ fontSize: 13 }}>Delete All Dialogs</ListItemText>
71
+ </MenuItem>
72
+ ]}
73
+ </Menu>
74
+ )
75
+ }
76
+
77
+ // ── Dialog card context menu ──────────────────────────────────────────────────
78
+
79
+ function CardContextMenu({ anchor, onClose, onDelete }) {
80
+ return (
81
+ <Menu
82
+ open={Boolean(anchor)}
83
+ anchorReference='anchorPosition'
84
+ anchorPosition={anchor ? { top: anchor.mouseY, left: anchor.mouseX } : undefined}
85
+ onClose={onClose}
86
+ slotProps={{ paper: { sx: { bgcolor: '#1e1e2e', border: '1px solid #333', minWidth: 160 } } }}
87
+ >
88
+ <MenuItem onClick={() => { onDelete(); onClose() }}
89
+ sx={{ color: '#f44336', '&:hover': { bgcolor: 'rgba(244,67,54,0.12)' } }}>
90
+ <ListItemIcon><DeleteOutlined sx={{ fontSize: 16, color: '#f44336' }} /></ListItemIcon>
91
+ <ListItemText primaryTypographyProps={{ fontSize: 13 }}>Delete Dialog</ListItemText>
92
+ </MenuItem>
93
+ </Menu>
94
+ )
95
+ }
96
+
97
+ // ── Main component ────────────────────────────────────────────────────────────
98
+
99
+ export default function DialogsZone({ dialogs = [], viewerContext }) {
100
+ const isEditMode = viewerContext?.isEditMode
101
+ const builderContext = viewerContext?.builderContext
102
+
103
+ // Edit-mode: collapsible
104
+ const [open, setOpen] = useState(true)
105
+
106
+ // Context menus
107
+ const [zoneMenuAnchor, setZoneMenuAnchor] = useState(null)
108
+ const [cardMenuAnchor, setCardMenuAnchor] = useState(null)
109
+ const [cardMenuDialogId, setCardMenuDialogId] = useState(null)
110
+
111
+ // ── PRODUCTION MODE — just mount all dialog renderers invisibly ───────────
112
+ if (!isEditMode) {
113
+ return (
114
+ <>
115
+ {dialogs.map(dialog => (
116
+ <DialogRenderer key={dialog.id} node={dialog} viewerContext={viewerContext} />
117
+ ))}
118
+ </>
119
+ )
120
+ }
121
+
122
+ // ── EDIT MODE ─────────────────────────────────────────────────────────────
123
+ const { setSchema } = builderContext ?? {}
124
+
125
+ // Add a blank dialog
126
+ const handleAddDialog = useCallback(() => {
127
+ if (!setSchema) return
128
+ const newNode = createNode('dialog', {})
129
+ setSchema(prev => ({
130
+ ...prev,
131
+ dialogs: [...(prev.dialogs ?? []), newNode],
132
+ }))
133
+ builderContext.setSelectedId(newNode.id)
134
+ }, [setSchema, builderContext])
135
+
136
+ // Delete a single dialog by id
137
+ const handleDeleteDialog = useCallback((dialogId) => {
138
+ if (!setSchema) return
139
+ setSchema(prev => ({
140
+ ...prev,
141
+ dialogs: (prev.dialogs ?? []).filter(d => d.id !== dialogId),
142
+ }))
143
+ if (builderContext?.selectedId === dialogId) {
144
+ builderContext.setSelectedId(null)
145
+ }
146
+ }, [setSchema, builderContext])
147
+
148
+ // Delete all dialogs
149
+ const handleDeleteAll = useCallback(() => {
150
+ if (!setSchema) return
151
+ setSchema(prev => ({ ...prev, dialogs: [] }))
152
+ builderContext?.setSelectedId(null)
153
+ }, [setSchema, builderContext])
154
+
155
+ // Drop handler
156
+ const handleDrop = (e) => {
157
+ if (!setSchema) return
158
+ const componentData = e.dataTransfer.getData('application/builder-component')
159
+ if (!componentData) return
160
+ try {
161
+ const component = JSON.parse(componentData)
162
+ if (component.type !== 'dialog') return
163
+ const newNode = createNode('dialog', component.value ? JSON.parse(component.value) : {})
164
+ setSchema(prev => ({
165
+ ...prev,
166
+ dialogs: [...(prev.dialogs ?? []), newNode],
167
+ }))
168
+ builderContext.setSelectedId(newNode.id)
169
+ } catch (err) {
170
+ console.error('[DialogsZone] drop error', err)
171
+ }
172
+ }
173
+
174
+ // Zone header right-click
175
+ const handleZoneContextMenu = (e) => {
176
+ e.preventDefault()
177
+ setZoneMenuAnchor({ mouseX: e.clientX, mouseY: e.clientY })
178
+ }
179
+
180
+ // Dialog card right-click
181
+ const handleCardContextMenu = (e, dialogId) => {
182
+ e.preventDefault()
183
+ e.stopPropagation()
184
+ setCardMenuDialogId(dialogId)
185
+ setCardMenuAnchor({ mouseX: e.clientX, mouseY: e.clientY })
186
+ }
187
+
188
+ return (
189
+ <Box
190
+ sx={{
191
+ borderTop: '2px solid #2a3a4a',
192
+ bgcolor: '#0f141c',
193
+ flexShrink: 0,
194
+ }}
195
+ >
196
+ {/* Header — right-click for context menu */}
197
+ <Box
198
+ display='flex' alignItems='center' justifyContent='space-between'
199
+ px={2} py={0.8}
200
+ onClick={() => setOpen(p => !p)}
201
+ onContextMenu={handleZoneContextMenu}
202
+ sx={{ cursor: 'pointer', userSelect: 'none', '&:hover': { bgcolor: '#141a24' } }}
203
+ >
204
+ <Box display='flex' alignItems='center' gap={1}>
205
+ <OpenInBrowserOutlined sx={{ fontSize: 14, color: '#9c27b0' }} />
206
+ <Typography sx={{ fontSize: 11, fontWeight: 700, letterSpacing: '0.08em', textTransform: 'uppercase', color: '#9c27b0' }}>
207
+ Dialogs
208
+ </Typography>
209
+ <Chip
210
+ label={dialogs.length}
211
+ size='small'
212
+ sx={{ height: 16, fontSize: 10, bgcolor: '#2a1540', color: '#ce93d8', '.MuiChip-label': { px: 0.8 } }}
213
+ />
214
+ </Box>
215
+ {open
216
+ ? <KeyboardArrowDown sx={{ fontSize: 16, color: '#555' }} />
217
+ : <KeyboardArrowUp sx={{ fontSize: 16, color: '#555' }} />}
218
+ </Box>
219
+
220
+ {/* Content */}
221
+ {open && (
222
+ <Box px={2} py={1.5} display='flex' flexDirection='column' gap={1}>
223
+ {/* Existing dialog cards — each gets its own right-click menu */}
224
+ {dialogs.length > 0 && (
225
+ <Box display='flex' flexWrap='wrap' gap={1} mb={1}>
226
+ {dialogs.map(dialog => (
227
+ <Box
228
+ key={dialog.id}
229
+ onContextMenu={e => handleCardContextMenu(e, dialog.id)}
230
+ >
231
+ <DialogRenderer node={dialog} viewerContext={viewerContext} />
232
+ </Box>
233
+ ))}
234
+ </Box>
235
+ )}
236
+
237
+ {/* Drop zone */}
238
+ <EditDropZone onDrop={handleDrop} />
239
+ </Box>
240
+ )}
241
+
242
+ {/* Zone-level context menu */}
243
+ <ZoneContextMenu
244
+ anchor={zoneMenuAnchor}
245
+ onClose={() => setZoneMenuAnchor(null)}
246
+ onAddDialog={handleAddDialog}
247
+ onDeleteAll={handleDeleteAll}
248
+ hasDialogs={dialogs.length > 0}
249
+ />
250
+
251
+ {/* Per-card context menu */}
252
+ <CardContextMenu
253
+ anchor={cardMenuAnchor}
254
+ onClose={() => { setCardMenuAnchor(null); setCardMenuDialogId(null) }}
255
+ onDelete={() => cardMenuDialogId && handleDeleteDialog(cardMenuDialogId)}
256
+ />
257
+ </Box>
258
+ )
259
+ }
@@ -0,0 +1,106 @@
1
+ import { Box, Typography } from '@mui/material'
2
+ import AdornedLabel from './AdornedLabel'
3
+
4
+ /**
5
+ * FieldLabel — renders an external label for any input component.
6
+ *
7
+ * labelPosition : 'top' | 'left' | 'right' | 'none'
8
+ *
9
+ * Styling props (all optional, MUI sx-compatible values):
10
+ * labelFontSize — e.g. '0.75rem', 12
11
+ * labelFontWeight — e.g. 600, 'bold'
12
+ * labelColor — e.g. '#333', 'primary.main' (overrides default text.secondary)
13
+ * labelFontStyle — e.g. 'italic'
14
+ * labelLetterSpacing
15
+ *
16
+ * Adornment props forwarded to AdornedLabel:
17
+ * prefix / suffix — icon name or text
18
+ * iconSize / iconColor / prefixSx / suffixSx
19
+ */
20
+ export default function FieldLabel({
21
+ label,
22
+ required,
23
+ labelPosition = 'top',
24
+ error,
25
+ // label text styling
26
+ labelFontSize,
27
+ labelFontWeight,
28
+ labelColor,
29
+ labelFontStyle,
30
+ labelLetterSpacing,
31
+ // adornment
32
+ prefix,
33
+ suffix,
34
+ iconSize,
35
+ iconColor,
36
+ prefixSx,
37
+ suffixSx,
38
+ iconGap,
39
+ children,
40
+ }) {
41
+ if (!label || labelPosition === 'none') return children
42
+
43
+ const isInline = labelPosition === 'left' || labelPosition === 'right'
44
+
45
+ const labelEl = (
46
+ <Typography
47
+ component='span'
48
+ sx={{
49
+ display: 'flex',
50
+ alignItems: 'center',
51
+ gap: 0.5,
52
+ fontSize: labelFontSize ?? '0.8125rem',
53
+ fontWeight: labelFontWeight ?? 500,
54
+ fontStyle: labelFontStyle,
55
+ letterSpacing: labelLetterSpacing,
56
+ lineHeight: 1.5,
57
+ color: error ? 'error.main' : (labelColor ?? 'text.secondary'),
58
+ userSelect: 'none',
59
+ whiteSpace: 'nowrap',
60
+ ...(isInline ? { flexShrink: 0, pt: '8px' } : { mb: 0.5 }),
61
+ }}
62
+ >
63
+ <AdornedLabel
64
+ prefix={prefix}
65
+ suffix={suffix}
66
+ iconSize={iconSize ?? 'small'}
67
+ iconColor={iconColor}
68
+ prefixSx={prefixSx}
69
+ suffixSx={suffixSx}
70
+ gap={iconGap ?? 0.5}
71
+ >
72
+ {label}
73
+ </AdornedLabel>
74
+ {required && (
75
+ <Box component='span' sx={{ color: 'error.main', ml: 0.25, flexShrink: 0 }}>
76
+ *
77
+ </Box>
78
+ )}
79
+ </Typography>
80
+ )
81
+
82
+ if (labelPosition === 'left') {
83
+ return (
84
+ <Box sx={{ display: 'flex', alignItems: 'flex-start', gap: 1.5, width: '100%' }}>
85
+ {labelEl}
86
+ <Box sx={{ flex: 1, minWidth: 0 }}>{children}</Box>
87
+ </Box>
88
+ )
89
+ }
90
+
91
+ if (labelPosition === 'right') {
92
+ return (
93
+ <Box sx={{ display: 'flex', alignItems: 'flex-start', gap: 1.5, width: '100%' }}>
94
+ <Box sx={{ flex: 1, minWidth: 0 }}>{children}</Box>
95
+ {labelEl}
96
+ </Box>
97
+ )
98
+ }
99
+
100
+ return (
101
+ <Box sx={{ display: 'flex', flexDirection: 'column', width: '100%' }}>
102
+ {labelEl}
103
+ {children}
104
+ </Box>
105
+ )
106
+ }