robobyte-front-builder 1.0.19 → 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 (513) 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 +61 -7
  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 +8 -6
  21. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +33 -22
  22. package/src/pages/reportModule/reportBuilder/reports/index.js +3 -5
  23. package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +2 -3
  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 +5 -9
  49. package/src/services/reportData/fetchReportData.js +69 -28
  50. package/src/services/routerRef.js +35 -0
  51. package/src/views/ConfirmDialog.js +2 -2
  52. package/src/views/builder/JSEditor.js +105 -107
  53. package/src/views/builder/inspector/Inspector.jsx +6 -9
  54. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
  55. package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
  56. package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
  57. package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
  58. package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
  59. package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
  60. package/src/views/builder/inspector/definitions/banner/main.js +22 -0
  61. package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
  62. package/src/views/builder/inspector/definitions/banner/style.js +1 -0
  63. package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
  64. package/src/views/builder/inspector/definitions/button/main.js +11 -12
  65. package/src/views/builder/inspector/definitions/button/style.js +18 -30
  66. package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
  67. package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
  68. package/src/views/builder/inspector/definitions/common/main.js +13 -2
  69. package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
  70. package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
  71. package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
  72. package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
  73. package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
  74. package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
  75. package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
  76. package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
  77. package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
  78. package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
  79. package/src/views/builder/inspector/definitions/header/main.js +10 -1
  80. package/src/views/builder/inspector/definitions/index.js +106 -19
  81. package/src/views/builder/inspector/definitions/input/actions.js +4 -1
  82. package/src/views/builder/inspector/definitions/input/main.js +20 -11
  83. package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
  84. package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
  85. package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
  86. package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
  87. package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
  88. package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
  89. package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
  90. package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
  91. package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
  92. package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
  93. package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
  94. package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
  95. package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
  96. package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
  97. package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
  98. package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
  99. package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
  100. package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
  101. package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
  102. package/src/views/builder/inspector/definitions/label/main.js +10 -1
  103. package/src/views/builder/inspector/definitions/layout/main.js +27 -3
  104. package/src/views/builder/inspector/definitions/number/main.js +6 -14
  105. package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
  106. package/src/views/builder/inspector/definitions/popover/main.js +71 -0
  107. package/src/views/builder/inspector/definitions/radio/main.js +5 -8
  108. package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
  109. package/src/views/builder/inspector/definitions/reportViewer/main.js +15 -1
  110. package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
  111. package/src/views/builder/inspector/definitions/signature/main.js +4 -1
  112. package/src/views/builder/inspector/definitions/tag/main.js +5 -8
  113. package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
  114. package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
  115. package/src/views/builder/inspector/definitions/time/main.js +5 -8
  116. package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
  117. package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
  118. package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
  119. package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
  120. package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
  121. package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
  122. package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
  123. package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
  124. package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
  125. package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
  126. package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
  127. package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
  128. package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
  129. package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
  130. package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
  131. package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
  132. package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
  133. package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
  134. package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
  135. package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
  136. package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
  137. package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
  138. package/src/views/builder/sidebar/Sidebar.jsx +4 -2
  139. package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
  140. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
  141. package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
  142. package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +49 -0
  143. package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
  144. package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +102 -0
  145. package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
  146. package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
  147. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
  148. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
  149. package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
  150. package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
  151. package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
  152. package/src/views/builder/sidebar/tabs/ViewTab.jsx +1 -1
  153. package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
  154. package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
  155. package/src/views/builder/viewer/DialogsZone.jsx +259 -0
  156. package/src/views/builder/viewer/FieldLabel.jsx +106 -0
  157. package/src/views/builder/viewer/PrintDialog.jsx +481 -0
  158. package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
  159. package/src/views/builder/viewer/Viewer.jsx +106 -8
  160. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +61 -4
  161. package/src/views/builder/viewer/ViewerToolbar.jsx +273 -59
  162. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
  163. package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
  164. package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
  165. package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
  166. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
  167. package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
  168. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
  169. package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
  170. package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
  171. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
  172. package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
  173. package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
  174. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
  175. package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
  176. package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
  177. package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
  178. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
  179. package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
  180. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
  181. package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
  182. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
  183. package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
  184. package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
  185. package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
  186. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
  187. package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
  188. package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
  189. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
  190. package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
  191. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
  192. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
  193. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
  194. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
  195. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
  196. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
  197. package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
  198. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
  199. package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
  200. package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
  201. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
  202. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
  203. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
  204. package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
  205. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
  206. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +219 -5
  207. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
  208. package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
  209. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
  210. package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
  211. package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
  212. package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
  213. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
  214. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
  215. package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
  216. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
  217. package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
  218. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
  219. package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
  220. package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
  221. package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
  222. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
  223. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
  224. package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
  225. package/src/views/customFilter/CustomFilterDialog.js +1023 -660
  226. package/src/views/customFilter/FixedFilterDialog.js +649 -0
  227. package/src/views/customFilter/SearchFilterDialog.js +248 -0
  228. package/src/views/genericTable/BuilderExpressionParams.js +3 -3
  229. package/src/views/genericTable/ColumnConfiguratorDialog.js +33 -24
  230. package/src/views/genericTable/FixedFilterDialog.js +3 -2
  231. package/src/views/genericTable/FormattingSettingsDialog.js +8 -3
  232. package/src/views/genericTable/SGrid.js +198 -97
  233. package/src/views/genericTable/SearchFilterDialog.js +3 -2
  234. package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
  235. package/src/views/genericTable/convertStringFunctions.js +274 -138
  236. package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
  237. package/src/views/genericTable/updateRefHelpers.js +9 -6
  238. package/src/views/printBuilder/PrintBuilderViewer.jsx +607 -0
  239. package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
  240. package/src/views/rolePermissions/UpdateReportPermissionDialog.js +3 -2
  241. package/src/@core/components/auth/AclGuard.js +0 -55
  242. package/src/@core/components/auth/AuthGuard.js +0 -40
  243. package/src/@core/components/auth/GuestGuard.js +0 -30
  244. package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
  245. package/src/@core/components/custom-inputs/Image.jsx +0 -78
  246. package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
  247. package/src/@core/components/customizer/index.jsx +0 -470
  248. package/src/@core/components/customizer/styles.module.css +0 -169
  249. package/src/@core/components/mui/Avatar.jsx +0 -41
  250. package/src/@core/components/mui/Badge.jsx +0 -20
  251. package/src/@core/components/mui/IconButton.jsx +0 -74
  252. package/src/@core/components/mui/TabList.jsx +0 -60
  253. package/src/@core/components/option-menu/index.jsx +0 -137
  254. package/src/@core/components/scroll-to-top/index.jsx +0 -43
  255. package/src/@core/components/spinner/index.js +0 -26
  256. package/src/@core/components/window-wrapper/index.js +0 -27
  257. package/src/@core/contexts/settingsContext.jsx +0 -98
  258. package/src/@core/hooks/useBgColor.js +0 -63
  259. package/src/@core/hooks/useImageVariant.js +0 -27
  260. package/src/@core/hooks/useLayoutInit.js +0 -37
  261. package/src/@core/hooks/useObjectCookie.js +0 -18
  262. package/src/@core/hooks/useSettings.jsx +0 -15
  263. package/src/@core/layouts/BlankLayout.js +0 -37
  264. package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
  265. package/src/@core/layouts/HorizontalLayout.jsx +0 -151
  266. package/src/@core/layouts/Layout.js +0 -39
  267. package/src/@core/layouts/VerticalLayout.jsx +0 -124
  268. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
  269. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
  270. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
  271. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
  272. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
  273. package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
  274. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
  275. package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
  276. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
  277. package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
  278. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
  279. package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
  280. package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
  281. package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
  282. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
  283. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
  284. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
  285. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
  286. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
  287. package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
  288. package/src/@core/layouts/utils.js +0 -69
  289. package/src/@core/styles/Table.module.css +0 -93
  290. package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
  291. package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
  292. package/src/@core/styles/libs/fullcalendar/index.js +0 -461
  293. package/src/@core/styles/libs/keen-slider/index.js +0 -111
  294. package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
  295. package/src/@core/styles/libs/react-cleave/index.js +0 -33
  296. package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
  297. package/src/@core/styles/libs/react-datepicker/index.js +0 -388
  298. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
  299. package/src/@core/styles/libs/react-dropzone/index.js +0 -76
  300. package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
  301. package/src/@core/styles/libs/recharts/index.js +0 -47
  302. package/src/@core/styles/stepper.js +0 -103
  303. package/src/@core/styles/vertical/menuItemStyles.js +0 -138
  304. package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
  305. package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
  306. package/src/@core/svg/ContentCompact.jsx +0 -17
  307. package/src/@core/svg/ContentWide.jsx +0 -17
  308. package/src/@core/svg/DirectionLtr.jsx +0 -93
  309. package/src/@core/svg/DirectionRtl.jsx +0 -93
  310. package/src/@core/svg/LayoutCollapsed.jsx +0 -59
  311. package/src/@core/svg/LayoutHorizontal.jsx +0 -42
  312. package/src/@core/svg/LayoutVertical.jsx +0 -59
  313. package/src/@core/svg/Logo.jsx +0 -76
  314. package/src/@core/svg/SkinBordered.jsx +0 -54
  315. package/src/@core/svg/SkinDefault.jsx +0 -59
  316. package/src/@core/tailwind/plugin.js +0 -78
  317. package/src/@core/theme/ThemeComponent.js +0 -63
  318. package/src/@core/theme/ThemeOptions.js +0 -71
  319. package/src/@core/theme/breakpoints/index.js +0 -11
  320. package/src/@core/theme/colorSchemes.js +0 -326
  321. package/src/@core/theme/customShadows.js +0 -11
  322. package/src/@core/theme/globalStyles.js +0 -81
  323. package/src/@core/theme/index.js +0 -42
  324. package/src/@core/theme/overrides/accordion.js +0 -51
  325. package/src/@core/theme/overrides/accordion.jsx +0 -85
  326. package/src/@core/theme/overrides/alerts.js +0 -110
  327. package/src/@core/theme/overrides/alerts.jsx +0 -180
  328. package/src/@core/theme/overrides/autocomplete.js +0 -14
  329. package/src/@core/theme/overrides/autocomplete.jsx +0 -68
  330. package/src/@core/theme/overrides/avatar.js +0 -38
  331. package/src/@core/theme/overrides/avatars.js +0 -27
  332. package/src/@core/theme/overrides/backdrop.js +0 -22
  333. package/src/@core/theme/overrides/badges.js +0 -16
  334. package/src/@core/theme/overrides/breadcrumbs.js +0 -11
  335. package/src/@core/theme/overrides/button-group.js +0 -84
  336. package/src/@core/theme/overrides/button.js +0 -93
  337. package/src/@core/theme/overrides/buttonGroup.js +0 -9
  338. package/src/@core/theme/overrides/card.js +0 -83
  339. package/src/@core/theme/overrides/checkbox.jsx +0 -95
  340. package/src/@core/theme/overrides/chip.js +0 -72
  341. package/src/@core/theme/overrides/dataGrid.js +0 -114
  342. package/src/@core/theme/overrides/dateTimePicker.js +0 -65
  343. package/src/@core/theme/overrides/dialog.js +0 -120
  344. package/src/@core/theme/overrides/divider.js +0 -13
  345. package/src/@core/theme/overrides/drawer.js +0 -20
  346. package/src/@core/theme/overrides/fab.js +0 -13
  347. package/src/@core/theme/overrides/form-control-label.js +0 -19
  348. package/src/@core/theme/overrides/icon-button.js +0 -145
  349. package/src/@core/theme/overrides/index.js +0 -103
  350. package/src/@core/theme/overrides/input.js +0 -72
  351. package/src/@core/theme/overrides/link.js +0 -9
  352. package/src/@core/theme/overrides/list.js +0 -44
  353. package/src/@core/theme/overrides/menu.js +0 -25
  354. package/src/@core/theme/overrides/pagination.js +0 -41
  355. package/src/@core/theme/overrides/paper.js +0 -9
  356. package/src/@core/theme/overrides/popover.js +0 -16
  357. package/src/@core/theme/overrides/progress.js +0 -38
  358. package/src/@core/theme/overrides/radio.jsx +0 -80
  359. package/src/@core/theme/overrides/rating.js +0 -16
  360. package/src/@core/theme/overrides/rating.jsx +0 -32
  361. package/src/@core/theme/overrides/select.js +0 -19
  362. package/src/@core/theme/overrides/select.jsx +0 -52
  363. package/src/@core/theme/overrides/slider.js +0 -97
  364. package/src/@core/theme/overrides/snackbar.js +0 -19
  365. package/src/@core/theme/overrides/switch.js +0 -73
  366. package/src/@core/theme/overrides/switches.js +0 -25
  367. package/src/@core/theme/overrides/table-pagination.js +0 -39
  368. package/src/@core/theme/overrides/table.js +0 -81
  369. package/src/@core/theme/overrides/tabs.js +0 -30
  370. package/src/@core/theme/overrides/timeline.js +0 -80
  371. package/src/@core/theme/overrides/toggle-button.js +0 -33
  372. package/src/@core/theme/overrides/toggleButton.js +0 -16
  373. package/src/@core/theme/overrides/tooltip.js +0 -21
  374. package/src/@core/theme/overrides/typography.js +0 -13
  375. package/src/@core/theme/palette/index.js +0 -107
  376. package/src/@core/theme/shadows/index.js +0 -61
  377. package/src/@core/theme/shadows.js +0 -12
  378. package/src/@core/theme/spacing/index.js +0 -3
  379. package/src/@core/theme/spacing.js +0 -5
  380. package/src/@core/theme/typography/index.js +0 -65
  381. package/src/@core/theme/typography.js +0 -84
  382. package/src/@core/utils/create-emotion-cache.js +0 -5
  383. package/src/@core/utils/hex-to-rgba.js +0 -11
  384. package/src/@core/utils/serverHelpers.js +0 -45
  385. package/src/@menu/components/RouterLink.jsx +0 -18
  386. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
  387. package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
  388. package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
  389. package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
  390. package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
  391. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
  392. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
  393. package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
  394. package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
  395. package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
  396. package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
  397. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
  398. package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
  399. package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
  400. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
  401. package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
  402. package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
  403. package/src/@menu/contexts/verticalNavContext.jsx +0 -65
  404. package/src/@menu/defaultConfigs.js +0 -12
  405. package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
  406. package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
  407. package/src/@menu/hooks/useMediaQuery.jsx +0 -29
  408. package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
  409. package/src/@menu/hooks/useVerticalNav.jsx +0 -19
  410. package/src/@menu/horizontal-menu/index.jsx +0 -8
  411. package/src/@menu/styles/StyledBackdrop.jsx +0 -15
  412. package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
  413. package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
  414. package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
  415. package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
  416. package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
  417. package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
  418. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
  419. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
  420. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
  421. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
  422. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
  423. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
  424. package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
  425. package/src/@menu/styles/styles.module.css +0 -5
  426. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
  427. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
  428. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
  429. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
  430. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
  431. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
  432. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
  433. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
  434. package/src/@menu/svg/ChevronRight.jsx +0 -9
  435. package/src/@menu/svg/Close.jsx +0 -12
  436. package/src/@menu/svg/RadioCircle.jsx +0 -12
  437. package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
  438. package/src/@menu/utils/menuClasses.js +0 -44
  439. package/src/@menu/utils/menuUtils.jsx +0 -145
  440. package/src/@menu/vertical-menu/index.jsx +0 -11
  441. package/src/configs/acl.js +0 -115
  442. package/src/configs/auth.js +0 -5
  443. package/src/configs/aws-exports.js +0 -30
  444. package/src/configs/firebase.js +0 -25
  445. package/src/configs/i18n.js +0 -34
  446. package/src/configs/primaryColorConfig.js +0 -35
  447. package/src/configs/themeConfig.js +0 -44
  448. package/src/layouts/UserLayout.js +0 -94
  449. package/src/layouts/UserThemeOptions.js +0 -191
  450. package/src/layouts/components/Direction.js +0 -30
  451. package/src/layouts/components/HtmlTooltip.js +0 -15
  452. package/src/layouts/components/Translations.js +0 -11
  453. package/src/layouts/components/UserDropdown.js +0 -217
  454. package/src/layouts/components/UserIcon.js +0 -40
  455. package/src/layouts/components/acl/Can.js +0 -6
  456. package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
  457. package/src/layouts/components/acl/CanViewNavLink.js +0 -17
  458. package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
  459. package/src/layouts/components/horizontal/AppBarContent.js +0 -39
  460. package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
  461. package/src/layouts/components/mui/StepperComps.js +0 -55
  462. package/src/layouts/components/vertical/AppBarContent.js +0 -35
  463. package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
  464. package/src/libs/ApexCharts.jsx +0 -5
  465. package/src/libs/ReactPlayer.jsx +0 -5
  466. package/src/libs/Recharts.jsx +0 -4
  467. package/src/libs/auth.js +0 -124
  468. package/src/libs/styles/AppFullCalendar.js +0 -505
  469. package/src/libs/styles/AppKeenSlider.js +0 -116
  470. package/src/libs/styles/AppReactApexCharts.jsx +0 -110
  471. package/src/libs/styles/AppReactDatepicker.jsx +0 -470
  472. package/src/libs/styles/AppReactDropzone.js +0 -76
  473. package/src/libs/styles/AppReactToastify.jsx +0 -108
  474. package/src/libs/styles/AppRecharts.js +0 -55
  475. package/src/libs/styles/inputOtp.module.css +0 -39
  476. package/src/libs/styles/tiptapEditor.css +0 -72
  477. package/src/navigation/horizontal/index.js +0 -246
  478. package/src/navigation/vertical/index.js +0 -253
  479. package/src/pages/401.js +0 -70
  480. package/src/pages/404.js +0 -67
  481. package/src/pages/500.js +0 -68
  482. package/src/pages/[slug].js +0 -115
  483. package/src/pages/_document.js +0 -72
  484. package/src/pages/api/navigation/regenerate-registry.js +0 -116
  485. package/src/pages/api/navigation/save.js +0 -218
  486. package/src/pages/authModule/acl/index.js +0 -48
  487. package/src/pages/authModule/forgot-password/index.js +0 -228
  488. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
  489. package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
  490. package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
  491. package/src/pages/authModule/privacy/index.js +0 -721
  492. package/src/pages/authModule/users/index.js +0 -210
  493. package/src/pages/login/index.js +0 -328
  494. package/src/pages/mainHome/index.js +0 -181
  495. package/src/views/builder/inspector/definitions/cell/main.js +0 -4
  496. package/src/views/builder/inspector/definitions/column/main.js +0 -9
  497. package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
  498. package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
  499. package/src/views/builder/inspector/definitions/table/main.js +0 -9
  500. package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
  501. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
  502. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
  503. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
  504. package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
  505. package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
  506. package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
  507. package/src/views/pages/misc/FooterIllustrations.js +0 -47
  508. package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
  509. package/src/views/pages/users/UserManageDialog.js +0 -283
  510. package/src/views/pages/users/UserViewPage.js +0 -199
  511. package/src/views/users/AddUserNameDialog.js +0 -162
  512. package/src/views/users/ContactManage.js +0 -449
  513. package/src/views/users/ResetPasswordDialog.js +0 -242
@@ -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
+ ]
@@ -0,0 +1,27 @@
1
+ export const RATING_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Reads and writes the rating value from data[valueKey]. Set readonly to display only.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "productRating": 4 }\n→ valueKey: "productRating", max: 5\n\nInteractive mode: clicking a star writes\nthe new value back to data[valueKey]\nand fires onChangeCode.\n\nReadonly mode: just displays the value.',
6
+ },
7
+ { name: 'valueKey', label: 'Value Key', type: 'expression' },
8
+
9
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
10
+ { name: 'max', label: 'Max Rating', type: 'expression' },
11
+ { name: 'icon', label: 'Icon', type: 'select', options: ['star','heart','circle','square'] },
12
+ { name: 'color', label: 'Active Color', type: 'expression' },
13
+ { name: 'emptyColor', label: 'Empty Color', type: 'expression' },
14
+ { name: 'size', label: 'Icon Size (px)', type: 'expression' },
15
+ { name: 'gap', label: 'Gap (px)', type: 'expression' },
16
+ { name: 'align', label: 'Align', type: 'select', options: ['left','center','right'] },
17
+ { name: 'readonly', label: 'Read Only', type: 'boolean' },
18
+
19
+ {
20
+ name: 'actions_note', type: 'note', label: 'Actions',
21
+ text: 'Fires when a user selects a rating. The new value is automatically written to data[valueKey] before the action runs. Available in the action:\n newValue — the new star rating (number)\n clickedValue — alias for newValue',
22
+ },
23
+ {
24
+ name: 'onChange', type: 'kpi-action', label: 'On Rating Change',
25
+ context: ['newValue', 'clickedValue'],
26
+ },
27
+ ]
@@ -0,0 +1,18 @@
1
+ export const STATUS_DOT_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Reads value from data[valueKey]. Use thresholds to map values to dot colors.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "serverStatus": "online" }\n{ "alertLevel": 2 }\n→ valueKey: "serverStatus"\n threshold "== online" → color: success',
6
+ },
7
+ { name: 'valueKey', label: 'Value Key', type: 'expression' },
8
+ { name: 'label', label: 'Static Label', type: 'expression' },
9
+
10
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
11
+ { name: 'size', label: 'Dot Size (px)', type: 'expression' },
12
+ { name: 'pulse', label: 'Pulse Animation', type: 'boolean' },
13
+ { name: 'showLabel', label: 'Show Label', type: 'boolean' },
14
+ { name: 'labelPosition', label: 'Label Position', type: 'select', options: ['right','left','above','below'] },
15
+ { name: 'align', label: 'Align', type: 'select', options: ['left','center','right'] },
16
+
17
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
18
+ ]
@@ -0,0 +1,65 @@
1
+ export const STEP_STAGE_FIELDS = [
2
+ {
3
+ name: 'data_note', type: 'note', label: 'Data',
4
+ text: 'Bind dataKey to an array of step objects.\n\nTwo ways to mark progress:\n① Status field — set a "status" string on each step (see keywords below).\n② Active key — point activeKey to a data value (index or id); steps before it are "done", matching step is "active", rest are "pending".',
5
+ },
6
+ {
7
+ name: 'data_example', type: 'note', label: 'Expected data shape',
8
+ text: '[\n { "id": 1, "label": "Placed", "status": "done", "description": "Jan 10, 2025" },\n { "id": 2, "label": "Processing", "status": "done", "description": "Jan 11, 2025" },\n { "id": 3, "label": "Shipped", "status": "active", "description": "Est. Jan 15" },\n { "id": 4, "label": "Out for delivery", "status": "pending" },\n { "id": 5, "label": "Delivered", "status": "pending" }\n]\n\nBuilt-in status keywords:\n done / success / completed / approved / closed / resolved / delivered / shipped / paid\n active / current / in-progress / running / processing / open\n warning / at-risk / delayed / on-hold\n error / failed / rejected / cancelled / blocked\n pending / todo / future / upcoming / planned / queued',
9
+ },
10
+
11
+ { name: 'dataKey', label: 'Steps Data Key', type: 'expression' },
12
+ { name: 'activeKey', label: 'Active Value Key', type: 'expression', placeholder: 'data key holding current step index or id' },
13
+ { name: 'labelField', label: 'Label Field', type: 'expression', placeholder: 'default: label' },
14
+ { name: 'statusField', label: 'Status Field', type: 'expression', placeholder: 'default: status' },
15
+ { name: 'descField', label: 'Description Field', type: 'expression', placeholder: 'optional — shown below label' },
16
+ { name: 'iconField', label: 'Icon Field', type: 'expression', placeholder: 'optional — emoji/char inside dot' },
17
+ { name: 'idField', label: 'ID Field', type: 'expression', placeholder: 'default: id (used with activeKey)' },
18
+ { name: 'maxItems', label: 'Max Items', type: 'expression' },
19
+
20
+ { name: 'layout_note', type: 'note', label: 'Layout' },
21
+ { name: 'orientation', label: 'Orientation', type: 'select', options: ['horizontal', 'vertical'] },
22
+ { name: 'labelPosition', label: 'Label Position', type: 'select', options: ['below', 'above'] },
23
+
24
+ { name: 'dot_note', type: 'note', label: 'Dot',
25
+ text: '"auto" — done steps show ✓, active shows a pulse ring, errors show ✕, pending renders as an outlined ring.\n"filled" — always solid circle.\n"ring" — always outlined ring, no glyphs.' },
26
+ { name: 'dotStyle', label: 'Dot Style', type: 'select', options: ['auto', 'filled', 'ring'] },
27
+ { name: 'size', label: 'Dot Size (px)', type: 'expression', placeholder: 'default: 28' },
28
+ { name: 'showNumbers', label: 'Show Numbers', type: 'boolean' },
29
+
30
+ { name: 'label_note', type: 'note', label: 'Labels' },
31
+ { name: 'showLabels', label: 'Show Labels', type: 'boolean' },
32
+ { name: 'showDesc', label: 'Show Description', type: 'boolean' },
33
+ { name: 'fontSize', label: 'Font Size', type: 'expression', placeholder: 'default: 12' },
34
+
35
+ { name: 'line_note', type: 'note', label: 'Connector Line' },
36
+ { name: 'lineColor', label: 'Line Color', type: 'expression', placeholder: 'default: #e0e0e0' },
37
+ { name: 'lineStyle', label: 'Line Style', type: 'select', options: ['solid', 'dashed'] },
38
+ { name: 'filledLine', label: 'Filled Line (done→done)', type: 'boolean' },
39
+
40
+ {
41
+ name: 'color_note', type: 'note', label: 'Coloring',
42
+ text: 'Priority: colorMap (explicit status→color) → Color Schema → thresholds → built-in status keywords → active/done/pending colors.',
43
+ },
44
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
45
+ { name: 'activeColor', label: 'Active Color', type: 'expression', placeholder: 'default: #1976d2' },
46
+ { name: 'doneColor', label: 'Done Color', type: 'expression', placeholder: 'default: #4caf50' },
47
+ { name: 'pendingColor', label: 'Pending Color', type: 'expression', placeholder: 'default: #e0e0e0' },
48
+ { name: 'warningColor', label: 'Warning Color', type: 'expression', placeholder: 'default: #ff9800' },
49
+ { name: 'errorColor', label: 'Error Color', type: 'expression', placeholder: 'default: #f44336' },
50
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
51
+ {
52
+ name: 'colormap_note', type: 'note', label: 'Color Map',
53
+ text: 'Map statusField string values to colors or MUI palette keys. Takes highest priority.',
54
+ },
55
+ { name: 'colorMap', label: 'Color Map (JSON)', type: 'expression', placeholder: '{"done":"#4caf50","blocked":"#f44336"}' },
56
+
57
+ {
58
+ name: 'actions_note', type: 'note', label: 'Actions',
59
+ text: 'Fires when a user clicks a step. Available in the action:\n clickedItem — the full step object\n clickedIndex — position in the array (0-based)\n clickedId — the step\'s id field value\n clickedLabel — the step\'s label\n clickedStatus — the step\'s status field value\n\nUse setData to advance the current step:\n setData(prev => ({ ...prev, currentStep: clickedId }))',
60
+ },
61
+ {
62
+ name: 'onStepClick', type: 'kpi-action', label: 'On Step Click',
63
+ context: ['clickedItem', 'clickedIndex', 'clickedId', 'clickedLabel', 'clickedStatus'],
64
+ },
65
+ ]
@@ -0,0 +1,32 @@
1
+ export const TAG_LIST_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Bind dataKey to an array of strings or objects.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: 'Plain strings:\n{ "skills": ["React", "Node.js", "GraphQL"] }\n→ dataKey: "skills"\n\nObjects:\n{ "tags": [\n { "label": "Urgent", "color": "#e53935" },\n { "label": "Bug", "color": "#fb8c00" }\n] }\n→ dataKey: "tags", labelField: "label", colorField: "color"\n\nColor priority: colorField → colorMap → threshold → Color Schema',
6
+ },
7
+ { name: 'dataKey', label: 'Data Key', type: 'expression' },
8
+ { name: 'labelField', label: 'Label Field', type: 'expression', placeholder: 'default: label' },
9
+ { name: 'colorField', label: 'Color Field', type: 'expression', placeholder: 'per-item color override' },
10
+
11
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
12
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
13
+ { name: 'variant', label: 'Variant', type: 'select', options: ['soft','outlined','filled'] },
14
+ { name: 'size', label: 'Size', type: 'select', options: ['small','medium','large'] },
15
+ { name: 'maxTags', label: 'Max Tags', type: 'expression' },
16
+ { name: 'gap', label: 'Gap (px)', type: 'expression' },
17
+ { name: 'wrap', label: 'Wrap Tags', type: 'boolean' },
18
+ { name: 'align', label: 'Align', type: 'select', options: ['left','center','right'] },
19
+
20
+ { name: 'colormap_note', type: 'note', label: 'Color Map', text: 'Map label values to MUI palette colors. Takes priority over Color Schema.' },
21
+ { name: 'colorMap', label: 'Color Map (JSON)', type: 'expression', placeholder: '{"Urgent":"error","Done":"success"}' },
22
+ { name: 'thresholds', label: 'Thresholds (color by value)', type: 'thresholds-editor' },
23
+
24
+ {
25
+ name: 'actions_note', type: 'note', label: 'Actions',
26
+ text: 'Fires when a user clicks a tag chip. Available in the action:\n clickedItem — the raw item (string or object)\n clickedTag — alias for clickedItem\n clickedLabel — the tag\'s display text\n clickedValue — the tag\'s value field (if objects)\n clickedIndex — position in the array',
27
+ },
28
+ {
29
+ name: 'onTagClick', type: 'kpi-action', label: 'On Tag Click',
30
+ context: ['clickedItem', 'clickedTag', 'clickedLabel', 'clickedValue', 'clickedIndex'],
31
+ },
32
+ ]
@@ -0,0 +1,80 @@
1
+ export const TIMELINE_FIELDS = [
2
+ {
3
+ name: 'data_note', type: 'note', label: 'Data',
4
+ text: 'Bind dataKey to an array of event/milestone objects.',
5
+ },
6
+ {
7
+ name: 'data_example', type: 'note', label: 'Expected data shape',
8
+ text: '[\n {\n "label": "Design review",\n "date": "Jan 28, 2025",\n "status": "done",\n "description": "UI approved by product team.",\n "value": "100%"\n },\n {\n "label": "Development sprint",\n "date": "Feb 10, 2025",\n "status": "active",\n "description": "Frontend 60% complete.",\n "value": "60%"\n },\n {\n "label": "QA & testing",\n "date": "Feb 24, 2025",\n "status": "pending"\n }\n]\n\nBuilt-in status keywords:\n done / success / completed / approved / closed\n active / current / in-progress / running\n warning / at-risk / delayed\n error / failed / rejected / blocked\n pending / todo / future / planned',
9
+ },
10
+
11
+ { name: 'dataKey', label: 'Data Key', type: 'expression' },
12
+ { name: 'labelField', label: 'Label Field', type: 'expression', placeholder: 'default: label' },
13
+ { name: 'dateField', label: 'Date Field', type: 'expression', placeholder: 'default: date' },
14
+ { name: 'statusField', label: 'Status Field', type: 'expression', placeholder: 'default: status' },
15
+ { name: 'descField', label: 'Description Field', type: 'expression', placeholder: 'default: description' },
16
+ { name: 'valueField', label: 'Value Field', type: 'expression', placeholder: 'optional — shown right of title' },
17
+ { name: 'iconField', label: 'Icon Field', type: 'expression', placeholder: 'optional — emoji/char inside dot' },
18
+ { name: 'maxItems', label: 'Max Items', type: 'expression' },
19
+
20
+ { name: 'layout_note', type: 'note', label: 'Layout' },
21
+ {
22
+ name: 'layout', label: 'Layout', type: 'select',
23
+ options: ['left', 'right', 'alternate'],
24
+ },
25
+ {
26
+ name: 'density', label: 'Density', type: 'select',
27
+ options: ['comfortable', 'compact'],
28
+ },
29
+
30
+ { name: 'dot_note', type: 'note', label: 'Dot',
31
+ text: '"auto" — pending items render as an outlined ring, done items show ✓, active shows a pulse ring, errors show ✕.\n"filled" — always solid circle.\n"ring" — always outlined ring.' },
32
+ {
33
+ name: 'dotStyle', label: 'Dot Style', type: 'select',
34
+ options: ['auto', 'filled', 'ring'],
35
+ },
36
+ { name: 'dotSize', label: 'Dot Size (px)', type: 'expression', placeholder: 'default: 10' },
37
+
38
+ { name: 'line_note', type: 'note', label: 'Connector Line' },
39
+ { name: 'lineColor', label: 'Line Color', type: 'expression', placeholder: 'default: #e0e0e0' },
40
+ { name: 'lineWidth', label: 'Line Width (px)', type: 'expression', placeholder: 'default: 2' },
41
+ { name: 'lineStyle', label: 'Line Style', type: 'select', options: ['solid', 'dashed'] },
42
+ { name: 'filledLine', label: 'Filled Line (done→done)', type: 'boolean' },
43
+
44
+ {
45
+ name: 'active_note', type: 'note', label: 'Active Item Indicator',
46
+ text: 'Highlights the "current" item with a colored left accent bar and tinted background.\n\nTwo modes:\n① Auto — any item whose status is "active" / "current" / "in-progress" is highlighted automatically.\n② Explicit — set Active Key to a data value (e.g. data.currentStep) and Active Field to the item field to match against (e.g. "id" or "label"). The item whose field equals that value is highlighted.',
47
+ },
48
+ { name: 'activeKey', label: 'Active Key', type: 'expression', placeholder: 'e.g. data.currentStep — value to match' },
49
+ { name: 'activeField', label: 'Active Field', type: 'expression', placeholder: 'item field to compare (e.g. id, label)' },
50
+ { name: 'activeColor', label: 'Active Color', type: 'expression', placeholder: 'default: #1976d2' },
51
+ { name: 'showActiveLine', label: 'Show Accent Bar', type: 'boolean' },
52
+
53
+ { name: 'display_note', type: 'note', label: 'Display' },
54
+ { name: 'showDate', label: 'Show Date', type: 'boolean' },
55
+ { name: 'showBadge', label: 'Show Status Badge', type: 'boolean' },
56
+ { name: 'showValue', label: 'Show Value', type: 'boolean' },
57
+
58
+ { name: 'fmt_note', type: 'note', label: 'Value Format' },
59
+ { name: 'format', label: 'Format', type: 'select', options: ['number','currency','percent','compact'] },
60
+ { name: 'prefix', label: 'Prefix', type: 'expression' },
61
+ { name: 'suffix', label: 'Suffix', type: 'expression' },
62
+
63
+ {
64
+ name: 'color_note', type: 'note', label: 'Coloring',
65
+ text: 'Priority: colorMap (explicit status→color) → thresholds → built-in status colors → Color Schema → defaultColor.',
66
+ },
67
+ { name: 'colorSchema', label: 'Color Schema', type: 'color-schema' },
68
+ { name: 'defaultColor', label: 'Default Dot Color', type: 'expression', placeholder: '#bdbdbd' },
69
+ { name: 'colorMap', label: 'Color Map (JSON)', type: 'expression', placeholder: '{"done":"success","pending":"warning"}' },
70
+ { name: 'thresholds', label: 'Thresholds', type: 'thresholds-editor' },
71
+
72
+ {
73
+ name: 'actions_note', type: 'note', label: 'Actions',
74
+ text: 'Fires when a user clicks a timeline item. Available in the action:\n clickedItem — the full event/milestone object\n clickedIndex — position in the array\n clickedLabel — the item\'s label\n clickedStatus — the item\'s status field value\n clickedValue — the item\'s value field (if configured)',
75
+ },
76
+ {
77
+ name: 'onItemClick', type: 'kpi-action', label: 'On Item Click',
78
+ context: ['clickedItem', 'clickedIndex', 'clickedLabel', 'clickedStatus', 'clickedValue'],
79
+ },
80
+ ]
@@ -0,0 +1,20 @@
1
+ export const TREND_FIELDS = [
2
+ { name: 'data_note', type: 'note', label: 'Data', text: 'Reads a delta value from data[valueKey]. Positive = up, negative = down.' },
3
+ {
4
+ name: 'data_example', type: 'note', label: 'Expected data shape',
5
+ text: '{ "revenueDelta": 12.4 } ← percent change\n{ "countDelta": -3 } ← absolute change\n→ valueKey: "revenueDelta", isPercent: true',
6
+ },
7
+ { name: 'valueKey', label: 'Value Key', type: 'expression' },
8
+ { name: 'label', label: 'Label', type: 'expression', placeholder: 'e.g. vs last month' },
9
+
10
+ { name: 'fmt_note', type: 'note', label: 'Format' },
11
+ { name: 'isPercent', label: 'Value is Percent', type: 'boolean' },
12
+ { name: 'decimals', label: 'Decimals', type: 'expression' },
13
+ { name: 'invertColors', label: 'Invert Colors (down = good)', type: 'boolean' },
14
+
15
+ { name: 'appearance_note', type: 'note', label: 'Appearance' },
16
+ { name: 'variant', label: 'Variant', type: 'select', options: ['chip','text','inline'] },
17
+ { name: 'size', label: 'Size', type: 'select', options: ['small','medium','large'] },
18
+ { name: 'showIcon', label: 'Show Icon', type: 'boolean' },
19
+ { name: 'align', label: 'Align', type: 'select', options: ['left','center','right'] },
20
+ ]
@@ -1,5 +1,14 @@
1
1
  export const LABEL_MAIN_FIELDS = [
2
- { name: 'text', label: 'Text', type: 'expression' },
2
+ { name: 'text', label: 'Text', type: 'expression' },
3
+ { name: 'prefix', label: 'Prefix', type: 'icon' },
4
+ { name: 'suffix', label: 'Suffix', type: 'icon' },
5
+ { name: 'iconSize', label: 'Icon Size', type: 'expression' },
6
+ { name: 'iconColor', label: 'Icon Color', type: 'expression' },
7
+ { name: 'prefixSize', label: 'Prefix Size', type: 'expression' },
8
+ { name: 'prefixColor', label: 'Prefix Color', type: 'expression' },
9
+ { name: 'suffixSize', label: 'Suffix Size', type: 'expression' },
10
+ { name: 'suffixColor', label: 'Suffix Color', type: 'expression' },
11
+ { name: 'iconGap', label: 'Icon Gap', type: 'expression' },
3
12
  {
4
13
  name: 'variant',
5
14
  label: 'Variant',
@@ -1,6 +1,30 @@
1
1
  export const LAYOUT_MAIN_FIELDS = [
2
- { name: 'key', label: 'Key', type: 'expression' },
3
- { name: 'cols', label: 'Columns', type: 'number' },
4
- { name: 'gap', label: 'Gap (px)', type: 'number' },
2
+ { name: 'key', label: 'Key', type: 'expression' },
3
+ { name: 'cols', label: 'Columns', type: 'number' },
4
+ { name: 'gap', label: 'Gap (px)', type: 'number' },
5
5
  { name: 'rowGap', label: 'Row Gap (px)', type: 'number' },
6
+
7
+ // ── Default Cell Style ────────────────────────────────────────────────────
8
+ // These apply to every cell unless overridden by the cell's own style tab.
9
+ { name: 'cellMinHeight', label: 'Cell Min Height', type: 'expression' },
10
+ { name: 'cellPadding', label: 'Cell Padding', type: 'expression' },
11
+ { name: 'cellBackgroundColor', label: 'Cell Background', type: 'expression' },
12
+ { name: 'cellBorder', label: 'Cell Border', type: 'expression' },
13
+ { name: 'cellBorderRadius', label: 'Cell Border Radius', type: 'expression' },
14
+ { name: 'cellBoxShadow', label: 'Cell Box Shadow', type: 'expression' },
15
+ {
16
+ name: 'cellJustifyContent',
17
+ label: 'Cell Justify Content',
18
+ type: 'select',
19
+ options: ['flex-start', 'center', 'flex-end', 'space-between', 'space-around', 'space-evenly'],
20
+ },
21
+ {
22
+ name: 'cellAlignItems',
23
+ label: 'Cell Align Items',
24
+ type: 'select',
25
+ options: ['flex-start', 'center', 'flex-end', 'stretch', 'baseline'],
26
+ },
27
+ // Advanced: arbitrary style overrides (merged last, highest priority among grid defaults)
28
+ { name: 'cellElementStyle', label: 'Cell Element Style', type: 'expression' },
29
+ { name: 'cellElementCss', label: 'Cell Element Css', type: 'expression' },
6
30
  ]
@@ -1,23 +1,15 @@
1
+ import { LABEL_POSITION_FIELDS } from '../common/main'
2
+
1
3
  export const NUMBER_MAIN_FIELDS = [
2
4
  { name: 'key', label: 'Key', type: 'expression' },
3
5
  { name: 'label', label: 'Label', type: 'expression' },
6
+ ...LABEL_POSITION_FIELDS,
4
7
  { name: 'value', label: 'Value', type: 'expression' },
5
8
  { name: 'placeholder', label: 'Placeholder', type: 'text' },
6
- {
7
- name: 'size',
8
- label: 'Size',
9
- type: 'select',
10
- options: ['small', 'medium', 'large']
11
- },
9
+ { name: 'size', label: 'Size', type: 'select', options: ['small', 'medium', 'large'] },
12
10
  { name: 'disabled', label: 'Disabled', type: 'boolean' },
13
11
  { name: 'enabled', label: 'Enabled', type: 'boolean' },
14
- // Number format specific props
15
- {
16
- name: 'formatType',
17
- label: 'Format Type',
18
- type: 'select',
19
- options: ['decimal', 'currency', 'percentage', 'custom']
20
- },
12
+ { name: 'formatType', label: 'Format Type', type: 'select', options: ['decimal', 'currency', 'percentage', 'custom'] },
21
13
  { name: 'decimalScale', label: 'Decimal Scale', type: 'expression', placeholder: '2' },
22
14
  { name: 'fixedDecimalScale', label: 'Fixed Decimal Scale', type: 'boolean' },
23
15
  { name: 'thousandSeparator', label: 'Thousand Separator', type: 'boolean' },
@@ -25,5 +17,5 @@ export const NUMBER_MAIN_FIELDS = [
25
17
  { name: 'prefix', label: 'Prefix', type: 'text' },
26
18
  { name: 'suffix', label: 'Suffix', type: 'text' },
27
19
  { name: 'allowNegative', label: 'Allow Negative', type: 'boolean' },
28
- { name: 'format', label: 'Custom Format', type: 'text', placeholder: '#### #### #### ####' }
20
+ { name: 'format', label: 'Custom Format', type: 'text', placeholder: '#### #### #### ####' },
29
21
  ]
@@ -0,0 +1,21 @@
1
+ export const PAGE_NUMBER_MAIN_FIELDS = [
2
+ {
3
+ name: 'format_note',
4
+ type: 'note',
5
+ label: 'Tokens',
6
+ text: '{page} → current page number\n{pages} → total pages\n\nExample: "Page {page} of {pages}"',
7
+ },
8
+ {
9
+ name: 'format',
10
+ label: 'Format',
11
+ type: 'expression',
12
+ },
13
+ {
14
+ name: 'align',
15
+ label: 'Align',
16
+ type: 'select',
17
+ options: ['left', 'center', 'right'],
18
+ },
19
+ { name: 'fontSize', label: 'Font Size', type: 'expression' },
20
+ { name: 'color', label: 'Color', type: 'expression' },
21
+ ]