react-semaphor 0.1.98 → 0.1.100

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 (24) hide show
  1. package/dist/chunks/{dashboard-controls-SfIULlwq.js → dashboard-controls-DKci3my0.js} +1 -1
  2. package/dist/chunks/{dashboard-controls-B7wa2KRe.js → dashboard-controls-DW1JJWP7.js} +28 -28
  3. package/dist/chunks/{dashboard-json-BJtvpPq-.js → dashboard-json-BDAEIUep.js} +1 -1
  4. package/dist/chunks/{dashboard-json-CmSkMcC5.js → dashboard-json-C0CKQW3d.js} +1 -1
  5. package/dist/chunks/{edit-dashboard-visual-Dx85J19h.js → edit-dashboard-visual-BtV3RWgf.js} +1 -1
  6. package/dist/chunks/{edit-dashboard-visual-BFFO7nug.js → edit-dashboard-visual-DQzy1fUR.js} +165 -165
  7. package/dist/chunks/{editor-action-buttons-B_i5UaKQ.js → editor-action-buttons-BJRrkj_n.js} +2 -2
  8. package/dist/chunks/{editor-action-buttons-DljIU0p-.js → editor-action-buttons-CReBF7FV.js} +1 -1
  9. package/dist/chunks/{index-C37s4iSV.js → index-BDtdPUUE.js} +155 -155
  10. package/dist/chunks/{index-DNQRM5V-.js → index-f2IZ7tlh.js} +7590 -7575
  11. package/dist/chunks/{resource-management-panel-h3nqEz3m.js → resource-management-panel-BQVERuRi.js} +1 -1
  12. package/dist/chunks/{resource-management-panel-CMoCDvGf.js → resource-management-panel-DNpbhYNu.js} +51 -51
  13. package/dist/chunks/{schedule-dashboard-CGKeVpPU.js → schedule-dashboard-CfeYnMXp.js} +149 -141
  14. package/dist/chunks/schedule-dashboard-D8ctQToc.js +6 -0
  15. package/dist/chunks/{use-visual-utils-not8LVVZ.js → use-visual-utils-BN4h1-xa.js} +1 -1
  16. package/dist/chunks/{use-visual-utils-B1-TK4CN.js → use-visual-utils-CRA2-3Z2.js} +14 -15
  17. package/dist/dashboard/index.cjs +1 -1
  18. package/dist/dashboard/index.js +1 -1
  19. package/dist/index.cjs +1 -1
  20. package/dist/index.js +4 -4
  21. package/dist/surfboard/index.cjs +1 -1
  22. package/dist/surfboard/index.js +1 -1
  23. package/package.json +1 -1
  24. package/dist/chunks/schedule-dashboard-D1TDsh3L.js +0 -6
@@ -1,4 +1,4 @@
1
- import { ai as G, aj as z, ad as Y, ae as J, ak as K, ab as _, a8 as X, u as U, al as Z, am as q, ah as $, an as ee, aa as h } from "./index-DNQRM5V-.js";
1
+ import { ai as G, aj as z, ad as Y, ae as J, ak as K, ab as _, a8 as X, u as U, al as Z, am as q, ah as v, an as ee, aa as h } from "./index-f2IZ7tlh.js";
2
2
  import { useState as T, useEffect as te, useCallback as V } from "react";
3
3
  function re(e) {
4
4
  const a = e.toUpperCase().indexOf("WHERE"), r = e.toUpperCase().indexOf("GROUP BY"), t = e.toUpperCase().indexOf("LIMIT"), i = e.toUpperCase().indexOf("ORDER BY");
@@ -82,7 +82,7 @@ async function M(e, a, r, t) {
82
82
  if (n)
83
83
  return console.log("Using cached visual data for:", r), { data: n, fromCache: !0 };
84
84
  console.log("Fetching visual data from network for:", r);
85
- const o = $.loading("Loading visual...", {
85
+ const o = v.loading("Loading visual...", {
86
86
  position: "top-center"
87
87
  });
88
88
  try {
@@ -97,9 +97,9 @@ async function M(e, a, r, t) {
97
97
  if (!s.ok)
98
98
  throw new Error("Failed to load visual");
99
99
  const d = await s.json();
100
- return t.setQueryData(i, d), $.dismiss(o), { data: d, fromCache: !1 };
100
+ return t.setQueryData(i, d), v.dismiss(o), { data: d, fromCache: !1 };
101
101
  } catch (s) {
102
- throw $.dismiss(o), s;
102
+ throw v.dismiss(o), s;
103
103
  }
104
104
  }
105
105
  function k(e) {
@@ -193,7 +193,7 @@ function de() {
193
193
  setActiveTabCardId: d,
194
194
  updateDataSource: m,
195
195
  setQueryResultColumns: u,
196
- setSelectedConnectionId: v,
196
+ setSelectedConnectionId: $,
197
197
  setSelectedDatabaseName: g,
198
198
  setSelectedSchemaName: c,
199
199
  setSelectedTableName: S,
@@ -202,8 +202,8 @@ function de() {
202
202
  setApplyFilters: C
203
203
  } = _(), {
204
204
  setIsDashboardEditing: p,
205
- setIsVisualEditing: A,
206
- setSelectedFrameId: N,
205
+ setIsVisualEditing: N,
206
+ setSelectedFrameId: A,
207
207
  clearSelectedFrameId: O,
208
208
  addFrame: x,
209
209
  setIsDashboardPanelOpen: R
@@ -226,7 +226,7 @@ function de() {
226
226
  setActiveTabCardId: d,
227
227
  updateDataSource: m,
228
228
  setQueryResultColumns: u,
229
- setSelectedConnectionId: v,
229
+ setSelectedConnectionId: $,
230
230
  setSelectedDatabaseName: g,
231
231
  setSelectedSchemaName: c,
232
232
  setSelectedTableName: S,
@@ -234,7 +234,7 @@ function de() {
234
234
  setFilterValues: w,
235
235
  setApplyFilters: C,
236
236
  setIsDashboardEditing: p,
237
- setIsVisualEditing: A,
237
+ setIsVisualEditing: N,
238
238
  dashboard: j,
239
239
  selectedSheetId: I,
240
240
  selectedFrameId: W,
@@ -254,12 +254,12 @@ function de() {
254
254
  n,
255
255
  o,
256
256
  p,
257
- A,
257
+ N,
258
258
  s,
259
259
  d,
260
260
  m,
261
261
  u,
262
- v,
262
+ $,
263
263
  g,
264
264
  c,
265
265
  S,
@@ -293,12 +293,11 @@ function de() {
293
293
  if (!(E != null && E.cards) || E.cards.length === 0)
294
294
  return { success: !1, error: "Visual frame is malformed" };
295
295
  const B = {
296
- ...E,
297
- id: q(),
296
+ ...q(E),
298
297
  visualId: l.id
299
298
  // Link this frame to the library visual
300
299
  };
301
- return x(I, B, "end"), p(!0), N(B.id), R(!1), { success: !0, fromCache: L };
300
+ return x(I, B, "end"), p(!0), A(B.id), R(!1), { success: !0, fromCache: L };
302
301
  } catch (f) {
303
302
  return console.error("Error adding visual:", f), { success: !1, error: "Failed to add visual to dashboard" };
304
303
  }
@@ -311,7 +310,7 @@ function de() {
311
310
  I,
312
311
  x,
313
312
  p,
314
- N,
313
+ A,
315
314
  R
316
315
  ]
317
316
  );
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-C37s4iSV.js"),r=require("../types/index.cjs");exports.Dashboard=e.Dashboard;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-BDtdPUUE.js"),r=require("../types/index.cjs");exports.Dashboard=e.Dashboard;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;
@@ -1,4 +1,4 @@
1
- import { D as a } from "../chunks/index-DNQRM5V-.js";
1
+ import { D as a } from "../chunks/index-f2IZ7tlh.js";
2
2
  import { EMPTY_SELECTION as e } from "../types/index.js";
3
3
  export {
4
4
  a as Dashboard,
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-C37s4iSV.js"),j=require("./types/index.cjs"),a=require("react/jsx-runtime"),g=require("react"),E=require("./chunks/resource-management-panel-h3nqEz3m.js"),h=require("./chunks/schedule-dashboard-D1TDsh3L.js");require("react-dom");function N(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:()=>t[n]})}}return r.default=t,Object.freeze(r)}const p=N(g);/**
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-BDtdPUUE.js"),j=require("./types/index.cjs"),a=require("react/jsx-runtime"),g=require("react"),E=require("./chunks/resource-management-panel-BQVERuRi.js"),h=require("./chunks/schedule-dashboard-D8ctQToc.js");require("react-dom");function N(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:()=>t[n]})}}return r.default=t,Object.freeze(r)}const p=N(g);/**
2
2
  * @license lucide-react v0.453.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { b as S, E as D, F as w, S as P, U as M, e as k, C as A, u as F, f as g, g as L, P as R, h as I, B as V, c as v, i as _, j as W, k as B, l as j, I as q, m as O, n as z, o as G, p as H, q as Q } from "./chunks/index-DNQRM5V-.js";
2
- import { G as oa, H as ta, D as na, x as ia, M as la, R as da, t as ca, t as ua, v as ha, a as pa, a9 as fa, Y as ma, z as Ca, N as va, _ as ya, Z as ba, a1 as ga, a2 as Da, W as xa, y as Ea, V as Na, K as Ta, L as Sa, J as wa, $ as Pa, T as Ma, Q as ka, O as Aa, a3 as Fa, a0 as La, w as Ra, a5 as Ia, a7 as Va, a6 as _a, a8 as Wa, A as Ba, r as ja, ab as qa, a4 as Oa, aa as za, s as Ga } from "./chunks/index-DNQRM5V-.js";
1
+ import { b as S, E as D, F as w, S as P, U as M, e as k, C as A, u as F, f as g, g as L, P as R, h as I, B as V, c as v, i as _, j as W, k as B, l as j, I as q, m as O, n as z, o as G, p as H, q as Q } from "./chunks/index-f2IZ7tlh.js";
2
+ import { G as oa, H as ta, D as na, x as ia, M as la, R as da, t as ca, t as ua, v as ha, a as pa, a9 as fa, Y as ma, z as Ca, N as va, _ as ya, Z as ba, a1 as ga, a2 as Da, W as xa, y as Ea, V as Na, K as Ta, L as Sa, J as wa, $ as Pa, T as Ma, Q as ka, O as Aa, a3 as Fa, a0 as La, w as Ra, a5 as Ia, a7 as Va, a6 as _a, a8 as Wa, A as Ba, r as ja, ab as qa, a4 as Oa, aa as za, s as Ga } from "./chunks/index-f2IZ7tlh.js";
3
3
  import { EMPTY_SELECTION as Qa } from "./types/index.js";
4
4
  import { jsx as a, jsxs as l } from "react/jsx-runtime";
5
5
  import * as p from "react";
6
6
  import { useMemo as U } from "react";
7
- import { ResourceManagementPanel as Ka } from "./chunks/resource-management-panel-CMoCDvGf.js";
8
- import { A as $a, S as Ja, V as Xa, c as Za, g as ae } from "./chunks/schedule-dashboard-CGKeVpPU.js";
7
+ import { ResourceManagementPanel as Ka } from "./chunks/resource-management-panel-DNpbhYNu.js";
8
+ import { A as $a, S as Ja, V as Xa, c as Za, g as ae } from "./chunks/schedule-dashboard-CfeYnMXp.js";
9
9
  import "react-dom";
10
10
  /**
11
11
  * @license lucide-react v0.453.0 - ISC
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-C37s4iSV.js"),r=require("../types/index.cjs");exports.Surfboard=e.DashboardPlus;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-BDtdPUUE.js"),r=require("../types/index.cjs");exports.Surfboard=e.DashboardPlus;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;
@@ -1,4 +1,4 @@
1
- import { a } from "../chunks/index-DNQRM5V-.js";
1
+ import { a } from "../chunks/index-f2IZ7tlh.js";
2
2
  import { EMPTY_SELECTION as E } from "../types/index.js";
3
3
  export {
4
4
  E as EMPTY_SELECTION,
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "email": "support@semaphor.cloud"
6
6
  },
7
7
  "license": "MIT",
8
- "version": "0.1.98",
8
+ "version": "0.1.100",
9
9
  "description": "Fully interactive and customizable dashboards for your apps.",
10
10
  "keywords": [
11
11
  "react",
@@ -1,6 +0,0 @@
1
- "use strict";const s=require("react/jsx-runtime"),e=require("./index-C37s4iSV.js"),g=require("./editor-action-buttons-DljIU0p-.js"),v=require("react"),y=require("./use-visual-utils-not8LVVZ.js");/**
2
- * @license lucide-react v0.453.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const k=e.createLucideIcon("CirclePlus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]);function N({open:a,onOpenChange:o,isLibraryVisual:t,currentVisualName:n,isSaving:r=!1,onConfirm:u}){const[h,d]=v.useState(t&&n?`Copy of ${n}`:n||""),[l,x]=v.useState(""),[p,j]=v.useState(!t),[b,D]=v.useState(!0);v.useEffect(()=>{a&&(d(t&&n?`Copy of ${n}`:n||""),x(""),j(!t),D(!0))},[a,t,n]);const C=()=>{h.trim()&&(!p&&!b||u({name:h.trim(),description:l.trim()||void 0,saveToLibrary:p,saveToCurrentDashboard:b}))},S=h.trim()&&(p||b);return s.jsx(e.Dialog,{open:a,onOpenChange:o,children:s.jsxs(e.DialogContent,{className:"sm:max-w-[425px]",children:[s.jsxs(e.DialogHeader,{children:[s.jsx(e.DialogTitle,{children:"Save Visual As"}),s.jsx(e.DialogDescription,{children:t?"Create a copy of this visual with a new name":"Save this visual to make it reusable"})]}),s.jsxs("div",{className:"grid gap-4 py-4",children:[s.jsxs("div",{className:"grid gap-2",children:[s.jsx(e.Label,{htmlFor:"name",children:"Name"}),s.jsx(e.Input,{id:"name",value:h,onChange:m=>d(m.target.value),placeholder:"Enter visual name",disabled:r})]}),s.jsxs("div",{className:"grid gap-2",children:[s.jsx(e.Label,{htmlFor:"description",children:"Description (optional)"}),s.jsx(e.Textarea,{id:"description",value:l,onChange:m=>x(m.target.value),placeholder:"Enter visual description",rows:3,disabled:r})]}),s.jsxs("div",{className:"space-y-4",children:[s.jsx(e.Label,{children:"Save to:"}),s.jsxs("div",{className:"space-y-2",children:[s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx(e.Checkbox,{id:"save-to-dashboard",checked:b,onCheckedChange:m=>D(!!m),disabled:r}),s.jsxs("label",{htmlFor:"save-to-dashboard",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:["Current Dashboard",s.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:t?"(add copy to this dashboard)":"(keep as local visual)"})]})]}),s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx(e.Checkbox,{id:"save-to-library",checked:p,onCheckedChange:m=>j(!!m),disabled:r}),s.jsxs("label",{htmlFor:"save-to-library",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:["Visual Library",s.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:t?"(save as new reusable visual)":"(make available to all dashboards)"})]})]})]}),!p&&!b&&s.jsx("p",{className:"text-sm text-destructive",children:"Please select at least one destination"})]})]}),s.jsxs(e.DialogFooter,{children:[s.jsx(e.Button,{variant:"outline",onClick:()=>o(!1),disabled:r,children:"Cancel"}),s.jsxs(e.Button,{onClick:C,disabled:!S||r,children:[r&&s.jsx(e.LoaderCircle,{className:"mr-2 h-4 w-4 animate-spin"}),r?"Saving...":"Save"]})]})]})})}function V(){const[a,o]=v.useState(!1),[t,n]=v.useState(!1),[r,u]=v.useState(null),h=e.useEditorStore(i=>i.frame),d=e.useEditorStore(i=>i.card),l=e.useSelectedVisual(),x=e.useDashboardStore(i=>i.selectedSheetId),p=e.useDashboardStore(i=>i.actions.setIsDashboardPanelOpen),{getUpdatedFrame:j}=y.useVisualUtils(),{selectVisual:b}=e.useManagementActions(),{addFrame:D,setSelectedFrameId:C,setIsVisualEditing:S}=e.useDashboardActions(),m=!!(h!=null&&h.visualId),w=(l==null?void 0:l.title)||(d==null?void 0:d.title)||"Untitled Visual",c=e.useCreateVisualWithFrame(i=>{if(i!=null&&i.id){if(b(i),t&&r&&x){const f={...r,id:e.v4(),visualId:i.id};D(x,f,"end"),C(f.id),n(!1),u(null),S(!1)}p(!0),o(!1)}});return{saveAsDialogOpen:a,setSaveAsDialogOpen:o,handleSaveAs:async i=>{if(!x){e.ue.error("No sheet selected");return}const f=j();if(i.saveToLibrary){n(i.saveToCurrentDashboard),u(f);const A={title:i.name,description:i.description,frameObject:f,isPrivate:!1};c.mutate(A)}else if(i.saveToCurrentDashboard){const A={...f,id:e.v4(),visualId:void 0,cards:f.cards.map(I=>({...I,title:I.id===d.id?i.name:I.title}))};D(x,A,"end"),C(A.id),e.ue.success("Visual saved to dashboard"),o(!1),S(!1)}},isLibraryVisual:m,currentVisualName:w,isSaving:c.isPending}}function F({className:a}){const o=e.useEditorStore(c=>c.frame),t=e.useEditorStore(c=>c.card),n=e.useManagementStore(c=>c.selectedVisual),r=e.useDashboardStore(c=>c.selectedFrameId),u=e.useDashboardStore(c=>c.selectedSheetId),{setIsVisualEditing:h}=e.useDashboardActions(),d=!!(o!=null&&o.visualId||n!=null&&n.id),l=!!(o!=null&&o.visualId&&r),x=d&&!l,{saveAsDialogOpen:p,setSaveAsDialogOpen:j,handleSaveAs:b,isLibraryVisual:D,currentVisualName:C,isSaving:S}=V(),{handleAddLibraryVisual:m}=y.useVisualUtils(),w=async()=>{if(!u){e.ue.error("No dashboard sheet selected");return}if(!n){e.ue.error("No visual selected");return}const c=await m(n);c.success?(e.ue.success("Visual added to dashboard"),h(!1)):e.ue.error(c.error||"Failed to add visual to dashboard")};return s.jsxs(s.Fragment,{children:[!d&&s.jsx(g.EditorAcceptButton,{className:a,variant:"default"}),d&&s.jsxs(s.Fragment,{children:[l&&s.jsx(g.VisualApplyLocalButton,{className:a}),x&&u&&t&&(t.sql||e.hasValidCardConfig(t.config))&&s.jsxs(e.Button,{onClick:w,className:e.cn(a),size:"sm",variant:"outline",children:[s.jsx(k,{className:"mr-2 size-4 font-bold"}),"Add to Dashboard"]}),x&&s.jsx(g.VisualSaveButton,{className:a,variant:"default"}),l&&s.jsx(g.VisualSaveAndApplyButton,{className:a}),s.jsxs(e.DropdownMenu,{modal:!1,children:[s.jsx(e.DropdownMenuTrigger,{asChild:!0,children:s.jsx(e.Button,{variant:"outline",size:"sm",className:e.cn(a,"w-8 p-0"),children:s.jsx(e.EllipsisVertical,{className:"h-4 w-4"})})}),s.jsx(e.DropdownMenuContent,{align:"end",children:s.jsxs(e.DropdownMenuItem,{onClick:c=>{c.stopPropagation(),j(!0)},children:[s.jsx(g.Save,{className:"mr-2 h-4 w-4"}),"Save As..."]})})]})]}),!d&&s.jsxs(e.DropdownMenu,{modal:!1,children:[s.jsx(e.DropdownMenuTrigger,{asChild:!0,children:s.jsx(e.Button,{variant:"outline",size:"sm",className:e.cn(a,"w-8 p-0"),children:s.jsx(e.EllipsisVertical,{className:"h-4 w-4"})})}),s.jsx(e.DropdownMenuContent,{align:"end",children:s.jsxs(e.DropdownMenuItem,{onClick:()=>j(!0),children:[s.jsx(g.Save,{className:"mr-2 h-4 w-4"}),"Save As..."]})})]}),s.jsx(g.EditorCancelButton,{className:a}),s.jsx(N,{open:p,onOpenChange:c=>{S||j(c)},isLibraryVisual:D,currentVisualName:C,isSaving:S,onConfirm:b})]})}function E({className:a,switchClassName:o}){const t=e.useEditorStore(d=>d.isDevMode),n=e.useDashboardStore(d=>d.isVisualEditing),{setIsDevMode:r}=e.useEditorActions(),{config:u}=v.useContext(e.SemaphorContext).tokenProps,h=(u==null?void 0:u.showAdvancedMode)!==!1;return!n||!h?null:s.jsxs("div",{className:e.cn("flex items-center space-x-2",a),children:[s.jsx(e.DevModeSwitch,{className:e.cn("",o),checked:t,onCheckedChange:()=>r(!t),id:"advanced-mode",icon:s.jsx(e.CodeXml,{className:"h-4 w-4"}),tooltip:t?"Standard Mode":"Advanced Mode"}),s.jsx("label",{htmlFor:"advanced-mode",className:"sr-only",children:"Advanced Mode"})]})}function T(a){var o;return{...a,sheets:(o=a==null?void 0:a.sheets)==null?void 0:o.map(t=>{var n;return{...t,frames:(n=t.frames)==null?void 0:n.map(r=>{var u;return{...r,cards:(u=r.cards)==null?void 0:u.map(h=>M(h))}})}})}}function M(a){return{...a,customCfg:B(a.customCfg),data:[]}}function B(a){var o,t;return a?{...a,data:{...a==null?void 0:a.data,labels:[],datasets:(t=(o=a==null?void 0:a.data)==null?void 0:o.datasets)==null?void 0:t.map(n=>({...n,data:[]}))}}:null}function O({triggerButtonClassName:a}){const[o,t]=v.useState(!1),n=e.useDashboardStore(d=>{var l;return(l=d.dashboard)==null?void 0:l.id}),r=e.useDashboardStore(d=>{var l;return(l=d.dashboard)==null?void 0:l.title}),u=e.useDashboardStore(d=>{var l;return(l=d.dashboard)==null?void 0:l.sheets}),h=e.useDashboardStore(d=>d.selectedSheetId);return u==null||u.find(d=>d.id===h),n?s.jsxs(s.Fragment,{children:[s.jsx(e.IconButton,{tooltip:"Schedule Dashboard",className:e.cn("h-7 p-2",a),onClick:()=>t(!0),children:s.jsx(e.Clock,{className:"size-4"})}),s.jsx(e.EmailScheduleDialog,{open:o,onOpenChange:t,dashboardId:n,dashboardName:r})]}):null}exports.AdvancedModeToggle=E;exports.ScheduleDashboard=O;exports.VisualEditingControls=F;exports.cleanCard=M;exports.getDashbaordStateWithoutData=T;