@burdenoff/microfe-bigconsole 2026.924.2 → 2026.924.3

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 (124) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.js +137 -138
  2. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
  3. package/dist/bigconsole/assistant/previewController.js +10 -10
  4. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +17 -17
  5. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +32 -32
  6. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +52 -52
  7. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  8. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +7 -7
  9. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +53 -0
  10. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +1 -0
  11. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +60 -60
  12. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +21 -21
  13. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
  14. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +36 -36
  15. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
  16. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +38 -38
  17. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  18. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +121 -121
  19. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  20. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +22 -22
  21. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
  22. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +53 -53
  23. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
  24. package/dist/bigconsole/components/dashboard/WidgetPalette.js +47 -47
  25. package/dist/bigconsole/components/dashboard/index.js +1 -0
  26. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
  27. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
  28. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
  29. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +30 -29
  30. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -1
  31. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +48 -48
  32. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +103 -103
  33. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  34. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
  35. package/dist/bigconsole/components/overview/DashboardGuide.js +214 -0
  36. package/dist/bigconsole/components/overview/DashboardGuide.js.map +1 -0
  37. package/dist/bigconsole/components/overview/DataHealthCard.js +97 -0
  38. package/dist/bigconsole/components/overview/DataHealthCard.js.map +1 -0
  39. package/dist/bigconsole/components/overview/OverviewQuickActions.js +32 -0
  40. package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +1 -0
  41. package/dist/bigconsole/components/overview/OverviewStatCard.js +57 -0
  42. package/dist/bigconsole/components/overview/OverviewStatCard.js.map +1 -0
  43. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +107 -0
  44. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +1 -0
  45. package/dist/bigconsole/components/overview/dashboardGuideSteps.js +119 -0
  46. package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +1 -0
  47. package/dist/bigconsole/components/overview/index.js +8 -0
  48. package/dist/bigconsole/components/overview/overviewModel.js +119 -0
  49. package/dist/bigconsole/components/overview/overviewModel.js.map +1 -0
  50. package/dist/bigconsole/components/overview/useOverviewData.js +48 -0
  51. package/dist/bigconsole/components/overview/useOverviewData.js.map +1 -0
  52. package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
  53. package/dist/bigconsole/components/parser/ImportParserDialog.js +127 -127
  54. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  55. package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
  56. package/dist/bigconsole/components/preview/AiPreviewContent.js +5 -5
  57. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +33 -33
  58. package/dist/bigconsole/components/preview/AiPreviewPanel.js +38 -38
  59. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +13 -13
  60. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +70 -70
  61. package/dist/bigconsole/components/widgets/PropertiesPanel.js +28 -28
  62. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +25 -25
  63. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
  64. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
  65. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
  66. package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
  67. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
  68. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
  69. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +21 -21
  70. package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
  71. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
  72. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
  73. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
  74. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
  75. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
  76. package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
  77. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
  78. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +10 -10
  79. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +68 -68
  80. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  81. package/dist/bigconsole/pages/AdminPage.js +136 -136
  82. package/dist/bigconsole/pages/DashboardBuilderPage.js +10 -10
  83. package/dist/bigconsole/pages/DashboardViewPage.js +61 -61
  84. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  85. package/dist/bigconsole/pages/DashboardsPage.js +327 -348
  86. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  87. package/dist/bigconsole/pages/DataParsersPage.js +5 -5
  88. package/dist/bigconsole/pages/DataSinkBuilderPage.js +10 -10
  89. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  90. package/dist/bigconsole/pages/DataSinkViewPage.js +83 -83
  91. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  92. package/dist/bigconsole/pages/DataSinksPage.js +11 -11
  93. package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
  94. package/dist/bigconsole/pages/InsightsPage.js +315 -315
  95. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  96. package/dist/bigconsole/pages/OverviewPage.js +244 -0
  97. package/dist/bigconsole/pages/OverviewPage.js.map +1 -0
  98. package/dist/bigconsole/pages/ParserBuilderPage.js +5 -5
  99. package/dist/bigconsole/pages/ParserViewPage.js +98 -98
  100. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  101. package/dist/bigconsole/pages/PipelineBuilderPage.js +8 -8
  102. package/dist/bigconsole/pages/PipelineViewPage.js +46 -46
  103. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  104. package/dist/bigconsole/pages/PipelinesPage.js +80 -80
  105. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  106. package/dist/bigconsole/pages/SettingsPage.js +70 -70
  107. package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
  108. package/dist/bigconsole/pages/WorkflowViewPage.js +200 -200
  109. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  110. package/dist/bigconsole/pages/WorkflowsPage.js +78 -78
  111. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  112. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +34 -34
  113. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +79 -79
  114. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
  115. package/dist/bigconsole/utils/createDialogParam.js +14 -0
  116. package/dist/bigconsole/utils/createDialogParam.js.map +1 -0
  117. package/dist/generated/global-operations.js +1 -1
  118. package/dist/generated/wspace-operations.js +285 -222
  119. package/dist/generated/wspace-operations.js.map +1 -1
  120. package/dist/shared/hooks/useTr.js +10 -7
  121. package/dist/shared/hooks/useTr.js.map +1 -1
  122. package/package.json +1 -1
  123. package/dist/bigconsole/pages/HomePage.js +0 -318
  124. package/dist/bigconsole/pages/HomePage.js.map +0 -1
@@ -1,66 +1,66 @@
1
1
  import e, { memo as t, useCallback as n, useMemo as r } from "react";
2
- import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
2
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
3
+ import { useI18n as o } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
4
4
  //#region src/bigconsole/renderers/adapters/BlockKitRenderer.tsx
5
5
  function s(t) {
6
6
  if (!t) return null;
7
7
  if (typeof t == "string") return t;
8
8
  if (t.type === "mrkdwn") {
9
- let n = t.text || "", r = [], i = n, o = 0;
10
- for (; i.length > 0;) {
11
- let t = i.match(/^\*([^*]+)\*/);
9
+ let n = t.text || "", r = [], a = n, o = 0;
10
+ for (; a.length > 0;) {
11
+ let t = a.match(/^\*([^*]+)\*/);
12
12
  if (t) {
13
- r.push(/* @__PURE__ */ a("strong", { children: t[1] }, o++)), i = i.slice(t[0].length);
13
+ r.push(/* @__PURE__ */ i("strong", { children: t[1] }, o++)), a = a.slice(t[0].length);
14
14
  continue;
15
15
  }
16
- let n = i.match(/^_([^_]+)_/);
16
+ let n = a.match(/^_([^_]+)_/);
17
17
  if (n) {
18
- r.push(/* @__PURE__ */ a("em", { children: n[1] }, o++)), i = i.slice(n[0].length);
18
+ r.push(/* @__PURE__ */ i("em", { children: n[1] }, o++)), a = a.slice(n[0].length);
19
19
  continue;
20
20
  }
21
- let s = i.match(/^~([^~]+)~/);
21
+ let s = a.match(/^~([^~]+)~/);
22
22
  if (s) {
23
- r.push(/* @__PURE__ */ a("del", { children: s[1] }, o++)), i = i.slice(s[0].length);
23
+ r.push(/* @__PURE__ */ i("del", { children: s[1] }, o++)), a = a.slice(s[0].length);
24
24
  continue;
25
25
  }
26
- let c = i.match(/^`([^`]+)`/);
26
+ let c = a.match(/^`([^`]+)`/);
27
27
  if (c) {
28
- r.push(/* @__PURE__ */ a("code", {
28
+ r.push(/* @__PURE__ */ i("code", {
29
29
  className: "bg-bg-sunken px-1 rounded text-sm",
30
30
  children: c[1]
31
- }, o++)), i = i.slice(c[0].length);
31
+ }, o++)), a = a.slice(c[0].length);
32
32
  continue;
33
33
  }
34
- let l = i.match(/^<([^|>]+)\|([^>]+)>/);
34
+ let l = a.match(/^<([^|>]+)\|([^>]+)>/);
35
35
  if (l) {
36
- r.push(/* @__PURE__ */ a("a", {
36
+ r.push(/* @__PURE__ */ i("a", {
37
37
  href: l[1],
38
38
  className: "text-blue-600 dark:text-blue-400 underline",
39
39
  target: "_blank",
40
40
  rel: "noopener noreferrer",
41
41
  children: l[2]
42
- }, o++)), i = i.slice(l[0].length);
42
+ }, o++)), a = a.slice(l[0].length);
43
43
  continue;
44
44
  }
45
- let u = i.match(/^<([^|>]+)>/);
45
+ let u = a.match(/^<([^|>]+)>/);
46
46
  if (u) {
47
- r.push(/* @__PURE__ */ a("a", {
47
+ r.push(/* @__PURE__ */ i("a", {
48
48
  href: u[1],
49
49
  className: "text-blue-600 dark:text-blue-400 underline",
50
50
  target: "_blank",
51
51
  rel: "noopener noreferrer",
52
52
  children: u[1]
53
- }, o++)), i = i.slice(u[0].length);
53
+ }, o++)), a = a.slice(u[0].length);
54
54
  continue;
55
55
  }
56
- let d = i.match(/^[^*_~`<]+/);
56
+ let d = a.match(/^[^*_~`<]+/);
57
57
  if (d) {
58
- r.push(/* @__PURE__ */ a(e.Fragment, { children: d[0] }, o++)), i = i.slice(d[0].length);
58
+ r.push(/* @__PURE__ */ i(e.Fragment, { children: d[0] }, o++)), a = a.slice(d[0].length);
59
59
  continue;
60
60
  }
61
- r.push(/* @__PURE__ */ a(e.Fragment, { children: i[0] }, o++)), i = i.slice(1);
61
+ r.push(/* @__PURE__ */ i(e.Fragment, { children: a[0] }, o++)), a = a.slice(1);
62
62
  }
63
- return /* @__PURE__ */ a("span", { children: r });
63
+ return /* @__PURE__ */ i("span", { children: r });
64
64
  }
65
65
  return t.text;
66
66
  }
@@ -93,68 +93,68 @@ function u(e, t) {
93
93
  }
94
94
  var d = t(function({ block: e, index: t, onAction: n }) {
95
95
  switch (e.type) {
96
- case "header": return /* @__PURE__ */ a("div", {
96
+ case "header": return /* @__PURE__ */ i("div", {
97
97
  className: "py-2",
98
- children: /* @__PURE__ */ a("h2", {
98
+ children: /* @__PURE__ */ i("h2", {
99
99
  className: "text-lg font-bold text-primary",
100
100
  children: s(e.text)
101
101
  })
102
102
  });
103
- case "section": return /* @__PURE__ */ o("div", {
103
+ case "section": return /* @__PURE__ */ a("div", {
104
104
  className: "py-2 flex items-start gap-4",
105
- children: [/* @__PURE__ */ o("div", {
105
+ children: [/* @__PURE__ */ a("div", {
106
106
  className: "flex-1",
107
- children: [e.text && /* @__PURE__ */ a("p", {
107
+ children: [e.text && /* @__PURE__ */ i("p", {
108
108
  className: "text-primary",
109
109
  children: s(e.text)
110
- }), e.fields && e.fields.length > 0 && /* @__PURE__ */ a("div", {
110
+ }), e.fields && e.fields.length > 0 && /* @__PURE__ */ i("div", {
111
111
  className: "grid grid-cols-2 gap-2 mt-2",
112
- children: e.fields.map((e, t) => /* @__PURE__ */ a("div", {
112
+ children: e.fields.map((e, t) => /* @__PURE__ */ i("div", {
113
113
  className: "text-sm",
114
114
  children: s(e)
115
115
  }, t))
116
116
  })]
117
- }), e.accessory && /* @__PURE__ */ a("div", {
117
+ }), e.accessory && /* @__PURE__ */ i("div", {
118
118
  className: "flex-shrink-0",
119
- children: /* @__PURE__ */ a(f, {
119
+ children: /* @__PURE__ */ i(f, {
120
120
  accessory: e.accessory,
121
121
  onAction: n
122
122
  })
123
123
  })]
124
124
  });
125
- case "divider": return /* @__PURE__ */ a("hr", { className: "my-2 border-default" });
126
- case "image": return /* @__PURE__ */ o("div", {
125
+ case "divider": return /* @__PURE__ */ i("hr", { className: "my-2 border-default" });
126
+ case "image": return /* @__PURE__ */ a("div", {
127
127
  className: "py-2",
128
- children: [e.title && /* @__PURE__ */ a("p", {
128
+ children: [e.title && /* @__PURE__ */ i("p", {
129
129
  className: "text-sm text-secondary mb-1",
130
130
  children: s(e.title)
131
- }), /* @__PURE__ */ a("img", {
131
+ }), /* @__PURE__ */ i("img", {
132
132
  src: e.image_url,
133
133
  alt: e.alt_text || "",
134
134
  className: "max-w-full h-auto rounded"
135
135
  })]
136
136
  });
137
- case "context": return /* @__PURE__ */ a("div", {
137
+ case "context": return /* @__PURE__ */ i("div", {
138
138
  className: "py-1 flex items-center gap-2 flex-wrap text-sm text-secondary",
139
- children: e.elements?.map((e, t) => /* @__PURE__ */ a("span", { children: e.type === "image" ? /* @__PURE__ */ a("img", {
139
+ children: e.elements?.map((e, t) => /* @__PURE__ */ i("span", { children: e.type === "image" ? /* @__PURE__ */ i("img", {
140
140
  src: e.image_url,
141
141
  alt: e.alt_text || "",
142
142
  className: "w-5 h-5 rounded inline-block"
143
143
  }) : s(e.text) }, t))
144
144
  });
145
- case "actions": return /* @__PURE__ */ a("div", {
145
+ case "actions": return /* @__PURE__ */ i("div", {
146
146
  className: "py-2 flex gap-2 flex-wrap",
147
- children: e.elements?.map((e, t) => /* @__PURE__ */ a(p, {
147
+ children: e.elements?.map((e, t) => /* @__PURE__ */ i(p, {
148
148
  element: e,
149
149
  onAction: n
150
150
  }, t))
151
151
  });
152
- case "input": return /* @__PURE__ */ o("div", {
152
+ case "input": return /* @__PURE__ */ a("div", {
153
153
  className: "py-2",
154
- children: [e.label ? /* @__PURE__ */ a("label", {
154
+ children: [e.label ? /* @__PURE__ */ i("label", {
155
155
  className: "block text-sm font-medium text-secondary mb-1",
156
156
  children: s(e.label)
157
- }) : null, /* @__PURE__ */ a("input", {
157
+ }) : null, /* @__PURE__ */ i("input", {
158
158
  type: "text",
159
159
  className: "w-full px-3 py-2 border border-default rounded-md bg-surface text-primary transition-colors focus:ring-2 focus:ring-primary/20",
160
160
  placeholder: (() => {
@@ -163,33 +163,33 @@ var d = t(function({ block: e, index: t, onAction: n }) {
163
163
  })()
164
164
  })]
165
165
  });
166
- case "rich_text": return /* @__PURE__ */ a("div", {
166
+ case "rich_text": return /* @__PURE__ */ i("div", {
167
167
  className: "py-2 text-primary",
168
- children: e.elements?.map((e, t) => /* @__PURE__ */ a("span", { children: s(e.text) }, t))
168
+ children: e.elements?.map((e, t) => /* @__PURE__ */ i("span", { children: s(e.text) }, t))
169
169
  });
170
170
  default: return null;
171
171
  }
172
172
  }), f = t(function({ accessory: e, onAction: t }) {
173
173
  switch (e.type) {
174
- case "image": return /* @__PURE__ */ a("img", {
174
+ case "image": return /* @__PURE__ */ i("img", {
175
175
  src: e.image_url,
176
176
  alt: e.alt_text || "",
177
177
  className: "w-12 h-12 rounded object-cover"
178
178
  });
179
- case "button": return /* @__PURE__ */ a("button", {
179
+ case "button": return /* @__PURE__ */ i("button", {
180
180
  type: "button",
181
181
  onClick: () => t?.(e.action_id || "", e.value),
182
182
  className: `px-3 py-1.5 text-sm font-medium rounded ${c(e.style)}`,
183
183
  children: s(e.text)
184
184
  });
185
- case "overflow": return /* @__PURE__ */ a("button", {
185
+ case "overflow": return /* @__PURE__ */ i("button", {
186
186
  type: "button",
187
187
  className: "p-1 text-secondary hover:text-primary transition-colors",
188
- children: /* @__PURE__ */ a("svg", {
188
+ children: /* @__PURE__ */ i("svg", {
189
189
  className: "w-5 h-5",
190
190
  fill: "currentColor",
191
191
  viewBox: "0 0 20 20",
192
- children: /* @__PURE__ */ a("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" })
192
+ children: /* @__PURE__ */ i("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" })
193
193
  })
194
194
  });
195
195
  default: return null;
@@ -199,44 +199,44 @@ var d = t(function({ block: e, index: t, onAction: n }) {
199
199
  e.action_id && t?.(e.action_id, e.value), e.url && window.open(e.url, "_blank");
200
200
  }, [e, t]);
201
201
  switch (e.type) {
202
- case "button": return /* @__PURE__ */ a("button", {
202
+ case "button": return /* @__PURE__ */ i("button", {
203
203
  type: "button",
204
204
  onClick: r,
205
205
  className: `px-4 py-2 text-sm font-medium rounded ${c(e.style)}`,
206
206
  children: s(e.text)
207
207
  });
208
- case "static_select": return /* @__PURE__ */ o("select", {
208
+ case "static_select": return /* @__PURE__ */ a("select", {
209
209
  className: "px-3 py-2 text-sm border border-default rounded bg-surface text-primary transition-colors focus:ring-2 focus:ring-primary/20",
210
210
  onChange: (n) => t?.(e.action_id || "", n.target.value),
211
- children: [e.placeholder ? /* @__PURE__ */ a("option", {
211
+ children: [e.placeholder ? /* @__PURE__ */ i("option", {
212
212
  value: "",
213
213
  children: s(e.placeholder)
214
- }) : null, e.options?.map((e, t) => /* @__PURE__ */ a("option", {
214
+ }) : null, e.options?.map((e, t) => /* @__PURE__ */ i("option", {
215
215
  value: e.value,
216
216
  children: s(e.text)
217
217
  }, t))]
218
218
  });
219
- case "datepicker": return /* @__PURE__ */ a("input", {
219
+ case "datepicker": return /* @__PURE__ */ i("input", {
220
220
  type: "date",
221
221
  className: "px-3 py-2 text-sm border border-default rounded bg-surface text-primary transition-colors focus:ring-2 focus:ring-primary/20",
222
222
  onChange: (n) => t?.(e.action_id || "", n.target.value)
223
223
  });
224
- case "checkboxes": return /* @__PURE__ */ a("div", {
224
+ case "checkboxes": return /* @__PURE__ */ i("div", {
225
225
  className: "space-y-1",
226
- children: e.options?.map((n, r) => /* @__PURE__ */ o("label", {
226
+ children: e.options?.map((n, r) => /* @__PURE__ */ a("label", {
227
227
  className: "flex items-center gap-2 text-sm",
228
- children: [/* @__PURE__ */ a("input", {
228
+ children: [/* @__PURE__ */ i("input", {
229
229
  type: "checkbox",
230
230
  className: "rounded border-default transition-colors",
231
231
  onChange: (r) => t?.(e.action_id || "", n.value, { checked: r.target.checked })
232
232
  }), s(n.text)]
233
233
  }, r))
234
234
  });
235
- case "radio_buttons": return /* @__PURE__ */ a("div", {
235
+ case "radio_buttons": return /* @__PURE__ */ i("div", {
236
236
  className: "space-y-1",
237
- children: e.options?.map((n, r) => /* @__PURE__ */ o("label", {
237
+ children: e.options?.map((n, r) => /* @__PURE__ */ a("label", {
238
238
  className: "flex items-center gap-2 text-sm",
239
- children: [/* @__PURE__ */ a("input", {
239
+ children: [/* @__PURE__ */ i("input", {
240
240
  type: "radio",
241
241
  name: e.action_id,
242
242
  className: "border-default transition-colors",
@@ -310,7 +310,7 @@ function g(e) {
310
310
  return e == null ? "-" : typeof e == "boolean" ? e ? "Yes" : "No" : typeof e == "object" ? JSON.stringify(e) : String(e);
311
311
  }
312
312
  var _ = t(function({ widget: e, data: t, template: s, isLoading: c, error: u, onDrilldown: f, onAction: p }) {
313
- let { t: h } = i(), g = r(() => {
313
+ let { t: h } = o(), g = r(() => {
314
314
  if (s && "blocks" in s) return l(s, t);
315
315
  if (t && "blocks" in t) return t;
316
316
  if (t && Object.keys(t).length > 0) {
@@ -328,51 +328,51 @@ var _ = t(function({ widget: e, data: t, template: s, isLoading: c, error: u, on
328
328
  ...n
329
329
  });
330
330
  }, [p]);
331
- return c ? /* @__PURE__ */ a("div", {
331
+ return c ? /* @__PURE__ */ i("div", {
332
332
  className: "flex items-center justify-center h-full p-4 animate-in fade-in duration-200",
333
- children: /* @__PURE__ */ o("div", {
333
+ children: /* @__PURE__ */ a("div", {
334
334
  className: "animate-pulse space-y-2 w-full",
335
335
  children: [
336
- /* @__PURE__ */ a("div", { className: "h-4 bg-bg-sunken rounded w-3/4" }),
337
- /* @__PURE__ */ a("div", { className: "h-4 bg-bg-sunken rounded w-1/2" }),
338
- /* @__PURE__ */ a("div", { className: "h-4 bg-bg-sunken rounded w-5/6" })
336
+ /* @__PURE__ */ i("div", { className: "h-4 bg-bg-sunken rounded w-3/4" }),
337
+ /* @__PURE__ */ i("div", { className: "h-4 bg-bg-sunken rounded w-1/2" }),
338
+ /* @__PURE__ */ i("div", { className: "h-4 bg-bg-sunken rounded w-5/6" })
339
339
  ]
340
340
  })
341
- }) : u ? /* @__PURE__ */ a("div", {
341
+ }) : u ? /* @__PURE__ */ i("div", {
342
342
  className: "flex items-center justify-center h-full p-4 text-red-600 dark:text-red-400",
343
- children: /* @__PURE__ */ o("div", {
343
+ children: /* @__PURE__ */ a("div", {
344
344
  className: "text-center",
345
- children: [/* @__PURE__ */ a("p", {
345
+ children: [/* @__PURE__ */ i("p", {
346
346
  className: "font-medium",
347
347
  children: h("bigconsole.widget.renderer.blockKit.errorRendering", "Error rendering blocks")
348
- }), /* @__PURE__ */ a("p", {
348
+ }), /* @__PURE__ */ i("p", {
349
349
  className: "text-sm mt-1",
350
350
  children: u
351
351
  })]
352
352
  })
353
- }) : g?.blocks?.length ? /* @__PURE__ */ o("div", {
353
+ }) : g?.blocks?.length ? /* @__PURE__ */ a("div", {
354
354
  className: "flex flex-col h-full p-4 bg-surface",
355
- children: [g.blocks.map((e, t) => /* @__PURE__ */ a(d, {
355
+ children: [g.blocks.map((e, t) => /* @__PURE__ */ i(d, {
356
356
  block: e,
357
357
  index: t,
358
358
  onAction: _
359
- }, t)), g.attachments?.map((e, t) => /* @__PURE__ */ o("div", {
359
+ }, t)), g.attachments?.map((e, t) => /* @__PURE__ */ a("div", {
360
360
  className: "mt-4 border-l-4 pl-3",
361
361
  style: { borderLeftColor: e.color || "var(--color-border)" },
362
- children: [e.blocks?.map((e, t) => /* @__PURE__ */ a(d, {
362
+ children: [e.blocks?.map((e, t) => /* @__PURE__ */ i(d, {
363
363
  block: e,
364
364
  index: t,
365
365
  onAction: _
366
- }, t)), e.fallback && !e.blocks && /* @__PURE__ */ a("p", {
366
+ }, t)), e.fallback && !e.blocks && /* @__PURE__ */ i("p", {
367
367
  className: "text-sm text-secondary",
368
368
  children: e.fallback
369
369
  })]
370
370
  }, `attachment-${t}`))]
371
- }) : /* @__PURE__ */ a("div", {
371
+ }) : /* @__PURE__ */ i("div", {
372
372
  className: "flex items-center justify-center h-full p-4 text-secondary animate-in fade-in duration-200",
373
- children: /* @__PURE__ */ o("div", {
373
+ children: /* @__PURE__ */ a("div", {
374
374
  className: "text-center",
375
- children: [/* @__PURE__ */ a("p", { children: h("bigconsole.widget.renderer.blockKit.noContent", "No content to display") }), /* @__PURE__ */ a("p", {
375
+ children: [/* @__PURE__ */ i("p", { children: h("bigconsole.widget.renderer.blockKit.noContent", "No content to display") }), /* @__PURE__ */ i("p", {
376
376
  className: "text-sm mt-1",
377
377
  children: h("bigconsole.widget.renderer.blockKit.configureBlocks", "Configure blocks or provide data")
378
378
  })]
@@ -1,6 +1,6 @@
1
1
  import { memo as e, useMemo as t } from "react";
2
- import { useI18n as n } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
2
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
+ import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
4
4
  //#region src/bigconsole/renderers/adapters/CustomRenderer.tsx
5
5
  var a = /* @__PURE__ */ new Map();
6
6
  function o(e, t) {
@@ -13,77 +13,77 @@ function c() {
13
13
  return Array.from(a.keys());
14
14
  }
15
15
  o("SimpleText", ({ data: e, props: t }) => {
16
- let { t: i } = n(), a = e.text || t?.text, o = t?.align || "left";
17
- return a ? /* @__PURE__ */ r("div", {
16
+ let { t: r } = i(), a = e.text || t?.text, o = t?.align || "left";
17
+ return a ? /* @__PURE__ */ n("div", {
18
18
  className: `p-4 text-${o}`,
19
- children: /* @__PURE__ */ r("p", {
19
+ children: /* @__PURE__ */ n("p", {
20
20
  className: "text-primary",
21
21
  children: a
22
22
  })
23
- }) : /* @__PURE__ */ r("div", {
23
+ }) : /* @__PURE__ */ n("div", {
24
24
  className: "flex items-center justify-center h-full p-4 text-secondary",
25
- children: /* @__PURE__ */ r("p", {
25
+ children: /* @__PURE__ */ n("p", {
26
26
  className: "text-sm",
27
- children: i("bigconsole.widget.renderer.custom.noData", "No data available")
27
+ children: r("bigconsole.widget.renderer.custom.noData", "No data available")
28
28
  })
29
29
  });
30
30
  }), o("Counter", ({ data: e, props: t }) => {
31
- let { t: a } = n(), o = e.value ?? t?.value, s = e.label || t?.label, c = t?.format || "number";
32
- if (o == null) return /* @__PURE__ */ r("div", {
31
+ let { t: a } = i(), o = e.value ?? t?.value, s = e.label || t?.label, c = t?.format || "number";
32
+ if (o == null) return /* @__PURE__ */ n("div", {
33
33
  className: "flex flex-col items-center justify-center h-full p-4 text-secondary",
34
- children: /* @__PURE__ */ r("p", {
34
+ children: /* @__PURE__ */ n("p", {
35
35
  className: "text-sm",
36
36
  children: a("bigconsole.widget.renderer.custom.noData", "No data available")
37
37
  })
38
38
  });
39
39
  let l = o;
40
- return /* @__PURE__ */ i("div", {
40
+ return /* @__PURE__ */ r("div", {
41
41
  className: "flex flex-col items-center justify-center h-full p-4 animate-in fade-in duration-200",
42
- children: [/* @__PURE__ */ r("span", {
42
+ children: [/* @__PURE__ */ n("span", {
43
43
  className: "text-3xl font-bold text-primary",
44
44
  children: c === "currency" ? new Intl.NumberFormat("en-US", {
45
45
  style: "currency",
46
46
  currency: "USD"
47
47
  }).format(l) : c === "percent" ? `${(l * 100).toFixed(1)}%` : new Intl.NumberFormat().format(l)
48
- }), s && /* @__PURE__ */ r("span", {
48
+ }), s && /* @__PURE__ */ n("span", {
49
49
  className: "text-sm text-secondary mt-1",
50
50
  children: s
51
51
  })]
52
52
  });
53
53
  }), o("Card", ({ data: e, props: t, onAction: a }) => {
54
- let { t: o } = n(), s = e.title || t?.title, c = e.description || t?.description || "";
55
- if (!s && !c) return /* @__PURE__ */ r("div", {
54
+ let { t: o } = i(), s = e.title || t?.title, c = e.description || t?.description || "";
55
+ if (!s && !c) return /* @__PURE__ */ n("div", {
56
56
  className: "flex items-center justify-center h-full p-4 text-secondary",
57
- children: /* @__PURE__ */ r("p", {
57
+ children: /* @__PURE__ */ n("p", {
58
58
  className: "text-sm",
59
59
  children: o("bigconsole.widget.renderer.custom.noData", "No data available")
60
60
  })
61
61
  });
62
62
  let l = e.image || t?.image, u = t?.actionLabel || o("bigconsole.widget.renderer.custom.viewDetails", "View Details"), d = t?.showAction !== !1;
63
- return /* @__PURE__ */ i("div", {
63
+ return /* @__PURE__ */ r("div", {
64
64
  className: "flex flex-col h-full bg-surface rounded-lg overflow-hidden animate-in fade-in duration-200",
65
65
  children: [
66
- l && /* @__PURE__ */ r("div", {
66
+ l && /* @__PURE__ */ n("div", {
67
67
  className: "aspect-video bg-bg-sunken",
68
- children: /* @__PURE__ */ r("img", {
68
+ children: /* @__PURE__ */ n("img", {
69
69
  src: l,
70
70
  alt: "",
71
71
  className: "w-full h-full object-cover"
72
72
  })
73
73
  }),
74
- /* @__PURE__ */ i("div", {
74
+ /* @__PURE__ */ r("div", {
75
75
  className: "flex-1 p-4",
76
- children: [s && /* @__PURE__ */ r("h3", {
76
+ children: [s && /* @__PURE__ */ n("h3", {
77
77
  className: "text-lg font-semibold text-primary",
78
78
  children: s
79
- }), c && /* @__PURE__ */ r("p", {
79
+ }), c && /* @__PURE__ */ n("p", {
80
80
  className: "text-sm text-secondary mt-1",
81
81
  children: c
82
82
  })]
83
83
  }),
84
- d && /* @__PURE__ */ r("div", {
84
+ d && /* @__PURE__ */ n("div", {
85
85
  className: "p-4 pt-0",
86
- children: /* @__PURE__ */ r("button", {
86
+ children: /* @__PURE__ */ n("button", {
87
87
  type: "button",
88
88
  onClick: () => a?.("click", { title: s }),
89
89
  className: "w-full px-4 py-2 text-sm font-medium text-white bg-action-primary hover:bg-action-primary/90 rounded-md transition-colors",
@@ -94,25 +94,25 @@ o("SimpleText", ({ data: e, props: t }) => {
94
94
  });
95
95
  });
96
96
  var l = ({ componentName: e }) => {
97
- let { t } = n();
98
- return /* @__PURE__ */ r("div", {
97
+ let { t } = i();
98
+ return /* @__PURE__ */ n("div", {
99
99
  className: "flex flex-col items-center justify-center h-full p-4 text-secondary animate-in fade-in duration-200",
100
- children: /* @__PURE__ */ i("div", {
100
+ children: /* @__PURE__ */ r("div", {
101
101
  className: "text-center",
102
102
  children: [
103
- /* @__PURE__ */ r("p", {
103
+ /* @__PURE__ */ n("p", {
104
104
  className: "font-medium",
105
105
  children: t("bigconsole.widget.renderer.custom.componentNotFound", "Component Not Found")
106
106
  }),
107
- /* @__PURE__ */ r("p", {
107
+ /* @__PURE__ */ n("p", {
108
108
  className: "text-sm mt-1",
109
109
  children: t("bigconsole.widget.renderer.custom.componentNotRegistered", "Component \"{{name}}\" is not registered", { name: e ?? "" })
110
110
  }),
111
- /* @__PURE__ */ i("div", {
111
+ /* @__PURE__ */ r("div", {
112
112
  className: "mt-4 text-xs",
113
- children: [/* @__PURE__ */ r("p", { children: t("bigconsole.widget.renderer.custom.availableComponents", "Available components:") }), /* @__PURE__ */ r("ul", {
113
+ children: [/* @__PURE__ */ n("p", { children: t("bigconsole.widget.renderer.custom.availableComponents", "Available components:") }), /* @__PURE__ */ n("ul", {
114
114
  className: "mt-1",
115
- children: c().map((e) => /* @__PURE__ */ r("li", {
115
+ children: c().map((e) => /* @__PURE__ */ n("li", {
116
116
  className: "text-link",
117
117
  children: e
118
118
  }, e))
@@ -122,44 +122,44 @@ var l = ({ componentName: e }) => {
122
122
  })
123
123
  });
124
124
  }, u = e(function({ widget: e, data: a, template: o, isLoading: c, error: u, onDrilldown: d, onAction: f }) {
125
- let { t: p } = n(), m = t(() => {
125
+ let { t: p } = i(), m = t(() => {
126
126
  if (o && typeof o == "object" && "componentName" in o) return o.componentName;
127
127
  let t = e.config;
128
128
  return t?.componentName || t?.componentId || "";
129
129
  }, [o, e.config]), h = t(() => o && typeof o == "object" && "props" in o ? o.props : {}, [o]), g = t(() => m ? s(m) : null, [m]);
130
- return c ? /* @__PURE__ */ r("div", {
130
+ return c ? /* @__PURE__ */ n("div", {
131
131
  className: "flex items-center justify-center h-full p-4 animate-in fade-in duration-200",
132
- children: /* @__PURE__ */ i("div", {
132
+ children: /* @__PURE__ */ r("div", {
133
133
  className: "animate-pulse space-y-2 w-full",
134
- children: [/* @__PURE__ */ r("div", { className: "h-4 bg-bg-sunken rounded w-3/4" }), /* @__PURE__ */ r("div", { className: "h-4 bg-bg-sunken rounded w-1/2" })]
134
+ children: [/* @__PURE__ */ n("div", { className: "h-4 bg-bg-sunken rounded w-3/4" }), /* @__PURE__ */ n("div", { className: "h-4 bg-bg-sunken rounded w-1/2" })]
135
135
  })
136
- }) : u ? /* @__PURE__ */ r("div", {
136
+ }) : u ? /* @__PURE__ */ n("div", {
137
137
  className: "flex items-center justify-center h-full p-4 text-red-600 dark:text-red-400",
138
- children: /* @__PURE__ */ i("div", {
138
+ children: /* @__PURE__ */ r("div", {
139
139
  className: "text-center",
140
- children: [/* @__PURE__ */ r("p", {
140
+ children: [/* @__PURE__ */ n("p", {
141
141
  className: "font-medium",
142
142
  children: p("bigconsole.widget.renderer.custom.errorRendering", "Error rendering component")
143
- }), /* @__PURE__ */ r("p", {
143
+ }), /* @__PURE__ */ n("p", {
144
144
  className: "text-sm mt-1",
145
145
  children: u
146
146
  })]
147
147
  })
148
- }) : m ? g ? /* @__PURE__ */ r(g, {
148
+ }) : m ? g ? /* @__PURE__ */ n(g, {
149
149
  widget: e,
150
150
  data: a,
151
151
  template: o,
152
152
  props: h,
153
153
  onAction: f,
154
154
  onDrilldown: d
155
- }) : /* @__PURE__ */ r(l, { componentName: m }) : /* @__PURE__ */ r("div", {
155
+ }) : /* @__PURE__ */ n(l, { componentName: m }) : /* @__PURE__ */ n("div", {
156
156
  className: "flex items-center justify-center h-full p-4 text-secondary animate-in fade-in duration-200",
157
- children: /* @__PURE__ */ i("div", {
157
+ children: /* @__PURE__ */ r("div", {
158
158
  className: "text-center",
159
- children: [/* @__PURE__ */ r("p", {
159
+ children: [/* @__PURE__ */ n("p", {
160
160
  className: "font-medium",
161
161
  children: p("bigconsole.widget.renderer.custom.noComponentSpecified", "No Component Specified")
162
- }), /* @__PURE__ */ r("p", {
162
+ }), /* @__PURE__ */ n("p", {
163
163
  className: "text-sm mt-1",
164
164
  children: p("bigconsole.widget.renderer.custom.setComponentName", "Set componentName in template or widget config")
165
165
  })]
@@ -0,0 +1,14 @@
1
+ //#region src/bigconsole/utils/createDialogParam.ts
2
+ var e = "create", t = new Set(["1", "true"]);
3
+ function n(n, r) {
4
+ let i = n.get(e);
5
+ return i === null ? "none" : r.permissionsLoading ? "wait" : t.has(i.trim().toLowerCase()) && r.canRead && r.canCreate ? "open" : "strip";
6
+ }
7
+ function r(t) {
8
+ let n = new URLSearchParams(t);
9
+ return n.delete(e), n;
10
+ }
11
+ //#endregion
12
+ export { n as resolveCreateParam, r as withoutCreateParam };
13
+
14
+ //# sourceMappingURL=createDialogParam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDialogParam.js","names":[],"sources":["../../../src/bigconsole/utils/createDialogParam.ts"],"sourcesContent":["/**\n * `?create=1` deep link for the Dashboards page.\n *\n * The Overview's \"Create Dashboard\" actions link to `/dashboards?create=1` so\n * one click lands the user in the Create Dashboard dialog. Permissions resolve\n * asynchronously, so the page must wait for them before deciding — opening (or\n * dropping the param) on the first render would lose the intent.\n */\n\n/** Search param that asks the Dashboards page to open its create dialog. */\nexport const CREATE_DIALOG_PARAM = 'create';\n\n/**\n * - `none` — no param; nothing to do.\n * - `wait` — param present but permissions still loading; decide later.\n * - `open` — open the dialog, then remove the param.\n * - `strip` — not allowed (or an unrecognised value); just remove the param.\n */\nexport type CreateParamDecision = 'none' | 'wait' | 'open' | 'strip';\n\nexport interface CreateParamState {\n permissionsLoading: boolean;\n canRead: boolean;\n canCreate: boolean;\n}\n\nconst OPEN_VALUES = new Set(['1', 'true']);\n\nexport function resolveCreateParam(params: URLSearchParams, state: CreateParamState): CreateParamDecision {\n const value = params.get(CREATE_DIALOG_PARAM);\n if (value === null) return 'none';\n if (state.permissionsLoading) return 'wait';\n if (!OPEN_VALUES.has(value.trim().toLowerCase())) return 'strip';\n return state.canRead && state.canCreate ? 'open' : 'strip';\n}\n\n/** A copy of `params` without the create param (other params are preserved). */\nexport function withoutCreateParam(params: URLSearchParams): URLSearchParams {\n const next = new URLSearchParams(params);\n next.delete(CREATE_DIALOG_PARAM);\n return next;\n}\n"],"mappings":";AAUA,IAAa,IAAsB,UAgB7B,IAAc,IAAI,IAAI,CAAC,KAAK,OAAO,CAAC;AAE1C,SAAgB,EAAmB,GAAyB,GAA8C;CACxG,IAAM,IAAQ,EAAO,IAAI,EAAoB;AAI7C,QAHI,MAAU,OAAa,SACvB,EAAM,qBAA2B,SAChC,EAAY,IAAI,EAAM,MAAM,CAAC,aAAa,CAAC,IACzC,EAAM,WAAW,EAAM,YAAY,SAAS;;AAIrD,SAAgB,EAAmB,GAA0C;CAC3E,IAAM,IAAO,IAAI,gBAAgB,EAAO;AAExC,QADA,EAAK,OAAO,EAAoB,EACzB"}
@@ -1,5 +1,5 @@
1
- import { gql as e } from "@apollo/client";
2
1
  import "@apollo/client/react";
2
+ import { gql as e } from "@apollo/client";
3
3
  //#region src/generated/global-operations.ts
4
4
  var t = e`
5
5
  mutation CreateDashboardTemplateApp($input: CreateApplicationInput!) {