robobyte-front-builder 1.0.26 → 1.0.27

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 (81) hide show
  1. package/LICENSE +65 -0
  2. package/README.md +57 -0
  3. package/docs/ReportViewer.md +581 -0
  4. package/docs/fetchReportData.md +379 -0
  5. package/docs/printLayout.md +405 -0
  6. package/package.json +29 -1
  7. package/training/00-index.md +168 -0
  8. package/training/01-input.md +144 -0
  9. package/training/02-checkbox.md +107 -0
  10. package/training/03-dropdown.md +135 -0
  11. package/training/04-datepicker.md +139 -0
  12. package/training/05-radio.md +123 -0
  13. package/training/06-number.md +133 -0
  14. package/training/07-textarea.md +114 -0
  15. package/training/08-richtext.md +112 -0
  16. package/training/09-tag.md +110 -0
  17. package/training/10-time.md +107 -0
  18. package/training/11-toggle.md +108 -0
  19. package/training/12-signature.md +107 -0
  20. package/training/13-autocomplete.md +134 -0
  21. package/training/14-button.md +168 -0
  22. package/training/15-label.md +138 -0
  23. package/training/16-header.md +128 -0
  24. package/training/17-divider.md +96 -0
  25. package/training/18-image.md +105 -0
  26. package/training/19-link.md +108 -0
  27. package/training/20-banner.md +122 -0
  28. package/training/21-progress-circle.md +101 -0
  29. package/training/22-progress-line.md +93 -0
  30. package/training/23-menu.md +139 -0
  31. package/training/24-popover.md +114 -0
  32. package/training/25-layout.md +116 -0
  33. package/training/26-layout-cell.md +143 -0
  34. package/training/27-card.md +87 -0
  35. package/training/28-wizard.md +126 -0
  36. package/training/29-wizard-step.md +92 -0
  37. package/training/30-repeater.md +123 -0
  38. package/training/31-dialog.md +131 -0
  39. package/training/32-breadcrumb.md +121 -0
  40. package/training/33-dataGrid.md +129 -0
  41. package/training/34-dataTableViewer.md +115 -0
  42. package/training/35-reportViewer.md +673 -0
  43. package/training/36-viewRenderer.md +110 -0
  44. package/training/37-treeView.md +170 -0
  45. package/training/38-kpi-metric.md +148 -0
  46. package/training/39-kpi-trend.md +105 -0
  47. package/training/40-kpi-badge.md +112 -0
  48. package/training/41-kpi-statusDot.md +118 -0
  49. package/training/42-kpi-iconBox.md +114 -0
  50. package/training/43-kpi-gauge.md +143 -0
  51. package/training/44-kpi-bulletChart.md +126 -0
  52. package/training/45-kpi-colorScale.md +143 -0
  53. package/training/46-kpi-rating.md +125 -0
  54. package/training/47-kpi-countdown.md +151 -0
  55. package/training/48-fetchReportData.md +276 -0
  56. package/training/49-printLayout.md +215 -0
  57. package/training/examples/01-login-form.json +176 -0
  58. package/training/examples/02-contact-form.json +141 -0
  59. package/training/examples/03-kpi-cards-row.json +123 -0
  60. package/training/examples/04-settings-toggles.json +153 -0
  61. package/training/examples/05-user-profile-card.json +136 -0
  62. package/training/examples/06-date-range-filter.json +108 -0
  63. package/training/examples/07-search-bar-results.json +130 -0
  64. package/training/examples/08-notification-settings.json +131 -0
  65. package/training/examples/09-employee-profile-form.json +259 -0
  66. package/training/examples/10-invoice-form.json +241 -0
  67. package/training/examples/11-dashboard-overview.json +251 -0
  68. package/training/examples/12-registration-wizard.json +154 -0
  69. package/training/examples/13-product-catalog.json +168 -0
  70. package/training/examples/14-data-table-with-filters.json +180 -0
  71. package/training/examples/15-tabbed-profile.json +92 -0
  72. package/training/examples/16-kpi-full-row.json +203 -0
  73. package/training/examples/17-tree-detail-view.json +139 -0
  74. package/training/examples/18-employee-management.json +233 -0
  75. package/training/examples/19-sales-dashboard.json +272 -0
  76. package/training/examples/20-checkout-wizard.json +225 -0
  77. package/training/examples/21-analytics-page.json +222 -0
  78. package/training/examples/22-hr-onboarding.json +222 -0
  79. package/training/examples/23-document-browser.json +241 -0
  80. package/training/examples/24-order-management.json +290 -0
  81. package/training/examples/25-crm-contact-page.json +272 -0
@@ -0,0 +1,129 @@
1
+ # Component: dataGrid
2
+
3
+ An AG Grid-powered editable data table. Supports inline editing, row actions, column configuration, add/delete rows, row selection, and pagination. Primarily used for editable grid forms (not just read-only display).
4
+
5
+ > ⚠️ Use `dataGrid` for **editable forms** with tabular data (line items, bulk editing). For read-only data display use `reportViewer`. For simple static tables use `dataTableViewer`.
6
+
7
+ ---
8
+
9
+ ## Props — Main Tab
10
+
11
+ | Prop | Type | Options / Notes |
12
+ |------|------|-----------------|
13
+ | `key` | expression | Unique identifier. Grid data is accessible at `data[key]`. |
14
+ | `dataKey` | expression | Data key pointing to the rows array, e.g. `data.invoiceLines`. |
15
+ | `columns` | expression | Column definitions array (AG Grid colDef format), e.g. `[{ headerName: 'Name', field: 'name' }]`. |
16
+ | `extraCols` | extra-cols-editor | Additional columns defined via the visual editor. Each entry is a full AG Grid colDef object. Useful for computed columns or action columns. |
17
+ | `columnsConfig` | columns-config-editor | Per-field overrides applied to existing columns (matched by field name). E.g. make a field editable, add a custom valueGetter. |
18
+ | `actionsConfig` | actions-config-editor | Row action buttons shown in a popover "Actions" cell. Each action has: `label`, `color`, `variant`, `icon`, `code`, `confirmation?`, `disabled?`. Inside action code, `data.row` is the AG Grid row node. |
19
+ | `addLabel` | expression | Label for the "Add Row" button, e.g. `"+ Add Line"`. |
20
+ | `addRow` | code | Code returning the template object for a new row. E.g. `return { id: uuid(), qty: 1, price: 0 }`. |
21
+ | `readOnly` | expression | Expression that when `true` disables all editing. |
22
+ | `showAddBtn` | boolean | Shows/hides the Add Row button. |
23
+ | `showDeleteCol` | boolean | Shows/hides the delete (×) column on each row. |
24
+ | `height` | expression | Grid height, e.g. `"400px"`, `"60vh"`. |
25
+ | `rowSelection` | select | `none` · `single` · `multiple` — Enables row selection mode. |
26
+ | `pagination` | boolean | Enables pagination controls. |
27
+ | `pageSize` | number | Rows per page when pagination is enabled. Default: `20`. |
28
+
29
+ ---
30
+
31
+ ## Props — Style Tab
32
+
33
+ No dedicated style tab. Control via parent layout-cell.
34
+
35
+ ---
36
+
37
+ ## Props — Actions Tab
38
+
39
+ No dedicated action tab. Row actions are defined in `actionsConfig`.
40
+
41
+ ---
42
+
43
+ ## Use Cases
44
+
45
+ **When to use:**
46
+ - Invoice line items: editable rows with qty, price, description.
47
+ - Bulk data entry: import-like screens with many rows to fill.
48
+ - Editable configuration tables.
49
+ - Any tabular form where users add/edit/delete rows.
50
+
51
+ **When NOT to use:**
52
+ - Read-only server-fetched data displays → use `reportViewer`.
53
+ - Simple static tables without editing → use `dataTableViewer`.
54
+ - Single record forms → use individual form fields.
55
+
56
+ ---
57
+
58
+ ## Schema Examples
59
+
60
+ ### Editable invoice lines
61
+ ```json
62
+ {
63
+ "type": "dataGrid",
64
+ "props": {
65
+ "key": "invoiceLines",
66
+ "dataKey": "data.lines",
67
+ "columns": "[{ headerName: 'Description', field: 'description', editable: true }, { headerName: 'Qty', field: 'qty', editable: true, width: 100 }, { headerName: 'Price', field: 'price', editable: true, width: 120 }]",
68
+ "showAddBtn": true,
69
+ "showDeleteCol": true,
70
+ "addLabel": "+ Add Line",
71
+ "addRow": "return { id: Date.now(), description: '', qty: 1, price: 0 }",
72
+ "height": "350px"
73
+ }
74
+ }
75
+ ```
76
+
77
+ ### Read-only grid with row actions
78
+ ```json
79
+ {
80
+ "type": "dataGrid",
81
+ "props": {
82
+ "key": "employeeTable",
83
+ "dataKey": "data.employees",
84
+ "columns": "data.employeeColumns",
85
+ "readOnly": true,
86
+ "showAddBtn": false,
87
+ "showDeleteCol": false,
88
+ "rowSelection": "single",
89
+ "pagination": true,
90
+ "pageSize": 25,
91
+ "height": "500px",
92
+ "actionsConfig": [
93
+ {
94
+ "label": "Edit",
95
+ "color": "primary",
96
+ "variant": "text",
97
+ "icon": "EditOutlined",
98
+ "code": "setData({ selectedEmployee: data.row.data }); openDialog('editEmployee')"
99
+ },
100
+ {
101
+ "label": "Delete",
102
+ "color": "error",
103
+ "variant": "text",
104
+ "icon": "DeleteOutlined",
105
+ "confirmation": "Are you sure you want to delete this employee?",
106
+ "code": "deleteEmployee({ id: data.row.data.id })"
107
+ }
108
+ ]
109
+ }
110
+ }
111
+ ```
112
+
113
+ ### Multi-select with pagination
114
+ ```json
115
+ {
116
+ "type": "dataGrid",
117
+ "props": {
118
+ "key": "orderItems",
119
+ "dataKey": "data.orders",
120
+ "columns": "data.orderColumns",
121
+ "rowSelection": "multiple",
122
+ "pagination": true,
123
+ "pageSize": 50,
124
+ "height": "600px",
125
+ "showAddBtn": false,
126
+ "showDeleteCol": false
127
+ }
128
+ }
129
+ ```
@@ -0,0 +1,115 @@
1
+ # Component: dataTableViewer
2
+
3
+ A simple read-only HTML table for displaying data arrays. Fully styleable (header, cell, row, border). No editing, no sorting, no pagination.
4
+
5
+ > ⚠️ Use this for **simple display tables** where the data is already loaded in `data`. For server-fetched paginated data use `reportViewer`. For editable rows use `dataGrid`.
6
+
7
+ ---
8
+
9
+ ## Props — Main Tab
10
+
11
+ | Prop | Type | Options / Notes |
12
+ |------|------|-----------------|
13
+ | `dataKey` | expression | Key in page data pointing to the rows array, e.g. `"summaryRows"`. |
14
+ | `columns` | table-columns-editor | Column definitions: `[{ label: 'Column Header', field: 'rowProperty' }]`. `label` = header text, `field` = property key on each row object. |
15
+ | `testData` | expression | JSON array of sample rows used when `data[dataKey]` is empty (preview/edit mode), e.g. `[{ name: "Alice", amount: 100 }]`. |
16
+ | `tableWidth` | expression | Overall table width, e.g. `"100%"` or `"800px"`. |
17
+ | `showHeader` | boolean | Show/hide the header row. Default: `true`. |
18
+ | `headerBgColor` | expression | Header row background color, e.g. `"#1976d2"` or `"primary.main"`. |
19
+ | `headerTextColor` | expression | Header text color. |
20
+ | `headerFontSize` | expression | Header font size in px, e.g. `"14"`. |
21
+ | `headerAlign` | select | `left` · `center` · `right` — Header text alignment. |
22
+ | `headerPaddingH` | expression | Header horizontal padding in px. |
23
+ | `headerPaddingV` | expression | Header vertical padding in px. |
24
+ | `fontSize` | expression | Cell font size in px. |
25
+ | `cellTextColor` | expression | Cell text color. |
26
+ | `cellAlign` | select | `left` · `center` · `right` — Cell text alignment. |
27
+ | `cellPaddingH` | expression | Cell horizontal padding in px. |
28
+ | `cellPaddingV` | expression | Cell vertical padding in px. |
29
+ | `cellVerticalAlign` | select | `top` · `middle` · `bottom` — Vertical alignment of cell content. |
30
+ | `striped` | boolean | Alternating row background colors. |
31
+ | `stripedColor` | expression | Color used for alternating rows, e.g. `"#f5f5f5"`. |
32
+ | `rowHover` | boolean | Highlights rows on mouse hover. |
33
+ | `rowHoverColor` | expression | Hover background color. |
34
+ | `bordered` | boolean | Adds cell borders. |
35
+ | `borderColor` | expression | Border color, e.g. `"#e0e0e0"`. |
36
+ | `borderWidth` | expression | Border thickness in px, e.g. `"1"`. |
37
+
38
+ ---
39
+
40
+ ## Props — Style Tab
41
+
42
+ No dedicated style tab. Use parent layout-cell.
43
+
44
+ ---
45
+
46
+ ## Props — Actions Tab
47
+
48
+ No actions. Table is read-only.
49
+
50
+ ---
51
+
52
+ ## Use Cases
53
+
54
+ **When to use:**
55
+ - Display a summary table from data already available in `data`.
56
+ - Read-only reference tables (pricing tiers, feature comparison).
57
+ - Report sections inside a dashboard.
58
+ - Print-ready data tables.
59
+
60
+ **When NOT to use:**
61
+ - Editable rows → use `dataGrid`.
62
+ - Server-fetched paginated data → use `reportViewer`.
63
+ - Large datasets needing sorting/filtering → use `reportViewer`.
64
+
65
+ ---
66
+
67
+ ## Schema Examples
68
+
69
+ ### Basic data table
70
+ ```json
71
+ {
72
+ "type": "dataTableViewer",
73
+ "props": {
74
+ "dataKey": "summaryData",
75
+ "columns": [
76
+ { "label": "Name", "field": "name" },
77
+ { "label": "Department", "field": "department" },
78
+ { "label": "Salary", "field": "salary" }
79
+ ],
80
+ "showHeader": true,
81
+ "tableWidth": "100%",
82
+ "headerBgColor": "#1976d2",
83
+ "headerTextColor": "#ffffff",
84
+ "striped": true,
85
+ "stripedColor": "#f5f5f5",
86
+ "rowHover": true
87
+ }
88
+ }
89
+ ```
90
+
91
+ ### Styled bordered table
92
+ ```json
93
+ {
94
+ "type": "dataTableViewer",
95
+ "props": {
96
+ "dataKey": "pricingTiers",
97
+ "columns": [
98
+ { "label": "Plan", "field": "plan" },
99
+ { "label": "Price", "field": "price" },
100
+ { "label": "Users", "field": "maxUsers" },
101
+ { "label": "Storage", "field": "storage" }
102
+ ],
103
+ "tableWidth": "100%",
104
+ "headerBgColor": "#263238",
105
+ "headerTextColor": "#ffffff",
106
+ "headerAlign": "center",
107
+ "cellAlign": "center",
108
+ "bordered": true,
109
+ "borderColor": "#cfd8dc",
110
+ "borderWidth": "1",
111
+ "cellPaddingH": "12",
112
+ "cellPaddingV": "10"
113
+ }
114
+ }
115
+ ```