@burdenoff/microfe-bigconsole 2026.1103.2 → 2026.1103.4

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.
@@ -0,0 +1,181 @@
1
+ //#region src/bigconsole/utils/widgetDemoCatalog.ts
2
+ var e = [
3
+ {
4
+ type: "metric_card",
5
+ title: "Metric Card",
6
+ titleKey: "bigconsole.widgetDemo.type.metricCard.title",
7
+ description: "Single metric with trend and sparkline",
8
+ descriptionKey: "bigconsole.widgetDemo.type.metricCard.description",
9
+ category: "KPI"
10
+ },
11
+ {
12
+ type: "kpi_card_comparison",
13
+ title: "KPI Card Comparison",
14
+ titleKey: "bigconsole.widgetDemo.type.kpiCardComparison.title",
15
+ description: "Multiple KPIs with comparisons",
16
+ descriptionKey: "bigconsole.widgetDemo.type.kpiCardComparison.description",
17
+ category: "KPI"
18
+ },
19
+ {
20
+ type: "gauge",
21
+ title: "Gauge",
22
+ titleKey: "bigconsole.widgetDemo.type.gauge.title",
23
+ description: "Circular/linear gauge with thresholds",
24
+ descriptionKey: "bigconsole.widgetDemo.type.gauge.description",
25
+ category: "KPI"
26
+ },
27
+ {
28
+ type: "progress",
29
+ title: "Progress",
30
+ titleKey: "bigconsole.widgetDemo.type.progress.title",
31
+ description: "Progress bar with milestones",
32
+ descriptionKey: "bigconsole.widgetDemo.type.progress.description",
33
+ category: "KPI"
34
+ },
35
+ {
36
+ type: "chart",
37
+ title: "Chart (Line/Bar/Area)",
38
+ titleKey: "bigconsole.widgetDemo.type.chart.title",
39
+ description: "Time-series data visualization",
40
+ descriptionKey: "bigconsole.widgetDemo.type.chart.description",
41
+ category: "Visualization"
42
+ },
43
+ {
44
+ type: "funnel_chart",
45
+ title: "Funnel Chart",
46
+ titleKey: "bigconsole.widgetDemo.type.funnelChart.title",
47
+ description: "Conversion funnel with stages",
48
+ descriptionKey: "bigconsole.widgetDemo.type.funnelChart.description",
49
+ category: "Visualization"
50
+ },
51
+ {
52
+ type: "heatmap",
53
+ title: "Heatmap",
54
+ titleKey: "bigconsole.widgetDemo.type.heatmap.title",
55
+ description: "Grid visualization with color intensity",
56
+ descriptionKey: "bigconsole.widgetDemo.type.heatmap.description",
57
+ category: "Visualization"
58
+ },
59
+ {
60
+ type: "waterfall",
61
+ title: "Waterfall",
62
+ titleKey: "bigconsole.widgetDemo.type.waterfall.title",
63
+ description: "Cumulative changes and a final total",
64
+ descriptionKey: "bigconsole.widgetDemo.type.waterfall.description",
65
+ category: "Visualization"
66
+ },
67
+ {
68
+ type: "sankey",
69
+ title: "Sankey",
70
+ titleKey: "bigconsole.widgetDemo.type.sankey.title",
71
+ description: "Weighted flows between connected categories",
72
+ descriptionKey: "bigconsole.widgetDemo.type.sankey.description",
73
+ category: "Visualization"
74
+ },
75
+ {
76
+ type: "box_plot",
77
+ title: "Box Plot",
78
+ titleKey: "bigconsole.widgetDemo.type.boxPlot.title",
79
+ description: "Quartiles, whiskers and outliers by group",
80
+ descriptionKey: "bigconsole.widgetDemo.type.boxPlot.description",
81
+ category: "Visualization"
82
+ },
83
+ {
84
+ type: "map",
85
+ title: "Map",
86
+ titleKey: "bigconsole.widgetDemo.type.map.title",
87
+ description: "Geographic data with markers",
88
+ descriptionKey: "bigconsole.widgetDemo.type.map.description",
89
+ category: "Visualization"
90
+ },
91
+ {
92
+ type: "table",
93
+ title: "Table",
94
+ titleKey: "bigconsole.widgetDemo.type.table.title",
95
+ description: "Data table with sort/filter/pagination",
96
+ descriptionKey: "bigconsole.widgetDemo.type.table.description",
97
+ category: "Data"
98
+ },
99
+ {
100
+ type: "pivot_table",
101
+ title: "Pivot Table",
102
+ titleKey: "bigconsole.widgetDemo.type.pivotTable.title",
103
+ description: "Multi-dimensional data analysis",
104
+ descriptionKey: "bigconsole.widgetDemo.type.pivotTable.description",
105
+ category: "Data"
106
+ },
107
+ {
108
+ type: "retention",
109
+ title: "Retention / Cohort",
110
+ titleKey: "bigconsole.widgetDemo.type.retention.title",
111
+ description: "Cohort-by-period retention grid",
112
+ descriptionKey: "bigconsole.widgetDemo.type.retention.description",
113
+ category: "Data"
114
+ },
115
+ {
116
+ type: "list",
117
+ title: "List",
118
+ titleKey: "bigconsole.widgetDemo.type.list.title",
119
+ description: "Scrollable list with items",
120
+ descriptionKey: "bigconsole.widgetDemo.type.list.description",
121
+ category: "Data"
122
+ },
123
+ {
124
+ type: "form",
125
+ title: "Form (Adaptive Card)",
126
+ titleKey: "bigconsole.widgetDemo.type.form.title",
127
+ description: "Interactive form with inputs",
128
+ descriptionKey: "bigconsole.widgetDemo.type.form.description",
129
+ category: "Content"
130
+ },
131
+ {
132
+ type: "text",
133
+ title: "Text (Markdown)",
134
+ titleKey: "bigconsole.widgetDemo.type.text.title",
135
+ description: "Rich text with markdown support",
136
+ descriptionKey: "bigconsole.widgetDemo.type.text.description",
137
+ category: "Content"
138
+ },
139
+ {
140
+ type: "iframe",
141
+ title: "iFrame",
142
+ titleKey: "bigconsole.widgetDemo.type.iframe.title",
143
+ description: "Embedded external content",
144
+ descriptionKey: "bigconsole.widgetDemo.type.iframe.description",
145
+ category: "Content"
146
+ },
147
+ {
148
+ type: "calendar",
149
+ title: "Calendar",
150
+ titleKey: "bigconsole.widgetDemo.type.calendar.title",
151
+ description: "Event calendar view",
152
+ descriptionKey: "bigconsole.widgetDemo.type.calendar.description",
153
+ category: "Temporal"
154
+ },
155
+ {
156
+ type: "kanban",
157
+ title: "Kanban",
158
+ titleKey: "bigconsole.widgetDemo.type.kanban.title",
159
+ description: "Task board with columns",
160
+ descriptionKey: "bigconsole.widgetDemo.type.kanban.description",
161
+ category: "Temporal"
162
+ },
163
+ {
164
+ type: "timeline",
165
+ title: "Timeline (Gantt)",
166
+ titleKey: "bigconsole.widgetDemo.type.timeline.title",
167
+ description: "Project timeline with tasks",
168
+ descriptionKey: "bigconsole.widgetDemo.type.timeline.description",
169
+ category: "Temporal"
170
+ },
171
+ {
172
+ type: "custom",
173
+ title: "Custom",
174
+ titleKey: "bigconsole.widgetDemo.type.custom.title",
175
+ description: "User-defined widget rendering",
176
+ descriptionKey: "bigconsole.widgetDemo.type.custom.description",
177
+ category: "Custom"
178
+ }
179
+ ];
180
+ //#endregion
181
+ export { e as DEMO_WIDGET_TYPES };
@@ -0,0 +1,10 @@
1
+ import { WidgetType } from '../types';
2
+ export interface DemoSample {
3
+ /** Config the renderer needs alongside the data (field names, chart variant, ...). */
4
+ config?: Record<string, unknown>;
5
+ /** The payload. A function so time-dependent samples are built at render time. */
6
+ data: unknown | (() => unknown);
7
+ }
8
+ export declare const DEMO_SAMPLES: Partial<Record<WidgetType, DemoSample>>;
9
+ /** The payload for a sample, building time-dependent ones now. */
10
+ export declare function sampleData(sample: DemoSample): unknown;
@@ -0,0 +1,384 @@
1
+ //#region src/bigconsole/utils/widgetDemoSamples.ts
2
+ var e = {
3
+ metric_card: { data: {
4
+ value: 12840,
5
+ changePercent: 5.2,
6
+ trend: "up"
7
+ } },
8
+ kpi_card_comparison: { data: { kpis: [{
9
+ id: "rev",
10
+ label: "Revenue",
11
+ value: 12e4,
12
+ previousValue: 1e5,
13
+ unit: "$",
14
+ trend: "up",
15
+ trendValue: 20
16
+ }, {
17
+ id: "churn",
18
+ label: "Churn",
19
+ value: 2.1,
20
+ unit: "%",
21
+ trend: "down",
22
+ trendValue: -.4
23
+ }] } },
24
+ chart: {
25
+ config: { chartType: "line" },
26
+ data: [
27
+ {
28
+ name: "Jan",
29
+ sales: 10,
30
+ cost: 6
31
+ },
32
+ {
33
+ name: "Feb",
34
+ sales: 14,
35
+ cost: 7
36
+ },
37
+ {
38
+ name: "Mar",
39
+ sales: 12,
40
+ cost: 9
41
+ },
42
+ {
43
+ name: "Apr",
44
+ sales: 18,
45
+ cost: 10
46
+ }
47
+ ]
48
+ },
49
+ funnel_chart: {
50
+ config: { chartType: "funnel" },
51
+ data: { stages: [
52
+ {
53
+ name: "Visits",
54
+ value: 1e3
55
+ },
56
+ {
57
+ name: "Signups",
58
+ value: 400
59
+ },
60
+ {
61
+ name: "Paid",
62
+ value: 120
63
+ }
64
+ ] }
65
+ },
66
+ waterfall: { data: [
67
+ {
68
+ name: "Start",
69
+ value: 100
70
+ },
71
+ {
72
+ name: "Upsell",
73
+ value: 30
74
+ },
75
+ {
76
+ name: "Churn",
77
+ value: -20
78
+ }
79
+ ] },
80
+ sankey: { data: [
81
+ {
82
+ source: "Visits",
83
+ target: "Signups",
84
+ value: 400
85
+ },
86
+ {
87
+ source: "Signups",
88
+ target: "Paid",
89
+ value: 120
90
+ },
91
+ {
92
+ source: "Visits",
93
+ target: "Bounce",
94
+ value: 600
95
+ }
96
+ ] },
97
+ box_plot: { data: [
98
+ {
99
+ group: "A",
100
+ value: 1
101
+ },
102
+ {
103
+ group: "A",
104
+ value: 2
105
+ },
106
+ {
107
+ group: "A",
108
+ value: 3
109
+ },
110
+ {
111
+ group: "A",
112
+ value: 4
113
+ },
114
+ {
115
+ group: "B",
116
+ value: 5
117
+ },
118
+ {
119
+ group: "B",
120
+ value: 7
121
+ },
122
+ {
123
+ group: "B",
124
+ value: 9
125
+ }
126
+ ] },
127
+ table: { data: [
128
+ {
129
+ name: "Alice",
130
+ region: "EU",
131
+ sales: 120
132
+ },
133
+ {
134
+ name: "Bob",
135
+ region: "US",
136
+ sales: 95
137
+ },
138
+ {
139
+ name: "Chen",
140
+ region: "APAC",
141
+ sales: 143
142
+ }
143
+ ] },
144
+ pivot_table: {
145
+ config: {
146
+ rows: ["region"],
147
+ columns: ["product"],
148
+ values: [{
149
+ field: "sales",
150
+ aggregation: "sum"
151
+ }]
152
+ },
153
+ data: [
154
+ {
155
+ region: "EU",
156
+ product: "A",
157
+ sales: 10
158
+ },
159
+ {
160
+ region: "EU",
161
+ product: "B",
162
+ sales: 20
163
+ },
164
+ {
165
+ region: "US",
166
+ product: "A",
167
+ sales: 30
168
+ },
169
+ {
170
+ region: "US",
171
+ product: "B",
172
+ sales: 15
173
+ }
174
+ ]
175
+ },
176
+ gauge: { data: {
177
+ value: 72,
178
+ label: "CPU"
179
+ } },
180
+ progress: { data: {
181
+ value: 65,
182
+ max: 100,
183
+ label: "Quota",
184
+ target: 80
185
+ } },
186
+ list: { data: { items: [
187
+ {
188
+ id: "1",
189
+ title: "Server A",
190
+ subtitle: "healthy",
191
+ value: 99,
192
+ badge: {
193
+ text: "OK",
194
+ color: "success"
195
+ }
196
+ },
197
+ {
198
+ id: "2",
199
+ title: "Server B",
200
+ subtitle: "degraded",
201
+ value: 71
202
+ },
203
+ {
204
+ id: "3",
205
+ title: "Server C",
206
+ subtitle: "healthy",
207
+ value: 97
208
+ }
209
+ ] } },
210
+ form: {
211
+ config: {
212
+ layout: "vertical",
213
+ fields: [{
214
+ name: "name",
215
+ label: "Name",
216
+ type: "text"
217
+ }, {
218
+ name: "email",
219
+ label: "Email",
220
+ type: "email"
221
+ }]
222
+ },
223
+ data: {
224
+ name: "Ada",
225
+ email: "ada@example.com"
226
+ }
227
+ },
228
+ text: { data: {
229
+ content: "# Sample note\n\nSome **bold** text and a list:\n\n- one\n- two",
230
+ format: "markdown"
231
+ } },
232
+ map: { data: [
233
+ {
234
+ name: "London",
235
+ lat: 51.5074,
236
+ lng: -.1278,
237
+ value: 10
238
+ },
239
+ {
240
+ name: "Paris",
241
+ lat: 48.8566,
242
+ lng: 2.3522,
243
+ value: 6
244
+ },
245
+ {
246
+ name: "Berlin",
247
+ lat: 52.52,
248
+ lng: 13.405,
249
+ value: 8
250
+ }
251
+ ] },
252
+ heatmap: { data: {
253
+ rows: ["Mon", "Tue"],
254
+ columns: ["AM", "PM"],
255
+ cells: [
256
+ {
257
+ row: "Mon",
258
+ column: "AM",
259
+ value: 3
260
+ },
261
+ {
262
+ row: "Mon",
263
+ column: "PM",
264
+ value: 8
265
+ },
266
+ {
267
+ row: "Tue",
268
+ column: "AM",
269
+ value: 5
270
+ },
271
+ {
272
+ row: "Tue",
273
+ column: "PM",
274
+ value: 1
275
+ }
276
+ ]
277
+ } },
278
+ calendar: { data: () => {
279
+ let e = Date.now(), t = (t, n) => new Date(e + t * 864e5 + n * 60 * 60 * 1e3).toISOString();
280
+ return { events: [
281
+ {
282
+ id: "standup",
283
+ title: "Team standup",
284
+ start: t(1, 1),
285
+ end: t(1, 2)
286
+ },
287
+ {
288
+ id: "review",
289
+ title: "Quarterly review",
290
+ start: t(3, 2),
291
+ end: t(3, 4)
292
+ },
293
+ {
294
+ id: "planning",
295
+ title: "Sprint planning",
296
+ start: t(5, 1),
297
+ end: t(5, 3)
298
+ }
299
+ ] };
300
+ } },
301
+ kanban: { data: {
302
+ columns: [
303
+ {
304
+ id: "todo",
305
+ title: "To do"
306
+ },
307
+ {
308
+ id: "doing",
309
+ title: "In progress"
310
+ },
311
+ {
312
+ id: "done",
313
+ title: "Done"
314
+ }
315
+ ],
316
+ tasks: [
317
+ {
318
+ id: "t1",
319
+ title: "Write spec",
320
+ column: "todo",
321
+ priority: "high"
322
+ },
323
+ {
324
+ id: "t2",
325
+ title: "Build it",
326
+ column: "doing"
327
+ },
328
+ {
329
+ id: "t3",
330
+ title: "Ship",
331
+ column: "done"
332
+ }
333
+ ]
334
+ } },
335
+ timeline: { data: {
336
+ tasks: [{
337
+ id: "1",
338
+ name: "Design",
339
+ start: "2026-11-01",
340
+ end: "2026-11-10",
341
+ progress: 60
342
+ }, {
343
+ id: "2",
344
+ name: "Build",
345
+ start: "2026-11-08",
346
+ end: "2026-11-25",
347
+ progress: 20
348
+ }],
349
+ milestones: [{
350
+ id: "m1",
351
+ name: "Launch",
352
+ date: "2026-11-30"
353
+ }]
354
+ } },
355
+ retention: { data: {
356
+ periods: [
357
+ "Week 0",
358
+ "Week 1",
359
+ "Week 2"
360
+ ],
361
+ cohorts: [{
362
+ cohort: "Jan",
363
+ initialSize: 1200,
364
+ values: [
365
+ 100,
366
+ 62,
367
+ 41
368
+ ]
369
+ }, {
370
+ cohort: "Feb",
371
+ initialSize: 900,
372
+ values: [
373
+ 100,
374
+ 58,
375
+ 37
376
+ ]
377
+ }]
378
+ } }
379
+ };
380
+ function t(e) {
381
+ return typeof e.data == "function" ? e.data() : e.data;
382
+ }
383
+ //#endregion
384
+ export { e as DEMO_SAMPLES, t as sampleData };