@burdenoff/microfe-bigconsole 2026.804.2 → 2026.805.2

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 (53) hide show
  1. package/dist/bigconsole/AdminRoot.js +21 -16
  2. package/dist/bigconsole/AdminRoot.js.map +1 -1
  3. package/dist/bigconsole/BigConsoleRoot.js +44 -39
  4. package/dist/bigconsole/BigConsoleRoot.js.map +1 -1
  5. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +115 -100
  6. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
  7. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +100 -98
  8. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +1 -1
  9. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +164 -161
  10. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
  11. package/dist/bigconsole/components/datasink/DataSinkCard.js +20 -20
  12. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -1
  13. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +216 -49
  14. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -1
  15. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +96 -90
  16. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  17. package/dist/bigconsole/components/widgets/WidgetMenu.js +87 -76
  18. package/dist/bigconsole/components/widgets/WidgetMenu.js.map +1 -1
  19. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +120 -118
  20. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -1
  21. package/dist/bigconsole/pages/DashboardBuilderPage.js +113 -104
  22. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  23. package/dist/bigconsole/pages/DashboardViewPage.js +208 -199
  24. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  25. package/dist/bigconsole/pages/DashboardsPage.js +376 -325
  26. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  27. package/dist/bigconsole/pages/DataParsersPage.js +135 -125
  28. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  29. package/dist/bigconsole/pages/DataSinkBuilderPage.js +182 -172
  30. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  31. package/dist/bigconsole/pages/DataSinkViewPage.js +233 -198
  32. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  33. package/dist/bigconsole/pages/DataSinksPage.js +281 -268
  34. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
  35. package/dist/bigconsole/pages/ParserBuilderPage.js +238 -223
  36. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  37. package/dist/bigconsole/pages/ParserViewPage.js +162 -144
  38. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  39. package/dist/bigconsole/pages/PipelineBuilderPage.js +212 -204
  40. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  41. package/dist/bigconsole/pages/PipelineViewPage.js +191 -183
  42. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  43. package/dist/bigconsole/pages/PipelinesPage.js +128 -103
  44. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  45. package/dist/bigconsole/pages/WorkflowViewPage.js +238 -217
  46. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  47. package/dist/bigconsole/pages/WorkflowsPage.js +116 -102
  48. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  49. package/dist/bigconsole/utils/csv.js +91 -0
  50. package/dist/bigconsole/utils/csv.js.map +1 -0
  51. package/dist/constants/permissions.js +83 -0
  52. package/dist/constants/permissions.js.map +1 -0
  53. package/package.json +2 -2
@@ -3,74 +3,77 @@ import "../context/index.js";
3
3
  import { reportBigConsoleQuotaError as t } from "../utils/quota.js";
4
4
  import n from "../hooks/useDashboardOperations.js";
5
5
  import "../hooks/index.js";
6
- import r from "../components/dashboard/CreateDashboardDialog.js";
7
- import i from "../components/dashboard/ImportDashboardDialog.js";
8
- import { isNative as a, nativeConfirm as o, nativeImpact as s, nativeNotify as c } from "../../utils/nativeBridge.js";
6
+ import { BIGCONSOLE_PERMISSIONS as r } from "../../constants/permissions.js";
7
+ import i from "../components/dashboard/CreateDashboardDialog.js";
8
+ import a from "../components/dashboard/ImportDashboardDialog.js";
9
+ import { isNative as o, nativeConfirm as ee, nativeImpact as s, nativeNotify as c } from "../../utils/nativeBridge.js";
9
10
  import { memo as l, useCallback as u, useEffect as d, useState as f } from "react";
10
- import { Calendar as p, ChevronLeft as ee, ChevronRight as te, Copy as m, FileText as h, Layers as g, LayoutDashboard as _, LayoutGrid as ne, List as re, Pencil as v, Plus as y, Search as ie, Trash2 as ae, Upload as b } from "lucide-react";
11
- import { useI18n as oe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
12
- import { AuroraBackground as se, Badge as x, Button as S, CTAOverflowMenu as ce, Card as C, CardContent as w, GlassCard as le, GradientText as ue, IllustratedEmptyState as de, Input as fe, PagePurpose as pe, Spinner as me } from "@burdenoff/fe-libs/ui";
13
- import { jsx as T, jsxs as E } from "react/jsx-runtime";
11
+ import { AccessDenied as te, PermissionButton as p } from "@burdenoff/fe-libs/shared/components";
12
+ import { usePermissions as ne } from "@burdenoff/fe-libs/shared/providers/shell";
13
+ import { Calendar as m, ChevronLeft as re, ChevronRight as ie, Copy as h, FileText as g, Layers as _, LayoutDashboard as v, LayoutGrid as ae, List as oe, Pencil as y, Plus as b, Search as se, Trash2 as x, Upload as S } from "lucide-react";
14
+ import { useI18n as ce } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
15
+ import { AuroraBackground as le, Badge as C, Button as w, CTAOverflowMenu as ue, Card as T, CardContent as E, GlassCard as de, GradientText as fe, IllustratedEmptyState as pe, Input as me, PagePurpose as he, Spinner as D } from "@burdenoff/fe-libs/ui";
16
+ import { jsx as O, jsxs as k } from "react/jsx-runtime";
14
17
  //#region src/bigconsole/pages/DashboardsPage.tsx
15
- var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
16
- let l = e(), { t: k } = oe(), A = u((e, t) => {
17
- let n = k(e);
18
+ var A = "bf-bigconsole-dashboards-view", j = 12, M = l(function() {
19
+ let l = e(), { t: M } = ce(), N = u((e, t) => {
20
+ let n = M(e);
18
21
  return n === e ? t : n;
19
- }, [k]), [j, he] = f(""), [M, N] = f(1), [ge, P] = f(!1), [F, I] = f(!1), [_e, L] = f(!1), [R, ve] = f(() => {
22
+ }, [M]), [P, ge] = f(""), [F, I] = f(1), [_e, L] = f(!1), [R, z] = f(!1), [ve, B] = f(!1), [V, ye] = f(() => {
20
23
  try {
21
- return window.localStorage.getItem(D) === "list" ? "list" : "grid";
24
+ return window.localStorage.getItem(A) === "list" ? "list" : "grid";
22
25
  } catch {
23
26
  return "grid";
24
27
  }
25
- }), z = u((e) => {
26
- ve(e);
28
+ }), H = u((e) => {
29
+ ye(e);
27
30
  try {
28
- window.localStorage.setItem(D, e);
31
+ window.localStorage.setItem(A, e);
29
32
  } catch {}
30
- }, []), { loading: B, error: V, dashboards: H, createDashboard: U, deleteDashboard: W, cloneDashboard: G, refetch: K } = n(), q = H.filter((e) => e.name.toLowerCase().includes(j.toLowerCase()) || e.description?.toLowerCase().includes(j.toLowerCase())), J = Math.max(1, Math.ceil(q.length / O)), Y = (M - 1) * O, X = q.slice(Y, Y + O);
33
+ }, []), { loading: U, error: W, dashboards: G, createDashboard: K, deleteDashboard: q, cloneDashboard: J, refetch: Y } = n(), { hasPermission: X, isLoading: be } = ne(), xe = X(r.DASHBOARD_READ), Se = X(r.DASHBOARD_CREATE), Ce = X(r.DASHBOARD_IMPORT), Z = G.filter((e) => e.name.toLowerCase().includes(P.toLowerCase()) || e.description?.toLowerCase().includes(P.toLowerCase())), Q = Math.max(1, Math.ceil(Z.length / j)), $ = (F - 1) * j, we = Z.slice($, $ + j);
31
34
  d(() => {
32
- N(1);
33
- }, [j, R]), d(() => {
34
- M > J && N(J);
35
- }, [M, J]);
36
- let ye = u(() => {
37
- N((e) => Math.max(1, e - 1));
38
- }, []), be = u(() => {
39
- N((e) => Math.min(J, e + 1));
40
- }, [J]), xe = u((e) => {
41
- N(e);
42
- }, []), Z = u(() => {
43
- P(!0);
44
- }, []), Se = u(({ dashboardId: e }) => {
45
- K(), l(`/dashboards/${e}`);
46
- }, [K, l]), Ce = u(() => {
47
- F || P(!1);
48
- }, [F]), we = u(async (e) => {
49
- I(!0);
35
+ I(1);
36
+ }, [P, V]), d(() => {
37
+ F > Q && I(Q);
38
+ }, [F, Q]);
39
+ let Te = u(() => {
40
+ I((e) => Math.max(1, e - 1));
41
+ }, []), Ee = u(() => {
42
+ I((e) => Math.min(Q, e + 1));
43
+ }, [Q]), De = u((e) => {
44
+ I(e);
45
+ }, []), Oe = u(() => {
46
+ L(!0);
47
+ }, []), ke = u(({ dashboardId: e }) => {
48
+ Y(), l(`/dashboards/${e}`);
49
+ }, [Y, l]), Ae = u(() => {
50
+ R || L(!1);
51
+ }, [R]), je = u(async (e) => {
52
+ z(!0);
50
53
  try {
51
- let t = await U({
54
+ let t = await K({
52
55
  name: e.name,
53
56
  description: e.description,
54
57
  category: e.category,
55
58
  tags: e.tags
56
59
  });
57
- t && (P(!1), l(`/dashboards/${t.id}/builder`));
60
+ t && (L(!1), l(`/dashboards/${t.id}/builder`));
58
61
  } catch (e) {
59
62
  if (t(e, "project")) {
60
- P(!1);
63
+ L(!1);
61
64
  return;
62
65
  }
63
- throw console.error("Failed to create dashboard:", e), a() && c("error"), e;
66
+ throw console.error("Failed to create dashboard:", e), o() && c("error"), e;
64
67
  } finally {
65
- I(!1);
68
+ z(!1);
66
69
  }
67
- }, [U, l]), Q = u((e) => {
70
+ }, [K, l]), Me = u((e) => {
68
71
  l(`/dashboards/${e}`);
69
- }, [l]), $ = u((e, t) => {
72
+ }, [l]), Ne = u((e, t) => {
70
73
  t.stopPropagation(), l(`/dashboards/${e}/builder`);
71
- }, [l]), Te = u(async (e, t) => {
74
+ }, [l]), Pe = u(async (e, t) => {
72
75
  t.stopPropagation();
73
- let n = A("bigconsole.dashboards.confirmDelete", "Are you sure you want to delete this dashboard?"), r = await o({
76
+ let n = N("bigconsole.dashboards.confirmDelete", "Are you sure you want to delete this dashboard?"), r = await ee({
74
77
  title: "Delete dashboard?",
75
78
  message: n,
76
79
  okButtonTitle: "Delete",
@@ -79,88 +82,99 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
79
82
  if (r === null ? window.confirm(n) : r) {
80
83
  s("medium");
81
84
  try {
82
- await W(e), a() && c("success");
85
+ await q(e), o() && c("success");
83
86
  } catch (e) {
84
- throw a() && c("error"), e;
87
+ throw o() && c("error"), e;
85
88
  }
86
89
  }
87
- }, [W, A]), Ee = u(async (e, n, r) => {
90
+ }, [q, N]), Fe = u(async (e, n, r) => {
88
91
  r.stopPropagation();
89
- let i = A("bigconsole.dashboards.clone.defaultSuffix", `${n} (Copy)`), o = window.prompt(A("bigconsole.dashboards.clone.namePrompt", "Name for the cloned dashboard:"), i);
90
- if (!(!o || !o.trim())) {
92
+ let i = N("bigconsole.dashboards.clone.defaultSuffix", `${n} (Copy)`), a = window.prompt(N("bigconsole.dashboards.clone.namePrompt", "Name for the cloned dashboard:"), i);
93
+ if (!(!a || !a.trim())) {
91
94
  s("medium");
92
95
  try {
93
- let t = await G(e, o.trim());
94
- t && (a() && c("success"), l(`/dashboards/${t.id}`));
96
+ let t = await J(e, a.trim());
97
+ t && (o() && c("success"), l(`/dashboards/${t.id}`));
95
98
  } catch (e) {
96
99
  if (t(e, "project")) return;
97
- throw a() && c("error"), e;
100
+ throw o() && c("error"), e;
98
101
  }
99
102
  }
100
103
  }, [
101
- G,
104
+ J,
102
105
  l,
103
- A
104
- ]), De = u(() => {
105
- L(!0);
106
- }, []), Oe = u(() => {
107
- L(!1);
108
- }, []), ke = u((e, t) => {
109
- K();
110
- }, [K]), Ae = (e) => {
106
+ N
107
+ ]), Ie = u(() => {
108
+ B(!0);
109
+ }, []), Le = u(() => {
110
+ B(!1);
111
+ }, []), Re = u((e, t) => {
112
+ Y();
113
+ }, [Y]), ze = (e) => {
111
114
  let t = new Date(e), n = /* @__PURE__ */ new Date(), r = n.getTime() - t.getTime(), i = Math.floor(r / 6e4), a = Math.floor(r / 36e5), o = Math.floor(r / 864e5);
112
- return i < 1 ? A("bigconsole.dashboards.time.justNow", "Just now") : i < 60 ? `${i}${A("bigconsole.dashboards.time.minutesAgoSuffix", "m ago")}` : a < 24 ? `${a}${A("bigconsole.dashboards.time.hoursAgoSuffix", "h ago")}` : o < 7 ? `${o}${A("bigconsole.dashboards.time.daysAgoSuffix", "d ago")}` : new Intl.DateTimeFormat("en-US", {
115
+ return i < 1 ? N("bigconsole.dashboards.time.justNow", "Just now") : i < 60 ? `${i}${N("bigconsole.dashboards.time.minutesAgoSuffix", "m ago")}` : a < 24 ? `${a}${N("bigconsole.dashboards.time.hoursAgoSuffix", "h ago")}` : o < 7 ? `${o}${N("bigconsole.dashboards.time.daysAgoSuffix", "d ago")}` : new Intl.DateTimeFormat("en-US", {
113
116
  month: "short",
114
117
  day: "numeric",
115
118
  year: t.getFullYear() === n.getFullYear() ? void 0 : "numeric"
116
119
  }).format(t);
117
- }, je = (e) => e.widgetCount ?? 0, Me = (e) => e.pageCount || 0;
118
- return V ? /* @__PURE__ */ T("div", {
120
+ }, Be = (e) => e.widgetCount ?? 0, Ve = (e) => e.pageCount || 0;
121
+ return W ? /* @__PURE__ */ O("div", {
119
122
  style: { padding: "var(--space-pagePadding)" },
120
- children: /* @__PURE__ */ T(C, {
123
+ children: /* @__PURE__ */ O(T, {
121
124
  style: {
122
125
  borderColor: "var(--color-status-error-border)",
123
126
  backgroundColor: "var(--color-status-error-bgSubtle)"
124
127
  },
125
- children: /* @__PURE__ */ E(w, {
128
+ children: /* @__PURE__ */ k(E, {
126
129
  style: { padding: "var(--space-pagePadding)" },
127
130
  children: [
128
- /* @__PURE__ */ T("h3", {
131
+ /* @__PURE__ */ O("h3", {
129
132
  style: {
130
133
  fontSize: "var(--font-size-body-sm)",
131
134
  fontWeight: "var(--font-weight-medium)",
132
135
  color: "var(--color-status-error-text)"
133
136
  },
134
- children: A("bigconsole.dashboards.error.title", "Error loading dashboards")
137
+ children: N("bigconsole.dashboards.error.title", "Error loading dashboards")
135
138
  }),
136
- /* @__PURE__ */ T("p", {
139
+ /* @__PURE__ */ O("p", {
137
140
  style: {
138
141
  fontSize: "var(--font-size-body-sm)",
139
142
  color: "var(--color-text-secondary)",
140
143
  marginTop: "var(--space-controlGap)"
141
144
  },
142
- children: V.message
145
+ children: W.message
143
146
  }),
144
- /* @__PURE__ */ T(S, {
147
+ /* @__PURE__ */ O(w, {
145
148
  size: "sm",
146
- onClick: () => K(),
149
+ onClick: () => Y(),
147
150
  style: { marginTop: "var(--space-formGap)" },
148
- children: A("bigconsole.dashboards.error.retry", "Retry")
151
+ children: N("bigconsole.dashboards.error.retry", "Retry")
149
152
  })
150
153
  ]
151
154
  })
152
155
  })
153
- }) : /* @__PURE__ */ E("div", {
156
+ }) : be ? /* @__PURE__ */ O("div", {
157
+ style: {
158
+ display: "flex",
159
+ alignItems: "center",
160
+ justifyContent: "center",
161
+ padding: "80px 0"
162
+ },
163
+ children: /* @__PURE__ */ O(D, { style: {
164
+ height: "var(--size-icon-xl)",
165
+ width: "var(--size-icon-xl)"
166
+ } })
167
+ }) : xe ? /* @__PURE__ */ k("div", {
154
168
  style: {
155
169
  minHeight: "100vh",
156
170
  backgroundColor: "var(--color-bg-canvas)"
157
171
  },
158
172
  children: [
159
- /* @__PURE__ */ E("div", {
173
+ /* @__PURE__ */ k("div", {
160
174
  className: "relative overflow-hidden border-b border-border-seam bg-gloss-card",
161
- children: [/* @__PURE__ */ T(se, { intensity: "subtle" }), /* @__PURE__ */ T("div", {
175
+ children: [/* @__PURE__ */ O(le, { intensity: "subtle" }), /* @__PURE__ */ O("div", {
162
176
  style: { padding: "var(--space-pagePadding)" },
163
- children: /* @__PURE__ */ E("div", {
177
+ children: /* @__PURE__ */ k("div", {
164
178
  style: {
165
179
  display: "flex",
166
180
  alignItems: "center",
@@ -168,14 +182,14 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
168
182
  flexWrap: "wrap",
169
183
  gap: "var(--space-formGap)"
170
184
  },
171
- children: [/* @__PURE__ */ E("div", {
185
+ children: [/* @__PURE__ */ k("div", {
172
186
  style: {
173
187
  display: "flex",
174
188
  alignItems: "center",
175
189
  gap: "var(--space-formGap)",
176
190
  minWidth: 0
177
191
  },
178
- children: [/* @__PURE__ */ T("div", {
192
+ children: [/* @__PURE__ */ O("div", {
179
193
  style: {
180
194
  display: "flex",
181
195
  height: "var(--size-controlHeight-lg)",
@@ -185,41 +199,43 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
185
199
  borderRadius: "var(--radius-card)",
186
200
  backgroundColor: "var(--color-action-primary-bg)"
187
201
  },
188
- children: /* @__PURE__ */ T(_, { style: {
202
+ children: /* @__PURE__ */ O(v, { style: {
189
203
  height: "var(--size-icon-lg)",
190
204
  width: "var(--size-icon-lg)",
191
205
  color: "var(--color-action-primary-text)"
192
206
  } })
193
- }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("h1", {
207
+ }), /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("h1", {
194
208
  style: {
195
209
  fontSize: "var(--font-size-heading-h4)",
196
210
  fontWeight: "var(--font-weight-bold)",
197
211
  margin: 0,
198
212
  color: "var(--color-text-primary)"
199
213
  },
200
- children: /* @__PURE__ */ T(ue, { children: A("bigconsole.dashboards.title", "Dashboards") })
201
- }), /* @__PURE__ */ T("p", {
214
+ children: /* @__PURE__ */ O(fe, { children: N("bigconsole.dashboards.title", "Dashboards") })
215
+ }), /* @__PURE__ */ O("p", {
202
216
  style: {
203
217
  fontSize: "var(--font-size-body-sm)",
204
218
  color: "var(--color-text-secondary)",
205
219
  margin: 0
206
220
  },
207
- children: A("bigconsole.dashboards.subtitle", "Create and manage your analytics dashboards")
221
+ children: N("bigconsole.dashboards.subtitle", "Create and manage your analytics dashboards")
208
222
  })] })]
209
- }), /* @__PURE__ */ T(ce, {
223
+ }), /* @__PURE__ */ O(ue, {
210
224
  primary: {
211
- label: A("bigconsole.dashboards.actions.create", "Create Dashboard"),
212
- onSelect: Z,
213
- icon: /* @__PURE__ */ T(y, { style: {
225
+ label: N("bigconsole.dashboards.actions.create", "Create Dashboard"),
226
+ onSelect: Oe,
227
+ disabled: !Se,
228
+ icon: /* @__PURE__ */ O(b, { style: {
214
229
  marginRight: "var(--space-iconGap)",
215
230
  height: "var(--size-icon-sm)",
216
231
  width: "var(--size-icon-sm)"
217
232
  } })
218
233
  },
219
234
  actions: [{
220
- label: A("bigconsole.dashboards.actions.import", "Import"),
221
- onSelect: De,
222
- icon: /* @__PURE__ */ T(b, { style: {
235
+ label: N("bigconsole.dashboards.actions.import", "Import"),
236
+ onSelect: Ie,
237
+ disabled: !Ce,
238
+ icon: /* @__PURE__ */ O(S, { style: {
223
239
  height: "var(--size-icon-sm)",
224
240
  width: "var(--size-icon-sm)"
225
241
  } })
@@ -228,14 +244,14 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
228
244
  })
229
245
  })]
230
246
  }),
231
- /* @__PURE__ */ E("div", {
247
+ /* @__PURE__ */ k("div", {
232
248
  style: { padding: "var(--space-pagePadding)" },
233
249
  children: [
234
- /* @__PURE__ */ T(pe, {
250
+ /* @__PURE__ */ O(he, {
235
251
  className: "mb-[var(--space-sectionGap)]",
236
252
  children: "Dashboards are live, shareable views built from widgets that query your data sinks — charts, tables, metrics, and drill-downs in one place. Compose a board to monitor a system, share KPIs with your team, or explore data interactively."
237
253
  }),
238
- /* @__PURE__ */ E("div", {
254
+ /* @__PURE__ */ k("div", {
239
255
  style: {
240
256
  marginBottom: "var(--space-sectionGap)",
241
257
  display: "flex",
@@ -244,14 +260,14 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
244
260
  flexWrap: "wrap",
245
261
  gap: "var(--space-formGap)"
246
262
  },
247
- children: [/* @__PURE__ */ E("div", {
263
+ children: [/* @__PURE__ */ k("div", {
248
264
  style: {
249
265
  position: "relative",
250
266
  flex: 1,
251
267
  minWidth: 0,
252
268
  maxWidth: "400px"
253
269
  },
254
- children: [/* @__PURE__ */ T(ie, { style: {
270
+ children: [/* @__PURE__ */ O(se, { style: {
255
271
  position: "absolute",
256
272
  left: "var(--space-controlGap)",
257
273
  top: "50%",
@@ -259,17 +275,17 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
259
275
  height: "var(--size-icon-sm)",
260
276
  width: "var(--size-icon-sm)",
261
277
  color: "var(--color-text-muted)"
262
- } }), /* @__PURE__ */ T(fe, {
278
+ } }), /* @__PURE__ */ O(me, {
263
279
  type: "text",
264
- placeholder: A("bigconsole.dashboards.search.placeholder", "Search dashboards..."),
265
- value: j,
266
- onChange: (e) => he(e.target.value),
280
+ placeholder: N("bigconsole.dashboards.search.placeholder", "Search dashboards..."),
281
+ value: P,
282
+ onChange: (e) => ge(e.target.value),
267
283
  style: {
268
284
  paddingLeft: "var(--size-controlHeight-md)",
269
285
  height: "var(--size-controlHeight-md)"
270
286
  }
271
287
  })]
272
- }), /* @__PURE__ */ E("div", {
288
+ }), /* @__PURE__ */ k("div", {
273
289
  style: {
274
290
  display: "flex",
275
291
  alignItems: "center",
@@ -278,89 +294,89 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
278
294
  borderRadius: "var(--radius-button)",
279
295
  backgroundColor: "var(--color-bg-sunken)"
280
296
  },
281
- children: [/* @__PURE__ */ T(S, {
282
- variant: R === "grid" ? "default" : "ghost",
297
+ children: [/* @__PURE__ */ O(w, {
298
+ variant: V === "grid" ? "default" : "ghost",
283
299
  size: "sm",
284
- onClick: () => z("grid"),
285
- "aria-label": A("bigconsole.dashboards.view.grid", "Grid view"),
286
- "aria-pressed": R === "grid",
287
- title: A("bigconsole.dashboards.view.grid", "Grid view"),
300
+ onClick: () => H("grid"),
301
+ "aria-label": N("bigconsole.dashboards.view.grid", "Grid view"),
302
+ "aria-pressed": V === "grid",
303
+ title: N("bigconsole.dashboards.view.grid", "Grid view"),
288
304
  style: {
289
305
  height: "var(--size-controlHeight-sm)",
290
306
  width: "var(--size-controlHeight-sm)",
291
307
  padding: 0,
292
308
  borderRadius: "var(--radius-button)"
293
309
  },
294
- children: /* @__PURE__ */ T(ne, { style: {
310
+ children: /* @__PURE__ */ O(ae, { style: {
295
311
  height: "var(--size-icon-sm)",
296
312
  width: "var(--size-icon-sm)"
297
313
  } })
298
- }), /* @__PURE__ */ T(S, {
299
- variant: R === "list" ? "default" : "ghost",
314
+ }), /* @__PURE__ */ O(w, {
315
+ variant: V === "list" ? "default" : "ghost",
300
316
  size: "sm",
301
- onClick: () => z("list"),
302
- "aria-label": A("bigconsole.dashboards.view.list", "List view"),
303
- "aria-pressed": R === "list",
304
- title: A("bigconsole.dashboards.view.list", "List view"),
317
+ onClick: () => H("list"),
318
+ "aria-label": N("bigconsole.dashboards.view.list", "List view"),
319
+ "aria-pressed": V === "list",
320
+ title: N("bigconsole.dashboards.view.list", "List view"),
305
321
  style: {
306
322
  height: "var(--size-controlHeight-sm)",
307
323
  width: "var(--size-controlHeight-sm)",
308
324
  padding: 0,
309
325
  borderRadius: "var(--radius-button)"
310
326
  },
311
- children: /* @__PURE__ */ T(re, { style: {
327
+ children: /* @__PURE__ */ O(oe, { style: {
312
328
  height: "var(--size-icon-sm)",
313
329
  width: "var(--size-icon-sm)"
314
330
  } })
315
331
  })]
316
332
  })]
317
333
  }),
318
- B && H.length === 0 && /* @__PURE__ */ T("div", {
334
+ U && G.length === 0 && /* @__PURE__ */ O("div", {
319
335
  style: {
320
336
  display: "flex",
321
337
  alignItems: "center",
322
338
  justifyContent: "center",
323
339
  padding: "80px 0"
324
340
  },
325
- children: /* @__PURE__ */ E("div", {
341
+ children: /* @__PURE__ */ k("div", {
326
342
  style: { textAlign: "center" },
327
- children: [/* @__PURE__ */ T(me, { style: {
343
+ children: [/* @__PURE__ */ O(D, { style: {
328
344
  height: "var(--size-icon-xl)",
329
345
  width: "var(--size-icon-xl)",
330
346
  margin: "0 auto var(--space-formGap)"
331
- } }), /* @__PURE__ */ T("p", {
347
+ } }), /* @__PURE__ */ O("p", {
332
348
  style: {
333
349
  fontSize: "var(--font-size-body-sm)",
334
350
  color: "var(--color-text-muted)"
335
351
  },
336
- children: A("bigconsole.dashboards.loading", "Loading dashboards...")
352
+ children: N("bigconsole.dashboards.loading", "Loading dashboards...")
337
353
  })]
338
354
  })
339
355
  }),
340
- !B && R === "grid" && q.length > 0 && /* @__PURE__ */ T("div", {
356
+ !U && V === "grid" && Z.length > 0 && /* @__PURE__ */ O("div", {
341
357
  style: {
342
358
  display: "grid",
343
359
  gridTemplateColumns: "repeat(auto-fill, minmax(min(320px, 100%), 1fr))",
344
360
  gap: "var(--space-formGap)"
345
361
  },
346
- children: X.map((e) => /* @__PURE__ */ T(C, {
347
- onClick: () => Q(e.id),
362
+ children: we.map((e) => /* @__PURE__ */ O(T, {
363
+ onClick: () => Me(e.id),
348
364
  style: {
349
365
  cursor: "pointer",
350
366
  transition: "all 0.2s ease"
351
367
  },
352
368
  className: "hover:shadow-md hover:border-primary/50",
353
- children: /* @__PURE__ */ E(w, {
369
+ children: /* @__PURE__ */ k(E, {
354
370
  style: { padding: "var(--space-cardPadding)" },
355
371
  children: [
356
- /* @__PURE__ */ E("div", {
372
+ /* @__PURE__ */ k("div", {
357
373
  style: {
358
374
  display: "flex",
359
375
  alignItems: "center",
360
376
  gap: "var(--space-controlGap)",
361
377
  marginBottom: "var(--space-formGap)"
362
378
  },
363
- children: [/* @__PURE__ */ T("div", {
379
+ children: [/* @__PURE__ */ O("div", {
364
380
  style: {
365
381
  display: "flex",
366
382
  height: "var(--size-controlHeight-lg)",
@@ -371,17 +387,17 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
371
387
  borderRadius: "var(--radius-button)",
372
388
  backgroundColor: "var(--color-action-primary-bg)"
373
389
  },
374
- children: /* @__PURE__ */ T(_, { style: {
390
+ children: /* @__PURE__ */ O(v, { style: {
375
391
  height: "var(--size-icon-md)",
376
392
  width: "var(--size-icon-md)",
377
393
  color: "var(--color-action-primary-text)"
378
394
  } })
379
- }), /* @__PURE__ */ E("div", {
395
+ }), /* @__PURE__ */ k("div", {
380
396
  style: {
381
397
  flex: 1,
382
398
  minWidth: 0
383
399
  },
384
- children: [/* @__PURE__ */ T("h3", {
400
+ children: [/* @__PURE__ */ O("h3", {
385
401
  style: {
386
402
  fontWeight: "var(--font-weight-bold)",
387
403
  fontSize: "var(--font-size-body-md)",
@@ -392,7 +408,7 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
392
408
  whiteSpace: "nowrap"
393
409
  },
394
410
  children: e.name
395
- }), e.category && /* @__PURE__ */ T(x, {
411
+ }), e.category && /* @__PURE__ */ O(C, {
396
412
  variant: "secondary",
397
413
  style: {
398
414
  marginTop: "var(--space-controlGap)",
@@ -404,7 +420,7 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
404
420
  })]
405
421
  })]
406
422
  }),
407
- /* @__PURE__ */ T("p", {
423
+ /* @__PURE__ */ O("p", {
408
424
  style: {
409
425
  fontSize: "var(--font-size-body-sm)",
410
426
  lineHeight: "var(--font-lineHeight-normal)",
@@ -416,9 +432,9 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
416
432
  WebkitBoxOrient: "vertical",
417
433
  overflow: "hidden"
418
434
  },
419
- children: e.description || A("bigconsole.dashboards.card.noDescription", "No description provided")
435
+ children: e.description || N("bigconsole.dashboards.card.noDescription", "No description provided")
420
436
  }),
421
- /* @__PURE__ */ E("div", {
437
+ /* @__PURE__ */ k("div", {
422
438
  style: {
423
439
  display: "flex",
424
440
  alignItems: "center",
@@ -429,72 +445,72 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
429
445
  borderRadius: "var(--radius-button)"
430
446
  },
431
447
  children: [
432
- /* @__PURE__ */ E("div", {
448
+ /* @__PURE__ */ k("div", {
433
449
  style: {
434
450
  display: "flex",
435
451
  alignItems: "center",
436
452
  gap: "var(--space-iconGap)"
437
453
  },
438
454
  children: [
439
- /* @__PURE__ */ T(g, { style: {
455
+ /* @__PURE__ */ O(_, { style: {
440
456
  height: "var(--size-icon-sm)",
441
457
  width: "var(--size-icon-sm)",
442
458
  color: "var(--color-action-primary-bg)"
443
459
  } }),
444
- /* @__PURE__ */ T("span", {
460
+ /* @__PURE__ */ O("span", {
445
461
  style: {
446
462
  fontSize: "var(--font-size-body-sm)",
447
463
  fontWeight: "var(--font-weight-semibold)",
448
464
  color: "var(--color-text-primary)"
449
465
  },
450
- children: Me(e)
466
+ children: Ve(e)
451
467
  }),
452
- /* @__PURE__ */ T("span", {
468
+ /* @__PURE__ */ O("span", {
453
469
  style: {
454
470
  fontSize: "var(--font-size-body-sm)",
455
471
  color: "var(--color-text-muted)"
456
472
  },
457
- children: A("bigconsole.dashboards.card.pages", "pages")
473
+ children: N("bigconsole.dashboards.card.pages", "pages")
458
474
  })
459
475
  ]
460
476
  }),
461
- /* @__PURE__ */ T("div", { style: {
477
+ /* @__PURE__ */ O("div", { style: {
462
478
  width: "1px",
463
479
  height: "var(--size-icon-sm)",
464
480
  backgroundColor: "var(--color-border)"
465
481
  } }),
466
- /* @__PURE__ */ E("div", {
482
+ /* @__PURE__ */ k("div", {
467
483
  style: {
468
484
  display: "flex",
469
485
  alignItems: "center",
470
486
  gap: "var(--space-iconGap)"
471
487
  },
472
488
  children: [
473
- /* @__PURE__ */ T(h, { style: {
489
+ /* @__PURE__ */ O(g, { style: {
474
490
  height: "var(--size-icon-sm)",
475
491
  width: "var(--size-icon-sm)",
476
492
  color: "var(--color-action-primary-bg)"
477
493
  } }),
478
- /* @__PURE__ */ T("span", {
494
+ /* @__PURE__ */ O("span", {
479
495
  style: {
480
496
  fontSize: "var(--font-size-body-sm)",
481
497
  fontWeight: "var(--font-weight-semibold)",
482
498
  color: "var(--color-text-primary)"
483
499
  },
484
- children: je(e)
500
+ children: Be(e)
485
501
  }),
486
- /* @__PURE__ */ T("span", {
502
+ /* @__PURE__ */ O("span", {
487
503
  style: {
488
504
  fontSize: "var(--font-size-body-sm)",
489
505
  color: "var(--color-text-muted)"
490
506
  },
491
- children: A("bigconsole.dashboards.card.widgets", "widgets")
507
+ children: N("bigconsole.dashboards.card.widgets", "widgets")
492
508
  })
493
509
  ]
494
510
  })
495
511
  ]
496
512
  }),
497
- /* @__PURE__ */ E("div", {
513
+ /* @__PURE__ */ k("div", {
498
514
  style: {
499
515
  display: "flex",
500
516
  alignItems: "center",
@@ -502,79 +518,91 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
502
518
  paddingTop: "var(--space-controlGap)",
503
519
  borderTop: "1px solid var(--color-border)"
504
520
  },
505
- children: [/* @__PURE__ */ E("div", {
521
+ children: [/* @__PURE__ */ k("div", {
506
522
  style: {
507
523
  display: "flex",
508
524
  alignItems: "center",
509
525
  gap: "var(--space-iconGap)"
510
526
  },
511
- children: [/* @__PURE__ */ T(p, { style: {
527
+ children: [/* @__PURE__ */ O(m, { style: {
512
528
  height: "var(--size-icon-sm)",
513
529
  width: "var(--size-icon-sm)",
514
530
  color: "var(--color-text-muted)"
515
- } }), /* @__PURE__ */ T("span", {
531
+ } }), /* @__PURE__ */ O("span", {
516
532
  style: {
517
533
  fontSize: "var(--font-size-body-sm)",
518
534
  fontWeight: "var(--font-weight-medium)",
519
535
  color: "var(--color-text-muted)"
520
536
  },
521
- children: Ae(e.updatedAt)
537
+ children: ze(e.updatedAt)
522
538
  })]
523
- }), /* @__PURE__ */ E("div", {
539
+ }), /* @__PURE__ */ k("div", {
524
540
  style: {
525
541
  display: "flex",
526
542
  alignItems: "center",
527
543
  gap: "var(--space-controlGap)"
528
544
  },
529
545
  children: [
530
- /* @__PURE__ */ T(S, {
531
- variant: "ghost",
532
- size: "sm",
533
- onClick: (t) => $(e.id, t),
534
- style: {
535
- height: "var(--size-controlHeight-sm)",
536
- width: "var(--size-controlHeight-sm)",
537
- padding: 0,
538
- borderRadius: "var(--radius-button)"
539
- },
540
- title: A("bigconsole.dashboards.actions.editTitle", "Edit Dashboard"),
541
- children: /* @__PURE__ */ T(v, { style: {
542
- height: "var(--size-icon-sm)",
543
- width: "var(--size-icon-sm)"
544
- } })
546
+ /* @__PURE__ */ O(p, {
547
+ permission: r.DASHBOARD_UPDATE,
548
+ deniedBehavior: "hide",
549
+ children: /* @__PURE__ */ O(w, {
550
+ variant: "ghost",
551
+ size: "sm",
552
+ onClick: (t) => Ne(e.id, t),
553
+ style: {
554
+ height: "var(--size-controlHeight-sm)",
555
+ width: "var(--size-controlHeight-sm)",
556
+ padding: 0,
557
+ borderRadius: "var(--radius-button)"
558
+ },
559
+ title: N("bigconsole.dashboards.actions.editTitle", "Edit Dashboard"),
560
+ children: /* @__PURE__ */ O(y, { style: {
561
+ height: "var(--size-icon-sm)",
562
+ width: "var(--size-icon-sm)"
563
+ } })
564
+ })
545
565
  }),
546
- /* @__PURE__ */ T(S, {
547
- variant: "ghost",
548
- size: "sm",
549
- onClick: (t) => Ee(e.id, e.name, t),
550
- style: {
551
- height: "var(--size-controlHeight-sm)",
552
- width: "var(--size-controlHeight-sm)",
553
- padding: 0,
554
- borderRadius: "var(--radius-button)"
555
- },
556
- title: A("bigconsole.dashboards.actions.cloneTitle", "Clone Dashboard"),
557
- children: /* @__PURE__ */ T(m, { style: {
558
- height: "var(--size-icon-sm)",
559
- width: "var(--size-icon-sm)"
560
- } })
566
+ /* @__PURE__ */ O(p, {
567
+ permission: r.DASHBOARD_CREATE,
568
+ deniedBehavior: "hide",
569
+ children: /* @__PURE__ */ O(w, {
570
+ variant: "ghost",
571
+ size: "sm",
572
+ onClick: (t) => Fe(e.id, e.name, t),
573
+ style: {
574
+ height: "var(--size-controlHeight-sm)",
575
+ width: "var(--size-controlHeight-sm)",
576
+ padding: 0,
577
+ borderRadius: "var(--radius-button)"
578
+ },
579
+ title: N("bigconsole.dashboards.actions.cloneTitle", "Clone Dashboard"),
580
+ children: /* @__PURE__ */ O(h, { style: {
581
+ height: "var(--size-icon-sm)",
582
+ width: "var(--size-icon-sm)"
583
+ } })
584
+ })
561
585
  }),
562
- /* @__PURE__ */ T(S, {
563
- variant: "ghost",
564
- size: "sm",
565
- onClick: (t) => Te(e.id, t),
566
- style: {
567
- height: "var(--size-controlHeight-sm)",
568
- width: "var(--size-controlHeight-sm)",
569
- padding: 0,
570
- borderRadius: "var(--radius-button)"
571
- },
572
- className: "hover:text-status-error-text hover:bg-status-error-bg/10",
573
- title: A("bigconsole.dashboards.actions.deleteTitle", "Delete Dashboard"),
574
- children: /* @__PURE__ */ T(ae, { style: {
575
- height: "var(--size-icon-sm)",
576
- width: "var(--size-icon-sm)"
577
- } })
586
+ /* @__PURE__ */ O(p, {
587
+ permission: r.DASHBOARD_DELETE,
588
+ deniedBehavior: "hide",
589
+ children: /* @__PURE__ */ O(w, {
590
+ variant: "ghost",
591
+ size: "sm",
592
+ onClick: (t) => Pe(e.id, t),
593
+ style: {
594
+ height: "var(--size-controlHeight-sm)",
595
+ width: "var(--size-controlHeight-sm)",
596
+ padding: 0,
597
+ borderRadius: "var(--radius-button)"
598
+ },
599
+ className: "hover:text-status-error-text hover:bg-status-error-bg/10",
600
+ title: N("bigconsole.dashboards.actions.deleteTitle", "Delete Dashboard"),
601
+ children: /* @__PURE__ */ O(x, { style: {
602
+ height: "var(--size-icon-sm)",
603
+ width: "var(--size-icon-sm)"
604
+ } })
605
+ })
578
606
  })
579
607
  ]
580
608
  })]
@@ -583,22 +611,22 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
583
611
  })
584
612
  }, e.id))
585
613
  }),
586
- !B && R === "list" && q.length > 0 && /* @__PURE__ */ T("div", {
614
+ !U && V === "list" && Z.length > 0 && /* @__PURE__ */ O("div", {
587
615
  style: {
588
616
  display: "flex",
589
617
  flexDirection: "column",
590
618
  gap: "var(--space-controlGap)"
591
619
  },
592
- children: X.map((e) => /* @__PURE__ */ T(C, {
593
- onClick: () => Q(e.id),
620
+ children: we.map((e) => /* @__PURE__ */ O(T, {
621
+ onClick: () => Me(e.id),
594
622
  style: {
595
623
  cursor: "pointer",
596
624
  transition: "all 0.2s ease"
597
625
  },
598
626
  className: "hover:shadow-md hover:border-primary/50",
599
- children: /* @__PURE__ */ T(w, {
627
+ children: /* @__PURE__ */ O(E, {
600
628
  style: { padding: "var(--space-cardPadding)" },
601
- children: /* @__PURE__ */ E("div", {
629
+ children: /* @__PURE__ */ k("div", {
602
630
  style: {
603
631
  display: "flex",
604
632
  alignItems: "center",
@@ -606,7 +634,7 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
606
634
  flexWrap: "wrap"
607
635
  },
608
636
  children: [
609
- /* @__PURE__ */ T("div", {
637
+ /* @__PURE__ */ O("div", {
610
638
  style: {
611
639
  display: "flex",
612
640
  height: "var(--size-controlHeight-lg)",
@@ -617,25 +645,25 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
617
645
  borderRadius: "var(--radius-button)",
618
646
  backgroundColor: "var(--color-action-primary-bg)"
619
647
  },
620
- children: /* @__PURE__ */ T(_, { style: {
648
+ children: /* @__PURE__ */ O(v, { style: {
621
649
  height: "var(--size-icon-md)",
622
650
  width: "var(--size-icon-md)",
623
651
  color: "var(--color-action-primary-text)"
624
652
  } })
625
653
  }),
626
- /* @__PURE__ */ E("div", {
654
+ /* @__PURE__ */ k("div", {
627
655
  style: {
628
656
  flex: 1,
629
657
  minWidth: "180px"
630
658
  },
631
- children: [/* @__PURE__ */ E("div", {
659
+ children: [/* @__PURE__ */ k("div", {
632
660
  style: {
633
661
  display: "flex",
634
662
  alignItems: "center",
635
663
  gap: "var(--space-controlGap)",
636
664
  flexWrap: "wrap"
637
665
  },
638
- children: [/* @__PURE__ */ T("h3", {
666
+ children: [/* @__PURE__ */ O("h3", {
639
667
  style: {
640
668
  fontWeight: "var(--font-weight-bold)",
641
669
  fontSize: "var(--font-size-body-md)",
@@ -647,7 +675,7 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
647
675
  maxWidth: "100%"
648
676
  },
649
677
  children: e.name
650
- }), e.category && /* @__PURE__ */ T(x, {
678
+ }), e.category && /* @__PURE__ */ O(C, {
651
679
  variant: "secondary",
652
680
  style: {
653
681
  fontSize: "10px",
@@ -656,7 +684,7 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
656
684
  },
657
685
  children: e.category
658
686
  })]
659
- }), /* @__PURE__ */ T("p", {
687
+ }), /* @__PURE__ */ O("p", {
660
688
  style: {
661
689
  fontSize: "var(--font-size-body-sm)",
662
690
  lineHeight: "var(--font-lineHeight-normal)",
@@ -666,10 +694,10 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
666
694
  textOverflow: "ellipsis",
667
695
  whiteSpace: "nowrap"
668
696
  },
669
- children: e.description || A("bigconsole.dashboards.card.noDescription", "No description provided")
697
+ children: e.description || N("bigconsole.dashboards.card.noDescription", "No description provided")
670
698
  })]
671
699
  }),
672
- /* @__PURE__ */ E("div", {
700
+ /* @__PURE__ */ k("div", {
673
701
  style: {
674
702
  display: "flex",
675
703
  alignItems: "center",
@@ -677,140 +705,152 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
677
705
  flexWrap: "wrap"
678
706
  },
679
707
  children: [
680
- /* @__PURE__ */ E("div", {
708
+ /* @__PURE__ */ k("div", {
681
709
  style: {
682
710
  display: "flex",
683
711
  alignItems: "center",
684
712
  gap: "var(--space-iconGap)"
685
713
  },
686
714
  children: [
687
- /* @__PURE__ */ T(g, { style: {
715
+ /* @__PURE__ */ O(_, { style: {
688
716
  height: "var(--size-icon-sm)",
689
717
  width: "var(--size-icon-sm)",
690
718
  color: "var(--color-action-primary-bg)"
691
719
  } }),
692
- /* @__PURE__ */ T("span", {
720
+ /* @__PURE__ */ O("span", {
693
721
  style: {
694
722
  fontSize: "var(--font-size-body-sm)",
695
723
  fontWeight: "var(--font-weight-semibold)",
696
724
  color: "var(--color-text-primary)"
697
725
  },
698
- children: Me(e)
726
+ children: Ve(e)
699
727
  }),
700
- /* @__PURE__ */ T("span", {
728
+ /* @__PURE__ */ O("span", {
701
729
  style: {
702
730
  fontSize: "var(--font-size-body-sm)",
703
731
  color: "var(--color-text-muted)"
704
732
  },
705
- children: A("bigconsole.dashboards.card.pages", "pages")
733
+ children: N("bigconsole.dashboards.card.pages", "pages")
706
734
  })
707
735
  ]
708
736
  }),
709
- /* @__PURE__ */ E("div", {
737
+ /* @__PURE__ */ k("div", {
710
738
  style: {
711
739
  display: "flex",
712
740
  alignItems: "center",
713
741
  gap: "var(--space-iconGap)"
714
742
  },
715
743
  children: [
716
- /* @__PURE__ */ T(h, { style: {
744
+ /* @__PURE__ */ O(g, { style: {
717
745
  height: "var(--size-icon-sm)",
718
746
  width: "var(--size-icon-sm)",
719
747
  color: "var(--color-action-primary-bg)"
720
748
  } }),
721
- /* @__PURE__ */ T("span", {
749
+ /* @__PURE__ */ O("span", {
722
750
  style: {
723
751
  fontSize: "var(--font-size-body-sm)",
724
752
  fontWeight: "var(--font-weight-semibold)",
725
753
  color: "var(--color-text-primary)"
726
754
  },
727
- children: je(e)
755
+ children: Be(e)
728
756
  }),
729
- /* @__PURE__ */ T("span", {
757
+ /* @__PURE__ */ O("span", {
730
758
  style: {
731
759
  fontSize: "var(--font-size-body-sm)",
732
760
  color: "var(--color-text-muted)"
733
761
  },
734
- children: A("bigconsole.dashboards.card.widgets", "widgets")
762
+ children: N("bigconsole.dashboards.card.widgets", "widgets")
735
763
  })
736
764
  ]
737
765
  }),
738
- /* @__PURE__ */ E("div", {
766
+ /* @__PURE__ */ k("div", {
739
767
  style: {
740
768
  display: "flex",
741
769
  alignItems: "center",
742
770
  gap: "var(--space-iconGap)"
743
771
  },
744
- children: [/* @__PURE__ */ T(p, { style: {
772
+ children: [/* @__PURE__ */ O(m, { style: {
745
773
  height: "var(--size-icon-sm)",
746
774
  width: "var(--size-icon-sm)",
747
775
  color: "var(--color-text-muted)"
748
- } }), /* @__PURE__ */ T("span", {
776
+ } }), /* @__PURE__ */ O("span", {
749
777
  style: {
750
778
  fontSize: "var(--font-size-body-sm)",
751
779
  fontWeight: "var(--font-weight-medium)",
752
780
  color: "var(--color-text-muted)"
753
781
  },
754
- children: Ae(e.updatedAt)
782
+ children: ze(e.updatedAt)
755
783
  })]
756
784
  })
757
785
  ]
758
786
  }),
759
- /* @__PURE__ */ E("div", {
787
+ /* @__PURE__ */ k("div", {
760
788
  style: {
761
789
  display: "flex",
762
790
  alignItems: "center",
763
791
  gap: "var(--space-controlGap)"
764
792
  },
765
793
  children: [
766
- /* @__PURE__ */ T(S, {
767
- variant: "ghost",
768
- size: "sm",
769
- onClick: (t) => $(e.id, t),
770
- style: {
771
- height: "var(--size-controlHeight-sm)",
772
- width: "var(--size-controlHeight-sm)",
773
- padding: 0,
774
- borderRadius: "var(--radius-button)"
775
- },
776
- title: A("bigconsole.dashboards.actions.editTitle", "Edit Dashboard"),
777
- children: /* @__PURE__ */ T(v, { style: {
778
- height: "var(--size-icon-sm)",
779
- width: "var(--size-icon-sm)"
780
- } })
794
+ /* @__PURE__ */ O(p, {
795
+ permission: r.DASHBOARD_UPDATE,
796
+ deniedBehavior: "hide",
797
+ children: /* @__PURE__ */ O(w, {
798
+ variant: "ghost",
799
+ size: "sm",
800
+ onClick: (t) => Ne(e.id, t),
801
+ style: {
802
+ height: "var(--size-controlHeight-sm)",
803
+ width: "var(--size-controlHeight-sm)",
804
+ padding: 0,
805
+ borderRadius: "var(--radius-button)"
806
+ },
807
+ title: N("bigconsole.dashboards.actions.editTitle", "Edit Dashboard"),
808
+ children: /* @__PURE__ */ O(y, { style: {
809
+ height: "var(--size-icon-sm)",
810
+ width: "var(--size-icon-sm)"
811
+ } })
812
+ })
781
813
  }),
782
- /* @__PURE__ */ T(S, {
783
- variant: "ghost",
784
- size: "sm",
785
- onClick: (t) => Ee(e.id, e.name, t),
786
- style: {
787
- height: "var(--size-controlHeight-sm)",
788
- width: "var(--size-controlHeight-sm)",
789
- padding: 0,
790
- borderRadius: "var(--radius-button)"
791
- },
792
- title: A("bigconsole.dashboards.actions.cloneTitle", "Clone Dashboard"),
793
- children: /* @__PURE__ */ T(m, { style: {
794
- height: "var(--size-icon-sm)",
795
- width: "var(--size-icon-sm)"
796
- } })
814
+ /* @__PURE__ */ O(p, {
815
+ permission: r.DASHBOARD_CREATE,
816
+ deniedBehavior: "hide",
817
+ children: /* @__PURE__ */ O(w, {
818
+ variant: "ghost",
819
+ size: "sm",
820
+ onClick: (t) => Fe(e.id, e.name, t),
821
+ style: {
822
+ height: "var(--size-controlHeight-sm)",
823
+ width: "var(--size-controlHeight-sm)",
824
+ padding: 0,
825
+ borderRadius: "var(--radius-button)"
826
+ },
827
+ title: N("bigconsole.dashboards.actions.cloneTitle", "Clone Dashboard"),
828
+ children: /* @__PURE__ */ O(h, { style: {
829
+ height: "var(--size-icon-sm)",
830
+ width: "var(--size-icon-sm)"
831
+ } })
832
+ })
797
833
  }),
798
- /* @__PURE__ */ T(S, {
799
- variant: "ghost",
800
- size: "sm",
801
- onClick: (t) => Te(e.id, t),
802
- style: {
803
- height: "var(--size-controlHeight-sm)",
804
- width: "var(--size-controlHeight-sm)",
805
- padding: 0,
806
- borderRadius: "var(--radius-button)"
807
- },
808
- className: "hover:text-status-error-text hover:bg-status-error-bg/10",
809
- title: A("bigconsole.dashboards.actions.deleteTitle", "Delete Dashboard"),
810
- children: /* @__PURE__ */ T(ae, { style: {
811
- height: "var(--size-icon-sm)",
812
- width: "var(--size-icon-sm)"
813
- } })
834
+ /* @__PURE__ */ O(p, {
835
+ permission: r.DASHBOARD_DELETE,
836
+ deniedBehavior: "hide",
837
+ children: /* @__PURE__ */ O(w, {
838
+ variant: "ghost",
839
+ size: "sm",
840
+ onClick: (t) => Pe(e.id, t),
841
+ style: {
842
+ height: "var(--size-controlHeight-sm)",
843
+ width: "var(--size-controlHeight-sm)",
844
+ padding: 0,
845
+ borderRadius: "var(--radius-button)"
846
+ },
847
+ className: "hover:text-status-error-text hover:bg-status-error-bg/10",
848
+ title: N("bigconsole.dashboards.actions.deleteTitle", "Delete Dashboard"),
849
+ children: /* @__PURE__ */ O(x, { style: {
850
+ height: "var(--size-icon-sm)",
851
+ width: "var(--size-icon-sm)"
852
+ } })
853
+ })
814
854
  })
815
855
  ]
816
856
  })
@@ -819,7 +859,7 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
819
859
  })
820
860
  }, e.id))
821
861
  }),
822
- !B && q.length > O && /* @__PURE__ */ E("div", {
862
+ !U && Z.length > j && /* @__PURE__ */ k("div", {
823
863
  style: {
824
864
  display: "flex",
825
865
  alignItems: "center",
@@ -829,30 +869,30 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
829
869
  marginTop: "var(--space-sectionGap)"
830
870
  },
831
871
  children: [
832
- /* @__PURE__ */ E(S, {
872
+ /* @__PURE__ */ k(w, {
833
873
  variant: "outline",
834
874
  size: "sm",
835
- onClick: ye,
836
- disabled: M <= 1,
837
- "aria-label": A("bigconsole.dashboards.pagination.previous", "Previous"),
838
- children: [/* @__PURE__ */ T(ee, { style: {
875
+ onClick: Te,
876
+ disabled: F <= 1,
877
+ "aria-label": N("bigconsole.dashboards.pagination.previous", "Previous"),
878
+ children: [/* @__PURE__ */ O(re, { style: {
839
879
  marginRight: "var(--space-iconGap)",
840
880
  height: "var(--size-icon-sm)",
841
881
  width: "var(--size-icon-sm)"
842
- } }), A("bigconsole.dashboards.pagination.previous", "Previous")]
882
+ } }), N("bigconsole.dashboards.pagination.previous", "Previous")]
843
883
  }),
844
- /* @__PURE__ */ T("div", {
884
+ /* @__PURE__ */ O("div", {
845
885
  style: {
846
886
  display: "flex",
847
887
  alignItems: "center",
848
888
  gap: "var(--space-iconGap)",
849
889
  flexWrap: "wrap"
850
890
  },
851
- children: Array.from({ length: J }, (e, t) => t + 1).map((e) => /* @__PURE__ */ T(S, {
852
- variant: e === M ? "default" : "ghost",
891
+ children: Array.from({ length: Q }, (e, t) => t + 1).map((e) => /* @__PURE__ */ O(w, {
892
+ variant: e === F ? "default" : "ghost",
853
893
  size: "sm",
854
- onClick: () => xe(e),
855
- "aria-current": e === M ? "page" : void 0,
894
+ onClick: () => De(e),
895
+ "aria-current": e === F ? "page" : void 0,
856
896
  style: {
857
897
  minWidth: "var(--size-controlHeight-sm)",
858
898
  height: "var(--size-controlHeight-sm)",
@@ -862,79 +902,90 @@ var D = "bf-bigconsole-dashboards-view", O = 12, k = l(function() {
862
902
  children: e
863
903
  }, e))
864
904
  }),
865
- /* @__PURE__ */ E(S, {
905
+ /* @__PURE__ */ k(w, {
866
906
  variant: "outline",
867
907
  size: "sm",
868
- onClick: be,
869
- disabled: M >= J,
870
- "aria-label": A("bigconsole.dashboards.pagination.next", "Next"),
871
- children: [A("bigconsole.dashboards.pagination.next", "Next"), /* @__PURE__ */ T(te, { style: {
908
+ onClick: Ee,
909
+ disabled: F >= Q,
910
+ "aria-label": N("bigconsole.dashboards.pagination.next", "Next"),
911
+ children: [N("bigconsole.dashboards.pagination.next", "Next"), /* @__PURE__ */ O(ie, { style: {
872
912
  marginLeft: "var(--space-iconGap)",
873
913
  height: "var(--size-icon-sm)",
874
914
  width: "var(--size-icon-sm)"
875
915
  } })]
876
916
  }),
877
- /* @__PURE__ */ T("span", {
917
+ /* @__PURE__ */ O("span", {
878
918
  style: {
879
919
  fontSize: "var(--font-size-body-sm)",
880
920
  color: "var(--color-text-muted)",
881
921
  marginLeft: "var(--space-controlGap)"
882
922
  },
883
- children: A("bigconsole.dashboards.pagination.pageOf", `Page ${M} of ${J}`)
923
+ children: N("bigconsole.dashboards.pagination.pageOf", `Page ${F} of ${Q}`)
884
924
  })
885
925
  ]
886
926
  }),
887
- !B && q.length === 0 && /* @__PURE__ */ T(le, {
927
+ !U && Z.length === 0 && /* @__PURE__ */ O(de, {
888
928
  treatment: "insight",
889
929
  className: "border-border-seam",
890
- children: /* @__PURE__ */ T(de, {
891
- illustration: j ? "empty-search" : "empty-data",
892
- title: j ? A("bigconsole.dashboards.empty.filteredTitle", "No dashboards found") : A("bigconsole.dashboards.empty.title", "No dashboards yet"),
893
- description: j ? A("bigconsole.dashboards.empty.filteredDescription", "Try adjusting your search terms") : A("bigconsole.dashboards.empty.description", "Get started by creating your first dashboard to visualize your data"),
894
- action: j ? void 0 : /* @__PURE__ */ E("div", {
930
+ children: /* @__PURE__ */ O(pe, {
931
+ illustration: P ? "empty-search" : "empty-data",
932
+ title: P ? N("bigconsole.dashboards.empty.filteredTitle", "No dashboards found") : N("bigconsole.dashboards.empty.title", "No dashboards yet"),
933
+ description: P ? N("bigconsole.dashboards.empty.filteredDescription", "Try adjusting your search terms") : N("bigconsole.dashboards.empty.description", "Get started by creating your first dashboard to visualize your data"),
934
+ action: P ? void 0 : /* @__PURE__ */ k("div", {
895
935
  style: {
896
936
  display: "flex",
897
937
  gap: "var(--space-controlGap)",
898
938
  flexWrap: "wrap",
899
939
  justifyContent: "center"
900
940
  },
901
- children: [/* @__PURE__ */ E(S, {
902
- onClick: Z,
903
- children: [/* @__PURE__ */ T(y, { style: {
904
- marginRight: "var(--space-iconGap)",
905
- height: "var(--size-icon-sm)",
906
- width: "var(--size-icon-sm)"
907
- } }), A("bigconsole.dashboards.actions.create", "Create Dashboard")]
908
- }), /* @__PURE__ */ E(S, {
909
- variant: "outline",
910
- onClick: De,
911
- children: [/* @__PURE__ */ T(b, { style: {
912
- marginRight: "var(--space-iconGap)",
913
- height: "var(--size-icon-sm)",
914
- width: "var(--size-icon-sm)"
915
- } }), A("bigconsole.dashboards.actions.importDashboard", "Import Dashboard")]
941
+ children: [/* @__PURE__ */ O(p, {
942
+ permission: r.DASHBOARD_CREATE,
943
+ deniedBehavior: "hide",
944
+ children: /* @__PURE__ */ k(w, {
945
+ onClick: Oe,
946
+ children: [/* @__PURE__ */ O(b, { style: {
947
+ marginRight: "var(--space-iconGap)",
948
+ height: "var(--size-icon-sm)",
949
+ width: "var(--size-icon-sm)"
950
+ } }), N("bigconsole.dashboards.actions.create", "Create Dashboard")]
951
+ })
952
+ }), /* @__PURE__ */ O(p, {
953
+ permission: r.DASHBOARD_IMPORT,
954
+ deniedBehavior: "hide",
955
+ children: /* @__PURE__ */ k(w, {
956
+ variant: "outline",
957
+ onClick: Ie,
958
+ children: [/* @__PURE__ */ O(S, { style: {
959
+ marginRight: "var(--space-iconGap)",
960
+ height: "var(--size-icon-sm)",
961
+ width: "var(--size-icon-sm)"
962
+ } }), N("bigconsole.dashboards.actions.importDashboard", "Import Dashboard")]
963
+ })
916
964
  })]
917
965
  })
918
966
  })
919
967
  })
920
968
  ]
921
969
  }),
922
- /* @__PURE__ */ T(r, {
923
- isOpen: ge,
924
- isCreating: F,
925
- onClose: Ce,
926
- onCreate: we,
927
- onTemplateInstalled: Se
928
- }),
929
- /* @__PURE__ */ T(i, {
970
+ /* @__PURE__ */ O(i, {
930
971
  isOpen: _e,
931
- onClose: Oe,
932
- onSuccess: ke
972
+ isCreating: R,
973
+ onClose: Ae,
974
+ onCreate: je,
975
+ onTemplateInstalled: ke
976
+ }),
977
+ /* @__PURE__ */ O(a, {
978
+ isOpen: ve,
979
+ onClose: Le,
980
+ onSuccess: Re
933
981
  })
934
982
  ]
983
+ }) : /* @__PURE__ */ O(te, {
984
+ title: "Access Denied",
985
+ description: "You don't have permission to view dashboards."
935
986
  });
936
987
  });
937
988
  //#endregion
938
- export { k as DashboardsPage, k as default };
989
+ export { M as DashboardsPage, M as default };
939
990
 
940
991
  //# sourceMappingURL=DashboardsPage.js.map