react-semaphor 0.1.537 → 0.1.539
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/dist/analytics-protocol/index.js +352 -341
- package/dist/assistant-context/index.js +10 -0
- package/dist/assistant-protocol/index.js +104 -0
- package/dist/brand-studio/index.js +35 -31
- package/dist/briefings/index.js +46 -45
- package/dist/chunks/_commonjsHelpers-BkfeUUK-.js +28 -0
- package/dist/chunks/add-to-dashboard-CxtTfISD.js +56 -0
- package/dist/chunks/aggregate-table-row-presentation-BjK9YfMI.js +979 -0
- package/dist/chunks/analytics-base-schemas-BFAoRlkU.js +472 -0
- package/dist/chunks/apply-dashboard-operations-C-iahGka.js +402 -0
- package/dist/chunks/assistant-chat-DgiSuFT4.js +8083 -0
- package/dist/chunks/availability-Bp5Gfu1I.js +44 -0
- package/dist/chunks/{bookmark-state-B-I9BDD0.js → bookmark-state-k7y5SNGf.js} +9 -9
- package/dist/chunks/{braces-8TRlDwDw.js → braces-o9UiRQes.js} +1 -1
- package/dist/chunks/calculated-field-identity-DcBS2NPP.js +2161 -0
- package/dist/chunks/calendar-day-equality-Bpl15IBo.js +487 -0
- package/dist/chunks/class-utils-Df1OVOT1.js +2315 -0
- package/dist/chunks/{field-dependencies-CpRUwr9J.js → common-types-CUf03Htv.js} +65 -58
- package/dist/chunks/context-HD9usB1P.js +349 -0
- package/dist/chunks/conversation-sQiWYUOb.js +16 -0
- package/dist/chunks/csv-utils-GUfKyT1J.js +56 -0
- package/dist/chunks/custom-visual-inputs-BrUOIwln.js +3288 -0
- package/dist/chunks/{dashboard-briefing-launcher-A2uVpHCp.js → dashboard-briefing-launcher-Bl3gCeBR.js} +580 -556
- package/dist/chunks/{dashboard-controls-DxTuVis_.js → dashboard-controls-0EX0HiJt.js} +683 -686
- package/dist/chunks/{common-types-g7yS12Cg.js → dashboard-filter-value-compatibility-D95O4nd7.js} +18 -24
- package/dist/chunks/dashboard-json-6X_2BDiL.js +69 -0
- package/dist/chunks/{dashboard-BPJo-Fnd.js → dashboard-y5BwcvzT.js} +1 -1
- package/dist/chunks/document-dashboard-inputs-BrYYlRVo.js +10678 -0
- package/dist/chunks/document-sheet-utils-C1eEldxs.js +1076 -0
- package/dist/chunks/{edit-dashboard-visual-ByV0OwSp.js → edit-dashboard-visual-Bzchfgga.js} +4744 -4746
- package/dist/chunks/editor-draft-sync-BN5qYHPF.js +15 -0
- package/dist/chunks/filter-value-text-BhWugPWE.js +163 -0
- package/dist/chunks/index-CqMiAkay.js +3164 -0
- package/dist/chunks/index-CuHybtft.js +51 -0
- package/dist/chunks/layout-grid-Bgzth8vd.js +16 -0
- package/dist/chunks/{matrix-analytical-definition-CgBTD6H8.js → matrix-analytical-definition-bcprSe4u.js} +1 -1
- package/dist/chunks/{matrix-card-CAdizkUl.js → matrix-card-CJn1hB5V.js} +13 -12
- package/dist/chunks/matrix-definition-DQDI2okF.js +206 -0
- package/dist/chunks/{matrix-formatter-DJCk8Znf.js → matrix-formatter-DQ8avoIQ.js} +648 -457
- package/dist/chunks/matrix-member-presentation-BNPSDKBG.js +105 -0
- package/dist/chunks/{matrix-operation-contract-BKupLHXL.js → matrix-operation-contract-B8PBF1Gd.js} +134 -133
- package/dist/chunks/{metric-comparison-BKHyvnAy.js → metric-comparison-CojWeLqx.js} +1 -1
- package/dist/chunks/{palette-Cp1hqZtm.js → palette-D10o_yYX.js} +1 -1
- package/dist/chunks/pivot-header-presentation-MkcKnjn3.js +42 -0
- package/dist/chunks/{pivot-result-identity-Bs4tLtLo.js → pivot-result-identity-D6hhcRXi.js} +1 -1
- package/dist/chunks/pivot-result-lifecycle-8qCDmpKc.js +804 -0
- package/dist/chunks/raw-temporal-D61lr48Y.js +1464 -0
- package/dist/chunks/{raw-temporal-contract-mLFS-9wk.js → raw-temporal-contract-C51YG48G.js} +1 -1
- package/dist/chunks/report-preferences-dialog-CWhSbc5_.js +1808 -0
- package/dist/chunks/{report-runtime-context-CG_I0PPW.js → report-runtime-context-B984Nq1E.js} +8 -7
- package/dist/chunks/save-CfJpQQ68.js +21 -0
- package/dist/chunks/saved-dashboard-context-Dqve2jlB.js +566 -0
- package/dist/chunks/{selection-reducer-CiDEtmAq.js → selection-reducer-vKIb_jS6.js} +2 -2
- package/dist/chunks/{semaphor-ready-indicator-CHu1L-lo.js → semaphor-ready-indicator-ldcwmLoY.js} +65803 -62954
- package/dist/chunks/{shelf-drop-preview-context-i-H6DFyU.js → shelf-drop-preview-context-BWxunXTq.js} +199 -196
- package/dist/chunks/{source-entity-resolution-C-oNyYMp.js → source-entity-resolution-CVA1a85c.js} +8 -8
- package/dist/chunks/switch-CvItuC1Q.js +8199 -0
- package/dist/chunks/{temporal-bucket-DlFuhCnT.js → temporal-bucket-D8JF7zKz.js} +86 -71
- package/dist/chunks/{temporal-bucket-contract-D2OuaVZ7.js → temporal-bucket-contract-DaOajRC7.js} +1 -1
- package/dist/chunks/{token-types-DtSJOUjh.js → token-types-bxUxXDX2.js} +1 -1
- package/dist/chunks/{upload-CAIpsti1.js → upload-BFX7apKV.js} +1 -1
- package/dist/chunks/{use-create-flow-overlay-state-Bj63WwHc.js → use-create-flow-overlay-state-RHgzVfcz.js} +331 -339
- package/dist/chunks/{validators-DMSH81OM.js → validators-Ej1DdCXa.js} +1050 -1510
- package/dist/chunks/visual-choice-JiJ-_3bi.js +204 -0
- package/dist/chunks/x-4f5U2XwU.js +100 -0
- package/dist/chunks/{zoned-wall-clock-1qlWCE20.js → zoned-wall-clock-MulfA26h.js} +2 -2
- package/dist/dashboard/index.js +2 -2
- package/dist/dashboard-authoring/index.js +823 -661
- package/dist/data-app-sdk/index.js +32 -30
- package/dist/data-app-sdk-adapters/index.js +23 -22
- package/dist/data-app-sdk-validation/index.js +23 -22
- package/dist/format-utils/index.js +173 -168
- package/dist/index.js +267 -258
- package/dist/layouts/index.js +236 -24
- package/dist/report-runtime-context/index.js +2 -2
- package/dist/style.css +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/assistant-context.d.ts +2 -0
- package/dist/types/assistant-protocol.d.ts +2 -0
- package/dist/types/components/assistant/assistant-entry-points.d.ts +18 -0
- package/dist/types/components/assistant/assistant-provider.d.ts +19 -0
- package/dist/types/components/assistant/assistant-store.d.ts +52 -0
- package/dist/types/components/assistant/use-assistant.d.ts +38 -0
- package/dist/types/components/index.d.ts +5 -1
- package/dist/types/components/surfboard/filter/types.d.ts +5 -2
- package/dist/types/index.js +50 -51
- package/dist/types/lib/api/invalidate-token.d.ts +7 -0
- package/dist/types/lib/charts/cartesian-fields.d.ts +64 -0
- package/dist/types/lib/charts/types.d.ts +7 -0
- package/dist/types/lib/dashboard-inputs/dashboard-filter-mapping-storage-transition.d.ts +14 -2
- package/dist/types/lib/dashboard-inputs/dashboard-input-target-context.d.ts +5 -6
- package/dist/types/lib/dashboard-inputs/dashboard-input-values.d.ts +8 -3
- package/dist/types/lib/dashboard-inputs/resolve-dashboard-input-context.d.ts +11 -6
- package/dist/types/lib/dashboard-pagination/dashboard-card-pagination.d.ts +7 -0
- package/dist/types/lib/dashboard-viewer/compatibility-input-storage.d.ts +79 -0
- package/dist/types/lib/dashboard-viewer/viewer-state.d.ts +3 -2
- package/dist/types/lib/document/document-table-data-policy.d.ts +15 -0
- package/dist/types/lib/filter-values/filter-mode.d.ts +22 -0
- package/dist/types/lib/hooks/use-calendar-context.d.ts +5 -0
- package/dist/types/lib/hooks/use-filter-option-browse.d.ts +5 -0
- package/dist/types/lib/hooks/use-text-filter.d.ts +9 -0
- package/dist/types/lib/print/print-inputs.d.ts +4 -2
- package/dist/types/lib/query-context/build-card-query-context.d.ts +12 -4
- package/dist/types/lib/query-context/build-dashboard-execution-snapshot.d.ts +93 -0
- package/dist/types/lib/query-context/card-server-request.d.ts +72 -0
- package/dist/types/lib/query-context/compile-dashboard-card-filters.d.ts +7 -0
- package/dist/types/lib/query-context/describe-card-execution-snapshot.d.ts +56 -0
- package/dist/types/lib/query-context/document-section-card-query.d.ts +45 -0
- package/dist/types/lib/query-context/resolve-runtime-card-filters.d.ts +17 -2
- package/dist/types/lib/stores/dashboard-store.d.ts +34 -11
- package/dist/types/lib/stores/editor-store.d.ts +4 -2
- package/dist/types/lib/types/token-types.d.ts +11 -0
- package/dist/types/lib/utils/card-type-change.d.ts +30 -0
- package/dist/types/lib/utils/comparison-window-caption.d.ts +12 -0
- package/dist/types/lib/utils/filter-default-value-utils.d.ts +13 -2
- package/dist/types/shared/analytics-protocol/applied-constraints.d.ts +74 -0
- package/dist/types/shared/analytics-protocol/contracts.d.ts +3 -0
- package/dist/types/shared/analytics-protocol/filter-field-ownership.d.ts +43 -0
- package/dist/types/shared/analytics-protocol/index.d.ts +3 -0
- package/dist/types/shared/analytics-protocol/matrix-window-contract.d.ts +1 -1
- package/dist/types/shared/analytics-protocol/visual-choice.d.ts +75 -0
- package/dist/types/shared/assistant-context/index.d.ts +9 -0
- package/dist/types/shared/assistant-context/project-context.d.ts +55 -0
- package/dist/types/shared/assistant-context/saved-dashboard-context.d.ts +130 -0
- package/dist/types/shared/assistant-protocol/add-to-dashboard.d.ts +17 -0
- package/dist/types/shared/assistant-protocol/artifact.d.ts +63 -0
- package/dist/types/shared/assistant-protocol/availability.d.ts +39 -0
- package/dist/types/shared/assistant-protocol/context.d.ts +952 -0
- package/dist/types/shared/assistant-protocol/conversation.d.ts +38 -0
- package/dist/types/shared/assistant-protocol/index.d.ts +16 -0
- package/dist/types/shared/assistant-protocol/limits.d.ts +53 -0
- package/dist/types/shared/assistant-protocol/parts.d.ts +140 -0
- package/dist/types/shared/assistant-protocol/request.d.ts +77 -0
- package/dist/types/shared/assistant-protocol/sources.d.ts +27 -0
- package/dist/types/shared/assistant-protocol/token-config.d.ts +32 -0
- package/dist/types/shared/assistant-protocol/transcript.d.ts +40 -0
- package/dist/types/shared/dashboard-authoring/card-query-request.d.ts +112 -0
- package/dist/types/shared/dashboard-authoring/control-execution-contract.d.ts +1794 -0
- package/dist/types/shared/dashboard-authoring/index.d.ts +5 -0
- package/dist/types/shared/dashboard-authoring/new-card.d.ts +10 -0
- package/dist/types/shared/dashboard-authoring/operations/apply-dashboard-operations.d.ts +40 -0
- package/dist/types/shared/dashboard-authoring/resolved-primary-date-field-validation.d.ts +16 -0
- package/dist/types/shared/format-utils/filter-detail.d.ts +70 -0
- package/dist/types/shared/format-utils/filter-value-text.d.ts +15 -0
- package/dist/types/shared/format-utils/index.d.ts +3 -0
- package/dist/types/shared/format-utils/raw-temporal.d.ts +7 -0
- package/dist/types/shared/format-utils/temporal-bucket.d.ts +7 -0
- package/dist/types/shared/layouts/frame-layouts.d.ts +23 -0
- package/dist/types/shared/layouts/index.d.ts +1 -0
- package/package.json +12 -2
- package/dist/chunks/calculated-field-identity-BptYhyOP.js +0 -1326
- package/dist/chunks/calendar-day-equality-BRjN1S9h.js +0 -383
- package/dist/chunks/card-config-utils-BOM1dxCk.js +0 -1150
- package/dist/chunks/constants-DNWVy8Y3.js +0 -9
- package/dist/chunks/dashboard-json-B1dEQu98.js +0 -65
- package/dist/chunks/field-aggregations-CoLzYHeL.js +0 -1229
- package/dist/chunks/index-DTcTAGGM.js +0 -4101
- package/dist/chunks/matrix-continuation-C4sRcjZU.js +0 -72
- package/dist/chunks/matrix-control-sources-DTqcA2_L.js +0 -636
- package/dist/chunks/matrix-definition-D9iShKZI.js +0 -87
- package/dist/chunks/matrix-member-presentation-Ct8GuxHt.js +0 -209
- package/dist/chunks/numeric-presentation-CWu3gunq.js +0 -537
- package/dist/chunks/pivot-header-presentation-CHs2GFrM.js +0 -753
- package/dist/chunks/pivot-result-lifecycle-DQz_gjGu.js +0 -789
- package/dist/chunks/raw-temporal-iMXRK-Qz.js +0 -930
- package/dist/chunks/report-preferences-dialog-DXPjteCU.js +0 -1623
- package/dist/chunks/save-kO6cIaob.js +0 -34
- package/dist/chunks/semantic-format-DiqYeKwU.js +0 -192
- package/dist/chunks/switch-DO8a0EfJ.js +0 -25004
- package/dist/chunks/temporal-input-presentation-BD7YNUzu.js +0 -195
- package/dist/chunks/x-CXDkqdur.js +0 -149
- package/dist/types/lib/class-utils.d.ts +0 -2
- package/dist/types/lib/document/document-input-runtime.d.ts +0 -26
- package/dist/types/lib/utils.d.ts +0 -51
|
@@ -1,24 +1,31 @@
|
|
|
1
|
-
import { jsx as t, jsxs as
|
|
1
|
+
import { jsx as t, jsxs as i, Fragment as $ } from "react/jsx-runtime";
|
|
2
2
|
import * as ue from "react";
|
|
3
3
|
import _t, { useState as F, useEffect as J, useCallback as j, useMemo as oe, useLayoutEffect as Pt, useRef as ge, useContext as pr } from "react";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import "./
|
|
4
|
+
import { u as V, v as Tt, s as fr } from "./custom-visual-inputs-BrUOIwln.js";
|
|
5
|
+
import { B as U, l as Le, q as dt, L as ie, j as Ot, c as ut, i as gr, Q as br, P as qe, a as He, b as Qe, S as $t } from "./switch-CvItuC1Q.js";
|
|
6
|
+
import { cq as ht, bt as Ue, bu as Ve, bw as Re, cr as vr, cs as xr, aX as Be, aV as Je, ct as yr, cu as et, cv as mt, _ as tt, X as pe, u as T, cw as Cr, cx as wr, cy as Nr, Z as ee, b6 as Sr, cz as Dr, cA as Er, aR as Se, cf as zt, aI as Ge, l as kr, h as Ar, cB as Ir, ci as pt, cj as ft, ck as gt, cl as bt, cm as vt, cn as xt, co as yt, cp as jt, aG as Ct, cC as Fr, cD as Pr, c7 as ot, c4 as rt, c5 as at, cE as Wt, c6 as nt, bQ as X, cg as Tr, ce as Ke, cF as Lr, bO as Ur, bv as wt, bx as Nt, cG as Vr, bs as Rr, cH as qt, cI as St, cJ as Br, bU as Mr, f as _r, cK as Or, J as xe, aB as Te, ax as Ht, ay as Xe, cL as Q, K as Qt, aw as $r, cM as zr, aD as jr, R as Gt, cN as Wr, az as Lt, N as qr, cO as Hr, cP as Qr, cQ as Gr, cR as Kr, cS as Kt, cT as Xr, cU as Yr, cV as Zr, cW as Xt, cX as Jr, cY as ze, cZ as ea, c_ as ta, c$ as ra, as as aa, at as na, a8 as sa, a7 as oa, a6 as ia, a5 as la, a2 as ca, a0 as da, d0 as ua, d1 as ha, d2 as ma, d3 as pa, d4 as fa, aq as ga, d5 as ba, d6 as va, ae as xa, d7 as ya, d8 as Ca, d9 as wa } from "./semaphor-ready-indicator-ldcwmLoY.js";
|
|
7
|
+
import { L as Dt } from "./layout-grid-Bgzth8vd.js";
|
|
8
|
+
import { c as De, X as Me, C as Yt } from "./x-4f5U2XwU.js";
|
|
9
|
+
import "./index-CuHybtft.js";
|
|
10
|
+
import { t as Na } from "./validators-Ej1DdCXa.js";
|
|
11
|
+
import "./matrix-operation-contract-B8PBF1Gd.js";
|
|
12
|
+
import "./analytics-base-schemas-BFAoRlkU.js";
|
|
10
13
|
import "zod";
|
|
11
14
|
import "../value-format-preferences/index.js";
|
|
12
|
-
import {
|
|
15
|
+
import { c as Y } from "./class-utils-Df1OVOT1.js";
|
|
16
|
+
import { S as Sa } from "./selection-reducer-vKIb_jS6.js";
|
|
13
17
|
import { s as je } from "./normalize-dashboard-for-dirty-check-Bk3VYv_q.js";
|
|
14
|
-
import { f as
|
|
18
|
+
import { f as Da } from "./editor-draft-sync-BN5qYHPF.js";
|
|
19
|
+
import { ae as Ye, af as Ea, k as ka, ag as Aa, ah as Ia, ai as Fa, aj as Pa, ak as Ta } from "./document-dashboard-inputs-BrYYlRVo.js";
|
|
15
20
|
import "react-dom";
|
|
16
|
-
import "./
|
|
17
|
-
import "./field-
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
21
|
+
import "./pivot-result-lifecycle-8qCDmpKc.js";
|
|
22
|
+
import "./calculated-field-identity-DcBS2NPP.js";
|
|
23
|
+
import { o as La } from "./bookmark-state-k7y5SNGf.js";
|
|
24
|
+
import { S as Zt } from "./save-CfJpQQ68.js";
|
|
25
|
+
import { V as Ua, L as Va, a as Ra, u as Jt, C as er, F as Ba, b as Ma } from "./use-create-flow-overlay-state-RHgzVfcz.js";
|
|
26
|
+
import { o as Ut } from "./matrix-formatter-DQ8avoIQ.js";
|
|
27
|
+
import { t as _a } from "./document-sheet-utils-C1eEldxs.js";
|
|
28
|
+
import { g as me, d as Oa, a as $a } from "./index-CqMiAkay.js";
|
|
22
29
|
/**
|
|
23
30
|
* @license lucide-react v0.453.0 - ISC
|
|
24
31
|
*
|
|
@@ -102,13 +109,13 @@ const Qa = De("Newspaper", [
|
|
|
102
109
|
["path", { d: "M10 6h8v4h-8V6Z", key: "smlsk5" }]
|
|
103
110
|
]);
|
|
104
111
|
function Ga() {
|
|
105
|
-
return /* @__PURE__ */ t("div", { className: "space-y-1.5 py-1", children: [...Array(5)].map((e, r) => /* @__PURE__ */
|
|
112
|
+
return /* @__PURE__ */ t("div", { className: "space-y-1.5 py-1", children: [...Array(5)].map((e, r) => /* @__PURE__ */ i(
|
|
106
113
|
"div",
|
|
107
114
|
{
|
|
108
115
|
className: "flex animate-pulse items-start gap-3 rounded-xl border border-transparent px-2.5 py-2.5",
|
|
109
116
|
children: [
|
|
110
117
|
/* @__PURE__ */ t("div", { className: "mt-0.5 h-4 w-4 flex-shrink-0 rounded bg-muted/60" }),
|
|
111
|
-
/* @__PURE__ */
|
|
118
|
+
/* @__PURE__ */ i("div", { className: "flex-1 space-y-1.5", children: [
|
|
112
119
|
/* @__PURE__ */ t("div", { className: "h-4 w-3/5 rounded bg-muted/60" }),
|
|
113
120
|
/* @__PURE__ */ t("div", { className: "h-3 w-4/5 rounded bg-muted/40" })
|
|
114
121
|
] })
|
|
@@ -123,27 +130,27 @@ function Ka({
|
|
|
123
130
|
onSubmit: o,
|
|
124
131
|
isCreating: a
|
|
125
132
|
}) {
|
|
126
|
-
const n = ht("interactive"), [
|
|
133
|
+
const n = ht("interactive"), [s, d] = F(""), [c, l] = F("");
|
|
127
134
|
J(() => {
|
|
128
135
|
e || (d(""), l(""));
|
|
129
136
|
}, [e]);
|
|
130
137
|
const u = () => {
|
|
131
|
-
|
|
138
|
+
s.trim() && o({ title: s, description: c });
|
|
132
139
|
}, h = (p) => {
|
|
133
140
|
r(p);
|
|
134
141
|
};
|
|
135
|
-
return /* @__PURE__ */ t(Ue, { open: e, onOpenChange: h, children: /* @__PURE__ */
|
|
136
|
-
|
|
142
|
+
return /* @__PURE__ */ t(Ue, { open: e, onOpenChange: h, children: /* @__PURE__ */ i(
|
|
143
|
+
Ve,
|
|
137
144
|
{
|
|
138
145
|
showCloseButton: !1,
|
|
139
146
|
className: "flex max-w-lg grid-cols-none flex-col gap-0 overflow-hidden rounded-card border-border/60 p-0 shadow-lg sm:rounded-card",
|
|
140
147
|
style: n.dialogStyle,
|
|
141
148
|
children: [
|
|
142
|
-
/* @__PURE__ */
|
|
143
|
-
/* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ i("div", { className: "flex h-10 shrink-0 items-center justify-between gap-2 border-b border-border/60 px-3", children: [
|
|
150
|
+
/* @__PURE__ */ i("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
144
151
|
/* @__PURE__ */ t(Dt, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
|
|
145
|
-
/* @__PURE__ */
|
|
146
|
-
/* @__PURE__ */ t(
|
|
152
|
+
/* @__PURE__ */ i("div", { className: "flex min-w-0 items-baseline gap-2", children: [
|
|
153
|
+
/* @__PURE__ */ t(Re, { className: "truncate text-[13px] font-medium leading-none tracking-normal", children: "New library visual" }),
|
|
147
154
|
/* @__PURE__ */ t("span", { className: "shrink-0 text-[10px] font-medium uppercase leading-none tracking-[0.08em] text-muted-foreground", children: "Visual" })
|
|
148
155
|
] })
|
|
149
156
|
] }),
|
|
@@ -160,17 +167,17 @@ function Ka({
|
|
|
160
167
|
}
|
|
161
168
|
)
|
|
162
169
|
] }),
|
|
163
|
-
/* @__PURE__ */
|
|
170
|
+
/* @__PURE__ */ i("div", { className: "space-y-3 px-4 py-3", children: [
|
|
164
171
|
/* @__PURE__ */ t("p", { className: "text-[12px] text-muted-foreground", children: "Create a saved visual that can be reused across dashboards." }),
|
|
165
|
-
/* @__PURE__ */
|
|
166
|
-
/* @__PURE__ */ t(
|
|
172
|
+
/* @__PURE__ */ i("div", { className: "space-y-1.5", children: [
|
|
173
|
+
/* @__PURE__ */ t(Le, { htmlFor: "visual-title", className: "text-[12px]", children: "Name" }),
|
|
167
174
|
/* @__PURE__ */ t(
|
|
168
175
|
dt,
|
|
169
176
|
{
|
|
170
177
|
id: "visual-title",
|
|
171
178
|
size: "sm",
|
|
172
179
|
placeholder: "Untitled visual",
|
|
173
|
-
value:
|
|
180
|
+
value: s,
|
|
174
181
|
onChange: (p) => d(p.target.value),
|
|
175
182
|
disabled: a,
|
|
176
183
|
onKeyDown: (p) => {
|
|
@@ -179,8 +186,8 @@ function Ka({
|
|
|
179
186
|
}
|
|
180
187
|
)
|
|
181
188
|
] }),
|
|
182
|
-
/* @__PURE__ */
|
|
183
|
-
/* @__PURE__ */ t(
|
|
189
|
+
/* @__PURE__ */ i("div", { className: "space-y-1.5", children: [
|
|
190
|
+
/* @__PURE__ */ t(Le, { htmlFor: "visual-description", className: "text-[12px]", children: "Description" }),
|
|
184
191
|
/* @__PURE__ */ t(
|
|
185
192
|
dt,
|
|
186
193
|
{
|
|
@@ -194,7 +201,7 @@ function Ka({
|
|
|
194
201
|
)
|
|
195
202
|
] })
|
|
196
203
|
] }),
|
|
197
|
-
/* @__PURE__ */
|
|
204
|
+
/* @__PURE__ */ i("div", { className: "flex shrink-0 justify-end gap-2 border-t border-border/60 px-4 py-2.5", children: [
|
|
198
205
|
/* @__PURE__ */ t(
|
|
199
206
|
U,
|
|
200
207
|
{
|
|
@@ -210,8 +217,8 @@ function Ka({
|
|
|
210
217
|
{
|
|
211
218
|
size: "xs",
|
|
212
219
|
onClick: u,
|
|
213
|
-
disabled: !
|
|
214
|
-
children: a ? /* @__PURE__ */
|
|
220
|
+
disabled: !s.trim() || a,
|
|
221
|
+
children: a ? /* @__PURE__ */ i($, { children: [
|
|
215
222
|
/* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin" }),
|
|
216
223
|
"Creating..."
|
|
217
224
|
] }) : "Create library visual"
|
|
@@ -223,13 +230,13 @@ function Ka({
|
|
|
223
230
|
) });
|
|
224
231
|
}
|
|
225
232
|
function Xa(e) {
|
|
226
|
-
const [r, o] = F(null), [a, n] = F(null),
|
|
233
|
+
const [r, o] = F(null), [a, n] = F(null), s = vr();
|
|
227
234
|
return J(() => {
|
|
228
235
|
if (!e || e.trim() === "") {
|
|
229
236
|
o(null), n(null);
|
|
230
237
|
return;
|
|
231
238
|
}
|
|
232
|
-
if (!
|
|
239
|
+
if (!s)
|
|
233
240
|
return;
|
|
234
241
|
(async () => {
|
|
235
242
|
try {
|
|
@@ -259,15 +266,15 @@ function Xa(e) {
|
|
|
259
266
|
console.error("Failed to load remote chart store:", l), n(l), o(null);
|
|
260
267
|
}
|
|
261
268
|
})();
|
|
262
|
-
}, [e,
|
|
269
|
+
}, [e, s]), r;
|
|
263
270
|
}
|
|
264
271
|
function Ya(e, r) {
|
|
265
272
|
if (e.length === 0)
|
|
266
273
|
return "";
|
|
267
274
|
const o = e.find(
|
|
268
275
|
(a) => {
|
|
269
|
-
var n,
|
|
270
|
-
return ((n = a.customCardPreferences) == null ? void 0 : n.visualType) === "multiple" || !!((
|
|
276
|
+
var n, s;
|
|
277
|
+
return ((n = a.customCardPreferences) == null ? void 0 : n.visualType) === "multiple" || !!((s = a.customCardPreferences) != null && s.dataInputCardIds);
|
|
271
278
|
}
|
|
272
279
|
);
|
|
273
280
|
if (o)
|
|
@@ -300,13 +307,13 @@ function Ja(e, r) {
|
|
|
300
307
|
if (!e.dataSource) {
|
|
301
308
|
if (!o)
|
|
302
309
|
return;
|
|
303
|
-
const a = r.selectedDatabaseName || e.lastSelectedDatabase, n = r.selectedSchemaName || e.lastSelectedSchema,
|
|
310
|
+
const a = r.selectedDatabaseName || e.lastSelectedDatabase, n = r.selectedSchemaName || e.lastSelectedSchema, s = r.selectedTableName || e.lastSelectedTable;
|
|
304
311
|
return {
|
|
305
312
|
connectionId: o,
|
|
306
313
|
connectionType: "",
|
|
307
314
|
mode: "database",
|
|
308
315
|
selectedEntities: [],
|
|
309
|
-
...a && n &&
|
|
316
|
+
...a && n && s ? {
|
|
310
317
|
dbSelection: {
|
|
311
318
|
database: a,
|
|
312
319
|
schema: n,
|
|
@@ -325,24 +332,24 @@ function en(e, {
|
|
|
325
332
|
cardSql: o,
|
|
326
333
|
selectedSchemaName: a,
|
|
327
334
|
selectedDatamodelId: n,
|
|
328
|
-
selectedDatabaseName:
|
|
335
|
+
selectedDatabaseName: s,
|
|
329
336
|
selectedTableName: d,
|
|
330
337
|
selectedConnectionId: c,
|
|
331
338
|
remoteChartSettings: l,
|
|
332
339
|
stripConfig: u
|
|
333
340
|
}) {
|
|
334
|
-
const h = r ||
|
|
341
|
+
const h = r || xr(e);
|
|
335
342
|
return {
|
|
336
343
|
...e,
|
|
337
344
|
dataSource: Ja(e, {
|
|
338
345
|
selectedConnectionId: c,
|
|
339
|
-
selectedDatabaseName:
|
|
346
|
+
selectedDatabaseName: s,
|
|
340
347
|
selectedSchemaName: a,
|
|
341
348
|
selectedTableName: d
|
|
342
349
|
}),
|
|
343
350
|
lastSelectedSchema: a,
|
|
344
351
|
lastSelectedDatamodelId: n,
|
|
345
|
-
lastSelectedDatabase:
|
|
352
|
+
lastSelectedDatabase: s,
|
|
346
353
|
lastSelectedTable: d,
|
|
347
354
|
connectionId: c || e.connectionId,
|
|
348
355
|
sql: h ? o || e.sql : void 0,
|
|
@@ -362,14 +369,14 @@ const tn = (e) => {
|
|
|
362
369
|
const { detailTableBackup: r, ...o } = e;
|
|
363
370
|
return o;
|
|
364
371
|
};
|
|
365
|
-
async function
|
|
372
|
+
async function Vt(e, r, o, a, n = "Opening library visual...") {
|
|
366
373
|
if (!r || !o)
|
|
367
374
|
throw new Error("Missing auth token or visual ID");
|
|
368
|
-
const
|
|
375
|
+
const s = ["resource-by-id", "visual", o], d = a.getQueryData(s);
|
|
369
376
|
if (d)
|
|
370
377
|
return console.log("Using cached visual data for:", o), { data: d, fromCache: !0 };
|
|
371
378
|
console.log("Fetching visual data from network for:", o);
|
|
372
|
-
const c =
|
|
379
|
+
const c = V.loading(n, {
|
|
373
380
|
position: "top-center"
|
|
374
381
|
});
|
|
375
382
|
try {
|
|
@@ -384,9 +391,9 @@ async function Rt(e, r, o, a, n = "Opening library visual...") {
|
|
|
384
391
|
if (!l.ok)
|
|
385
392
|
throw new Error("Failed to load visual");
|
|
386
393
|
const u = await l.json();
|
|
387
|
-
return a.setQueryData(
|
|
394
|
+
return a.setQueryData(s, u), V.dismiss(c), { data: u, fromCache: !1 };
|
|
388
395
|
} catch (l) {
|
|
389
|
-
throw
|
|
396
|
+
throw V.dismiss(c), l;
|
|
390
397
|
}
|
|
391
398
|
}
|
|
392
399
|
function tr(e) {
|
|
@@ -397,8 +404,8 @@ function tr(e) {
|
|
|
397
404
|
throw new Error("Invalid frame object format");
|
|
398
405
|
}
|
|
399
406
|
function rn(e, r) {
|
|
400
|
-
var
|
|
401
|
-
const o = (e == null ? void 0 : e.frameObject) ?? ((
|
|
407
|
+
var s, d;
|
|
408
|
+
const o = (e == null ? void 0 : e.frameObject) ?? ((s = e == null ? void 0 : e.visual) == null ? void 0 : s.frameObject);
|
|
402
409
|
if (!o)
|
|
403
410
|
return !1;
|
|
404
411
|
const a = tr(o);
|
|
@@ -407,7 +414,7 @@ function rn(e, r) {
|
|
|
407
414
|
const n = (d = a.cards) == null ? void 0 : d.find(
|
|
408
415
|
(c) => c.id === a.activeCardId
|
|
409
416
|
);
|
|
410
|
-
return n ? (
|
|
417
|
+
return n ? (Nr({
|
|
411
418
|
...r,
|
|
412
419
|
frame: a,
|
|
413
420
|
card: n,
|
|
@@ -423,18 +430,18 @@ function an() {
|
|
|
423
430
|
), r = Xa(e);
|
|
424
431
|
return { getUpdatedFrame: j(() => {
|
|
425
432
|
var b;
|
|
426
|
-
|
|
433
|
+
Da();
|
|
427
434
|
const {
|
|
428
435
|
frame: a,
|
|
429
436
|
card: n,
|
|
430
|
-
isDevMode:
|
|
437
|
+
isDevMode: s,
|
|
431
438
|
selectedSchemaName: d,
|
|
432
439
|
selectedDatamodelId: c,
|
|
433
440
|
selectedDatabaseName: l,
|
|
434
441
|
selectedTableName: u,
|
|
435
442
|
selectedConnectionId: h
|
|
436
443
|
} = ee.getState(), p = n.sql, m = (b = r == null ? void 0 : r.getState()) == null ? void 0 : b.settings, g = en(n, {
|
|
437
|
-
isDevMode:
|
|
444
|
+
isDevMode: s,
|
|
438
445
|
cardSql: p,
|
|
439
446
|
selectedSchemaName: d,
|
|
440
447
|
selectedDatamodelId: c,
|
|
@@ -454,7 +461,7 @@ function an() {
|
|
|
454
461
|
}, [r]) };
|
|
455
462
|
}
|
|
456
463
|
function Ee() {
|
|
457
|
-
const { authToken: e, tokenProps: r } = Be(), o =
|
|
464
|
+
const { authToken: e, tokenProps: r } = Be(), o = Je(), a = yr(), n = et(), { selectVisual: s } = mt(), {
|
|
458
465
|
setFrame: d,
|
|
459
466
|
setCard: c,
|
|
460
467
|
setIsDevMode: l,
|
|
@@ -471,20 +478,20 @@ function Ee() {
|
|
|
471
478
|
setInlineFilterValuesMap: E,
|
|
472
479
|
setApplyFilters: N,
|
|
473
480
|
clearEditorContext: y
|
|
474
|
-
} =
|
|
481
|
+
} = tt(), {
|
|
475
482
|
setIsDashboardEditing: w,
|
|
476
483
|
setIsVisualEditing: S,
|
|
477
484
|
setSelectedFrameId: x,
|
|
478
485
|
clearSelectedFrameId: B
|
|
479
|
-
} = pe(), I =
|
|
486
|
+
} = pe(), I = T((O) => O.selectedSheetId), W = T((O) => O.selectedFrameId), P = T((O) => O.dashboard), M = T((O) => O.filterValues), Z = T(
|
|
480
487
|
(O) => O.inlineFilterValuesMap
|
|
481
|
-
), K =
|
|
488
|
+
), K = Cr((n == null ? void 0 : n.id) || "", {
|
|
482
489
|
enabled: !!(n != null && n.id) && !!(e != null && e.accessToken)
|
|
483
490
|
}), Ce = j(
|
|
484
491
|
async (O) => {
|
|
485
492
|
try {
|
|
486
|
-
|
|
487
|
-
const { data: te, fromCache: re } = await
|
|
493
|
+
s(O), B(), y();
|
|
494
|
+
const { data: te, fromCache: re } = await Vt(
|
|
488
495
|
r.apiServiceUrl,
|
|
489
496
|
(e == null ? void 0 : e.accessToken) || "",
|
|
490
497
|
O.id,
|
|
@@ -525,7 +532,7 @@ function Ee() {
|
|
|
525
532
|
e == null ? void 0 : e.accessToken,
|
|
526
533
|
r.apiServiceUrl,
|
|
527
534
|
o,
|
|
528
|
-
|
|
535
|
+
s,
|
|
529
536
|
d,
|
|
530
537
|
c,
|
|
531
538
|
w,
|
|
@@ -554,24 +561,24 @@ function Ee() {
|
|
|
554
561
|
), ce = j(
|
|
555
562
|
async (O) => {
|
|
556
563
|
var re;
|
|
557
|
-
const te = (
|
|
564
|
+
const te = (L) => (V.error(L), { success: !1, error: L });
|
|
558
565
|
try {
|
|
559
|
-
if (
|
|
566
|
+
if (s(O), !I)
|
|
560
567
|
return te("No sheet selected. Please select a sheet first.");
|
|
561
|
-
const { data:
|
|
568
|
+
const { data: L, fromCache: ae } = await Vt(
|
|
562
569
|
r.apiServiceUrl,
|
|
563
570
|
(e == null ? void 0 : e.accessToken) || "",
|
|
564
571
|
O.id,
|
|
565
572
|
o,
|
|
566
573
|
"Adding visual to dashboard..."
|
|
567
|
-
), le = (
|
|
574
|
+
), le = (L == null ? void 0 : L.frameObject) ?? ((re = L == null ? void 0 : L.visual) == null ? void 0 : re.frameObject);
|
|
568
575
|
if (!le)
|
|
569
576
|
return te("Visual has no frame data");
|
|
570
577
|
const G = tr(le);
|
|
571
578
|
if (!(G != null && G.cards) || G.cards.length === 0)
|
|
572
579
|
return te("Visual frame is malformed");
|
|
573
580
|
const be = {
|
|
574
|
-
...
|
|
581
|
+
...wr(G),
|
|
575
582
|
visualId: O.id
|
|
576
583
|
// Link this frame to the library visual
|
|
577
584
|
};
|
|
@@ -580,9 +587,9 @@ function Ee() {
|
|
|
580
587
|
be,
|
|
581
588
|
"end"
|
|
582
589
|
), w(!0), x(be.id), { success: !0, fromCache: ae };
|
|
583
|
-
} catch (
|
|
584
|
-
return console.error("Error adding visual:",
|
|
585
|
-
|
|
590
|
+
} catch (L) {
|
|
591
|
+
return console.error("Error adding visual:", L), te(
|
|
592
|
+
L instanceof Error ? L.message : "Failed to add visual to dashboard"
|
|
586
593
|
);
|
|
587
594
|
}
|
|
588
595
|
},
|
|
@@ -590,7 +597,7 @@ function Ee() {
|
|
|
590
597
|
e == null ? void 0 : e.accessToken,
|
|
591
598
|
r.apiServiceUrl,
|
|
592
599
|
o,
|
|
593
|
-
|
|
600
|
+
s,
|
|
594
601
|
I,
|
|
595
602
|
w,
|
|
596
603
|
x,
|
|
@@ -629,17 +636,17 @@ function nn(e, r) {
|
|
|
629
636
|
}
|
|
630
637
|
function sn(e) {
|
|
631
638
|
const r = (e || "").toLowerCase();
|
|
632
|
-
return r.includes("table") ? Ot : r.includes("pie") || r.includes("donut") ?
|
|
639
|
+
return r.includes("table") ? Ot : r.includes("pie") || r.includes("donut") ? Fr : r.includes("line") ? Pr : r.includes("bar") ? gr : Dt;
|
|
633
640
|
}
|
|
634
641
|
function on({ visual: e }) {
|
|
635
642
|
const r = e.ownership.status === "public" ? "Public" : e.ownership.status === "shared" || e.ownership.sharedCount > 0 ? "Shared" : "Private";
|
|
636
643
|
return /* @__PURE__ */ t("span", { className: "inline-flex items-center rounded-[4px] border border-border/60 px-1.5 py-px text-[11px] text-muted-foreground", children: r });
|
|
637
644
|
}
|
|
638
|
-
function
|
|
645
|
+
function Hs({
|
|
639
646
|
open: e,
|
|
640
647
|
onOpenChange: r
|
|
641
648
|
}) {
|
|
642
|
-
const o = ht("interactive"), [a, n] = F(""), [
|
|
649
|
+
const o = ht("interactive"), [a, n] = F(""), [s, d] = F(/* @__PURE__ */ new Set()), [c, l] = F(!1), [u, h] = F(
|
|
643
650
|
null
|
|
644
651
|
), [p, m] = F(
|
|
645
652
|
null
|
|
@@ -647,7 +654,7 @@ function _s({
|
|
|
647
654
|
d(/* @__PURE__ */ new Set()), h(null), m(null), f(!1), k(null);
|
|
648
655
|
}, N = () => {
|
|
649
656
|
r(!1), E();
|
|
650
|
-
}, { selectVisual: y } = mt(), { handleAddLibraryVisual: w, handleEditLibraryVisual: S } = Ee(), { isConsoleMode: x } =
|
|
657
|
+
}, { selectVisual: y } = mt(), { handleAddLibraryVisual: w, handleEditLibraryVisual: S } = Ee(), { isConsoleMode: x } = Sr(), {
|
|
651
658
|
resources: B,
|
|
652
659
|
isLoading: I,
|
|
653
660
|
isError: W,
|
|
@@ -657,7 +664,7 @@ function _s({
|
|
|
657
664
|
duplicateResource: K,
|
|
658
665
|
isCreating: Ce,
|
|
659
666
|
isDeleting: ce
|
|
660
|
-
} =
|
|
667
|
+
} = Dr(
|
|
661
668
|
void 0,
|
|
662
669
|
(C) => {
|
|
663
670
|
l(!1), C && (y(C), S(C), N());
|
|
@@ -666,55 +673,55 @@ function _s({
|
|
|
666
673
|
startUpdating: O,
|
|
667
674
|
stopUpdating: te,
|
|
668
675
|
isUpdating: re
|
|
669
|
-
} =
|
|
676
|
+
} = Er(), L = B, ae = oe(() => {
|
|
670
677
|
const C = a.trim().toLowerCase();
|
|
671
|
-
return C ?
|
|
672
|
-
(
|
|
678
|
+
return C ? L.filter(
|
|
679
|
+
(R) => {
|
|
673
680
|
var z, de, fe;
|
|
674
|
-
return ((z =
|
|
681
|
+
return ((z = R.title) == null ? void 0 : z.toLowerCase().includes(C)) || ((de = R.description) == null ? void 0 : de.toLowerCase().includes(C)) || ((fe = R.kind) == null ? void 0 : fe.toLowerCase().includes(C));
|
|
675
682
|
}
|
|
676
|
-
) :
|
|
677
|
-
}, [a,
|
|
678
|
-
() =>
|
|
679
|
-
(C) =>
|
|
683
|
+
) : L;
|
|
684
|
+
}, [a, L]), le = oe(
|
|
685
|
+
() => L.filter(
|
|
686
|
+
(C) => s.has(C.id)
|
|
680
687
|
),
|
|
681
|
-
[
|
|
688
|
+
[s, L]
|
|
682
689
|
), G = le.filter(
|
|
683
690
|
(C) => C.permissions.canDelete
|
|
684
691
|
), be = le.filter(
|
|
685
692
|
(C) => C.permissions.canShare
|
|
686
693
|
), ke = ae.length > 0 && ae.every(
|
|
687
|
-
(C) =>
|
|
694
|
+
(C) => s.has(C.id)
|
|
688
695
|
), ve = ae.some(
|
|
689
|
-
(C) =>
|
|
696
|
+
(C) => s.has(C.id)
|
|
690
697
|
), we = (C) => {
|
|
691
|
-
const
|
|
692
|
-
C(
|
|
698
|
+
const R = new Set(s);
|
|
699
|
+
C(R), d(R);
|
|
693
700
|
}, se = (C) => {
|
|
694
|
-
we((
|
|
695
|
-
|
|
701
|
+
we((R) => {
|
|
702
|
+
R.has(C) ? R.delete(C) : R.add(C);
|
|
696
703
|
});
|
|
697
704
|
}, Ae = () => {
|
|
698
705
|
d((C) => {
|
|
699
|
-
const
|
|
706
|
+
const R = new Set(C);
|
|
700
707
|
return ke ? ae.forEach(
|
|
701
|
-
(z) =>
|
|
708
|
+
(z) => R.delete(z.id)
|
|
702
709
|
) : ae.forEach(
|
|
703
|
-
(z) =>
|
|
704
|
-
),
|
|
710
|
+
(z) => R.add(z.id)
|
|
711
|
+
), R;
|
|
705
712
|
});
|
|
706
713
|
}, q = async (C) => {
|
|
707
714
|
(await w(C)).success && N();
|
|
708
715
|
}, H = async () => {
|
|
709
716
|
const C = le;
|
|
710
717
|
if (C.length === 0) return;
|
|
711
|
-
let
|
|
718
|
+
let R = !1;
|
|
712
719
|
for (const z of C)
|
|
713
720
|
if (!(await w(z)).success) {
|
|
714
|
-
|
|
721
|
+
R = !0;
|
|
715
722
|
break;
|
|
716
723
|
}
|
|
717
|
-
|
|
724
|
+
R || N();
|
|
718
725
|
}, he = (C) => {
|
|
719
726
|
S(C), N();
|
|
720
727
|
}, Ne = (C) => {
|
|
@@ -723,17 +730,17 @@ function _s({
|
|
|
723
730
|
});
|
|
724
731
|
}, _e = () => {
|
|
725
732
|
if (G.length === 0) {
|
|
726
|
-
|
|
733
|
+
V.error("Select a visual you can delete");
|
|
727
734
|
return;
|
|
728
735
|
}
|
|
729
736
|
k(null), f(!0);
|
|
730
737
|
}, st = async () => {
|
|
731
738
|
const C = b ? [b] : G;
|
|
732
739
|
try {
|
|
733
|
-
for (const
|
|
734
|
-
await Z(
|
|
735
|
-
d((
|
|
736
|
-
const z = new Set(
|
|
740
|
+
for (const R of C)
|
|
741
|
+
await Z(R.id);
|
|
742
|
+
d((R) => {
|
|
743
|
+
const z = new Set(R);
|
|
737
744
|
return C.forEach(
|
|
738
745
|
(de) => z.delete(de.id)
|
|
739
746
|
), z;
|
|
@@ -742,22 +749,22 @@ function _s({
|
|
|
742
749
|
}
|
|
743
750
|
}, Ie = () => {
|
|
744
751
|
if (le.length !== 1) {
|
|
745
|
-
|
|
752
|
+
V.error("Select one visual to share");
|
|
746
753
|
return;
|
|
747
754
|
}
|
|
748
755
|
const [C] = le;
|
|
749
756
|
if (!C.permissions.canShare) {
|
|
750
|
-
|
|
757
|
+
V.error("You do not have permission to share this visual");
|
|
751
758
|
return;
|
|
752
759
|
}
|
|
753
760
|
h(C);
|
|
754
761
|
}, Fe = ({
|
|
755
762
|
title: C,
|
|
756
|
-
description:
|
|
763
|
+
description: R
|
|
757
764
|
}) => {
|
|
758
765
|
if (!p) return;
|
|
759
766
|
const z = {};
|
|
760
|
-
if (C !== p.title && (z.title = C), (p.description || "") !==
|
|
767
|
+
if (C !== p.title && (z.title = C), (p.description || "") !== R && (z.description = R), Object.keys(z).length === 0) {
|
|
761
768
|
m(null);
|
|
762
769
|
return;
|
|
763
770
|
}
|
|
@@ -779,19 +786,19 @@ function _s({
|
|
|
779
786
|
}, ne = (C) => {
|
|
780
787
|
r(C), C || E();
|
|
781
788
|
}, Pe = b ? 1 : G.length;
|
|
782
|
-
return /* @__PURE__ */
|
|
783
|
-
/* @__PURE__ */ t(Ue, { open: e, onOpenChange: ne, children: /* @__PURE__ */
|
|
784
|
-
|
|
789
|
+
return /* @__PURE__ */ i($, { children: [
|
|
790
|
+
/* @__PURE__ */ t(Ue, { open: e, onOpenChange: ne, children: /* @__PURE__ */ i(
|
|
791
|
+
Ve,
|
|
785
792
|
{
|
|
786
793
|
showCloseButton: !1,
|
|
787
794
|
className: "flex max-h-[80vh] w-[min(72rem,calc(100vw-2rem))] max-w-none grid-cols-none flex-col gap-0 overflow-hidden rounded-card border-border/60 p-0 shadow-lg sm:rounded-card",
|
|
788
795
|
style: o.dialogStyle,
|
|
789
796
|
children: [
|
|
790
|
-
/* @__PURE__ */
|
|
791
|
-
/* @__PURE__ */
|
|
797
|
+
/* @__PURE__ */ i("div", { className: "flex h-10 shrink-0 items-center justify-between gap-2 border-b border-border/60 px-3", children: [
|
|
798
|
+
/* @__PURE__ */ i("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
792
799
|
/* @__PURE__ */ t(Ot, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
|
|
793
|
-
/* @__PURE__ */
|
|
794
|
-
/* @__PURE__ */ t(
|
|
800
|
+
/* @__PURE__ */ i("div", { className: "flex min-w-0 items-baseline gap-2", children: [
|
|
801
|
+
/* @__PURE__ */ t(Re, { className: "truncate text-[13px] font-medium leading-none tracking-normal", children: "Visuals library" }),
|
|
795
802
|
/* @__PURE__ */ t("span", { className: "shrink-0 text-[10px] font-medium uppercase leading-none tracking-[0.08em] text-muted-foreground", children: "Add to dashboard" })
|
|
796
803
|
] })
|
|
797
804
|
] }),
|
|
@@ -807,9 +814,9 @@ function _s({
|
|
|
807
814
|
}
|
|
808
815
|
)
|
|
809
816
|
] }),
|
|
810
|
-
/* @__PURE__ */
|
|
811
|
-
/* @__PURE__ */
|
|
812
|
-
/* @__PURE__ */ t(
|
|
817
|
+
/* @__PURE__ */ i("div", { className: "flex shrink-0 items-center gap-2 border-b border-border/60 px-3 py-2", children: [
|
|
818
|
+
/* @__PURE__ */ i("div", { className: "relative min-w-[12rem] flex-1 md:max-w-md", children: [
|
|
819
|
+
/* @__PURE__ */ t(Sa, { className: "pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground" }),
|
|
813
820
|
/* @__PURE__ */ t(
|
|
814
821
|
"input",
|
|
815
822
|
{
|
|
@@ -822,7 +829,7 @@ function _s({
|
|
|
822
829
|
}
|
|
823
830
|
)
|
|
824
831
|
] }),
|
|
825
|
-
/* @__PURE__ */
|
|
832
|
+
/* @__PURE__ */ i(
|
|
826
833
|
U,
|
|
827
834
|
{
|
|
828
835
|
size: "xs",
|
|
@@ -836,7 +843,7 @@ function _s({
|
|
|
836
843
|
}
|
|
837
844
|
)
|
|
838
845
|
] }),
|
|
839
|
-
/* @__PURE__ */ t("div", { className: "min-h-0 flex-1 overflow-auto", children: I ? /* @__PURE__ */ t("div", { className: "p-3", children: /* @__PURE__ */ t(Ga, {}) }) : W ? /* @__PURE__ */ t("div", { className: "flex flex-col items-center gap-2 px-4 py-12 text-center", children: /* @__PURE__ */ t("p", { className: "text-[13px] text-destructive", children: "Failed to load visuals" }) }) : ae.length === 0 ? /* @__PURE__ */
|
|
846
|
+
/* @__PURE__ */ t("div", { className: "min-h-0 flex-1 overflow-auto", children: I ? /* @__PURE__ */ t("div", { className: "p-3", children: /* @__PURE__ */ t(Ga, {}) }) : W ? /* @__PURE__ */ t("div", { className: "flex flex-col items-center gap-2 px-4 py-12 text-center", children: /* @__PURE__ */ t("p", { className: "text-[13px] text-destructive", children: "Failed to load visuals" }) }) : ae.length === 0 ? /* @__PURE__ */ i("div", { className: "flex flex-col items-center gap-2 px-4 py-12 text-center", children: [
|
|
840
847
|
/* @__PURE__ */ t(Dt, { className: "h-5 w-5 text-muted-foreground/60" }),
|
|
841
848
|
/* @__PURE__ */ t("p", { className: "text-[13px] font-medium", children: a ? "No visuals found" : "No visuals yet" }),
|
|
842
849
|
/* @__PURE__ */ t("p", { className: "text-[12px] text-muted-foreground", children: a ? "Try a different search." : "Create a saved visual to add it here." })
|
|
@@ -844,7 +851,7 @@ function _s({
|
|
|
844
851
|
ln,
|
|
845
852
|
{
|
|
846
853
|
visuals: ae,
|
|
847
|
-
selectedIds:
|
|
854
|
+
selectedIds: s,
|
|
848
855
|
allFilteredSelected: ke,
|
|
849
856
|
someFilteredSelected: ve,
|
|
850
857
|
onSelectAll: Ae,
|
|
@@ -862,10 +869,10 @@ function _s({
|
|
|
862
869
|
isConsoleMode: x
|
|
863
870
|
}
|
|
864
871
|
) }),
|
|
865
|
-
/* @__PURE__ */
|
|
866
|
-
/* @__PURE__ */ t("div", { className: "flex min-w-0 items-center gap-1.5", children:
|
|
867
|
-
/* @__PURE__ */
|
|
868
|
-
/* @__PURE__ */ t("span", { className: "font-medium tabular-nums text-foreground", children:
|
|
872
|
+
/* @__PURE__ */ i("div", { className: "flex shrink-0 items-center justify-between gap-2 border-t border-border/60 px-3 py-2", children: [
|
|
873
|
+
/* @__PURE__ */ t("div", { className: "flex min-w-0 items-center gap-1.5", children: s.size > 0 && /* @__PURE__ */ i($, { children: [
|
|
874
|
+
/* @__PURE__ */ i("span", { className: "text-[12px] text-muted-foreground", children: [
|
|
875
|
+
/* @__PURE__ */ t("span", { className: "font-medium tabular-nums text-foreground", children: s.size }),
|
|
869
876
|
" ",
|
|
870
877
|
"selected"
|
|
871
878
|
] }),
|
|
@@ -878,7 +885,7 @@ function _s({
|
|
|
878
885
|
children: "Clear"
|
|
879
886
|
}
|
|
880
887
|
),
|
|
881
|
-
/* @__PURE__ */
|
|
888
|
+
/* @__PURE__ */ i(
|
|
882
889
|
U,
|
|
883
890
|
{
|
|
884
891
|
size: "xs",
|
|
@@ -891,7 +898,7 @@ function _s({
|
|
|
891
898
|
]
|
|
892
899
|
}
|
|
893
900
|
),
|
|
894
|
-
/* @__PURE__ */
|
|
901
|
+
/* @__PURE__ */ i(
|
|
895
902
|
U,
|
|
896
903
|
{
|
|
897
904
|
size: "xs",
|
|
@@ -900,14 +907,14 @@ function _s({
|
|
|
900
907
|
onClick: _e,
|
|
901
908
|
disabled: G.length === 0,
|
|
902
909
|
children: [
|
|
903
|
-
/* @__PURE__ */ t(
|
|
910
|
+
/* @__PURE__ */ t(Ge, { className: "h-3.5 w-3.5" }),
|
|
904
911
|
"Delete ",
|
|
905
|
-
G.length ||
|
|
912
|
+
G.length || s.size
|
|
906
913
|
]
|
|
907
914
|
}
|
|
908
915
|
)
|
|
909
916
|
] }) }),
|
|
910
|
-
/* @__PURE__ */
|
|
917
|
+
/* @__PURE__ */ i("div", { className: "flex items-center gap-2", children: [
|
|
911
918
|
/* @__PURE__ */ t(
|
|
912
919
|
U,
|
|
913
920
|
{
|
|
@@ -917,15 +924,15 @@ function _s({
|
|
|
917
924
|
children: "Close"
|
|
918
925
|
}
|
|
919
926
|
),
|
|
920
|
-
/* @__PURE__ */
|
|
927
|
+
/* @__PURE__ */ i(
|
|
921
928
|
U,
|
|
922
929
|
{
|
|
923
930
|
size: "xs",
|
|
924
931
|
onClick: H,
|
|
925
|
-
disabled:
|
|
932
|
+
disabled: s.size === 0,
|
|
926
933
|
children: [
|
|
927
934
|
/* @__PURE__ */ t(ut, { className: "h-3.5 w-3.5" }),
|
|
928
|
-
|
|
935
|
+
s.size === 0 ? "Add to dashboard" : `Add ${s.size} visual${s.size === 1 ? "" : "s"}`
|
|
929
936
|
]
|
|
930
937
|
}
|
|
931
938
|
)
|
|
@@ -944,15 +951,15 @@ function _s({
|
|
|
944
951
|
}
|
|
945
952
|
),
|
|
946
953
|
u && /* @__PURE__ */ t(
|
|
947
|
-
|
|
954
|
+
kr,
|
|
948
955
|
{
|
|
949
956
|
resource: u,
|
|
950
|
-
resourceType:
|
|
957
|
+
resourceType: Ar.VISUAL,
|
|
951
958
|
onClose: () => h(null)
|
|
952
959
|
}
|
|
953
960
|
),
|
|
954
961
|
p && /* @__PURE__ */ t(
|
|
955
|
-
|
|
962
|
+
Ir,
|
|
956
963
|
{
|
|
957
964
|
open: !!p,
|
|
958
965
|
resourceLabel: "Visual",
|
|
@@ -970,9 +977,9 @@ function _s({
|
|
|
970
977
|
onOpenChange: (C) => {
|
|
971
978
|
!C && ce || (f(C), C || k(null));
|
|
972
979
|
},
|
|
973
|
-
children: /* @__PURE__ */
|
|
974
|
-
/* @__PURE__ */
|
|
975
|
-
/* @__PURE__ */
|
|
980
|
+
children: /* @__PURE__ */ i(ft, { children: [
|
|
981
|
+
/* @__PURE__ */ i(gt, { children: [
|
|
982
|
+
/* @__PURE__ */ i(bt, { children: [
|
|
976
983
|
"Delete ",
|
|
977
984
|
Pe,
|
|
978
985
|
" visual",
|
|
@@ -981,9 +988,9 @@ function _s({
|
|
|
981
988
|
] }),
|
|
982
989
|
/* @__PURE__ */ t(vt, { children: "This cannot be undone. Visuals already added to dashboards may need to be removed from those dashboards separately." })
|
|
983
990
|
] }),
|
|
984
|
-
/* @__PURE__ */
|
|
991
|
+
/* @__PURE__ */ i(xt, { children: [
|
|
985
992
|
/* @__PURE__ */ t(yt, { disabled: ce, children: "Cancel" }),
|
|
986
|
-
/* @__PURE__ */
|
|
993
|
+
/* @__PURE__ */ i(
|
|
987
994
|
jt,
|
|
988
995
|
{
|
|
989
996
|
onClick: (C) => {
|
|
@@ -991,7 +998,7 @@ function _s({
|
|
|
991
998
|
},
|
|
992
999
|
disabled: ce || Pe === 0,
|
|
993
1000
|
children: [
|
|
994
|
-
ce ? /* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ t(
|
|
1001
|
+
ce ? /* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ t(Ge, { className: "h-3.5 w-3.5" }),
|
|
995
1002
|
ce ? "Deleting..." : "Delete"
|
|
996
1003
|
]
|
|
997
1004
|
}
|
|
@@ -1008,7 +1015,7 @@ function ln({
|
|
|
1008
1015
|
allFilteredSelected: o,
|
|
1009
1016
|
someFilteredSelected: a,
|
|
1010
1017
|
onSelectAll: n,
|
|
1011
|
-
onToggleSelection:
|
|
1018
|
+
onToggleSelection: s,
|
|
1012
1019
|
onAddVisual: d,
|
|
1013
1020
|
onOpenVisual: c,
|
|
1014
1021
|
onEditDetails: l,
|
|
@@ -1019,8 +1026,8 @@ function ln({
|
|
|
1019
1026
|
isDeleting: g,
|
|
1020
1027
|
isConsoleMode: f
|
|
1021
1028
|
}) {
|
|
1022
|
-
return /* @__PURE__ */
|
|
1023
|
-
/* @__PURE__ */
|
|
1029
|
+
return /* @__PURE__ */ i("div", { className: "min-w-[48rem]", children: [
|
|
1030
|
+
/* @__PURE__ */ i("div", { className: "grid h-9 grid-cols-[2.5rem_minmax(14rem,1.8fr)_minmax(10rem,1fr)_8rem_7rem_5rem_5.5rem] items-center border-b border-border/60 px-3 text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground", children: [
|
|
1024
1031
|
/* @__PURE__ */ t(
|
|
1025
1032
|
Ct,
|
|
1026
1033
|
{
|
|
@@ -1041,7 +1048,7 @@ function ln({
|
|
|
1041
1048
|
{
|
|
1042
1049
|
visual: b,
|
|
1043
1050
|
selected: r.has(b.id),
|
|
1044
|
-
onToggleSelection:
|
|
1051
|
+
onToggleSelection: s,
|
|
1045
1052
|
onAddVisual: d,
|
|
1046
1053
|
onOpenVisual: c,
|
|
1047
1054
|
onEditDetails: l,
|
|
@@ -1062,7 +1069,7 @@ function cn({
|
|
|
1062
1069
|
onToggleSelection: o,
|
|
1063
1070
|
onAddVisual: a,
|
|
1064
1071
|
onOpenVisual: n,
|
|
1065
|
-
onEditDetails:
|
|
1072
|
+
onEditDetails: s,
|
|
1066
1073
|
onShareVisual: d,
|
|
1067
1074
|
onDeleteVisual: c,
|
|
1068
1075
|
onDuplicateVisual: l,
|
|
@@ -1074,10 +1081,10 @@ function cn({
|
|
|
1074
1081
|
const m = sn(e.kind), g = () => {
|
|
1075
1082
|
a(e);
|
|
1076
1083
|
};
|
|
1077
|
-
return /* @__PURE__ */
|
|
1084
|
+
return /* @__PURE__ */ i(
|
|
1078
1085
|
"div",
|
|
1079
1086
|
{
|
|
1080
|
-
className:
|
|
1087
|
+
className: Y(
|
|
1081
1088
|
"group grid min-h-12 grid-cols-[2.5rem_minmax(14rem,1.8fr)_minmax(10rem,1fr)_8rem_7rem_5rem_5.5rem] items-center border-b border-border/50 px-3 text-[13px] hover:bg-muted/50",
|
|
1082
1089
|
r && "bg-muted/70"
|
|
1083
1090
|
),
|
|
@@ -1090,7 +1097,7 @@ function cn({
|
|
|
1090
1097
|
"aria-label": `Select ${e.title || "visual"}`
|
|
1091
1098
|
}
|
|
1092
1099
|
) }),
|
|
1093
|
-
/* @__PURE__ */
|
|
1100
|
+
/* @__PURE__ */ i(
|
|
1094
1101
|
"button",
|
|
1095
1102
|
{
|
|
1096
1103
|
type: "button",
|
|
@@ -1099,7 +1106,7 @@ function cn({
|
|
|
1099
1106
|
"aria-label": `Add ${e.title || "visual"} to dashboard`,
|
|
1100
1107
|
children: [
|
|
1101
1108
|
/* @__PURE__ */ t(m, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
|
|
1102
|
-
/* @__PURE__ */
|
|
1109
|
+
/* @__PURE__ */ i("div", { className: "min-w-0", children: [
|
|
1103
1110
|
/* @__PURE__ */ t(
|
|
1104
1111
|
"div",
|
|
1105
1112
|
{
|
|
@@ -1120,7 +1127,7 @@ function cn({
|
|
|
1120
1127
|
]
|
|
1121
1128
|
}
|
|
1122
1129
|
),
|
|
1123
|
-
/* @__PURE__ */
|
|
1130
|
+
/* @__PURE__ */ i("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
1124
1131
|
/* @__PURE__ */ t("div", { className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-muted text-[9px] font-medium text-muted-foreground", children: nn(e, p) }),
|
|
1125
1132
|
/* @__PURE__ */ t("span", { className: "truncate text-muted-foreground", children: Et(e, p) })
|
|
1126
1133
|
] }),
|
|
@@ -1132,7 +1139,7 @@ function cn({
|
|
|
1132
1139
|
{
|
|
1133
1140
|
visual: e,
|
|
1134
1141
|
onOpenVisual: n,
|
|
1135
|
-
onEditDetails:
|
|
1142
|
+
onEditDetails: s,
|
|
1136
1143
|
onShareVisual: d,
|
|
1137
1144
|
onDeleteVisual: c,
|
|
1138
1145
|
onDuplicateVisual: l,
|
|
@@ -1151,12 +1158,12 @@ function dn({
|
|
|
1151
1158
|
onEditDetails: o,
|
|
1152
1159
|
onShareVisual: a,
|
|
1153
1160
|
onDeleteVisual: n,
|
|
1154
|
-
onDuplicateVisual:
|
|
1161
|
+
onDuplicateVisual: s,
|
|
1155
1162
|
duplicatingId: d,
|
|
1156
1163
|
isDeleting: c,
|
|
1157
1164
|
isConsoleMode: l
|
|
1158
1165
|
}) {
|
|
1159
|
-
return /* @__PURE__ */
|
|
1166
|
+
return /* @__PURE__ */ i(
|
|
1160
1167
|
"div",
|
|
1161
1168
|
{
|
|
1162
1169
|
className: "flex items-center justify-end gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100",
|
|
@@ -1173,7 +1180,7 @@ function dn({
|
|
|
1173
1180
|
children: /* @__PURE__ */ t(ot, { className: "h-3.5 w-3.5" })
|
|
1174
1181
|
}
|
|
1175
1182
|
),
|
|
1176
|
-
/* @__PURE__ */
|
|
1183
|
+
/* @__PURE__ */ i(rt, { modal: !1, children: [
|
|
1177
1184
|
/* @__PURE__ */ t(at, { asChild: !0, children: /* @__PURE__ */ t(
|
|
1178
1185
|
U,
|
|
1179
1186
|
{
|
|
@@ -1184,58 +1191,58 @@ function dn({
|
|
|
1184
1191
|
children: /* @__PURE__ */ t(Wt, { className: "h-3.5 w-3.5" })
|
|
1185
1192
|
}
|
|
1186
1193
|
) }),
|
|
1187
|
-
/* @__PURE__ */
|
|
1194
|
+
/* @__PURE__ */ i(
|
|
1188
1195
|
nt,
|
|
1189
1196
|
{
|
|
1190
1197
|
align: "end",
|
|
1191
1198
|
className: "z-[60] w-44 rounded-[6px] border-border/60 p-1 shadow-sm",
|
|
1192
1199
|
children: [
|
|
1193
|
-
/* @__PURE__ */
|
|
1200
|
+
/* @__PURE__ */ i(X, { onClick: () => r(e), children: [
|
|
1194
1201
|
/* @__PURE__ */ t(ot, { className: "h-3.5 w-3.5" }),
|
|
1195
1202
|
"Edit visual"
|
|
1196
1203
|
] }),
|
|
1197
|
-
/* @__PURE__ */
|
|
1198
|
-
|
|
1204
|
+
/* @__PURE__ */ i(
|
|
1205
|
+
X,
|
|
1199
1206
|
{
|
|
1200
|
-
onClick: () =>
|
|
1207
|
+
onClick: () => s(e.id),
|
|
1201
1208
|
disabled: d === e.id,
|
|
1202
1209
|
children: [
|
|
1203
|
-
d === e.id ? /* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ t(
|
|
1210
|
+
d === e.id ? /* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ t(Tr, { className: "h-3.5 w-3.5" }),
|
|
1204
1211
|
d === e.id ? "Duplicating..." : "Duplicate"
|
|
1205
1212
|
]
|
|
1206
1213
|
}
|
|
1207
1214
|
),
|
|
1208
|
-
e.permissions.canEdit && /* @__PURE__ */
|
|
1215
|
+
e.permissions.canEdit && /* @__PURE__ */ i(X, { onClick: () => o(e), children: [
|
|
1209
1216
|
/* @__PURE__ */ t(ot, { className: "h-3.5 w-3.5" }),
|
|
1210
1217
|
"Edit details"
|
|
1211
1218
|
] }),
|
|
1212
|
-
e.permissions.canShare && /* @__PURE__ */
|
|
1219
|
+
e.permissions.canShare && /* @__PURE__ */ i(X, { onClick: () => a(e), children: [
|
|
1213
1220
|
/* @__PURE__ */ t(zt, { className: "h-3.5 w-3.5" }),
|
|
1214
1221
|
"Share"
|
|
1215
1222
|
] }),
|
|
1216
|
-
e.permissions.canDelete && /* @__PURE__ */
|
|
1217
|
-
/* @__PURE__ */ t(
|
|
1218
|
-
/* @__PURE__ */
|
|
1219
|
-
|
|
1223
|
+
e.permissions.canDelete && /* @__PURE__ */ i($, { children: [
|
|
1224
|
+
/* @__PURE__ */ t(Ke, {}),
|
|
1225
|
+
/* @__PURE__ */ i(
|
|
1226
|
+
X,
|
|
1220
1227
|
{
|
|
1221
1228
|
className: "text-destructive focus:bg-destructive/10 focus:text-destructive",
|
|
1222
1229
|
onClick: () => n(e),
|
|
1223
1230
|
disabled: c,
|
|
1224
1231
|
children: [
|
|
1225
|
-
/* @__PURE__ */ t(
|
|
1232
|
+
/* @__PURE__ */ t(Ge, { className: "h-3.5 w-3.5" }),
|
|
1226
1233
|
c ? "Deleting..." : "Delete"
|
|
1227
1234
|
]
|
|
1228
1235
|
}
|
|
1229
1236
|
)
|
|
1230
1237
|
] }),
|
|
1231
|
-
/* @__PURE__ */ t(
|
|
1232
|
-
/* @__PURE__ */
|
|
1233
|
-
ar(e, l) && /* @__PURE__ */
|
|
1234
|
-
/* @__PURE__ */ t(
|
|
1238
|
+
/* @__PURE__ */ t(Ke, {}),
|
|
1239
|
+
/* @__PURE__ */ i("div", { className: "space-y-1 px-2 py-1.5 text-[11px] text-muted-foreground", children: [
|
|
1240
|
+
ar(e, l) && /* @__PURE__ */ i("div", { className: "flex items-center gap-1.5", children: [
|
|
1241
|
+
/* @__PURE__ */ t(Lr, { className: "h-3 w-3" }),
|
|
1235
1242
|
/* @__PURE__ */ t("span", { className: "truncate", children: Et(e, l) })
|
|
1236
1243
|
] }),
|
|
1237
|
-
/* @__PURE__ */
|
|
1238
|
-
/* @__PURE__ */ t(
|
|
1244
|
+
/* @__PURE__ */ i("div", { className: "flex items-center gap-1.5", children: [
|
|
1245
|
+
/* @__PURE__ */ t(Ur, { className: "h-3 w-3" }),
|
|
1239
1246
|
/* @__PURE__ */ t("span", { children: rr(e.updatedAt) })
|
|
1240
1247
|
] })
|
|
1241
1248
|
] })
|
|
@@ -1247,17 +1254,17 @@ function dn({
|
|
|
1247
1254
|
}
|
|
1248
1255
|
);
|
|
1249
1256
|
}
|
|
1250
|
-
function
|
|
1251
|
-
const a =
|
|
1257
|
+
function Qs(e, r, o = !1) {
|
|
1258
|
+
const a = T((u) => u.dashboard), n = T(
|
|
1252
1259
|
(u) => u.isDashboardEditing
|
|
1253
|
-
),
|
|
1260
|
+
), s = T(
|
|
1254
1261
|
(u) => u.onDashboardLifecycleEvent
|
|
1255
1262
|
), d = j(() => {
|
|
1256
|
-
const u =
|
|
1263
|
+
const u = T.getState().dashboard;
|
|
1257
1264
|
return r || !e || !u || u.id !== e.id ? !1 : je(u) !== je(e);
|
|
1258
1265
|
}, [e, r]);
|
|
1259
|
-
Pt(() => (
|
|
1260
|
-
|
|
1266
|
+
Pt(() => (T.setState({ checkUnsavedDashboardChanges: d }), () => {
|
|
1267
|
+
T.getState().checkUnsavedDashboardChanges === d && T.setState({ checkUnsavedDashboardChanges: null });
|
|
1261
1268
|
}), [d]);
|
|
1262
1269
|
const c = oe(() => !o || r || !a || n && (!e || a.id !== e.id) ? null : {
|
|
1263
1270
|
dashboardId: a.id,
|
|
@@ -1270,21 +1277,21 @@ function Os(e, r, o = !1) {
|
|
|
1270
1277
|
a
|
|
1271
1278
|
]), l = ge(null);
|
|
1272
1279
|
return Pt(() => {
|
|
1273
|
-
if (!
|
|
1280
|
+
if (!s || !c) {
|
|
1274
1281
|
l.current = null;
|
|
1275
1282
|
return;
|
|
1276
1283
|
}
|
|
1277
1284
|
const u = l.current;
|
|
1278
|
-
(u == null ? void 0 : u.callback) ===
|
|
1279
|
-
callback:
|
|
1285
|
+
(u == null ? void 0 : u.callback) === s && u.dashboardId === c.dashboardId && u.dirty === c.dirty || (l.current = {
|
|
1286
|
+
callback: s,
|
|
1280
1287
|
dashboardId: c.dashboardId,
|
|
1281
1288
|
dirty: c.dirty
|
|
1282
|
-
},
|
|
1289
|
+
}, s({
|
|
1283
1290
|
type: "dashboard:dirty-state",
|
|
1284
1291
|
dashboardId: c.dashboardId,
|
|
1285
1292
|
payload: { dirty: c.dirty }
|
|
1286
1293
|
}));
|
|
1287
|
-
}, [c,
|
|
1294
|
+
}, [c, s]), d;
|
|
1288
1295
|
}
|
|
1289
1296
|
function un({
|
|
1290
1297
|
open: e,
|
|
@@ -1292,7 +1299,7 @@ function un({
|
|
|
1292
1299
|
isLibraryVisual: o,
|
|
1293
1300
|
currentVisualName: a,
|
|
1294
1301
|
isSaving: n = !1,
|
|
1295
|
-
destinationMode:
|
|
1302
|
+
destinationMode: s = "both",
|
|
1296
1303
|
onConfirm: d
|
|
1297
1304
|
}) {
|
|
1298
1305
|
const [c, l] = F(
|
|
@@ -1303,13 +1310,13 @@ function un({
|
|
|
1303
1310
|
o && a ? `Copy of ${a}` : a || ""
|
|
1304
1311
|
), h(""));
|
|
1305
1312
|
}, [e, o, a]);
|
|
1306
|
-
const p = !!c.trim(), m =
|
|
1313
|
+
const p = !!c.trim(), m = s === "local" ? {
|
|
1307
1314
|
saveToLibrary: !1,
|
|
1308
1315
|
saveToCurrentDashboard: !0,
|
|
1309
1316
|
badgeType: "local",
|
|
1310
1317
|
description: "Creates a local copy on the current dashboard.",
|
|
1311
1318
|
actionLabel: "Add to Dashboard (Local)"
|
|
1312
|
-
} :
|
|
1319
|
+
} : s === "library" ? {
|
|
1313
1320
|
saveToLibrary: !0,
|
|
1314
1321
|
saveToCurrentDashboard: !1,
|
|
1315
1322
|
badgeType: "library",
|
|
@@ -1329,12 +1336,12 @@ function un({
|
|
|
1329
1336
|
saveToCurrentDashboard: m.saveToCurrentDashboard
|
|
1330
1337
|
});
|
|
1331
1338
|
};
|
|
1332
|
-
return /* @__PURE__ */ t(Ue, { open: e, onOpenChange: r, children: /* @__PURE__ */
|
|
1333
|
-
/* @__PURE__ */
|
|
1334
|
-
/* @__PURE__ */
|
|
1339
|
+
return /* @__PURE__ */ t(Ue, { open: e, onOpenChange: r, children: /* @__PURE__ */ i(Ve, { className: "sm:max-w-[500px]", children: [
|
|
1340
|
+
/* @__PURE__ */ i(wt, { children: [
|
|
1341
|
+
/* @__PURE__ */ i(Re, { className: "flex items-center gap-2", children: [
|
|
1335
1342
|
/* @__PURE__ */ t("span", { children: "Save Visual As" }),
|
|
1336
1343
|
m.badgeType !== "local" && /* @__PURE__ */ t(
|
|
1337
|
-
|
|
1344
|
+
Ua,
|
|
1338
1345
|
{
|
|
1339
1346
|
type: m.badgeType,
|
|
1340
1347
|
showLabel: !0,
|
|
@@ -1344,9 +1351,9 @@ function un({
|
|
|
1344
1351
|
] }),
|
|
1345
1352
|
/* @__PURE__ */ t(Nt, { children: m.description })
|
|
1346
1353
|
] }),
|
|
1347
|
-
/* @__PURE__ */
|
|
1348
|
-
/* @__PURE__ */
|
|
1349
|
-
/* @__PURE__ */ t(
|
|
1354
|
+
/* @__PURE__ */ i("div", { className: "grid gap-4 py-4", children: [
|
|
1355
|
+
/* @__PURE__ */ i("div", { className: "grid gap-2", children: [
|
|
1356
|
+
/* @__PURE__ */ t(Le, { htmlFor: "name", children: "Name" }),
|
|
1350
1357
|
/* @__PURE__ */ t(
|
|
1351
1358
|
dt,
|
|
1352
1359
|
{
|
|
@@ -1358,10 +1365,10 @@ function un({
|
|
|
1358
1365
|
}
|
|
1359
1366
|
)
|
|
1360
1367
|
] }),
|
|
1361
|
-
/* @__PURE__ */
|
|
1362
|
-
/* @__PURE__ */ t(
|
|
1368
|
+
/* @__PURE__ */ i("div", { className: "grid gap-2", children: [
|
|
1369
|
+
/* @__PURE__ */ t(Le, { htmlFor: "description", children: "Description (optional)" }),
|
|
1363
1370
|
/* @__PURE__ */ t(
|
|
1364
|
-
|
|
1371
|
+
Vr,
|
|
1365
1372
|
{
|
|
1366
1373
|
id: "description",
|
|
1367
1374
|
value: u,
|
|
@@ -1373,7 +1380,7 @@ function un({
|
|
|
1373
1380
|
)
|
|
1374
1381
|
] })
|
|
1375
1382
|
] }),
|
|
1376
|
-
/* @__PURE__ */
|
|
1383
|
+
/* @__PURE__ */ i(Rr, { children: [
|
|
1377
1384
|
/* @__PURE__ */ t(
|
|
1378
1385
|
U,
|
|
1379
1386
|
{
|
|
@@ -1383,7 +1390,7 @@ function un({
|
|
|
1383
1390
|
children: "Cancel"
|
|
1384
1391
|
}
|
|
1385
1392
|
),
|
|
1386
|
-
/* @__PURE__ */
|
|
1393
|
+
/* @__PURE__ */ i(U, { onClick: g, disabled: !p || n, children: [
|
|
1387
1394
|
n && /* @__PURE__ */ t(ie, { className: "mr-2 h-4 w-4 animate-spin" }),
|
|
1388
1395
|
m.actionLabel
|
|
1389
1396
|
] })
|
|
@@ -1393,20 +1400,20 @@ function un({
|
|
|
1393
1400
|
function kt(e) {
|
|
1394
1401
|
var r;
|
|
1395
1402
|
for (const o of e.cards)
|
|
1396
|
-
if (o.type === "matrixTable" && !
|
|
1397
|
-
return
|
|
1403
|
+
if (o.type === "matrixTable" && !Na.safeParse((r = o.config) == null ? void 0 : r.matrix).success)
|
|
1404
|
+
return V.error("Matrix requires at least one row field, one metric, and valid settings."), !1;
|
|
1398
1405
|
return !0;
|
|
1399
1406
|
}
|
|
1400
1407
|
function it({
|
|
1401
1408
|
className: e,
|
|
1402
1409
|
variant: r = "outline"
|
|
1403
1410
|
}) {
|
|
1404
|
-
const o = ee((
|
|
1411
|
+
const o = ee((s) => s.onSave), { getUpdatedFrame: a } = Ee();
|
|
1405
1412
|
function n() {
|
|
1406
|
-
const
|
|
1407
|
-
kt(
|
|
1413
|
+
const s = a();
|
|
1414
|
+
kt(s) && (o == null || o(s));
|
|
1408
1415
|
}
|
|
1409
|
-
return /* @__PURE__ */
|
|
1416
|
+
return /* @__PURE__ */ i(
|
|
1410
1417
|
U,
|
|
1411
1418
|
{
|
|
1412
1419
|
onClick: n,
|
|
@@ -1424,7 +1431,7 @@ function hn({
|
|
|
1424
1431
|
className: e,
|
|
1425
1432
|
variant: r = "default"
|
|
1426
1433
|
}) {
|
|
1427
|
-
const o =
|
|
1434
|
+
const o = Je(), [a, n] = F(!1), { setIsVisualEditing: s } = pe(), { getUpdatedFrame: d } = Ee(), c = et(), l = ee((p) => p.frame), u = qt();
|
|
1428
1435
|
return /* @__PURE__ */ t(
|
|
1429
1436
|
U,
|
|
1430
1437
|
{
|
|
@@ -1434,7 +1441,7 @@ function hn({
|
|
|
1434
1441
|
return;
|
|
1435
1442
|
const m = (l == null ? void 0 : l.visualId) || (c == null ? void 0 : c.id);
|
|
1436
1443
|
if (!m) {
|
|
1437
|
-
|
|
1444
|
+
V.error("No visual to save");
|
|
1438
1445
|
return;
|
|
1439
1446
|
}
|
|
1440
1447
|
n(!0), u.mutate(
|
|
@@ -1446,13 +1453,13 @@ function hn({
|
|
|
1446
1453
|
},
|
|
1447
1454
|
{
|
|
1448
1455
|
onSuccess: () => {
|
|
1449
|
-
n(!1),
|
|
1456
|
+
n(!1), V.success("Visual updated successfully"), o.invalidateQueries({
|
|
1450
1457
|
queryKey: ["resource-by-id", "visual", m],
|
|
1451
1458
|
exact: !0
|
|
1452
1459
|
});
|
|
1453
1460
|
},
|
|
1454
1461
|
onError: () => {
|
|
1455
|
-
n(!1),
|
|
1462
|
+
n(!1), V.error("Failed to update visual");
|
|
1456
1463
|
}
|
|
1457
1464
|
}
|
|
1458
1465
|
);
|
|
@@ -1460,11 +1467,11 @@ function hn({
|
|
|
1460
1467
|
className: e,
|
|
1461
1468
|
size: "xs",
|
|
1462
1469
|
variant: r,
|
|
1463
|
-
children: a ? /* @__PURE__ */
|
|
1470
|
+
children: a ? /* @__PURE__ */ i($, { children: [
|
|
1464
1471
|
/* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin" }),
|
|
1465
1472
|
"Saving"
|
|
1466
|
-
] }) : /* @__PURE__ */
|
|
1467
|
-
/* @__PURE__ */ t(
|
|
1473
|
+
] }) : /* @__PURE__ */ i($, { children: [
|
|
1474
|
+
/* @__PURE__ */ t(Zt, { className: "h-3.5 w-3.5" }),
|
|
1468
1475
|
"Save to Library"
|
|
1469
1476
|
] })
|
|
1470
1477
|
}
|
|
@@ -1473,18 +1480,18 @@ function hn({
|
|
|
1473
1480
|
function mn({
|
|
1474
1481
|
className: e
|
|
1475
1482
|
}) {
|
|
1476
|
-
const r =
|
|
1483
|
+
const r = Je(), [o, a] = F(!1), n = et(), s = ee((f) => f.frame), d = T((f) => f.selectedSheetId), c = T((f) => f.dashboard), { updateFrame: l, setIsVisualEditing: u } = pe(), { getUpdatedFrame: h } = Ee(), p = qt(), m = St();
|
|
1477
1484
|
return /* @__PURE__ */ t(
|
|
1478
1485
|
U,
|
|
1479
1486
|
{
|
|
1480
1487
|
onClick: async () => {
|
|
1481
1488
|
if (!d) {
|
|
1482
|
-
|
|
1489
|
+
V.error("No sheet selected");
|
|
1483
1490
|
return;
|
|
1484
1491
|
}
|
|
1485
|
-
const f = (
|
|
1492
|
+
const f = (s == null ? void 0 : s.visualId) || (n == null ? void 0 : n.id);
|
|
1486
1493
|
if (!f) {
|
|
1487
|
-
|
|
1494
|
+
V.error("No visual to update");
|
|
1488
1495
|
return;
|
|
1489
1496
|
}
|
|
1490
1497
|
a(!0);
|
|
@@ -1498,7 +1505,7 @@ function mn({
|
|
|
1498
1505
|
...b,
|
|
1499
1506
|
visualId: f
|
|
1500
1507
|
// Keep the link to library visual
|
|
1501
|
-
}, v =
|
|
1508
|
+
}, v = Ye(c, k.id), D = await m(k, {
|
|
1502
1509
|
previousFrame: v
|
|
1503
1510
|
});
|
|
1504
1511
|
await p.mutateAsync({
|
|
@@ -1508,11 +1515,11 @@ function mn({
|
|
|
1508
1515
|
}
|
|
1509
1516
|
}), l(d, k, {
|
|
1510
1517
|
semanticExecutionPayload: D
|
|
1511
|
-
}), r.invalidateQueries({ queryKey: ["visuals"] }), r.invalidateQueries({ queryKey: ["visual", f] }),
|
|
1518
|
+
}), r.invalidateQueries({ queryKey: ["visuals"] }), r.invalidateQueries({ queryKey: ["visual", f] }), V.success("Saved to library and applied locally"), setTimeout(() => {
|
|
1512
1519
|
u(!1);
|
|
1513
1520
|
}, 300);
|
|
1514
1521
|
} catch (b) {
|
|
1515
|
-
console.error("Failed to save and apply:", b),
|
|
1522
|
+
console.error("Failed to save and apply:", b), V.error(
|
|
1516
1523
|
b instanceof Error ? b.message : "Failed to save and apply changes"
|
|
1517
1524
|
);
|
|
1518
1525
|
} finally {
|
|
@@ -1523,26 +1530,26 @@ function mn({
|
|
|
1523
1530
|
size: "xs",
|
|
1524
1531
|
variant: "default",
|
|
1525
1532
|
disabled: o,
|
|
1526
|
-
children: o ? /* @__PURE__ */
|
|
1533
|
+
children: o ? /* @__PURE__ */ i($, { children: [
|
|
1527
1534
|
/* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin" }),
|
|
1528
1535
|
"Saving..."
|
|
1529
|
-
] }) : /* @__PURE__ */
|
|
1530
|
-
/* @__PURE__ */ t(
|
|
1536
|
+
] }) : /* @__PURE__ */ i($, { children: [
|
|
1537
|
+
/* @__PURE__ */ t(Zt, { className: "h-3.5 w-3.5" }),
|
|
1531
1538
|
"Save & Apply"
|
|
1532
1539
|
] })
|
|
1533
1540
|
}
|
|
1534
1541
|
);
|
|
1535
1542
|
}
|
|
1536
1543
|
function lt({ className: e }) {
|
|
1537
|
-
const { setTempQueryData: r, setSqlGen: o } =
|
|
1544
|
+
const { setTempQueryData: r, setSqlGen: o } = tt(), a = Je(), n = ee((c) => c.tempQueryData), s = ee((c) => c.onClose);
|
|
1538
1545
|
function d() {
|
|
1539
1546
|
if (n) {
|
|
1540
1547
|
const { queryKey: c, queryData: l } = n;
|
|
1541
1548
|
c && l && a.setQueryData(c, l);
|
|
1542
1549
|
}
|
|
1543
|
-
o({}),
|
|
1550
|
+
o({}), s == null || s();
|
|
1544
1551
|
}
|
|
1545
|
-
return /* @__PURE__ */
|
|
1552
|
+
return /* @__PURE__ */ i(
|
|
1546
1553
|
U,
|
|
1547
1554
|
{
|
|
1548
1555
|
onClick: d,
|
|
@@ -1557,10 +1564,10 @@ function lt({ className: e }) {
|
|
|
1557
1564
|
);
|
|
1558
1565
|
}
|
|
1559
1566
|
function pn() {
|
|
1560
|
-
const [e, r] = F(!1), [o, a] = F(!1), [n,
|
|
1567
|
+
const [e, r] = F(!1), [o, a] = F(!1), [n, s] = F(null), [d, c] = F(null), l = ee((S) => S.frame), u = ee((S) => S.card), h = et(), p = T((S) => S.selectedSheetId), m = T((S) => S.dashboard), { getUpdatedFrame: g } = Ee(), { selectVisual: f } = mt(), { addFrame: b, setSelectedFrameId: k, setIsVisualEditing: v } = pe(), D = St(), E = !!(l != null && l.visualId), N = (() => {
|
|
1561
1568
|
var S, x;
|
|
1562
1569
|
return ((S = l == null ? void 0 : l.cards) == null ? void 0 : S.length) === 1 && ((x = l.cards[0]) != null && x.title) ? l.cards[0].title : h != null && h.title ? h.title : (u == null ? void 0 : u.title) || "Untitled Visual";
|
|
1563
|
-
})(), y =
|
|
1570
|
+
})(), y = Br((S) => {
|
|
1564
1571
|
S != null && S.id && (f(S), o && n && d && p && (async () => {
|
|
1565
1572
|
try {
|
|
1566
1573
|
const x = {
|
|
@@ -1570,14 +1577,14 @@ function pn() {
|
|
|
1570
1577
|
// Link to the newly created library visual
|
|
1571
1578
|
};
|
|
1572
1579
|
b(p, x, {
|
|
1573
|
-
|
|
1580
|
+
placement: "end",
|
|
1574
1581
|
semanticExecutionPayload: d
|
|
1575
|
-
}), k(x.id), a(!1),
|
|
1582
|
+
}), k(x.id), a(!1), s(null), c(null), v(!1);
|
|
1576
1583
|
} catch (x) {
|
|
1577
1584
|
console.error(
|
|
1578
1585
|
"Failed to promote semantic metadata for saved visual:",
|
|
1579
1586
|
x
|
|
1580
|
-
),
|
|
1587
|
+
), V.error(
|
|
1581
1588
|
x instanceof Error ? x.message : "Failed to prepare semantic metadata for the saved visual"
|
|
1582
1589
|
);
|
|
1583
1590
|
}
|
|
@@ -1588,7 +1595,7 @@ function pn() {
|
|
|
1588
1595
|
setSaveAsDialogOpen: r,
|
|
1589
1596
|
handleSaveAs: async (S) => {
|
|
1590
1597
|
if (!p) {
|
|
1591
|
-
|
|
1598
|
+
V.error("No sheet selected");
|
|
1592
1599
|
return;
|
|
1593
1600
|
}
|
|
1594
1601
|
const x = g(), I = x.cards.length === 1 ? {
|
|
@@ -1604,18 +1611,18 @@ function pn() {
|
|
|
1604
1611
|
if (S.saveToCurrentDashboard)
|
|
1605
1612
|
try {
|
|
1606
1613
|
W = await D(I, {
|
|
1607
|
-
previousFrame:
|
|
1614
|
+
previousFrame: Ye(m, I.id)
|
|
1608
1615
|
});
|
|
1609
1616
|
} catch (M) {
|
|
1610
1617
|
console.error(
|
|
1611
1618
|
"Failed to prepare semantic metadata before saving visual:",
|
|
1612
1619
|
M
|
|
1613
|
-
),
|
|
1620
|
+
), V.error(
|
|
1614
1621
|
M instanceof Error ? M.message : "Failed to prepare semantic metadata for the saved visual"
|
|
1615
1622
|
);
|
|
1616
1623
|
return;
|
|
1617
1624
|
}
|
|
1618
|
-
a(S.saveToCurrentDashboard),
|
|
1625
|
+
a(S.saveToCurrentDashboard), s(I), c(W);
|
|
1619
1626
|
const P = {
|
|
1620
1627
|
title: S.name,
|
|
1621
1628
|
description: S.description,
|
|
@@ -1634,14 +1641,14 @@ function pn() {
|
|
|
1634
1641
|
};
|
|
1635
1642
|
try {
|
|
1636
1643
|
const P = await D(I, {
|
|
1637
|
-
previousFrame:
|
|
1644
|
+
previousFrame: Ye(m, I.id)
|
|
1638
1645
|
});
|
|
1639
1646
|
b(p, W, {
|
|
1640
|
-
|
|
1647
|
+
placement: "end",
|
|
1641
1648
|
semanticExecutionPayload: P
|
|
1642
|
-
}), k(W.id),
|
|
1649
|
+
}), k(W.id), V.success("Visual saved to dashboard"), r(!1), v(!1);
|
|
1643
1650
|
} catch (P) {
|
|
1644
|
-
console.error("Failed to save visual to dashboard:", P),
|
|
1651
|
+
console.error("Failed to save visual to dashboard:", P), V.error(
|
|
1645
1652
|
P instanceof Error ? P.message : "Failed to prepare semantic metadata for the visual"
|
|
1646
1653
|
);
|
|
1647
1654
|
}
|
|
@@ -1652,8 +1659,8 @@ function pn() {
|
|
|
1652
1659
|
isSaving: y.isPending
|
|
1653
1660
|
};
|
|
1654
1661
|
}
|
|
1655
|
-
function
|
|
1656
|
-
const { isInspectionMode: r } =
|
|
1662
|
+
function Gs(e = {}) {
|
|
1663
|
+
const { isInspectionMode: r } = Mr(), o = ee((P) => P.frame), a = ee((P) => P.editorContext), n = _r((P) => P.selectedVisual), s = T((P) => P.selectedFrameId), d = T((P) => P.selectedSheetId), c = T((P) => P.dashboard), { setIsVisualEditing: l, updateFrame: u } = pe(), [h, p] = F(!1), [m, g] = F("both"), f = St(), b = (a == null ? void 0 : a.type) === "documentSection", k = !!(o != null && o.visualId || n != null && n.id), v = !!(o != null && o.visualId && s), D = k && !v, {
|
|
1657
1664
|
saveAsDialogOpen: E,
|
|
1658
1665
|
setSaveAsDialogOpen: N,
|
|
1659
1666
|
handleSaveAs: y,
|
|
@@ -1662,7 +1669,7 @@ function $s(e = {}) {
|
|
|
1662
1669
|
isSaving: x
|
|
1663
1670
|
} = pn(), { getUpdatedFrame: B } = Ee();
|
|
1664
1671
|
if (r)
|
|
1665
|
-
return /* @__PURE__ */
|
|
1672
|
+
return /* @__PURE__ */ i($, { children: [
|
|
1666
1673
|
/* @__PURE__ */ t(
|
|
1667
1674
|
it,
|
|
1668
1675
|
{
|
|
@@ -1673,13 +1680,13 @@ function $s(e = {}) {
|
|
|
1673
1680
|
/* @__PURE__ */ t(lt, {})
|
|
1674
1681
|
] });
|
|
1675
1682
|
if (b)
|
|
1676
|
-
return /* @__PURE__ */
|
|
1683
|
+
return /* @__PURE__ */ i($, { children: [
|
|
1677
1684
|
/* @__PURE__ */ t(it, { className: "rounded-control", variant: "default" }),
|
|
1678
1685
|
/* @__PURE__ */ t(lt, {})
|
|
1679
1686
|
] });
|
|
1680
1687
|
const I = async () => {
|
|
1681
1688
|
if (!d) {
|
|
1682
|
-
|
|
1689
|
+
V.error("No sheet selected");
|
|
1683
1690
|
return;
|
|
1684
1691
|
}
|
|
1685
1692
|
if (h) return;
|
|
@@ -1687,7 +1694,7 @@ function $s(e = {}) {
|
|
|
1687
1694
|
const M = {
|
|
1688
1695
|
...B(),
|
|
1689
1696
|
visualId: void 0
|
|
1690
|
-
}, Z =
|
|
1697
|
+
}, Z = Ye(c, M.id);
|
|
1691
1698
|
try {
|
|
1692
1699
|
const K = await f(M, {
|
|
1693
1700
|
previousFrame: Z
|
|
@@ -1696,23 +1703,23 @@ function $s(e = {}) {
|
|
|
1696
1703
|
semanticExecutionPayload: K
|
|
1697
1704
|
});
|
|
1698
1705
|
} catch (K) {
|
|
1699
|
-
console.error("Failed to apply local semantic metadata:", K), p(!1),
|
|
1706
|
+
console.error("Failed to apply local semantic metadata:", K), p(!1), V.error(
|
|
1700
1707
|
K instanceof Error ? K.message : "Failed to prepare semantic metadata for this visual"
|
|
1701
1708
|
);
|
|
1702
1709
|
return;
|
|
1703
1710
|
}
|
|
1704
1711
|
setTimeout(() => {
|
|
1705
|
-
p(!1),
|
|
1712
|
+
p(!1), V.success("Changes applied. Visual is now local to this dashboard"), l(!1);
|
|
1706
1713
|
}, 300);
|
|
1707
1714
|
}, W = (P) => {
|
|
1708
1715
|
g(P), N(!0);
|
|
1709
1716
|
};
|
|
1710
|
-
return /* @__PURE__ */
|
|
1711
|
-
/* @__PURE__ */
|
|
1717
|
+
return /* @__PURE__ */ i($, { children: [
|
|
1718
|
+
/* @__PURE__ */ i("div", { className: "inline-flex items-center overflow-hidden rounded-control", children: [
|
|
1712
1719
|
!k && /* @__PURE__ */ t(it, { className: "!rounded-none", variant: "default" }),
|
|
1713
1720
|
k && D && /* @__PURE__ */ t(hn, { className: "!rounded-none", variant: "default" }),
|
|
1714
1721
|
k && v && /* @__PURE__ */ t(mn, { className: "!rounded-none" }),
|
|
1715
|
-
/* @__PURE__ */
|
|
1722
|
+
/* @__PURE__ */ i(rt, { modal: !1, children: [
|
|
1716
1723
|
/* @__PURE__ */ t(at, { asChild: !0, children: /* @__PURE__ */ t(
|
|
1717
1724
|
U,
|
|
1718
1725
|
{
|
|
@@ -1721,18 +1728,18 @@ function $s(e = {}) {
|
|
|
1721
1728
|
className: "w-7 !rounded-none border-l border-primary-foreground/20 px-0",
|
|
1722
1729
|
"aria-label": "Open visual save options",
|
|
1723
1730
|
disabled: x || h,
|
|
1724
|
-
children: /* @__PURE__ */ t(
|
|
1731
|
+
children: /* @__PURE__ */ t(Yt, { className: "h-3.5 w-3.5" })
|
|
1725
1732
|
}
|
|
1726
1733
|
) }),
|
|
1727
|
-
/* @__PURE__ */
|
|
1734
|
+
/* @__PURE__ */ i(
|
|
1728
1735
|
nt,
|
|
1729
1736
|
{
|
|
1730
1737
|
align: "end",
|
|
1731
1738
|
className: "min-w-[220px] rounded-control border border-border/60 p-1 shadow-sm",
|
|
1732
1739
|
children: [
|
|
1733
|
-
v && /* @__PURE__ */
|
|
1734
|
-
/* @__PURE__ */
|
|
1735
|
-
|
|
1740
|
+
v && /* @__PURE__ */ i($, { children: [
|
|
1741
|
+
/* @__PURE__ */ i(
|
|
1742
|
+
X,
|
|
1736
1743
|
{
|
|
1737
1744
|
onClick: I,
|
|
1738
1745
|
disabled: h,
|
|
@@ -1742,10 +1749,10 @@ function $s(e = {}) {
|
|
|
1742
1749
|
]
|
|
1743
1750
|
}
|
|
1744
1751
|
),
|
|
1745
|
-
/* @__PURE__ */ t(
|
|
1752
|
+
/* @__PURE__ */ t(Ke, {})
|
|
1746
1753
|
] }),
|
|
1747
|
-
/* @__PURE__ */
|
|
1748
|
-
|
|
1754
|
+
/* @__PURE__ */ i(
|
|
1755
|
+
X,
|
|
1749
1756
|
{
|
|
1750
1757
|
onClick: () => W("local"),
|
|
1751
1758
|
disabled: x,
|
|
@@ -1755,19 +1762,19 @@ function $s(e = {}) {
|
|
|
1755
1762
|
]
|
|
1756
1763
|
}
|
|
1757
1764
|
),
|
|
1758
|
-
/* @__PURE__ */
|
|
1759
|
-
|
|
1765
|
+
/* @__PURE__ */ i(
|
|
1766
|
+
X,
|
|
1760
1767
|
{
|
|
1761
1768
|
onClick: () => W("library"),
|
|
1762
1769
|
disabled: x,
|
|
1763
1770
|
children: [
|
|
1764
|
-
/* @__PURE__ */ t(
|
|
1771
|
+
/* @__PURE__ */ t(Va, { className: "h-3.5 w-3.5" }),
|
|
1765
1772
|
"Save as Library Visual"
|
|
1766
1773
|
]
|
|
1767
1774
|
}
|
|
1768
1775
|
),
|
|
1769
|
-
/* @__PURE__ */
|
|
1770
|
-
|
|
1776
|
+
/* @__PURE__ */ i(
|
|
1777
|
+
X,
|
|
1771
1778
|
{
|
|
1772
1779
|
onClick: () => W("both"),
|
|
1773
1780
|
disabled: x,
|
|
@@ -1799,19 +1806,19 @@ function $s(e = {}) {
|
|
|
1799
1806
|
)
|
|
1800
1807
|
] });
|
|
1801
1808
|
}
|
|
1802
|
-
function
|
|
1803
|
-
const r = ee((h) => h.isDevMode), o = ee((h) => h.card.type), a =
|
|
1804
|
-
if (!a || !d || !
|
|
1809
|
+
function Ks({ className: e }) {
|
|
1810
|
+
const r = ee((h) => h.isDevMode), o = ee((h) => h.card.type), a = T((h) => h.isVisualEditing), { setIsDevMode: n } = tt(), { config: s } = pr(Or).tokenProps, d = (s == null ? void 0 : s.showAdvancedMode) !== !1;
|
|
1811
|
+
if (!a || !d || !fr(o))
|
|
1805
1812
|
return null;
|
|
1806
1813
|
const c = r ? Ha : Wa, l = r ? "Visual editor" : "SQL editor", u = r ? "Switch to visual editor" : "Switch to SQL editor";
|
|
1807
|
-
return /* @__PURE__ */
|
|
1814
|
+
return /* @__PURE__ */ i(
|
|
1808
1815
|
"button",
|
|
1809
1816
|
{
|
|
1810
1817
|
type: "button",
|
|
1811
1818
|
"aria-label": u,
|
|
1812
1819
|
title: u,
|
|
1813
1820
|
onClick: () => n(!r),
|
|
1814
|
-
className:
|
|
1821
|
+
className: Y(
|
|
1815
1822
|
"inline-flex h-7 items-center gap-1.5 rounded-control border border-input bg-background px-2 text-[12px] font-medium text-foreground transition-colors hover:bg-muted/40 focus-visible:border-ring focus-visible:outline-none",
|
|
1816
1823
|
e
|
|
1817
1824
|
),
|
|
@@ -1822,13 +1829,13 @@ function zs({ className: e }) {
|
|
|
1822
1829
|
}
|
|
1823
1830
|
);
|
|
1824
1831
|
}
|
|
1825
|
-
function
|
|
1832
|
+
function Xs({
|
|
1826
1833
|
open: e,
|
|
1827
1834
|
onOpenChange: r,
|
|
1828
1835
|
onSave: o,
|
|
1829
1836
|
onDiscard: a,
|
|
1830
1837
|
isSaving: n,
|
|
1831
|
-
title:
|
|
1838
|
+
title: s = "Unsaved changes",
|
|
1832
1839
|
description: d = "You have unsaved changes to this dashboard. What would you like to do?",
|
|
1833
1840
|
cancelLabel: c = "Cancel",
|
|
1834
1841
|
discardLabel: l = "Discard changes",
|
|
@@ -1836,12 +1843,12 @@ function js({
|
|
|
1836
1843
|
}) {
|
|
1837
1844
|
return /* @__PURE__ */ t(pt, { open: e, onOpenChange: (p) => {
|
|
1838
1845
|
!p && n || r(p);
|
|
1839
|
-
}, children: /* @__PURE__ */
|
|
1840
|
-
/* @__PURE__ */
|
|
1841
|
-
/* @__PURE__ */ t(bt, { children:
|
|
1846
|
+
}, children: /* @__PURE__ */ i(ft, { children: [
|
|
1847
|
+
/* @__PURE__ */ i(gt, { children: [
|
|
1848
|
+
/* @__PURE__ */ t(bt, { children: s }),
|
|
1842
1849
|
/* @__PURE__ */ t(vt, { children: d })
|
|
1843
1850
|
] }),
|
|
1844
|
-
/* @__PURE__ */
|
|
1851
|
+
/* @__PURE__ */ i(xt, { children: [
|
|
1845
1852
|
/* @__PURE__ */ t(
|
|
1846
1853
|
U,
|
|
1847
1854
|
{
|
|
@@ -1855,13 +1862,29 @@ function js({
|
|
|
1855
1862
|
}
|
|
1856
1863
|
),
|
|
1857
1864
|
/* @__PURE__ */ t(yt, { disabled: n, children: c }),
|
|
1858
|
-
/* @__PURE__ */ t(U, { type: "button", size: "xs", onClick: o, disabled: n, children: n ? /* @__PURE__ */
|
|
1865
|
+
/* @__PURE__ */ t(U, { type: "button", size: "xs", onClick: o, disabled: n, children: n ? /* @__PURE__ */ i($, { children: [
|
|
1859
1866
|
/* @__PURE__ */ t(ie, { className: "mr-2 h-3.5 w-3.5 animate-spin" }),
|
|
1860
1867
|
"Saving..."
|
|
1861
1868
|
] }) : u })
|
|
1862
1869
|
] })
|
|
1863
1870
|
] }) });
|
|
1864
1871
|
}
|
|
1872
|
+
async function Ys(e) {
|
|
1873
|
+
var s, d;
|
|
1874
|
+
const r = (d = (s = T.getState()) == null ? void 0 : s.authToken) == null ? void 0 : d.accessToken;
|
|
1875
|
+
if (!r)
|
|
1876
|
+
return;
|
|
1877
|
+
const o = `${e}/v1/invalidate-token`, a = await fetch(o, {
|
|
1878
|
+
method: "POST",
|
|
1879
|
+
headers: {
|
|
1880
|
+
Authorization: `Bearer ${r}`
|
|
1881
|
+
}
|
|
1882
|
+
});
|
|
1883
|
+
if (!a.ok)
|
|
1884
|
+
throw new Error("Failed to invalidate token");
|
|
1885
|
+
const n = await a.json();
|
|
1886
|
+
return console.log("invalidateToken", n), n;
|
|
1887
|
+
}
|
|
1865
1888
|
function At(e, r) {
|
|
1866
1889
|
return {
|
|
1867
1890
|
id: e.id,
|
|
@@ -1885,9 +1908,9 @@ const fn = 15e3;
|
|
|
1885
1908
|
function ye(e) {
|
|
1886
1909
|
const r = new AbortController();
|
|
1887
1910
|
let o;
|
|
1888
|
-
const a = new Promise((n,
|
|
1911
|
+
const a = new Promise((n, s) => {
|
|
1889
1912
|
o = setTimeout(() => {
|
|
1890
|
-
r.abort(),
|
|
1913
|
+
r.abort(), s(new Error("Export request timed out."));
|
|
1891
1914
|
}, fn);
|
|
1892
1915
|
});
|
|
1893
1916
|
return Promise.race([e(r.signal), a]).finally(() => clearTimeout(o));
|
|
@@ -1900,13 +1923,13 @@ function Sn(e) {
|
|
|
1900
1923
|
const r = Date.now() - e.getTime();
|
|
1901
1924
|
return r < xn ? gn : r < yn ? bn : vn;
|
|
1902
1925
|
}
|
|
1903
|
-
function
|
|
1926
|
+
function Zs() {
|
|
1904
1927
|
const { authToken: e, tokenProps: r } = Be(), o = xe((m) => m.activeExports), [a, n] = F(
|
|
1905
1928
|
typeof document < "u" ? !document.hidden : !0
|
|
1906
|
-
),
|
|
1929
|
+
), s = ge(null), d = ge(!1), c = ge(void 0), l = r == null ? void 0 : r.apiServiceUrl, u = e == null ? void 0 : e.accessToken, h = j(() => {
|
|
1907
1930
|
const m = xe.getState().activeExports;
|
|
1908
1931
|
return Array.from(m.values()).filter(
|
|
1909
|
-
(g) =>
|
|
1932
|
+
(g) => Te(g.status)
|
|
1910
1933
|
);
|
|
1911
1934
|
}, []);
|
|
1912
1935
|
J(() => {
|
|
@@ -1935,7 +1958,7 @@ function Ws() {
|
|
|
1935
1958
|
let y;
|
|
1936
1959
|
if (N.status === "completed")
|
|
1937
1960
|
try {
|
|
1938
|
-
y = await ye((w) =>
|
|
1961
|
+
y = await ye((w) => Xe(l, u, E.id, w));
|
|
1939
1962
|
} catch (w) {
|
|
1940
1963
|
console.error(
|
|
1941
1964
|
`[useExportPolling] Failed to get download URL for ${E.id}:`,
|
|
@@ -1952,12 +1975,12 @@ function Ws() {
|
|
|
1952
1975
|
})
|
|
1953
1976
|
), { updateExport: b, applyServerStatus: k } = xe.getState().actions, v = (E) => {
|
|
1954
1977
|
const N = xe.getState().activeExports.get(E);
|
|
1955
|
-
return !!N &&
|
|
1978
|
+
return !!N && Te(N.status);
|
|
1956
1979
|
};
|
|
1957
1980
|
m.forEach((E, N) => {
|
|
1958
1981
|
if (!v(E.id)) return;
|
|
1959
1982
|
const y = f[N], w = y.status === "fulfilled" ? y.value : null;
|
|
1960
|
-
if (g > Nn(E) && !(w && !
|
|
1983
|
+
if (g > Nn(E) && !(w && !Te(w.status))) {
|
|
1961
1984
|
b(E.id, {
|
|
1962
1985
|
status: "failed",
|
|
1963
1986
|
error: Q.unconfirmed,
|
|
@@ -1973,7 +1996,7 @@ function Ws() {
|
|
|
1973
1996
|
(y, w) => w.startedAt < y ? w.startedAt : y,
|
|
1974
1997
|
D[0].startedAt
|
|
1975
1998
|
), N = Sn(E);
|
|
1976
|
-
|
|
1999
|
+
s.current && clearTimeout(s.current), s.current = setTimeout(() => {
|
|
1977
2000
|
var y;
|
|
1978
2001
|
(y = c.current) == null || y.call(c);
|
|
1979
2002
|
}, N);
|
|
@@ -1990,22 +2013,22 @@ function Ws() {
|
|
|
1990
2013
|
const m = h();
|
|
1991
2014
|
a && m.length > 0 && !d.current && (d.current = !0, (g = c.current) == null || g.call(c));
|
|
1992
2015
|
}, [a, h]), J(() => {
|
|
1993
|
-
!a &&
|
|
2016
|
+
!a && s.current && (clearTimeout(s.current), s.current = null, d.current = !1);
|
|
1994
2017
|
}, [a]), J(() => () => {
|
|
1995
|
-
|
|
2018
|
+
s.current && (clearTimeout(s.current), s.current = null);
|
|
1996
2019
|
}, []), {
|
|
1997
2020
|
isPolling: d.current,
|
|
1998
2021
|
isTabVisible: a,
|
|
1999
2022
|
inProgressCount: h().length
|
|
2000
2023
|
};
|
|
2001
2024
|
}
|
|
2002
|
-
function
|
|
2003
|
-
const { authToken: e, tokenProps: r } = Be(), o = xe((c) => c.activeExports), { recoverExport: a } = Qt(), n = ge(!1),
|
|
2025
|
+
function Js() {
|
|
2026
|
+
const { authToken: e, tokenProps: r } = Be(), o = xe((c) => c.activeExports), { recoverExport: a } = Qt(), n = ge(!1), s = r == null ? void 0 : r.apiServiceUrl, d = e == null ? void 0 : e.accessToken;
|
|
2004
2027
|
J(() => {
|
|
2005
|
-
if (n.current || !
|
|
2028
|
+
if (n.current || !s || !d) return;
|
|
2006
2029
|
(async () => {
|
|
2007
2030
|
try {
|
|
2008
|
-
const { exports: l } = await ye((u) =>
|
|
2031
|
+
const { exports: l } = await ye((u) => $r(s, d, {
|
|
2009
2032
|
status: ["pending", "processing", "chunking", "compacting", "completed", "failed", "cancelled"],
|
|
2010
2033
|
limit: 20
|
|
2011
2034
|
// Limit to recent exports
|
|
@@ -2015,7 +2038,7 @@ function qs() {
|
|
|
2015
2038
|
let h;
|
|
2016
2039
|
if (u.status === "completed")
|
|
2017
2040
|
try {
|
|
2018
|
-
h = await ye((m) =>
|
|
2041
|
+
h = await ye((m) => Xe(s, d, u.id, m));
|
|
2019
2042
|
} catch (m) {
|
|
2020
2043
|
console.error(
|
|
2021
2044
|
`[useExportRecovery] Failed to get download URL for ${u.id}:`,
|
|
@@ -2035,18 +2058,18 @@ function qs() {
|
|
|
2035
2058
|
console.error("[useExportRecovery] Failed to recover exports:", l), n.current = !0;
|
|
2036
2059
|
}
|
|
2037
2060
|
})();
|
|
2038
|
-
}, [
|
|
2061
|
+
}, [s, d, a, o]);
|
|
2039
2062
|
}
|
|
2040
2063
|
function Dn(e) {
|
|
2041
|
-
return e.title ? e.title :
|
|
2064
|
+
return e.title ? e.title : Te(
|
|
2042
2065
|
e.status
|
|
2043
2066
|
) ? "Export in progress..." : e.status === "completed" ? "Export completed" : e.status === "failed" ? "Export failed" : "Export";
|
|
2044
2067
|
}
|
|
2045
2068
|
function En(e, r = []) {
|
|
2046
2069
|
let o = [];
|
|
2047
|
-
function a(
|
|
2070
|
+
function a(s, d) {
|
|
2048
2071
|
const c = ue.createContext(d);
|
|
2049
|
-
c.displayName =
|
|
2072
|
+
c.displayName = s + "Context";
|
|
2050
2073
|
const l = o.length;
|
|
2051
2074
|
o = [...o, d];
|
|
2052
2075
|
const u = (p) => {
|
|
@@ -2054,20 +2077,20 @@ function En(e, r = []) {
|
|
|
2054
2077
|
const { scope: m, children: g, ...f } = p, b = ((v = m == null ? void 0 : m[e]) == null ? void 0 : v[l]) || c, k = ue.useMemo(() => f, Object.values(f));
|
|
2055
2078
|
return /* @__PURE__ */ t(b.Provider, { value: k, children: g });
|
|
2056
2079
|
};
|
|
2057
|
-
u.displayName =
|
|
2080
|
+
u.displayName = s + "Provider";
|
|
2058
2081
|
function h(p, m) {
|
|
2059
2082
|
var b;
|
|
2060
2083
|
const g = ((b = m == null ? void 0 : m[e]) == null ? void 0 : b[l]) || c, f = ue.useContext(g);
|
|
2061
2084
|
if (f) return f;
|
|
2062
2085
|
if (d !== void 0) return d;
|
|
2063
|
-
throw new Error(`\`${p}\` must be used within \`${
|
|
2086
|
+
throw new Error(`\`${p}\` must be used within \`${s}\``);
|
|
2064
2087
|
}
|
|
2065
2088
|
return [u, h];
|
|
2066
2089
|
}
|
|
2067
2090
|
const n = () => {
|
|
2068
|
-
const
|
|
2091
|
+
const s = o.map((d) => ue.createContext(d));
|
|
2069
2092
|
return function(c) {
|
|
2070
|
-
const l = (c == null ? void 0 : c[e]) ||
|
|
2093
|
+
const l = (c == null ? void 0 : c[e]) || s;
|
|
2071
2094
|
return ue.useMemo(
|
|
2072
2095
|
() => ({ [`__scope${e}`]: { ...c, [e]: l } }),
|
|
2073
2096
|
[c, l]
|
|
@@ -2084,9 +2107,9 @@ function kn(...e) {
|
|
|
2084
2107
|
useScope: n(),
|
|
2085
2108
|
scopeName: n.scopeName
|
|
2086
2109
|
}));
|
|
2087
|
-
return function(
|
|
2110
|
+
return function(s) {
|
|
2088
2111
|
const d = a.reduce((c, { useScope: l, scopeName: u }) => {
|
|
2089
|
-
const p = l(
|
|
2112
|
+
const p = l(s)[`__scope${u}`];
|
|
2090
2113
|
return { ...c, ...p };
|
|
2091
2114
|
}, {});
|
|
2092
2115
|
return ue.useMemo(() => ({ [`__scope${r.scopeName}`]: d }), [d]);
|
|
@@ -2113,9 +2136,9 @@ var An = [
|
|
|
2113
2136
|
"svg",
|
|
2114
2137
|
"ul"
|
|
2115
2138
|
], nr = An.reduce((e, r) => {
|
|
2116
|
-
const o =
|
|
2139
|
+
const o = br(`Primitive.${r}`), a = ue.forwardRef((n, s) => {
|
|
2117
2140
|
const { asChild: d, ...c } = n, l = d ? o : r;
|
|
2118
|
-
return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ t(l, { ...c, ref:
|
|
2141
|
+
return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ t(l, { ...c, ref: s });
|
|
2119
2142
|
});
|
|
2120
2143
|
return a.displayName = `Primitive.${r}`, { ...e, [r]: a };
|
|
2121
2144
|
}, {}), It = "Progress", Ft = 100, [In] = En(It), [Fn, Pn] = In(It), sr = ue.forwardRef(
|
|
@@ -2124,13 +2147,13 @@ var An = [
|
|
|
2124
2147
|
__scopeProgress: o,
|
|
2125
2148
|
value: a = null,
|
|
2126
2149
|
max: n,
|
|
2127
|
-
getValueLabel:
|
|
2150
|
+
getValueLabel: s = Tn,
|
|
2128
2151
|
...d
|
|
2129
2152
|
} = e;
|
|
2130
|
-
(n || n === 0) && !
|
|
2131
|
-
const c =
|
|
2153
|
+
(n || n === 0) && !Rt(n) && console.error(Ln(`${n}`, "Progress"));
|
|
2154
|
+
const c = Rt(n) ? n : Ft;
|
|
2132
2155
|
a !== null && !Bt(a, c) && console.error(Un(`${a}`, "Progress"));
|
|
2133
|
-
const l = Bt(a, c) ? a : null, u = Ze(l) ?
|
|
2156
|
+
const l = Bt(a, c) ? a : null, u = Ze(l) ? s(l, c) : void 0;
|
|
2134
2157
|
return /* @__PURE__ */ t(Fn, { scope: o, value: l, max: c, children: /* @__PURE__ */ t(
|
|
2135
2158
|
nr.div,
|
|
2136
2159
|
{
|
|
@@ -2165,7 +2188,7 @@ var or = "ProgressIndicator", ir = ue.forwardRef(
|
|
|
2165
2188
|
}
|
|
2166
2189
|
);
|
|
2167
2190
|
ir.displayName = or;
|
|
2168
|
-
function
|
|
2191
|
+
function Tn(e, r) {
|
|
2169
2192
|
return `${Math.round(e / r * 100)}%`;
|
|
2170
2193
|
}
|
|
2171
2194
|
function lr(e, r) {
|
|
@@ -2174,13 +2197,13 @@ function lr(e, r) {
|
|
|
2174
2197
|
function Ze(e) {
|
|
2175
2198
|
return typeof e == "number";
|
|
2176
2199
|
}
|
|
2177
|
-
function
|
|
2200
|
+
function Rt(e) {
|
|
2178
2201
|
return Ze(e) && !isNaN(e) && e > 0;
|
|
2179
2202
|
}
|
|
2180
2203
|
function Bt(e, r) {
|
|
2181
2204
|
return Ze(e) && !isNaN(e) && e <= r && e >= 0;
|
|
2182
2205
|
}
|
|
2183
|
-
function
|
|
2206
|
+
function Ln(e, r) {
|
|
2184
2207
|
return `Invalid prop \`max\` of value \`${e}\` supplied to \`${r}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Ft}\`.`;
|
|
2185
2208
|
}
|
|
2186
2209
|
function Un(e, r) {
|
|
@@ -2191,18 +2214,18 @@ function Un(e, r) {
|
|
|
2191
2214
|
|
|
2192
2215
|
Defaulting to \`null\`.`;
|
|
2193
2216
|
}
|
|
2194
|
-
var cr = sr,
|
|
2217
|
+
var cr = sr, Vn = ir;
|
|
2195
2218
|
const dr = ue.forwardRef(({ className: e, value: r, ...o }, a) => /* @__PURE__ */ t(
|
|
2196
2219
|
cr,
|
|
2197
2220
|
{
|
|
2198
2221
|
ref: a,
|
|
2199
|
-
className:
|
|
2222
|
+
className: Y(
|
|
2200
2223
|
"relative h-4 w-full overflow-hidden rounded-full bg-secondary",
|
|
2201
2224
|
e
|
|
2202
2225
|
),
|
|
2203
2226
|
...o,
|
|
2204
2227
|
children: /* @__PURE__ */ t(
|
|
2205
|
-
|
|
2228
|
+
Vn,
|
|
2206
2229
|
{
|
|
2207
2230
|
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
2208
2231
|
style: { transform: `translateX(-${100 - (r || 0)}%)` }
|
|
@@ -2211,7 +2234,7 @@ const dr = ue.forwardRef(({ className: e, value: r, ...o }, a) => /* @__PURE__ *
|
|
|
2211
2234
|
}
|
|
2212
2235
|
));
|
|
2213
2236
|
dr.displayName = cr.displayName;
|
|
2214
|
-
function
|
|
2237
|
+
function Rn({
|
|
2215
2238
|
export: e,
|
|
2216
2239
|
onRemove: r,
|
|
2217
2240
|
onDownload: o
|
|
@@ -2220,7 +2243,7 @@ function Vn({
|
|
|
2220
2243
|
J(() => {
|
|
2221
2244
|
e.downloadUrl && n("idle");
|
|
2222
2245
|
}, [e.downloadUrl]);
|
|
2223
|
-
const
|
|
2246
|
+
const s = async () => {
|
|
2224
2247
|
if (!o) {
|
|
2225
2248
|
e.downloadUrl && window.open(e.downloadUrl, "_blank");
|
|
2226
2249
|
return;
|
|
@@ -2230,21 +2253,21 @@ function Vn({
|
|
|
2230
2253
|
n(b === "denied" ? "denied" : "idle");
|
|
2231
2254
|
}, d = (b) => {
|
|
2232
2255
|
b.stopPropagation(), r == null || r(e.id);
|
|
2233
|
-
}, c =
|
|
2256
|
+
}, c = Te(e.status), l = e.status === "pending" ? { text: Q.queued } : e.status === "compacting" || e.phase === "finalizing" ? { text: Q.finalizing } : e.phase === "preparing" ? { text: Q.preparing } : e.phase === "acquiring" ? { text: Q.fetchingRows(e.rowsProcessed ?? 0) } : {
|
|
2234
2257
|
text: Q.processing,
|
|
2235
2258
|
detail: e.progress !== null ? Q.percentComplete(e.progress) : e.rowsProcessed !== void 0 ? Q.rowsProcessed(e.rowsProcessed) : void 0,
|
|
2236
2259
|
bar: e.progress
|
|
2237
|
-
}, u = c && Date.now() - e.startedAt.getTime() >=
|
|
2260
|
+
}, u = c && Date.now() - e.startedAt.getTime() >= zr, h = e.status === "completed" ? "bg-emerald-500" : e.status === "failed" ? "bg-destructive" : e.status === "pending" || e.status === "cancelled" ? "bg-muted-foreground/40" : "animate-pulse bg-muted-foreground/60", p = e.status === "completed" ? Q.ready : e.status === "failed" ? Q.failed : e.status === "cancelled" ? Q.cancelled : Q.inProgress, m = Ut(e.startedAt, { addSuffix: !0 }), g = [
|
|
2238
2261
|
e.status === "completed" && e.totalRows !== null ? `${e.totalRows.toLocaleString()} rows` : null,
|
|
2239
|
-
e.status === "completed" && e.fileSize ?
|
|
2262
|
+
e.status === "completed" && e.fileSize ? jr(e.fileSize) : null
|
|
2240
2263
|
].filter((b) => !!b), f = /* @__PURE__ */ t("span", { className: "text-muted-foreground/50", children: "·" });
|
|
2241
|
-
return /* @__PURE__ */
|
|
2264
|
+
return /* @__PURE__ */ i("div", { className: "group flex items-start gap-2.5 px-3 py-2 transition-colors hover:bg-muted/40 focus-within:bg-muted/40", children: [
|
|
2242
2265
|
/* @__PURE__ */ t("span", { className: "flex h-5 shrink-0 items-center", "aria-hidden": "true", children: /* @__PURE__ */ t("span", { className: `h-1.5 w-1.5 rounded-full ${h}` }) }),
|
|
2243
2266
|
/* @__PURE__ */ t("span", { className: "sr-only", children: p }),
|
|
2244
|
-
/* @__PURE__ */
|
|
2245
|
-
/* @__PURE__ */
|
|
2267
|
+
/* @__PURE__ */ i("div", { className: "min-w-0 flex-1", children: [
|
|
2268
|
+
/* @__PURE__ */ i("div", { className: "flex h-5 items-center gap-2", children: [
|
|
2246
2269
|
/* @__PURE__ */ t("span", { className: "min-w-0 flex-1 truncate text-[13px] font-medium leading-5", children: e.title }),
|
|
2247
|
-
e.status === "completed" && a === "preparing" && /* @__PURE__ */
|
|
2270
|
+
e.status === "completed" && a === "preparing" && /* @__PURE__ */ i("span", { role: "status", className: "inline-flex shrink-0 items-center gap-1.5 text-[12px] text-muted-foreground", children: [
|
|
2248
2271
|
/* @__PURE__ */ t(Gt, { className: "h-3 w-3 animate-spin", strokeWidth: 1.75 }),
|
|
2249
2272
|
"Preparing"
|
|
2250
2273
|
] }),
|
|
@@ -2252,7 +2275,7 @@ function Vn({
|
|
|
2252
2275
|
"button",
|
|
2253
2276
|
{
|
|
2254
2277
|
type: "button",
|
|
2255
|
-
onClick: () => void
|
|
2278
|
+
onClick: () => void s(),
|
|
2256
2279
|
className: "shrink-0 text-[12px] font-medium text-foreground/80 underline-offset-2 hover:text-foreground hover:underline focus-visible:underline focus-visible:outline-none",
|
|
2257
2280
|
children: "Download"
|
|
2258
2281
|
}
|
|
@@ -2270,10 +2293,10 @@ function Vn({
|
|
|
2270
2293
|
}
|
|
2271
2294
|
)
|
|
2272
2295
|
] }),
|
|
2273
|
-
e.status === "completed" && /* @__PURE__ */
|
|
2296
|
+
e.status === "completed" && /* @__PURE__ */ i("div", { className: "flex items-center gap-1.5 text-[12px] leading-4 text-muted-foreground", children: [
|
|
2274
2297
|
g.length > 0 && // Disclosed on hover or focus only; the time is what a reader scans.
|
|
2275
|
-
/* @__PURE__ */
|
|
2276
|
-
g.map((b, k) => /* @__PURE__ */
|
|
2298
|
+
/* @__PURE__ */ i("span", { className: "hidden group-hover:contents group-focus-within:contents", children: [
|
|
2299
|
+
g.map((b, k) => /* @__PURE__ */ i(_t.Fragment, { children: [
|
|
2277
2300
|
k > 0 && f,
|
|
2278
2301
|
/* @__PURE__ */ t("span", { children: b })
|
|
2279
2302
|
] }, k)),
|
|
@@ -2281,13 +2304,13 @@ function Vn({
|
|
|
2281
2304
|
] }),
|
|
2282
2305
|
/* @__PURE__ */ t("span", { children: m })
|
|
2283
2306
|
] }),
|
|
2284
|
-
e.status === "completed" && a === "denied" && /* @__PURE__ */
|
|
2285
|
-
/* @__PURE__ */ t(
|
|
2307
|
+
e.status === "completed" && a === "denied" && /* @__PURE__ */ i("div", { role: "alert", className: "mt-1 flex items-start gap-1.5 text-[12px] leading-4 text-foreground", children: [
|
|
2308
|
+
/* @__PURE__ */ t(Wr, { className: "mt-0.5 h-3 w-3 shrink-0 text-destructive", strokeWidth: 1.75 }),
|
|
2286
2309
|
/* @__PURE__ */ t("span", { children: Q.linkExpired })
|
|
2287
2310
|
] }),
|
|
2288
|
-
c && /* @__PURE__ */
|
|
2311
|
+
c && /* @__PURE__ */ i("div", { className: "text-[12px] leading-4 text-muted-foreground", children: [
|
|
2289
2312
|
/* @__PURE__ */ t("span", { className: "tabular-nums", children: l.text }),
|
|
2290
|
-
l.detail && /* @__PURE__ */
|
|
2313
|
+
l.detail && /* @__PURE__ */ i($, { children: [
|
|
2291
2314
|
" ",
|
|
2292
2315
|
f,
|
|
2293
2316
|
" ",
|
|
@@ -2300,13 +2323,13 @@ function Vn({
|
|
|
2300
2323
|
l.bar !== void 0 && l.bar !== null && /* @__PURE__ */ t(dr, { value: l.bar, className: "mt-1.5 h-1" }),
|
|
2301
2324
|
u && /* @__PURE__ */ t("div", { className: "mt-1", children: Q.longRunning })
|
|
2302
2325
|
] }),
|
|
2303
|
-
e.status === "cancelled" && /* @__PURE__ */
|
|
2326
|
+
e.status === "cancelled" && /* @__PURE__ */ i("div", { className: "flex items-center gap-1.5 text-[12px] leading-4 text-muted-foreground", children: [
|
|
2304
2327
|
/* @__PURE__ */ t("span", { children: Q.cancelled }),
|
|
2305
2328
|
f,
|
|
2306
2329
|
/* @__PURE__ */ t("span", { children: m })
|
|
2307
2330
|
] }),
|
|
2308
|
-
e.status === "failed" && /* @__PURE__ */
|
|
2309
|
-
/* @__PURE__ */
|
|
2331
|
+
e.status === "failed" && /* @__PURE__ */ i($, { children: [
|
|
2332
|
+
/* @__PURE__ */ i("div", { className: "flex items-center gap-1.5 text-[12px] leading-4 text-muted-foreground", children: [
|
|
2310
2333
|
/* @__PURE__ */ t("span", { children: Q.failed }),
|
|
2311
2334
|
f,
|
|
2312
2335
|
/* @__PURE__ */ t("span", { children: m })
|
|
@@ -2317,7 +2340,7 @@ function Vn({
|
|
|
2317
2340
|
] });
|
|
2318
2341
|
}
|
|
2319
2342
|
function Bn() {
|
|
2320
|
-
const { authToken: e, tokenProps: r } = Be(), o = xe((v) => v.activeExports), { clearCompleted: a, removeExport: n, updateExport:
|
|
2343
|
+
const { authToken: e, tokenProps: r } = Be(), o = xe((v) => v.activeExports), { clearCompleted: a, removeExport: n, updateExport: s, applyServerStatus: d } = Qt(), [c, l] = F(!1), [u, h] = F(!1), p = Array.from(o.values()).sort(
|
|
2321
2344
|
(v, D) => D.startedAt.getTime() - v.startedAt.getTime()
|
|
2322
2345
|
), m = p.some(
|
|
2323
2346
|
(v) => v.status === "completed" || v.status === "failed" || v.status === "cancelled"
|
|
@@ -2334,7 +2357,7 @@ function Bn() {
|
|
|
2334
2357
|
let w;
|
|
2335
2358
|
if (y.status === "completed")
|
|
2336
2359
|
try {
|
|
2337
|
-
w = await ye((S) =>
|
|
2360
|
+
w = await ye((S) => Xe(
|
|
2338
2361
|
v,
|
|
2339
2362
|
D,
|
|
2340
2363
|
N.id,
|
|
@@ -2345,7 +2368,7 @@ function Bn() {
|
|
|
2345
2368
|
}
|
|
2346
2369
|
d(N.id, At(y, w));
|
|
2347
2370
|
} catch (y) {
|
|
2348
|
-
|
|
2371
|
+
s(N.id, { downloadUrl: void 0 }), console.error(`Failed to refresh export ${N.id}:`, y);
|
|
2349
2372
|
}
|
|
2350
2373
|
})
|
|
2351
2374
|
);
|
|
@@ -2357,7 +2380,7 @@ function Bn() {
|
|
|
2357
2380
|
o,
|
|
2358
2381
|
e == null ? void 0 : e.accessToken,
|
|
2359
2382
|
r == null ? void 0 : r.apiServiceUrl,
|
|
2360
|
-
|
|
2383
|
+
s,
|
|
2361
2384
|
d
|
|
2362
2385
|
]), f = j(async () => {
|
|
2363
2386
|
const v = r == null ? void 0 : r.apiServiceUrl, D = e == null ? void 0 : e.accessToken;
|
|
@@ -2403,23 +2426,23 @@ function Bn() {
|
|
|
2403
2426
|
const D = r == null ? void 0 : r.apiServiceUrl, E = e == null ? void 0 : e.accessToken;
|
|
2404
2427
|
if (!D || !E) return "denied";
|
|
2405
2428
|
try {
|
|
2406
|
-
const N = await ye((y) =>
|
|
2407
|
-
return
|
|
2429
|
+
const N = await ye((y) => Xe(D, E, v.id, y));
|
|
2430
|
+
return s(v.id, { downloadUrl: N }), window.open(N, "_blank"), "opened";
|
|
2408
2431
|
} catch (N) {
|
|
2409
|
-
return console.error(`Failed to get download URL for ${v.id}:`, N),
|
|
2432
|
+
return console.error(`Failed to get download URL for ${v.id}:`, N), s(v.id, { downloadUrl: void 0 }), "denied";
|
|
2410
2433
|
}
|
|
2411
2434
|
},
|
|
2412
|
-
[r == null ? void 0 : r.apiServiceUrl, e == null ? void 0 : e.accessToken,
|
|
2435
|
+
[r == null ? void 0 : r.apiServiceUrl, e == null ? void 0 : e.accessToken, s]
|
|
2413
2436
|
);
|
|
2414
|
-
return p.length === 0 ? /* @__PURE__ */
|
|
2437
|
+
return p.length === 0 ? /* @__PURE__ */ i("div", { className: "flex flex-col items-center gap-1.5 px-6 py-8 text-center", children: [
|
|
2415
2438
|
/* @__PURE__ */ t("span", { className: "flex h-8 w-8 items-center justify-center rounded-[6px] border border-border text-muted-foreground", children: /* @__PURE__ */ t(qa, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) }),
|
|
2416
2439
|
/* @__PURE__ */ t("p", { className: "text-[13px] font-medium", children: "No exports yet" }),
|
|
2417
2440
|
/* @__PURE__ */ t("p", { className: "text-[12px] text-muted-foreground", children: "Large exports run in the background and land here." })
|
|
2418
|
-
] }) : /* @__PURE__ */
|
|
2419
|
-
/* @__PURE__ */
|
|
2441
|
+
] }) : /* @__PURE__ */ i("div", { className: "flex flex-col", children: [
|
|
2442
|
+
/* @__PURE__ */ i("div", { className: "flex h-8 items-center gap-2 border-b border-border px-3", children: [
|
|
2420
2443
|
/* @__PURE__ */ t("span", { className: "text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground", children: "Exports" }),
|
|
2421
2444
|
/* @__PURE__ */ t("span", { className: "text-[10px] tabular-nums text-muted-foreground/70", children: p.length }),
|
|
2422
|
-
/* @__PURE__ */
|
|
2445
|
+
/* @__PURE__ */ i("div", { className: "ml-auto flex items-center gap-0.5", children: [
|
|
2423
2446
|
m && /* @__PURE__ */ t(
|
|
2424
2447
|
U,
|
|
2425
2448
|
{
|
|
@@ -2453,7 +2476,7 @@ function Bn() {
|
|
|
2453
2476
|
] })
|
|
2454
2477
|
] }),
|
|
2455
2478
|
/* @__PURE__ */ t("div", { className: "max-h-[320px] overflow-y-auto", children: /* @__PURE__ */ t("div", { className: "divide-y divide-border/70", children: p.map((v) => /* @__PURE__ */ t(
|
|
2456
|
-
|
|
2479
|
+
Rn,
|
|
2457
2480
|
{
|
|
2458
2481
|
export: v,
|
|
2459
2482
|
onRemove: b,
|
|
@@ -2463,14 +2486,14 @@ function Bn() {
|
|
|
2463
2486
|
)) }) })
|
|
2464
2487
|
] });
|
|
2465
2488
|
}
|
|
2466
|
-
function
|
|
2489
|
+
function eo({
|
|
2467
2490
|
variant: e
|
|
2468
2491
|
}) {
|
|
2469
|
-
const r = xe((l) => l.activeExports), o =
|
|
2492
|
+
const r = xe((l) => l.activeExports), o = qr(), a = r.size > 0, n = Array.from(r.values()).some(
|
|
2470
2493
|
(l) => l.status === "completed" || l.status === "failed"
|
|
2471
2494
|
), d = o > 0 ? o > 9 ? "9+" : String(o) : null;
|
|
2472
|
-
return /* @__PURE__ */
|
|
2473
|
-
/* @__PURE__ */ t(
|
|
2495
|
+
return /* @__PURE__ */ i(qe, { children: [
|
|
2496
|
+
/* @__PURE__ */ t(He, { asChild: !0, children: /* @__PURE__ */ i(
|
|
2474
2497
|
U,
|
|
2475
2498
|
{
|
|
2476
2499
|
variant: e ?? "ghost",
|
|
@@ -2478,7 +2501,7 @@ function Hs({
|
|
|
2478
2501
|
className: "relative w-7 px-0 text-muted-foreground hover:text-foreground",
|
|
2479
2502
|
"aria-label": "Export notifications",
|
|
2480
2503
|
children: [
|
|
2481
|
-
/* @__PURE__ */ t(
|
|
2504
|
+
/* @__PURE__ */ t(Hr, { className: "h-3.5 w-3.5" }),
|
|
2482
2505
|
a && /* @__PURE__ */ t(
|
|
2483
2506
|
"span",
|
|
2484
2507
|
{
|
|
@@ -2489,7 +2512,7 @@ function Hs({
|
|
|
2489
2512
|
]
|
|
2490
2513
|
}
|
|
2491
2514
|
) }),
|
|
2492
|
-
/* @__PURE__ */ t(
|
|
2515
|
+
/* @__PURE__ */ t(Qe, { className: "w-80 p-0", align: "end", sideOffset: 8, children: /* @__PURE__ */ t(Bn, {}) })
|
|
2493
2516
|
] });
|
|
2494
2517
|
}
|
|
2495
2518
|
function Mn(e) {
|
|
@@ -2508,7 +2531,7 @@ function _n({
|
|
|
2508
2531
|
showTrigger: a = !0,
|
|
2509
2532
|
initialMode: n = "manage"
|
|
2510
2533
|
}) {
|
|
2511
|
-
const
|
|
2534
|
+
const s = n === "create", {
|
|
2512
2535
|
forceClose: d,
|
|
2513
2536
|
handleOpenChange: c,
|
|
2514
2537
|
isCreateFlowActive: l,
|
|
@@ -2526,7 +2549,7 @@ function _n({
|
|
|
2526
2549
|
// create and make consumers use `forceClose()` from a dedicated
|
|
2527
2550
|
// button.
|
|
2528
2551
|
dismissMode: a ? "passive" : "explicit-only"
|
|
2529
|
-
}), m =
|
|
2552
|
+
}), m = T((x) => x.dashboard), { setDashboardControlsModel: g } = pe(), { participants: f } = Qr(La(m)), b = Array.from(
|
|
2530
2553
|
new Map(
|
|
2531
2554
|
f.flatMap(
|
|
2532
2555
|
(x) => x.fieldChoices.map((B) => {
|
|
@@ -2556,29 +2579,29 @@ function _n({
|
|
|
2556
2579
|
})
|
|
2557
2580
|
)
|
|
2558
2581
|
).values()
|
|
2559
|
-
), v =
|
|
2582
|
+
), v = Ea({
|
|
2560
2583
|
...m || {},
|
|
2561
2584
|
controls: []
|
|
2562
|
-
}), D =
|
|
2585
|
+
}), D = Gr(m), E = (x, B, I) => {
|
|
2563
2586
|
g(
|
|
2564
2587
|
x,
|
|
2565
2588
|
B,
|
|
2566
2589
|
Mn(I)
|
|
2567
2590
|
);
|
|
2568
2591
|
}, N = j(() => {
|
|
2569
|
-
if (
|
|
2592
|
+
if (s) {
|
|
2570
2593
|
d();
|
|
2571
2594
|
return;
|
|
2572
2595
|
}
|
|
2573
2596
|
p(!1);
|
|
2574
|
-
}, [
|
|
2597
|
+
}, [s, d, p]), y = /* @__PURE__ */ t(
|
|
2575
2598
|
er,
|
|
2576
2599
|
{
|
|
2577
2600
|
scope: "dashboard",
|
|
2578
2601
|
controls: m.controls || [],
|
|
2579
2602
|
reservedControlIds: v,
|
|
2580
2603
|
defaultValues: m.defaultControlValues || {},
|
|
2581
|
-
usageByControlId:
|
|
2604
|
+
usageByControlId: Kr(m),
|
|
2582
2605
|
availableFieldChoices: b,
|
|
2583
2606
|
availableMetricChoices: k,
|
|
2584
2607
|
structuralParticipants: f,
|
|
@@ -2589,20 +2612,20 @@ function _n({
|
|
|
2589
2612
|
onChange: E,
|
|
2590
2613
|
emptyMessage: "No dashboard controls yet."
|
|
2591
2614
|
}
|
|
2592
|
-
), w = l ? "Add dashboard control" : "Dashboard Controls", S = /* @__PURE__ */
|
|
2593
|
-
/* @__PURE__ */
|
|
2615
|
+
), w = l ? "Add dashboard control" : "Dashboard Controls", S = /* @__PURE__ */ i($, { children: [
|
|
2616
|
+
/* @__PURE__ */ i("div", { className: "space-y-1", children: [
|
|
2594
2617
|
/* @__PURE__ */ t("h4", { className: "text-sm font-medium", children: "Dashboard Controls" }),
|
|
2595
2618
|
/* @__PURE__ */ t("p", { className: "text-xs text-muted-foreground", children: "Add shared controls viewers can use across the dashboard. Each card can decide how to respond to the same control." })
|
|
2596
2619
|
] }),
|
|
2597
2620
|
y
|
|
2598
2621
|
] });
|
|
2599
|
-
return a ? /* @__PURE__ */
|
|
2600
|
-
/* @__PURE__ */ t(
|
|
2622
|
+
return a ? /* @__PURE__ */ i(qe, { open: h, onOpenChange: c, children: [
|
|
2623
|
+
/* @__PURE__ */ t(He, { asChild: !0, children: o || /* @__PURE__ */ i(U, { variant: "outline", className: "h-7 px-2", size: "sm", children: [
|
|
2601
2624
|
/* @__PURE__ */ t($t, { className: "mr-2 h-4 w-4" }),
|
|
2602
2625
|
"Controls"
|
|
2603
2626
|
] }) }),
|
|
2604
2627
|
/* @__PURE__ */ t(
|
|
2605
|
-
|
|
2628
|
+
Qe,
|
|
2606
2629
|
{
|
|
2607
2630
|
className: "w-[620px] max-w-[95vw] space-y-4",
|
|
2608
2631
|
align: "end",
|
|
@@ -2611,19 +2634,19 @@ function _n({
|
|
|
2611
2634
|
children: S
|
|
2612
2635
|
}
|
|
2613
2636
|
)
|
|
2614
|
-
] }) : /* @__PURE__ */ t(Ue, { open: h, onOpenChange: c, children: /* @__PURE__ */
|
|
2615
|
-
|
|
2637
|
+
] }) : /* @__PURE__ */ t(Ue, { open: h, onOpenChange: c, children: /* @__PURE__ */ i(
|
|
2638
|
+
Ve,
|
|
2616
2639
|
{
|
|
2617
2640
|
className: "flex max-h-[88vh] flex-col overflow-hidden sm:max-w-[600px]",
|
|
2618
2641
|
onEscapeKeyDown: u,
|
|
2619
2642
|
onPointerDownOutside: u,
|
|
2620
2643
|
children: [
|
|
2621
|
-
/* @__PURE__ */
|
|
2644
|
+
/* @__PURE__ */ i(
|
|
2622
2645
|
wt,
|
|
2623
2646
|
{
|
|
2624
2647
|
className: l ? "space-y-0" : void 0,
|
|
2625
2648
|
children: [
|
|
2626
|
-
/* @__PURE__ */ t(
|
|
2649
|
+
/* @__PURE__ */ t(Re, { className: "text-[15px]", children: w }),
|
|
2627
2650
|
/* @__PURE__ */ t(
|
|
2628
2651
|
Nt,
|
|
2629
2652
|
{
|
|
@@ -2655,7 +2678,7 @@ function $n({
|
|
|
2655
2678
|
var S;
|
|
2656
2679
|
const a = o === "create", {
|
|
2657
2680
|
forceClose: n,
|
|
2658
|
-
handleOpenChange:
|
|
2681
|
+
handleOpenChange: s,
|
|
2659
2682
|
isCreateFlowActive: d,
|
|
2660
2683
|
preventPassiveDismissDuringCreate: c,
|
|
2661
2684
|
resolvedOpen: l,
|
|
@@ -2665,10 +2688,10 @@ function $n({
|
|
|
2665
2688
|
onOpenChange: r,
|
|
2666
2689
|
initialCreateFlowActive: o === "create",
|
|
2667
2690
|
dismissMode: "explicit-only"
|
|
2668
|
-
}), h =
|
|
2691
|
+
}), h = T((x) => x.dashboard), p = T((x) => x.selectedSheetId), { setDashboardInputs: m } = pe(), g = (S = h.sheets) == null ? void 0 : S.find(
|
|
2669
2692
|
(x) => x.id === p
|
|
2670
2693
|
), f = (g == null ? void 0 : g.kind) === "document" && !!g.document, b = oe(
|
|
2671
|
-
() => f && (g != null && g.document) ?
|
|
2694
|
+
() => f && (g != null && g.document) ? ka(h, g.id) : [],
|
|
2672
2695
|
[h, f, g == null ? void 0 : g.document, g == null ? void 0 : g.id]
|
|
2673
2696
|
), k = oe(
|
|
2674
2697
|
() => b.filter(
|
|
@@ -2711,15 +2734,15 @@ function $n({
|
|
|
2711
2734
|
m
|
|
2712
2735
|
]
|
|
2713
2736
|
);
|
|
2714
|
-
return !f || !(g != null && g.document) ? null : /* @__PURE__ */ t(Ue, { open: l, onOpenChange:
|
|
2715
|
-
|
|
2737
|
+
return !f || !(g != null && g.document) ? null : /* @__PURE__ */ t(Ue, { open: l, onOpenChange: s, children: /* @__PURE__ */ i(
|
|
2738
|
+
Ve,
|
|
2716
2739
|
{
|
|
2717
2740
|
className: "flex max-h-[88vh] flex-col overflow-hidden sm:max-w-[600px]",
|
|
2718
2741
|
onEscapeKeyDown: c,
|
|
2719
2742
|
onPointerDownOutside: c,
|
|
2720
2743
|
children: [
|
|
2721
|
-
/* @__PURE__ */
|
|
2722
|
-
/* @__PURE__ */ t(
|
|
2744
|
+
/* @__PURE__ */ i(wt, { className: d ? "space-y-0" : void 0, children: [
|
|
2745
|
+
/* @__PURE__ */ t(Re, { className: "text-[15px]", children: d ? "Add document control" : "Document Controls" }),
|
|
2723
2746
|
/* @__PURE__ */ t(
|
|
2724
2747
|
Nt,
|
|
2725
2748
|
{
|
|
@@ -2773,14 +2796,14 @@ function qn({
|
|
|
2773
2796
|
currentDocumentInputs: o,
|
|
2774
2797
|
nextControls: a,
|
|
2775
2798
|
nextDefaultValues: n,
|
|
2776
|
-
change:
|
|
2799
|
+
change: s
|
|
2777
2800
|
}) {
|
|
2778
2801
|
const d = new Map(
|
|
2779
2802
|
a.map((m) => [
|
|
2780
2803
|
m.id,
|
|
2781
2804
|
Wn(m, n)
|
|
2782
2805
|
])
|
|
2783
|
-
), c = (
|
|
2806
|
+
), c = (s == null ? void 0 : s.type) === "rename" ? { oldId: s.oldId, newId: s.newId } : null, l = /* @__PURE__ */ new Set(), u = [];
|
|
2784
2807
|
for (const m of o) {
|
|
2785
2808
|
if (m.kind !== "control") {
|
|
2786
2809
|
u.push(m);
|
|
@@ -2790,7 +2813,7 @@ function qn({
|
|
|
2790
2813
|
if (!g)
|
|
2791
2814
|
continue;
|
|
2792
2815
|
l.add(g.id);
|
|
2793
|
-
const f =
|
|
2816
|
+
const f = Aa(
|
|
2794
2817
|
g.id,
|
|
2795
2818
|
[...e, ...u].filter(
|
|
2796
2819
|
(k) => k.id !== m.id
|
|
@@ -2806,7 +2829,7 @@ function qn({
|
|
|
2806
2829
|
}
|
|
2807
2830
|
for (const m of d.values())
|
|
2808
2831
|
l.has(m.id) || u.push(
|
|
2809
|
-
|
|
2832
|
+
Ia({
|
|
2810
2833
|
control: m,
|
|
2811
2834
|
existingInputs: [...e, ...u],
|
|
2812
2835
|
sheetId: r
|
|
@@ -2825,47 +2848,47 @@ function Hn({
|
|
|
2825
2848
|
pickerContent: o,
|
|
2826
2849
|
settingsContent: a,
|
|
2827
2850
|
size: n = "default",
|
|
2828
|
-
className:
|
|
2851
|
+
className: s,
|
|
2829
2852
|
primaryButtonClassName: d,
|
|
2830
2853
|
secondaryButtonClassName: c,
|
|
2831
2854
|
pickerContentClassName: l,
|
|
2832
2855
|
settingsContentClassName: u
|
|
2833
2856
|
}) {
|
|
2834
2857
|
const h = n === "toolbar", [p, m] = F(!1), g = ht("interactive");
|
|
2835
|
-
return /* @__PURE__ */
|
|
2858
|
+
return /* @__PURE__ */ i(
|
|
2836
2859
|
"div",
|
|
2837
2860
|
{
|
|
2838
|
-
className:
|
|
2861
|
+
className: Y(
|
|
2839
2862
|
// Height lives on the shell so the outer border is part of the
|
|
2840
2863
|
// h-7 box (matches regular `size="xs"` buttons). Inner triggers
|
|
2841
2864
|
// stretch to fill via `h-full`.
|
|
2842
2865
|
"relative inline-flex items-stretch overflow-hidden rounded-control border border-input bg-background",
|
|
2843
2866
|
h ? "h-8" : "h-7",
|
|
2844
|
-
|
|
2867
|
+
s
|
|
2845
2868
|
),
|
|
2846
2869
|
children: [
|
|
2847
|
-
/* @__PURE__ */
|
|
2848
|
-
/* @__PURE__ */ t(
|
|
2870
|
+
/* @__PURE__ */ i(qe, { open: e, onOpenChange: r, children: [
|
|
2871
|
+
/* @__PURE__ */ t(He, { asChild: !0, children: /* @__PURE__ */ i(
|
|
2849
2872
|
U,
|
|
2850
2873
|
{
|
|
2851
2874
|
variant: "ghost",
|
|
2852
2875
|
size: "xs",
|
|
2853
|
-
className:
|
|
2876
|
+
className: Y(
|
|
2854
2877
|
"h-full rounded-none border-0 bg-transparent pl-2.5 pr-2 shadow-none hover:bg-accent/50 data-[state=open]:bg-accent/60",
|
|
2855
2878
|
d
|
|
2856
2879
|
),
|
|
2857
2880
|
children: [
|
|
2858
|
-
e ? /* @__PURE__ */ t(
|
|
2881
|
+
e ? /* @__PURE__ */ t(Ba, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ t(Kt, { className: "h-3.5 w-3.5" }),
|
|
2859
2882
|
"Filter"
|
|
2860
2883
|
]
|
|
2861
2884
|
}
|
|
2862
2885
|
) }),
|
|
2863
2886
|
/* @__PURE__ */ t(
|
|
2864
|
-
|
|
2887
|
+
Qe,
|
|
2865
2888
|
{
|
|
2866
2889
|
align: "end",
|
|
2867
2890
|
sideOffset: 6,
|
|
2868
|
-
className:
|
|
2891
|
+
className: Y(
|
|
2869
2892
|
"w-auto rounded-card border border-border/60 p-0 shadow-[0_10px_28px_rgba(0,0,0,0.14)] dark:shadow-[0_10px_28px_rgba(0,0,0,0.5)]",
|
|
2870
2893
|
l
|
|
2871
2894
|
),
|
|
@@ -2874,26 +2897,26 @@ function Hn({
|
|
|
2874
2897
|
}
|
|
2875
2898
|
)
|
|
2876
2899
|
] }),
|
|
2877
|
-
/* @__PURE__ */
|
|
2878
|
-
/* @__PURE__ */ t(
|
|
2900
|
+
/* @__PURE__ */ i(qe, { open: p, onOpenChange: m, children: [
|
|
2901
|
+
/* @__PURE__ */ t(He, { asChild: !0, children: /* @__PURE__ */ t(
|
|
2879
2902
|
U,
|
|
2880
2903
|
{
|
|
2881
2904
|
variant: "ghost",
|
|
2882
2905
|
size: "xs",
|
|
2883
|
-
className:
|
|
2906
|
+
className: Y(
|
|
2884
2907
|
"h-full w-7 rounded-none border-0 border-l border-border/60 bg-transparent px-0 shadow-none hover:bg-accent/50 data-[state=open]:bg-accent/60",
|
|
2885
2908
|
c
|
|
2886
2909
|
),
|
|
2887
2910
|
"aria-label": "Filter and control actions",
|
|
2888
|
-
children: /* @__PURE__ */ t(
|
|
2911
|
+
children: /* @__PURE__ */ t(Yt, { className: "h-3.5 w-3.5" })
|
|
2889
2912
|
}
|
|
2890
2913
|
) }),
|
|
2891
2914
|
/* @__PURE__ */ t(
|
|
2892
|
-
|
|
2915
|
+
Qe,
|
|
2893
2916
|
{
|
|
2894
2917
|
align: "end",
|
|
2895
2918
|
sideOffset: 6,
|
|
2896
|
-
className:
|
|
2919
|
+
className: Y(
|
|
2897
2920
|
"w-auto rounded-card border border-border/60 p-0 shadow-[0_10px_28px_rgba(0,0,0,0.14)] dark:shadow-[0_10px_28px_rgba(0,0,0,0.5)]",
|
|
2898
2921
|
u
|
|
2899
2922
|
),
|
|
@@ -2907,8 +2930,8 @@ function Hn({
|
|
|
2907
2930
|
);
|
|
2908
2931
|
}
|
|
2909
2932
|
function Qn() {
|
|
2910
|
-
|
|
2911
|
-
const e =
|
|
2933
|
+
Ma();
|
|
2934
|
+
const e = T((l) => l.selectedSheetId), r = T((l) => l.selectedFrameId), o = T((l) => l.dashboard), a = T((l) => l.actions.getSelectedFrame), { setSelectedFrameId: n } = pe(), { setCard: s } = tt(), d = ee((l) => l.card.dataSource);
|
|
2912
2935
|
return J(() => {
|
|
2913
2936
|
var u, h;
|
|
2914
2937
|
let l = a();
|
|
@@ -2918,42 +2941,42 @@ function Qn() {
|
|
|
2918
2941
|
}
|
|
2919
2942
|
if (l) {
|
|
2920
2943
|
const p = l.cards.find((m) => m.id === l.activeCardId);
|
|
2921
|
-
p &&
|
|
2944
|
+
p && s(p);
|
|
2922
2945
|
}
|
|
2923
|
-
}, [a, e, r, o, n,
|
|
2946
|
+
}, [a, e, r, o, n, s]), {
|
|
2924
2947
|
hasEntities: !!(d != null && d.selectedEntities && d.selectedEntities.length > 0)
|
|
2925
2948
|
};
|
|
2926
2949
|
}
|
|
2927
2950
|
function Gn() {
|
|
2928
|
-
const e =
|
|
2951
|
+
const e = T((l) => l.dashboard), r = T(
|
|
2929
2952
|
(l) => l.semanticExecutionPayload
|
|
2930
|
-
), o =
|
|
2931
|
-
() =>
|
|
2953
|
+
), o = T((l) => l.actions.addFilter), { hasEntities: a } = Qn(), { isLoading: n } = Xr(), s = oe(
|
|
2954
|
+
() => Fa(e, r),
|
|
2932
2955
|
[e, r]
|
|
2933
|
-
), c = !
|
|
2934
|
-
return /* @__PURE__ */
|
|
2935
|
-
c && /* @__PURE__ */ t("div", { className: "border-b border-border/60 p-2", children: /* @__PURE__ */
|
|
2956
|
+
), c = !Pa(e.filters) && s.hasEligibleCards && !n;
|
|
2957
|
+
return /* @__PURE__ */ i("div", { className: "flex h-[520px] w-[400px] flex-col", children: [
|
|
2958
|
+
c && /* @__PURE__ */ t("div", { className: "border-b border-border/60 p-2", children: /* @__PURE__ */ i(
|
|
2936
2959
|
"button",
|
|
2937
2960
|
{
|
|
2938
2961
|
type: "button",
|
|
2939
|
-
onClick: () => o(
|
|
2940
|
-
title: `Applies to ${
|
|
2962
|
+
onClick: () => o(Ta()),
|
|
2963
|
+
title: `Applies to ${s.eligibleCardCount} of ${s.totalCardCount} date-aware cards`,
|
|
2941
2964
|
className: "flex w-full items-start gap-2 rounded-control px-2 py-1.5 text-left outline-none transition-colors hover:bg-muted/40 focus-visible:bg-muted/40 focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-border",
|
|
2942
2965
|
children: [
|
|
2943
2966
|
/* @__PURE__ */ t(ja, { className: "mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
|
|
2944
|
-
/* @__PURE__ */
|
|
2967
|
+
/* @__PURE__ */ i("span", { className: "flex min-w-0 flex-col", children: [
|
|
2945
2968
|
/* @__PURE__ */ t("span", { className: "text-[12px] font-medium text-foreground", children: "Add global date filter" }),
|
|
2946
2969
|
/* @__PURE__ */ t("span", { className: "text-[11px] leading-[1.4] text-muted-foreground", children: "One date range across all date-aware cards." })
|
|
2947
2970
|
] })
|
|
2948
2971
|
]
|
|
2949
2972
|
}
|
|
2950
2973
|
) }),
|
|
2951
|
-
!a && /* @__PURE__ */
|
|
2952
|
-
/* @__PURE__ */ t(
|
|
2974
|
+
!a && /* @__PURE__ */ i("div", { className: "flex flex-1 flex-col items-center justify-center px-6 py-8 text-center", children: [
|
|
2975
|
+
/* @__PURE__ */ t(Yr, { className: "mb-3 h-10 w-10 text-muted-foreground/50" }),
|
|
2953
2976
|
/* @__PURE__ */ t("h3", { className: "mb-1 text-[13px] font-medium text-foreground", children: "No fields configured" }),
|
|
2954
2977
|
/* @__PURE__ */ t("p", { className: "text-[11px] text-muted-foreground", children: "Configure a data source for this card to enable filtering." })
|
|
2955
2978
|
] }),
|
|
2956
|
-
a && /* @__PURE__ */ t("div", { className: "flex flex-1 overflow-hidden", children: /* @__PURE__ */ t(
|
|
2979
|
+
a && /* @__PURE__ */ t("div", { className: "flex flex-1 overflow-hidden", children: /* @__PURE__ */ t(Zr, { context: "filter" }) })
|
|
2957
2980
|
] });
|
|
2958
2981
|
}
|
|
2959
2982
|
const Mt = !1;
|
|
@@ -2963,13 +2986,13 @@ function Kn({
|
|
|
2963
2986
|
onManageControls: o,
|
|
2964
2987
|
onDismiss: a
|
|
2965
2988
|
}) {
|
|
2966
|
-
const n =
|
|
2989
|
+
const n = T(
|
|
2967
2990
|
(c) => c.dashboard.filterLayout
|
|
2968
|
-
), { setFilterLayout:
|
|
2991
|
+
), { setFilterLayout: s } = pe();
|
|
2969
2992
|
n != null && n.displayMode;
|
|
2970
2993
|
const d = (n == null ? void 0 : n.toolbarWrap) ?? !1;
|
|
2971
|
-
return n == null || n.showDownloadButton, /* @__PURE__ */
|
|
2972
|
-
/* @__PURE__ */
|
|
2994
|
+
return n == null || n.showDownloadButton, /* @__PURE__ */ i("div", { className: "w-[300px]", children: [
|
|
2995
|
+
/* @__PURE__ */ i("div", { className: "p-1", children: [
|
|
2973
2996
|
/* @__PURE__ */ t(
|
|
2974
2997
|
ct,
|
|
2975
2998
|
{
|
|
@@ -3002,7 +3025,7 @@ function Kn({
|
|
|
3002
3025
|
)
|
|
3003
3026
|
] }),
|
|
3004
3027
|
/* @__PURE__ */ t("div", { className: "border-t border-border/60" }),
|
|
3005
|
-
/* @__PURE__ */
|
|
3028
|
+
/* @__PURE__ */ i("div", { className: "space-y-1 p-2", children: [
|
|
3006
3029
|
/* @__PURE__ */ t("p", { className: "px-1 text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground", children: "Display" }),
|
|
3007
3030
|
Mt,
|
|
3008
3031
|
/* @__PURE__ */ t(
|
|
@@ -3011,7 +3034,7 @@ function Kn({
|
|
|
3011
3034
|
id: "filter-display-wrap",
|
|
3012
3035
|
label: "Wrap to multiple lines",
|
|
3013
3036
|
checked: d,
|
|
3014
|
-
onCheckedChange: (c) =>
|
|
3037
|
+
onCheckedChange: (c) => s({ toolbarWrap: c === !0 })
|
|
3015
3038
|
}
|
|
3016
3039
|
),
|
|
3017
3040
|
Mt
|
|
@@ -3023,7 +3046,7 @@ function ct({
|
|
|
3023
3046
|
label: r,
|
|
3024
3047
|
onClick: o
|
|
3025
3048
|
}) {
|
|
3026
|
-
return /* @__PURE__ */
|
|
3049
|
+
return /* @__PURE__ */ i(
|
|
3027
3050
|
"button",
|
|
3028
3051
|
{
|
|
3029
3052
|
type: "button",
|
|
@@ -3042,10 +3065,10 @@ function Xn({
|
|
|
3042
3065
|
checked: o,
|
|
3043
3066
|
onCheckedChange: a
|
|
3044
3067
|
}) {
|
|
3045
|
-
return /* @__PURE__ */
|
|
3068
|
+
return /* @__PURE__ */ i("div", { className: "flex items-center gap-2 rounded-control px-1 py-1 transition-colors hover:bg-muted/40 focus-within:bg-muted/40", children: [
|
|
3046
3069
|
/* @__PURE__ */ t(Ct, { id: e, checked: o, onCheckedChange: a }),
|
|
3047
3070
|
/* @__PURE__ */ t(
|
|
3048
|
-
|
|
3071
|
+
Le,
|
|
3049
3072
|
{
|
|
3050
3073
|
htmlFor: e,
|
|
3051
3074
|
className: "cursor-pointer text-[12px] font-normal leading-[1.3]",
|
|
@@ -3054,18 +3077,18 @@ function Xn({
|
|
|
3054
3077
|
)
|
|
3055
3078
|
] });
|
|
3056
3079
|
}
|
|
3057
|
-
function
|
|
3080
|
+
function to({
|
|
3058
3081
|
size: e,
|
|
3059
3082
|
className: r,
|
|
3060
3083
|
primaryButtonClassName: o,
|
|
3061
3084
|
secondaryButtonClassName: a,
|
|
3062
3085
|
pickerContentClassName: n,
|
|
3063
|
-
settingsContentClassName:
|
|
3086
|
+
settingsContentClassName: s
|
|
3064
3087
|
}) {
|
|
3065
3088
|
var y;
|
|
3066
|
-
const [d, c] = F(null), l =
|
|
3089
|
+
const [d, c] = F(null), l = T((w) => w.dashboard), u = T((w) => w.selectedSheetId), h = T((w) => w.showFilters), p = T((w) => w.actions), { setDocumentPanelTarget: m, setShowFilters: g } = p, f = (y = l.sheets) == null ? void 0 : y.find(
|
|
3067
3090
|
(w) => w.id === u
|
|
3068
|
-
), b =
|
|
3091
|
+
), b = _a(f), k = j((w) => {
|
|
3069
3092
|
window.setTimeout(() => {
|
|
3070
3093
|
c(w);
|
|
3071
3094
|
}, 0);
|
|
@@ -3093,7 +3116,7 @@ function Qs({
|
|
|
3093
3116
|
}, [k]), N = j(() => {
|
|
3094
3117
|
k("manage");
|
|
3095
3118
|
}, [k]);
|
|
3096
|
-
return /* @__PURE__ */
|
|
3119
|
+
return /* @__PURE__ */ i($, { children: [
|
|
3097
3120
|
/* @__PURE__ */ t(
|
|
3098
3121
|
Hn,
|
|
3099
3122
|
{
|
|
@@ -3114,7 +3137,7 @@ function Qs({
|
|
|
3114
3137
|
primaryButtonClassName: o,
|
|
3115
3138
|
secondaryButtonClassName: a,
|
|
3116
3139
|
pickerContentClassName: n,
|
|
3117
|
-
settingsContentClassName:
|
|
3140
|
+
settingsContentClassName: s
|
|
3118
3141
|
}
|
|
3119
3142
|
),
|
|
3120
3143
|
d ? b ? /* @__PURE__ */ t(
|
|
@@ -3146,14 +3169,14 @@ function Yn({
|
|
|
3146
3169
|
onClick: a
|
|
3147
3170
|
}) {
|
|
3148
3171
|
const n = typeof r == "number" && r > 0;
|
|
3149
|
-
return /* @__PURE__ */
|
|
3172
|
+
return /* @__PURE__ */ i(
|
|
3150
3173
|
U,
|
|
3151
3174
|
{
|
|
3152
3175
|
type: "button",
|
|
3153
3176
|
size: "xs",
|
|
3154
3177
|
variant: "outline",
|
|
3155
3178
|
disabled: e,
|
|
3156
|
-
className:
|
|
3179
|
+
className: Y("gap-1.5", o),
|
|
3157
3180
|
onClick: a,
|
|
3158
3181
|
"aria-label": "Reports & briefings",
|
|
3159
3182
|
children: [
|
|
@@ -3177,10 +3200,10 @@ function es(e) {
|
|
|
3177
3200
|
if (a < 60) return `${a}m ago`;
|
|
3178
3201
|
const n = Math.round(a / 60);
|
|
3179
3202
|
if (n < 24) return `${n}h ago`;
|
|
3180
|
-
const
|
|
3181
|
-
if (
|
|
3182
|
-
const d = Math.round(
|
|
3183
|
-
return d < 5 ? `${d}w ago` : `${Math.round(
|
|
3203
|
+
const s = Math.round(n / 24);
|
|
3204
|
+
if (s < 7) return `${s}d ago`;
|
|
3205
|
+
const d = Math.round(s / 7);
|
|
3206
|
+
return d < 5 ? `${d}w ago` : `${Math.round(s / 30)}mo ago`;
|
|
3184
3207
|
}
|
|
3185
3208
|
function ts(e) {
|
|
3186
3209
|
return e.scheduleExpr ? Oa(
|
|
@@ -3220,7 +3243,7 @@ function ns({
|
|
|
3220
3243
|
role: "tab",
|
|
3221
3244
|
"aria-selected": a,
|
|
3222
3245
|
onClick: () => r(o),
|
|
3223
|
-
className:
|
|
3246
|
+
className: Y(
|
|
3224
3247
|
"h-6 rounded-[3px] px-2 text-[11px] transition-colors",
|
|
3225
3248
|
a ? "bg-background font-medium text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
|
|
3226
3249
|
),
|
|
@@ -3238,7 +3261,7 @@ function ss({
|
|
|
3238
3261
|
sourceView: o,
|
|
3239
3262
|
error: a,
|
|
3240
3263
|
loading: n,
|
|
3241
|
-
onSourceViewChange:
|
|
3264
|
+
onSourceViewChange: s,
|
|
3242
3265
|
onClose: d,
|
|
3243
3266
|
onEdit: c,
|
|
3244
3267
|
onNew: l,
|
|
@@ -3255,14 +3278,14 @@ function ss({
|
|
|
3255
3278
|
hideHeader: E = !1
|
|
3256
3279
|
}) {
|
|
3257
3280
|
const N = e.length, y = e.filter((I) => I.status === "ACTIVE").length, w = D === "reports" ? N === 1 ? "report" : "reports" : D === "briefings" ? N === 1 ? "briefing" : "briefings" : N === 1 ? "item" : "items", S = e.find((I) => I.hasActiveRun) ?? null, x = D ?? "reports & briefings", B = o === "dashboard" ? r : `Project ${x}`;
|
|
3258
|
-
return /* @__PURE__ */
|
|
3281
|
+
return /* @__PURE__ */ i(
|
|
3259
3282
|
"section",
|
|
3260
3283
|
{
|
|
3261
3284
|
"aria-label": `Dashboard ${x.replace("&", "and")}`,
|
|
3262
3285
|
className: "flex h-full min-h-0 flex-col bg-background text-foreground",
|
|
3263
3286
|
children: [
|
|
3264
|
-
E ? null : /* @__PURE__ */
|
|
3265
|
-
/* @__PURE__ */
|
|
3287
|
+
E ? null : /* @__PURE__ */ i("header", { className: "flex items-start justify-between gap-3 border-b border-border px-4 py-3", children: [
|
|
3288
|
+
/* @__PURE__ */ i("div", { className: "min-w-0", children: [
|
|
3266
3289
|
/* @__PURE__ */ t("div", { className: Zn, children: x }),
|
|
3267
3290
|
/* @__PURE__ */ t("h2", { className: "mt-0.5 truncate text-[14px] font-semibold leading-5", children: B })
|
|
3268
3291
|
] }),
|
|
@@ -3277,37 +3300,37 @@ function ss({
|
|
|
3277
3300
|
}
|
|
3278
3301
|
)
|
|
3279
3302
|
] }),
|
|
3280
|
-
/* @__PURE__ */
|
|
3281
|
-
/* @__PURE__ */
|
|
3303
|
+
/* @__PURE__ */ i("div", { className: "flex items-center justify-between gap-3 border-b border-border px-4 py-2", children: [
|
|
3304
|
+
/* @__PURE__ */ i("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
3282
3305
|
/* @__PURE__ */ t(
|
|
3283
3306
|
ns,
|
|
3284
3307
|
{
|
|
3285
3308
|
activeView: o,
|
|
3286
|
-
onChange:
|
|
3309
|
+
onChange: s
|
|
3287
3310
|
}
|
|
3288
3311
|
),
|
|
3289
|
-
/* @__PURE__ */ t("div", { className: "flex min-w-0 items-center gap-1.5 text-[11px] text-muted-foreground", children: n && N === 0 ? /* @__PURE__ */
|
|
3312
|
+
/* @__PURE__ */ t("div", { className: "flex min-w-0 items-center gap-1.5 text-[11px] text-muted-foreground", children: n && N === 0 ? /* @__PURE__ */ i("span", { children: [
|
|
3290
3313
|
"Loading ",
|
|
3291
3314
|
x,
|
|
3292
3315
|
"…"
|
|
3293
|
-
] }) : N === 0 ? /* @__PURE__ */
|
|
3316
|
+
] }) : N === 0 ? /* @__PURE__ */ i("span", { children: [
|
|
3294
3317
|
"No ",
|
|
3295
3318
|
x,
|
|
3296
3319
|
" yet"
|
|
3297
|
-
] }) : /* @__PURE__ */
|
|
3298
|
-
/* @__PURE__ */
|
|
3320
|
+
] }) : /* @__PURE__ */ i($, { children: [
|
|
3321
|
+
/* @__PURE__ */ i("span", { className: "font-medium text-foreground/80", children: [
|
|
3299
3322
|
N,
|
|
3300
3323
|
" ",
|
|
3301
3324
|
w
|
|
3302
3325
|
] }),
|
|
3303
3326
|
/* @__PURE__ */ t("span", { className: "text-border", children: "·" }),
|
|
3304
|
-
/* @__PURE__ */
|
|
3327
|
+
/* @__PURE__ */ i("span", { children: [
|
|
3305
3328
|
y,
|
|
3306
3329
|
" active"
|
|
3307
3330
|
] })
|
|
3308
3331
|
] }) })
|
|
3309
3332
|
] }),
|
|
3310
|
-
/* @__PURE__ */
|
|
3333
|
+
/* @__PURE__ */ i("div", { className: "flex items-center gap-1.5", children: [
|
|
3311
3334
|
n ? (
|
|
3312
3335
|
// Auto-refresh on open; surface a quiet spinner near the count
|
|
3313
3336
|
// when a manual reload is in flight, but don't show a separate
|
|
@@ -3315,22 +3338,22 @@ function ss({
|
|
|
3315
3338
|
// case without crowding the toolbar.
|
|
3316
3339
|
/* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin text-muted-foreground" })
|
|
3317
3340
|
) : null,
|
|
3318
|
-
N > 0 && u ? p && h ? /* @__PURE__ */
|
|
3319
|
-
/* @__PURE__ */ t(at, { asChild: !0, children: /* @__PURE__ */
|
|
3341
|
+
N > 0 && u ? p && h ? /* @__PURE__ */ i(rt, { children: [
|
|
3342
|
+
/* @__PURE__ */ t(at, { asChild: !0, children: /* @__PURE__ */ i("button", { className: We, children: [
|
|
3320
3343
|
/* @__PURE__ */ t(Se, { className: "h-3 w-3" }),
|
|
3321
3344
|
" New"
|
|
3322
3345
|
] }) }),
|
|
3323
|
-
/* @__PURE__ */
|
|
3324
|
-
/* @__PURE__ */ t(
|
|
3346
|
+
/* @__PURE__ */ i(nt, { align: "end", children: [
|
|
3347
|
+
/* @__PURE__ */ t(X, { onClick: () => l("scheduled_report"), children: "Schedule a report" }),
|
|
3325
3348
|
/* @__PURE__ */ t(
|
|
3326
|
-
|
|
3349
|
+
X,
|
|
3327
3350
|
{
|
|
3328
3351
|
onClick: () => l("analytical_briefing"),
|
|
3329
3352
|
children: "Create analytical briefing"
|
|
3330
3353
|
}
|
|
3331
3354
|
)
|
|
3332
3355
|
] })
|
|
3333
|
-
] }) : h ? /* @__PURE__ */
|
|
3356
|
+
] }) : h ? /* @__PURE__ */ i(
|
|
3334
3357
|
"button",
|
|
3335
3358
|
{
|
|
3336
3359
|
onClick: () => l("scheduled_report"),
|
|
@@ -3340,7 +3363,7 @@ function ss({
|
|
|
3340
3363
|
" Schedule report"
|
|
3341
3364
|
]
|
|
3342
3365
|
}
|
|
3343
|
-
) : p ? /* @__PURE__ */
|
|
3366
|
+
) : p ? /* @__PURE__ */ i(
|
|
3344
3367
|
"button",
|
|
3345
3368
|
{
|
|
3346
3369
|
onClick: () => l("analytical_briefing"),
|
|
@@ -3353,13 +3376,13 @@ function ss({
|
|
|
3353
3376
|
) : null : null
|
|
3354
3377
|
] })
|
|
3355
3378
|
] }),
|
|
3356
|
-
S ? /* @__PURE__ */
|
|
3379
|
+
S ? /* @__PURE__ */ i("div", { className: "flex items-center gap-2 border-b border-border bg-muted/60 px-4 py-2 text-[12px]", children: [
|
|
3357
3380
|
/* @__PURE__ */ t(ie, { className: "h-3 w-3 shrink-0 animate-spin text-muted-foreground" }),
|
|
3358
3381
|
/* @__PURE__ */ t("span", { className: "font-medium text-foreground", children: S.name }),
|
|
3359
3382
|
/* @__PURE__ */ t("span", { className: "text-border", children: "·" }),
|
|
3360
3383
|
/* @__PURE__ */ t("span", { className: "truncate text-muted-foreground", children: hr(S) })
|
|
3361
3384
|
] }) : null,
|
|
3362
|
-
/* @__PURE__ */
|
|
3385
|
+
/* @__PURE__ */ i("div", { className: "flex-1 overflow-y-auto", children: [
|
|
3363
3386
|
a ? /* @__PURE__ */ t("div", { className: "m-4 rounded-card border border-destructive/30 bg-destructive/10 px-3 py-2 text-[12px] text-destructive", children: a }) : null,
|
|
3364
3387
|
!n && e.length === 0 && !a ? /* @__PURE__ */ t(
|
|
3365
3388
|
os,
|
|
@@ -3385,11 +3408,11 @@ function ss({
|
|
|
3385
3408
|
I.id
|
|
3386
3409
|
))
|
|
3387
3410
|
] }),
|
|
3388
|
-
v ? /* @__PURE__ */ t("div", { className: "border-t border-border px-4 py-2.5", children: /* @__PURE__ */
|
|
3411
|
+
v ? /* @__PURE__ */ t("div", { className: "border-t border-border px-4 py-2.5", children: /* @__PURE__ */ i(
|
|
3389
3412
|
"a",
|
|
3390
3413
|
{
|
|
3391
3414
|
href: v,
|
|
3392
|
-
className:
|
|
3415
|
+
className: Y(ur, "h-6 px-1 text-[11px]"),
|
|
3393
3416
|
children: [
|
|
3394
3417
|
"Manage all reports & briefings",
|
|
3395
3418
|
/* @__PURE__ */ t(za, { className: "h-3 w-3" })
|
|
@@ -3407,19 +3430,19 @@ function os({
|
|
|
3407
3430
|
analyticalBriefingsEnabled: a,
|
|
3408
3431
|
contentKind: n
|
|
3409
3432
|
}) {
|
|
3410
|
-
const
|
|
3433
|
+
const s = n === "reports" ? {
|
|
3411
3434
|
title: "No reports yet",
|
|
3412
3435
|
description: "Schedule an emailed dashboard or visual report to see it here."
|
|
3413
3436
|
} : n === "briefings" ? {
|
|
3414
3437
|
title: "No briefings yet",
|
|
3415
3438
|
description: "Create an analytical briefing to monitor this dashboard and brief your team."
|
|
3416
3439
|
} : null;
|
|
3417
|
-
return /* @__PURE__ */
|
|
3440
|
+
return /* @__PURE__ */ i("div", { className: "flex h-full flex-col items-center justify-center px-8 py-12 text-center", children: [
|
|
3418
3441
|
/* @__PURE__ */ t(is, { className: "mb-5 h-[88px] w-[112px] text-border" }),
|
|
3419
|
-
/* @__PURE__ */ t("div", { className: "text-[13px] font-medium text-foreground", children: (
|
|
3420
|
-
/* @__PURE__ */ t("p", { className: "mt-1.5 max-w-[320px] text-[12px] leading-5 text-muted-foreground", children: (
|
|
3421
|
-
r ? /* @__PURE__ */
|
|
3422
|
-
o ? /* @__PURE__ */
|
|
3442
|
+
/* @__PURE__ */ t("div", { className: "text-[13px] font-medium text-foreground", children: (s == null ? void 0 : s.title) ?? "Have an analyst brief your team" }),
|
|
3443
|
+
/* @__PURE__ */ t("p", { className: "mt-1.5 max-w-[320px] text-[12px] leading-5 text-muted-foreground", children: (s == null ? void 0 : s.description) ?? "Describe what to watch. An analyst digs into this dashboard and the data behind it, then briefs your team on the cadence you choose." }),
|
|
3444
|
+
r ? /* @__PURE__ */ i("div", { className: "mt-4 flex flex-wrap justify-center gap-2", children: [
|
|
3445
|
+
o ? /* @__PURE__ */ i(
|
|
3423
3446
|
"button",
|
|
3424
3447
|
{
|
|
3425
3448
|
onClick: () => e("scheduled_report"),
|
|
@@ -3442,7 +3465,7 @@ function os({
|
|
|
3442
3465
|
] });
|
|
3443
3466
|
}
|
|
3444
3467
|
function is({ className: e }) {
|
|
3445
|
-
return /* @__PURE__ */
|
|
3468
|
+
return /* @__PURE__ */ i(
|
|
3446
3469
|
"svg",
|
|
3447
3470
|
{
|
|
3448
3471
|
viewBox: "0 0 112 88",
|
|
@@ -3624,19 +3647,19 @@ function ls({
|
|
|
3624
3647
|
isBusy: o,
|
|
3625
3648
|
onOpen: a,
|
|
3626
3649
|
onRunNow: n,
|
|
3627
|
-
onTogglePause:
|
|
3650
|
+
onTogglePause: s,
|
|
3628
3651
|
onDelete: d
|
|
3629
3652
|
}) {
|
|
3630
3653
|
const c = e.status === "PAUSED", l = e.hasActiveRun, u = rs(e), h = es(e.lastRunAt), p = e.lastRunStatus, m = me(e), g = p === "SUCCESS" ? ze.success.dot : p === "FAILED" ? ze.danger.dot : p ? ze.warning.dot : ze.neutral.dot;
|
|
3631
|
-
return /* @__PURE__ */
|
|
3654
|
+
return /* @__PURE__ */ i(
|
|
3632
3655
|
"div",
|
|
3633
3656
|
{
|
|
3634
|
-
className:
|
|
3657
|
+
className: Y(
|
|
3635
3658
|
"group relative border-b border-border/60 px-4 py-3 transition-colors hover:bg-muted/60",
|
|
3636
3659
|
c && "opacity-70"
|
|
3637
3660
|
),
|
|
3638
3661
|
children: [
|
|
3639
|
-
/* @__PURE__ */
|
|
3662
|
+
/* @__PURE__ */ i(
|
|
3640
3663
|
"div",
|
|
3641
3664
|
{
|
|
3642
3665
|
role: "button",
|
|
@@ -3647,30 +3670,30 @@ function ls({
|
|
|
3647
3670
|
},
|
|
3648
3671
|
className: "cursor-pointer pr-8",
|
|
3649
3672
|
children: [
|
|
3650
|
-
/* @__PURE__ */
|
|
3673
|
+
/* @__PURE__ */ i("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
3651
3674
|
/* @__PURE__ */ t("span", { className: "truncate text-[13px] font-medium text-foreground", children: e.name }),
|
|
3652
3675
|
c ? /* @__PURE__ */ t("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: "· Paused" }) : null
|
|
3653
3676
|
] }),
|
|
3654
|
-
/* @__PURE__ */
|
|
3677
|
+
/* @__PURE__ */ i("div", { className: "mt-1 flex flex-wrap items-center gap-x-1.5 text-[11px] text-muted-foreground", children: [
|
|
3655
3678
|
/* @__PURE__ */ t("span", { children: m.typeLabel }),
|
|
3656
3679
|
/* @__PURE__ */ t("span", { className: "text-border", children: "·" }),
|
|
3657
3680
|
/* @__PURE__ */ t("span", { children: as(e) }),
|
|
3658
3681
|
/* @__PURE__ */ t("span", { className: "text-border", children: "·" }),
|
|
3659
|
-
/* @__PURE__ */ t(
|
|
3682
|
+
/* @__PURE__ */ t(Jr, { className: "h-3 w-3" }),
|
|
3660
3683
|
/* @__PURE__ */ t("span", { className: "truncate", children: ts(e) }),
|
|
3661
|
-
e.lastRunAt ? /* @__PURE__ */
|
|
3684
|
+
e.lastRunAt ? /* @__PURE__ */ i($, { children: [
|
|
3662
3685
|
/* @__PURE__ */ t("span", { className: "text-border", children: "·" }),
|
|
3663
|
-
/* @__PURE__ */
|
|
3686
|
+
/* @__PURE__ */ i("span", { children: [
|
|
3664
3687
|
"Last run ",
|
|
3665
3688
|
h
|
|
3666
3689
|
] })
|
|
3667
3690
|
] }) : null
|
|
3668
3691
|
] }),
|
|
3669
|
-
u || l ? /* @__PURE__ */
|
|
3692
|
+
u || l ? /* @__PURE__ */ i("div", { className: "mt-1.5 flex items-center gap-1.5 text-[12px] leading-[1.5] text-foreground/80", children: [
|
|
3670
3693
|
l ? /* @__PURE__ */ t(ie, { className: "h-3 w-3 shrink-0 animate-spin text-muted-foreground/70" }) : /* @__PURE__ */ t(
|
|
3671
3694
|
"span",
|
|
3672
3695
|
{
|
|
3673
|
-
className:
|
|
3696
|
+
className: Y(
|
|
3674
3697
|
"inline-block h-1.5 w-1.5 shrink-0 rounded-full",
|
|
3675
3698
|
g
|
|
3676
3699
|
)
|
|
@@ -3681,7 +3704,7 @@ function ls({
|
|
|
3681
3704
|
]
|
|
3682
3705
|
}
|
|
3683
3706
|
),
|
|
3684
|
-
/* @__PURE__ */ t("div", { className: "absolute right-3 top-3", children: o ? /* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin text-muted-foreground/70" }) : r ? /* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin text-muted-foreground/70" }) : /* @__PURE__ */
|
|
3707
|
+
/* @__PURE__ */ t("div", { className: "absolute right-3 top-3", children: o ? /* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin text-muted-foreground/70" }) : r ? /* @__PURE__ */ t(ie, { className: "h-3.5 w-3.5 animate-spin text-muted-foreground/70" }) : /* @__PURE__ */ i(rt, { children: [
|
|
3685
3708
|
/* @__PURE__ */ t(at, { asChild: !0, children: /* @__PURE__ */ t(
|
|
3686
3709
|
"button",
|
|
3687
3710
|
{
|
|
@@ -3692,49 +3715,49 @@ function ls({
|
|
|
3692
3715
|
children: /* @__PURE__ */ t(Wt, { className: "h-3.5 w-3.5" })
|
|
3693
3716
|
}
|
|
3694
3717
|
) }),
|
|
3695
|
-
/* @__PURE__ */
|
|
3696
|
-
/* @__PURE__ */
|
|
3718
|
+
/* @__PURE__ */ i(nt, { align: "end", className: "w-44", children: [
|
|
3719
|
+
/* @__PURE__ */ i(X, { onClick: a, children: [
|
|
3697
3720
|
/* @__PURE__ */ t(Xt, { className: "h-3.5 w-3.5" }),
|
|
3698
3721
|
"Edit ",
|
|
3699
3722
|
m.noun
|
|
3700
3723
|
] }),
|
|
3701
|
-
/* @__PURE__ */
|
|
3702
|
-
|
|
3724
|
+
/* @__PURE__ */ i(
|
|
3725
|
+
X,
|
|
3703
3726
|
{
|
|
3704
3727
|
onClick: (f) => {
|
|
3705
3728
|
f.preventDefault(), n();
|
|
3706
3729
|
},
|
|
3707
3730
|
children: [
|
|
3708
|
-
/* @__PURE__ */ t(
|
|
3731
|
+
/* @__PURE__ */ t(ea, { className: "h-3.5 w-3.5" }),
|
|
3709
3732
|
"Run now"
|
|
3710
3733
|
]
|
|
3711
3734
|
}
|
|
3712
3735
|
),
|
|
3713
3736
|
e.scheduleExpr ? /* @__PURE__ */ t(
|
|
3714
|
-
|
|
3737
|
+
X,
|
|
3715
3738
|
{
|
|
3716
3739
|
onClick: (f) => {
|
|
3717
|
-
f.preventDefault(),
|
|
3740
|
+
f.preventDefault(), s();
|
|
3718
3741
|
},
|
|
3719
|
-
children: c ? /* @__PURE__ */
|
|
3720
|
-
/* @__PURE__ */ t(
|
|
3742
|
+
children: c ? /* @__PURE__ */ i($, { children: [
|
|
3743
|
+
/* @__PURE__ */ t(ta, { className: "h-3.5 w-3.5" }),
|
|
3721
3744
|
"Resume"
|
|
3722
|
-
] }) : /* @__PURE__ */
|
|
3723
|
-
/* @__PURE__ */ t(
|
|
3745
|
+
] }) : /* @__PURE__ */ i($, { children: [
|
|
3746
|
+
/* @__PURE__ */ t(ra, { className: "h-3.5 w-3.5" }),
|
|
3724
3747
|
"Pause"
|
|
3725
3748
|
] })
|
|
3726
3749
|
}
|
|
3727
3750
|
) : null,
|
|
3728
|
-
/* @__PURE__ */ t(
|
|
3729
|
-
/* @__PURE__ */
|
|
3730
|
-
|
|
3751
|
+
/* @__PURE__ */ t(Ke, {}),
|
|
3752
|
+
/* @__PURE__ */ i(
|
|
3753
|
+
X,
|
|
3731
3754
|
{
|
|
3732
3755
|
onClick: (f) => {
|
|
3733
3756
|
f.preventDefault(), d();
|
|
3734
3757
|
},
|
|
3735
3758
|
className: "text-destructive focus:bg-destructive/10 focus:text-destructive",
|
|
3736
3759
|
children: [
|
|
3737
|
-
/* @__PURE__ */ t(
|
|
3760
|
+
/* @__PURE__ */ t(Ge, { className: "h-3.5 w-3.5" }),
|
|
3738
3761
|
"Delete ",
|
|
3739
3762
|
m.noun
|
|
3740
3763
|
]
|
|
@@ -3760,25 +3783,25 @@ function ms(e, r, o) {
|
|
|
3760
3783
|
}
|
|
3761
3784
|
async function ps(e) {
|
|
3762
3785
|
const o = [];
|
|
3763
|
-
let a = 1, n = 0,
|
|
3764
|
-
for (; n <
|
|
3786
|
+
let a = 1, n = 0, s = Number.POSITIVE_INFINITY;
|
|
3787
|
+
for (; n < s; ) {
|
|
3765
3788
|
const d = await e.apiClient.listBriefings(
|
|
3766
3789
|
e.apiServiceUrl,
|
|
3767
3790
|
e.token,
|
|
3768
3791
|
{ scope: "organization", page: a, pageSize: 100 }
|
|
3769
3792
|
);
|
|
3770
|
-
if (o.push(...d.briefings), n += d.briefings.length,
|
|
3793
|
+
if (o.push(...d.briefings), n += d.briefings.length, s = d.total, d.briefings.length === 0 || n >= s) break;
|
|
3771
3794
|
a += 1;
|
|
3772
3795
|
}
|
|
3773
3796
|
return o;
|
|
3774
3797
|
}
|
|
3775
3798
|
const fs = {
|
|
3776
|
-
listBriefings:
|
|
3777
|
-
getBriefing:
|
|
3778
|
-
pauseBriefing:
|
|
3779
|
-
resumeBriefing:
|
|
3780
|
-
deleteBriefing:
|
|
3781
|
-
runBriefingNow:
|
|
3799
|
+
listBriefings: da,
|
|
3800
|
+
getBriefing: ca,
|
|
3801
|
+
pauseBriefing: la,
|
|
3802
|
+
resumeBriefing: ia,
|
|
3803
|
+
deleteBriefing: oa,
|
|
3804
|
+
runBriefingNow: sa
|
|
3782
3805
|
};
|
|
3783
3806
|
function gs({
|
|
3784
3807
|
briefingId: e,
|
|
@@ -3786,10 +3809,10 @@ function gs({
|
|
|
3786
3809
|
apiServiceUrl: o,
|
|
3787
3810
|
token: a,
|
|
3788
3811
|
onTerminal: n,
|
|
3789
|
-
onTimeout:
|
|
3812
|
+
onTimeout: s,
|
|
3790
3813
|
onExpand: d
|
|
3791
3814
|
}) {
|
|
3792
|
-
const [c, l] = F(r), { startRun: u } =
|
|
3815
|
+
const [c, l] = F(r), { startRun: u } = va({
|
|
3793
3816
|
apiServiceUrl: o,
|
|
3794
3817
|
token: a,
|
|
3795
3818
|
intervalMs: cs,
|
|
@@ -3798,7 +3821,7 @@ function gs({
|
|
|
3798
3821
|
apiServiceUrl: p,
|
|
3799
3822
|
token: m,
|
|
3800
3823
|
runId: g
|
|
3801
|
-
}) =>
|
|
3824
|
+
}) => xa(p, m, e, g),
|
|
3802
3825
|
onRun: (p) => {
|
|
3803
3826
|
l(p);
|
|
3804
3827
|
},
|
|
@@ -3806,15 +3829,15 @@ function gs({
|
|
|
3806
3829
|
n(p);
|
|
3807
3830
|
},
|
|
3808
3831
|
onTimeout: () => {
|
|
3809
|
-
|
|
3832
|
+
s();
|
|
3810
3833
|
}
|
|
3811
3834
|
}), h = ge(!1);
|
|
3812
3835
|
return J(() => {
|
|
3813
|
-
h.current || (h.current = !0,
|
|
3814
|
-
}, [r, n, u]), /* @__PURE__ */ t(
|
|
3836
|
+
h.current || (h.current = !0, ya(r.status) ? u(r) : Ca(r.status) && n(r));
|
|
3837
|
+
}, [r, n, u]), /* @__PURE__ */ t(wa, { run: c, onExpand: d });
|
|
3815
3838
|
}
|
|
3816
|
-
function
|
|
3817
|
-
return /* @__PURE__ */ t(
|
|
3839
|
+
function ro(e) {
|
|
3840
|
+
return /* @__PURE__ */ t(aa, { children: /* @__PURE__ */ t(bs, { ...e }) });
|
|
3818
3841
|
}
|
|
3819
3842
|
function bs({
|
|
3820
3843
|
dashboardId: e,
|
|
@@ -3822,7 +3845,7 @@ function bs({
|
|
|
3822
3845
|
apiServiceUrl: o,
|
|
3823
3846
|
token: a,
|
|
3824
3847
|
disabled: n,
|
|
3825
|
-
className:
|
|
3848
|
+
className: s,
|
|
3826
3849
|
manageBriefingsHref: d,
|
|
3827
3850
|
open: c,
|
|
3828
3851
|
onOpenChange: l,
|
|
@@ -3830,7 +3853,7 @@ function bs({
|
|
|
3830
3853
|
workflowIntent: h,
|
|
3831
3854
|
client: p
|
|
3832
3855
|
}) {
|
|
3833
|
-
const { authToken: m, tokenProps: g } = Be(), f =
|
|
3856
|
+
const { authToken: m, tokenProps: g } = Be(), f = na(), b = !h || f.canCreate && (h === "scheduled_report" || f.analyticalBriefingsEnabled), [k, v] = F(!1), D = c ?? k, E = (A) => {
|
|
3834
3857
|
c === void 0 && v(A), l == null || l(A);
|
|
3835
3858
|
}, [N, y] = F(
|
|
3836
3859
|
h ? "author" : "list"
|
|
@@ -3838,7 +3861,7 @@ function bs({
|
|
|
3838
3861
|
h ?? "analytical_briefing"
|
|
3839
3862
|
), [x, B] = F("dashboard"), [I, W] = F(
|
|
3840
3863
|
[]
|
|
3841
|
-
), [P, M] = F(null), Z = h && !b && !P ? "list" : N, [K, Ce] = F(!1), [ce, O] = F(null), [te, re] = F(null), [
|
|
3864
|
+
), [P, M] = F(null), Z = h && !b && !P ? "list" : N, [K, Ce] = F(!1), [ce, O] = F(null), [te, re] = F(null), [L, ae] = F(
|
|
3842
3865
|
null
|
|
3843
3866
|
), [le, G] = F(null), be = ge(null), ke = ge(D);
|
|
3844
3867
|
J(() => {
|
|
@@ -3898,7 +3921,7 @@ function bs({
|
|
|
3898
3921
|
M(null), B("dashboard"), y("list"), E(!0);
|
|
3899
3922
|
}, C = (A) => {
|
|
3900
3923
|
M(null), S(A), y("author");
|
|
3901
|
-
},
|
|
3924
|
+
}, R = async (A) => {
|
|
3902
3925
|
if (!(!q || !H)) {
|
|
3903
3926
|
O(A), G(null);
|
|
3904
3927
|
try {
|
|
@@ -3927,7 +3950,7 @@ function bs({
|
|
|
3927
3950
|
{ requestId: vs() }
|
|
3928
3951
|
), ne();
|
|
3929
3952
|
} catch (_) {
|
|
3930
|
-
|
|
3953
|
+
V.error(
|
|
3931
3954
|
_ instanceof Error ? _.message : "Could not start the run."
|
|
3932
3955
|
);
|
|
3933
3956
|
} finally {
|
|
@@ -3948,19 +3971,19 @@ function bs({
|
|
|
3948
3971
|
H,
|
|
3949
3972
|
A.id
|
|
3950
3973
|
);
|
|
3951
|
-
|
|
3974
|
+
V.success(
|
|
3952
3975
|
$e.briefing.status === "PAUSED" ? `${Oe} paused` : `${Oe} resumed`
|
|
3953
3976
|
), ne();
|
|
3954
3977
|
} catch ($e) {
|
|
3955
|
-
|
|
3978
|
+
V.error(
|
|
3956
3979
|
$e instanceof Error ? $e.message : `Could not update the ${_} status.`
|
|
3957
3980
|
);
|
|
3958
3981
|
} finally {
|
|
3959
3982
|
re(null);
|
|
3960
3983
|
}
|
|
3961
3984
|
}, fe = async () => {
|
|
3962
|
-
if (!
|
|
3963
|
-
const A =
|
|
3985
|
+
if (!L || !q || !H) return;
|
|
3986
|
+
const A = L;
|
|
3964
3987
|
re(A.id);
|
|
3965
3988
|
try {
|
|
3966
3989
|
await he.deleteBriefing(
|
|
@@ -3969,27 +3992,27 @@ function bs({
|
|
|
3969
3992
|
A.id
|
|
3970
3993
|
);
|
|
3971
3994
|
const { noun: _ } = me(A);
|
|
3972
|
-
|
|
3995
|
+
V.success(`${_ === "report" ? "Report" : "Briefing"} deleted`), ae(null), ne();
|
|
3973
3996
|
} catch (_) {
|
|
3974
|
-
|
|
3997
|
+
V.error(
|
|
3975
3998
|
_ instanceof Error ? _.message : "Could not delete the briefing."
|
|
3976
3999
|
);
|
|
3977
4000
|
} finally {
|
|
3978
4001
|
re(null);
|
|
3979
4002
|
}
|
|
3980
4003
|
}, mr = _e.length;
|
|
3981
|
-
return f.surfaceVisible ? /* @__PURE__ */
|
|
4004
|
+
return f.surfaceVisible ? /* @__PURE__ */ i(ua, { open: D, onOpenChange: E, children: [
|
|
3982
4005
|
u ? null : /* @__PURE__ */ t(
|
|
3983
4006
|
Yn,
|
|
3984
4007
|
{
|
|
3985
4008
|
disabled: n || !Ie,
|
|
3986
4009
|
briefingCount: mr,
|
|
3987
|
-
className:
|
|
4010
|
+
className: s,
|
|
3988
4011
|
onClick: Pe
|
|
3989
4012
|
}
|
|
3990
4013
|
),
|
|
3991
|
-
/* @__PURE__ */
|
|
3992
|
-
|
|
4014
|
+
/* @__PURE__ */ i(
|
|
4015
|
+
ha,
|
|
3993
4016
|
{
|
|
3994
4017
|
ref: be,
|
|
3995
4018
|
side: "right",
|
|
@@ -4000,12 +4023,12 @@ function bs({
|
|
|
4000
4023
|
A.preventDefault(), (_ = be.current) == null || _.focus({ preventScroll: !0 });
|
|
4001
4024
|
},
|
|
4002
4025
|
children: [
|
|
4003
|
-
/* @__PURE__ */
|
|
4004
|
-
/* @__PURE__ */ t(
|
|
4005
|
-
/* @__PURE__ */ t(
|
|
4026
|
+
/* @__PURE__ */ i(ma, { className: "sr-only", children: [
|
|
4027
|
+
/* @__PURE__ */ t(pa, { children: "Reports & briefings" }),
|
|
4028
|
+
/* @__PURE__ */ t(fa, { children: "Manage reports and briefings for this dashboard." })
|
|
4006
4029
|
] }),
|
|
4007
|
-
h ? /* @__PURE__ */
|
|
4008
|
-
/* @__PURE__ */
|
|
4030
|
+
h ? /* @__PURE__ */ i("div", { className: "flex shrink-0 items-start justify-between gap-3 border-b border-border pl-4 pr-3 pt-2", children: [
|
|
4031
|
+
/* @__PURE__ */ i(
|
|
4009
4032
|
"div",
|
|
4010
4033
|
{
|
|
4011
4034
|
className: "flex items-center gap-5",
|
|
@@ -4019,7 +4042,7 @@ function bs({
|
|
|
4019
4042
|
role: "tab",
|
|
4020
4043
|
"aria-selected": Z === "author",
|
|
4021
4044
|
disabled: !b,
|
|
4022
|
-
className:
|
|
4045
|
+
className: Y(
|
|
4023
4046
|
"-mb-px border-b-2 px-0.5 pb-2 text-[12px] transition-colors",
|
|
4024
4047
|
Z === "author" ? "border-foreground font-medium text-foreground" : "border-transparent text-muted-foreground hover:text-foreground",
|
|
4025
4048
|
!b && "cursor-not-allowed opacity-50"
|
|
@@ -4036,7 +4059,7 @@ function bs({
|
|
|
4036
4059
|
type: "button",
|
|
4037
4060
|
role: "tab",
|
|
4038
4061
|
"aria-selected": Z === "list",
|
|
4039
|
-
className:
|
|
4062
|
+
className: Y(
|
|
4040
4063
|
"-mb-px border-b-2 px-0.5 pb-2 text-[12px] transition-colors",
|
|
4041
4064
|
Z === "list" ? "border-foreground font-medium text-foreground" : "border-transparent text-muted-foreground hover:text-foreground"
|
|
4042
4065
|
),
|
|
@@ -4069,7 +4092,7 @@ function bs({
|
|
|
4069
4092
|
onSourceViewChange: B,
|
|
4070
4093
|
onClose: () => E(!1),
|
|
4071
4094
|
onEdit: (A) => {
|
|
4072
|
-
|
|
4095
|
+
R(A);
|
|
4073
4096
|
},
|
|
4074
4097
|
onNew: C,
|
|
4075
4098
|
canCreate: !h && Fe.length > 0,
|
|
@@ -4093,7 +4116,7 @@ function bs({
|
|
|
4093
4116
|
hideHeader: !!h
|
|
4094
4117
|
}
|
|
4095
4118
|
) : /* @__PURE__ */ t(
|
|
4096
|
-
|
|
4119
|
+
ga,
|
|
4097
4120
|
{
|
|
4098
4121
|
apiServiceUrl: q,
|
|
4099
4122
|
token: H,
|
|
@@ -4107,7 +4130,7 @@ function bs({
|
|
|
4107
4130
|
onCancel: () => E(!1),
|
|
4108
4131
|
onDeleted: () => {
|
|
4109
4132
|
const A = P ? me(P).noun : "briefing";
|
|
4110
|
-
|
|
4133
|
+
V.success(`${A === "report" ? "Report" : "Briefing"} deleted`), M(null), y("list"), ne();
|
|
4111
4134
|
},
|
|
4112
4135
|
onRunStarted: () => {
|
|
4113
4136
|
},
|
|
@@ -4144,7 +4167,7 @@ function bs({
|
|
|
4144
4167
|
}
|
|
4145
4168
|
) : null,
|
|
4146
4169
|
se ? /* @__PURE__ */ t("div", { className: "fixed bottom-4 right-4 z-50 w-[360px]", children: /* @__PURE__ */ t(
|
|
4147
|
-
|
|
4170
|
+
ba,
|
|
4148
4171
|
{
|
|
4149
4172
|
title: se.run.status === "SUCCESS" ? `${se.briefing.name} is ready` : `${se.briefing.name} run failed`,
|
|
4150
4173
|
durationSeconds: se.run.startedAt && se.run.completedAt ? Math.max(
|
|
@@ -4163,27 +4186,27 @@ function bs({
|
|
|
4163
4186
|
/* @__PURE__ */ t(
|
|
4164
4187
|
pt,
|
|
4165
4188
|
{
|
|
4166
|
-
open: !!
|
|
4189
|
+
open: !!L,
|
|
4167
4190
|
onOpenChange: (A) => {
|
|
4168
4191
|
A || ae(null);
|
|
4169
4192
|
},
|
|
4170
|
-
children: /* @__PURE__ */
|
|
4171
|
-
/* @__PURE__ */
|
|
4172
|
-
/* @__PURE__ */
|
|
4193
|
+
children: /* @__PURE__ */ i(ft, { children: [
|
|
4194
|
+
/* @__PURE__ */ i(gt, { children: [
|
|
4195
|
+
/* @__PURE__ */ i(bt, { children: [
|
|
4173
4196
|
"Delete",
|
|
4174
4197
|
" ",
|
|
4175
|
-
|
|
4198
|
+
L ? me(L).noun : "briefing",
|
|
4176
4199
|
"?"
|
|
4177
4200
|
] }),
|
|
4178
|
-
/* @__PURE__ */
|
|
4201
|
+
/* @__PURE__ */ i(vt, { children: [
|
|
4179
4202
|
"This permanently deletes ",
|
|
4180
|
-
/* @__PURE__ */ t("strong", { children:
|
|
4203
|
+
/* @__PURE__ */ t("strong", { children: L == null ? void 0 : L.name }),
|
|
4181
4204
|
". Recipients will stop receiving it."
|
|
4182
4205
|
] })
|
|
4183
4206
|
] }),
|
|
4184
|
-
/* @__PURE__ */
|
|
4207
|
+
/* @__PURE__ */ i(xt, { children: [
|
|
4185
4208
|
/* @__PURE__ */ t(yt, { children: "Cancel" }),
|
|
4186
|
-
/* @__PURE__ */
|
|
4209
|
+
/* @__PURE__ */ i(
|
|
4187
4210
|
jt,
|
|
4188
4211
|
{
|
|
4189
4212
|
className: "bg-destructive/90 hover:bg-destructive",
|
|
@@ -4191,7 +4214,7 @@ function bs({
|
|
|
4191
4214
|
children: [
|
|
4192
4215
|
"Delete",
|
|
4193
4216
|
" ",
|
|
4194
|
-
|
|
4217
|
+
L ? me(L).noun : "briefing"
|
|
4195
4218
|
]
|
|
4196
4219
|
}
|
|
4197
4220
|
)
|
|
@@ -4205,20 +4228,21 @@ function vs() {
|
|
|
4205
4228
|
return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `briefing-run-now-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
4206
4229
|
}
|
|
4207
4230
|
export {
|
|
4208
|
-
|
|
4231
|
+
Ks as A,
|
|
4209
4232
|
_n as D,
|
|
4210
4233
|
Bn as E,
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4234
|
+
eo as N,
|
|
4235
|
+
Xs as U,
|
|
4236
|
+
Hs as V,
|
|
4214
4237
|
Yn as W,
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4238
|
+
Gs as a,
|
|
4239
|
+
Rn as b,
|
|
4240
|
+
Zs as c,
|
|
4241
|
+
Js as d,
|
|
4219
4242
|
$n as e,
|
|
4220
4243
|
Hn as f,
|
|
4221
|
-
|
|
4222
|
-
|
|
4223
|
-
|
|
4244
|
+
to as g,
|
|
4245
|
+
ro as h,
|
|
4246
|
+
Ys as i,
|
|
4247
|
+
Qs as u
|
|
4224
4248
|
};
|