robobyte-front-builder 1.0.26 → 1.0.28
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.
- package/INTEGRATION.md +6 -0
- package/LICENSE +65 -0
- package/README.md +166 -21
- package/docs/ReportViewer.md +581 -0
- package/docs/fetchReportData.md +379 -0
- package/docs/printLayout.md +405 -0
- package/package.json +29 -1
- package/src/lib/index.js +14 -0
- package/src/lib/muiTheme.js +655 -0
- package/src/lib/providers/RoboByteFrontBuilderProvider.jsx +45 -1
- package/src/pages/_app.js +1 -0
- package/src/pages/printBuilder/index.jsx +26 -19
- package/src/pages/viewBuilder/index.jsx +29 -19
- package/training/00-index.md +168 -0
- package/training/01-input.md +144 -0
- package/training/02-checkbox.md +107 -0
- package/training/03-dropdown.md +135 -0
- package/training/04-datepicker.md +139 -0
- package/training/05-radio.md +123 -0
- package/training/06-number.md +133 -0
- package/training/07-textarea.md +114 -0
- package/training/08-richtext.md +112 -0
- package/training/09-tag.md +110 -0
- package/training/10-time.md +107 -0
- package/training/11-toggle.md +108 -0
- package/training/12-signature.md +107 -0
- package/training/13-autocomplete.md +134 -0
- package/training/14-button.md +168 -0
- package/training/15-label.md +138 -0
- package/training/16-header.md +128 -0
- package/training/17-divider.md +96 -0
- package/training/18-image.md +105 -0
- package/training/19-link.md +108 -0
- package/training/20-banner.md +122 -0
- package/training/21-progress-circle.md +101 -0
- package/training/22-progress-line.md +93 -0
- package/training/23-menu.md +139 -0
- package/training/24-popover.md +114 -0
- package/training/25-layout.md +116 -0
- package/training/26-layout-cell.md +143 -0
- package/training/27-card.md +87 -0
- package/training/28-wizard.md +126 -0
- package/training/29-wizard-step.md +92 -0
- package/training/30-repeater.md +123 -0
- package/training/31-dialog.md +131 -0
- package/training/32-breadcrumb.md +121 -0
- package/training/33-dataGrid.md +129 -0
- package/training/34-dataTableViewer.md +115 -0
- package/training/35-reportViewer.md +673 -0
- package/training/36-viewRenderer.md +110 -0
- package/training/37-treeView.md +170 -0
- package/training/38-kpi-metric.md +148 -0
- package/training/39-kpi-trend.md +105 -0
- package/training/40-kpi-badge.md +112 -0
- package/training/41-kpi-statusDot.md +118 -0
- package/training/42-kpi-iconBox.md +114 -0
- package/training/43-kpi-gauge.md +143 -0
- package/training/44-kpi-bulletChart.md +126 -0
- package/training/45-kpi-colorScale.md +143 -0
- package/training/46-kpi-rating.md +125 -0
- package/training/47-kpi-countdown.md +151 -0
- package/training/48-fetchReportData.md +276 -0
- package/training/49-printLayout.md +215 -0
- package/training/examples/01-login-form.json +176 -0
- package/training/examples/02-contact-form.json +141 -0
- package/training/examples/03-kpi-cards-row.json +123 -0
- package/training/examples/04-settings-toggles.json +153 -0
- package/training/examples/05-user-profile-card.json +136 -0
- package/training/examples/06-date-range-filter.json +108 -0
- package/training/examples/07-search-bar-results.json +130 -0
- package/training/examples/08-notification-settings.json +131 -0
- package/training/examples/09-employee-profile-form.json +259 -0
- package/training/examples/10-invoice-form.json +241 -0
- package/training/examples/11-dashboard-overview.json +251 -0
- package/training/examples/12-registration-wizard.json +154 -0
- package/training/examples/13-product-catalog.json +168 -0
- package/training/examples/14-data-table-with-filters.json +180 -0
- package/training/examples/15-tabbed-profile.json +92 -0
- package/training/examples/16-kpi-full-row.json +203 -0
- package/training/examples/17-tree-detail-view.json +139 -0
- package/training/examples/18-employee-management.json +233 -0
- package/training/examples/19-sales-dashboard.json +272 -0
- package/training/examples/20-checkout-wizard.json +225 -0
- package/training/examples/21-analytics-page.json +222 -0
- package/training/examples/22-hr-onboarding.json +222 -0
- package/training/examples/23-document-browser.json +241 -0
- package/training/examples/24-order-management.json +290 -0
- package/training/examples/25-crm-contact-page.json +272 -0
package/INTEGRATION.md
CHANGED
|
@@ -176,6 +176,10 @@ function RoboByteBridge({ children }) {
|
|
|
176
176
|
// Optional — Quartz theme overrides for every <AgGridReact> in the
|
|
177
177
|
// package. Merged on top of the package defaults.
|
|
178
178
|
// agGridTheme={{ accentColor: '#3b82f6', headerHeight: 32 }}
|
|
179
|
+
// Optional — MUI theme overrides for every MUI component the package
|
|
180
|
+
// renders. Deep-merged on top of DEFAULT_MUI_THEME_OPTIONS in
|
|
181
|
+
// lib/muiTheme.js (Inter font, 8px radius, soft shadows, flat buttons).
|
|
182
|
+
// muiTheme={{ palette: { primary: { main: '#6366f1' } }, shape: { borderRadius: 12 } }}
|
|
179
183
|
>
|
|
180
184
|
{children}
|
|
181
185
|
</RoboByteFrontBuilderProvider>
|
|
@@ -204,6 +208,8 @@ export default function App({ Component, pageProps }) {
|
|
|
204
208
|
| `accessToken` | string | Bearer token — attached to every robobyte service call |
|
|
205
209
|
| `agGridLicenseKey` | string | AG Grid Enterprise license key. The provider calls `LicenseManager.setLicenseKey()` and registers `AllEnterpriseModule` + `IntegratedChartsModule.with(AgChartsEnterpriseModule)` internally. |
|
|
206
210
|
| `agGridTheme` | object | Optional. Quartz theme overrides applied to every `<AgGridReact>` in the package. Merged on top of `DEFAULT_AG_THEME_PARAMS` (see [`src/lib/agGridTheme.js`](src/lib/agGridTheme.js)). Example: `{ accentColor: '#3b82f6', headerHeight: 32 }`. |
|
|
211
|
+
| `muiTheme` | object \| Theme | Optional. MUI theme overrides (options object) deep-merged on top of `DEFAULT_MUI_THEME_OPTIONS` (see [`src/lib/muiTheme.js`](src/lib/muiTheme.js)), OR a pre-built MUI `Theme` used as-is. Defaults give Inter font, 8px radius, soft shadows, flat buttons. Example: `{ palette: { primary: { main: '#6366f1' } }, shape: { borderRadius: 12 } }`. |
|
|
212
|
+
| `disableMuiTheme` | boolean | Optional. When `true`, the provider skips its inner `<ThemeProvider>` — use this when the host has its own MUI ThemeProvider wrapping the app and wants it to apply inside the builder pages without merging. Default `false`. |
|
|
207
213
|
| `navExtensions` | array | Static nav items to inject into the sidebar (optional) |
|
|
208
214
|
| `endpoints` | object | Full-URL overrides per endpoint group + name (optional) |
|
|
209
215
|
|
package/LICENSE
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2026 RoboByte / Hossny37
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Third-party components and commercial dependencies
|
|
26
|
+
|
|
27
|
+
The MIT license above applies to the source code of `robobyte-front-builder`
|
|
28
|
+
itself. This package depends on third-party libraries with their own licenses
|
|
29
|
+
that consumers must comply with separately. The notable ones:
|
|
30
|
+
|
|
31
|
+
### AG Grid Enterprise (peer dependency)
|
|
32
|
+
|
|
33
|
+
This package's report and grid components rely on AG Grid Enterprise features
|
|
34
|
+
(server-side row model, side tool panel, integrated charts, etc.) via the
|
|
35
|
+
`ag-grid-enterprise` peer dependency. AG Grid Enterprise is a **commercial,
|
|
36
|
+
proprietary product owned by AG Grid Ltd**. Consumers deploying this package
|
|
37
|
+
in production must obtain a valid AG Grid Enterprise license from AG Grid
|
|
38
|
+
Ltd and comply with their license terms:
|
|
39
|
+
|
|
40
|
+
https://www.ag-grid.com/license-pricing/
|
|
41
|
+
|
|
42
|
+
AG Grid Community (the base library, MIT-licensed) is sufficient for
|
|
43
|
+
development with a watermark; production use requires a paid license.
|
|
44
|
+
|
|
45
|
+
### MUI X (peer dependency)
|
|
46
|
+
|
|
47
|
+
`@mui/x-data-grid`, `@mui/x-date-pickers`, and related packages have free
|
|
48
|
+
(MIT) and paid (Pro / Premium) tiers. This package uses only the free
|
|
49
|
+
tiers by default. If a consumer opts to install Pro / Premium variants,
|
|
50
|
+
they must comply with MUI's commercial license:
|
|
51
|
+
|
|
52
|
+
https://mui.com/pricing/
|
|
53
|
+
|
|
54
|
+
### Other dependencies
|
|
55
|
+
|
|
56
|
+
All other runtime and peer dependencies are open-source under permissive
|
|
57
|
+
licenses (MIT, Apache 2.0, ISC, BSD). Run `npm ls --omit dev` to inspect
|
|
58
|
+
the full graph and `npm-license-checker` (or similar) to enumerate licenses.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
The license above does not waive or modify the terms of any third-party
|
|
63
|
+
license referenced in this document. Consumers are responsible for
|
|
64
|
+
obtaining and complying with licenses required by their use of those
|
|
65
|
+
third-party components.
|
package/README.md
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
3
3
|
A low-code **UI Builder**, **Report Builder**, **Print Layout Designer**, and **Navigation Extension API** for Next.js applications.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/robobyte-front-builder)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
[](https://github.com/Hossny37/RoboByteFrontBuilder)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 📚 Documentation
|
|
12
|
+
|
|
13
|
+
| Document | Audience | What it covers |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| **[README.md](./README.md)** *(this file)* | Everyone | Public surface, provider props, every component's inspector schema, action-scope tables, troubleshooting, changelog. The exhaustive reference. |
|
|
16
|
+
| **[INTEGRATION.md](./INTEGRATION.md)** | Host-app developers | `next.config.js` setup, peer deps, page wrapper pattern, provider bridge, print layout integration steps. |
|
|
17
|
+
| **[docs/ReportViewer.md](./docs/ReportViewer.md)** | Host-app developers | Embedding `<ReportViewer>` in regular React (cancellation, memo'd filters, `viewerActions`, master/detail patterns). |
|
|
18
|
+
| **[docs/fetchReportData.md](./docs/fetchReportData.md)** | Host-app developers | Calling `fetchReportDataByPageId` directly from host code (hooks, KPI counters, XLSX export, paginated cursors). |
|
|
19
|
+
| **[docs/printLayout.md](./docs/printLayout.md)** | Host-app developers | Triggering print layouts via `PrintDialog` ref API, recommended `PrintProvider` + `usePrintLayout()` pattern. |
|
|
20
|
+
| **[training/00-index.md](./training/00-index.md)** | AI sessions / schema authors | Component catalog index — categories and one-page refs for every component the builder ships. |
|
|
21
|
+
| **[training/35-reportViewer.md](./training/35-reportViewer.md)** | AI sessions / schema authors | Full AI manual for the `reportViewer` component (Calculation scope, action arrays, filter shape, recipes). |
|
|
22
|
+
| **[training/48-fetchReportData.md](./training/48-fetchReportData.md)** | AI sessions / schema authors | In-builder Calculation reference for the auto-injected `fetchReportData` helper. |
|
|
23
|
+
| **[training/49-printLayout.md](./training/49-printLayout.md)** | AI sessions / schema authors | In-builder Calculation reference for `openPrintLayout` / `closePrintLayout`. |
|
|
24
|
+
| **[RoboByteBuilder_User_Manual.docx](./RoboByteBuilder_User_Manual.docx)** | End users | Visual user manual for the builder UI. Ships inside the package. |
|
|
25
|
+
|
|
26
|
+
> **Pair convention.** Most features have **two** manuals: a `docs/` one for host-app React code (consumer of the package) and a `training/` one for AI sessions emitting builder schemas / Calculation code. They cross-link each other; pick the audience that matches your task.
|
|
6
27
|
|
|
7
28
|
---
|
|
8
29
|
|
|
@@ -18,27 +39,28 @@ A low-code **UI Builder**, **Report Builder**, **Print Layout Designer**, and **
|
|
|
18
39
|
8. [Navigation Extension API](#navigation-extension-api)
|
|
19
40
|
9. [Provider props reference](#provider-props-reference)
|
|
20
41
|
10. [AG Grid theme](#ag-grid-theme)
|
|
21
|
-
11. [
|
|
22
|
-
12. [
|
|
23
|
-
13. [
|
|
24
|
-
14. [
|
|
25
|
-
15. [
|
|
26
|
-
16. [
|
|
27
|
-
17. [
|
|
28
|
-
18. [
|
|
29
|
-
19. [
|
|
30
|
-
20. [
|
|
31
|
-
21. [
|
|
32
|
-
22. [
|
|
33
|
-
23. [
|
|
34
|
-
24. [
|
|
35
|
-
25. [
|
|
36
|
-
26. [
|
|
37
|
-
27. [
|
|
38
|
-
28. [
|
|
39
|
-
29. [
|
|
40
|
-
30. [
|
|
41
|
-
31. [
|
|
42
|
+
11. [MUI theme](#mui-theme)
|
|
43
|
+
12. [fetchReportDataByPageId](#fetchreportdatabypageid)
|
|
44
|
+
13. [ReportViewer as a component](#reportviewer-as-a-component)
|
|
45
|
+
14. [Data Grid component](#data-grid-component)
|
|
46
|
+
15. [Dialog component](#dialog-component)
|
|
47
|
+
16. [Popover component](#popover-component)
|
|
48
|
+
17. [Excel Upload component](#excel-upload-component)
|
|
49
|
+
18. [Wizard component](#wizard-component)
|
|
50
|
+
19. [Repeater component](#repeater-component)
|
|
51
|
+
20. [Menu component](#menu-component)
|
|
52
|
+
21. [View Renderer component](#view-renderer-component)
|
|
53
|
+
22. [Layout Grid component](#layout-grid-component)
|
|
54
|
+
23. [Breadcrumb component](#breadcrumb-component)
|
|
55
|
+
24. [Print Layout Builder](#print-layout-builder)
|
|
56
|
+
25. [Calculation Scope Reference](#calculation-scope-reference)
|
|
57
|
+
26. [KPI Component Actions](#kpi-component-actions)
|
|
58
|
+
27. [Global Data Store](#global-data-store)
|
|
59
|
+
28. [Dark / Light theme](#dark--light-theme)
|
|
60
|
+
29. [Syncing local changes](#syncing-local-changes)
|
|
61
|
+
30. [Troubleshooting](#troubleshooting)
|
|
62
|
+
31. [Publishing](#publishing)
|
|
63
|
+
32. [Changelog](#changelog)
|
|
42
64
|
|
|
43
65
|
---
|
|
44
66
|
|
|
@@ -177,6 +199,14 @@ function RoboByteBridge({ children }) {
|
|
|
177
199
|
// "AG Grid theme" section for the full list of params and the
|
|
178
200
|
// programmatic API. Omit to use the package defaults.
|
|
179
201
|
agGridTheme={{ accentColor: '#3b82f6' }}
|
|
202
|
+
// Optional: MUI theme overrides applied to every MUI component the
|
|
203
|
+
// package renders. Deep-merged on top of DEFAULT_MUI_THEME_OPTIONS.
|
|
204
|
+
// See the "MUI theme" section for the full token list. Omit to use
|
|
205
|
+
// the package defaults (Inter font, 8px radius, soft shadows, etc.).
|
|
206
|
+
muiTheme={{
|
|
207
|
+
palette: { primary: { main: '#3b82f6' } },
|
|
208
|
+
shape: { borderRadius: 10 },
|
|
209
|
+
}}
|
|
180
210
|
>
|
|
181
211
|
{children}
|
|
182
212
|
</RoboByteFrontBuilderProvider>
|
|
@@ -323,6 +353,8 @@ function MyFeaturePlugin() {
|
|
|
323
353
|
| `accessToken` | string | Bearer token attached to every service call |
|
|
324
354
|
| `agGridLicenseKey` | string | AG Grid Enterprise license key — the provider calls `LicenseManager.setLicenseKey()` and registers all enterprise modules internally |
|
|
325
355
|
| `agGridTheme` | object | Quartz theme overrides applied to every `<AgGridReact>` in the package. Merged on top of `DEFAULT_AG_THEME_PARAMS`. Example: `{ accentColor: '#3b82f6', headerHeight: 32 }`. See [AG Grid theme](#ag-grid-theme). |
|
|
356
|
+
| `muiTheme` | object \| Theme | MUI theme overrides (options object) deep-merged on top of `DEFAULT_MUI_THEME_OPTIONS`, OR a pre-built MUI `Theme` used as-is. Example: `{ palette: { primary: { main: '#6366f1' } }, shape: { borderRadius: 12 } }`. See [MUI theme](#mui-theme). |
|
|
357
|
+
| `disableMuiTheme` | boolean | When `true`, the provider skips its inner `<ThemeProvider>` entirely — use this if the host app already wraps everything in its own MUI ThemeProvider and wants it to apply inside the builder pages without merging. Default `false`. |
|
|
326
358
|
| `navExtensions` | array | Static nav items to inject into the sidebar |
|
|
327
359
|
| `endpoints` | object | Full-URL overrides per endpoint group + name |
|
|
328
360
|
|
|
@@ -382,6 +414,83 @@ The hook falls back to `DEFAULT_AG_THEME` when called outside `RoboByteFrontBuil
|
|
|
382
414
|
|
|
383
415
|
---
|
|
384
416
|
|
|
417
|
+
## MUI theme
|
|
418
|
+
|
|
419
|
+
Every Material-UI component the package renders (`Button`, `TextField`, `Dialog`, `Tooltip`, `Chip`, `Card`, `Tabs`, …) reads its theme from a single MUI `<ThemeProvider>` mounted by `RoboByteFrontBuilderProvider`. The default theme lives at [`src/lib/muiTheme.js`](src/lib/muiTheme.js) and is designed to look distinctly *not* like stock MUI — Inter typography, 8px radius, soft shadows, flat buttons, no ripple, faster tooltips, dark mode pair.
|
|
420
|
+
|
|
421
|
+
### Key default tokens
|
|
422
|
+
|
|
423
|
+
| Token | Value | Rationale |
|
|
424
|
+
|---|---|---|
|
|
425
|
+
| `typography.fontFamily` | `Inter, SF Pro Display, system-ui, …` | Modern UI font with graceful system fallbacks. |
|
|
426
|
+
| `shape.borderRadius` | `8` | Soft corners across the surface (vs MUI's default 4). |
|
|
427
|
+
| `palette.primary.main` | `#3b82f6` | Tailwind blue-500, professional neutral primary. |
|
|
428
|
+
| `palette.secondary.main` | `#FF1185` | Matches `DEFAULT_AG_THEME_PARAMS.accentColor` — brand color shared with AG Grid surfaces. |
|
|
429
|
+
| `shadows[1..8]` | soft, large-radius | Tailwind-like elevation instead of Material's hard shadows. |
|
|
430
|
+
| `MuiButton.disableElevation` | `true` | Flat buttons by default. |
|
|
431
|
+
| `MuiButton.disableRipple` | `true` | Desktop-first. |
|
|
432
|
+
| `MuiTextField.size` | `'small'` | Builder UI is data-dense. |
|
|
433
|
+
| `MuiTooltip.arrow` / `enterDelay` | `true` / `200ms` | Less hover-spam, more obvious anchoring. |
|
|
434
|
+
|
|
435
|
+
### Host-app override via the provider
|
|
436
|
+
|
|
437
|
+
```jsx
|
|
438
|
+
<RoboByteFrontBuilderProvider
|
|
439
|
+
muiTheme={{
|
|
440
|
+
palette: {
|
|
441
|
+
primary: { main: '#6366f1' }, // indigo-500
|
|
442
|
+
},
|
|
443
|
+
shape: { borderRadius: 12 },
|
|
444
|
+
typography: { fontFamily: '"Plus Jakarta Sans", sans-serif' },
|
|
445
|
+
}}
|
|
446
|
+
>
|
|
447
|
+
<App />
|
|
448
|
+
</RoboByteFrontBuilderProvider>
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
The override is deep-merged on top of the package defaults — keys you set win, everything else falls back.
|
|
452
|
+
|
|
453
|
+
### Three ways to pass `muiTheme`
|
|
454
|
+
|
|
455
|
+
| Pass | What happens |
|
|
456
|
+
|---|---|
|
|
457
|
+
| Nothing | Uses `DEFAULT_MUI_THEME`. |
|
|
458
|
+
| Theme **options** object (`{ palette, shape, typography, components, … }`) | Deep-merged with defaults; package builds the final `Theme`. |
|
|
459
|
+
| A pre-built MUI `Theme` (from your own `createTheme`) | Used as-is. Escape hatch for full control. |
|
|
460
|
+
|
|
461
|
+
### Disable the inner ThemeProvider
|
|
462
|
+
|
|
463
|
+
If the host has its own `<ThemeProvider>` wrapping the entire app and wants it to apply inside the builder pages without merging, pass `disableMuiTheme={true}`:
|
|
464
|
+
|
|
465
|
+
```jsx
|
|
466
|
+
<ThemeProvider theme={yourGlobalTheme}>
|
|
467
|
+
<RoboByteFrontBuilderProvider disableMuiTheme>
|
|
468
|
+
<App />
|
|
469
|
+
</RoboByteFrontBuilderProvider>
|
|
470
|
+
</ThemeProvider>
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
### Programmatic use
|
|
474
|
+
|
|
475
|
+
```js
|
|
476
|
+
import {
|
|
477
|
+
DEFAULT_MUI_THEME_OPTIONS, // raw default options (frozen)
|
|
478
|
+
DARK_MUI_THEME_OPTIONS, // dark counterpart
|
|
479
|
+
DEFAULT_MUI_THEME, // pre-built light Theme
|
|
480
|
+
DEFAULT_MUI_THEME_DARK, // pre-built dark Theme
|
|
481
|
+
buildMuiTheme, // (overrides, { mode? }) => Theme
|
|
482
|
+
isResolvedMuiTheme, // (value) => boolean — detect options vs Theme
|
|
483
|
+
} from 'robobyte-front-builder'
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### Coordinating with AG Grid + brand identity
|
|
487
|
+
|
|
488
|
+
The MUI `palette.secondary.main` (`#FF1185`) and the AG Grid `accentColor` are intentionally the same string. Change one, change the other, or wait for the future unified `theme` prop that will derive both from a shared token bag.
|
|
489
|
+
|
|
490
|
+
> **Future plan.** A single unified `theme` prop will derive MUI, AG Grid, and chart themes from one set of design tokens. Until then, `muiTheme` and `agGridTheme` are the two sources to coordinate.
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
385
494
|
## `fetchReportDataByPageId`
|
|
386
495
|
|
|
387
496
|
Fetches report data by `pageId` without any AG Grid dependency. Always imported from the package path — the `NormalModuleReplacementPlugin` in `next.config.js` routes it to the package's canonical implementation.
|
|
@@ -996,4 +1105,40 @@ npm publish --dry-run
|
|
|
996
1105
|
|
|
997
1106
|
---
|
|
998
1107
|
|
|
1108
|
+
## License & third-party components
|
|
1109
|
+
|
|
1110
|
+
`robobyte-front-builder` itself is released under the **[MIT License](./LICENSE)** — the source code in this repository is free to use, modify, and distribute, including in commercial products.
|
|
1111
|
+
|
|
1112
|
+
> **Important:** this package depends on third-party libraries with their own licenses. The MIT license applies only to *this* package's source code; it does not relicense or waive obligations under those third-party licenses.
|
|
1113
|
+
|
|
1114
|
+
### AG Grid Enterprise — commercial license required for production
|
|
1115
|
+
|
|
1116
|
+
The report and grid components use AG Grid Enterprise features (server-side row model, side tool panel, status bar, integrated charts, master/detail). The `ag-grid-enterprise` package is a **commercial product** owned by AG Grid Ltd:
|
|
1117
|
+
|
|
1118
|
+
- **Development:** AG Grid Enterprise works without a license key, but renders a watermark and prints a console warning. Fine for local dev and evaluation.
|
|
1119
|
+
- **Production deployment:** requires a paid AG Grid Enterprise license. See [ag-grid.com/license-pricing](https://www.ag-grid.com/license-pricing/) for the current terms.
|
|
1120
|
+
|
|
1121
|
+
Pass your license key via the provider — the package calls `LicenseManager.setLicenseKey()` and registers `AllEnterpriseModule` + `IntegratedChartsModule.with(AgChartsEnterpriseModule)` internally:
|
|
1122
|
+
|
|
1123
|
+
```jsx
|
|
1124
|
+
<RoboByteFrontBuilderProvider
|
|
1125
|
+
agGridLicenseKey={process.env.NEXT_PUBLIC_AG_GRID_LICENSE_KEY}
|
|
1126
|
+
// …other props…
|
|
1127
|
+
>
|
|
1128
|
+
…
|
|
1129
|
+
</RoboByteFrontBuilderProvider>
|
|
1130
|
+
```
|
|
1131
|
+
|
|
1132
|
+
### MUI X — free vs. Pro / Premium tiers
|
|
1133
|
+
|
|
1134
|
+
`@mui/x-data-grid`, `@mui/x-date-pickers`, and related packages have a free MIT tier and paid Pro / Premium tiers. This package uses only the free tier. If you swap in `@mui/x-data-grid-pro` or `@mui/x-date-pickers-pro` in your host app, comply with MUI's commercial license: [mui.com/pricing](https://mui.com/pricing/).
|
|
1135
|
+
|
|
1136
|
+
### Everything else
|
|
1137
|
+
|
|
1138
|
+
All other runtime and peer dependencies are open-source under permissive licenses (MIT, Apache 2.0, ISC, BSD). Run `npm ls --omit dev` for the full dependency graph and a tool like `license-checker` for a license enumeration.
|
|
1139
|
+
|
|
1140
|
+
A condensed version of this notice lives in the [`LICENSE`](./LICENSE) file shipped with the package.
|
|
1141
|
+
|
|
1142
|
+
---
|
|
1143
|
+
|
|
999
1144
|
*Full user manual: [RoboByteBuilder_User_Manual.docx](./RoboByteBuilder_User_Manual.docx) (included in the package)*
|