@burdenoff/microfe-bigconsole 2026.1008.11 → 2026.1008.12

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 (131) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +1 -1
  2. package/dist/bigconsole/BigConsoleRoutes.js +136 -127
  3. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
  4. package/dist/bigconsole/assistant/assistantProduct.d.ts.map +1 -1
  5. package/dist/bigconsole/assistant/assistantProduct.js +3 -1
  6. package/dist/bigconsole/assistant/assistantProduct.js.map +1 -1
  7. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +31 -31
  8. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +44 -44
  9. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  10. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +36 -36
  11. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
  12. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +59 -59
  13. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +15 -15
  14. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
  15. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +41 -41
  16. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
  17. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +34 -34
  18. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +110 -110
  19. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  20. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +21 -21
  21. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
  22. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +91 -91
  23. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
  24. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -101
  25. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +1 -1
  26. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +31 -31
  27. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +15 -15
  28. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
  29. package/dist/bigconsole/components/dashboard/WidgetPalette.js +46 -46
  30. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +37 -37
  31. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +66 -66
  32. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
  33. package/dist/bigconsole/components/datasink/DataSinkCard.js +29 -29
  34. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
  35. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
  36. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +47 -47
  37. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +91 -91
  38. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
  39. package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
  40. package/dist/bigconsole/components/parser/ImportParserDialog.js +120 -120
  41. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  42. package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
  43. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +10 -10
  44. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +27 -27
  45. package/dist/bigconsole/components/preview/AiPreviewPanel.js +30 -30
  46. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +4 -4
  47. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +93 -93
  48. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  49. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +1 -1
  50. package/dist/bigconsole/components/widgets/PropertiesPanel.js +280 -273
  51. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  52. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +4 -4
  53. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
  54. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
  55. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
  56. package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
  57. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
  58. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
  59. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +4 -4
  60. package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
  61. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
  62. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
  63. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
  64. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
  65. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
  66. package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
  67. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
  68. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +15 -15
  69. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +15 -15
  70. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +9 -9
  71. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +67 -67
  72. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  73. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +15 -0
  74. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts.map +1 -0
  75. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +34 -0
  76. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js.map +1 -0
  77. package/dist/bigconsole/hooks/useDrilldown.js +3 -3
  78. package/dist/bigconsole/hooks/useGlobalFilters.js +3 -3
  79. package/dist/bigconsole/pages/AdminPage.js +130 -130
  80. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +1 -1
  81. package/dist/bigconsole/pages/DashboardBuilderPage.js +72 -60
  82. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  83. package/dist/bigconsole/pages/DashboardViewPage.js +1 -1
  84. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +1 -1
  85. package/dist/bigconsole/pages/DataSinkAlertsPage.js +30 -23
  86. package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +1 -1
  87. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +1 -1
  88. package/dist/bigconsole/pages/DataSinkBuilderPage.js +272 -263
  89. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  90. package/dist/bigconsole/pages/DataSinkViewPage.js +1 -1
  91. package/dist/bigconsole/pages/DataSinksPage.js +1 -1
  92. package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
  93. package/dist/bigconsole/pages/InsightsPage.js +181 -181
  94. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  95. package/dist/bigconsole/pages/OverviewPage.js +47 -47
  96. package/dist/bigconsole/pages/OverviewPage.js.map +1 -1
  97. package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +1 -1
  98. package/dist/bigconsole/pages/ParserBuilderPage.js +227 -211
  99. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  100. package/dist/bigconsole/pages/ParserViewPage.js +97 -97
  101. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +1 -1
  102. package/dist/bigconsole/pages/PipelineBuilderPage.js +256 -214
  103. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  104. package/dist/bigconsole/pages/PipelineViewPage.js +146 -146
  105. package/dist/bigconsole/pages/PipelinesPage.js +88 -88
  106. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  107. package/dist/bigconsole/pages/SettingsPage.d.ts.map +1 -1
  108. package/dist/bigconsole/pages/SettingsPage.js +179 -173
  109. package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
  110. package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
  111. package/dist/bigconsole/pages/WorkflowViewPage.js +1 -1
  112. package/dist/bigconsole/pages/WorkflowsPage.js +141 -141
  113. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  114. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +12 -12
  115. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +34 -34
  116. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +79 -79
  117. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
  118. package/dist/bigconsole/store/widgetStore.d.ts +12 -0
  119. package/dist/bigconsole/store/widgetStore.d.ts.map +1 -1
  120. package/dist/bigconsole/store/widgetStore.js +3 -1
  121. package/dist/bigconsole/store/widgetStore.js.map +1 -1
  122. package/dist/bigconsole/utils/formDirty.d.ts +83 -0
  123. package/dist/bigconsole/utils/formDirty.d.ts.map +1 -0
  124. package/dist/bigconsole/utils/formDirty.js +23 -0
  125. package/dist/bigconsole/utils/formDirty.js.map +1 -0
  126. package/dist/bigconsole/utils/layoutBaseline.d.ts +131 -0
  127. package/dist/bigconsole/utils/layoutBaseline.d.ts.map +1 -0
  128. package/dist/bigconsole/utils/layoutBaseline.js +98 -0
  129. package/dist/bigconsole/utils/layoutBaseline.js.map +1 -0
  130. package/dist/translations/en.d.ts.map +1 -1
  131. package/package.json +1 -1
@@ -1,89 +1,89 @@
1
1
  import { memo as e, useCallback as t } from "react";
2
- import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
- import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
2
+ import { useI18n as n } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
4
  //#region src/bigconsole/components/widgets/metric-card/MetricCardConfig.tsx
5
5
  var a = e(function({ config: e, onChange: a }) {
6
- let { t: o } = i(), s = t((t, n) => {
6
+ let { t: o } = n(), s = t((t, n) => {
7
7
  a({
8
8
  ...e,
9
9
  [t]: n
10
10
  });
11
11
  }, [e, a]);
12
- return /* @__PURE__ */ r("div", {
12
+ return /* @__PURE__ */ i("div", {
13
13
  className: "min-w-0 space-y-form-gap",
14
14
  children: [
15
- /* @__PURE__ */ r("div", { children: [
16
- /* @__PURE__ */ n("label", {
15
+ /* @__PURE__ */ i("div", { children: [
16
+ /* @__PURE__ */ r("label", {
17
17
  className: "block text-sm font-medium text-text-primary mb-1",
18
18
  children: o("bigconsole.widget.config.metricCard.valueField.label", "Value Field")
19
19
  }),
20
- /* @__PURE__ */ n("input", {
20
+ /* @__PURE__ */ r("input", {
21
21
  type: "text",
22
22
  value: e.valueField || "",
23
23
  onChange: (e) => s("valueField", e.target.value),
24
24
  placeholder: o("bigconsole.widget.config.metricCard.valueField.placeholder", "e.g., totalSales, value, amount"),
25
25
  className: "\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n "
26
26
  }),
27
- /* @__PURE__ */ n("p", {
27
+ /* @__PURE__ */ r("p", {
28
28
  className: "text-xs text-text-secondary mt-1",
29
29
  children: o("bigconsole.widget.config.metricCard.valueField.help", "Field name to extract from data (leave empty for auto-detect)")
30
30
  })
31
31
  ] }),
32
- /* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("label", {
32
+ /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("label", {
33
33
  className: "block text-sm font-medium text-text-primary mb-1",
34
34
  children: o("bigconsole.widget.config.metricCard.subtitle.label", "Subtitle")
35
- }), /* @__PURE__ */ n("input", {
35
+ }), /* @__PURE__ */ r("input", {
36
36
  type: "text",
37
37
  value: e.subtitle || "",
38
38
  onChange: (e) => s("subtitle", e.target.value),
39
39
  placeholder: o("bigconsole.widget.config.metricCard.subtitle.placeholder", "e.g., Total Revenue"),
40
40
  className: "\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n "
41
41
  })] }),
42
- /* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("label", {
42
+ /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("label", {
43
43
  className: "block text-sm font-medium text-text-primary mb-1",
44
44
  children: o("bigconsole.widget.config.metricCard.format.label", "Value Format")
45
- }), /* @__PURE__ */ r("select", {
45
+ }), /* @__PURE__ */ i("select", {
46
46
  value: e.format || "auto",
47
47
  onChange: (e) => s("format", e.target.value),
48
48
  className: "\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n ",
49
49
  children: [
50
- /* @__PURE__ */ n("option", {
50
+ /* @__PURE__ */ r("option", {
51
51
  value: "auto",
52
52
  children: o("bigconsole.widget.config.metricCard.format.auto", "Auto (from data)")
53
53
  }),
54
- /* @__PURE__ */ n("option", {
54
+ /* @__PURE__ */ r("option", {
55
55
  value: "number",
56
56
  children: o("bigconsole.widget.config.metricCard.format.number", "Number")
57
57
  }),
58
- /* @__PURE__ */ n("option", {
58
+ /* @__PURE__ */ r("option", {
59
59
  value: "currency",
60
60
  children: o("bigconsole.widget.config.metricCard.format.currency", "Currency")
61
61
  }),
62
- /* @__PURE__ */ n("option", {
62
+ /* @__PURE__ */ r("option", {
63
63
  value: "percentage",
64
64
  children: o("bigconsole.widget.config.metricCard.format.percentage", "Percentage")
65
65
  }),
66
- /* @__PURE__ */ n("option", {
66
+ /* @__PURE__ */ r("option", {
67
67
  value: "compact",
68
68
  children: o("bigconsole.widget.config.metricCard.format.compact", "Compact (1K, 1M)")
69
69
  })
70
70
  ]
71
71
  })] }),
72
- /* @__PURE__ */ r("div", {
72
+ /* @__PURE__ */ i("div", {
73
73
  className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
74
- children: [/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("label", {
74
+ children: [/* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("label", {
75
75
  className: "block text-sm font-medium text-text-primary mb-1",
76
76
  children: o("bigconsole.widget.config.metricCard.prefix.label", "Prefix")
77
- }), /* @__PURE__ */ n("input", {
77
+ }), /* @__PURE__ */ r("input", {
78
78
  type: "text",
79
79
  value: e.prefix || "",
80
80
  onChange: (e) => s("prefix", e.target.value),
81
81
  placeholder: o("bigconsole.widget.config.metricCard.prefix.placeholder", "e.g., $"),
82
82
  className: "\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n "
83
- })] }), /* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("label", {
83
+ })] }), /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("label", {
84
84
  className: "block text-sm font-medium text-text-primary mb-1",
85
85
  children: o("bigconsole.widget.config.metricCard.suffix.label", "Suffix")
86
- }), /* @__PURE__ */ n("input", {
86
+ }), /* @__PURE__ */ r("input", {
87
87
  type: "text",
88
88
  value: e.suffix || "",
89
89
  onChange: (e) => s("suffix", e.target.value),
@@ -91,69 +91,69 @@ var a = e(function({ config: e, onChange: a }) {
91
91
  className: "\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n "
92
92
  })] })]
93
93
  }),
94
- /* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("label", {
94
+ /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("label", {
95
95
  className: "block text-sm font-medium text-text-primary mb-1",
96
96
  children: o("bigconsole.widget.config.metricCard.comparisonLabel.label", "Comparison Label")
97
- }), /* @__PURE__ */ n("input", {
97
+ }), /* @__PURE__ */ r("input", {
98
98
  type: "text",
99
99
  value: e.comparisonLabel || "",
100
100
  onChange: (e) => s("comparisonLabel", e.target.value),
101
101
  placeholder: o("bigconsole.widget.config.metricCard.comparisonLabel.placeholder", "e.g., vs last week"),
102
102
  className: "\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n "
103
103
  })] }),
104
- /* @__PURE__ */ r("div", {
104
+ /* @__PURE__ */ i("div", {
105
105
  role: "group",
106
106
  "aria-label": "Display options",
107
107
  className: "space-y-3 border-t border-[var(--color-border-subtle)] pt-form-gap",
108
108
  children: [
109
- /* @__PURE__ */ n("p", {
109
+ /* @__PURE__ */ r("p", {
110
110
  className: "text-xs font-bold uppercase tracking-wider text-text-secondary",
111
111
  children: "Display options"
112
112
  }),
113
- /* @__PURE__ */ r("label", {
113
+ /* @__PURE__ */ i("label", {
114
114
  className: "flex items-center gap-3",
115
- children: [/* @__PURE__ */ n("input", {
115
+ children: [/* @__PURE__ */ r("input", {
116
116
  type: "checkbox",
117
117
  checked: e.showTrend !== !1,
118
118
  onChange: (e) => s("showTrend", e.target.checked),
119
119
  className: "\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n "
120
- }), /* @__PURE__ */ n("span", {
120
+ }), /* @__PURE__ */ r("span", {
121
121
  className: "text-sm text-text-primary",
122
122
  children: o("bigconsole.widget.config.metricCard.showTrend", "Show trend indicator")
123
123
  })]
124
124
  }),
125
- /* @__PURE__ */ r("label", {
125
+ /* @__PURE__ */ i("label", {
126
126
  className: "flex items-center gap-3",
127
- children: [/* @__PURE__ */ n("input", {
127
+ children: [/* @__PURE__ */ r("input", {
128
128
  type: "checkbox",
129
129
  checked: e.showComparison !== !1,
130
130
  onChange: (e) => s("showComparison", e.target.checked),
131
131
  className: "\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n "
132
- }), /* @__PURE__ */ n("span", {
132
+ }), /* @__PURE__ */ r("span", {
133
133
  className: "text-sm text-text-primary",
134
134
  children: o("bigconsole.widget.config.metricCard.showComparison", "Show comparison badge")
135
135
  })]
136
136
  }),
137
- /* @__PURE__ */ r("label", {
137
+ /* @__PURE__ */ i("label", {
138
138
  className: "flex items-center gap-3",
139
- children: [/* @__PURE__ */ n("input", {
139
+ children: [/* @__PURE__ */ r("input", {
140
140
  type: "checkbox",
141
141
  checked: e.showSparkline !== !1,
142
142
  onChange: (e) => s("showSparkline", e.target.checked),
143
143
  className: "\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n "
144
- }), /* @__PURE__ */ n("span", {
144
+ }), /* @__PURE__ */ r("span", {
145
145
  className: "text-sm text-text-primary",
146
146
  children: o("bigconsole.widget.config.metricCard.showSparkline", "Show sparkline chart")
147
147
  })]
148
148
  }),
149
- /* @__PURE__ */ r("label", {
149
+ /* @__PURE__ */ i("label", {
150
150
  className: "flex items-center gap-3",
151
- children: [/* @__PURE__ */ n("input", {
151
+ children: [/* @__PURE__ */ r("input", {
152
152
  type: "checkbox",
153
153
  checked: e.positiveIsGood !== !1,
154
154
  onChange: (e) => s("positiveIsGood", e.target.checked),
155
155
  className: "\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n "
156
- }), /* @__PURE__ */ n("span", {
156
+ }), /* @__PURE__ */ r("span", {
157
157
  className: "text-sm text-text-primary",
158
158
  children: o("bigconsole.widget.config.metricCard.positiveIsGood", "Positive change is good")
159
159
  })]
@@ -1,6 +1,6 @@
1
1
  import { memo as e, useMemo as t } from "react";
2
- import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
- import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
2
+ import { useI18n as n } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
4
  //#region src/bigconsole/components/widgets/metric-card/SparklineChart.tsx
5
5
  var a = {
6
6
  primary: {
@@ -24,7 +24,7 @@ var a = {
24
24
  fill: "fill-text-secondary/10"
25
25
  }
26
26
  }, o = e(function({ data: e, width: o = 100, height: s = 32, color: c = "primary", showFill: l = !0, strokeWidth: u = 2 }) {
27
- let { t: d } = i(), f = t(() => {
27
+ let { t: d } = n(), f = t(() => {
28
28
  if (!e.length) return {
29
29
  line: "",
30
30
  area: "",
@@ -56,31 +56,31 @@ var a = {
56
56
  s,
57
57
  u
58
58
  ]);
59
- if (!f.end) return /* @__PURE__ */ n("div", {
59
+ if (!f.end) return /* @__PURE__ */ r("div", {
60
60
  className: "flex items-center justify-center text-text-secondary",
61
61
  style: {
62
62
  width: o,
63
63
  height: s
64
64
  },
65
- children: /* @__PURE__ */ n("span", {
65
+ children: /* @__PURE__ */ r("span", {
66
66
  className: "text-xs",
67
67
  children: d("bigconsole.widget.sparkline.noData", "No data")
68
68
  })
69
69
  });
70
70
  let p = a[c];
71
- return /* @__PURE__ */ r("svg", {
71
+ return /* @__PURE__ */ i("svg", {
72
72
  width: o,
73
73
  height: s,
74
74
  className: "overflow-visible",
75
75
  role: "img",
76
76
  "aria-label": d("bigconsole.widget.sparkline.ariaLabel", "Sparkline chart"),
77
77
  children: [
78
- l && /* @__PURE__ */ n("path", {
78
+ l && /* @__PURE__ */ r("path", {
79
79
  d: f.area,
80
80
  className: p.fill,
81
81
  strokeWidth: 0
82
82
  }),
83
- /* @__PURE__ */ n("path", {
83
+ /* @__PURE__ */ r("path", {
84
84
  d: f.line,
85
85
  className: p.stroke,
86
86
  fill: "none",
@@ -88,7 +88,7 @@ var a = {
88
88
  strokeLinecap: "round",
89
89
  strokeLinejoin: "round"
90
90
  }),
91
- /* @__PURE__ */ n("circle", {
91
+ /* @__PURE__ */ r("circle", {
92
92
  cx: f.end.x,
93
93
  cy: f.end.y,
94
94
  r: u + 1,
@@ -1,48 +1,48 @@
1
1
  import { memo as e } from "react";
2
- import { jsx as t } from "react/jsx-runtime";
3
- import { useI18n as n } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
2
+ import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
+ import { jsx as n } from "react/jsx-runtime";
4
4
  //#region src/bigconsole/components/widgets/metric-card/TrendIndicator.tsx
5
5
  var r = {
6
6
  sm: "w-3 h-3",
7
7
  md: "w-4 h-4",
8
8
  lg: "w-5 h-5"
9
9
  }, i = e(function({ direction: e, size: i = "md", positiveIsGood: a = !0 }) {
10
- let { t: o } = n(), s = () => {
10
+ let { t: o } = t(), s = () => {
11
11
  if (e === "flat") return "text-text-secondary";
12
12
  let t = e === "up";
13
13
  return (a ? t : !t) ? "text-status-success-text" : "text-status-error-text";
14
14
  }, c = r[i], l = s();
15
- return e === "flat" ? /* @__PURE__ */ t("svg", {
15
+ return e === "flat" ? /* @__PURE__ */ n("svg", {
16
16
  className: `${c} ${l}`,
17
17
  fill: "none",
18
18
  stroke: "currentColor",
19
19
  viewBox: "0 0 24 24",
20
20
  "aria-label": o("bigconsole.widget.trend.noChange", "No change"),
21
- children: /* @__PURE__ */ t("path", {
21
+ children: /* @__PURE__ */ n("path", {
22
22
  strokeLinecap: "round",
23
23
  strokeLinejoin: "round",
24
24
  strokeWidth: 2,
25
25
  d: "M5 12h14"
26
26
  })
27
- }) : e === "up" ? /* @__PURE__ */ t("svg", {
27
+ }) : e === "up" ? /* @__PURE__ */ n("svg", {
28
28
  className: `${c} ${l}`,
29
29
  fill: "none",
30
30
  stroke: "currentColor",
31
31
  viewBox: "0 0 24 24",
32
32
  "aria-label": o("bigconsole.widget.trend.up", "Trending up"),
33
- children: /* @__PURE__ */ t("path", {
33
+ children: /* @__PURE__ */ n("path", {
34
34
  strokeLinecap: "round",
35
35
  strokeLinejoin: "round",
36
36
  strokeWidth: 2,
37
37
  d: "M5 15l7-7 7 7"
38
38
  })
39
- }) : /* @__PURE__ */ t("svg", {
39
+ }) : /* @__PURE__ */ n("svg", {
40
40
  className: `${c} ${l}`,
41
41
  fill: "none",
42
42
  stroke: "currentColor",
43
43
  viewBox: "0 0 24 24",
44
44
  "aria-label": o("bigconsole.widget.trend.down", "Trending down"),
45
- children: /* @__PURE__ */ t("path", {
45
+ children: /* @__PURE__ */ n("path", {
46
46
  strokeLinecap: "round",
47
47
  strokeLinejoin: "round",
48
48
  strokeWidth: 2,
@@ -4,8 +4,8 @@ import t from "../../../hooks/useWidgetOperations.js";
4
4
  import "../../../hooks/index.js";
5
5
  import { memo as n, useCallback as r, useMemo as i, useState as a } from "react";
6
6
  import { ChevronDown as o, ChevronRight as s, GripVertical as c, Settings as l } from "lucide-react";
7
- import { jsx as u, jsxs as d } from "react/jsx-runtime";
8
- import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
+ import { useI18n as u } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
8
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
9
9
  //#region src/bigconsole/components/widgets/pivot-table/PivotTableWidget.tsx
10
10
  var p = [
11
11
  "sum",
@@ -80,7 +80,7 @@ function _(e, t, n, r) {
80
80
  return a;
81
81
  }
82
82
  var v = n(function({ widget: n, data: c = [], onDrilldown: p }) {
83
- let { t: m } = f(), v = i(() => Array.isArray(c) ? c : [], [c]), y = i(() => {
83
+ let { t: m } = u(), v = i(() => Array.isArray(c) ? c : [], [c]), y = i(() => {
84
84
  let e = {
85
85
  rows: [],
86
86
  columns: [],
@@ -212,35 +212,35 @@ var v = n(function({ widget: n, data: c = [], onDrilldown: p }) {
212
212
  let i = [], a = e.children.size > 0, c = N.has(n), l = O[r - 1];
213
213
  if (r > 0) {
214
214
  let l = _(v, k, A, t);
215
- i.push(/* @__PURE__ */ d("tr", {
215
+ i.push(/* @__PURE__ */ f("tr", {
216
216
  className: "hover:bg-bg-sunken/50 transition-colors",
217
217
  children: [
218
- /* @__PURE__ */ u("td", {
218
+ /* @__PURE__ */ d("td", {
219
219
  className: "sticky left-0 bg-bg-surface border-r border-border-default px-3 py-2 font-medium text-sm",
220
220
  style: { paddingLeft: `${r * 16 + 8}px` },
221
- children: /* @__PURE__ */ d("div", {
221
+ children: /* @__PURE__ */ f("div", {
222
222
  className: "flex items-center gap-1",
223
223
  children: [
224
- y.expandable && a && /* @__PURE__ */ u("button", {
224
+ y.expandable && a && /* @__PURE__ */ d("button", {
225
225
  type: "button",
226
226
  onClick: () => U(n),
227
227
  className: "p-0.5 hover:bg-bg-sunken rounded",
228
- children: u(c ? o : s, { className: "w-4 h-4 text-text-secondary" })
228
+ children: d(c ? o : s, { className: "w-4 h-4 text-text-secondary" })
229
229
  }),
230
- !a && y.expandable && /* @__PURE__ */ u("span", { className: "w-5" }),
231
- /* @__PURE__ */ u("span", { children: e.key })
230
+ !a && y.expandable && /* @__PURE__ */ d("span", { className: "w-5" }),
231
+ /* @__PURE__ */ d("span", { children: e.key })
232
232
  ]
233
233
  })
234
234
  }),
235
235
  I.map((e) => {
236
236
  let n = l.get(e) || {};
237
- return A.map((r) => /* @__PURE__ */ u("td", {
237
+ return A.map((r) => /* @__PURE__ */ d("td", {
238
238
  className: "px-3 py-2 text-sm text-right tabular-nums cursor-pointer hover:bg-action-primary-bg/10",
239
239
  onClick: () => W(t, e),
240
240
  children: H(n[r.field] || 0)
241
241
  }, `${e}-${r.field}`));
242
242
  }),
243
- y.showRowTotals && A.map((t) => /* @__PURE__ */ u("td", {
243
+ y.showRowTotals && A.map((t) => /* @__PURE__ */ d("td", {
244
244
  className: "px-3 py-2 text-sm text-right tabular-nums font-medium bg-bg-sunken/30",
245
245
  children: H(e.values[t.field] || 0)
246
246
  }, `total-${t.field}`))
@@ -270,87 +270,87 @@ var v = n(function({ widget: n, data: c = [], onDrilldown: p }) {
270
270
  W,
271
271
  U
272
272
  ]), K = O.length > 0 || A.length > 0;
273
- return v.length === 0 ? /* @__PURE__ */ d("div", {
273
+ return v.length === 0 ? /* @__PURE__ */ f("div", {
274
274
  className: "flex flex-col items-center justify-center h-full p-8 text-text-secondary",
275
275
  children: [
276
- /* @__PURE__ */ u(l, { className: "w-12 h-12 mb-4 opacity-50" }),
277
- /* @__PURE__ */ u("p", {
276
+ /* @__PURE__ */ d(l, { className: "w-12 h-12 mb-4 opacity-50" }),
277
+ /* @__PURE__ */ d("p", {
278
278
  className: "text-sm",
279
279
  children: m("bigconsole.widget.pivotTable.noData", "No data available")
280
280
  }),
281
- /* @__PURE__ */ u("p", {
281
+ /* @__PURE__ */ d("p", {
282
282
  className: "text-xs mt-1",
283
283
  children: m("bigconsole.widget.pivotTable.noDataHint", "Configure data source to populate pivot table")
284
284
  })
285
285
  ]
286
- }) : /* @__PURE__ */ d("div", {
286
+ }) : /* @__PURE__ */ f("div", {
287
287
  className: "flex flex-col h-full overflow-hidden",
288
- children: [x && /* @__PURE__ */ u(b, {
288
+ children: [x && /* @__PURE__ */ d(b, {
289
289
  rowFields: O,
290
290
  columnFields: k,
291
291
  valueFields: A,
292
292
  availableFields: z,
293
293
  onMoveField: B,
294
294
  onChangeAggregation: V
295
- }), K ? /* @__PURE__ */ u("div", {
295
+ }), K ? /* @__PURE__ */ d("div", {
296
296
  className: "flex-1 overflow-auto",
297
- children: /* @__PURE__ */ d("table", {
297
+ children: /* @__PURE__ */ f("table", {
298
298
  className: "w-full border-collapse",
299
299
  children: [
300
- /* @__PURE__ */ d("thead", {
300
+ /* @__PURE__ */ f("thead", {
301
301
  className: "sticky top-0 z-10",
302
- children: [/* @__PURE__ */ d("tr", {
302
+ children: [/* @__PURE__ */ f("tr", {
303
303
  className: "bg-bg-sunken",
304
304
  children: [
305
- /* @__PURE__ */ u("th", {
305
+ /* @__PURE__ */ d("th", {
306
306
  className: "sticky left-0 bg-bg-sunken border-r border-b border-border-default px-3 py-2 text-left text-xs font-semibold uppercase tracking-wider text-text-secondary",
307
307
  children: O.length > 0 ? O.map((e) => e.replace(/_/g, " ")).join(" / ") : m("bigconsole.widget.pivotTable.valuesHeader", "Values")
308
308
  }),
309
- I.map((e) => /* @__PURE__ */ u("th", {
309
+ I.map((e) => /* @__PURE__ */ d("th", {
310
310
  colSpan: A.length || 1,
311
311
  className: "border-b border-border-default px-3 py-2 text-center text-xs font-semibold uppercase tracking-wider text-text-secondary",
312
312
  children: e
313
313
  }, e)),
314
- y.showRowTotals && /* @__PURE__ */ u("th", {
314
+ y.showRowTotals && /* @__PURE__ */ d("th", {
315
315
  colSpan: A.length || 1,
316
316
  className: "border-b border-border-default px-3 py-2 text-center text-xs font-semibold uppercase tracking-wider text-text-secondary bg-bg-sunken/50",
317
317
  children: m("bigconsole.widget.pivotTable.total", "Total")
318
318
  })
319
319
  ]
320
- }), A.length > 1 && /* @__PURE__ */ d("tr", {
320
+ }), A.length > 1 && /* @__PURE__ */ f("tr", {
321
321
  className: "bg-bg-surface",
322
322
  children: [
323
- /* @__PURE__ */ u("th", { className: "sticky left-0 bg-bg-surface border-r border-b border-border-default" }),
324
- I.map((e) => A.map((t) => /* @__PURE__ */ u("th", {
323
+ /* @__PURE__ */ d("th", { className: "sticky left-0 bg-bg-surface border-r border-b border-border-default" }),
324
+ I.map((e) => A.map((t) => /* @__PURE__ */ d("th", {
325
325
  className: "border-b border-border-default px-3 py-1 text-center text-xs text-text-secondary",
326
326
  children: t.label || t.field.replace(/_/g, " ")
327
327
  }, `${e}-${t.field}`))),
328
- y.showRowTotals && A.map((e) => /* @__PURE__ */ u("th", {
328
+ y.showRowTotals && A.map((e) => /* @__PURE__ */ d("th", {
329
329
  className: "border-b border-border-default px-3 py-1 text-center text-xs text-text-secondary bg-bg-sunken/30",
330
330
  children: e.label || e.field.replace(/_/g, " ")
331
331
  }, `total-${e.field}`))
332
332
  ]
333
333
  })]
334
334
  }),
335
- /* @__PURE__ */ u("tbody", {
335
+ /* @__PURE__ */ d("tbody", {
336
336
  className: "divide-y divide-border-default",
337
337
  children: G(F, {}, "root", 0)
338
338
  }),
339
- y.showColumnTotals && /* @__PURE__ */ u("tfoot", { children: /* @__PURE__ */ d("tr", {
339
+ y.showColumnTotals && /* @__PURE__ */ d("tfoot", { children: /* @__PURE__ */ f("tr", {
340
340
  className: "bg-bg-sunken/50 font-medium",
341
341
  children: [
342
- /* @__PURE__ */ u("td", {
342
+ /* @__PURE__ */ d("td", {
343
343
  className: "sticky left-0 bg-bg-sunken/50 border-r border-t border-border-default px-3 py-2 text-sm",
344
344
  children: m("bigconsole.widget.pivotTable.total", "Total")
345
345
  }),
346
346
  I.map((e) => {
347
347
  let t = L?.get(e) || {};
348
- return A.map((n) => /* @__PURE__ */ u("td", {
348
+ return A.map((n) => /* @__PURE__ */ d("td", {
349
349
  className: "border-t border-border-default px-3 py-2 text-sm text-right tabular-nums",
350
350
  children: H(t[n.field] || 0)
351
351
  }, `footer-${e}-${n.field}`));
352
352
  }),
353
- y.showRowTotals && y.showGrandTotal && A.map((e) => /* @__PURE__ */ u("td", {
353
+ y.showRowTotals && y.showGrandTotal && A.map((e) => /* @__PURE__ */ d("td", {
354
354
  className: "border-t border-border-default px-3 py-2 text-sm text-right tabular-nums font-bold bg-bg-sunken",
355
355
  children: H(F.values[e.field] || 0)
356
356
  }, `grand-${e.field}`))
@@ -358,15 +358,15 @@ var v = n(function({ widget: n, data: c = [], onDrilldown: p }) {
358
358
  }) })
359
359
  ]
360
360
  })
361
- }) : /* @__PURE__ */ d("div", {
361
+ }) : /* @__PURE__ */ f("div", {
362
362
  className: "flex flex-col items-center justify-center flex-1 p-8 text-text-secondary",
363
363
  children: [
364
- /* @__PURE__ */ u(l, { className: "w-12 h-12 mb-4 opacity-50" }),
365
- /* @__PURE__ */ u("p", {
364
+ /* @__PURE__ */ d(l, { className: "w-12 h-12 mb-4 opacity-50" }),
365
+ /* @__PURE__ */ d("p", {
366
366
  className: "text-sm",
367
367
  children: m("bigconsole.widget.pivotTable.configureTitle", "Configure Pivot Table")
368
368
  }),
369
- /* @__PURE__ */ u("p", {
369
+ /* @__PURE__ */ d("p", {
370
370
  className: "text-xs mt-1",
371
371
  children: x ? m("bigconsole.widget.pivotTable.configureHintEdit", "Drag fields into the Rows and Values zones above") : m("bigconsole.widget.pivotTable.configureHintView", "Add row fields and value fields in widget settings")
372
372
  })
@@ -374,14 +374,14 @@ var v = n(function({ widget: n, data: c = [], onDrilldown: p }) {
374
374
  })]
375
375
  });
376
376
  }), y = "application/x-pivot-field", b = ({ rowFields: e, columnFields: t, valueFields: n, availableFields: r, onMoveField: i, onChangeAggregation: o }) => {
377
- let { t: s } = f(), [l, m] = a(null), h = (e) => (t) => {
377
+ let { t: s } = u(), [l, m] = a(null), h = (e) => (t) => {
378
378
  t.preventDefault(), t.stopPropagation(), m(null);
379
379
  let n = t.dataTransfer.getData(y) || t.dataTransfer.getData("text/plain");
380
380
  if (n) try {
381
381
  let { field: t, from: r } = JSON.parse(n);
382
382
  t && i(t, r, e);
383
383
  } catch {}
384
- }, g = (e, t, n) => /* @__PURE__ */ d("span", {
384
+ }, g = (e, t, n) => /* @__PURE__ */ f("span", {
385
385
  draggable: !0,
386
386
  onDragStart: (n) => {
387
387
  let r = JSON.stringify({
@@ -392,45 +392,45 @@ var v = n(function({ widget: n, data: c = [], onDrilldown: p }) {
392
392
  },
393
393
  className: "inline-flex items-center gap-1 px-2 py-1 rounded-md bg-bg-surface border border-border-default text-xs text-text-primary cursor-grab",
394
394
  children: [
395
- /* @__PURE__ */ u(c, {
395
+ /* @__PURE__ */ d(c, {
396
396
  className: "w-3 h-3 text-text-muted",
397
397
  "aria-hidden": "true"
398
398
  }),
399
- /* @__PURE__ */ u("span", { children: (n?.label || e).replace(/_/g, " ") }),
400
- n && /* @__PURE__ */ u("select", {
399
+ /* @__PURE__ */ d("span", { children: (n?.label || e).replace(/_/g, " ") }),
400
+ n && /* @__PURE__ */ d("select", {
401
401
  value: n.aggregation,
402
402
  onChange: (t) => o(e, t.target.value),
403
403
  onClick: (e) => e.stopPropagation(),
404
404
  "aria-label": s("bigconsole.widget.pivotTable.aggregationForField", "Aggregation for {{field}}", { field: e }),
405
405
  className: "ml-1 bg-bg-sunken text-text-secondary rounded px-1 py-0.5 text-[10px] uppercase",
406
- children: p.map((e) => /* @__PURE__ */ u("option", {
406
+ children: p.map((e) => /* @__PURE__ */ d("option", {
407
407
  value: e,
408
408
  children: e
409
409
  }, e))
410
410
  })
411
411
  ]
412
- }, e), _ = (e, t, n) => /* @__PURE__ */ d("div", {
412
+ }, e), _ = (e, t, n) => /* @__PURE__ */ f("div", {
413
413
  onDragOver: (e) => {
414
414
  e.preventDefault(), e.stopPropagation(), e.dataTransfer.dropEffect = "move", l !== t && m(t);
415
415
  },
416
416
  onDragLeave: () => m((e) => e === t ? null : e),
417
417
  onDrop: h(t),
418
418
  className: `flex-1 min-w-[8rem] rounded-md border p-2 transition-colors ${l === t ? "border-action-primary-bg bg-action-primary-bg/5" : "border-border-default bg-bg-sunken/30"}`,
419
- children: [/* @__PURE__ */ u("div", {
419
+ children: [/* @__PURE__ */ d("div", {
420
420
  className: "text-[10px] font-semibold uppercase tracking-wider text-text-muted mb-1.5",
421
421
  children: e
422
- }), /* @__PURE__ */ u("div", {
422
+ }), /* @__PURE__ */ d("div", {
423
423
  className: "flex flex-wrap gap-1.5 min-h-[1.75rem]",
424
424
  children: n
425
425
  })]
426
426
  });
427
- return /* @__PURE__ */ d("div", {
427
+ return /* @__PURE__ */ f("div", {
428
428
  className: "flex flex-wrap gap-2 p-2 border-b border-border-default bg-bg-surface",
429
429
  children: [
430
430
  _(s("bigconsole.widget.pivotTable.zoneRows", "Rows"), "rows", e.map((e) => g(e, "rows"))),
431
431
  _(s("bigconsole.widget.pivotTable.zoneColumns", "Columns"), "columns", t.map((e) => g(e, "columns"))),
432
432
  _(s("bigconsole.widget.pivotTable.zoneValues", "Values"), "values", n.map((e) => g(e.field, "values", e))),
433
- _(s("bigconsole.widget.pivotTable.zoneAvailable", "Available"), "available", r.length > 0 ? r.map((e) => g(e, "available")) : /* @__PURE__ */ u("span", {
433
+ _(s("bigconsole.widget.pivotTable.zoneAvailable", "Available"), "available", r.length > 0 ? r.map((e) => g(e, "available")) : /* @__PURE__ */ d("span", {
434
434
  className: "text-[11px] text-text-muted italic",
435
435
  children: s("bigconsole.widget.pivotTable.allFieldsInUse", "All fields in use")
436
436
  }))