@burdenoff/microfe-bigconsole 2026.805.1 → 2026.805.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 (150) 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/builder/inspector/DataBindingSection.js +109 -113
  6. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
  7. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +115 -113
  8. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  9. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +71 -62
  10. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
  11. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +116 -100
  12. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
  13. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +56 -54
  14. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  15. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +126 -125
  16. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -1
  17. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +151 -150
  18. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
  19. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +77 -76
  20. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -1
  21. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +97 -96
  22. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  23. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +172 -191
  24. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  25. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +100 -98
  26. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +1 -1
  27. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +75 -83
  28. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +1 -1
  29. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +151 -154
  30. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -1
  31. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +187 -193
  32. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
  33. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -0
  34. package/dist/bigconsole/components/dashboard/WidgetPalette.js +110 -108
  35. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -1
  36. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +102 -103
  37. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
  38. package/dist/bigconsole/components/datasink/DataSinkCard.js +20 -20
  39. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -1
  40. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +36 -41
  41. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -1
  42. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +38 -37
  43. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -1
  44. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +113 -117
  45. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -1
  46. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +182 -197
  47. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  48. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +166 -168
  49. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -1
  50. package/dist/bigconsole/components/parser/DataSinkSelector.js +87 -86
  51. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -1
  52. package/dist/bigconsole/components/parser/ImportParserDialog.js +196 -211
  53. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  54. package/dist/bigconsole/components/parser/ParserSelector.js +130 -128
  55. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
  56. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +66 -63
  57. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
  58. package/dist/bigconsole/components/preview/AiPreviewPanel.js +95 -91
  59. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  60. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +243 -230
  61. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  62. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +149 -145
  63. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  64. package/dist/bigconsole/components/widgets/PropertiesPanel.js +504 -470
  65. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  66. package/dist/bigconsole/components/widgets/WidgetMenu.js +87 -76
  67. package/dist/bigconsole/components/widgets/WidgetMenu.js.map +1 -1
  68. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +44 -47
  69. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -1
  70. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +143 -142
  71. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -1
  72. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +101 -88
  73. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -1
  74. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +135 -134
  75. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -1
  76. package/dist/bigconsole/components/widgets/form/FormWidget.js +167 -159
  77. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +1 -1
  78. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +69 -68
  79. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -1
  80. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +64 -72
  81. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -1
  82. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +60 -59
  83. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -1
  84. package/dist/bigconsole/components/widgets/list/ListConfig.js +57 -56
  85. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -1
  86. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +70 -69
  87. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -1
  88. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +35 -34
  89. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -1
  90. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +20 -19
  91. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +1 -1
  92. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +178 -177
  93. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -1
  94. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +76 -75
  95. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -1
  96. package/dist/bigconsole/components/widgets/table/TableConfig.js +183 -168
  97. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -1
  98. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +187 -180
  99. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -1
  100. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +120 -118
  101. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -1
  102. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +40 -38
  103. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -1
  104. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +150 -148
  105. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  106. package/dist/bigconsole/pages/DashboardBuilderPage.js +189 -175
  107. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  108. package/dist/bigconsole/pages/DashboardViewPage.js +200 -187
  109. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  110. package/dist/bigconsole/pages/DashboardsPage.js +379 -324
  111. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  112. package/dist/bigconsole/pages/DataParsersPage.js +185 -178
  113. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  114. package/dist/bigconsole/pages/DataSinkBuilderPage.js +195 -170
  115. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  116. package/dist/bigconsole/pages/DataSinkViewPage.js +224 -200
  117. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  118. package/dist/bigconsole/pages/DataSinksPage.js +281 -268
  119. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
  120. package/dist/bigconsole/pages/DataSourcesPage.js +8 -7
  121. package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -1
  122. package/dist/bigconsole/pages/InsightsPage.js +238 -208
  123. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  124. package/dist/bigconsole/pages/ParserBuilderPage.js +480 -413
  125. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  126. package/dist/bigconsole/pages/ParserViewPage.js +192 -172
  127. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  128. package/dist/bigconsole/pages/PipelineBuilderPage.js +198 -163
  129. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  130. package/dist/bigconsole/pages/PipelineViewPage.js +138 -133
  131. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  132. package/dist/bigconsole/pages/PipelinesPage.js +162 -136
  133. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  134. package/dist/bigconsole/pages/SettingsPage.js +177 -172
  135. package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
  136. package/dist/bigconsole/pages/WidgetDemoPage.js +121 -83
  137. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  138. package/dist/bigconsole/pages/WorkflowViewPage.js +269 -242
  139. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  140. package/dist/bigconsole/pages/WorkflowsPage.js +153 -138
  141. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  142. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +111 -109
  143. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +1 -1
  144. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +127 -126
  145. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +1 -1
  146. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +103 -103
  147. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +1 -1
  148. package/dist/constants/permissions.js +83 -0
  149. package/dist/constants/permissions.js.map +1 -0
  150. package/package.json +2 -1
@@ -1,105 +1,53 @@
1
- import { memo as e, useCallback as t, useEffect as n, useRef as r, useState as i } from "react";
2
- import { ChevronDown as ee, ChevronRight as te, Pencil as ne, Plus as re, Zap as ie } from "lucide-react";
3
- import { Button as ae, Checkbox as a, Dialog as oe, DialogContent as se, DialogDescription as ce, DialogFooter as le, DialogHeader as ue, DialogTitle as de, Input as o, Select as s, SelectContent as c, SelectItem as l, SelectTrigger as u, SelectValue as d, Spinner as fe, Textarea as pe } from "@burdenoff/fe-libs/ui";
1
+ import { BIGCONSOLE_PERMISSIONS as e } from "../../../constants/permissions.js";
2
+ import { memo as t, useCallback as n, useEffect as r, useMemo as i, useRef as ee, useState as a } from "react";
3
+ import { PermissionButton as te } from "@burdenoff/fe-libs/shared/components";
4
+ import { ChevronDown as ne, ChevronRight as re, Pencil as ie, Plus as ae, Zap as oe } from "lucide-react";
5
+ import { useI18n as se } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
+ import { Button as ce, Checkbox as le, Dialog as ue, DialogContent as de, DialogDescription as fe, DialogFooter as pe, DialogHeader as me, DialogTitle as he, Input as o, Select as s, SelectContent as c, SelectItem as l, SelectTrigger as u, SelectValue as d, Spinner as ge, Textarea as _e } from "@burdenoff/fe-libs/ui";
4
7
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
5
8
  //#region src/bigconsole/components/widgets/ActionConfigDialog.tsx
6
- var me = [{
7
- value: "WEBHOOK",
8
- label: "Call a webhook / my API",
9
- hint: "Sends an HTTP request to the URL below every time the button is clicked."
10
- }, {
11
- value: "EMIT",
12
- label: "Just emit an event (advanced)",
13
- hint: "Emits widget:<name>:clicked. Wire it up yourself in the Webhooks/Events section."
14
- }], he = [
9
+ var ve = [
15
10
  "POST",
16
11
  "GET",
17
12
  "PUT",
18
13
  "PATCH",
19
14
  "DELETE"
20
- ], ge = [
15
+ ], ye = [
21
16
  {
22
17
  value: "PRIMARY",
23
- label: "Primary",
24
18
  color: "var(--color-action-primary-bg)"
25
19
  },
26
20
  {
27
21
  value: "SECONDARY",
28
- label: "Secondary",
29
22
  color: "var(--color-action-secondary-bg)"
30
23
  },
31
24
  {
32
25
  value: "SUCCESS",
33
- label: "Success",
34
26
  color: "var(--color-status-success-bg)"
35
27
  },
36
28
  {
37
29
  value: "WARNING",
38
- label: "Warning",
39
30
  color: "var(--color-status-warning-bg)"
40
31
  },
41
32
  {
42
33
  value: "DANGER",
43
- label: "Danger",
44
34
  color: "var(--color-action-danger-bg)"
45
35
  }
46
- ], _e = [
47
- {
48
- value: "",
49
- label: "No icon"
50
- },
51
- {
52
- value: "refresh",
53
- label: "Refresh"
54
- },
55
- {
56
- value: "download",
57
- label: "Download"
58
- },
59
- {
60
- value: "upload",
61
- label: "Upload"
62
- },
63
- {
64
- value: "trash",
65
- label: "Trash"
66
- },
67
- {
68
- value: "edit",
69
- label: "Edit"
70
- },
71
- {
72
- value: "plus",
73
- label: "Plus"
74
- },
75
- {
76
- value: "check",
77
- label: "Check"
78
- },
79
- {
80
- value: "eye",
81
- label: "View"
82
- },
83
- {
84
- value: "copy",
85
- label: "Copy"
86
- },
87
- {
88
- value: "share",
89
- label: "Share"
90
- },
91
- {
92
- value: "settings",
93
- label: "Settings"
94
- },
95
- {
96
- value: "filter",
97
- label: "Filter"
98
- },
99
- {
100
- value: "search",
101
- label: "Search"
102
- }
36
+ ], be = [
37
+ "",
38
+ "refresh",
39
+ "download",
40
+ "upload",
41
+ "trash",
42
+ "edit",
43
+ "plus",
44
+ "check",
45
+ "eye",
46
+ "copy",
47
+ "share",
48
+ "settings",
49
+ "filter",
50
+ "search"
103
51
  ];
104
52
  function m(e) {
105
53
  return e.trim().toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
@@ -120,57 +68,105 @@ var h = {
120
68
  border: "1px solid var(--color-border)",
121
69
  boxShadow: "var(--shadow-elevation-3)",
122
70
  borderRadius: "var(--radius-button)"
123
- }, v = e(function({ isOpen: e, action: v, initialWebhook: y, isLoading: b = !1, saveError: ve, onClose: ye, onSave: be }) {
124
- let x = !!v, S = r(null), C = r(!1), [w, T] = i(""), [E, D] = i(""), [O, k] = i(!1), [A, j] = i("PRIMARY"), [M, N] = i(""), [P, F] = i("WEBHOOK"), [I, L] = i(""), [R, z] = i("POST"), [B, V] = i(!1), [H, U] = i(!1), [xe, Se] = i(!1), [W, G] = i(!1), [K, q] = i("Confirm Action"), [J, Y] = i("Are you sure you want to proceed?"), [Ce, X] = i("Confirm"), [we, Z] = i("Cancel"), [Q, $] = i(null);
125
- n(() => {
126
- if (!e) return;
127
- C.current = !1, L(""), z("POST"), v ? (T(v.label), D(v.name), k(!1), j(v.style), N(v.icon || ""), V(v.disabled), U(v.hidden), F("EMIT"), G(!!v.confirmation), v.confirmation ? (q(v.confirmation.title), Y(v.confirmation.message), X(v.confirmation.confirmLabel || "Confirm"), Z(v.confirmation.cancelLabel || "Cancel")) : (q("Confirm Action"), Y("Are you sure you want to proceed?"), X("Confirm"), Z("Cancel"))) : (T(""), D(""), k(!1), j("PRIMARY"), N(""), F("WEBHOOK"), V(!1), U(!1), G(!1), q("Confirm Action"), Y("Are you sure you want to proceed?"), X("Confirm"), Z("Cancel")), Se(!1), $(null);
128
- let t = requestAnimationFrame(() => requestAnimationFrame(() => S.current?.focus()));
129
- return () => cancelAnimationFrame(t);
130
- }, [e, v]), n(() => {
131
- !e || !y || C.current || (F("WEBHOOK"), L(y.url), z(y.method));
132
- }, [e, y]);
133
- let Te = t((e) => {
134
- T(e), O || D(m(e)), Q && $(null);
135
- }, [O, Q]), Ee = t((e) => {
71
+ }, v = t(function({ isOpen: t, action: v, initialWebhook: y, isLoading: b = !1, saveError: xe, onClose: Se, onSave: Ce }) {
72
+ let { t: x } = se(), S = !!v, C = ee(null), w = ee(!1), [T, E] = a(""), [D, O] = a(""), [k, A] = a(!1), [j, M] = a("PRIMARY"), [N, P] = a(""), [F, I] = a("WEBHOOK"), [L, we] = a(""), [R, z] = a("POST"), [B, V] = a(!1), [H, U] = a(!1), [Te, Ee] = a(!1), [W, G] = a(!1), [K, q] = a(() => x("bigconsole.widget.actions.confirm.defaultTitle", "Confirm Action")), [J, Y] = a(() => x("bigconsole.widget.actions.confirm.defaultMessage", "Are you sure you want to proceed?")), [De, X] = a(() => x("bigconsole.widget.actions.confirm.defaultConfirmLabel", "Confirm")), [Oe, Z] = a(() => x("bigconsole.widget.actions.confirm.defaultCancelLabel", "Cancel")), [Q, $] = a(null), ke = i(() => [{
73
+ value: "WEBHOOK",
74
+ label: x("bigconsole.widget.actions.outcome.webhook.label", "Call a webhook / my API"),
75
+ hint: x("bigconsole.widget.actions.outcome.webhook.hint", "Sends an HTTP request to the URL below every time the button is clicked.")
76
+ }, {
77
+ value: "EMIT",
78
+ label: x("bigconsole.widget.actions.outcome.emit.label", "Just emit an event (advanced)"),
79
+ hint: x("bigconsole.widget.actions.outcome.emit.hint", "Emits widget:<name>:clicked. Wire it up yourself in the Webhooks/Events section.")
80
+ }], [x]), Ae = i(() => {
81
+ let e = {
82
+ PRIMARY: x("bigconsole.widget.actions.style.primary", "Primary"),
83
+ SECONDARY: x("bigconsole.widget.actions.style.secondary", "Secondary"),
84
+ SUCCESS: x("bigconsole.widget.actions.style.success", "Success"),
85
+ WARNING: x("bigconsole.widget.actions.style.warning", "Warning"),
86
+ DANGER: x("bigconsole.widget.actions.style.danger", "Danger"),
87
+ GHOST: x("bigconsole.widget.actions.style.ghost", "Ghost"),
88
+ LINK: x("bigconsole.widget.actions.style.link", "Link")
89
+ };
90
+ return ye.map((t) => ({
91
+ value: t.value,
92
+ label: e[t.value],
93
+ color: t.color
94
+ }));
95
+ }, [x]), je = i(() => {
96
+ let e = {
97
+ "": x("bigconsole.widget.actions.icon.none", "No icon"),
98
+ refresh: x("bigconsole.widget.actions.icon.refresh", "Refresh"),
99
+ download: x("bigconsole.widget.actions.icon.download", "Download"),
100
+ upload: x("bigconsole.widget.actions.icon.upload", "Upload"),
101
+ trash: x("bigconsole.widget.actions.icon.trash", "Trash"),
102
+ edit: x("bigconsole.widget.actions.icon.edit", "Edit"),
103
+ plus: x("bigconsole.widget.actions.icon.plus", "Plus"),
104
+ check: x("bigconsole.widget.actions.icon.check", "Check"),
105
+ eye: x("bigconsole.widget.actions.icon.eye", "View"),
106
+ copy: x("bigconsole.widget.actions.icon.copy", "Copy"),
107
+ share: x("bigconsole.widget.actions.icon.share", "Share"),
108
+ settings: x("bigconsole.widget.actions.icon.settings", "Settings"),
109
+ filter: x("bigconsole.widget.actions.icon.filter", "Filter"),
110
+ search: x("bigconsole.widget.actions.icon.search", "Search")
111
+ };
112
+ return be.map((t) => ({
113
+ value: t,
114
+ label: e[t]
115
+ }));
116
+ }, [x]);
117
+ r(() => {
118
+ if (!t) return;
119
+ w.current = !1, we(""), z("POST"), v ? (E(v.label), O(v.name), A(!1), M(v.style), P(v.icon || ""), V(v.disabled), U(v.hidden), I("EMIT"), G(!!v.confirmation), v.confirmation ? (q(v.confirmation.title), Y(v.confirmation.message), X(v.confirmation.confirmLabel || x("bigconsole.widget.actions.confirm.defaultConfirmLabel", "Confirm")), Z(v.confirmation.cancelLabel || x("bigconsole.widget.actions.confirm.defaultCancelLabel", "Cancel"))) : (q(x("bigconsole.widget.actions.confirm.defaultTitle", "Confirm Action")), Y(x("bigconsole.widget.actions.confirm.defaultMessage", "Are you sure you want to proceed?")), X(x("bigconsole.widget.actions.confirm.defaultConfirmLabel", "Confirm")), Z(x("bigconsole.widget.actions.confirm.defaultCancelLabel", "Cancel")))) : (E(""), O(""), A(!1), M("PRIMARY"), P(""), I("WEBHOOK"), V(!1), U(!1), G(!1), q(x("bigconsole.widget.actions.confirm.defaultTitle", "Confirm Action")), Y(x("bigconsole.widget.actions.confirm.defaultMessage", "Are you sure you want to proceed?")), X(x("bigconsole.widget.actions.confirm.defaultConfirmLabel", "Confirm")), Z(x("bigconsole.widget.actions.confirm.defaultCancelLabel", "Cancel"))), Ee(!1), $(null);
120
+ let e = requestAnimationFrame(() => requestAnimationFrame(() => C.current?.focus()));
121
+ return () => cancelAnimationFrame(e);
122
+ }, [
123
+ t,
124
+ v,
125
+ x
126
+ ]), r(() => {
127
+ !t || !y || w.current || (I("WEBHOOK"), we(y.url), z(y.method));
128
+ }, [t, y]);
129
+ let Me = n((e) => {
130
+ E(e), k || O(m(e)), Q && $(null);
131
+ }, [k, Q]), Ne = n((e) => {
136
132
  e.preventDefault();
137
- let t = w.trim();
133
+ let t = T.trim();
138
134
  if (!t) {
139
- $("Button label is required"), S.current?.focus();
135
+ $(x("bigconsole.widget.actions.validation.labelRequired", "Button label is required")), C.current?.focus();
140
136
  return;
141
137
  }
142
- let n = x && v ? v.name : m(O ? E : w) || m(w);
138
+ let n = S && v ? v.name : m(k ? D : T) || m(T);
143
139
  if (!n) {
144
- $("Enter a label using letters or numbers");
140
+ $(x("bigconsole.widget.actions.validation.labelLettersOrNumbers", "Enter a label using letters or numbers"));
145
141
  return;
146
142
  }
147
- if (P === "WEBHOOK") {
148
- let e = I.trim();
143
+ if (F === "WEBHOOK") {
144
+ let e = L.trim();
149
145
  if (!e) {
150
- $("Enter the URL to call when the button is clicked");
146
+ $(x("bigconsole.widget.actions.validation.urlRequired", "Enter the URL to call when the button is clicked"));
151
147
  return;
152
148
  }
153
149
  if (!/^https?:\/\//i.test(e)) {
154
- $("Webhook URL must start with http:// or https://");
150
+ $(x("bigconsole.widget.actions.validation.urlScheme", "Webhook URL must start with http:// or https://"));
155
151
  return;
156
152
  }
157
153
  }
158
154
  let r = W ? {
159
- title: K.trim() || "Confirm Action",
160
- message: J.trim() || "Are you sure?",
161
- confirmLabel: Ce.trim() || "Confirm",
162
- cancelLabel: we.trim() || "Cancel"
163
- } : void 0, i = P === "WEBHOOK" ? {
164
- url: I.trim(),
155
+ title: K.trim() || x("bigconsole.widget.actions.confirm.defaultTitle", "Confirm Action"),
156
+ message: J.trim() || x("bigconsole.widget.actions.confirm.fallbackMessage", "Are you sure?"),
157
+ confirmLabel: De.trim() || x("bigconsole.widget.actions.confirm.defaultConfirmLabel", "Confirm"),
158
+ cancelLabel: Oe.trim() || x("bigconsole.widget.actions.confirm.defaultCancelLabel", "Cancel")
159
+ } : void 0, i = F === "WEBHOOK" ? {
160
+ url: L.trim(),
165
161
  method: R
166
162
  } : null;
167
- be(x && v ? {
163
+ Ce(S && v ? {
168
164
  id: v.id,
169
165
  name: n,
170
166
  label: t,
171
167
  type: "BUTTON",
172
- style: A,
173
- icon: M || void 0,
168
+ style: j,
169
+ icon: N || void 0,
174
170
  confirmation: W ? r : null,
175
171
  disabled: B,
176
172
  hidden: H
@@ -178,41 +174,42 @@ var h = {
178
174
  name: n,
179
175
  label: t,
180
176
  type: "BUTTON",
181
- style: A,
182
- icon: M || void 0,
177
+ style: j,
178
+ icon: N || void 0,
183
179
  confirmation: r,
184
180
  disabled: B,
185
181
  hidden: H
186
182
  }, i);
187
183
  }, [
188
- w,
189
- E,
190
- O,
191
- P,
192
- I,
184
+ T,
185
+ D,
186
+ k,
187
+ F,
188
+ L,
193
189
  R,
194
- A,
195
- M,
190
+ j,
191
+ N,
196
192
  B,
197
193
  H,
198
194
  W,
199
195
  K,
200
196
  J,
201
- Ce,
202
- we,
203
- x,
197
+ De,
198
+ Oe,
199
+ S,
204
200
  v,
205
- be
206
- ]), De = (e) => ge.find((t) => t.value === e)?.color || "var(--color-action-primary-bg)", Oe = me.find((e) => e.value === P);
207
- return /* @__PURE__ */ f(oe, {
208
- open: e,
209
- onOpenChange: (e) => !e && !b && ye(),
210
- children: /* @__PURE__ */ p(se, {
201
+ Ce,
202
+ x
203
+ ]), Pe = (e) => Ae.find((t) => t.value === e)?.color || "var(--color-action-primary-bg)", Fe = ke.find((e) => e.value === F);
204
+ return /* @__PURE__ */ f(ue, {
205
+ open: t,
206
+ onOpenChange: (e) => !e && !b && Se(),
207
+ children: /* @__PURE__ */ p(de, {
211
208
  style: {
212
209
  maxWidth: "500px",
213
210
  padding: 0
214
211
  },
215
- children: [/* @__PURE__ */ f(ue, {
212
+ children: [/* @__PURE__ */ f(me, {
216
213
  style: { padding: "var(--space-pagePadding) var(--space-pagePadding) 0" },
217
214
  children: /* @__PURE__ */ p("div", {
218
215
  style: {
@@ -231,30 +228,30 @@ var h = {
231
228
  backgroundColor: "var(--color-action-primary-bg)",
232
229
  boxShadow: "var(--shadow-elevation-2)"
233
230
  },
234
- children: f(x ? ne : ie, { style: {
231
+ children: f(S ? ie : oe, { style: {
235
232
  height: "var(--size-icon-lg)",
236
233
  width: "var(--size-icon-lg)",
237
234
  color: "var(--color-action-primary-text)"
238
235
  } })
239
- }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f(de, {
236
+ }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f(he, {
240
237
  style: {
241
238
  fontSize: "var(--font-size-heading-h4)",
242
239
  fontWeight: "var(--font-weight-bold)",
243
240
  color: "var(--color-text-primary)",
244
241
  margin: 0
245
242
  },
246
- children: x ? "Edit Button" : "Add Button"
247
- }), /* @__PURE__ */ f(ce, {
243
+ children: S ? x("bigconsole.widget.actions.header.editTitle", "Edit Button") : x("bigconsole.widget.actions.header.addTitle", "Add Button")
244
+ }), /* @__PURE__ */ f(fe, {
248
245
  style: {
249
246
  fontSize: "var(--font-size-body-sm)",
250
247
  color: "var(--color-text-secondary)",
251
248
  margin: "var(--space-controlGap) 0 0 0"
252
249
  },
253
- children: x ? "Update the button and what it does" : "Add a button and choose what it does"
250
+ children: S ? x("bigconsole.widget.actions.header.editDescription", "Update the button and what it does") : x("bigconsole.widget.actions.header.addDescription", "Add a button and choose what it does")
254
251
  })] })]
255
252
  })
256
253
  }), /* @__PURE__ */ p("form", {
257
- onSubmit: Ee,
254
+ onSubmit: Ne,
258
255
  children: [/* @__PURE__ */ p("div", {
259
256
  style: {
260
257
  padding: "var(--space-pagePadding)",
@@ -262,7 +259,7 @@ var h = {
262
259
  overflowY: "auto"
263
260
  },
264
261
  children: [
265
- (Q || ve) && /* @__PURE__ */ f("div", {
262
+ (Q || xe) && /* @__PURE__ */ f("div", {
266
263
  style: {
267
264
  padding: "var(--space-controlGap)",
268
265
  backgroundColor: "var(--color-status-error-bgSubtle)",
@@ -276,7 +273,7 @@ var h = {
276
273
  color: "var(--color-status-error-text)",
277
274
  margin: 0
278
275
  },
279
- children: Q || ve
276
+ children: Q || xe
280
277
  })
281
278
  }),
282
279
  /* @__PURE__ */ p("div", {
@@ -284,16 +281,20 @@ var h = {
284
281
  children: [
285
282
  /* @__PURE__ */ p("label", {
286
283
  style: h,
287
- children: ["Button label ", /* @__PURE__ */ f("span", {
288
- style: { color: "var(--color-status-error-text)" },
289
- children: "*"
290
- })]
284
+ children: [
285
+ x("bigconsole.widget.actions.field.buttonLabel", "Button label"),
286
+ " ",
287
+ /* @__PURE__ */ f("span", {
288
+ style: { color: "var(--color-status-error-text)" },
289
+ children: "*"
290
+ })
291
+ ]
291
292
  }),
292
293
  /* @__PURE__ */ f(o, {
293
- ref: S,
294
- value: w,
295
- onChange: (e) => Te(e.target.value),
296
- placeholder: "e.g., Refresh Data, Export CSV",
294
+ ref: C,
295
+ value: T,
296
+ onChange: (e) => Me(e.target.value),
297
+ placeholder: x("bigconsole.widget.actions.field.buttonLabelPlaceholder", "e.g., Refresh Data, Export CSV"),
297
298
  disabled: b,
298
299
  style: {
299
300
  height: "var(--size-controlHeight-md)",
@@ -302,7 +303,7 @@ var h = {
302
303
  }),
303
304
  /* @__PURE__ */ f("p", {
304
305
  style: g,
305
- children: "Text shown on the button"
306
+ children: x("bigconsole.widget.actions.field.buttonLabelHint", "Text shown on the button")
306
307
  })
307
308
  ]
308
309
  }),
@@ -315,10 +316,10 @@ var h = {
315
316
  },
316
317
  children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
317
318
  style: h,
318
- children: "Style"
319
+ children: x("bigconsole.widget.actions.field.style", "Style")
319
320
  }), /* @__PURE__ */ p(s, {
320
- value: A,
321
- onValueChange: (e) => j(e),
321
+ value: j,
322
+ onValueChange: (e) => M(e),
322
323
  disabled: b,
323
324
  children: [/* @__PURE__ */ f(u, {
324
325
  style: {
@@ -328,30 +329,30 @@ var h = {
328
329
  children: /* @__PURE__ */ f(d, {})
329
330
  }), /* @__PURE__ */ f(c, {
330
331
  style: _,
331
- children: ge.map((e) => /* @__PURE__ */ f(l, {
332
+ children: Ae.map((e) => /* @__PURE__ */ f(l, {
332
333
  value: e.value,
333
334
  children: e.label
334
335
  }, e.value))
335
336
  })]
336
337
  })] }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("label", {
337
338
  style: h,
338
- children: "Icon"
339
+ children: x("bigconsole.widget.actions.field.icon", "Icon")
339
340
  }), /* @__PURE__ */ p(s, {
340
- value: M,
341
- onValueChange: N,
341
+ value: N,
342
+ onValueChange: P,
342
343
  disabled: b,
343
344
  children: [/* @__PURE__ */ f(u, {
344
345
  style: {
345
346
  height: "var(--size-controlHeight-md)",
346
347
  fontSize: "var(--font-size-body-sm)"
347
348
  },
348
- children: /* @__PURE__ */ f(d, { placeholder: "No icon" })
349
+ children: /* @__PURE__ */ f(d, { placeholder: x("bigconsole.widget.actions.icon.none", "No icon") })
349
350
  }), /* @__PURE__ */ f(c, {
350
351
  style: {
351
352
  ..._,
352
353
  maxHeight: "200px"
353
354
  },
354
- children: _e.map((e) => /* @__PURE__ */ f(l, {
355
+ children: je.map((e) => /* @__PURE__ */ f(l, {
355
356
  value: e.value || "none",
356
357
  children: e.label
357
358
  }, e.value || "none"))
@@ -373,7 +374,7 @@ var h = {
373
374
  fontSize: "var(--font-size-body-sm)",
374
375
  color: "var(--color-text-muted)"
375
376
  },
376
- children: "Preview:"
377
+ children: x("bigconsole.widget.actions.preview.label", "Preview:")
377
378
  }), /* @__PURE__ */ f("button", {
378
379
  type: "button",
379
380
  style: {
@@ -381,12 +382,12 @@ var h = {
381
382
  fontSize: "var(--font-size-body-sm)",
382
383
  fontWeight: "var(--font-weight-medium)",
383
384
  borderRadius: "var(--radius-button)",
384
- backgroundColor: De(A),
385
+ backgroundColor: Pe(j),
385
386
  color: "var(--color-action-primary-text)",
386
387
  border: "none",
387
388
  cursor: "default"
388
389
  },
389
- children: w || "Button"
390
+ children: T || x("bigconsole.widget.actions.preview.buttonFallback", "Button")
390
391
  })]
391
392
  }),
392
393
  /* @__PURE__ */ p("div", {
@@ -394,12 +395,12 @@ var h = {
394
395
  children: [
395
396
  /* @__PURE__ */ f("label", {
396
397
  style: h,
397
- children: "When clicked"
398
+ children: x("bigconsole.widget.actions.field.whenClicked", "When clicked")
398
399
  }),
399
400
  /* @__PURE__ */ p(s, {
400
- value: P,
401
+ value: F,
401
402
  onValueChange: (e) => {
402
- C.current = !0, F(e);
403
+ w.current = !0, I(e);
403
404
  },
404
405
  disabled: b,
405
406
  children: [/* @__PURE__ */ f(u, {
@@ -410,19 +411,19 @@ var h = {
410
411
  children: /* @__PURE__ */ f(d, {})
411
412
  }), /* @__PURE__ */ f(c, {
412
413
  style: _,
413
- children: me.map((e) => /* @__PURE__ */ f(l, {
414
+ children: ke.map((e) => /* @__PURE__ */ f(l, {
414
415
  value: e.value,
415
416
  children: e.label
416
417
  }, e.value))
417
418
  })]
418
419
  }),
419
- Oe && /* @__PURE__ */ f("p", {
420
+ Fe && /* @__PURE__ */ f("p", {
420
421
  style: g,
421
- children: Oe.hint
422
+ children: Fe.hint
422
423
  })
423
424
  ]
424
425
  }),
425
- P === "WEBHOOK" && /* @__PURE__ */ p("div", {
426
+ F === "WEBHOOK" && /* @__PURE__ */ p("div", {
426
427
  style: {
427
428
  marginBottom: "var(--space-formGap)",
428
429
  paddingLeft: "var(--space-formGap)",
@@ -434,16 +435,20 @@ var h = {
434
435
  children: [
435
436
  /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ p("label", {
436
437
  style: h,
437
- children: ["URL ", /* @__PURE__ */ f("span", {
438
- style: { color: "var(--color-status-error-text)" },
439
- children: "*"
440
- })]
438
+ children: [
439
+ x("bigconsole.widget.actions.webhook.urlLabel", "URL"),
440
+ " ",
441
+ /* @__PURE__ */ f("span", {
442
+ style: { color: "var(--color-status-error-text)" },
443
+ children: "*"
444
+ })
445
+ ]
441
446
  }), /* @__PURE__ */ f(o, {
442
- value: I,
447
+ value: L,
443
448
  onChange: (e) => {
444
- C.current = !0, L(e.target.value), Q && $(null);
449
+ w.current = !0, we(e.target.value), Q && $(null);
445
450
  },
446
- placeholder: "https://your-service.com/hook",
451
+ placeholder: x("bigconsole.widget.actions.webhook.urlPlaceholder", "https://your-service.com/hook"),
447
452
  disabled: b,
448
453
  style: {
449
454
  height: "var(--size-controlHeight-md)",
@@ -454,11 +459,11 @@ var h = {
454
459
  style: { maxWidth: "160px" },
455
460
  children: [/* @__PURE__ */ f("label", {
456
461
  style: h,
457
- children: "Method"
462
+ children: x("bigconsole.widget.actions.webhook.methodLabel", "Method")
458
463
  }), /* @__PURE__ */ p(s, {
459
464
  value: R,
460
465
  onValueChange: (e) => {
461
- C.current = !0, z(e);
466
+ w.current = !0, z(e);
462
467
  },
463
468
  disabled: b,
464
469
  children: [/* @__PURE__ */ f(u, {
@@ -469,7 +474,7 @@ var h = {
469
474
  children: /* @__PURE__ */ f(d, {})
470
475
  }), /* @__PURE__ */ f(c, {
471
476
  style: _,
472
- children: he.map((e) => /* @__PURE__ */ f(l, {
477
+ children: ve.map((e) => /* @__PURE__ */ f(l, {
473
478
  value: e,
474
479
  children: e
475
480
  }, e))
@@ -478,20 +483,23 @@ var h = {
478
483
  }),
479
484
  /* @__PURE__ */ f("p", {
480
485
  style: g,
481
- children: "The widget's current data is sent as the request payload."
486
+ children: x("bigconsole.widget.actions.webhook.payloadHint", "The widget's current data is sent as the request payload.")
482
487
  }),
483
- /^http:\/\//i.test(I.trim()) && /* @__PURE__ */ p("p", {
488
+ /^http:\/\//i.test(L.trim()) && /* @__PURE__ */ p("p", {
484
489
  style: {
485
490
  ...g,
486
491
  color: "var(--color-status-warning-text)"
487
492
  },
488
493
  children: [
489
- "Warning: ",
494
+ x("bigconsole.widget.actions.webhook.insecureWarningPrefix", "Warning:"),
495
+ " ",
490
496
  /* @__PURE__ */ f("code", { children: "http://" }),
491
- " is unencrypted — the widget's data will be sent in plaintext. Use",
497
+ " ",
498
+ x("bigconsole.widget.actions.webhook.insecureWarningMiddle", "is unencrypted — the widget's data will be sent in plaintext. Use"),
492
499
  " ",
493
500
  /* @__PURE__ */ f("code", { children: "https://" }),
494
- " if it may contain anything sensitive."
501
+ " ",
502
+ x("bigconsole.widget.actions.webhook.insecureWarningSuffix", "if it may contain anything sensitive.")
495
503
  ]
496
504
  })
497
505
  ]
@@ -509,7 +517,7 @@ var h = {
509
517
  cursor: "pointer",
510
518
  marginBottom: "var(--space-formGap)"
511
519
  },
512
- children: [/* @__PURE__ */ f(a, {
520
+ children: [/* @__PURE__ */ f(le, {
513
521
  checked: W,
514
522
  onCheckedChange: (e) => G(e === !0),
515
523
  disabled: b
@@ -519,7 +527,7 @@ var h = {
519
527
  fontWeight: "var(--font-weight-semibold)",
520
528
  color: "var(--color-text-primary)"
521
529
  },
522
- children: "Ask for confirmation first"
530
+ children: x("bigconsole.widget.actions.confirm.toggleLabel", "Ask for confirmation first")
523
531
  })]
524
532
  }), W && /* @__PURE__ */ p("div", {
525
533
  style: {
@@ -538,7 +546,7 @@ var h = {
538
546
  color: "var(--color-text-secondary)",
539
547
  marginBottom: "var(--space-controlGap)"
540
548
  },
541
- children: "Dialog Title"
549
+ children: x("bigconsole.widget.actions.confirm.dialogTitleLabel", "Dialog Title")
542
550
  }), /* @__PURE__ */ f(o, {
543
551
  value: K,
544
552
  onChange: (e) => q(e.target.value),
@@ -556,8 +564,8 @@ var h = {
556
564
  color: "var(--color-text-secondary)",
557
565
  marginBottom: "var(--space-controlGap)"
558
566
  },
559
- children: "Message"
560
- }), /* @__PURE__ */ f(pe, {
567
+ children: x("bigconsole.widget.actions.confirm.messageLabel", "Message")
568
+ }), /* @__PURE__ */ f(_e, {
561
569
  value: J,
562
570
  onChange: (e) => Y(e.target.value),
563
571
  rows: 2,
@@ -581,9 +589,9 @@ var h = {
581
589
  color: "var(--color-text-secondary)",
582
590
  marginBottom: "var(--space-controlGap)"
583
591
  },
584
- children: "Confirm Button"
592
+ children: x("bigconsole.widget.actions.confirm.confirmButtonLabel", "Confirm Button")
585
593
  }), /* @__PURE__ */ f(o, {
586
- value: Ce,
594
+ value: De,
587
595
  onChange: (e) => X(e.target.value),
588
596
  disabled: b,
589
597
  style: {
@@ -598,9 +606,9 @@ var h = {
598
606
  color: "var(--color-text-secondary)",
599
607
  marginBottom: "var(--space-controlGap)"
600
608
  },
601
- children: "Cancel Button"
609
+ children: x("bigconsole.widget.actions.confirm.cancelButtonLabel", "Cancel Button")
602
610
  }), /* @__PURE__ */ f(o, {
603
- value: we,
611
+ value: Oe,
604
612
  onChange: (e) => Z(e.target.value),
605
613
  disabled: b,
606
614
  style: {
@@ -619,7 +627,7 @@ var h = {
619
627
  },
620
628
  children: [/* @__PURE__ */ p("button", {
621
629
  type: "button",
622
- onClick: () => Se((e) => !e),
630
+ onClick: () => Ee((e) => !e),
623
631
  style: {
624
632
  display: "flex",
625
633
  alignItems: "center",
@@ -632,11 +640,11 @@ var h = {
632
640
  fontWeight: "var(--font-weight-semibold)",
633
641
  color: "var(--color-text-primary)"
634
642
  },
635
- children: [f(xe ? ee : te, { style: {
643
+ children: [f(Te ? ne : re, { style: {
636
644
  height: "14px",
637
645
  width: "14px"
638
- } }), "Advanced"]
639
- }), xe && /* @__PURE__ */ p("div", {
646
+ } }), x("bigconsole.widget.actions.advanced.toggle", "Advanced")]
647
+ }), Te && /* @__PURE__ */ p("div", {
640
648
  style: {
641
649
  marginTop: "var(--space-formGap)",
642
650
  display: "flex",
@@ -646,15 +654,15 @@ var h = {
646
654
  children: [/* @__PURE__ */ p("div", { children: [
647
655
  /* @__PURE__ */ f("label", {
648
656
  style: h,
649
- children: "Event name (id)"
657
+ children: x("bigconsole.widget.actions.advanced.eventNameLabel", "Event name (id)")
650
658
  }),
651
659
  /* @__PURE__ */ f(o, {
652
- value: x && v ? v.name : E,
660
+ value: S && v ? v.name : D,
653
661
  onChange: (e) => {
654
- D(e.target.value), k(!0);
662
+ O(e.target.value), A(!0);
655
663
  },
656
- placeholder: "auto from label",
657
- disabled: b || x,
664
+ placeholder: x("bigconsole.widget.actions.advanced.eventNamePlaceholder", "auto from label"),
665
+ disabled: b || S,
658
666
  style: {
659
667
  height: "var(--size-controlHeight-md)",
660
668
  fontSize: "var(--font-size-body-sm)",
@@ -664,15 +672,16 @@ var h = {
664
672
  /* @__PURE__ */ p("p", {
665
673
  style: g,
666
674
  children: [
667
- "Emits",
675
+ x("bigconsole.widget.actions.advanced.emitsPrefix", "Emits"),
668
676
  " ",
669
677
  /* @__PURE__ */ p("code", { children: [
670
678
  "widget:",
671
- x && v ? v.name : m(E || w) || "<name>",
679
+ S && v ? v.name : m(D || T) || "<name>",
672
680
  ":clicked"
673
681
  ] }),
674
- ". ",
675
- x ? "Fixed once created." : "Auto-derived from the label."
682
+ ".",
683
+ " ",
684
+ S ? x("bigconsole.widget.actions.advanced.emitsFixed", "Fixed once created.") : x("bigconsole.widget.actions.advanced.emitsAutoDerived", "Auto-derived from the label.")
676
685
  ]
677
686
  })
678
687
  ] }), /* @__PURE__ */ p("div", {
@@ -688,7 +697,7 @@ var h = {
688
697
  gap: "var(--space-controlGap)",
689
698
  cursor: "pointer"
690
699
  },
691
- children: [/* @__PURE__ */ f(a, {
700
+ children: [/* @__PURE__ */ f(le, {
692
701
  checked: B,
693
702
  onCheckedChange: (e) => V(e === !0),
694
703
  disabled: b
@@ -697,7 +706,7 @@ var h = {
697
706
  fontSize: "var(--font-size-body-sm)",
698
707
  color: "var(--color-text-primary)"
699
708
  },
700
- children: "Disabled"
709
+ children: x("bigconsole.widget.actions.advanced.disabled", "Disabled")
701
710
  })]
702
711
  }), /* @__PURE__ */ p("label", {
703
712
  style: {
@@ -706,7 +715,7 @@ var h = {
706
715
  gap: "var(--space-controlGap)",
707
716
  cursor: "pointer"
708
717
  },
709
- children: [/* @__PURE__ */ f(a, {
718
+ children: [/* @__PURE__ */ f(le, {
710
719
  checked: H,
711
720
  onCheckedChange: (e) => U(e === !0),
712
721
  disabled: b
@@ -715,14 +724,14 @@ var h = {
715
724
  fontSize: "var(--font-size-body-sm)",
716
725
  color: "var(--color-text-primary)"
717
726
  },
718
- children: "Hidden"
727
+ children: x("bigconsole.widget.actions.advanced.hidden", "Hidden")
719
728
  })]
720
729
  })]
721
730
  })]
722
731
  })]
723
732
  })
724
733
  ]
725
- }), /* @__PURE__ */ p(le, {
734
+ }), /* @__PURE__ */ p(pe, {
726
735
  style: {
727
736
  padding: "var(--space-formGap) var(--space-pagePadding)",
728
737
  borderTop: "1px solid var(--color-border)",
@@ -731,40 +740,44 @@ var h = {
731
740
  justifyContent: "flex-end",
732
741
  gap: "var(--space-controlGap)"
733
742
  },
734
- children: [/* @__PURE__ */ f(ae, {
743
+ children: [/* @__PURE__ */ f(ce, {
735
744
  type: "button",
736
745
  variant: "outline",
737
- onClick: ye,
746
+ onClick: Se,
738
747
  disabled: b,
739
748
  style: { height: "var(--size-controlHeight-md)" },
740
- children: "Cancel"
741
- }), /* @__PURE__ */ f(ae, {
742
- type: "submit",
743
- disabled: b || !w.trim(),
744
- style: {
745
- height: "var(--size-controlHeight-md)",
746
- backgroundColor: "var(--color-action-primary-bg)"
747
- },
748
- children: b ? /* @__PURE__ */ p("span", {
749
+ children: x("bigconsole.widget.actions.footer.cancel", "Cancel")
750
+ }), /* @__PURE__ */ f(te, {
751
+ permission: S ? e.WIDGET_ACTION_UPDATE : e.WIDGET_ACTION_CREATE,
752
+ deniedBehavior: "disable",
753
+ children: /* @__PURE__ */ f(ce, {
754
+ type: "submit",
755
+ disabled: b || !T.trim(),
749
756
  style: {
750
- display: "flex",
751
- alignItems: "center",
752
- gap: "var(--space-iconGap)"
753
- },
754
- children: [/* @__PURE__ */ f(fe, { style: {
755
- height: "var(--size-icon-sm)",
756
- width: "var(--size-icon-sm)"
757
- } }), "Saving..."]
758
- }) : /* @__PURE__ */ p("span", {
759
- style: {
760
- display: "flex",
761
- alignItems: "center",
762
- gap: "var(--space-iconGap)"
757
+ height: "var(--size-controlHeight-md)",
758
+ backgroundColor: "var(--color-action-primary-bg)"
763
759
  },
764
- children: [f(x ? ne : re, { style: {
765
- height: "var(--size-icon-sm)",
766
- width: "var(--size-icon-sm)"
767
- } }), x ? "Update Button" : "Add Button"]
760
+ children: b ? /* @__PURE__ */ p("span", {
761
+ style: {
762
+ display: "flex",
763
+ alignItems: "center",
764
+ gap: "var(--space-iconGap)"
765
+ },
766
+ children: [/* @__PURE__ */ f(ge, { style: {
767
+ height: "var(--size-icon-sm)",
768
+ width: "var(--size-icon-sm)"
769
+ } }), x("bigconsole.widget.actions.footer.saving", "Saving...")]
770
+ }) : /* @__PURE__ */ p("span", {
771
+ style: {
772
+ display: "flex",
773
+ alignItems: "center",
774
+ gap: "var(--space-iconGap)"
775
+ },
776
+ children: [f(S ? ie : ae, { style: {
777
+ height: "var(--size-icon-sm)",
778
+ width: "var(--size-icon-sm)"
779
+ } }), S ? x("bigconsole.widget.actions.footer.updateButton", "Update Button") : x("bigconsole.widget.actions.footer.addButton", "Add Button")]
780
+ })
768
781
  })
769
782
  })]
770
783
  })]