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,22 @@
1
+ export const AVATAR_GROUP_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Bind dataKey to an array of user objects.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "assignees": [\n { "name": "Sara Lee", "image": "https://..." },\n { "name": "John Doe", "color": "#9c27b0" },\n { "name": "Ali Hassan" }\n] }\n→ dataKey: "assignees"\n\nColor priority: colorField → Color Schema → initials hash',
6
+ },
7
+ { name: 'dataKey', label: 'Data Key', type: 'expression' },
8
+ { name: 'nameField', label: 'Name Field', type: 'expression', placeholder: 'default: name' },
9
+ { name: 'imageField', label: 'Image Field', type: 'expression', placeholder: 'default: image' },
10
+ { name: 'colorField', label: 'Color Field', type: 'expression', placeholder: 'per-avatar color override' },
11
+ { name: 'tooltipField', label: 'Tooltip Field',type: 'expression', placeholder: 'defaults to nameField' },
12
+
13
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
14
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
15
+ { name: 'size', label: 'Avatar Size (px)', type: 'expression' },
16
+ { name: 'maxVisible', label: 'Max Visible', type: 'expression' },
17
+ { name: 'overlap', label: 'Overlap (px)', type: 'expression' },
18
+ { name: 'borderColor', label: 'Border Color', type: 'expression' },
19
+ { name: 'borderWidth', label: 'Border Width', type: 'expression' },
20
+ { name: 'direction', label: 'Stack Direction', type: 'select', options: ['ltr','rtl'] },
21
+ { name: 'align', label: 'Align', type: 'select', options: ['left','center','right'] },
22
+ ]
@@ -0,0 +1,17 @@
1
+ export const BADGE_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Reads value from data[valueKey]. Thresholds map values to colors/labels.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "status": "active" } ← string value\n{ "score": 87 } ← numeric value\n→ valueKey: "status"\n threshold label overrides the displayed text',
6
+ },
7
+ { name: 'valueKey', label: 'Value Key', type: 'expression' },
8
+ { name: 'label', label: 'Static Label', type: 'expression', placeholder: 'Leave empty to show raw value' },
9
+
10
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
11
+ { name: 'variant', label: 'Variant', type: 'select', options: ['soft','outlined','filled'] },
12
+ { name: 'size', label: 'Size', type: 'select', options: ['small','medium','large'] },
13
+ { name: 'dot', label: 'Show Color Dot', type: 'boolean' },
14
+ { name: 'align', label: 'Align', type: 'select', options: ['left','center','right'] },
15
+
16
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
17
+ ]
@@ -0,0 +1,47 @@
1
+ export const BULLET_CHART_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Reads actual value and target from data keys. Optional range bands can define "good" zone.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "revenue": 82000,\n "target": 100000 }\n→ valueKey: "revenue"\n targetKey: "target"\n min: 0, max: 150000\n\nOptional good-range band:\n goodFrom: 70000 goodTo: 120000\n (static numbers or expressions that resolve to numbers)',
6
+ },
7
+ { name: 'valueKey', label: 'Actual Value Key', type: 'expression' },
8
+ { name: 'targetKey', label: 'Target Key', type: 'expression' },
9
+ { name: 'min', label: 'Min', type: 'expression' },
10
+ { name: 'max', label: 'Max', type: 'expression' },
11
+ { name: 'label', label: 'Label', type: 'expression' },
12
+ { name: 'sublabel', label: 'Sub-label', type: 'expression' },
13
+
14
+ { name: 'fmt_note', type: 'note', label: 'Format' },
15
+ { name: 'format', label: 'Format', type: 'select', options: ['number','currency','percent','compact'] },
16
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
17
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
18
+
19
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
20
+ { name: 'height', label: 'Height (px)', type: 'expression' },
21
+ {
22
+ name: 'bar_color_note', type: 'note', label: 'Bar Color',
23
+ text: 'Color Schema controls the actual bar color when no threshold matches.\nSet Actual Bar Color to override the schema base color directly.',
24
+ },
25
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
26
+ { name: 'actualColor', label: 'Actual Bar Color', type: 'expression', placeholder: 'overrides schema base color' },
27
+ { name: 'targetColor', label: 'Target Marker Color', type: 'expression' },
28
+ { name: 'trackColor', label: 'Track Background', type: 'expression', placeholder: 'default: action.hover' },
29
+ { name: 'goodColor', label: 'Good Range Color', type: 'expression' },
30
+ { name: 'goodFrom', label: 'Good Range From', type: 'expression', placeholder: 'value or data key' },
31
+ { name: 'goodTo', label: 'Good Range To', type: 'expression', placeholder: 'value or data key' },
32
+ { name: 'showTarget', label: 'Show Target Marker', type: 'boolean' },
33
+ { name: 'showLabels', label: 'Show Min/Max Labels', type: 'boolean' },
34
+
35
+ { name: 'thresholds_note', type: 'note', label: 'Thresholds', text: 'Apply conditional bar colors based on the actual value.' },
36
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
37
+
38
+ { name: 'label_style_note', type: 'note', label: 'Label Style' },
39
+ { name: 'labelFontSize', label: 'Label Font Size', type: 'expression' },
40
+ { name: 'labelFontWeight', label: 'Label Font Weight', type: 'select', options: ['300','400','500','600','700','800'] },
41
+ { name: 'labelColor', label: 'Label Color', type: 'expression', placeholder: 'e.g. text.secondary or #555' },
42
+
43
+ { name: 'sublabel_style_note', type: 'note', label: 'Sub-label Style' },
44
+ { name: 'sublabelFontSize', label: 'Sub-label Font Size', type: 'expression' },
45
+ { name: 'sublabelFontWeight', label: 'Sub-label Font Weight', type: 'select', options: ['300','400','500','600','700','800'] },
46
+ { name: 'sublabelColor', label: 'Sub-label Color', type: 'expression', placeholder: 'e.g. text.disabled or #999' },
47
+ ]
@@ -0,0 +1,55 @@
1
+ export const CHART_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Bind dataKey to an array in page data, or return one directly from an expression.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: 'dataKey must always resolve to a flat array — never a plain object.\n\nSingle-series (bar / line / area):\n{ "sales": [\n { "label": "Mon", "value": 420 },\n { "label": "Tue", "value": 380 }\n] }\n→ dataKey: "sales"\n valueField: "value"\n\nMulti-series (type: multi) — all series in the SAME flat array:\n{ "stats": [\n { "month": "Jan", "revenue": 8200, "cost": 3100 },\n { "month": "Feb", "revenue": 9400, "cost": 3400 }\n] }\n→ dataKey: "stats", labelField: "month"\n Series 1: field "revenue"\n Series 2: field "cost"\n\nDirect expression return:\n→ return [{ label: "A", value: 10 }, ...]',
6
+ },
7
+ { name: 'dataKey', label: 'Data Key', type: 'expression' },
8
+ { name: 'valueField', label: 'Value Field', type: 'expression', placeholder: 'default: value' },
9
+ { name: 'labelField', label: 'Label Field', type: 'expression', placeholder: 'default: label' },
10
+
11
+ { name: 'type_note', type: 'note', label: 'Chart Type' },
12
+ {
13
+ name: 'chartType', label: 'Type', type: 'select',
14
+ options: ['bar', 'bar-h', 'line', 'area', 'multi'],
15
+ },
16
+
17
+ { name: 'series_note', type: 'note', label: 'Multi-Series', text: 'Used when Type is "multi". Each series maps to a field in your data objects and can have its own line/area/bar style.' },
18
+ { name: 'series', label: 'Series', type: 'series-editor' },
19
+
20
+ { name: 'appearance_note', type: 'note', label: 'Appearance (single series)' },
21
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
22
+ { name: 'color', label: 'Color', type: 'expression', placeholder: 'Overridden by thresholds' },
23
+ { name: 'height', label: 'Height (px)', type: 'expression' },
24
+ { name: 'strokeWidth', label: 'Stroke Width', type: 'expression', placeholder: 'line / area only' },
25
+ { name: 'smooth', label: 'Smooth Curve', type: 'boolean' },
26
+ { name: 'showDot', label: 'Show Dots', type: 'boolean' },
27
+ { name: 'fillOpacity', label: 'Fill Opacity', type: 'expression', placeholder: 'area only, default: 0.15' },
28
+ { name: 'upperRadius', label: 'Bar Upper Radius', type: 'expression', placeholder: 'bar only, default: 3' },
29
+ { name: 'lowerRadius', label: 'Bar Lower Radius', type: 'expression', placeholder: 'bar only, default: 0' },
30
+ { name: 'highlightLast', label: 'Highlight Last', type: 'boolean' },
31
+ { name: 'highlightColor', label: 'Highlight Color', type: 'expression' },
32
+
33
+ { name: 'display_note', type: 'note', label: 'Display' },
34
+ { name: 'showXAxis', label: 'Show Labels', type: 'boolean' },
35
+ { name: 'showYAxis', label: 'Show Y Axis', type: 'boolean' },
36
+ { name: 'showTooltip', label: 'Show Tooltip', type: 'boolean' },
37
+ { name: 'showValues', label: 'Show Values', type: 'boolean' },
38
+ { name: 'showLegend', label: 'Show Legend', type: 'boolean', },
39
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
40
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
41
+
42
+ { name: 'ref_note', type: 'note', label: 'Reference Line' },
43
+ { name: 'referenceValue', label: 'Reference Value', type: 'expression' },
44
+
45
+ { name: 'thresholds', label: 'Thresholds (single series)', type: 'thresholds-editor' },
46
+
47
+ {
48
+ name: 'actions_note', type: 'note', label: 'Actions',
49
+ text: 'Fires when a user clicks a data point. Available in the action:\n clickedItem — the full data row object\n clickedValue — the numeric value of the clicked point\n clickedField — the series field key that was clicked\n clickedLabel — the x-axis label\n clickedIndex — position in the data array',
50
+ },
51
+ {
52
+ name: 'onDataClick', type: 'kpi-action', label: 'On Data Point Click',
53
+ context: ['clickedItem', 'clickedValue', 'clickedField', 'clickedLabel', 'clickedIndex'],
54
+ },
55
+ ]
@@ -0,0 +1,60 @@
1
+ export const COLOR_SCALE_FIELDS = [
2
+ {
3
+ name: 'data_note', type: 'note', label: 'Data',
4
+ text: 'Positions one or more markers on a color scale bar between min and max.\n\nPrimary marker: set valueKey to a single numeric value.\nAdditional markers: use the Markers list below.',
5
+ },
6
+ {
7
+ name: 'data_example', type: 'note', label: 'Expected data shape',
8
+ text: '{ "riskScore": 67, "target": 80 }\n→ valueKey: "riskScore"\n→ Marker 2 valueKey: "target"\n\nGradient (scaleMode: gradient):\n Color Schema → Tints of red gives a white→red ramp\n Color Schema → Custom [\"#e8f5e9\", \"#1b5e20\"] gives green-to-dark-green\n\nSteps (scaleMode: steps, or ≥ 2 thresholds):\n Threshold colors override; schema colors fill any zone without a threshold color',
9
+ },
10
+
11
+ { name: 'valueKey', label: 'Primary Value Key', type: 'expression', placeholder: 'Numeric field or expression' },
12
+ { name: 'min', label: 'Min', type: 'expression' },
13
+ { name: 'max', label: 'Max', type: 'expression' },
14
+ { name: 'label', label: 'Label', type: 'expression' },
15
+
16
+ { name: 'fmt_note', type: 'note', label: 'Format' },
17
+ { name: 'format', label: 'Format', type: 'select', options: ['number','currency','percent','compact'] },
18
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
19
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
20
+
21
+ {
22
+ name: 'coloring_note', type: 'note', label: 'Track Coloring',
23
+ text: '"gradient" → smooth color ramp using the Color Schema colors as gradient stops.\n"steps" → discrete zone blocks; schema colors fill zones, threshold colors override per-zone.\n\nColor Schema controls the palette for both modes the same way as other KPI components.',
24
+ },
25
+ {
26
+ name: 'scaleMode', label: 'Scale Mode', type: 'select',
27
+ options: ['gradient', 'steps'],
28
+ },
29
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
30
+ { name: 'segments', label: 'Gradient Stops', type: 'expression', placeholder: 'Gradient mode — default: 5' },
31
+
32
+ {
33
+ name: 'thresholds_note', type: 'note', label: 'Thresholds (Steps Mode)',
34
+ text: 'Define zone breakpoints and colors. Each threshold value becomes a zone boundary. Threshold colors take priority over Color Schema in steps mode.',
35
+ },
36
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
37
+
38
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
39
+ { name: 'height', label: 'Track Height (px)', type: 'expression' },
40
+ { name: 'borderRadius', label: 'Border Radius', type: 'expression' },
41
+ { name: 'showLabels', label: 'Show Min/Max Labels', type: 'boolean' },
42
+
43
+ { name: 'label_style_note', type: 'note', label: 'Label Style' },
44
+ { name: 'labelFontSize', label: 'Font Size', type: 'expression' },
45
+ { name: 'labelFontWeight', label: 'Font Weight', type: 'select', options: ['300','400','500','600','700','800'] },
46
+ { name: 'labelColor', label: 'Color', type: 'expression', placeholder: 'e.g. text.secondary or #555' },
47
+
48
+ {
49
+ name: 'primary_marker_note', type: 'note', label: 'Primary Marker',
50
+ text: 'The main marker driven by valueKey above.',
51
+ },
52
+ { name: 'showMarker', label: 'Show Primary Marker', type: 'boolean' },
53
+ { name: 'markerColor', label: 'Marker Color', type: 'expression', placeholder: 'default: #333' },
54
+
55
+ {
56
+ name: 'multi_markers_note', type: 'note', label: 'Additional Markers',
57
+ text: 'Add extra markers with their own value key, color, shape, and label. Useful for target, average, benchmark alongside the primary value.',
58
+ },
59
+ { name: 'markers', label: 'Markers', type: 'markers-editor' },
60
+ ]
@@ -0,0 +1,41 @@
1
+ export const COMPARISON_BARS_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Bind dataKey to an array. Each item renders a labeled horizontal bar scaled against the max value in the set.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "topProducts": [\n { "label": "Widget A", "value": 4820, "color": "#1976d2" },\n { "label": "Widget B", "value": 3210 },\n { "label": "Widget C", "value": 5600 }\n] }\n→ dataKey: "topProducts"\n labelField: "label" valueField: "value"\n colorField: "color" (optional per-item color)\n\nOverride the scale ceiling:\n maxKey: "totalBudget" (reads data["totalBudget"] as the 100% mark)',
6
+ },
7
+ { name: 'dataKey', label: 'Data Key', type: 'expression' },
8
+ { name: 'labelField', label: 'Label Field', type: 'expression', placeholder: 'default: label' },
9
+ { name: 'valueField', label: 'Value Field', type: 'expression', placeholder: 'default: value' },
10
+ { name: 'colorField', label: 'Color Field', type: 'expression', placeholder: 'default: color — per-item hex in data' },
11
+ { name: 'maxKey', label: 'Max Value Key', type: 'expression', placeholder: 'data key whose value = 100 % bar width' },
12
+
13
+ { name: 'fmt_note', type: 'note', label: 'Format' },
14
+ { name: 'format', label: 'Format', type: 'select', options: ['number','currency','percent','compact'] },
15
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
16
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
17
+
18
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
19
+ {
20
+ name: 'color_schema_note', type: 'note', label: 'Bar Colors',
21
+ text: 'Color Schema controls bar colors when the data has no per-item color field and no threshold fires.\nPalette: cycles through the global palette.\nTints: monochromatic shades of one base color.\nData: rely entirely on per-item color field.\nCustom: your own JSON color array.\nDefault Color is the fallback when schema mode is "palette" and you want a single solid color.',
22
+ },
23
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
24
+ { name: 'color', label: 'Default Color', type: 'expression', placeholder: 'fallback when schema = palette' },
25
+ { name: 'trackColor', label: 'Track Background', type: 'expression', placeholder: 'default: action.hover' },
26
+ { name: 'height', label: 'Bar Height (px)', type: 'expression', placeholder: 'default: 8' },
27
+ { name: 'upperRadius', label: 'Bar Radius (top)', type: 'expression', placeholder: 'default: 4' },
28
+ { name: 'lowerRadius', label: 'Bar Radius (bottom)', type: 'expression', placeholder: 'default: 0' },
29
+ { name: 'gap', label: 'Gap Between Bars (px)', type: 'expression', placeholder: 'default: 10' },
30
+ { name: 'labelWidth', label: 'Label Column Width (px)', type: 'expression', placeholder: 'default: 100' },
31
+ { name: 'showLabels', label: 'Show Labels', type: 'boolean' },
32
+ { name: 'showValues', label: 'Show Values', type: 'boolean' },
33
+ { name: 'sortDesc', label: 'Sort Descending', type: 'boolean' },
34
+ { name: 'maxItems', label: 'Max Bars', type: 'expression', placeholder: 'limit number of bars shown' },
35
+
36
+ {
37
+ name: 'thresholds_note', type: 'note', label: 'Thresholds',
38
+ text: 'Apply conditional bar color based on each bar\'s value. Overrides Color Schema.',
39
+ },
40
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
41
+ ]
@@ -0,0 +1,46 @@
1
+ export const COUNTDOWN_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Bind targetDateKey to a page-data key that holds a date/time value, or enter a fixed value in Static Target Date. All common date representations are accepted.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Accepted date formats',
5
+ text: 'ISO datetime string:\n "2025-12-31T23:59:59"\n "2025-12-31T23:59:59Z"\n\nISO date-only (local midnight):\n "2025-12-31"\n\nEpoch milliseconds (number):\n 1735689599000\n\nEpoch seconds (number < 1e11):\n 1735689599\n\nJS Date object (from expression):\n new Date("2025-12-31")\n new Date(data.ts * 1000)\n\nData binding example:\n{ "dealDeadline": "2025-12-31T23:59:59" }\n→ targetDateKey: "dealDeadline"\n\nExpression example (returns Date directly):\n→ targetDateKey: new Date(data.expiresAt)',
6
+ },
7
+ { name: 'targetDateKey', label: 'Target Date Key', type: 'expression', placeholder: 'data key or expression returning a date' },
8
+ { name: 'targetDate', label: 'Static Target Date', type: 'expression', placeholder: 'e.g. 2025-12-31 or 2025-12-31T23:59:59' },
9
+ { name: 'doneLabel', label: 'Done Label', type: 'expression', placeholder: 'Shown when countdown reaches zero' },
10
+ { name: 'label', label: 'Label', type: 'expression', placeholder: 'Optional heading above the digits' },
11
+
12
+ { name: 'segments_note', type: 'note', label: 'Segments' },
13
+ { name: 'showDays', label: 'Show Days', type: 'boolean' },
14
+ { name: 'showHours', label: 'Show Hours', type: 'boolean' },
15
+ { name: 'showMinutes', label: 'Show Minutes', type: 'boolean' },
16
+ { name: 'showSeconds', label: 'Show Seconds', type: 'boolean' },
17
+
18
+ { name: 'unit_labels_note', type: 'note', label: 'Unit Label Overrides', text: 'Override the default unit labels shown below each digit group.' },
19
+ { name: 'labelDays', label: 'Days Label', type: 'expression', placeholder: 'default: days' },
20
+ { name: 'labelHours', label: 'Hours Label', type: 'expression', placeholder: 'default: hrs' },
21
+ { name: 'labelMinutes', label: 'Minutes Label', type: 'expression', placeholder: 'default: min' },
22
+ { name: 'labelSeconds', label: 'Seconds Label', type: 'expression', placeholder: 'default: sec' },
23
+
24
+ { name: 'layout_note', type: 'note', label: 'Layout' },
25
+ { name: 'size', label: 'Size', type: 'select', options: ['small', 'medium', 'large'] },
26
+ { name: 'align', label: 'Align', type: 'select', options: ['left', 'center', 'right'] },
27
+ { name: 'separator', label: 'Separator', type: 'expression', placeholder: 'default: :' },
28
+
29
+ { name: 'color_note', type: 'note', label: 'Colors' },
30
+ { name: 'color', label: 'Digit Color', type: 'expression', placeholder: 'Overridden by thresholds' },
31
+ { name: 'unitColor', label: 'Unit Label Color', type: 'expression', placeholder: 'default: text.disabled' },
32
+ { name: 'separatorColor', label: 'Separator Color', type: 'expression', placeholder: 'default: text.disabled' },
33
+ { name: 'doneLabelColor', label: 'Done Label Color', type: 'expression', placeholder: 'default: success.main' },
34
+
35
+ { name: 'digit_style_note', type: 'note', label: 'Digit Style' },
36
+ { name: 'numberFontWeight', label: 'Digit Font Weight', type: 'select', options: ['300','400','500','600','700','800','900'], },
37
+
38
+ { name: 'label_style_note', type: 'note', label: 'Label Style', text: 'Styles the optional heading label above the digits.' },
39
+ { name: 'labelFontSize', label: 'Label Font Size', type: 'expression' },
40
+ { name: 'labelFontWeight', label: 'Label Font Weight', type: 'select', options: ['300','400','500','600','700','800'] },
41
+ { name: 'labelColor', label: 'Label Color', type: 'expression', placeholder: 'default: text.secondary' },
42
+
43
+ { name: 'thresholds', label: 'Thresholds (on remaining seconds)', type: 'thresholds-editor' },
44
+
45
+ { name: 'onDoneCode', label: 'On Done', type: 'code', codeType: 'calculation' },
46
+ ]
@@ -0,0 +1,51 @@
1
+ export const DONUT_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: 'Single series:\n{ "salesByRegion": [\n { "name": "North", "value": 4200, "color": "#1976d2" },\n { "name": "South", "value": 3100, "color": "#e91e63" }\n] }\n→ dataKey: "salesByRegion"\n\nSlice colors are read from each item\'s "color" field automatically.\nUse colorField to point to a differently-named field (e.g. "hex").\nFalls back to the Colors palette when no color is present.\n\nMulti-series (concentric rings):\n{ "thisYear": [{ "name": "Q1", "value": 3200 }, ...],\n "lastYear": [{ "name": "Q1", "value": 2800 }, ...] }\n→ donutType: "multi"\n Ring 1 (inner): field "thisYear"\n Ring 2 (outer): field "lastYear"',
6
+ },
7
+
8
+ { name: 'type_note', type: 'note', label: 'Type' },
9
+ { name: 'donutType', label: 'Donut Type', type: 'select', options: ['single', 'multi'] },
10
+
11
+ { name: 'single_note', type: 'note', label: 'Single Series', text: 'Used when Donut Type is "single".' },
12
+ { name: 'dataKey', label: 'Data Key', type: 'expression' },
13
+ { name: 'nameField', label: 'Name Field', type: 'expression', placeholder: 'default: name' },
14
+ { name: 'valueField', label: 'Value Field', type: 'expression', placeholder: 'default: value' },
15
+ { name: 'colorField', label: 'Color Field', type: 'expression', placeholder: 'default: color — field in each slice object' },
16
+ { name: 'centerLabel', label: 'Center Label', type: 'expression' },
17
+ { name: 'centerKey', label: 'Center Value Key', type: 'expression', placeholder: 'data key whose value shows in the hole' },
18
+
19
+ { name: 'multi_note', type: 'note', label: 'Multi-Series', text: 'Used when Donut Type is "multi". Each ring is a separate data array. First ring = innermost, last = outermost. Set each ring\'s Data Field to the data key that returns its slice array.' },
20
+ { name: 'series', label: 'Rings', type: 'rings-editor' },
21
+
22
+ { name: 'fmt_note', type: 'note', label: 'Format' },
23
+ { name: 'format', label: 'Format', type: 'select', options: ['number','currency','percent','compact'] },
24
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
25
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
26
+
27
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
28
+ {
29
+ name: 'color_schema_note', type: 'note', label: 'Slice Colors (single series)',
30
+ text: 'Controls how slices are colored when the data has no "color" field.\nPalette: cycles through the global palette.\nTints: monochromatic shades of one base color.\nData: only per-slice data colors — no fallback.\nCustom: your own JSON color array.',
31
+ },
32
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
33
+ { name: 'height', label: 'Height (px)', type: 'expression' },
34
+ { name: 'innerRadius', label: 'Inner Radius %', type: 'expression', placeholder: 'default: 55 — hole size' },
35
+ { name: 'outerRadius', label: 'Outer Radius %', type: 'expression', placeholder: 'default: 80 — overall size' },
36
+ {
37
+ name: 'padAngle', label: 'Gap Between Slices', type: 'expression',
38
+ placeholder: 'degrees, default: 2 — set 0 for no gap',
39
+ },
40
+ {
41
+ name: 'startAngle', label: 'First Slice Position', type: 'select',
42
+ options: ['90', '0', '180', '270'],
43
+ },
44
+ { name: 'showTooltip', label: 'Show Tooltip', type: 'boolean' },
45
+ { name: 'showLegend', label: 'Show Legend', type: 'boolean' },
46
+ { name: 'legendPosition', label: 'Legend Position', type: 'select', options: ['bottom','right','top'] },
47
+ {
48
+ name: 'colors', label: 'Fallback Palette (JSON)', type: 'expression',
49
+ placeholder: '["#1976d2","#e91e63","#4caf50"] — used when slice has no color field',
50
+ },
51
+ ]
@@ -0,0 +1,25 @@
1
+ export const FUNNEL_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Bind dataKey to an array of stage objects ordered from widest (top) to narrowest (bottom).' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "pipeline": [\n { "label": "Leads", "value": 1200 },\n { "label": "Qualified", "value": 640 },\n { "label": "Proposal", "value": 280 },\n { "label": "Closed", "value": 95 }\n] }\n→ dataKey: "pipeline"\n labelField: "label", valueField: "value"\n\nOptional per-item color:\n { "label": "Leads", "value": 1200, "color": "#1976d2" }',
6
+ },
7
+ { name: 'dataKey', label: 'Data Key', type: 'expression' },
8
+ { name: 'labelField', label: 'Label Field', type: 'expression', placeholder: 'default: label' },
9
+ { name: 'valueField', label: 'Value Field', type: 'expression', placeholder: 'default: value' },
10
+ { name: 'colorField', label: 'Color Field', type: 'expression', placeholder: 'default: color — per-item override' },
11
+
12
+ { name: 'fmt_note', type: 'note', label: 'Format' },
13
+ { name: 'format', label: 'Format', type: 'select', options: ['number','currency','percent','compact'] },
14
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
15
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
16
+
17
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
18
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
19
+ { name: 'height', label: 'Height (px)', type: 'expression' },
20
+ { name: 'barRadius', label: 'Bar Radius', type: 'expression' },
21
+ { name: 'gap', label: 'Gap Between Bars', type: 'expression' },
22
+ { name: 'showValues', label: 'Show Values', type: 'boolean' },
23
+ { name: 'showLabels', label: 'Show Labels', type: 'boolean' },
24
+ { name: 'showPercent', label: 'Show Conversion %', type: 'boolean' },
25
+ ]
@@ -0,0 +1,39 @@
1
+ export const GAUGE_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Reads a numeric value from data[valueKey]. Set min/max to define the scale.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "cpuUsage": 72 }\n→ valueKey: "cpuUsage", min: 0, max: 100\n\n{ "temperature": 38.5 }\n→ valueKey: "temperature", min: 0, max: 50\n format: "number", suffix: "°C"',
6
+ },
7
+ { name: 'valueKey', label: 'Value Key', type: 'expression' },
8
+ { name: 'min', label: 'Min', type: 'expression' },
9
+ { name: 'max', label: 'Max', type: 'expression' },
10
+ { name: 'label', label: 'Label', type: 'expression' },
11
+ { name: 'sublabel', label: 'Sub-label', type: 'expression' },
12
+
13
+ { name: 'fmt_note', type: 'note', label: 'Format' },
14
+ { name: 'format', label: 'Format', type: 'select', options: ['number','currency','percent','compact','bytes','duration'] },
15
+ { name: 'decimals', label: 'Decimals', type: 'expression' },
16
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
17
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
18
+
19
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
20
+ { name: 'size', label: 'Size (px)', type: 'expression' },
21
+ { name: 'strokeWidth', label: 'Track Width', type: 'expression' },
22
+ { name: 'color', label: 'Arc Color', type: 'expression', placeholder: 'Overridden by thresholds' },
23
+ { name: 'trackColor', label: 'Track Color', type: 'expression' },
24
+ { name: 'showValue', label: 'Show Value', type: 'boolean' },
25
+ { name: 'showMinMax', label: 'Show Min/Max', type: 'boolean' },
26
+ { name: 'needleMode', label: 'Needle Mode', type: 'boolean' },
27
+
28
+ { name: 'label_style_note', type: 'note', label: 'Label Style', text: 'Label renders inside the SVG arc. Font size is relative to gauge size when left blank.' },
29
+ { name: 'labelFontSize', label: 'Label Font Size (px)', type: 'expression', placeholder: 'Default: proportional to size' },
30
+ { name: 'labelFontWeight', label: 'Label Font Weight', type: 'select', options: ['normal','300','400','500','600','700','800'] },
31
+ { name: 'labelColor', label: 'Label Color', type: 'expression', placeholder: 'e.g. #888 or #333' },
32
+
33
+ { name: 'sublabel_style_note', type: 'note', label: 'Sub-label Style', text: 'Sub-label renders below the SVG.' },
34
+ { name: 'sublabelFontSize', label: 'Sub-label Font Size', type: 'expression' },
35
+ { name: 'sublabelFontWeight', label: 'Sub-label Font Weight', type: 'select', options: ['300','400','500','600','700','800'] },
36
+ { name: 'sublabelColor', label: 'Sub-label Color', type: 'expression', placeholder: 'e.g. text.secondary or #999' },
37
+
38
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
39
+ ]
@@ -0,0 +1,96 @@
1
+ export const HEATMAP_GRID_FIELDS = [
2
+ {
3
+ name: 'data_note', type: 'note', label: 'Data',
4
+ text: 'Three layout modes:\n\n① Flat wrap — flat array + cols to wrap into rows.\n② Row/col fields — each item has rowField + colField; renderer groups them into a matrix.\n③ Single-row strip — no cols/row fields.',
5
+ },
6
+ {
7
+ name: 'ex_calendar', type: 'note', label: 'Example — activity calendar (flat wrap)',
8
+ text: '[\n { "label": "Mon W1", "value": 8 },\n { "label": "Tue W1", "value": 31 },\n ... (28 items total)\n]\n→ dataKey: "activity" cols: 7\n colLabels: ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]\n rowLabels: ["W1","W2","W3","W4"]\n showRowLabels: true showColLabels: true colLabelPosition: bottom\n colorMode: gradient colorSchema: tints of green\n showLegend: true legendPosition: top',
9
+ },
10
+ {
11
+ name: 'ex_matrix', type: 'note', label: 'Example — matrix with row × col fields',
12
+ text: '[\n { "row": "January", "col": "London", "value": 42 },\n { "row": "January", "col": "Paris", "value": 38 },\n ...\n]\n→ dataKey: "salesMatrix"\n rowField: "row" colField: "col"\n showRowLabels: true rowLabelWidth: 80\n showColLabels: true colLabelPosition: bottom\n colorMode: gradient fillWidth: true\n showLegend: true legendPosition: top\n gap: 1 cellHeight: 36',
13
+ },
14
+ {
15
+ name: 'ex_rag', type: 'note', label: 'Example — RAG status grid (threshold mode)',
16
+ text: '[\n { "label": "Service A", "value": 97 },\n { "label": "Service B", "value": 43 },\n { "label": "Service C", "value": 12 }\n]\n→ colorMode: threshold\n Thresholds: < 50 → error, < 80 → warning, ≥ 80 → success\n cellShape: circle cellSize: 20 fillWidth: false\n gap: 4 showLegend: true showTooltip: true',
17
+ },
18
+
19
+ { name: 'dataKey', label: 'Data Key', type: 'expression' },
20
+ { name: 'valueField', label: 'Value Field', type: 'expression', placeholder: 'default: value' },
21
+ { name: 'labelField', label: 'Label Field', type: 'expression', placeholder: 'default: label (shown in tooltip)' },
22
+
23
+ { name: 'layout_note', type: 'note', label: 'Grid Layout' },
24
+ { name: 'cols', label: 'Columns (flat-wrap)', type: 'expression', placeholder: 'e.g. 7 → 7 cells per row' },
25
+ { name: 'rowField', label: 'Row Field', type: 'expression', placeholder: 'default: row' },
26
+ { name: 'colField', label: 'Col Field', type: 'expression', placeholder: 'default: col' },
27
+ {
28
+ name: 'fillWidth', label: 'Fill Width', type: 'boolean',
29
+ },
30
+ { name: 'cellHeight', label: 'Cell Height (px)', type: 'expression', placeholder: 'default: 32' },
31
+ { name: 'cellSize', label: 'Cell Size (px)', type: 'expression', placeholder: 'Used when Fill Width is off (default: 24)' },
32
+ { name: 'gap', label: 'Gap / Separator (px)', type: 'expression', placeholder: 'default: 1 (shows as grid lines)' },
33
+ { name: 'separatorColor', label: 'Separator Color', type: 'expression', placeholder: 'default: divider (MUI color or hex)' },
34
+
35
+ { name: 'cell_note', type: 'note', label: 'Cell Appearance' },
36
+ { name: 'cellShape', label: 'Cell Shape', type: 'select', options: ['square', 'rounded', 'circle'] },
37
+ { name: 'borderRadius', label: 'Border Radius', type: 'expression', placeholder: 'rounded shape only' },
38
+
39
+ { name: 'row_label_note', type: 'note', label: 'Row Labels (Left)' },
40
+ { name: 'showRowLabels', label: 'Show Row Labels', type: 'boolean' },
41
+ {
42
+ name: 'rowLabels', label: 'Row Labels (static)', type: 'expression',
43
+ placeholder: '["Jan","Feb","Mar",...] — overrides data-driven',
44
+ },
45
+ { name: 'rowLabelField', label: 'Row Label Field', type: 'expression', placeholder: 'field on item (defaults to rowField)' },
46
+ { name: 'rowLabelWidth', label: 'Row Label Width (px)', type: 'expression', placeholder: 'default: 70' },
47
+ { name: 'rowLabelAlign', label: 'Row Label Align', type: 'select', options: ['right', 'left', 'center'] },
48
+
49
+ { name: 'col_label_note', type: 'note', label: 'Col Labels' },
50
+ { name: 'showColLabels', label: 'Show Col Labels', type: 'boolean' },
51
+ { name: 'colLabelPosition', label: 'Col Label Position', type: 'select', options: ['bottom', 'top'] },
52
+ {
53
+ name: 'colLabels', label: 'Col Labels (static)', type: 'expression',
54
+ placeholder: '["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]',
55
+ },
56
+ { name: 'colLabelField', label: 'Col Label Field', type: 'expression', placeholder: 'field on item (defaults to colField)' },
57
+
58
+ { name: 'axis_style_note', type: 'note', label: 'Axis Label Style' },
59
+ { name: 'axisLabelFontSize', label: 'Font Size', type: 'expression', placeholder: 'default: 11' },
60
+ { name: 'axisLabelColor', label: 'Color', type: 'expression', placeholder: 'default: text.secondary' },
61
+
62
+ { name: 'fmt_note', type: 'note', label: 'Format' },
63
+ { name: 'format', label: 'Format', type: 'select', options: ['number','currency','percent','compact'] },
64
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
65
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
66
+
67
+ {
68
+ name: 'color_note', type: 'note', label: 'Coloring',
69
+ text: '"gradient" → value-mapped interpolation through Color Schema stops.\n"threshold" → zone colors; schema fills zones without an explicit threshold color.\n"schema" → each cell colored by palette index (categorical / position-based).',
70
+ },
71
+ { name: 'colorMode', label: 'Color Mode', type: 'select', options: ['gradient', 'threshold', 'schema'] },
72
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
73
+ { name: 'emptyColor', label: 'Empty Cell Color', type: 'expression', placeholder: 'default: #f5f5f5' },
74
+ { name: 'minValue', label: 'Min Override', type: 'expression', placeholder: 'Auto-detected from data' },
75
+ { name: 'maxValue', label: 'Max Override', type: 'expression', placeholder: 'Auto-detected from data' },
76
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
77
+
78
+ { name: 'display_note', type: 'note', label: 'Display' },
79
+ { name: 'showValues', label: 'Show Values', type: 'boolean' },
80
+ { name: 'showTooltip', label: 'Show Tooltip', type: 'boolean' },
81
+ {
82
+ name: 'legend_note', type: 'note', label: 'Legend',
83
+ text: 'Gradient mode → color scale bar with min/max values.\nThreshold mode → color swatches with labels.',
84
+ },
85
+ { name: 'showLegend', label: 'Show Legend', type: 'boolean' },
86
+ { name: 'legendPosition', label: 'Legend Position', type: 'select', options: ['top', 'bottom'] },
87
+
88
+ {
89
+ name: 'actions_note', type: 'note', label: 'Actions',
90
+ text: 'Fires when a user clicks a cell. Available in the action:\n clickedItem — the full data item\n clickedValue — numeric cell value\n clickedLabel — label field value\n clickedRow — row label (e.g. "Mon")\n clickedCol — col label (e.g. "12:00")\n clickedRowIndex — row position\n clickedColIndex — col position',
91
+ },
92
+ {
93
+ name: 'onCellClick', type: 'kpi-action', label: 'On Cell Click',
94
+ context: ['clickedItem', 'clickedValue', 'clickedLabel', 'clickedRow', 'clickedCol', 'clickedRowIndex', 'clickedColIndex'],
95
+ },
96
+ ]
@@ -0,0 +1,20 @@
1
+ export const ICON_BOX_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Optional: bind valueKey to drive threshold-based color changes.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "errorCount": 5 }\n→ valueKey: "errorCount"\n threshold "> 0" → color: error\n (icon stays fixed; only bg/color changes)',
6
+ },
7
+ { name: 'valueKey', label: 'Value Key (for threshold)', type: 'expression' },
8
+
9
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
10
+ { name: 'icon', label: 'Icon Name', type: 'expression', placeholder: 'e.g. StarOutlined, TrendingUpOutlined' },
11
+ { name: 'size', label: 'Box Size (px)', type: 'expression' },
12
+ { name: 'iconSize', label: 'Icon Size (px)', type: 'expression' },
13
+ { name: 'borderRadius', label: 'Border Radius', type: 'expression' },
14
+ { name: 'iconColor', label: 'Icon Color', type: 'expression', placeholder: 'Override threshold color' },
15
+ { name: 'bgColor', label: 'Background', type: 'expression', placeholder: 'Override threshold bg' },
16
+ { name: 'shadow', label: 'Glow Shadow', type: 'boolean' },
17
+ { name: 'align', label: 'Align', type: 'select', options: ['left','center','right'] },
18
+
19
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
20
+ ]
@@ -0,0 +1,45 @@
1
+ export const METRIC_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Value Key accepts a data key string OR any expression that returns a number directly.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Value Key — two modes',
5
+ text: 'Key lookup (string):\n "revenue" → uses data["revenue"]\n\nDirect expression (returns a value):\n data.price * data.qty\n data.revenue - data.cost\n 42\n data.a + data.b\n\nBoth modes work — if the expression\nreturns a non-string, it is used as-is.',
6
+ },
7
+ { name: 'valueKey', label: 'Value Key', type: 'expression' },
8
+ { name: 'label', label: 'Label', type: 'expression' },
9
+ { name: 'sublabel', label: 'Sub-label', type: 'expression' },
10
+
11
+ { name: 'fmt_note', type: 'note', label: 'Format', text: 'format: number | currency | percent | compact | bytes | duration' },
12
+ { name: 'format', label: 'Format', type: 'select', options: ['number','currency','percent','compact','bytes','duration'] },
13
+ { name: 'decimals', label: 'Decimals', type: 'expression' },
14
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
15
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
16
+ { name: 'currency', label: 'Currency Code', type: 'expression' },
17
+ { name: 'asRatio', label: 'Percent is 0–1 ratio', type: 'boolean' },
18
+
19
+ { name: 'appearance_note', type: 'note', label: 'Value Appearance' },
20
+ { name: 'fontSize', label: 'Value Font Size', type: 'expression' },
21
+ { name: 'fontWeight', label: 'Value Font Weight', type: 'select', options: ['400','500','600','700','800','900'] },
22
+ { name: 'align', label: 'Align', type: 'select', options: ['left','center','right'] },
23
+ { name: 'labelPosition', label: 'Label Position', type: 'select', options: ['above','below'] },
24
+
25
+ { name: 'label_style_note', type: 'note', label: 'Label Style' },
26
+ { name: 'labelFontSize', label: 'Label Font Size', type: 'expression' },
27
+ { name: 'labelFontWeight', label: 'Label Font Weight', type: 'select', options: ['300','400','500','600','700','800'] },
28
+ { name: 'labelColor', label: 'Label Color', type: 'expression', placeholder: 'e.g. text.secondary or #555' },
29
+
30
+ { name: 'sublabel_style_note', type: 'note', label: 'Sub-label Style' },
31
+ { name: 'sublabelFontSize', label: 'Sub-label Font Size', type: 'expression' },
32
+ { name: 'sublabelFontWeight', label: 'Sub-label Font Weight', type: 'select', options: ['300','400','500','600','700','800'] },
33
+ { name: 'sublabelColor', label: 'Sub-label Color', type: 'expression', placeholder: 'e.g. text.disabled or #999' },
34
+
35
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
36
+
37
+ {
38
+ name: 'actions_note', type: 'note', label: 'Actions',
39
+ text: 'Fires when a user clicks the metric. Available in the action:\n clickedValue — the current displayed value',
40
+ },
41
+ {
42
+ name: 'onClick', type: 'kpi-action', label: 'On Click',
43
+ context: ['clickedValue'],
44
+ },
45
+ ]