react-semaphor 0.1.310 → 0.1.313

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/brand-studio/index.cjs +1 -1
  2. package/dist/brand-studio/index.js +4 -4
  3. package/dist/chunks/{braces-B_1DhXjs.js → braces-NfG5hX2c.js} +1 -1
  4. package/dist/chunks/{braces-BataYVhi.js → braces-raPCNcS4.js} +1 -1
  5. package/dist/chunks/{chevrons-up-down-CfMX77Ug.js → chevrons-up-down-BYzO4q5w.js} +1 -1
  6. package/dist/chunks/{chevrons-up-down-2PuJgXa0.js → chevrons-up-down-DiWloubI.js} +1 -1
  7. package/dist/chunks/dashboard-controls-DMsmUQkB.js +2043 -0
  8. package/dist/chunks/dashboard-controls-wPVXTTiH.js +57 -0
  9. package/dist/chunks/dashboard-filter-controls-launcher-CqXgWEa1.js +1540 -0
  10. package/dist/chunks/dashboard-filter-controls-launcher-DBmNn4EY.js +11 -0
  11. package/dist/chunks/{dashboard-json-A9m16zgO.js → dashboard-json-CHoCrAp0.js} +2 -2
  12. package/dist/chunks/{dashboard-json-CUYxXIbj.js → dashboard-json-DMFZLkws.js} +1 -1
  13. package/dist/chunks/{dashboard-summary-settings-dialog-BFldiulJ.js → dashboard-summary-settings-dialog-CZkn4rtm.js} +3 -3
  14. package/dist/chunks/{dashboard-summary-settings-dialog-Dl80Vf3Y.js → dashboard-summary-settings-dialog-DoxcpXjk.js} +1 -1
  15. package/dist/chunks/{edit-dashboard-visual-C013lDvS.js → edit-dashboard-visual-B0Ae_O25.js} +7914 -7747
  16. package/dist/chunks/edit-dashboard-visual-CIP9G-Bu.js +183 -0
  17. package/dist/chunks/{index-scc12bkM.js → index-D7e2Eyp_.js} +37705 -36938
  18. package/dist/chunks/index-DjZqoaV5.js +1330 -0
  19. package/dist/chunks/{palette-DIqG9FgB.js → palette-7yJYVEvk.js} +1 -1
  20. package/dist/chunks/{palette-CuxyTPBF.js → palette-CJTdBzJB.js} +1 -1
  21. package/dist/chunks/{resource-management-panel-CkS-1IEw.js → resource-management-panel-B1mhnY97.js} +1 -1
  22. package/dist/chunks/{resource-management-panel-xJtqTzS8.js → resource-management-panel-CSkNW3es.js} +3 -3
  23. package/dist/chunks/{save-CPHrveZg.js → save-B8x5Vi0W.js} +1 -1
  24. package/dist/chunks/{save-CP9_rxYk.js → save-DDX_vrED.js} +1 -1
  25. package/dist/chunks/{switch-DXHYEa_J.js → switch-DEPWsRhf.js} +3343 -3251
  26. package/dist/chunks/switch-DPaKnsb8.js +168 -0
  27. package/dist/chunks/use-create-flow-overlay-state-7LiC_vaL.js +16 -0
  28. package/dist/chunks/{use-create-flow-overlay-state-C77yBFiq.js → use-create-flow-overlay-state-BHQjJwik.js} +511 -483
  29. package/dist/chunks/{use-visual-utils-Cm2IkP1c.js → use-visual-utils-Bz7kjSrk.js} +1 -1
  30. package/dist/chunks/{use-visual-utils-BqljNzWn.js → use-visual-utils-Dw-uLgop.js} +2 -2
  31. package/dist/dashboard/index.cjs +1 -1
  32. package/dist/dashboard/index.js +1 -1
  33. package/dist/index.cjs +1 -1
  34. package/dist/index.js +76 -74
  35. package/dist/style.css +1 -1
  36. package/dist/surfboard/index.cjs +1 -1
  37. package/dist/surfboard/index.js +2 -2
  38. package/dist/types/dashboard.d.ts +6 -3
  39. package/dist/types/main.d.ts +88 -25
  40. package/dist/types/shared.d.ts +6 -3
  41. package/dist/types/surfboard.d.ts +6 -3
  42. package/dist/types/types.d.ts +6 -3
  43. package/package.json +1 -1
  44. package/dist/chunks/dashboard-controls-CZH2CHE6.js +0 -57
  45. package/dist/chunks/dashboard-controls-DKNSTyu3.js +0 -2274
  46. package/dist/chunks/dashboard-filter-controls-button-C5FGXiyJ.js +0 -1116
  47. package/dist/chunks/dashboard-filter-controls-button-CRYFNfgr.js +0 -11
  48. package/dist/chunks/edit-dashboard-visual-Bt6wP1pc.js +0 -183
  49. package/dist/chunks/index-C_mYCH5V.js +0 -1330
  50. package/dist/chunks/switch-BFPV36rd.js +0 -168
  51. package/dist/chunks/use-create-flow-overlay-state-nhcTzyJQ.js +0 -16
@@ -1 +1 @@
1
- "use strict";const u=require("./index-C_mYCH5V.js"),f=require("./switch-BFPV36rd.js"),S=require("react");function K(e){const[a,s]=S.useState(null),[r,t]=S.useState(null),o=u.useEnsureReactGlobals();return S.useEffect(()=>{if(!e||e.trim()===""){s(null),t(null);return}if(!o)return;(async()=>{try{if(!e.startsWith("http://")&&!e.startsWith("https://"))throw new Error(`Invalid URL format: ${e}`);try{new URL(e)}catch{throw new Error(`Invalid URL: ${e}`)}const i=`${e.endsWith("/")?e:`${e}/`}index.js`;try{if(!(await fetch(i,{method:"HEAD"})).ok)throw new Error(`Module not found at ${i}`)}catch{}const m=await import(i);if(typeof m.useChartStore!="function")throw new Error("useChartStore is not a function");s(()=>m.useChartStore),t(null)}catch(n){const i=n instanceof Error?n.message:"Unknown error";console.error("Failed to load remote chart store:",i),t(i),s(null)}})()},[e,o]),a}function X(e,a){if(e.length===0)return"";const s=e.find(r=>{var t,o;return((t=r.customCardPreferences)==null?void 0:t.visualType)==="multiple"||!!((o=r.customCardPreferences)!=null&&o.dataInputCardIds)});if(s)return s.id;if(a){const r=e.find(t=>t.id===a);if(r){const t=r.tabTitle;if(t=="All__Header")return e[0].id;if(t&&t.endsWith("__Header")){const l=t.split("__")[0],n=e.find(i=>i.tabTitle===l);return n?n.id:e[0].id}return a}}return e[0].id}const A=new Set;function Y(e){return A.add(e),()=>{A.delete(e)}}function z(){A.forEach(e=>{e()})}const Z=e=>{if(!e||!("detailTableBackup"in e))return e;const{detailTableBackup:a,...s}=e;return s};async function B(e,a,s,r){if(!a||!s)throw new Error("Missing auth token or visual ID");const t=["resource-by-id","visual",s],o=r.getQueryData(t);if(o)return console.log("Using cached visual data for:",s),{data:o,fromCache:!0};console.log("Fetching visual data from network for:",s);const l=u.ue.loading("Loading visual...",{position:"top-center"});try{const n=await fetch(`${e}/management/v1/visuals/${s}`,{headers:{Authorization:`Bearer ${a}`}});if(!n.ok)throw new Error("Failed to load visual");const i=await n.json();return r.setQueryData(t,i),u.ue.dismiss(l),{data:i,fromCache:!1}}catch(n){throw u.ue.dismiss(l),n}}function H(e){if(typeof e=="string")return JSON.parse(e);if(typeof e=="object")return e;throw new Error("Invalid frame object format")}function ee(e,a){var o,l;const s=(e==null?void 0:e.frameObject)??((o=e==null?void 0:e.visual)==null?void 0:o.frameObject);if(!s)return!1;const r=H(s);if(!(r!=null&&r.cards)||r.cards.length===0)return!1;const t=(l=r.cards)==null?void 0:l.find(n=>n.id===r.activeCardId);return t?(u.setupEditorWithCard({...a,frame:r,card:t,visualId:(e==null?void 0:e.id)||r.visualId}),!0):!1}function te(){const e=f.useEditorStore(r=>{var t;return((t=r.card.customCardPreferences)==null?void 0:t.url)||""}),a=K(e);return{getUpdatedFrame:S.useCallback(()=>{var b;z();const{frame:r,card:t,isDevMode:o,isShowingVisual:l,selectedSchemaName:n,selectedDatamodelId:i,selectedDatabaseName:m,selectedTableName:p,selectedConnectionId:y}=f.useEditorStore.getState(),I=t.sql,U=(b=a==null?void 0:a.getState())==null?void 0:b.settings,V=f.buildSavedEditorCard(t,{isDevMode:o,cardSql:I,isShowingVisual:l,selectedSchemaName:n,selectedDatamodelId:i,selectedDatabaseName:m,selectedTableName:p,selectedConnectionId:y,remoteChartSettings:U,stripConfig:Z}),g=r.cards.map(E=>E.id===t.id?V:E);return{...r,cards:g,activeCardId:X(g,r.activeCardId)}},[a])}}function re(){const{authToken:e,tokenProps:a}=u.useSemaphorContext(),s=u.useQueryClient(),r=u.useAddFrameWithFreshSemanticExecutionPayload(),t=u.useSelectedVisual(),{selectVisual:o}=u.useManagementActions(),{setFrame:l,setCard:n,setIsDevMode:i,initializeModeDrafts:m,setActiveTabCardId:p,updateDataSource:y,setQueryResultColumns:I,setSelectedConnectionId:U,setSelectedDatabaseName:V,setSelectedSchemaName:g,setSelectedTableName:b,setSelectedDatamodelId:E,setFilterValues:P,setInlineFilterValuesMap:M,setApplyFilters:k,clearEditorContext:L}=f.useEditorActions(),{setIsDashboardEditing:v,setIsVisualEditing:T,setSelectedFrameId:j,clearSelectedFrameId:N,setIsDashboardPanelOpen:R}=f.useDashboardActions(),w=f.useDashboardStore(c=>c.selectedSheetId),W=f.useDashboardStore(c=>c.selectedFrameId),$=f.useDashboardStore(c=>c.dashboard),_=f.useDashboardStore(c=>c.filterValues),x=f.useDashboardStore(c=>c.inlineFilterValuesMap),F=u.useVisualById((t==null?void 0:t.id)||"",{enabled:!!(t!=null&&t.id)&&!!(e!=null&&e.accessToken)}),Q=S.useCallback(async c=>{try{o(c),N(),L();const{data:h,fromCache:D}=await B(a.apiServiceUrl,(e==null?void 0:e.accessToken)||"",c.id,s);if(!ee(h,{setFrame:l,setCard:n,setIsDevMode:i,initializeModeDrafts:m,setActiveTabCardId:p,updateDataSource:y,setQueryResultColumns:I,setSelectedConnectionId:U,setSelectedDatabaseName:V,setSelectedSchemaName:g,setSelectedTableName:b,setSelectedDatamodelId:E,setFilterValues:P,setInlineFilterValuesMap:M,setApplyFilters:k,setIsDashboardEditing:v,setIsVisualEditing:T,dashboard:$,selectedSheetId:w,selectedFrameId:W,filterValues:_,inlineFilterValuesMap:x}))throw new Error("Failed to setup editor with visual data");return{success:!0,fromCache:D}}catch(h){return console.error("Error editing visual:",h),{success:!1,error:"Failed to load visual for editing"}}},[e==null?void 0:e.accessToken,a.apiServiceUrl,s,o,l,n,v,T,i,m,p,y,I,U,V,g,b,E,P,M,k,L,N,$,w,W,_,x]),G=S.useCallback(async c=>{var D;const h=d=>(u.ue.error(d),{success:!1,error:d});try{if(o(c),!w)return h("No sheet selected. Please select a sheet first.");const{data:d,fromCache:J}=await B(a.apiServiceUrl,(e==null?void 0:e.accessToken)||"",c.id,s),O=(d==null?void 0:d.frameObject)??((D=d==null?void 0:d.visual)==null?void 0:D.frameObject);if(!O)return h("Visual has no frame data");const C=H(O);if(!(C!=null&&C.cards)||C.cards.length===0)return h("Visual frame is malformed");const q={...u.cloneLinkedFrameWithSourceMapping(C),visualId:c.id};return await r(w,q,"end"),v(!0),j(q.id),R(!1),{success:!0,fromCache:J}}catch(d){return console.error("Error adding visual:",d),h(d instanceof Error?d.message:"Failed to add visual to dashboard")}},[e==null?void 0:e.accessToken,a.apiServiceUrl,s,o,w,v,j,R,r]);return{visual:F.data,isLoading:F.isLoading,isError:F.isError,error:F.error,handleEditLibraryVisual:Q,handleAddLibraryVisual:G,getUpdatedFrame:te().getUpdatedFrame,refetch:F.refetch}}exports.flushPendingEditorDrafts=z;exports.registerPendingEditorDraftFlusher=Y;exports.useVisualUtils=re;
1
+ "use strict";const u=require("./index-DjZqoaV5.js"),f=require("./switch-DPaKnsb8.js"),S=require("react");function K(e){const[a,s]=S.useState(null),[r,t]=S.useState(null),o=u.useEnsureReactGlobals();return S.useEffect(()=>{if(!e||e.trim()===""){s(null),t(null);return}if(!o)return;(async()=>{try{if(!e.startsWith("http://")&&!e.startsWith("https://"))throw new Error(`Invalid URL format: ${e}`);try{new URL(e)}catch{throw new Error(`Invalid URL: ${e}`)}const i=`${e.endsWith("/")?e:`${e}/`}index.js`;try{if(!(await fetch(i,{method:"HEAD"})).ok)throw new Error(`Module not found at ${i}`)}catch{}const m=await import(i);if(typeof m.useChartStore!="function")throw new Error("useChartStore is not a function");s(()=>m.useChartStore),t(null)}catch(n){const i=n instanceof Error?n.message:"Unknown error";console.error("Failed to load remote chart store:",i),t(i),s(null)}})()},[e,o]),a}function X(e,a){if(e.length===0)return"";const s=e.find(r=>{var t,o;return((t=r.customCardPreferences)==null?void 0:t.visualType)==="multiple"||!!((o=r.customCardPreferences)!=null&&o.dataInputCardIds)});if(s)return s.id;if(a){const r=e.find(t=>t.id===a);if(r){const t=r.tabTitle;if(t=="All__Header")return e[0].id;if(t&&t.endsWith("__Header")){const l=t.split("__")[0],n=e.find(i=>i.tabTitle===l);return n?n.id:e[0].id}return a}}return e[0].id}const A=new Set;function Y(e){return A.add(e),()=>{A.delete(e)}}function z(){A.forEach(e=>{e()})}const Z=e=>{if(!e||!("detailTableBackup"in e))return e;const{detailTableBackup:a,...s}=e;return s};async function B(e,a,s,r){if(!a||!s)throw new Error("Missing auth token or visual ID");const t=["resource-by-id","visual",s],o=r.getQueryData(t);if(o)return console.log("Using cached visual data for:",s),{data:o,fromCache:!0};console.log("Fetching visual data from network for:",s);const l=u.ue.loading("Loading visual...",{position:"top-center"});try{const n=await fetch(`${e}/management/v1/visuals/${s}`,{headers:{Authorization:`Bearer ${a}`}});if(!n.ok)throw new Error("Failed to load visual");const i=await n.json();return r.setQueryData(t,i),u.ue.dismiss(l),{data:i,fromCache:!1}}catch(n){throw u.ue.dismiss(l),n}}function H(e){if(typeof e=="string")return JSON.parse(e);if(typeof e=="object")return e;throw new Error("Invalid frame object format")}function ee(e,a){var o,l;const s=(e==null?void 0:e.frameObject)??((o=e==null?void 0:e.visual)==null?void 0:o.frameObject);if(!s)return!1;const r=H(s);if(!(r!=null&&r.cards)||r.cards.length===0)return!1;const t=(l=r.cards)==null?void 0:l.find(n=>n.id===r.activeCardId);return t?(u.setupEditorWithCard({...a,frame:r,card:t,visualId:(e==null?void 0:e.id)||r.visualId}),!0):!1}function te(){const e=f.useEditorStore(r=>{var t;return((t=r.card.customCardPreferences)==null?void 0:t.url)||""}),a=K(e);return{getUpdatedFrame:S.useCallback(()=>{var b;z();const{frame:r,card:t,isDevMode:o,isShowingVisual:l,selectedSchemaName:n,selectedDatamodelId:i,selectedDatabaseName:m,selectedTableName:p,selectedConnectionId:y}=f.useEditorStore.getState(),I=t.sql,U=(b=a==null?void 0:a.getState())==null?void 0:b.settings,V=f.buildSavedEditorCard(t,{isDevMode:o,cardSql:I,isShowingVisual:l,selectedSchemaName:n,selectedDatamodelId:i,selectedDatabaseName:m,selectedTableName:p,selectedConnectionId:y,remoteChartSettings:U,stripConfig:Z}),g=r.cards.map(E=>E.id===t.id?V:E);return{...r,cards:g,activeCardId:X(g,r.activeCardId)}},[a])}}function re(){const{authToken:e,tokenProps:a}=u.useSemaphorContext(),s=u.useQueryClient(),r=u.useAddFrameWithFreshSemanticExecutionPayload(),t=u.useSelectedVisual(),{selectVisual:o}=u.useManagementActions(),{setFrame:l,setCard:n,setIsDevMode:i,initializeModeDrafts:m,setActiveTabCardId:p,updateDataSource:y,setQueryResultColumns:I,setSelectedConnectionId:U,setSelectedDatabaseName:V,setSelectedSchemaName:g,setSelectedTableName:b,setSelectedDatamodelId:E,setFilterValues:P,setInlineFilterValuesMap:M,setApplyFilters:k,clearEditorContext:L}=f.useEditorActions(),{setIsDashboardEditing:v,setIsVisualEditing:T,setSelectedFrameId:j,clearSelectedFrameId:N,setIsDashboardPanelOpen:R}=f.useDashboardActions(),w=f.useDashboardStore(c=>c.selectedSheetId),W=f.useDashboardStore(c=>c.selectedFrameId),$=f.useDashboardStore(c=>c.dashboard),_=f.useDashboardStore(c=>c.filterValues),x=f.useDashboardStore(c=>c.inlineFilterValuesMap),F=u.useVisualById((t==null?void 0:t.id)||"",{enabled:!!(t!=null&&t.id)&&!!(e!=null&&e.accessToken)}),Q=S.useCallback(async c=>{try{o(c),N(),L();const{data:h,fromCache:D}=await B(a.apiServiceUrl,(e==null?void 0:e.accessToken)||"",c.id,s);if(!ee(h,{setFrame:l,setCard:n,setIsDevMode:i,initializeModeDrafts:m,setActiveTabCardId:p,updateDataSource:y,setQueryResultColumns:I,setSelectedConnectionId:U,setSelectedDatabaseName:V,setSelectedSchemaName:g,setSelectedTableName:b,setSelectedDatamodelId:E,setFilterValues:P,setInlineFilterValuesMap:M,setApplyFilters:k,setIsDashboardEditing:v,setIsVisualEditing:T,dashboard:$,selectedSheetId:w,selectedFrameId:W,filterValues:_,inlineFilterValuesMap:x}))throw new Error("Failed to setup editor with visual data");return{success:!0,fromCache:D}}catch(h){return console.error("Error editing visual:",h),{success:!1,error:"Failed to load visual for editing"}}},[e==null?void 0:e.accessToken,a.apiServiceUrl,s,o,l,n,v,T,i,m,p,y,I,U,V,g,b,E,P,M,k,L,N,$,w,W,_,x]),G=S.useCallback(async c=>{var D;const h=d=>(u.ue.error(d),{success:!1,error:d});try{if(o(c),!w)return h("No sheet selected. Please select a sheet first.");const{data:d,fromCache:J}=await B(a.apiServiceUrl,(e==null?void 0:e.accessToken)||"",c.id,s),O=(d==null?void 0:d.frameObject)??((D=d==null?void 0:d.visual)==null?void 0:D.frameObject);if(!O)return h("Visual has no frame data");const C=H(O);if(!(C!=null&&C.cards)||C.cards.length===0)return h("Visual frame is malformed");const q={...u.cloneLinkedFrameWithSourceMapping(C),visualId:c.id};return await r(w,q,"end"),v(!0),j(q.id),R(!1),{success:!0,fromCache:J}}catch(d){return console.error("Error adding visual:",d),h(d instanceof Error?d.message:"Failed to add visual to dashboard")}},[e==null?void 0:e.accessToken,a.apiServiceUrl,s,o,w,v,j,R,r]);return{visual:F.data,isLoading:F.isLoading,isError:F.isError,error:F.error,handleEditLibraryVisual:Q,handleAddLibraryVisual:G,getUpdatedFrame:te().getUpdatedFrame,refetch:F.refetch}}exports.flushPendingEditorDrafts=z;exports.registerPendingEditorDraftFlusher=Y;exports.useVisualUtils=re;
@@ -1,5 +1,5 @@
1
- import { p as X, u as Y, q as Z, r as ee, s as te, t as re, v as se, w as ae, o as V, x as oe } from "./index-scc12bkM.js";
2
- import { l as ne, m as ie, u as b, n as z, o as ce } from "./switch-DXHYEa_J.js";
1
+ import { p as X, u as Y, q as Z, r as ee, s as te, t as re, v as se, w as ae, o as V, x as oe } from "./index-D7e2Eyp_.js";
2
+ import { l as ne, m as ie, u as b, n as z, o as ce } from "./switch-DEPWsRhf.js";
3
3
  import { useState as H, useEffect as de, useCallback as A } from "react";
4
4
  function le(e) {
5
5
  const [a, s] = H(null), [r, t] = H(null), o = X();
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../chunks/index-C_mYCH5V.js"),e=require("../chunks/common-types-C73-Ud1-.js");exports.Dashboard=o.Dashboard;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../chunks/index-DjZqoaV5.js"),e=require("../chunks/common-types-C73-Ud1-.js");exports.Dashboard=o.Dashboard;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;
@@ -1,4 +1,4 @@
1
- import { D as o } from "../chunks/index-scc12bkM.js";
1
+ import { D as o } from "../chunks/index-D7e2Eyp_.js";
2
2
  import { C as s, E as C } from "../chunks/common-types-4bjoIgvm.js";
3
3
  export {
4
4
  s as CONTROL_CARD_DEFAULT_VALUE,
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-C_mYCH5V.js"),C=require("./chunks/common-types-C73-Ud1-.js"),L=require("./chunks/dashboard-summary-settings-dialog-Dl80Vf3Y.js"),t=require("react/jsx-runtime"),r=require("./chunks/switch-BFPV36rd.js"),m=require("react"),z=require("./chunks/resource-management-panel-CkS-1IEw.js"),B=require("./types/index.cjs"),q=require("./chunks/use-debounced-dirty-check-XHSwAefL.js");require("react-dom");require("./chunks/index-DRlMUglg.js");const D=require("./chunks/dashboard-filter-controls-button-CRYFNfgr.js"),O=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.js");function Q(s){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const o in s)if(o!=="default"){const l=Object.getOwnPropertyDescriptor(s,o);Object.defineProperty(a,o,l.get?l:{enumerable:!0,get:()=>s[o]})}}return a.default=s,Object.freeze(a)}const P=Q(m);function V(s){const{displayPreferences:a,cardId:o,...l}=s,i={...l,id:s.dashboardId};return t.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:t.jsxs(e.SemaphorContextProvider,{dashboardProps:i,children:[t.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:s.cardId}),t.jsx(e.UXProvider,{appearance:s.appearance,children:t.jsx(e.DisplayPreferencesProvider,{displayPreferences:a,children:t.jsx(e.Container,{type:"visual",cardId:o,...i,children:t.jsx(W,{cardId:o})})})})]})})}function W({cardId:s}){const a=r.useDashboardStore(i=>{var u;return(u=i.dashboard)==null?void 0:u.sheets}),{card:o,frame:l}=m.useMemo(()=>{const i=a==null?void 0:a.flatMap(d=>d.frames),u=i==null?void 0:i.flatMap(d=>d==null?void 0:d.cards),h=u==null?void 0:u.find(d=>(d==null?void 0:d.id)===s),n=i==null?void 0:i.find(d=>{var x;return(x=d==null?void 0:d.cards)==null?void 0:x.find(A=>(A==null?void 0:A.id)===s)});return{card:h,frame:n}},[a,s]);return!o||!l?t.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${s}`}):t.jsx("main",{className:"flex h-full grow flex-col",children:t.jsx(e.ErrorBoundary,{FallbackComponent:({error:i,resetErrorBoundary:u})=>t.jsx(e.FallbackVisual,{error:i,resetErrorBoundary:u,customerFacingMessage:"Error creating visual. Please try again."}),children:t.jsx(e.DashboardCard,{card:o,frame:l})})})}function H(s,a,o,l){m.useEffect(()=>{s&&!o&&a&&l(e.cloneDeep(a))},[s,o,a,l])}function $({name:s,items:a,value:o,onChange:l,isLoading:i,isError:u,refetch:h,className:n,icon:d,showNone:x=!1}){const A=P.useRef(null),[j,y]=P.useState(!1),[N,v]=P.useState("100%"),S=x?[...a||[],{id:"none",name:"None"}]:a;P.useLayoutEffect(()=>{A.current&&v(A.current.offsetWidth)},[]);function _(){var p;return i?"Loading...":u?"Error":o?(p=a==null?void 0:a.find(b=>b.id===o))==null?void 0:p.name:`Select ${s}`}function F(p,b){l(b),y(!1)}return t.jsxs(r.Popover,{open:j,onOpenChange:y,children:[t.jsx(r.PopoverTrigger,{asChild:!0,children:t.jsxs(r.Button,{ref:A,variant:"outline",role:"combobox","aria-expanded":j,className:r.cn("flex h-9 w-full justify-between",n),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[d&&t.jsx("div",{className:"mr-2",children:d}),t.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:_()})]}),t.jsx(r.ChevronDown,{className:"size-4 opacity-50"})]})}),t.jsx(r.PopoverContent,{className:"w-full p-0",style:{minWidth:N},children:t.jsxs(e.Command,{children:[t.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[t.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),t.jsx(e.IconButton,{className:"h-7",onClick:h,children:t.jsx(e.RefreshCw,{className:r.cn("size-3.5 opacity-50",i&&"animate-spin")})})]}),t.jsxs(e.CommandList,{children:[t.jsxs(e.CommandEmpty,{children:["No ",s==null?void 0:s.toLowerCase()," found."]}),t.jsx(e.CommandGroup,{children:S==null?void 0:S.map(p=>t.jsx(e.CommandItem,{className:"overflow-x-auto",value:p.name,onSelect:b=>F(b,p.id),children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(r.Check,{className:r.cn("size-4",o===p.id?"opacity-100":"opacity-0")}),t.jsx("div",{title:p.name,children:p.name})]})},p.id))})]})]})})]})}function G({triggerButtonClassName:s,variant:a="ghost"}){const[o,l]=m.useState(!1),i=r.useDashboardStore(h=>{var n;return(n=h.dashboard)==null?void 0:n.id}),u=r.useDashboardStore(h=>{var n;return(n=h.dashboard)==null?void 0:n.title});return i?t.jsxs(t.Fragment,{children:[t.jsx(e.IconButton,{tooltip:"Schedule Dashboard",className:r.cn("h-7 p-2",s),buttonProps:{variant:a},onClick:()=>l(!0),children:t.jsx(e.Clock,{className:"size-4"})}),t.jsx(e.EmailScheduleDialog,{open:o,onOpenChange:l,dashboardId:i,dashboardName:u})]}):null}function K(s){const{authToken:a,tokenProps:o}=e.useSemaphorContext();return e.useMutation({mutationFn:async l=>e.backtestAlert(o.apiServiceUrl,a.accessToken,s,l)})}function Y(s,a){m.useEffect(()=>(s&&a&&(window.__SEMAPHOR_PRINT_STATE__={...a}),()=>{s&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[s,a])}function I(s){if(!s)return"--";const a=new Date(s);return Number.isNaN(a.getTime())?"--":a.toLocaleString()}function X(s){var a;return((a=s.alertState)==null?void 0:a.currentState)==="FIRING"?"Signal surfaced":s.status==="ACTIVE"?"Watching":s.status==="PAUSED"?"Paused":s.status}function J({alertId:s,onBack:a}){var p,b,w,k;const{authToken:o,tokenProps:l}=e.useSemaphorContext(),{data:i,isLoading:u,refetch:h}=e.useAlertDetail(s),n=(i==null?void 0:i.alert)??null,[d,x]=m.useState([]),[A,j]=m.useState([]),[y,N]=m.useState(null),v=m.useCallback(async()=>{var f;const c=l==null?void 0:l.apiServiceUrl,g=o==null?void 0:o.accessToken;if(!c||!g||!s)return null;try{const T=await fetch(`${c}/v1/alerts/${s}/runs?limit=20`,{headers:{Authorization:`Bearer ${g}`}});if(T.ok){const R=await T.json(),E=Array.isArray(R.runs)?R.runs:[],M=y&&E.some(U=>U.id===y)?y:((f=E[0])==null?void 0:f.id)??null;return j(E),N(M),M}j([]),N(null)}catch{return j([]),N(null),null}return null},[s,o,y,l]),S=m.useCallback(async c=>{const g=l==null?void 0:l.apiServiceUrl,f=o==null?void 0:o.accessToken,T=c??y;if(!g||!f||!s||!T){x([]);return}try{const R=await fetch(`${g}/v1/alerts/${s}/runs/${T}/deliveries`,{headers:{Authorization:`Bearer ${f}`}});if(R.ok){const E=await R.json();x(Array.isArray(E.attempts)?E.attempts:[])}else x([])}catch{x([])}},[s,o,y,l]),_=m.useCallback(async()=>{await h();const c=await v();await S(c)},[S,v,h]);m.useEffect(()=>{v().catch(()=>{})},[v]),m.useEffect(()=>{S().catch(()=>{})},[S]);const F=m.useMemo(()=>{const c={};for(const g of d)c[g.channel]||(c[g.channel]=[]),c[g.channel].push(g);return c},[d]);return u?t.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Loading signal detail..."}):n?t.jsxs("div",{className:"space-y-4 p-4",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[a&&t.jsx(r.Button,{variant:"outline",size:"sm",onClick:a,children:"Back"}),t.jsx("h2",{className:"text-lg font-semibold",children:n.name}),t.jsx(e.Badge,{variant:n.status==="ACTIVE"?"default":"secondary",children:X(n)}),((p=n.alertState)==null?void 0:p.currentState)&&t.jsx(e.Badge,{variant:n.alertState.currentState==="FIRING"?"destructive":"outline",children:n.alertState.currentState==="FIRING"?"Signal surfaced":"Stable"})]}),t.jsx(r.Button,{variant:"outline",size:"sm",onClick:()=>void _(),children:"Refresh"})]}),n.description&&t.jsx("p",{className:"text-sm text-muted-foreground",children:n.description}),t.jsxs("div",{className:"rounded-md border bg-muted/30 p-4 text-sm",children:[t.jsx("p",{className:"font-medium",children:"What changed"}),t.jsx("p",{className:"mt-1 text-muted-foreground",children:"Review the latest signal activity, then investigate the underlying dashboard context if you need more detail."})]}),t.jsxs("div",{className:"rounded-md border bg-background p-4 space-y-2",children:[t.jsx("h3",{className:"text-sm font-semibold",children:"Signal Watch"}),t.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[t.jsxs("div",{children:[t.jsx("span",{className:"text-muted-foreground",children:"Watching for:"})," ",e.formatSignalCondition(n.jobConfig.operator,n.jobConfig.threshold)]}),t.jsxs("div",{children:[t.jsx("span",{className:"text-muted-foreground",children:"Severity:"})," ",n.jobConfig.severity]}),t.jsxs("div",{children:[t.jsx("span",{className:"text-muted-foreground",children:"Last Evaluated:"})," ",I((b=n.alertState)==null?void 0:b.lastEvaluatedAt)]}),t.jsxs("div",{children:[t.jsx("span",{className:"text-muted-foreground",children:"Last Surfaced:"})," ",I((w=n.alertState)==null?void 0:w.lastTriggeredAt)]})]})]}),((k=n.deliveryConfig)==null?void 0:k.channels)&&n.deliveryConfig.channels.length>0&&t.jsxs("div",{className:"rounded-md border bg-background p-4 space-y-2",children:[t.jsx("h3",{className:"text-sm font-semibold",children:"Where It Surfaces"}),t.jsx("div",{className:"flex flex-wrap gap-2",children:n.deliveryConfig.channels.map(c=>t.jsx(e.Badge,{variant:"outline",children:c},c))})]}),A.length>0&&t.jsxs("div",{className:"rounded-md border bg-background p-4 space-y-3",children:[t.jsx("h3",{className:"text-sm font-semibold",children:"Recent Delivery Activity"}),A.length>1&&t.jsx("div",{className:"flex flex-wrap gap-2",children:A.map(c=>t.jsx(r.Button,{variant:c.id===y?"default":"outline",size:"sm",onClick:()=>N(c.id),children:I(c.scheduledFor)},c.id))}),Object.keys(F).length===0?t.jsx("p",{className:"text-sm text-muted-foreground",children:"No delivery attempts were recorded for this run."}):Object.entries(F).map(([c,g])=>t.jsxs("div",{className:"space-y-1",children:[t.jsx("div",{className:"flex items-center gap-2",children:t.jsx(e.Badge,{variant:"secondary",className:"text-xs",children:c})}),t.jsx("div",{className:"overflow-hidden rounded border",children:t.jsxs("table",{className:"w-full text-xs",children:[t.jsx("thead",{className:"bg-muted/40",children:t.jsxs("tr",{children:[t.jsx("th",{className:"px-2 py-1 text-left font-medium",children:"Recipient"}),t.jsx("th",{className:"px-2 py-1 text-left font-medium",children:"Status"}),t.jsx("th",{className:"px-2 py-1 text-left font-medium",children:"Time"}),t.jsx("th",{className:"px-2 py-1 text-left font-medium",children:"Error"})]})}),t.jsx("tbody",{children:g.map(f=>t.jsxs("tr",{className:"border-t",children:[t.jsx("td",{className:"px-2 py-1",children:f.recipient}),t.jsx("td",{className:"px-2 py-1",children:t.jsx(e.Badge,{variant:f.status==="SENT"?"default":"destructive",className:"text-[10px]",children:f.status})}),t.jsx("td",{className:"px-2 py-1",children:I(f.createdAt)}),t.jsx("td",{className:"px-2 py-1 text-muted-foreground",children:f.error||"--"})]},f.id))})]})})]},c))]})]}):t.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Signal not found."})}function Z(){var u,h;const{quotasQuery:s,usageQuery:a}=e.useAlertQuotas(),o=((u=s.data)==null?void 0:u.quotas)||[],l=((h=a.data)==null?void 0:h.usage)||[],i=new Map(l.map(n=>[n.tenantId||"org",n]));return t.jsxs("div",{className:"space-y-4 p-4",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx("h2",{className:"text-xl font-semibold",children:"Alert Quotas"}),t.jsx(r.Button,{variant:"outline",size:"sm",onClick:()=>{s.refetch(),a.refetch()},children:"Refresh"})]}),s.isLoading||a.isLoading?t.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading quota usage..."}):null,t.jsx("div",{className:"overflow-hidden rounded-lg border",children:t.jsxs("table",{className:"w-full text-sm",children:[t.jsx("thead",{className:"bg-muted/40",children:t.jsxs("tr",{children:[t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Tenant"}),t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Active Alerts"}),t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Max Active"}),t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Min Cadence"}),t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Max Context Sources"})]})}),t.jsx("tbody",{children:o.map(n=>{const d=n.tenantId||"org",x=i.get(d);return t.jsxs("tr",{className:"border-t",children:[t.jsx("td",{className:"px-3 py-2",children:d}),t.jsx("td",{className:"px-3 py-2",children:(x==null?void 0:x.activeAlerts)??0}),t.jsx("td",{className:"px-3 py-2",children:n.policy.maxActiveAlerts}),t.jsxs("td",{className:"px-3 py-2",children:[n.policy.minCadenceMinutes," min"]}),t.jsx("td",{className:"px-3 py-2",children:n.policy.maxContextSources})]},d)})})]})})]})}exports.AlertManagementPage=e.AlertManagementPage;exports.AlertWizardDialog=e.AlertWizardDialog;exports.AlertsApiError=e.AlertsApiError;exports.CardAlertIndicator=e.CardAlertIndicator;exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.EmailScheduleDialog=e.EmailScheduleDialog;exports.ExportError=e.ExportError;exports.ResourceType=e.ResourceType;exports.SemaphorContextProvider=e.SemaphorContextProvider;exports.SemaphorDataProvider=e.SemaphorQueryClient;exports.SemaphorQueryClient=e.SemaphorQueryClient;exports.ShareDialog=e.ShareDialog;exports.SummaryCard=e.SummaryCard;exports.Surfboard=e.DashboardPlus;exports.backtestAlert=e.backtestAlert;exports.cancelExport=e.cancelExport;exports.cloneDeep=e.cloneDeep;exports.createAlert=e.createAlert;exports.createExport=e.createExport;exports.deleteAlert=e.deleteAlert;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getAlert=e.getAlert;exports.getAlertContextSources=e.getAlertContextSources;exports.getAlertHistory=e.getAlertHistory;exports.getAlertQuotaUsage=e.getAlertQuotaUsage;exports.getAlertRunDeliveries=e.getAlertRunDeliveries;exports.getAlertRunSteps=e.getAlertRunSteps;exports.getAlertRuns=e.getAlertRuns;exports.getAlertState=e.getAlertState;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.listAlertQuotas=e.listAlertQuotas;exports.listAlerts=e.listAlerts;exports.previewAlertDeliverable=e.previewAlertDeliverable;exports.triggerAlertNow=e.triggerAlertNow;exports.updateAlert=e.updateAlert;exports.updateAlertContextSources=e.updateAlertContextSources;exports.updateAlertQuota=e.updateAlertQuota;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useAlertActions=e.useAlertActions;exports.useAlertDeliveries=e.useAlertDeliveries;exports.useAlertDetail=e.useAlertDetail;exports.useAlertDraft=e.useAlertDraft;exports.useAlertFilters=e.useAlertFilters;exports.useAlertHistory=e.useAlertHistory;exports.useAlertQuotas=e.useAlertQuotas;exports.useAlertRuns=e.useAlertRuns;exports.useAlertState=e.useAlertState;exports.useAlertStore=e.useAlertStore;exports.useAlertWizard=e.useAlertWizard;exports.useAlerts=e.useAlerts;exports.useAlertsBootstrap=e.useAlertsBootstrap;exports.useAlertsById=e.useAlertsById;exports.useAlertsForCard=e.useAlertsForCard;exports.useCard=e.useCard;exports.useCardAlertMap=e.useCardAlertMap;exports.useCardSummary=e.useCardSummary;exports.useDashboardById=e.useDashboardById;exports.useDashboardQuery=e.useDashboardQuery;exports.useDashboardSummary=e.useDashboardSummary;exports.useDataColumns=e.useDataColumns;exports.useDateFilterHook=e.useDateFilterHook;exports.useEditorAside=e.useEditorAside;exports.useExportActions=e.useExportActions;exports.useExportStore=e.useExportStore;exports.useInProgressExportsCount=e.useInProgressExportsCount;exports.useManagementStore=e.useManagementStore;exports.useResourceManagement=e.useResourceManagement;exports.useSelectedAlertId=e.useSelectedAlertId;exports.useTextFilterHook=e.useTextFilterHook;exports.CALCULATED_FIELD_ENTITY_MARKER=C.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=C.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=C.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=C.EMPTY_SELECTION;exports.PivotMarkerEnum=C.PivotMarkerEnum;exports.getFieldRuntimeColumnName=C.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=C.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=C.hasCalculatedFormulaInputs;exports.isCalculatedDimension=C.isCalculatedDimension;exports.isCalculatedField=C.isCalculatedField;exports.isCalculatedMetric=C.isCalculatedMetric;exports.CalendarPreferencesDialog=L.CalendarPreferencesDialog;exports.DashboardSummarySettingsDialog=L.DashboardSummarySettingsDialog;exports.createEmptyKpiConfig=r.createEmptyKpiConfig;exports.createSqlGenConfig=r.createSqlGenConfig;exports.emitDashboardLoad=r.emitDashboardLoad;exports.emitDashboardUnload=r.emitDashboardUnload;exports.fmt=r.fmt;exports.getColumnDataType=r.getColumnDataType;exports.getFilterValueType=r.getFilterValueType;exports.getFormattedTableNameForQuery=r.getFormattedTableNameForQuery;exports.getQualifiedTableName=r.getQualifiedTableName;exports.getSql=r.getSql;exports.invalidateToken=r.invalidateToken;exports.isBooleanDataType=r.isBooleanDataType;exports.isColumnInSqlGen=r.isColumnInSqlGen;exports.isDateDataType=r.isDateDataType;exports.isNumberDataType=r.isNumberDataType;exports.isTextDataType=r.isTextDataType;exports.resolveDataType=r.resolveDataType;exports.resolveDatamodelName=r.resolveDatamodelName;exports.useCurrentActiveCard=r.useCurrentActiveCard;exports.useCurrentCardConfig=r.useCurrentCardConfig;exports.useCurrentSheetActiveCards=r.useCurrentSheetActiveCards;exports.useDashboardActions=r.useDashboardActions;exports.useDashboardStore=r.useDashboardStore;exports.useEditorActions=r.useEditorActions;exports.useEditorStore=r.useEditorStore;exports.ResourceManagementPanel=z.ResourceManagementPanel;exports.DEFAULT_CALENDAR_CONTEXT=B.DEFAULT_CALENDAR_CONTEXT;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=B.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.useDebouncedDirtyCheck=q.useDebouncedDirtyCheck;exports.AdvancedModeToggle=D.AdvancedModeToggle;exports.DashboardControlsSettings=D.DashboardControlsSettings;exports.DashboardFilterControlsButton=D.DashboardFilterControlsButton;exports.ExportNotificationItem=D.ExportNotificationItem;exports.ExportNotificationList=D.ExportNotificationList;exports.NotificationBell=D.NotificationBell;exports.UnsavedChangesAlert=D.UnsavedChangesAlert;exports.VisualEditingControls=D.VisualEditingControls;exports.useExportPolling=D.useExportPolling;exports.useExportRecovery=D.useExportRecovery;exports.normalizeDashboardForDirtyCheck=O.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=O.serializeDashboardForDirtyCheck;exports.AlertDetailPageEmbedded=J;exports.Combobox=$;exports.ScheduleDashboard=G;exports.TenantQuotaPage=Z;exports.Visual=V;exports.useAlertBacktest=K;exports.useExposePrintState=Y;exports.usePristineSnapshotInitializer=H;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-DjZqoaV5.js"),y=require("./chunks/common-types-C73-Ud1-.js"),L=require("./chunks/dashboard-summary-settings-dialog-DoxcpXjk.js"),t=require("react/jsx-runtime"),r=require("./chunks/switch-DPaKnsb8.js"),m=require("react"),z=require("./chunks/resource-management-panel-B1mhnY97.js"),B=require("./types/index.cjs"),q=require("./chunks/use-debounced-dirty-check-XHSwAefL.js");require("react-dom");require("./chunks/index-DRlMUglg.js");const A=require("./chunks/dashboard-filter-controls-launcher-DBmNn4EY.js"),O=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.js");function Q(s){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const o in s)if(o!=="default"){const l=Object.getOwnPropertyDescriptor(s,o);Object.defineProperty(a,o,l.get?l:{enumerable:!0,get:()=>s[o]})}}return a.default=s,Object.freeze(a)}const P=Q(m);function V(s){const{displayPreferences:a,cardId:o,...l}=s,i={...l,id:s.dashboardId};return t.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:t.jsxs(e.SemaphorContextProvider,{dashboardProps:i,children:[t.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:s.cardId}),t.jsx(e.UXProvider,{appearance:s.appearance,children:t.jsx(e.DisplayPreferencesProvider,{displayPreferences:a,children:t.jsx(e.Container,{type:"visual",cardId:o,...i,children:t.jsx(W,{cardId:o})})})})]})})}function W({cardId:s}){const a=r.useDashboardStore(i=>{var u;return(u=i.dashboard)==null?void 0:u.sheets}),{card:o,frame:l}=m.useMemo(()=>{const i=a==null?void 0:a.flatMap(d=>d.frames),u=i==null?void 0:i.flatMap(d=>d==null?void 0:d.cards),h=u==null?void 0:u.find(d=>(d==null?void 0:d.id)===s),n=i==null?void 0:i.find(d=>{var x;return(x=d==null?void 0:d.cards)==null?void 0:x.find(C=>(C==null?void 0:C.id)===s)});return{card:h,frame:n}},[a,s]);return!o||!l?t.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${s}`}):t.jsx("main",{className:"flex h-full grow flex-col",children:t.jsx(e.ErrorBoundary,{FallbackComponent:({error:i,resetErrorBoundary:u})=>t.jsx(e.FallbackVisual,{error:i,resetErrorBoundary:u,customerFacingMessage:"Error creating visual. Please try again."}),children:t.jsx(e.DashboardCard,{card:o,frame:l})})})}function H(s,a,o,l){m.useEffect(()=>{s&&!o&&a&&l(e.cloneDeep(a))},[s,o,a,l])}function $({name:s,items:a,value:o,onChange:l,isLoading:i,isError:u,refetch:h,className:n,icon:d,showNone:x=!1}){const C=P.useRef(null),[j,D]=P.useState(!1),[N,v]=P.useState("100%"),S=x?[...a||[],{id:"none",name:"None"}]:a;P.useLayoutEffect(()=>{C.current&&v(C.current.offsetWidth)},[]);function _(){var p;return i?"Loading...":u?"Error":o?(p=a==null?void 0:a.find(b=>b.id===o))==null?void 0:p.name:`Select ${s}`}function R(p,b){l(b),D(!1)}return t.jsxs(r.Popover,{open:j,onOpenChange:D,children:[t.jsx(r.PopoverTrigger,{asChild:!0,children:t.jsxs(r.Button,{ref:C,variant:"outline",role:"combobox","aria-expanded":j,className:r.cn("flex h-9 w-full justify-between",n),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[d&&t.jsx("div",{className:"mr-2",children:d}),t.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:_()})]}),t.jsx(r.ChevronDown,{className:"size-4 opacity-50"})]})}),t.jsx(r.PopoverContent,{className:"w-full p-0",style:{minWidth:N},children:t.jsxs(e.Command,{children:[t.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[t.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),t.jsx(e.IconButton,{className:"h-7",onClick:h,children:t.jsx(e.RefreshCw,{className:r.cn("size-3.5 opacity-50",i&&"animate-spin")})})]}),t.jsxs(e.CommandList,{children:[t.jsxs(e.CommandEmpty,{children:["No ",s==null?void 0:s.toLowerCase()," found."]}),t.jsx(e.CommandGroup,{children:S==null?void 0:S.map(p=>t.jsx(e.CommandItem,{className:"overflow-x-auto",value:p.name,onSelect:b=>R(b,p.id),children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(r.Check,{className:r.cn("size-4",o===p.id?"opacity-100":"opacity-0")}),t.jsx("div",{title:p.name,children:p.name})]})},p.id))})]})]})})]})}function G({triggerButtonClassName:s,variant:a="ghost"}){const[o,l]=m.useState(!1),i=r.useDashboardStore(h=>{var n;return(n=h.dashboard)==null?void 0:n.id}),u=r.useDashboardStore(h=>{var n;return(n=h.dashboard)==null?void 0:n.title});return i?t.jsxs(t.Fragment,{children:[t.jsx(e.IconButton,{tooltip:"Schedule Dashboard",className:r.cn("h-7 p-2",s),buttonProps:{variant:a},onClick:()=>l(!0),children:t.jsx(e.Clock,{className:"size-4"})}),t.jsx(e.EmailScheduleDialog,{open:o,onOpenChange:l,dashboardId:i,dashboardName:u})]}):null}function K(s){const{authToken:a,tokenProps:o}=e.useSemaphorContext();return e.useMutation({mutationFn:async l=>e.backtestAlert(o.apiServiceUrl,a.accessToken,s,l)})}function Y(s,a){m.useEffect(()=>(s&&a&&(window.__SEMAPHOR_PRINT_STATE__={...a}),()=>{s&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[s,a])}function I(s){if(!s)return"--";const a=new Date(s);return Number.isNaN(a.getTime())?"--":a.toLocaleString()}function X(s){var a;return((a=s.alertState)==null?void 0:a.currentState)==="FIRING"?"Signal surfaced":s.status==="ACTIVE"?"Watching":s.status==="PAUSED"?"Paused":s.status}function J({alertId:s,onBack:a}){var p,b,w,k;const{authToken:o,tokenProps:l}=e.useSemaphorContext(),{data:i,isLoading:u,refetch:h}=e.useAlertDetail(s),n=(i==null?void 0:i.alert)??null,[d,x]=m.useState([]),[C,j]=m.useState([]),[D,N]=m.useState(null),v=m.useCallback(async()=>{var f;const c=l==null?void 0:l.apiServiceUrl,g=o==null?void 0:o.accessToken;if(!c||!g||!s)return null;try{const T=await fetch(`${c}/v1/alerts/${s}/runs?limit=20`,{headers:{Authorization:`Bearer ${g}`}});if(T.ok){const F=await T.json(),E=Array.isArray(F.runs)?F.runs:[],M=D&&E.some(U=>U.id===D)?D:((f=E[0])==null?void 0:f.id)??null;return j(E),N(M),M}j([]),N(null)}catch{return j([]),N(null),null}return null},[s,o,D,l]),S=m.useCallback(async c=>{const g=l==null?void 0:l.apiServiceUrl,f=o==null?void 0:o.accessToken,T=c??D;if(!g||!f||!s||!T){x([]);return}try{const F=await fetch(`${g}/v1/alerts/${s}/runs/${T}/deliveries`,{headers:{Authorization:`Bearer ${f}`}});if(F.ok){const E=await F.json();x(Array.isArray(E.attempts)?E.attempts:[])}else x([])}catch{x([])}},[s,o,D,l]),_=m.useCallback(async()=>{await h();const c=await v();await S(c)},[S,v,h]);m.useEffect(()=>{v().catch(()=>{})},[v]),m.useEffect(()=>{S().catch(()=>{})},[S]);const R=m.useMemo(()=>{const c={};for(const g of d)c[g.channel]||(c[g.channel]=[]),c[g.channel].push(g);return c},[d]);return u?t.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Loading signal detail..."}):n?t.jsxs("div",{className:"space-y-4 p-4",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[a&&t.jsx(r.Button,{variant:"outline",size:"sm",onClick:a,children:"Back"}),t.jsx("h2",{className:"text-lg font-semibold",children:n.name}),t.jsx(e.Badge,{variant:n.status==="ACTIVE"?"default":"secondary",children:X(n)}),((p=n.alertState)==null?void 0:p.currentState)&&t.jsx(e.Badge,{variant:n.alertState.currentState==="FIRING"?"destructive":"outline",children:n.alertState.currentState==="FIRING"?"Signal surfaced":"Stable"})]}),t.jsx(r.Button,{variant:"outline",size:"sm",onClick:()=>void _(),children:"Refresh"})]}),n.description&&t.jsx("p",{className:"text-sm text-muted-foreground",children:n.description}),t.jsxs("div",{className:"rounded-md border bg-muted/30 p-4 text-sm",children:[t.jsx("p",{className:"font-medium",children:"What changed"}),t.jsx("p",{className:"mt-1 text-muted-foreground",children:"Review the latest signal activity, then investigate the underlying dashboard context if you need more detail."})]}),t.jsxs("div",{className:"rounded-md border bg-background p-4 space-y-2",children:[t.jsx("h3",{className:"text-sm font-semibold",children:"Signal Watch"}),t.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[t.jsxs("div",{children:[t.jsx("span",{className:"text-muted-foreground",children:"Watching for:"})," ",e.formatSignalCondition(n.jobConfig.operator,n.jobConfig.threshold)]}),t.jsxs("div",{children:[t.jsx("span",{className:"text-muted-foreground",children:"Severity:"})," ",n.jobConfig.severity]}),t.jsxs("div",{children:[t.jsx("span",{className:"text-muted-foreground",children:"Last Evaluated:"})," ",I((b=n.alertState)==null?void 0:b.lastEvaluatedAt)]}),t.jsxs("div",{children:[t.jsx("span",{className:"text-muted-foreground",children:"Last Surfaced:"})," ",I((w=n.alertState)==null?void 0:w.lastTriggeredAt)]})]})]}),((k=n.deliveryConfig)==null?void 0:k.channels)&&n.deliveryConfig.channels.length>0&&t.jsxs("div",{className:"rounded-md border bg-background p-4 space-y-2",children:[t.jsx("h3",{className:"text-sm font-semibold",children:"Where It Surfaces"}),t.jsx("div",{className:"flex flex-wrap gap-2",children:n.deliveryConfig.channels.map(c=>t.jsx(e.Badge,{variant:"outline",children:c},c))})]}),C.length>0&&t.jsxs("div",{className:"rounded-md border bg-background p-4 space-y-3",children:[t.jsx("h3",{className:"text-sm font-semibold",children:"Recent Delivery Activity"}),C.length>1&&t.jsx("div",{className:"flex flex-wrap gap-2",children:C.map(c=>t.jsx(r.Button,{variant:c.id===D?"default":"outline",size:"sm",onClick:()=>N(c.id),children:I(c.scheduledFor)},c.id))}),Object.keys(R).length===0?t.jsx("p",{className:"text-sm text-muted-foreground",children:"No delivery attempts were recorded for this run."}):Object.entries(R).map(([c,g])=>t.jsxs("div",{className:"space-y-1",children:[t.jsx("div",{className:"flex items-center gap-2",children:t.jsx(e.Badge,{variant:"secondary",className:"text-xs",children:c})}),t.jsx("div",{className:"overflow-hidden rounded border",children:t.jsxs("table",{className:"w-full text-xs",children:[t.jsx("thead",{className:"bg-muted/40",children:t.jsxs("tr",{children:[t.jsx("th",{className:"px-2 py-1 text-left font-medium",children:"Recipient"}),t.jsx("th",{className:"px-2 py-1 text-left font-medium",children:"Status"}),t.jsx("th",{className:"px-2 py-1 text-left font-medium",children:"Time"}),t.jsx("th",{className:"px-2 py-1 text-left font-medium",children:"Error"})]})}),t.jsx("tbody",{children:g.map(f=>t.jsxs("tr",{className:"border-t",children:[t.jsx("td",{className:"px-2 py-1",children:f.recipient}),t.jsx("td",{className:"px-2 py-1",children:t.jsx(e.Badge,{variant:f.status==="SENT"?"default":"destructive",className:"text-[10px]",children:f.status})}),t.jsx("td",{className:"px-2 py-1",children:I(f.createdAt)}),t.jsx("td",{className:"px-2 py-1 text-muted-foreground",children:f.error||"--"})]},f.id))})]})})]},c))]})]}):t.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Signal not found."})}function Z(){var u,h;const{quotasQuery:s,usageQuery:a}=e.useAlertQuotas(),o=((u=s.data)==null?void 0:u.quotas)||[],l=((h=a.data)==null?void 0:h.usage)||[],i=new Map(l.map(n=>[n.tenantId||"org",n]));return t.jsxs("div",{className:"space-y-4 p-4",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx("h2",{className:"text-xl font-semibold",children:"Alert Quotas"}),t.jsx(r.Button,{variant:"outline",size:"sm",onClick:()=>{s.refetch(),a.refetch()},children:"Refresh"})]}),s.isLoading||a.isLoading?t.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading quota usage..."}):null,t.jsx("div",{className:"overflow-hidden rounded-lg border",children:t.jsxs("table",{className:"w-full text-sm",children:[t.jsx("thead",{className:"bg-muted/40",children:t.jsxs("tr",{children:[t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Tenant"}),t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Active Alerts"}),t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Max Active"}),t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Min Cadence"}),t.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"Max Context Sources"})]})}),t.jsx("tbody",{children:o.map(n=>{const d=n.tenantId||"org",x=i.get(d);return t.jsxs("tr",{className:"border-t",children:[t.jsx("td",{className:"px-3 py-2",children:d}),t.jsx("td",{className:"px-3 py-2",children:(x==null?void 0:x.activeAlerts)??0}),t.jsx("td",{className:"px-3 py-2",children:n.policy.maxActiveAlerts}),t.jsxs("td",{className:"px-3 py-2",children:[n.policy.minCadenceMinutes," min"]}),t.jsx("td",{className:"px-3 py-2",children:n.policy.maxContextSources})]},d)})})]})})]})}exports.AlertManagementPage=e.AlertManagementPage;exports.AlertWizardDialog=e.AlertWizardDialog;exports.AlertsApiError=e.AlertsApiError;exports.CardAlertIndicator=e.CardAlertIndicator;exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.EmailScheduleDialog=e.EmailScheduleDialog;exports.ExportError=e.ExportError;exports.ResourceType=e.ResourceType;exports.SemaphorContextProvider=e.SemaphorContextProvider;exports.SemaphorDataProvider=e.SemaphorQueryClient;exports.SemaphorQueryClient=e.SemaphorQueryClient;exports.ShareDialog=e.ShareDialog;exports.SummaryCard=e.SummaryCard;exports.Surfboard=e.DashboardPlus;exports.backtestAlert=e.backtestAlert;exports.cancelExport=e.cancelExport;exports.cloneDeep=e.cloneDeep;exports.createAlert=e.createAlert;exports.createExport=e.createExport;exports.deleteAlert=e.deleteAlert;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getAlert=e.getAlert;exports.getAlertContextSources=e.getAlertContextSources;exports.getAlertHistory=e.getAlertHistory;exports.getAlertQuotaUsage=e.getAlertQuotaUsage;exports.getAlertRunDeliveries=e.getAlertRunDeliveries;exports.getAlertRunSteps=e.getAlertRunSteps;exports.getAlertRuns=e.getAlertRuns;exports.getAlertState=e.getAlertState;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.listAlertQuotas=e.listAlertQuotas;exports.listAlerts=e.listAlerts;exports.previewAlertDeliverable=e.previewAlertDeliverable;exports.triggerAlertNow=e.triggerAlertNow;exports.updateAlert=e.updateAlert;exports.updateAlertContextSources=e.updateAlertContextSources;exports.updateAlertQuota=e.updateAlertQuota;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useAlertActions=e.useAlertActions;exports.useAlertDeliveries=e.useAlertDeliveries;exports.useAlertDetail=e.useAlertDetail;exports.useAlertDraft=e.useAlertDraft;exports.useAlertFilters=e.useAlertFilters;exports.useAlertHistory=e.useAlertHistory;exports.useAlertQuotas=e.useAlertQuotas;exports.useAlertRuns=e.useAlertRuns;exports.useAlertState=e.useAlertState;exports.useAlertStore=e.useAlertStore;exports.useAlertWizard=e.useAlertWizard;exports.useAlerts=e.useAlerts;exports.useAlertsBootstrap=e.useAlertsBootstrap;exports.useAlertsById=e.useAlertsById;exports.useAlertsForCard=e.useAlertsForCard;exports.useCard=e.useCard;exports.useCardAlertMap=e.useCardAlertMap;exports.useCardSummary=e.useCardSummary;exports.useDashboardById=e.useDashboardById;exports.useDashboardQuery=e.useDashboardQuery;exports.useDashboardSummary=e.useDashboardSummary;exports.useDataColumns=e.useDataColumns;exports.useDateFilterHook=e.useDateFilterHook;exports.useEditorAside=e.useEditorAside;exports.useExportActions=e.useExportActions;exports.useExportStore=e.useExportStore;exports.useInProgressExportsCount=e.useInProgressExportsCount;exports.useManagementStore=e.useManagementStore;exports.useResourceManagement=e.useResourceManagement;exports.useSelectedAlertId=e.useSelectedAlertId;exports.useTextFilterHook=e.useTextFilterHook;exports.CALCULATED_FIELD_ENTITY_MARKER=y.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=y.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=y.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=y.EMPTY_SELECTION;exports.PivotMarkerEnum=y.PivotMarkerEnum;exports.getFieldRuntimeColumnName=y.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=y.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=y.hasCalculatedFormulaInputs;exports.isCalculatedDimension=y.isCalculatedDimension;exports.isCalculatedField=y.isCalculatedField;exports.isCalculatedMetric=y.isCalculatedMetric;exports.CalendarPreferencesDialog=L.CalendarPreferencesDialog;exports.DashboardSummarySettingsDialog=L.DashboardSummarySettingsDialog;exports.createEmptyKpiConfig=r.createEmptyKpiConfig;exports.createSqlGenConfig=r.createSqlGenConfig;exports.emitDashboardLoad=r.emitDashboardLoad;exports.emitDashboardUnload=r.emitDashboardUnload;exports.fmt=r.fmt;exports.getColumnDataType=r.getColumnDataType;exports.getFilterValueType=r.getFilterValueType;exports.getFormattedTableNameForQuery=r.getFormattedTableNameForQuery;exports.getQualifiedTableName=r.getQualifiedTableName;exports.getSql=r.getSql;exports.invalidateToken=r.invalidateToken;exports.isBooleanDataType=r.isBooleanDataType;exports.isColumnInSqlGen=r.isColumnInSqlGen;exports.isDateDataType=r.isDateDataType;exports.isNumberDataType=r.isNumberDataType;exports.isTextDataType=r.isTextDataType;exports.resolveDataType=r.resolveDataType;exports.resolveDatamodelName=r.resolveDatamodelName;exports.useCurrentActiveCard=r.useCurrentActiveCard;exports.useCurrentCardConfig=r.useCurrentCardConfig;exports.useCurrentSheetActiveCards=r.useCurrentSheetActiveCards;exports.useDashboardActions=r.useDashboardActions;exports.useDashboardStore=r.useDashboardStore;exports.useEditorActions=r.useEditorActions;exports.useEditorStore=r.useEditorStore;exports.ResourceManagementPanel=z.ResourceManagementPanel;exports.DEFAULT_CALENDAR_CONTEXT=B.DEFAULT_CALENDAR_CONTEXT;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=B.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.useDebouncedDirtyCheck=q.useDebouncedDirtyCheck;exports.AdvancedModeToggle=A.AdvancedModeToggle;exports.DashboardControlsSettings=A.DashboardControlsSettings;exports.DashboardFilterControlsButton=A.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=A.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=A.DocumentControlsSettings;exports.ExportNotificationItem=A.ExportNotificationItem;exports.ExportNotificationList=A.ExportNotificationList;exports.NotificationBell=A.NotificationBell;exports.UnsavedChangesAlert=A.UnsavedChangesAlert;exports.VisualEditingControls=A.VisualEditingControls;exports.useExportPolling=A.useExportPolling;exports.useExportRecovery=A.useExportRecovery;exports.normalizeDashboardForDirtyCheck=O.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=O.serializeDashboardForDirtyCheck;exports.AlertDetailPageEmbedded=J;exports.Combobox=$;exports.ScheduleDashboard=G;exports.TenantQuotaPage=Z;exports.Visual=V;exports.useAlertBacktest=K;exports.useExposePrintState=Y;exports.usePristineSnapshotInitializer=H;
package/dist/index.js CHANGED
@@ -1,36 +1,36 @@
1
- import { E as j, F as H, S as G, y as q, U as K, z as Y, A as X, B, G as J, H as Z, C as ee, h as ae, I as Q, J as te, i as se, j as re, k as ne, l as ie, K as oe, L as le, u as W, M as de, N as ce, O as ue, P as E, Q as me, T as he } from "./chunks/index-scc12bkM.js";
2
- import { av as Oe, ax as ze, aR as Be, aw as je, a8 as Qe, D as We, a6 as Ve, a3 as $e, aX as He, X as Ge, _ as qe, _ as Ke, $ as Ye, a7 as Xe, a as Je, aW as Ze, aC as ea, aS as aa, aE as ta, a5 as sa, a4 as ra, a_ as na, aB as ia, aL as oa, aI as la, aP as da, aJ as ca, aK as ua, aH as ma, aG as ha, aV as pa, aU as fa, aT as ga, aZ as xa, aY as Na, aO as ya, aA as va, aN as Ca, aF as Aa, aD as ba, aM as Sa, aQ as Da, af as Ea, ac as Ta, ao as wa, am as Ra, au as Ia, at as _a, al as Pa, ak as ka, aj as Fa, an as Ma, ay as La, ah as Ua, ai as Oa, ap as za, ar as Ba, a2 as ja, aq as Qa, aa as Wa, a1 as Va, W as $a, a9 as Ha, ab as Ga, Y as qa, az as Ka, ae as Ya, ad as Xa, ag as Ja, V as Za, a0 as et, as as at, Z as tt } from "./chunks/index-scc12bkM.js";
3
- import { a as rt, C as nt, D as it, E as ot, P as lt, g as dt, d as ct, h as ut, b as mt, c as ht, i as pt } from "./chunks/common-types-4bjoIgvm.js";
4
- import { C as gt, D as xt } from "./chunks/dashboard-summary-settings-dialog-BFldiulJ.js";
1
+ import { E as j, F as H, S as G, y as q, U as K, z as Y, A as X, B, G as J, H as Z, C as ee, h as ae, I as Q, J as te, i as se, j as re, k as ne, l as oe, K as ie, L as le, u as W, M as de, N as ce, O as ue, P as E, Q as me, T as he } from "./chunks/index-D7e2Eyp_.js";
2
+ import { av as Oe, ax as ze, aR as Be, aw as je, a8 as Qe, D as We, a6 as Ve, a3 as $e, aX as He, X as Ge, _ as qe, _ as Ke, $ as Ye, a7 as Xe, a as Je, aW as Ze, aC as ea, aS as aa, aE as ta, a5 as sa, a4 as ra, a_ as na, aB as oa, aL as ia, aI as la, aP as da, aJ as ca, aK as ua, aH as ma, aG as ha, aV as pa, aU as fa, aT as ga, aZ as xa, aY as Na, aO as ya, aA as va, aN as Ca, aF as Aa, aD as ba, aM as Sa, aQ as Da, af as Ea, ac as Ta, ao as wa, am as Ra, au as Ia, at as _a, al as Pa, ak as Fa, aj as ka, an as Ma, ay as La, ah as Ua, ai as Oa, ap as za, ar as Ba, a2 as ja, aq as Qa, aa as Wa, a1 as Va, W as $a, a9 as Ha, ab as Ga, Y as qa, az as Ka, ae as Ya, ad as Xa, ag as Ja, V as Za, a0 as et, as as at, Z as tt } from "./chunks/index-D7e2Eyp_.js";
3
+ import { a as rt, C as nt, D as ot, E as it, P as lt, g as dt, d as ct, h as ut, b as mt, c as ht, i as pt } from "./chunks/common-types-4bjoIgvm.js";
4
+ import { C as gt, D as xt } from "./chunks/dashboard-summary-settings-dialog-CZkn4rtm.js";
5
5
  import { jsx as e, jsxs as r, Fragment as pe } from "react/jsx-runtime";
6
- import { u as L, P as fe, b as ge, B as T, a as _, G as xe, d as Ne, e as ye } from "./chunks/switch-DXHYEa_J.js";
7
- import { a7 as yt, Y as vt, H as Ct, J as At, M as bt, _ as St, Z as Dt, a1 as Et, a2 as Tt, W as wt, K as Rt, V as It, $ as _t, Q as Pt, O as kt, N as Ft, a3 as Mt, a0 as Lt, a4 as Ut, a6 as Ot, a5 as zt, m as Bt, l as jt, n as Qt } from "./chunks/switch-DXHYEa_J.js";
6
+ import { u as L, P as fe, b as ge, B as T, a as _, G as xe, d as Ne, e as ye } from "./chunks/switch-DEPWsRhf.js";
7
+ import { a7 as yt, Y as vt, H as Ct, J as At, M as bt, _ as St, Z as Dt, a1 as Et, a2 as Tt, W as wt, K as Rt, V as It, $ as _t, Q as Pt, O as Ft, N as kt, a3 as Mt, a0 as Lt, a4 as Ut, a6 as Ot, a5 as zt, m as Bt, l as jt, n as Qt } from "./chunks/switch-DEPWsRhf.js";
8
8
  import * as R from "react";
9
- import { useMemo as V, useEffect as k, useState as P, useCallback as M } from "react";
10
- import { ResourceManagementPanel as Vt } from "./chunks/resource-management-panel-xJtqTzS8.js";
9
+ import { useMemo as V, useEffect as F, useState as P, useCallback as M } from "react";
10
+ import { ResourceManagementPanel as Vt } from "./chunks/resource-management-panel-CSkNW3es.js";
11
11
  import { DEFAULT_CALENDAR_CONTEXT as Ht, DEFAULT_SEMANTIC_DOMAIN_ACCESS as Gt } from "./types/index.js";
12
12
  import { u as Kt } from "./chunks/use-debounced-dirty-check-BwAbnX_5.js";
13
13
  import "react-dom";
14
14
  import "./chunks/index-CJdxSyQq.js";
15
- import { A as Xt, D as Jt, c as Zt, a as es, E as as, N as ts, U as ss, V as rs, u as ns, b as is } from "./chunks/dashboard-filter-controls-button-C5FGXiyJ.js";
16
- import { n as ls, s as ds } from "./chunks/normalize-dashboard-for-dirty-check-5KpZN8xr.js";
15
+ import { A as Xt, D as Jt, d as Zt, e as es, c as as, a as ts, E as ss, N as rs, U as ns, V as os, u as is, b as ls } from "./chunks/dashboard-filter-controls-launcher-CqXgWEa1.js";
16
+ import { n as cs, s as us } from "./chunks/normalize-dashboard-for-dirty-check-5KpZN8xr.js";
17
17
  function we(a) {
18
- const { displayPreferences: t, cardId: n, ...i } = a, o = {
19
- ...i,
18
+ const { displayPreferences: t, cardId: n, ...o } = a, i = {
19
+ ...o,
20
20
  id: a.dashboardId
21
21
  // override the id to the dashboard id so that the dashboard is not loaded
22
22
  };
23
- return /* @__PURE__ */ e(j, { FallbackComponent: H, children: /* @__PURE__ */ r(G, { dashboardProps: o, children: [
23
+ return /* @__PURE__ */ e(j, { FallbackComponent: H, children: /* @__PURE__ */ r(G, { dashboardProps: i, children: [
24
24
  /* @__PURE__ */ e(q, { componentType: "visual", componentId: a.cardId }),
25
- /* @__PURE__ */ e(K, { appearance: a.appearance, children: /* @__PURE__ */ e(Y, { displayPreferences: t, children: /* @__PURE__ */ e(X, { type: "visual", cardId: n, ...o, children: /* @__PURE__ */ e(ve, { cardId: n }) }) }) })
25
+ /* @__PURE__ */ e(K, { appearance: a.appearance, children: /* @__PURE__ */ e(Y, { displayPreferences: t, children: /* @__PURE__ */ e(X, { type: "visual", cardId: n, ...i, children: /* @__PURE__ */ e(ve, { cardId: n }) }) }) })
26
26
  ] }) });
27
27
  }
28
28
  function ve({ cardId: a }) {
29
- const t = L((o) => {
29
+ const t = L((i) => {
30
30
  var c;
31
- return (c = o.dashboard) == null ? void 0 : c.sheets;
32
- }), { card: n, frame: i } = V(() => {
33
- const o = t == null ? void 0 : t.flatMap((l) => l.frames), c = o == null ? void 0 : o.flatMap((l) => l == null ? void 0 : l.cards), u = c == null ? void 0 : c.find((l) => (l == null ? void 0 : l.id) === a), s = o == null ? void 0 : o.find(
31
+ return (c = i.dashboard) == null ? void 0 : c.sheets;
32
+ }), { card: n, frame: o } = V(() => {
33
+ const i = t == null ? void 0 : t.flatMap((l) => l.frames), c = i == null ? void 0 : i.flatMap((l) => l == null ? void 0 : l.cards), u = c == null ? void 0 : c.find((l) => (l == null ? void 0 : l.id) === a), s = i == null ? void 0 : i.find(
34
34
  (l) => {
35
35
  var m;
36
36
  return (m = l == null ? void 0 : l.cards) == null ? void 0 : m.find((g) => (g == null ? void 0 : g.id) === a);
@@ -38,7 +38,7 @@ function ve({ cardId: a }) {
38
38
  );
39
39
  return { card: u, frame: s };
40
40
  }, [t, a]);
41
- return !n || !i ? /* @__PURE__ */ e(
41
+ return !n || !o ? /* @__PURE__ */ e(
42
42
  B,
43
43
  {
44
44
  error: new Error("Card not found"),
@@ -50,31 +50,31 @@ function ve({ cardId: a }) {
50
50
  j,
51
51
  {
52
52
  FallbackComponent: ({
53
- error: o,
53
+ error: i,
54
54
  resetErrorBoundary: c
55
55
  }) => /* @__PURE__ */ e(
56
56
  B,
57
57
  {
58
- error: o,
58
+ error: i,
59
59
  resetErrorBoundary: c,
60
60
  customerFacingMessage: "Error creating visual. Please try again."
61
61
  }
62
62
  ),
63
- children: /* @__PURE__ */ e(J, { card: n, frame: i })
63
+ children: /* @__PURE__ */ e(J, { card: n, frame: o })
64
64
  }
65
65
  ) });
66
66
  }
67
- function Re(a, t, n, i) {
68
- k(() => {
69
- a && !n && t && i(Z(t));
70
- }, [a, n, t, i]);
67
+ function Re(a, t, n, o) {
68
+ F(() => {
69
+ a && !n && t && o(Z(t));
70
+ }, [a, n, t, o]);
71
71
  }
72
72
  function Ie({
73
73
  name: a,
74
74
  items: t,
75
75
  value: n,
76
- onChange: i,
77
- isLoading: o,
76
+ onChange: o,
77
+ isLoading: i,
78
78
  isError: c,
79
79
  refetch: u,
80
80
  className: s,
@@ -85,12 +85,12 @@ function Ie({
85
85
  R.useLayoutEffect(() => {
86
86
  g.current && A(g.current.offsetWidth);
87
87
  }, []);
88
- function F() {
88
+ function k() {
89
89
  var h;
90
- return o ? "Loading..." : c ? "Error" : n ? (h = t == null ? void 0 : t.find((y) => y.id === n)) == null ? void 0 : h.name : `Select ${a}`;
90
+ return i ? "Loading..." : c ? "Error" : n ? (h = t == null ? void 0 : t.find((y) => y.id === n)) == null ? void 0 : h.name : `Select ${a}`;
91
91
  }
92
92
  function w(h, y) {
93
- i(y), x(!1);
93
+ o(y), x(!1);
94
94
  }
95
95
  return /* @__PURE__ */ r(fe, { open: v, onOpenChange: x, children: [
96
96
  /* @__PURE__ */ e(ge, { asChild: !0, children: /* @__PURE__ */ r(
@@ -104,7 +104,7 @@ function Ie({
104
104
  children: [
105
105
  /* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
106
106
  l && /* @__PURE__ */ e("div", { className: "mr-2", children: l }),
107
- /* @__PURE__ */ e("span", { className: "max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap", children: F() })
107
+ /* @__PURE__ */ e("span", { className: "max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap", children: k() })
108
108
  ] }),
109
109
  /* @__PURE__ */ e(xe, { className: "size-4 opacity-50" })
110
110
  ]
@@ -123,7 +123,7 @@ function Ie({
123
123
  {
124
124
  className: _(
125
125
  "size-3.5 opacity-50",
126
- o && "animate-spin"
126
+ i && "animate-spin"
127
127
  )
128
128
  }
129
129
  ) })
@@ -135,7 +135,7 @@ function Ie({
135
135
  " found."
136
136
  ] }),
137
137
  /* @__PURE__ */ e(ne, { children: N == null ? void 0 : N.map((h) => /* @__PURE__ */ e(
138
- ie,
138
+ oe,
139
139
  {
140
140
  className: "overflow-x-auto",
141
141
  value: h.name,
@@ -165,30 +165,30 @@ function _e({
165
165
  triggerButtonClassName: a,
166
166
  variant: t = "ghost"
167
167
  }) {
168
- const [n, i] = P(!1), o = L((u) => {
168
+ const [n, o] = P(!1), i = L((u) => {
169
169
  var s;
170
170
  return (s = u.dashboard) == null ? void 0 : s.id;
171
171
  }), c = L((u) => {
172
172
  var s;
173
173
  return (s = u.dashboard) == null ? void 0 : s.title;
174
174
  });
175
- return o ? /* @__PURE__ */ r(pe, { children: [
175
+ return i ? /* @__PURE__ */ r(pe, { children: [
176
176
  /* @__PURE__ */ e(
177
177
  Q,
178
178
  {
179
179
  tooltip: "Schedule Dashboard",
180
180
  className: _("h-7 p-2", a),
181
181
  buttonProps: { variant: t },
182
- onClick: () => i(!0),
183
- children: /* @__PURE__ */ e(oe, { className: "size-4" })
182
+ onClick: () => o(!0),
183
+ children: /* @__PURE__ */ e(ie, { className: "size-4" })
184
184
  }
185
185
  ),
186
186
  /* @__PURE__ */ e(
187
187
  le,
188
188
  {
189
189
  open: n,
190
- onOpenChange: i,
191
- dashboardId: o,
190
+ onOpenChange: o,
191
+ dashboardId: i,
192
192
  dashboardName: c
193
193
  }
194
194
  )
@@ -197,16 +197,16 @@ function _e({
197
197
  function Pe(a) {
198
198
  const { authToken: t, tokenProps: n } = W();
199
199
  return de({
200
- mutationFn: async (i) => ce(
200
+ mutationFn: async (o) => ce(
201
201
  n.apiServiceUrl,
202
202
  t.accessToken,
203
203
  a,
204
- i
204
+ o
205
205
  )
206
206
  });
207
207
  }
208
- function ke(a, t) {
209
- k(() => (a && t && (window.__SEMAPHOR_PRINT_STATE__ = {
208
+ function Fe(a, t) {
209
+ F(() => (a && t && (window.__SEMAPHOR_PRINT_STATE__ = {
210
210
  ...t
211
211
  }), () => {
212
212
  a && window.__SEMAPHOR_PRINT_STATE__ && delete window.__SEMAPHOR_PRINT_STATE__;
@@ -221,11 +221,11 @@ function Ce(a) {
221
221
  var t;
222
222
  return ((t = a.alertState) == null ? void 0 : t.currentState) === "FIRING" ? "Signal surfaced" : a.status === "ACTIVE" ? "Watching" : a.status === "PAUSED" ? "Paused" : a.status;
223
223
  }
224
- function Fe({ alertId: a, onBack: t }) {
224
+ function ke({ alertId: a, onBack: t }) {
225
225
  var h, y, U, O;
226
- const { authToken: n, tokenProps: i } = W(), { data: o, isLoading: c, refetch: u } = ue(a), s = (o == null ? void 0 : o.alert) ?? null, [l, m] = P([]), [g, v] = P([]), [x, C] = P(null), A = M(async () => {
226
+ const { authToken: n, tokenProps: o } = W(), { data: i, isLoading: c, refetch: u } = ue(a), s = (i == null ? void 0 : i.alert) ?? null, [l, m] = P([]), [g, v] = P([]), [x, C] = P(null), A = M(async () => {
227
227
  var f;
228
- const d = i == null ? void 0 : i.apiServiceUrl, p = n == null ? void 0 : n.accessToken;
228
+ const d = o == null ? void 0 : o.apiServiceUrl, p = n == null ? void 0 : n.accessToken;
229
229
  if (!d || !p || !a) return null;
230
230
  try {
231
231
  const S = await fetch(`${d}/v1/alerts/${a}/runs?limit=20`, {
@@ -240,8 +240,8 @@ function Fe({ alertId: a, onBack: t }) {
240
240
  return v([]), C(null), null;
241
241
  }
242
242
  return null;
243
- }, [a, n, x, i]), N = M(async (d) => {
244
- const p = i == null ? void 0 : i.apiServiceUrl, f = n == null ? void 0 : n.accessToken, S = d ?? x;
243
+ }, [a, n, x, o]), N = M(async (d) => {
244
+ const p = o == null ? void 0 : o.apiServiceUrl, f = n == null ? void 0 : n.accessToken, S = d ?? x;
245
245
  if (!p || !f || !a || !S) {
246
246
  m([]);
247
247
  return;
@@ -261,15 +261,15 @@ function Fe({ alertId: a, onBack: t }) {
261
261
  } catch {
262
262
  m([]);
263
263
  }
264
- }, [a, n, x, i]), F = M(async () => {
264
+ }, [a, n, x, o]), k = M(async () => {
265
265
  await u();
266
266
  const d = await A();
267
267
  await N(d);
268
268
  }, [N, A, u]);
269
- k(() => {
269
+ F(() => {
270
270
  A().catch(() => {
271
271
  });
272
- }, [A]), k(() => {
272
+ }, [A]), F(() => {
273
273
  N().catch(() => {
274
274
  });
275
275
  }, [N]);
@@ -287,7 +287,7 @@ function Fe({ alertId: a, onBack: t }) {
287
287
  /* @__PURE__ */ e(E, { variant: s.status === "ACTIVE" ? "default" : "secondary", children: Ce(s) }),
288
288
  ((h = s.alertState) == null ? void 0 : h.currentState) && /* @__PURE__ */ e(E, { variant: s.alertState.currentState === "FIRING" ? "destructive" : "outline", children: s.alertState.currentState === "FIRING" ? "Signal surfaced" : "Stable" })
289
289
  ] }),
290
- /* @__PURE__ */ e(T, { variant: "outline", size: "sm", onClick: () => void F(), children: "Refresh" })
290
+ /* @__PURE__ */ e(T, { variant: "outline", size: "sm", onClick: () => void k(), children: "Refresh" })
291
291
  ] }),
292
292
  s.description && /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: s.description }),
293
293
  /* @__PURE__ */ r("div", { className: "rounded-md border bg-muted/30 p-4 text-sm", children: [
@@ -364,7 +364,7 @@ function Fe({ alertId: a, onBack: t }) {
364
364
  }
365
365
  function Me() {
366
366
  var c, u;
367
- const { quotasQuery: a, usageQuery: t } = he(), n = ((c = a.data) == null ? void 0 : c.quotas) || [], i = ((u = t.data) == null ? void 0 : u.usage) || [], o = new Map(i.map((s) => [s.tenantId || "org", s]));
367
+ const { quotasQuery: a, usageQuery: t } = he(), n = ((c = a.data) == null ? void 0 : c.quotas) || [], o = ((u = t.data) == null ? void 0 : u.usage) || [], i = new Map(o.map((s) => [s.tenantId || "org", s]));
368
368
  return /* @__PURE__ */ r("div", { className: "space-y-4 p-4", children: [
369
369
  /* @__PURE__ */ r("div", { className: "flex items-center justify-between", children: [
370
370
  /* @__PURE__ */ e("h2", { className: "text-xl font-semibold", children: "Alert Quotas" }),
@@ -390,7 +390,7 @@ function Me() {
390
390
  /* @__PURE__ */ e("th", { className: "px-3 py-2 text-left font-medium", children: "Max Context Sources" })
391
391
  ] }) }),
392
392
  /* @__PURE__ */ e("tbody", { children: n.map((s) => {
393
- const l = s.tenantId || "org", m = o.get(l);
393
+ const l = s.tenantId || "org", m = i.get(l);
394
394
  return /* @__PURE__ */ r("tr", { className: "border-t", children: [
395
395
  /* @__PURE__ */ e("td", { className: "px-3 py-2", children: l }),
396
396
  /* @__PURE__ */ e("td", { className: "px-3 py-2", children: (m == null ? void 0 : m.activeAlerts) ?? 0 }),
@@ -407,7 +407,7 @@ function Me() {
407
407
  }
408
408
  export {
409
409
  Xt as AdvancedModeToggle,
410
- Fe as AlertDetailPageEmbedded,
410
+ ke as AlertDetailPageEmbedded,
411
411
  Oe as AlertManagementPage,
412
412
  ze as AlertWizardDialog,
413
413
  Be as AlertsApiError,
@@ -417,21 +417,23 @@ export {
417
417
  je as CardAlertIndicator,
418
418
  Qe as CardSummary,
419
419
  Ie as Combobox,
420
- it as DATE_FORMAT_VALUES,
420
+ ot as DATE_FORMAT_VALUES,
421
421
  Ht as DEFAULT_CALENDAR_CONTEXT,
422
422
  Gt as DEFAULT_SEMANTIC_DOMAIN_ACCESS,
423
423
  We as Dashboard,
424
424
  Jt as DashboardControlsSettings,
425
425
  Ve as DashboardExportDialog,
426
426
  Zt as DashboardFilterControlsButton,
427
+ es as DashboardFilterControlsLauncher,
427
428
  xt as DashboardSummarySettingsDialog,
428
429
  $e as DashboardWC,
429
- ot as EMPTY_SELECTION,
430
+ as as DocumentControlsSettings,
431
+ it as EMPTY_SELECTION,
430
432
  le as EmailScheduleDialog,
431
433
  He as ExportError,
432
- es as ExportNotificationItem,
433
- as as ExportNotificationList,
434
- ts as NotificationBell,
434
+ ts as ExportNotificationItem,
435
+ ss as ExportNotificationList,
436
+ rs as NotificationBell,
435
437
  lt as PivotMarkerEnum,
436
438
  Vt as ResourceManagementPanel,
437
439
  Ge as ResourceType,
@@ -443,9 +445,9 @@ export {
443
445
  Xe as SummaryCard,
444
446
  Je as Surfboard,
445
447
  Me as TenantQuotaPage,
446
- ss as UnsavedChangesAlert,
448
+ ns as UnsavedChangesAlert,
447
449
  we as Visual,
448
- rs as VisualEditingControls,
450
+ os as VisualEditingControls,
449
451
  ce as backtestAlert,
450
452
  Ze as cancelExport,
451
453
  Z as cloneDeep,
@@ -460,8 +462,8 @@ export {
460
462
  At as emitDashboardUnload,
461
463
  bt as fmt,
462
464
  na as formatFileSize,
463
- ia as getAlert,
464
- oa as getAlertContextSources,
465
+ oa as getAlert,
466
+ ia as getAlertContextSources,
465
467
  la as getAlertHistory,
466
468
  da as getAlertQuotaUsage,
467
469
  ca as getAlertRunDeliveries,
@@ -488,15 +490,15 @@ export {
488
490
  Pt as isDateDataType,
489
491
  xa as isExportComplete,
490
492
  Na as isExportInProgress,
491
- kt as isNumberDataType,
492
- Ft as isTextDataType,
493
+ Ft as isNumberDataType,
494
+ kt as isTextDataType,
493
495
  ya as listAlertQuotas,
494
496
  va as listAlerts,
495
- ls as normalizeDashboardForDirtyCheck,
497
+ cs as normalizeDashboardForDirtyCheck,
496
498
  Ca as previewAlertDeliverable,
497
499
  Mt as resolveDataType,
498
500
  Lt as resolveDatamodelName,
499
- ds as serializeDashboardForDirtyCheck,
501
+ us as serializeDashboardForDirtyCheck,
500
502
  Aa as triggerAlertNow,
501
503
  ba as updateAlert,
502
504
  Sa as updateAlertContextSources,
@@ -511,8 +513,8 @@ export {
511
513
  _a as useAlertFilters,
512
514
  Pa as useAlertHistory,
513
515
  he as useAlertQuotas,
514
- ka as useAlertRuns,
515
- Fa as useAlertState,
516
+ Fa as useAlertRuns,
517
+ ka as useAlertState,
516
518
  Ma as useAlertStore,
517
519
  La as useAlertWizard,
518
520
  Ua as useAlerts,
@@ -537,10 +539,10 @@ export {
537
539
  Ka as useEditorAside,
538
540
  Qt as useEditorStore,
539
541
  Ya as useExportActions,
540
- ns as useExportPolling,
541
- is as useExportRecovery,
542
+ is as useExportPolling,
543
+ ls as useExportRecovery,
542
544
  Xa as useExportStore,
543
- ke as useExposePrintState,
545
+ Fe as useExposePrintState,
544
546
  Ja as useInProgressExportsCount,
545
547
  Za as useManagementStore,
546
548
  Re as usePristineSnapshotInitializer,