@burdenoff/microfe-bigconsole 2026.1011.10 → 2026.1012.1
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.
- package/README.md +19 -0
- package/dist/bigconsole/BigConsoleRoot.js +88 -82
- package/dist/bigconsole/BigConsoleRoutes.js +163 -136
- package/dist/bigconsole/assistant/assistantProduct.js +1 -4
- package/dist/bigconsole/assistant/pageContext.d.ts +0 -14
- package/dist/bigconsole/assistant/pageContext.js +1 -6
- package/dist/bigconsole/assistant/recordAdapters.js +26 -27
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +31 -31
- package/dist/bigconsole/components/common/index.d.ts +0 -1
- package/dist/bigconsole/components/common/index.js +0 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +44 -44
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js +36 -36
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js +59 -59
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +58 -57
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +41 -41
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +34 -34
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +110 -110
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +21 -21
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +164 -173
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -101
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +31 -31
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +15 -15
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.js +165 -163
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +37 -37
- package/dist/bigconsole/components/datasink/AlertRuleEditor.js +66 -66
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
- package/dist/bigconsole/components/datasink/DataSinkCard.js +50 -51
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +47 -47
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +91 -91
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
- package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
- package/dist/bigconsole/components/parser/ImportParserDialog.js +120 -120
- package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +10 -10
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +76 -77
- package/dist/bigconsole/components/preview/AiPreviewPanel.js +95 -96
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js +4 -4
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +93 -93
- package/dist/bigconsole/components/widgets/PropertiesPanel.js +499 -507
- package/dist/bigconsole/components/widgets/WidgetRegistry.js +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +4 -4
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
- package/dist/bigconsole/components/widgets/custom/CustomWidget.js +73 -131
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
- package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +28 -9
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +115 -42
- package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.d.ts +20 -0
- package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.js +10 -0
- package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +2 -1
- package/dist/bigconsole/components/widgets/iframe-widget/index.js +3 -2
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +4 -4
- package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
- package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +110 -27
- package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +6 -0
- package/dist/bigconsole/components/widgets/text-widget/textData.js +17 -14
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +15 -15
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +15 -15
- package/dist/bigconsole/context/BigConsoleContext.d.ts +10 -0
- package/dist/bigconsole/context/BigConsoleContext.js +47 -30
- package/dist/bigconsole/context/index.d.ts +1 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +58 -49
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +74 -72
- package/dist/bigconsole/customWidget/proposalPreview.d.ts +5 -0
- package/dist/bigconsole/customWidget/proposalPreview.js +31 -0
- package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +0 -23
- package/dist/bigconsole/hooks/useDataSinkAlerts.js +113 -138
- package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +7 -0
- package/dist/bigconsole/hooks/useDataSinkOperations.js +109 -98
- package/dist/bigconsole/hooks/useDataSinkSubscription.js +0 -1
- package/dist/bigconsole/hooks/useDrilldown.js +68 -67
- package/dist/bigconsole/hooks/useExportDataSink.js +1 -1
- package/dist/bigconsole/hooks/useGlobalFilters.js +3 -3
- package/dist/bigconsole/hooks/useImportDataSink.js +102 -90
- package/dist/bigconsole/pages/AdminPage.js +130 -130
- package/dist/bigconsole/pages/DashboardBuilderPage.js +60 -72
- package/dist/bigconsole/pages/DashboardViewPage.js +235 -258
- package/dist/bigconsole/pages/DashboardsPage.js +221 -269
- package/dist/bigconsole/pages/DataParsersPage.js +157 -180
- package/dist/bigconsole/pages/DataSinkAlertsPage.js +55 -62
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +318 -295
- package/dist/bigconsole/pages/DataSinkViewPage.js +256 -255
- package/dist/bigconsole/pages/DataSinksPage.js +216 -251
- package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
- package/dist/bigconsole/pages/InsightsPage.js +265 -279
- package/dist/bigconsole/pages/OverviewPage.js +47 -47
- package/dist/bigconsole/pages/ParserBuilderPage.js +213 -229
- package/dist/bigconsole/pages/ParserViewPage.js +97 -97
- package/dist/bigconsole/pages/PipelineBuilderPage.js +214 -256
- package/dist/bigconsole/pages/PipelineViewPage.js +146 -146
- package/dist/bigconsole/pages/PipelinesPage.js +88 -107
- package/dist/bigconsole/pages/SettingsPage.js +173 -179
- package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
- package/dist/bigconsole/pages/WorkflowViewPage.js +1 -1
- package/dist/bigconsole/pages/WorkflowsPage.js +141 -141
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +12 -12
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +235 -122
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +6 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +151 -151
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
- package/dist/bigconsole/renderers/adapters/adaptiveCardContent.d.ts +29 -0
- package/dist/bigconsole/renderers/adapters/adaptiveCardContent.js +51 -0
- package/dist/bigconsole/store/widgetStore.d.ts +0 -12
- package/dist/bigconsole/store/widgetStore.js +1 -3
- package/dist/bigconsole/types/index.d.ts +17 -2
- package/dist/bigconsole/utils/backendError.d.ts +0 -18
- package/dist/bigconsole/utils/dataSinkPayload.d.ts +48 -0
- package/dist/bigconsole/utils/dataSinkPayload.js +38 -0
- package/dist/bigconsole/utils/index.d.ts +2 -0
- package/dist/bigconsole/utils/safeUrl.d.ts +79 -0
- package/dist/bigconsole/utils/safeUrl.js +93 -0
- package/dist/bigconsole/utils/sanitizeHtml.d.ts +16 -0
- package/dist/bigconsole/utils/sanitizeHtml.js +67 -0
- package/dist/bigconsole/workflowOpen.js +14 -15
- package/dist/generated/wspace-operations.d.ts +138 -8
- package/dist/generated/wspace-operations.js +281 -240
- package/dist/node_modules/dompurify/dist/purify.es.js +800 -0
- package/package.json +9 -5
- package/dist/bigconsole/assistant/displayCopy.d.ts +0 -32
- package/dist/bigconsole/assistant/pageControls.d.ts +0 -81
- package/dist/bigconsole/assistant/pageControls.js +0 -169
- package/dist/bigconsole/assistant/previewControl.d.ts +0 -16
- package/dist/bigconsole/assistant/previewControl.js +0 -10
- package/dist/bigconsole/assistant/usePreviewControl.d.ts +0 -2
- package/dist/bigconsole/assistant/usePreviewControl.js +0 -20
- package/dist/bigconsole/components/common/SortBySelect.d.ts +0 -11
- package/dist/bigconsole/components/common/SortBySelect.js +0 -29
- package/dist/bigconsole/constants/backendErrors.js +0 -94
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +0 -14
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +0 -32
- package/dist/bigconsole/utils/backendError.js +0 -42
- package/dist/bigconsole/utils/dashboardList.d.ts +0 -28
- package/dist/bigconsole/utils/dashboardList.js +0 -15
- package/dist/bigconsole/utils/dataSinkList.d.ts +0 -15
- package/dist/bigconsole/utils/dataSinkList.js +0 -15
- package/dist/bigconsole/utils/formDirty.d.ts +0 -82
- package/dist/bigconsole/utils/formDirty.js +0 -21
- package/dist/bigconsole/utils/insightsDraft.d.ts +0 -29
- package/dist/bigconsole/utils/insightsDraft.js +0 -8
- package/dist/bigconsole/utils/layoutBaseline.d.ts +0 -130
- package/dist/bigconsole/utils/layoutBaseline.js +0 -96
- package/dist/bigconsole/utils/listSort.d.ts +0 -80
- package/dist/bigconsole/utils/listSort.js +0 -85
- package/dist/bigconsole/utils/widgetFormDirty.d.ts +0 -16
- package/dist/bigconsole/utils/widgetFormDirty.js +0 -13
|
@@ -1,57 +1,130 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { useOptionalBigConsole as e } from "../../../context/BigConsoleContext.js";
|
|
2
|
+
import "../../../context/index.js";
|
|
3
|
+
import { currentAppOrigin as t, resolveFrameSrc as n } from "../../../utils/safeUrl.js";
|
|
4
|
+
import { FRAME_REFERRER_POLICY as r, FRAME_SANDBOX as i, frameKey as a, framePermissions as o } from "./framePolicy.js";
|
|
5
|
+
import { useTr as s } from "../../../../shared/hooks/useTr.js";
|
|
6
|
+
import { memo as c, useMemo as l } from "react";
|
|
7
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
3
8
|
//#region src/bigconsole/components/widgets/iframe-widget/IframeWidget.tsx
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
var f = "Embedded Content";
|
|
10
|
+
function p(e) {
|
|
11
|
+
if (typeof e == "boolean") return e;
|
|
12
|
+
if (typeof e == "string") return e.toLowerCase() === "true";
|
|
13
|
+
}
|
|
14
|
+
function m(e) {
|
|
15
|
+
return e === "eager" ? "eager" : "lazy";
|
|
16
|
+
}
|
|
17
|
+
function h(...e) {
|
|
18
|
+
for (let t of e) if (typeof t == "string" && t.trim().length > 0) return t;
|
|
19
|
+
}
|
|
20
|
+
function g(e, t, a = {}) {
|
|
21
|
+
let s = e ?? {}, c = h(t?.url, s.url), l = h(t?.title, s.title) ?? f, u = p(s.allowFullscreen) ?? !1, d = m(s.loading), g = c === void 0 ? null : n(c, a);
|
|
9
22
|
return {
|
|
10
|
-
|
|
11
|
-
title:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
23
|
+
src: g?.ok ? g.src : null,
|
|
24
|
+
title: l,
|
|
25
|
+
sandbox: i,
|
|
26
|
+
referrerPolicy: r,
|
|
27
|
+
allowFullscreen: u,
|
|
28
|
+
allow: o(u),
|
|
29
|
+
loading: d,
|
|
30
|
+
hasUrl: c !== void 0,
|
|
31
|
+
rejection: g && !g.ok ? g.reason : null
|
|
16
32
|
};
|
|
17
33
|
}
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
var _ = {
|
|
35
|
+
missing: {
|
|
36
|
+
key: "bigconsole.widget.iframe.rejected.invalid",
|
|
37
|
+
fallback: "Enter a complete https:// address."
|
|
38
|
+
},
|
|
39
|
+
invalid: {
|
|
40
|
+
key: "bigconsole.widget.iframe.rejected.invalid",
|
|
41
|
+
fallback: "Enter a complete https:// address."
|
|
42
|
+
},
|
|
43
|
+
scheme: {
|
|
44
|
+
key: "bigconsole.widget.iframe.rejected.scheme",
|
|
45
|
+
fallback: "Only https:// addresses can be embedded."
|
|
46
|
+
},
|
|
47
|
+
credentials: {
|
|
48
|
+
key: "bigconsole.widget.iframe.rejected.credentials",
|
|
49
|
+
fallback: "Remove the user name or password from the address."
|
|
50
|
+
},
|
|
51
|
+
"same-origin": {
|
|
52
|
+
key: "bigconsole.widget.iframe.rejected.sameOrigin",
|
|
53
|
+
fallback: "Pages from this app cannot be embedded in a widget."
|
|
54
|
+
},
|
|
55
|
+
"origin-not-allowed": {
|
|
56
|
+
key: "bigconsole.widget.iframe.rejected.originNotAllowed",
|
|
57
|
+
fallback: "This site is not on the list of sites allowed for embedding."
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
function v() {
|
|
61
|
+
return /* @__PURE__ */ u("svg", {
|
|
62
|
+
className: "w-12 h-12 mx-auto mb-2 text-text-muted",
|
|
63
|
+
fill: "none",
|
|
64
|
+
stroke: "currentColor",
|
|
65
|
+
viewBox: "0 0 24 24",
|
|
66
|
+
children: /* @__PURE__ */ u("path", {
|
|
67
|
+
strokeLinecap: "round",
|
|
68
|
+
strokeLinejoin: "round",
|
|
69
|
+
strokeWidth: 1.5,
|
|
70
|
+
d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"
|
|
29
71
|
})
|
|
30
|
-
})
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
var y = c(function({ widget: n, data: r }) {
|
|
75
|
+
let i = s(), o = e()?.iframeAllowedOrigins, c = l(() => g(n.config, r, {
|
|
76
|
+
appOrigin: t(),
|
|
77
|
+
allowedOrigins: o
|
|
78
|
+
}), [
|
|
79
|
+
n.config,
|
|
80
|
+
r,
|
|
81
|
+
o
|
|
82
|
+
]);
|
|
83
|
+
if (!c.hasUrl) return /* @__PURE__ */ u("div", {
|
|
31
84
|
className: "flex items-center justify-center h-full text-text-secondary text-sm",
|
|
32
|
-
children: /* @__PURE__ */
|
|
85
|
+
children: /* @__PURE__ */ d("div", {
|
|
33
86
|
className: "text-center",
|
|
34
87
|
children: [
|
|
35
|
-
/* @__PURE__ */
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
stroke: "currentColor",
|
|
39
|
-
viewBox: "0 0 24 24",
|
|
40
|
-
children: /* @__PURE__ */ n("path", {
|
|
41
|
-
strokeLinecap: "round",
|
|
42
|
-
strokeLinejoin: "round",
|
|
43
|
-
strokeWidth: 1.5,
|
|
44
|
-
d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"
|
|
45
|
-
})
|
|
46
|
-
}),
|
|
47
|
-
/* @__PURE__ */ n("p", { children: "No URL configured" }),
|
|
48
|
-
/* @__PURE__ */ n("p", {
|
|
88
|
+
/* @__PURE__ */ u(v, {}),
|
|
89
|
+
/* @__PURE__ */ u("p", { children: i("bigconsole.widget.iframe.empty.title", "No URL configured") }),
|
|
90
|
+
/* @__PURE__ */ u("p", {
|
|
49
91
|
className: "text-xs text-text-muted mt-1",
|
|
50
|
-
children: "Configure a URL to embed content"
|
|
92
|
+
children: i("bigconsole.widget.iframe.empty.hint", "Configure a URL to embed content")
|
|
51
93
|
})
|
|
52
94
|
]
|
|
53
95
|
})
|
|
54
96
|
});
|
|
97
|
+
if (!c.src) {
|
|
98
|
+
let e = _[c.rejection ?? "invalid"];
|
|
99
|
+
return /* @__PURE__ */ u("div", {
|
|
100
|
+
className: "flex items-center justify-center h-full text-text-secondary text-sm",
|
|
101
|
+
role: "status",
|
|
102
|
+
children: /* @__PURE__ */ d("div", {
|
|
103
|
+
className: "text-center",
|
|
104
|
+
children: [
|
|
105
|
+
/* @__PURE__ */ u(v, {}),
|
|
106
|
+
/* @__PURE__ */ u("p", { children: i("bigconsole.widget.iframe.rejected.title", "This address cannot be embedded") }),
|
|
107
|
+
/* @__PURE__ */ u("p", {
|
|
108
|
+
className: "text-xs text-text-muted mt-1",
|
|
109
|
+
children: i(e.key, e.fallback)
|
|
110
|
+
})
|
|
111
|
+
]
|
|
112
|
+
})
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return /* @__PURE__ */ u("div", {
|
|
116
|
+
className: "h-full w-full",
|
|
117
|
+
children: /* @__PURE__ */ u("iframe", {
|
|
118
|
+
sandbox: c.sandbox,
|
|
119
|
+
referrerPolicy: c.referrerPolicy,
|
|
120
|
+
allow: c.allow,
|
|
121
|
+
allowFullScreen: c.allowFullscreen,
|
|
122
|
+
loading: c.loading,
|
|
123
|
+
title: c.title,
|
|
124
|
+
className: "w-full h-full border-0 rounded",
|
|
125
|
+
src: c.src
|
|
126
|
+
}, a(c.src, c.sandbox))
|
|
127
|
+
});
|
|
55
128
|
});
|
|
56
129
|
//#endregion
|
|
57
|
-
export {
|
|
130
|
+
export { y as default, g as resolveIframeConfig };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Frame policy for widgets that embed external pages.
|
|
3
|
+
*
|
|
4
|
+
* The sandbox, referrer policy and permissions are defined here in code and
|
|
5
|
+
* are never read from widget configuration or parser output. Embedded pages
|
|
6
|
+
* always run with an opaque origin (no `allow-same-origin`), cannot navigate
|
|
7
|
+
* the top-level page, and open popups that keep the same sandbox.
|
|
8
|
+
*/
|
|
9
|
+
/** Sandbox flags applied to every embedded page. */
|
|
10
|
+
export declare const FRAME_SANDBOX = "allow-scripts allow-popups allow-forms";
|
|
11
|
+
/** Referrer policy for embedded pages: the dashboard URL is never sent. */
|
|
12
|
+
export declare const FRAME_REFERRER_POLICY = "no-referrer";
|
|
13
|
+
/** Permissions Policy (`allow` attribute) for an embedded page. */
|
|
14
|
+
export declare function framePermissions(allowFullscreen: boolean): string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* React key for an embedded frame. Keying on the source and sandbox means a
|
|
17
|
+
* new element (with its attributes already set) is created whenever either
|
|
18
|
+
* changes, instead of navigating an existing frame.
|
|
19
|
+
*/
|
|
20
|
+
export declare function frameKey(src: string, sandbox?: string): string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/bigconsole/components/widgets/iframe-widget/framePolicy.ts
|
|
2
|
+
var e = "allow-scripts allow-popups allow-forms", t = "no-referrer";
|
|
3
|
+
function n(e) {
|
|
4
|
+
return e ? "fullscreen" : void 0;
|
|
5
|
+
}
|
|
6
|
+
function r(t, n = e) {
|
|
7
|
+
return `${t}|${n}`;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { t as FRAME_REFERRER_POLICY, e as FRAME_SANDBOX, r as frameKey, n as framePermissions };
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { IframeWidget, resolveIframeConfig, type IframeWidgetProps, type IframeData } from './IframeWidget';
|
|
1
|
+
export { IframeWidget, resolveIframeConfig, type IframeWidgetProps, type IframeData, type ResolvedIframeConfig, } from './IframeWidget';
|
|
2
|
+
export { FRAME_SANDBOX, FRAME_REFERRER_POLICY, frameKey, framePermissions } from './framePolicy';
|
|
2
3
|
export { default } from './IframeWidget';
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import e,
|
|
2
|
-
|
|
1
|
+
import { FRAME_REFERRER_POLICY as e, FRAME_SANDBOX as t, frameKey as n, framePermissions as r } from "./framePolicy.js";
|
|
2
|
+
import i, { resolveIframeConfig as a } from "./IframeWidget.js";
|
|
3
|
+
export { e as FRAME_REFERRER_POLICY, t as FRAME_SANDBOX, i as IframeWidget, i as default, n as frameKey, r as framePermissions, a as resolveIframeConfig };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import e from "../../../hooks/useWidgetConfigPersist.js";
|
|
2
2
|
import t from "./KanbanView.js";
|
|
3
3
|
import { memo as n } from "react";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
5
|
+
import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
6
6
|
//#region src/bigconsole/components/widgets/kanban/KanbanWidget.tsx
|
|
7
7
|
var a = n(function(n) {
|
|
8
|
-
let { t: a } =
|
|
9
|
-
return /* @__PURE__ */
|
|
8
|
+
let { t: a } = i(), { canPersist: o, persistConfig: s } = e(n.widget);
|
|
9
|
+
return /* @__PURE__ */ r(t, {
|
|
10
10
|
...n,
|
|
11
11
|
t: a,
|
|
12
12
|
interactive: !0,
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { memo as e, useCallback as t } from "react";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
|
+
import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
4
4
|
//#region src/bigconsole/components/widgets/list/ListConfig.tsx
|
|
5
5
|
var a = e(function({ config: e, onChange: a }) {
|
|
6
|
-
let { t: o } =
|
|
6
|
+
let { t: o } = i(), s = t((t, n) => {
|
|
7
7
|
a({
|
|
8
8
|
...e,
|
|
9
9
|
[t]: n
|
|
10
10
|
});
|
|
11
11
|
}, [e, a]);
|
|
12
|
-
return /* @__PURE__ */
|
|
12
|
+
return /* @__PURE__ */ r("div", {
|
|
13
13
|
className: "min-w-0 space-y-form-gap",
|
|
14
14
|
children: [
|
|
15
|
-
/* @__PURE__ */
|
|
16
|
-
/* @__PURE__ */
|
|
15
|
+
/* @__PURE__ */ r("div", { children: [
|
|
16
|
+
/* @__PURE__ */ n("label", {
|
|
17
17
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
18
18
|
children: o("bigconsole.widget.config.list.maxItems.label", "Maximum Items to Display")
|
|
19
19
|
}),
|
|
20
|
-
/* @__PURE__ */
|
|
20
|
+
/* @__PURE__ */ n("input", {
|
|
21
21
|
type: "number",
|
|
22
22
|
value: e.maxItems ?? "",
|
|
23
23
|
onChange: (e) => s("maxItems", e.target.value ? Number(e.target.value) : void 0),
|
|
@@ -25,104 +25,104 @@ var a = e(function({ config: e, onChange: a }) {
|
|
|
25
25
|
placeholder: o("bigconsole.widget.config.list.maxItems.placeholder", "No limit"),
|
|
26
26
|
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 "
|
|
27
27
|
}),
|
|
28
|
-
/* @__PURE__ */
|
|
28
|
+
/* @__PURE__ */ n("p", {
|
|
29
29
|
className: "text-xs text-text-secondary mt-1",
|
|
30
30
|
children: o("bigconsole.widget.config.list.maxItems.help", "Leave empty to show all items")
|
|
31
31
|
})
|
|
32
32
|
] }),
|
|
33
|
-
/* @__PURE__ */
|
|
33
|
+
/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("label", {
|
|
34
34
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
35
35
|
children: o("bigconsole.widget.config.list.titleField.label", "Title Field")
|
|
36
|
-
}), /* @__PURE__ */
|
|
36
|
+
}), /* @__PURE__ */ n("input", {
|
|
37
37
|
type: "text",
|
|
38
38
|
value: e.titleField || "",
|
|
39
39
|
onChange: (e) => s("titleField", e.target.value),
|
|
40
40
|
placeholder: o("bigconsole.widget.config.list.titleField.placeholder", "e.g., name, title"),
|
|
41
41
|
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 "
|
|
42
42
|
})] }),
|
|
43
|
-
/* @__PURE__ */
|
|
43
|
+
/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("label", {
|
|
44
44
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
45
45
|
children: o("bigconsole.widget.config.list.subtitleField.label", "Subtitle Field")
|
|
46
|
-
}), /* @__PURE__ */
|
|
46
|
+
}), /* @__PURE__ */ n("input", {
|
|
47
47
|
type: "text",
|
|
48
48
|
value: e.subtitleField || "",
|
|
49
49
|
onChange: (e) => s("subtitleField", e.target.value),
|
|
50
50
|
placeholder: o("bigconsole.widget.config.list.subtitleField.placeholder", "e.g., description, email"),
|
|
51
51
|
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 "
|
|
52
52
|
})] }),
|
|
53
|
-
/* @__PURE__ */
|
|
53
|
+
/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("label", {
|
|
54
54
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
55
55
|
children: o("bigconsole.widget.config.list.valueField.label", "Value Field (right side)")
|
|
56
|
-
}), /* @__PURE__ */
|
|
56
|
+
}), /* @__PURE__ */ n("input", {
|
|
57
57
|
type: "text",
|
|
58
58
|
value: e.valueField || "",
|
|
59
59
|
onChange: (e) => s("valueField", e.target.value),
|
|
60
60
|
placeholder: o("bigconsole.widget.config.list.valueField.placeholder", "e.g., amount, count"),
|
|
61
61
|
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 "
|
|
62
62
|
})] }),
|
|
63
|
-
/* @__PURE__ */
|
|
63
|
+
/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("label", {
|
|
64
64
|
className: "block text-sm font-medium text-text-primary mb-1",
|
|
65
65
|
children: o("bigconsole.widget.config.list.badgeField.label", "Badge Field")
|
|
66
|
-
}), /* @__PURE__ */
|
|
66
|
+
}), /* @__PURE__ */ n("input", {
|
|
67
67
|
type: "text",
|
|
68
68
|
value: e.badgeField || "",
|
|
69
69
|
onChange: (e) => s("badgeField", e.target.value),
|
|
70
70
|
placeholder: o("bigconsole.widget.config.list.badgeField.placeholder", "e.g., status, type"),
|
|
71
71
|
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 "
|
|
72
72
|
})] }),
|
|
73
|
-
/* @__PURE__ */
|
|
73
|
+
/* @__PURE__ */ r("div", {
|
|
74
74
|
role: "group",
|
|
75
75
|
"aria-label": "Display options",
|
|
76
76
|
className: "space-y-3 border-t border-[var(--color-border-subtle)] pt-form-gap",
|
|
77
77
|
children: [
|
|
78
|
-
/* @__PURE__ */
|
|
78
|
+
/* @__PURE__ */ n("p", {
|
|
79
79
|
className: "text-xs font-bold uppercase tracking-wider text-text-secondary",
|
|
80
80
|
children: "Display options"
|
|
81
81
|
}),
|
|
82
|
-
/* @__PURE__ */
|
|
82
|
+
/* @__PURE__ */ r("label", {
|
|
83
83
|
className: "flex items-center gap-3",
|
|
84
|
-
children: [/* @__PURE__ */
|
|
84
|
+
children: [/* @__PURE__ */ n("input", {
|
|
85
85
|
type: "checkbox",
|
|
86
86
|
checked: e.showCount !== !1,
|
|
87
87
|
onChange: (e) => s("showCount", e.target.checked),
|
|
88
88
|
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 "
|
|
89
|
-
}), /* @__PURE__ */
|
|
89
|
+
}), /* @__PURE__ */ n("span", {
|
|
90
90
|
className: "text-sm text-text-primary",
|
|
91
91
|
children: o("bigconsole.widget.config.list.showCount", "Show item count")
|
|
92
92
|
})]
|
|
93
93
|
}),
|
|
94
|
-
/* @__PURE__ */
|
|
94
|
+
/* @__PURE__ */ r("label", {
|
|
95
95
|
className: "flex items-center gap-3",
|
|
96
|
-
children: [/* @__PURE__ */
|
|
96
|
+
children: [/* @__PURE__ */ n("input", {
|
|
97
97
|
type: "checkbox",
|
|
98
98
|
checked: e.showSearch === !0,
|
|
99
99
|
onChange: (e) => s("showSearch", e.target.checked),
|
|
100
100
|
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 "
|
|
101
|
-
}), /* @__PURE__ */
|
|
101
|
+
}), /* @__PURE__ */ n("span", {
|
|
102
102
|
className: "text-sm text-text-primary",
|
|
103
103
|
children: o("bigconsole.widget.config.list.showSearch", "Show search box")
|
|
104
104
|
})]
|
|
105
105
|
}),
|
|
106
|
-
/* @__PURE__ */
|
|
106
|
+
/* @__PURE__ */ r("label", {
|
|
107
107
|
className: "flex items-center gap-3",
|
|
108
|
-
children: [/* @__PURE__ */
|
|
108
|
+
children: [/* @__PURE__ */ n("input", {
|
|
109
109
|
type: "checkbox",
|
|
110
110
|
checked: e.showViewAll !== !1,
|
|
111
111
|
onChange: (e) => s("showViewAll", e.target.checked),
|
|
112
112
|
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 "
|
|
113
|
-
}), /* @__PURE__ */
|
|
113
|
+
}), /* @__PURE__ */ n("span", {
|
|
114
114
|
className: "text-sm text-text-primary",
|
|
115
115
|
children: o("bigconsole.widget.config.list.showViewAll", "Show \"View All\" link when truncated")
|
|
116
116
|
})]
|
|
117
117
|
}),
|
|
118
|
-
/* @__PURE__ */
|
|
118
|
+
/* @__PURE__ */ r("label", {
|
|
119
119
|
className: "flex items-center gap-3",
|
|
120
|
-
children: [/* @__PURE__ */
|
|
120
|
+
children: [/* @__PURE__ */ n("input", {
|
|
121
121
|
type: "checkbox",
|
|
122
122
|
checked: e.showIcon === !0,
|
|
123
123
|
onChange: (e) => s("showIcon", e.target.checked),
|
|
124
124
|
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 "
|
|
125
|
-
}), /* @__PURE__ */
|
|
125
|
+
}), /* @__PURE__ */ n("span", {
|
|
126
126
|
className: "text-sm text-text-primary",
|
|
127
127
|
children: o("bigconsole.widget.config.list.showIcon", "Show item icons")
|
|
128
128
|
})]
|
|
@@ -1,89 +1,89 @@
|
|
|
1
1
|
import { memo as e, useCallback as t } from "react";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
|
+
import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
4
4
|
//#region src/bigconsole/components/widgets/metric-card/MetricCardConfig.tsx
|
|
5
5
|
var a = e(function({ config: e, onChange: a }) {
|
|
6
|
-
let { t: o } =
|
|
6
|
+
let { t: o } = i(), s = t((t, n) => {
|
|
7
7
|
a({
|
|
8
8
|
...e,
|
|
9
9
|
[t]: n
|
|
10
10
|
});
|
|
11
11
|
}, [e, a]);
|
|
12
|
-
return /* @__PURE__ */
|
|
12
|
+
return /* @__PURE__ */ r("div", {
|
|
13
13
|
className: "min-w-0 space-y-form-gap",
|
|
14
14
|
children: [
|
|
15
|
-
/* @__PURE__ */
|
|
16
|
-
/* @__PURE__ */
|
|
15
|
+
/* @__PURE__ */ r("div", { children: [
|
|
16
|
+
/* @__PURE__ */ n("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__ */
|
|
20
|
+
/* @__PURE__ */ n("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__ */
|
|
27
|
+
/* @__PURE__ */ n("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__ */
|
|
32
|
+
/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("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__ */
|
|
35
|
+
}), /* @__PURE__ */ n("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__ */
|
|
42
|
+
/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("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__ */
|
|
45
|
+
}), /* @__PURE__ */ r("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__ */
|
|
50
|
+
/* @__PURE__ */ n("option", {
|
|
51
51
|
value: "auto",
|
|
52
52
|
children: o("bigconsole.widget.config.metricCard.format.auto", "Auto (from data)")
|
|
53
53
|
}),
|
|
54
|
-
/* @__PURE__ */
|
|
54
|
+
/* @__PURE__ */ n("option", {
|
|
55
55
|
value: "number",
|
|
56
56
|
children: o("bigconsole.widget.config.metricCard.format.number", "Number")
|
|
57
57
|
}),
|
|
58
|
-
/* @__PURE__ */
|
|
58
|
+
/* @__PURE__ */ n("option", {
|
|
59
59
|
value: "currency",
|
|
60
60
|
children: o("bigconsole.widget.config.metricCard.format.currency", "Currency")
|
|
61
61
|
}),
|
|
62
|
-
/* @__PURE__ */
|
|
62
|
+
/* @__PURE__ */ n("option", {
|
|
63
63
|
value: "percentage",
|
|
64
64
|
children: o("bigconsole.widget.config.metricCard.format.percentage", "Percentage")
|
|
65
65
|
}),
|
|
66
|
-
/* @__PURE__ */
|
|
66
|
+
/* @__PURE__ */ n("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__ */
|
|
72
|
+
/* @__PURE__ */ r("div", {
|
|
73
73
|
className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
|
|
74
|
-
children: [/* @__PURE__ */
|
|
74
|
+
children: [/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("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__ */
|
|
77
|
+
}), /* @__PURE__ */ n("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__ */
|
|
83
|
+
})] }), /* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("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__ */
|
|
86
|
+
}), /* @__PURE__ */ n("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__ */
|
|
94
|
+
/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("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__ */
|
|
97
|
+
}), /* @__PURE__ */ n("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__ */
|
|
104
|
+
/* @__PURE__ */ r("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__ */
|
|
109
|
+
/* @__PURE__ */ n("p", {
|
|
110
110
|
className: "text-xs font-bold uppercase tracking-wider text-text-secondary",
|
|
111
111
|
children: "Display options"
|
|
112
112
|
}),
|
|
113
|
-
/* @__PURE__ */
|
|
113
|
+
/* @__PURE__ */ r("label", {
|
|
114
114
|
className: "flex items-center gap-3",
|
|
115
|
-
children: [/* @__PURE__ */
|
|
115
|
+
children: [/* @__PURE__ */ n("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__ */
|
|
120
|
+
}), /* @__PURE__ */ n("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__ */
|
|
125
|
+
/* @__PURE__ */ r("label", {
|
|
126
126
|
className: "flex items-center gap-3",
|
|
127
|
-
children: [/* @__PURE__ */
|
|
127
|
+
children: [/* @__PURE__ */ n("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__ */
|
|
132
|
+
}), /* @__PURE__ */ n("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__ */
|
|
137
|
+
/* @__PURE__ */ r("label", {
|
|
138
138
|
className: "flex items-center gap-3",
|
|
139
|
-
children: [/* @__PURE__ */
|
|
139
|
+
children: [/* @__PURE__ */ n("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__ */
|
|
144
|
+
}), /* @__PURE__ */ n("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__ */
|
|
149
|
+
/* @__PURE__ */ r("label", {
|
|
150
150
|
className: "flex items-center gap-3",
|
|
151
|
-
children: [/* @__PURE__ */
|
|
151
|
+
children: [/* @__PURE__ */ n("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__ */
|
|
156
|
+
}), /* @__PURE__ */ n("span", {
|
|
157
157
|
className: "text-sm text-text-primary",
|
|
158
158
|
children: o("bigconsole.widget.config.metricCard.positiveIsGood", "Positive change is good")
|
|
159
159
|
})]
|