@burdenoff/fluidgrids-fe-sdk 2026.1115.3 → 2026.1115.5

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 (64) hide show
  1. package/dist/{AiStudioPage-CRgw_P7Y.js → AiStudioPage-WXzAFKjc.js} +4 -4
  2. package/dist/{ApprovalInboxPage-CM2nA4eE.js → ApprovalInboxPage-5RsXtGOd.js} +1 -1
  3. package/dist/{DataSinkDashboardPage-C2Lb5c7p.js → DataSinkDashboardPage-ClMEuGKj.js} +1 -1
  4. package/dist/{DataTablesPage-C7I_PCvD.js → DataTablesPage-Ds0oPx2J.js} +2 -2
  5. package/dist/{Disclosure-CsxDspR7.js → Disclosure-PfrdUKIg.js} +2 -2
  6. package/dist/{ExecutionDetailPage-72GPEmJf.js → ExecutionDetailPage-DY_PEQOX.js} +6 -6
  7. package/dist/{ExecutionsListPage-sdpULJ-y.js → ExecutionsListPage-D-UUcOqS.js} +6 -6
  8. package/dist/{FluidGridsProvider-64qAUX4Y.js → FluidGridsProvider-CaOI_H63.js} +2 -2
  9. package/dist/{HistoryPage-DDIwBAsG.js → HistoryPage-D4EB1U7t.js} +1 -1
  10. package/dist/{InsightsPage-Dw2ElMGW.js → InsightsPage-CoP1UTX6.js} +2 -2
  11. package/dist/{NodesPage-C3sh0aL9.js → NodesPage-D8xEY3Wd.js} +14 -13
  12. package/dist/OfflineIcon-Ckynq7Vp.js +124 -0
  13. package/dist/{OpenTemplateAsCodeButton-DCEbeUb5.js → OpenTemplateAsCodeButton-DpOFXUOn.js} +4 -4
  14. package/dist/{PaidTemplateConfirm-B3R-JvoA.js → PaidTemplateConfirm-DuT2iqJ8.js} +1 -1
  15. package/dist/{RunnersPage-D2teM_sE.js → RunnersPage-DPPthewP.js} +1 -1
  16. package/dist/{SettingsPage-Drgu5p5s.js → SettingsPage-CCddB2gg.js} +4 -4
  17. package/dist/{TechnicalDetails-r5JXr1jZ.js → TechnicalDetails-CMZwijEM.js} +1 -1
  18. package/dist/{TemplateCard-CA4tMUzN.js → TemplateCard-DlXp6fsq.js} +7 -6
  19. package/dist/{TemplateConfigurationModal-CObP8Po7.js → TemplateConfigurationModal-kuykSUNk.js} +1 -1
  20. package/dist/{TemplateDetailPanel-DXJ9VYsh.js → TemplateDetailPanel-D81Wl3rx.js} +4 -3
  21. package/dist/{TemplatePreview-CXvkYDem.js → TemplatePreview-wDWBw1Bi.js} +54 -26
  22. package/dist/{TemplatesPage-xwQk9WrO.js → TemplatesPage-B9tGKcZB.js} +38 -31
  23. package/dist/{VariablesPage-Bx3LNar7.js → VariablesPage-D_8oB3WB.js} +1 -1
  24. package/dist/{WorkflowBuilder-uhe3YUI5.js → WorkflowBuilder-4EidvAbF.js} +4 -4
  25. package/dist/{WorkflowBuilder-BFJq_45O.js → WorkflowBuilder-BKSDwVdq.js} +6 -6
  26. package/dist/{WorkflowSearchRedirect-DgSyY4Uj.js → WorkflowSearchRedirect-EDekweeR.js} +1 -1
  27. package/dist/{WorkflowsList-Cjjti0SI.js → WorkflowsList-BbZDL1XB.js} +6 -6
  28. package/dist/{agentTools-pSaWntVD.js → agentTools-BHNiWrQw.js} +3 -3
  29. package/dist/{attach-node-helpers-4d-YMaBH.js → attach-node-helpers-CdJnfSMp.js} +1 -1
  30. package/dist/{canvasNoteTools-Hr1m_3mF.js → canvasNoteTools-w5Xg-5pX.js} +2 -2
  31. package/dist/executions.js +2 -2
  32. package/dist/{flow-builder-D6iWW6tJ.js → flow-builder-BYQbt7mf.js} +18 -18
  33. package/dist/history.js +1 -1
  34. package/dist/index.js +35 -35
  35. package/dist/{logs-panel-BgGt_dFm.js → logs-panel-PCjDyny7.js} +1 -1
  36. package/dist/{node-detail-view-cr0pbiSX.js → node-detail-view-BsTHnPdm.js} +7 -7
  37. package/dist/{node-editor-tab-body-_09aIAMK.js → node-editor-tab-body-D3YGuQD0.js} +3 -3
  38. package/dist/{node-operation-selection-DHbtGNrG.js → node-operation-selection-DCJ_DDHr.js} +1 -1
  39. package/dist/{node-type-icon-DEAztACh.js → node-type-icon-nGIb5TyU.js} +8 -3
  40. package/dist/nodes.js +1 -1
  41. package/dist/observability.js +2 -2
  42. package/dist/{popover-BdjGE-KB.js → popover-BtbVqTzP.js} +2 -2
  43. package/dist/{quick-config-panel-BQpUJ1Ed.js → quick-config-panel-CtMEb5RX.js} +5 -5
  44. package/dist/{schedule-panel-Dwq6JXhH.js → schedule-panel-D_r1fikL.js} +1324 -330
  45. package/dist/settings.js +1 -1
  46. package/dist/{sidebar-node-editor-Cx9-gwpu.js → sidebar-node-editor-D0QnJDKz.js} +5 -5
  47. package/dist/{store-icon-BOiBSHY6.js → store-icon-CVt10XSp.js} +20 -9
  48. package/dist/{template-preview-BpP8QMAe.js → template-preview-ByYgTYSz.js} +1 -1
  49. package/dist/templates.js +2 -2
  50. package/dist/{use-workflow-code-editor-CBOkjntt.js → use-workflow-code-editor-Bx2D6sH5.js} +1 -1
  51. package/dist/{useAgentDefinitions-dpKr9Mee.js → useAgentDefinitions-tsGlUO4v.js} +1 -1
  52. package/dist/{useDurableParity-ClG3HMH8.js → useDurableParity-X6Zze6Sb.js} +1 -1
  53. package/dist/{useExecutions-D9Sc9QbB.js → useExecutions-BzvKMRA1.js} +1 -1
  54. package/dist/{useGlobalStoreClient-iCPQeryK.js → useGlobalStoreClient-ZLYG_Xls.js} +1 -1
  55. package/dist/{useObservability-CkNAUULL.js → useObservability-DadWpUTF.js} +1 -1
  56. package/dist/{useRunHistory-Dv1V1EO0.js → useRunHistory-DA8-msTi.js} +1 -1
  57. package/dist/{useWorkflowCodeExport-C1UH65gc.js → useWorkflowCodeExport-CuJCY0lh.js} +1 -1
  58. package/dist/{useWorkflows-CEOWXYpV.js → useWorkflows-DKBtpjFx.js} +1 -1
  59. package/dist/workflow-builder.js +5 -5
  60. package/dist/{workflow-description-QYwLwwFT.js → workflow-description-CllsqYja.js} +1 -1
  61. package/dist/workflow-pages.js +18 -18
  62. package/dist/workflow-preview.js +1 -1
  63. package/dist/workflows-list.js +1 -1
  64. package/package.json +2 -1
@@ -2,8 +2,8 @@
2
2
  import { t as Button } from "./button-DG7y_FVJ.js";
3
3
  import { t as Badge } from "./badge-CXfPhoMH.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
- import { t as templatePreviewCandidates } from "./template-preview-BpP8QMAe.js";
6
- import { t as StoreIcon } from "./store-icon-BOiBSHY6.js";
5
+ import { t as templatePreviewCandidates } from "./template-preview-ByYgTYSz.js";
6
+ import { t as StoreIcon } from "./store-icon-CVt10XSp.js";
7
7
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { Calendar, Download, ExternalLink, Eye, Sparkles, Star, Tag, User, X } from "lucide-react";
@@ -61,7 +61,8 @@ function TemplateDetailPanel({ template, onClose, onUseTemplate }) {
61
61
  imageClassName: "w-full h-full",
62
62
  iconClassName: "text-primary/60",
63
63
  iconSize: 64,
64
- fallback: /* @__PURE__ */ jsx(Sparkles, { className: "size-16 text-primary/30" })
64
+ fallback: /* @__PURE__ */ jsx(Sparkles, { className: "size-16 text-primary/30" }),
65
+ offline: true
65
66
  })
66
67
  }),
67
68
  /* @__PURE__ */ jsx("div", {
@@ -1,21 +1,22 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { t as ThemeProvider } from "./theme-provider-B3mIuz2d.js";
4
- import { t as FlowBuilderPage } from "./flow-builder-D6iWW6tJ.js";
5
- import { _ as useInstalledNodes, a as buildNodeCheck, c as useImportWorkflowTemplate, i as useTemplateImportFlow, n as formatTemplatePrice, o as buildRequiredNodeTypes, r as isPaidTemplate } from "./TemplateCard-CA4tMUzN.js";
6
- import { i as QuotaExhaustedDialog } from "./useWorkflowCodeExport-C1UH65gc.js";
7
- import { n as WithOpenTemplateAsCode } from "./OpenTemplateAsCodeButton-DCEbeUb5.js";
4
+ import { t as FlowBuilderPage } from "./flow-builder-BYQbt7mf.js";
5
+ import { _ as useInstalledNodes, a as buildNodeCheck, c as useImportWorkflowTemplate, i as useTemplateImportFlow, n as formatTemplatePrice, o as buildRequiredNodeTypes, r as isPaidTemplate } from "./TemplateCard-DlXp6fsq.js";
6
+ import { i as QuotaExhaustedDialog } from "./useWorkflowCodeExport-CuJCY0lh.js";
7
+ import { n as WithOpenTemplateAsCode } from "./OpenTemplateAsCodeButton-DpOFXUOn.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
9
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
10
10
  import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
11
11
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
12
+ import { r as registerOfflineIcons, t as OfflineIcon } from "./OfflineIcon-Ckynq7Vp.js";
12
13
  import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
13
- import { t as Disclosure } from "./Disclosure-CsxDspR7.js";
14
+ import { t as Disclosure } from "./Disclosure-PfrdUKIg.js";
14
15
  import { c as useVariables, t as useCreateVariable } from "./useVariables-DFdZofLQ.js";
15
- import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-B3R-JvoA.js";
16
+ import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-DuT2iqJ8.js";
17
+ import { t as cn } from "./cn-QqidFIgr.js";
16
18
  import { useEffect, useMemo, useState } from "react";
17
19
  import { useLocation, useNavigate, useParams } from "react-router";
18
- import { Icon } from "@iconify/react";
19
20
  import { jsx, jsxs } from "react/jsx-runtime";
20
21
  import { toast } from "sonner";
21
22
  import { Input } from "@burdenoff/fe-libs/ui";
@@ -212,7 +213,7 @@ function AppsSection({ nodeCheck }) {
212
213
  children: app.name
213
214
  }), /* @__PURE__ */ jsxs("span", {
214
215
  className: "flex shrink-0 items-center gap-1 text-text-secondary",
215
- children: [/* @__PURE__ */ jsx(Icon, {
216
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
216
217
  icon: APP_STATUS_ICON[app.status],
217
218
  width: 14
218
219
  }), statusText[app.status]]
@@ -352,6 +353,44 @@ function TemplateNeedsPanel({ template, content, nodeCheck, steps }) {
352
353
  });
353
354
  }
354
355
 
356
+ // src/pages/TemplatePreviewIcons.tsx
357
+ /**
358
+ * The template preview's own chrome icons (back arrow, spinner, alert, plus),
359
+ * drawn from the bundled icon set so the preview header never asks the public
360
+ * Iconify API for them.
361
+ *
362
+ * They live in this small module rather than in `TemplatePreview.tsx` because
363
+ * the offline icon generator bundles every `mdi:` literal in the import
364
+ * closure of each module that imports `OfflineIcon`. The preview page imports
365
+ * the whole builder; this module imports nothing but the icon component, so
366
+ * only these icons are added to the bundle.
367
+ */
368
+ function PreviewBackIcon({ className }) {
369
+ return /* @__PURE__ */ jsx(OfflineIcon, {
370
+ icon: "mdi:arrow-left",
371
+ className
372
+ });
373
+ }
374
+ function PreviewAlertIcon({ className }) {
375
+ return /* @__PURE__ */ jsx(OfflineIcon, {
376
+ icon: "mdi:alert-circle-outline",
377
+ className
378
+ });
379
+ }
380
+ function PreviewPlusIcon({ className }) {
381
+ return /* @__PURE__ */ jsx(OfflineIcon, {
382
+ icon: "mdi:plus",
383
+ className
384
+ });
385
+ }
386
+ /** A spinning progress icon (the bundled set has no animated spinners). */
387
+ function PreviewSpinner({ className }) {
388
+ return /* @__PURE__ */ jsx(OfflineIcon, {
389
+ icon: "mdi:loading",
390
+ className: cn("animate-spin", className)
391
+ });
392
+ }
393
+
355
394
  // src/utils/template-graph.ts
356
395
  /**
357
396
  * Extract nodes/edges from a template `content` object.
@@ -463,6 +502,7 @@ function useTemplatePreviewLoad(productId, withRequiredNodes) {
463
502
 
464
503
  // src/pages/TemplatePreview.tsx
465
504
  var TemplatePreview_exports = /* @__PURE__ */ __exportAll({ TemplatePreview: () => TemplatePreview });
505
+ registerOfflineIcons();
466
506
  /**
467
507
  * TemplatePreview — a read-only, n8n-style preview of a store workflow template.
468
508
  *
@@ -489,15 +529,12 @@ function PreviewBadge({ plain }) {
489
529
  });
490
530
  }
491
531
  /** A message in place of the canvas, with the way back to Templates. */
492
- function PreviewMessage({ message, onBack, icon }) {
532
+ function PreviewMessage({ message, onBack, alert = false }) {
493
533
  const tr = useTr();
494
534
  return /* @__PURE__ */ jsxs("div", {
495
535
  className: "flex h-full flex-col items-center justify-center gap-3 p-8 text-center",
496
536
  children: [
497
- icon && /* @__PURE__ */ jsx(Icon, {
498
- icon,
499
- className: "size-8 text-muted-foreground"
500
- }),
537
+ alert && /* @__PURE__ */ jsx(PreviewAlertIcon, { className: "size-8 text-muted-foreground" }),
501
538
  /* @__PURE__ */ jsx("p", {
502
539
  className: "text-sm text-muted-foreground",
503
540
  children: message
@@ -514,10 +551,7 @@ function PreviewLoading() {
514
551
  const tr = useTr();
515
552
  return /* @__PURE__ */ jsxs("div", {
516
553
  className: "flex h-full items-center justify-center gap-2 text-sm text-muted-foreground",
517
- children: [/* @__PURE__ */ jsx(Icon, {
518
- icon: "svg-spinners:ring-resize",
519
- className: "size-4"
520
- }), tr("fluidgrids.pages.templatePreview.loadingPreview", "Loading preview…")]
554
+ children: [/* @__PURE__ */ jsx(PreviewSpinner, { className: "size-4" }), tr("fluidgrids.pages.templatePreview.loadingPreview", "Loading preview…")]
521
555
  });
522
556
  }
523
557
  function TemplatePreview() {
@@ -559,10 +593,7 @@ function TemplatePreview() {
559
593
  onClick: backToTemplates,
560
594
  title: tr("fluidgrids.pages.templatePreview.backTooltip", "Back to templates"),
561
595
  className: "flex size-9 shrink-0 items-center justify-center rounded-md text-card-foreground transition-colors hover:bg-card-foreground/10",
562
- children: /* @__PURE__ */ jsx(Icon, {
563
- icon: "ion:arrow-back-outline",
564
- className: "size-5"
565
- })
596
+ children: /* @__PURE__ */ jsx(PreviewBackIcon, { className: "size-5" })
566
597
  }), /* @__PURE__ */ jsxs("div", {
567
598
  className: "min-w-0",
568
599
  children: [/* @__PURE__ */ jsxs("div", {
@@ -588,10 +619,7 @@ function TemplatePreview() {
588
619
  onClick: handleUse,
589
620
  disabled: importing || !template,
590
621
  className: "shrink-0 gap-2",
591
- children: [/* @__PURE__ */ jsx(Icon, {
592
- icon: importing ? "svg-spinners:ring-resize" : "mdi:plus",
593
- className: "size-4"
594
- }), tr("fluidgrids.pages.templatePreview.useThisTemplate", "Use this template")]
622
+ children: [importing ? /* @__PURE__ */ jsx(PreviewSpinner, { className: "size-4" }) : /* @__PURE__ */ jsx(PreviewPlusIcon, { className: "size-4" }), tr("fluidgrids.pages.templatePreview.useThisTemplate", "Use this template")]
595
623
  })
596
624
  })
597
625
  })]
@@ -610,7 +638,7 @@ function TemplatePreview() {
610
638
  onBack: backToTemplates
611
639
  }),
612
640
  children: loading ? /* @__PURE__ */ jsx(PreviewLoading, {}) : error ? /* @__PURE__ */ jsx(PreviewMessage, {
613
- icon: "mdi:alert-circle-outline",
641
+ alert: true,
614
642
  message: error,
615
643
  onBack: backToTemplates
616
644
  }) : workflow ? /* @__PURE__ */ jsx(FlowBuilderPage, {
@@ -1,35 +1,35 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-CEOWXYpV.js";
4
- import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard, v as storeContextHeaders } from "./TemplateCard-CA4tMUzN.js";
3
+ import { r as registerOfflineIcons, t as OfflineIcon } from "./OfflineIcon-Ckynq7Vp.js";
4
+ import { h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, s as useDuplicateWorkflow } from "./useWorkflows-DKBtpjFx.js";
5
+ import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard, v as storeContextHeaders } from "./TemplateCard-DlXp6fsq.js";
5
6
  import { PI as WorkflowExportFormat, cL as WorkflowStatus } from "./graphql-types-BjCOnRUQ.js";
6
7
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
7
- import { i as QuotaExhaustedDialog, t as fetchWorkflowCodeExport } from "./useWorkflowCodeExport-C1UH65gc.js";
8
+ import { i as QuotaExhaustedDialog, t as fetchWorkflowCodeExport } from "./useWorkflowCodeExport-CuJCY0lh.js";
8
9
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { fn as useFluidGridsAnalytics, t as FluidGridsContext } from "./FluidGridsProvider-64qAUX4Y.js";
10
+ import { fn as useFluidGridsAnalytics, t as FluidGridsContext } from "./FluidGridsProvider-CaOI_H63.js";
10
11
  import { a as emitTemplateUsed } from "./fluidgridsEvents-Dm5CaHtr.js";
11
12
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
12
13
  import { r as templatesControls } from "./pageControlSpecs-DZJ9K37m.js";
13
14
  import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
14
15
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
15
16
  import { h as usePhaseDFlags } from "./feature-flags-B_b8PJ6Z.js";
16
- import { t as fetchWorkflowCodeSource } from "./use-workflow-code-editor-CBOkjntt.js";
17
+ import { t as fetchWorkflowCodeSource } from "./use-workflow-code-editor-Bx2D6sH5.js";
17
18
  import { t as fetchConnectionNames } from "./useConnections-CmnwGk09.js";
18
19
  import { m as isLosslessReport } from "./workflow-transfer-390a-CK8.js";
19
20
  import { a as contentTypeOf, n as TemplateCodeError, o as isTier2Definition, r as assertTemplateSources, t as TEMPLATE_SOURCES_MAX_BYTES } from "./template-code-xlEMDtL8.js";
20
- import { t as useGlobalStoreClient } from "./useGlobalStoreClient-iCPQeryK.js";
21
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-ZLYG_Xls.js";
21
22
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
22
23
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
23
- import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
24
+ import { t as NodeTypeIcon } from "./node-type-icon-nGIb5TyU.js";
24
25
  import { n as formatRunVersion } from "./run-display-UjLAoYqQ.js";
25
26
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
26
- import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
27
- import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-B3R-JvoA.js";
27
+ import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
28
+ import { t as PaidTemplateConfirm } from "./PaidTemplateConfirm-DuT2iqJ8.js";
28
29
  import { t as cn } from "./cn-QqidFIgr.js";
29
30
  import { useCallback, useContext, useEffect, useMemo, useState } from "react";
30
31
  import { useNavigate } from "react-router";
31
32
  import { useQuery } from "@apollo/client/react";
32
- import { Icon } from "@iconify/react";
33
33
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
34
34
  import { toast } from "sonner";
35
35
  import { gql } from "@apollo/client";
@@ -1462,11 +1462,11 @@ function PublishTemplateDialog({ open, onOpenChange, workflow, resubmit, onSubmi
1462
1462
  onClick: () => void submit(),
1463
1463
  disabled: busy || !workflow,
1464
1464
  "data-testid": "publish-template-submit",
1465
- children: [busy ? /* @__PURE__ */ jsx(Icon, {
1465
+ children: [busy ? /* @__PURE__ */ jsx(OfflineIcon, {
1466
1466
  icon: "mdi:loading",
1467
1467
  width: 14,
1468
1468
  className: "mr-1.5 animate-spin"
1469
- }) : /* @__PURE__ */ jsx(Icon, {
1469
+ }) : /* @__PURE__ */ jsx(OfflineIcon, {
1470
1470
  icon: "mdi:store-plus",
1471
1471
  width: 14,
1472
1472
  className: "mr-1.5"
@@ -1562,7 +1562,7 @@ function MySubmissionsPanel({ onResubmit }) {
1562
1562
  children: [
1563
1563
  /* @__PURE__ */ jsx("div", {
1564
1564
  className: "rounded-full bg-surface p-4 mb-4",
1565
- children: /* @__PURE__ */ jsx(Icon, {
1565
+ children: /* @__PURE__ */ jsx(OfflineIcon, {
1566
1566
  icon: "mdi:store-plus",
1567
1567
  width: 40,
1568
1568
  className: "text-text-secondary"
@@ -1601,6 +1601,7 @@ function MySubmissionsPanel({ onResubmit }) {
1601
1601
  icon: submission.icon,
1602
1602
  alt: submission.name,
1603
1603
  fallbackIcon: "mdi:workflow",
1604
+ offline: true,
1604
1605
  className: "size-[22px] text-text-primary"
1605
1606
  })
1606
1607
  }), /* @__PURE__ */ jsxs("div", {
@@ -1653,7 +1654,7 @@ function MySubmissionsPanel({ onResubmit }) {
1653
1654
  variant: "outline",
1654
1655
  className: `shrink-0 w-fit ${style.className}`,
1655
1656
  "data-testid": "my-submission-status",
1656
- children: [/* @__PURE__ */ jsx(Icon, {
1657
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
1657
1658
  icon: style.icon,
1658
1659
  width: 14,
1659
1660
  className: "mr-1"
@@ -1677,7 +1678,7 @@ function MySubmissionsPanel({ onResubmit }) {
1677
1678
  size: "sm",
1678
1679
  onClick: () => onResubmit(submission),
1679
1680
  disabled: busy,
1680
- children: [/* @__PURE__ */ jsx(Icon, {
1681
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
1681
1682
  icon: "mdi:upload",
1682
1683
  width: 14,
1683
1684
  className: "mr-1.5"
@@ -1688,11 +1689,11 @@ function MySubmissionsPanel({ onResubmit }) {
1688
1689
  onClick: () => void handleWithdraw(submission),
1689
1690
  disabled: busy,
1690
1691
  "data-testid": "my-submission-withdraw",
1691
- children: [busy ? /* @__PURE__ */ jsx(Icon, {
1692
+ children: [busy ? /* @__PURE__ */ jsx(OfflineIcon, {
1692
1693
  icon: "mdi:loading",
1693
1694
  width: 14,
1694
1695
  className: "mr-1.5 animate-spin"
1695
- }) : /* @__PURE__ */ jsx(Icon, {
1696
+ }) : /* @__PURE__ */ jsx(OfflineIcon, {
1696
1697
  icon: "mdi:close-circle-outline",
1697
1698
  width: 14,
1698
1699
  className: "mr-1.5"
@@ -1830,7 +1831,7 @@ function TabButton({ tab, selected, onSelect }) {
1830
1831
  "data-testid": `templates-tab-${tab.id}`,
1831
1832
  className: `px-4 py-2 rounded-md text-sm font-medium transition-colors ${selected ? "bg-surface-canvas text-text-primary shadow-sm" : "text-text-secondary hover:text-text-primary"}`,
1832
1833
  children: [
1833
- tab.icon && /* @__PURE__ */ jsx(Icon, {
1834
+ tab.icon && /* @__PURE__ */ jsx(OfflineIcon, {
1834
1835
  icon: tab.icon,
1835
1836
  className: "inline mr-1.5",
1836
1837
  width: 16
@@ -1865,7 +1866,7 @@ function PageTabsWithMore({ tabs, moreTabs, value, onChange, label, "data-tour":
1865
1866
  size: "sm",
1866
1867
  "data-testid": "templates-tabs-more",
1867
1868
  className: "text-text-secondary",
1868
- children: [tr("fluidgrids.templates.templatesPage.moreTabs", "More"), /* @__PURE__ */ jsx(Icon, {
1869
+ children: [tr("fluidgrids.templates.templatesPage.moreTabs", "More"), /* @__PURE__ */ jsx(OfflineIcon, {
1869
1870
  icon: "mdi:chevron-down",
1870
1871
  className: "ml-1",
1871
1872
  width: 16
@@ -1876,7 +1877,7 @@ function PageTabsWithMore({ tabs, moreTabs, value, onChange, label, "data-tour":
1876
1877
  children: moreTabs.map((tab) => /* @__PURE__ */ jsxs(DropdownMenuItem, {
1877
1878
  onSelect: () => onChange(tab.id),
1878
1879
  "data-testid": `templates-tabs-more-${tab.id}`,
1879
- children: [tab.icon && /* @__PURE__ */ jsx(Icon, {
1880
+ children: [tab.icon && /* @__PURE__ */ jsx(OfflineIcon, {
1880
1881
  icon: tab.icon,
1881
1882
  className: "mr-2",
1882
1883
  width: 16
@@ -1956,6 +1957,7 @@ function useWorkflowTemplateCategories(searchTerm, enabled) {
1956
1957
 
1957
1958
  // src/modules/templates/pages/TemplatesPage.tsx
1958
1959
  var TemplatesPage_exports = /* @__PURE__ */ __exportAll({ TemplatesPage: () => TemplatesPage });
1960
+ registerOfflineIcons();
1959
1961
  /**
1960
1962
  * Category chips, shared by My Templates and From Store. My Templates groups
1961
1963
  * by the same store categories, read from each workflow's stored category
@@ -2022,7 +2024,7 @@ function CategoryChip({ label, icon, active, onSelect, count }) {
2022
2024
  "aria-pressed": active,
2023
2025
  className: `inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-colors ${active ? "bg-surface-sunken text-text-primary border border-border-strong" : "bg-surface text-text-secondary border border-border-default hover:text-text-primary hover:border-border-strong"}`,
2024
2026
  children: [
2025
- /* @__PURE__ */ jsx(Icon, {
2027
+ /* @__PURE__ */ jsx(OfflineIcon, {
2026
2028
  icon,
2027
2029
  width: 16
2028
2030
  }),
@@ -2051,7 +2053,7 @@ function EmptyState$1({ hasSearch, hint }) {
2051
2053
  children: [
2052
2054
  /* @__PURE__ */ jsx("div", {
2053
2055
  className: "rounded-full bg-surface p-4 mb-4",
2054
- children: /* @__PURE__ */ jsx(Icon, {
2056
+ children: /* @__PURE__ */ jsx(OfflineIcon, {
2055
2057
  icon: "mdi:file-document-multiple-outline",
2056
2058
  width: 40,
2057
2059
  className: "text-text-secondary"
@@ -2076,7 +2078,7 @@ function ErrorState({ message, onRetry }) {
2076
2078
  children: [
2077
2079
  /* @__PURE__ */ jsxs("div", {
2078
2080
  className: "flex items-center gap-2 text-[var(--color-status-error-text)]",
2079
- children: [/* @__PURE__ */ jsx(Icon, {
2081
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
2080
2082
  icon: "mdi:alert-circle",
2081
2083
  width: 20
2082
2084
  }), /* @__PURE__ */ jsx("span", {
@@ -2116,10 +2118,15 @@ function WorkspaceTemplateCard({ workflow, category, onUseTemplate, onPublish, i
2116
2118
  className: "flex items-start justify-between gap-2 mb-3",
2117
2119
  children: [/* @__PURE__ */ jsx("div", {
2118
2120
  className: "rounded-lg bg-surface-sunken p-2.5",
2119
- children: /* @__PURE__ */ jsx(Icon, {
2121
+ children: /* @__PURE__ */ jsx(OfflineIcon, {
2120
2122
  icon: workflow.icon ?? "mdi:workflow",
2121
2123
  width: 24,
2122
- className: "text-text-primary"
2124
+ className: "text-text-primary",
2125
+ fallback: /* @__PURE__ */ jsx(OfflineIcon, {
2126
+ icon: "mdi:workflow",
2127
+ width: 24,
2128
+ className: "text-text-primary"
2129
+ })
2123
2130
  })
2124
2131
  }), /* @__PURE__ */ jsx(Badge, {
2125
2132
  variant: "outline",
@@ -2152,7 +2159,7 @@ function WorkspaceTemplateCard({ workflow, category, onUseTemplate, onPublish, i
2152
2159
  disabled: isLoading,
2153
2160
  title: tr("fluidgrids.templates.templatesPage.cardPublishHint", "Publish this workflow to the FluidGrids Store"),
2154
2161
  "data-testid": "workspace-template-publish",
2155
- children: [/* @__PURE__ */ jsx(Icon, {
2162
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
2156
2163
  icon: "mdi:store-plus",
2157
2164
  width: 14,
2158
2165
  className: "mr-1.5"
@@ -2166,11 +2173,11 @@ function WorkspaceTemplateCard({ workflow, category, onUseTemplate, onPublish, i
2166
2173
  onClick: () => onUseTemplate(workflow),
2167
2174
  disabled: isLoading,
2168
2175
  className: "text-primary-foreground",
2169
- children: isLoading ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Icon, {
2176
+ children: isLoading ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(OfflineIcon, {
2170
2177
  icon: "mdi:loading",
2171
2178
  width: 14,
2172
2179
  className: "mr-1.5 animate-spin"
2173
- }), tr("fluidgrids.templates.templatesPage.cardCreating", "Creating...")] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Icon, {
2180
+ }), tr("fluidgrids.templates.templatesPage.cardCreating", "Creating...")] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(OfflineIcon, {
2174
2181
  icon: "mdi:plus",
2175
2182
  width: 14,
2176
2183
  className: "mr-1.5"
@@ -2204,7 +2211,7 @@ function LoadMoreButton({ loading, onClick }) {
2204
2211
  onClick,
2205
2212
  disabled: loading,
2206
2213
  className: "min-w-[200px]",
2207
- children: loading ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Icon, {
2214
+ children: loading ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(OfflineIcon, {
2208
2215
  icon: "mdi:loading",
2209
2216
  width: 16,
2210
2217
  className: "mr-2 animate-spin"
@@ -2419,7 +2426,7 @@ function TemplatesPage() {
2419
2426
  ] }), /* @__PURE__ */ jsxs(Button$1, {
2420
2427
  variant: "outline",
2421
2428
  onClick: () => navigate("../list"),
2422
- children: [/* @__PURE__ */ jsx(Icon, {
2429
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
2423
2430
  icon: "mdi:arrow-left",
2424
2431
  className: "mr-2",
2425
2432
  width: 16
@@ -2446,7 +2453,7 @@ function TemplatesPage() {
2446
2453
  activeSource !== "submissions" && /* @__PURE__ */ jsxs("div", {
2447
2454
  className: "relative max-w-md mb-6",
2448
2455
  "data-tour": "fluidgrids-templates-search",
2449
- children: [/* @__PURE__ */ jsx(Icon, {
2456
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
2450
2457
  icon: "mdi:magnify",
2451
2458
  width: 18,
2452
2459
  className: "absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary"
@@ -4,7 +4,7 @@ import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
5
  import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
6
6
  import { t as ConfirmActionDialog } from "./ConfirmActionDialog-D9Pir3bc.js";
7
- import { t as Disclosure } from "./Disclosure-CsxDspR7.js";
7
+ import { t as Disclosure } from "./Disclosure-PfrdUKIg.js";
8
8
  import { a as useWorkflowProjects } from "./useWorkflowOrganization-r5FWNBs6.js";
9
9
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
10
10
  import { a as useSecretsProviderConfigs, c as useVariables, i as useSaveSecretsProviderConfig, n as useDeleteVariable, o as useTestSecretsProviderConnection, r as useRevealVariableValue, s as useUpdateVariable, t as useCreateVariable } from "./useVariables-DFdZofLQ.js";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { mn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-64qAUX4Y.js";
3
- import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
2
+ import { mn as useCanvasEdges, n as FluidGridsProvider } from "./FluidGridsProvider-CaOI_H63.js";
3
+ import { A as useFlowStore } from "./node-operation-selection-DCJ_DDHr.js";
4
4
  import { t as Button } from "./button-DG7y_FVJ.js";
5
5
  import { t as Input } from "./input-ChT6Q-Pr.js";
6
- import { y as Card } from "./TemplateCard-CA4tMUzN.js";
6
+ import { y as Card } from "./TemplateCard-DlXp6fsq.js";
7
7
  import { t as cn } from "./cn-QqidFIgr.js";
8
8
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
9
- import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-D6iWW6tJ.js";
9
+ import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-BYQbt7mf.js";
10
10
  import { useCallback, useEffect, useRef, useState } from "react";
11
11
  import { Background, Controls, Handle, MarkerType, MiniMap, Position, ReactFlow, ReactFlowProvider, useReactFlow } from "@xyflow/react";
12
12
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,21 +1,21 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-D6iWW6tJ.js";
3
+ import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-BYQbt7mf.js";
4
4
  import { n as registerLiveCanvasHandler } from "./liveCanvas-D5ytXDp8.js";
5
5
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
6
6
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
7
7
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
8
8
  import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
9
9
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
10
- import { Ct as classifyCreateRefusal, Dt as useSaveStatusStore, G as paramsFromOperation, Gt as rememberRevision, P as createConfiguredNode, Xt as codeBuildIdOf, _ as registerNodeManifests, d as ensureNodeTypesLoaded, g as refetchStoreNodes, o as NODE_CONFIGS, tn as workflowFingerprint, un as resolveNodeOperation, v as registerWorkflowNodeTypes, xt as blankWorkflowCreateInput } from "./FluidGridsProvider-64qAUX4Y.js";
11
- import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
10
+ import { Ct as classifyCreateRefusal, Dt as useSaveStatusStore, G as paramsFromOperation, Gt as rememberRevision, P as createConfiguredNode, Xt as codeBuildIdOf, _ as registerNodeManifests, d as ensureNodeTypesLoaded, g as refetchStoreNodes, o as NODE_CONFIGS, tn as workflowFingerprint, un as resolveNodeOperation, v as registerWorkflowNodeTypes, xt as blankWorkflowCreateInput } from "./FluidGridsProvider-CaOI_H63.js";
11
+ import { A as useFlowStore } from "./node-operation-selection-DCJ_DDHr.js";
12
12
  import { t as canvasFromDefinition } from "./definition-canvas-DL25_6NH.js";
13
- import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-CEOWXYpV.js";
14
- import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-CA4tMUzN.js";
13
+ import { l as useLazyWorkflowDefinition, n as useCreateWorkflow } from "./useWorkflows-DKBtpjFx.js";
14
+ import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-DlXp6fsq.js";
15
15
  import { r as mergeStickyNotes } from "./sticky-notes-23j-wL6Q.js";
16
16
  import { c as withoutGuidedTourIntent, l as decideMissingWorkflow, o as isGuidedTourIntent, s as pickGuidedTour, u as isCreateIntent } from "./firstWorkflow-C_h0KMB2.js";
17
17
  import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
18
- import { o as CreateWorkflowRefusalDialog } from "./workflow-description-QYwLwwFT.js";
18
+ import { o as CreateWorkflowRefusalDialog } from "./workflow-description-CllsqYja.js";
19
19
  import { Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState } from "react";
20
20
  import { useLocation, useNavigate, useParams } from "react-router";
21
21
  import { Icon } from "@iconify/react";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { m as useWorkflowDefinition } from "./useWorkflows-CEOWXYpV.js";
3
+ import { m as useWorkflowDefinition } from "./useWorkflows-DKBtpjFx.js";
4
4
  import { Navigate, useParams } from "react-router";
5
5
  import { Icon } from "@iconify/react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-CEOWXYpV.js";
4
- import { t as FluidGridsContext, wt as createThenOpen } from "./FluidGridsProvider-64qAUX4Y.js";
5
- import { a as workflowDescriptionCharactersLeft, i as visibleWorkflowDescription, o as CreateWorkflowRefusalDialog, r as saveWorkflowDescription, t as commitWorkflowDescription } from "./workflow-description-QYwLwwFT.js";
3
+ import { c as useImportWorkflow, h as useWorkflowDefinitions, l as useLazyWorkflowDefinition, n as useCreateWorkflow, o as useDeleteWorkflow, s as useDuplicateWorkflow, u as usePreviewN8nImport } from "./useWorkflows-DKBtpjFx.js";
4
+ import { t as FluidGridsContext, wt as createThenOpen } from "./FluidGridsProvider-CaOI_H63.js";
5
+ import { a as workflowDescriptionCharactersLeft, i as visibleWorkflowDescription, o as CreateWorkflowRefusalDialog, r as saveWorkflowDescription, t as commitWorkflowDescription } from "./workflow-description-CllsqYja.js";
6
6
  import { c as isQuotaExhaustedFailure, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
7
- import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
7
+ import { A as useFlowStore } from "./node-operation-selection-DCJ_DDHr.js";
8
8
  import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
9
- import { i as QuotaExhaustedDialog, n as useExportWorkflowAs } from "./useWorkflowCodeExport-C1UH65gc.js";
9
+ import { i as QuotaExhaustedDialog, n as useExportWorkflowAs } from "./useWorkflowCodeExport-CuJCY0lh.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
11
  import { a as isExecutionMode, i as isAutonomyLevel, n as EXECUTION_MODES, o as useAutonomyLevelCopy, r as EXECUTION_MODE_ICONS, s as useExecutionModeCopy } from "./run-mode-DMlMGEdu.js";
12
12
  import { PI as WorkflowExportFormat, wI as WorkflowAccessFilter } from "./graphql-types-BjCOnRUQ.js";
@@ -16,7 +16,7 @@ import { i as useOpenRequest, n as ACTION_PARAM_VALUES, r as useActionParam } fr
16
16
  import { d as useFluidGridsFlag, t as FLUIDGRIDS_FLAGS } from "./feature-flags-B_b8PJ6Z.js";
17
17
  import { a as useWorkflowProjects, i as useWorkflowProjectActions, n as useWorkflowFolderActions, r as useWorkflowFolders, t as useBulkWorkflowActions } from "./useWorkflowOrganization-r5FWNBs6.js";
18
18
  import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
19
- import { a as useExecutions } from "./useExecutions-D9Sc9QbB.js";
19
+ import { a as useExecutions } from "./useExecutions-BzvKMRA1.js";
20
20
  import { a as firstWorkflowProgress, i as builderPathFor, r as GUIDED_TOUR_STATE } from "./firstWorkflow-C_h0KMB2.js";
21
21
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
22
22
  import { i as workflowsListControls } from "./pageControlSpecs-DZJ9K37m.js";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { Dt as useSaveStatusStore, G as paramsFromOperation, K as selectedOperationOf, M as SENSITIVE_PARAM, P as createConfiguredNode, U as nodeTitle, V as fixedParameterState, o as NODE_CONFIGS, p as isNodeConfigsInitialized, u as ensureNodeTypeReady, ut as autosaveAllowedFor, vt as isFlowComplete, y as registryNodeData } from "./FluidGridsProvider-64qAUX4Y.js";
3
- import { A as useFlowStore, T as resolveOutputHandles, w as resolveInputHandles } from "./node-operation-selection-DHbtGNrG.js";
2
+ import { Dt as useSaveStatusStore, G as paramsFromOperation, K as selectedOperationOf, M as SENSITIVE_PARAM, P as createConfiguredNode, U as nodeTitle, V as fixedParameterState, o as NODE_CONFIGS, p as isNodeConfigsInitialized, u as ensureNodeTypeReady, ut as autosaveAllowedFor, vt as isFlowComplete, y as registryNodeData } from "./FluidGridsProvider-CaOI_H63.js";
3
+ import { A as useFlowStore, T as resolveOutputHandles, w as resolveInputHandles } from "./node-operation-selection-DCJ_DDHr.js";
4
4
  import { o as isNodeTypeHiddenFromPalette } from "./durable-nodes-DXCCQYWD.js";
5
- import { t as computeAttachPosition } from "./attach-node-helpers-4d-YMaBH.js";
5
+ import { t as computeAttachPosition } from "./attach-node-helpers-CdJnfSMp.js";
6
6
  import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
7
7
  import { z } from "zod";
8
8
 
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { w as resolveInputHandles } from "./node-operation-selection-DHbtGNrG.js";
2
+ import { w as resolveInputHandles } from "./node-operation-selection-DCJ_DDHr.js";
3
3
 
4
4
  // src/builder/hooks/attach-node-helpers.ts
5
5
  /** Horizontal gap between a source node and a node attached via the "+" flow. */
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { n as useAgentMarksStore, r as toPlainText } from "./marksStore-a9oIMMot.js";
3
- import { G as paramsFromOperation, K as selectedOperationOf, U as nodeTitle } from "./FluidGridsProvider-64qAUX4Y.js";
4
- import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
3
+ import { G as paramsFromOperation, K as selectedOperationOf, U as nodeTitle } from "./FluidGridsProvider-CaOI_H63.js";
4
+ import { A as useFlowStore } from "./node-operation-selection-DCJ_DDHr.js";
5
5
  import { t as notesKeyOf } from "./notesKey-5EaREBGA.js";
6
6
  import { AgentToolError, defineAgentTool } from "@burdenoff/fe-libs/shared/agent-tools";
7
7
  import { z } from "zod";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as ExecutionsListPage } from "./ExecutionsListPage-sdpULJ-y.js";
3
- import { t as ExecutionDetailPage } from "./ExecutionDetailPage-72GPEmJf.js";
2
+ import { t as ExecutionsListPage } from "./ExecutionsListPage-D-UUcOqS.js";
3
+ import { t as ExecutionDetailPage } from "./ExecutionDetailPage-DY_PEQOX.js";
4
4
 
5
5
  export { ExecutionDetailPage, ExecutionsListPage };