robobyte-front-builder 1.0.17 → 1.0.21

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