@burdenoff/fluidgrids-fe-sdk 2026.1115.2 → 2026.1115.4

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 (80) hide show
  1. package/dist/{AiStudioPage-CtHmZ3Lw.js → AiStudioPage-CsS637Bn.js} +4 -4
  2. package/dist/{ApprovalInboxPage-CM2nA4eE.js → ApprovalInboxPage-5RsXtGOd.js} +1 -1
  3. package/dist/{DataSinkDashboardPage-DFtWv2nD.js → DataSinkDashboardPage-ClMEuGKj.js} +2 -2
  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-C-aY7qWI.js → ExecutionDetailPage-DY_PEQOX.js} +10 -10
  7. package/dist/{ExecutionsListPage-BYW5WiX7.js → ExecutionsListPage-D-UUcOqS.js} +8 -8
  8. package/dist/{FailureTriagePanel-Ddua9uxn.js → FailureTriagePanel-Chvh8S_q.js} +1 -1
  9. package/dist/{FluidGridsProvider-CDjkq3Zj.js → FluidGridsProvider-CaOI_H63.js} +3 -3
  10. package/dist/{HistoryPage-fMZlXsIY.js → HistoryPage-D4EB1U7t.js} +1 -1
  11. package/dist/{InsightsPage-DozSYGVD.js → InsightsPage-CoP1UTX6.js} +1006 -15
  12. package/dist/{NodesPage-C3sh0aL9.js → NodesPage-D8xEY3Wd.js} +14 -13
  13. package/dist/OfflineIcon-Ckynq7Vp.js +124 -0
  14. package/dist/{OpenTemplateAsCodeButton-Cjnagq9H.js → OpenTemplateAsCodeButton-DpOFXUOn.js} +6 -6
  15. package/dist/{PaidTemplateConfirm-Crs0CXXl.js → PaidTemplateConfirm-DuT2iqJ8.js} +1 -1
  16. package/dist/{RunnersPage-D2teM_sE.js → RunnersPage-DPPthewP.js} +1 -1
  17. package/dist/{SettingsPage-qSvV7r0y.js → SettingsPage-CCddB2gg.js} +6 -6
  18. package/dist/{TaskQueuesPage-BuWQwT5I.js → TaskQueuesPage-9MpmiHvJ.js} +1 -1
  19. package/dist/{TechnicalDetails-r5JXr1jZ.js → TechnicalDetails-CMZwijEM.js} +1 -1
  20. package/dist/{TemplateCard-BsrXJ1Su.js → TemplateCard-DlXp6fsq.js} +8 -7
  21. package/dist/{TemplateConfigurationModal-B_ME8M-1.js → TemplateConfigurationModal-kuykSUNk.js} +1 -1
  22. package/dist/{TemplateDetailPanel-DXJ9VYsh.js → TemplateDetailPanel-D81Wl3rx.js} +4 -3
  23. package/dist/{TemplatePreview-BOIhJSBD.js → TemplatePreview-VNS0Y4Bb.js} +54 -26
  24. package/dist/{TemplatesPage-dj7NseMt.js → TemplatesPage-B9tGKcZB.js} +41 -34
  25. package/dist/{VariablesPage-Bx3LNar7.js → VariablesPage-D_8oB3WB.js} +1 -1
  26. package/dist/{WorkflowBuilder-DjpAoBVO.js → WorkflowBuilder-CISnd6ug.js} +4 -4
  27. package/dist/{WorkflowBuilder-ByG9twmu.js → WorkflowBuilder-aBnrbP9M.js} +6 -6
  28. package/dist/{WorkflowSearchRedirect-DRidTx1L.js → WorkflowSearchRedirect-EDekweeR.js} +1 -1
  29. package/dist/{WorkflowShareDialog-B9yZMhEi.js → WorkflowShareDialog-DherIHZo.js} +1 -1
  30. package/dist/{WorkflowsList-BQ_5hkWi.js → WorkflowsList-BbZDL1XB.js} +10 -10
  31. package/dist/{agentTools-Cx5yPBe7.js → agentTools-BHNiWrQw.js} +3 -3
  32. package/dist/{ai-usage-Dit3U_aG.js → ai-usage-BovljL6l.js} +1 -1
  33. package/dist/{assert-rules-DtQmtG1p.js → assert-rules-BA2caUAZ.js} +1 -1
  34. package/dist/{attach-node-helpers-4d-YMaBH.js → attach-node-helpers-CdJnfSMp.js} +1 -1
  35. package/dist/{canvasNoteTools-BxknF5rX.js → canvasNoteTools-w5Xg-5pX.js} +2 -2
  36. package/dist/executions.js +2 -2
  37. package/dist/{flow-builder-D8f31DFR.js → flow-builder-B2vxHaAG.js} +22 -22
  38. package/dist/{graphql-types-dS3Fk9Z5.js → graphql-types-BjCOnRUQ.js} +58 -1
  39. package/dist/history.js +1 -1
  40. package/dist/{index-BprVea6e.d.ts → index-D_U-nNAe.d.ts} +291 -1
  41. package/dist/index.d.ts +2 -2
  42. package/dist/index.js +41 -41
  43. package/dist/{logs-panel-BgGt_dFm.js → logs-panel-PCjDyny7.js} +1 -1
  44. package/dist/{node-detail-view-C__INEVF.js → node-detail-view-C0cuqQfd.js} +8 -8
  45. package/dist/{node-editor-tab-body-BintGoSp.js → node-editor-tab-body-CsMOa4-Z.js} +3 -3
  46. package/dist/{node-operation-selection-DHbtGNrG.js → node-operation-selection-DCJ_DDHr.js} +1 -1
  47. package/dist/{node-type-icon-DEAztACh.js → node-type-icon-nGIb5TyU.js} +8 -3
  48. package/dist/nodes.js +1 -1
  49. package/dist/observability.d.ts +1 -1
  50. package/dist/observability.js +2 -2
  51. package/dist/{popover-2-6xmS1q.js → popover-BtbVqTzP.js} +2 -2
  52. package/dist/{quick-config-panel-Bxi9TwCG.js → quick-config-panel-CIVUr12G.js} +5 -5
  53. package/dist/{run-list-links-CH-V4Li5.js → run-list-links-DPWTtVr5.js} +1 -1
  54. package/dist/{run-mode-Bu_pgjeM.js → run-mode-DMlMGEdu.js} +1 -1
  55. package/dist/{schedule-panel-BbRtGDEt.js → schedule-panel-CdptgUXs.js} +7 -7
  56. package/dist/settings.js +1 -1
  57. package/dist/{sidebar-node-editor-DG-34YEW.js → sidebar-node-editor-BfY2Pjdt.js} +5 -5
  58. package/dist/{store-icon-BOiBSHY6.js → store-icon-CVt10XSp.js} +20 -9
  59. package/dist/{template-code-B7x-XMAm.js → template-code-xlEMDtL8.js} +1 -1
  60. package/dist/{template-preview-BpP8QMAe.js → template-preview-ByYgTYSz.js} +1 -1
  61. package/dist/templates.js +2 -2
  62. package/dist/{use-workflow-code-editor-CBOkjntt.js → use-workflow-code-editor-Bx2D6sH5.js} +1 -1
  63. package/dist/{use-workflow-tests-Dkij09vJ.js → use-workflow-tests-C0KaRy7p.js} +2 -2
  64. package/dist/{useAgentDefinitions-YUDx_OW2.js → useAgentDefinitions-tsGlUO4v.js} +1 -1
  65. package/dist/{useDurableParity-X_zfFzQv.js → useDurableParity-X6Zze6Sb.js} +1 -1
  66. package/dist/{useExecutions-BWbMt16D.js → useExecutions-BzvKMRA1.js} +2 -2
  67. package/dist/{useGlobalStoreClient-CwBAeiXV.js → useGlobalStoreClient-ZLYG_Xls.js} +1 -1
  68. package/dist/{useObservability-mXM7lCop.js → useObservability-DadWpUTF.js} +1 -1
  69. package/dist/{useRunHistory-DYDriBz1.js → useRunHistory-DA8-msTi.js} +2 -2
  70. package/dist/{useWorkflowCodeExport-uKBDVvnA.js → useWorkflowCodeExport-CuJCY0lh.js} +2 -2
  71. package/dist/{useWorkflows-Dg7q_Tzf.js → useWorkflows-DKBtpjFx.js} +1 -1
  72. package/dist/{utils-C0dtnN4R.js → utils-CXEodE1a.js} +6 -1
  73. package/dist/workflow-builder.js +5 -5
  74. package/dist/{workflow-description-CeXdyWX8.js → workflow-description-CllsqYja.js} +1 -1
  75. package/dist/workflow-pages.d.ts +1 -1
  76. package/dist/workflow-pages.js +19 -19
  77. package/dist/workflow-preview.js +1 -1
  78. package/dist/{workflow-transfer-CktP7o1c.js → workflow-transfer-390a-CK8.js} +1 -1
  79. package/dist/workflows-list.js +1 -1
  80. package/package.json +2 -1
@@ -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-Dg7q_Tzf.js";
4
- import { i as useTemplateImportFlow, l as useWorkflowTemplates, r as isPaidTemplate, t as TemplateCard, v as storeContextHeaders } from "./TemplateCard-BsrXJ1Su.js";
5
- import { OI as WorkflowExportFormat, nL as WorkflowStatus } from "./graphql-types-dS3Fk9Z5.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";
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-uKBDVvnA.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-CDjkq3Zj.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
- import { m as isLosslessReport } from "./workflow-transfer-CktP7o1c.js";
19
- import { a as contentTypeOf, n as TemplateCodeError, o as isTier2Definition, r as assertTemplateSources, t as TEMPLATE_SOURCES_MAX_BYTES } from "./template-code-B7x-XMAm.js";
20
- import { t as useGlobalStoreClient } from "./useGlobalStoreClient-CwBAeiXV.js";
19
+ import { m as isLosslessReport } from "./workflow-transfer-390a-CK8.js";
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";
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-Crs0CXXl.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-CDjkq3Zj.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-BsrXJ1Su.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-D8f31DFR.js";
9
+ import { m as FluidGridsMark, p as useNodeSelectedEvent } from "./flow-builder-B2vxHaAG.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-D8f31DFR.js";
3
+ import { d as releaseLeaseKeptForReload, f as useWorkflowReloadStore, t as FlowBuilderPage } from "./flow-builder-B2vxHaAG.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-CDjkq3Zj.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-Dg7q_Tzf.js";
14
- import { _ as useInstalledNodes, a as buildNodeCheck, o as buildRequiredNodeTypes, s as getWorkflowNodeTypes } from "./TemplateCard-BsrXJ1Su.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-CeXdyWX8.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-Dg7q_Tzf.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";
@@ -2,7 +2,7 @@
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
- import { _I as WorkflowAccess, eL as WorkflowSharePrincipalType, lL as WorkflowVisibility, tL as WorkflowShareRole } from "./graphql-types-dS3Fk9Z5.js";
5
+ import { CI as WorkflowAccess, hL as WorkflowVisibility, oL as WorkflowSharePrincipalType, sL as WorkflowShareRole } from "./graphql-types-BjCOnRUQ.js";
6
6
  import { useMemo } from "react";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  import { ResourceShareDialog, createSharePrincipalLister } from "@burdenoff/fe-libs/connections";
@@ -1,22 +1,22 @@
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-Dg7q_Tzf.js";
4
- import { t as FluidGridsContext, wt as createThenOpen } from "./FluidGridsProvider-CDjkq3Zj.js";
5
- import { a as workflowDescriptionCharactersLeft, i as visibleWorkflowDescription, o as CreateWorkflowRefusalDialog, r as saveWorkflowDescription, t as commitWorkflowDescription } from "./workflow-description-CeXdyWX8.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-uKBDVvnA.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
- 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-Bu_pgjeM.js";
12
- import { OI as WorkflowExportFormat, vI as WorkflowAccessFilter } from "./graphql-types-dS3Fk9Z5.js";
13
- import { S as typeScriptModuleFile, a as ImportSourceError, c as assertImportByteSize, f as importAcceptAttribute, i as CODE_EXPORT_FORMATS, n as downloadWorkflowExport, o as MAX_IMPORT_ARCHIVE_BYTES, p as importFileKind, r as parseWorkflowImport, s as MAX_IMPORT_SOURCE_BYTES, u as checkTypeScriptImport, v as primaryImportModule, w as workflowNameFromFile, x as typeScriptImportSource, y as readProjectArchive } from "./workflow-transfer-CktP7o1c.js";
14
- import { i as canShareWorkflow, r as canEditWorkflow, t as WorkflowShareDialog } from "./WorkflowShareDialog-B9yZMhEi.js";
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
+ import { PI as WorkflowExportFormat, wI as WorkflowAccessFilter } from "./graphql-types-BjCOnRUQ.js";
13
+ import { S as typeScriptModuleFile, a as ImportSourceError, c as assertImportByteSize, f as importAcceptAttribute, i as CODE_EXPORT_FORMATS, n as downloadWorkflowExport, o as MAX_IMPORT_ARCHIVE_BYTES, p as importFileKind, r as parseWorkflowImport, s as MAX_IMPORT_SOURCE_BYTES, u as checkTypeScriptImport, v as primaryImportModule, w as workflowNameFromFile, x as typeScriptImportSource, y as readProjectArchive } from "./workflow-transfer-390a-CK8.js";
14
+ import { i as canShareWorkflow, r as canEditWorkflow, t as WorkflowShareDialog } from "./WorkflowShareDialog-DherIHZo.js";
15
15
  import { i as useOpenRequest, n as ACTION_PARAM_VALUES, r as useActionParam } from "./useActionParam-B0ebTZmg.js";
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-BWbMt16D.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-CDjkq3Zj.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 { Hw as OptimisationKind, Vw as OptimisationDismissReason } from "./graphql-types-dS3Fk9Z5.js";
2
+ import { Hw as OptimisationDismissReason, Uw as OptimisationKind } from "./graphql-types-BjCOnRUQ.js";
3
3
 
4
4
  // src/modules/observability/optimisation.ts
5
5
  /** The look-back window the detectors use when the evidence does not say. */
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { iL as WorkflowTestAssertionOperator } from "./graphql-types-dS3Fk9Z5.js";
2
+ import { uL as WorkflowTestAssertionOperator } from "./graphql-types-BjCOnRUQ.js";
3
3
 
4
4
  // src/builder/lib/assert-rules.ts
5
5
  /** Every operator, in the order the editors offer them. */
@@ -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-CDjkq3Zj.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-BYW5WiX7.js";
3
- import { t as ExecutionDetailPage } from "./ExecutionDetailPage-C-aY7qWI.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 };
@@ -1,14 +1,14 @@
1
1
  "use client";
2
- import { A as useFlowStore, N as isTriggerOperation, j as useIsValidConnection, r as CODE_WORKFLOW_NODE_TYPE } from "./node-operation-selection-DHbtGNrG.js";
3
- import { $t as resettledBaseline, At as useEditLeaseStore, Bt as EDIT_SESSION_ID, C as getNodeMetadata, Dt as useSaveStatusStore, Et as saveIndicatorOf, F as useInsertNode, Ft as phaseAfterAcquire, Gn as getNodeDetail, Gt as rememberRevision, Ht as rememberSessionForReload, I as MissingParametersDialog, It as phaseAfterTakeOver, Jn as useMarkdownRenderer, Jt as AUTOSAVE_RETRY_DELAYS_MS, Kn as buildStickyNode, Kt as revisionOf, L as useRunGuard, Lt as releasesOnClose, Mt as isLocked, N as buildOperationSeed, Nt as leaseCallQueue, Ot as workflowSaveQueue, Pt as leaseCallSequence, Qt as inAppLeaveTarget, R as workflowParameterIssues, Rt as shouldReleaseForIdle, Tt as refusalOfQuota, Ut as sessionBeforeReload, Vt as forgetSessionForReload, Wt as rememberOwnStatusChange, Yt as canAutosave, _n as loadDefinitionJson, _t as watchLeavingLosesChanges, a as NODES_METADATA, b as scheduleNodePaletteLoad, bt as useSaveWorkflow, ct as useGuardedNavigate, dt as departingSave, en as saveFailureActionOf, ft as editStateFor, g as refetchStoreNodes, gt as touchesSavedFields, h as prefetchNodeType, hn as useNodeRegistryRevision, ht as savedEverythingBeforeLeaving, i as AVAILABLE_NODES, jt as bannerOf, kt as useEditLeaseLocked, l as ensureNodeConfigsLoaded, lt as useManualSave, m as onNodeTypesUpdate, mn as useCanvasEdges, mt as leavingLosesChanges, nn as useNodeExecution, o as NODE_CONFIGS, p as isNodeConfigsInitialized, pt as editingLeaseLocked, qn as loadMarkdown, qt as AUTOSAVE_DEBOUNCE_MS, s as NODE_TYPES, t as FluidGridsContext, tn as workflowFingerprint, ut as autosaveAllowedFor, v as registerWorkflowNodeTypes, vt as isFlowComplete, w as useLatestFailedRun, yt as useFlowValidator, zt as tickAction } from "./FluidGridsProvider-CDjkq3Zj.js";
2
+ import { A as useFlowStore, N as isTriggerOperation, j as useIsValidConnection, r as CODE_WORKFLOW_NODE_TYPE } from "./node-operation-selection-DCJ_DDHr.js";
3
+ import { $t as resettledBaseline, At as useEditLeaseStore, Bt as EDIT_SESSION_ID, C as getNodeMetadata, Dt as useSaveStatusStore, Et as saveIndicatorOf, F as useInsertNode, Ft as phaseAfterAcquire, Gn as getNodeDetail, Gt as rememberRevision, Ht as rememberSessionForReload, I as MissingParametersDialog, It as phaseAfterTakeOver, Jn as useMarkdownRenderer, Jt as AUTOSAVE_RETRY_DELAYS_MS, Kn as buildStickyNode, Kt as revisionOf, L as useRunGuard, Lt as releasesOnClose, Mt as isLocked, N as buildOperationSeed, Nt as leaseCallQueue, Ot as workflowSaveQueue, Pt as leaseCallSequence, Qt as inAppLeaveTarget, R as workflowParameterIssues, Rt as shouldReleaseForIdle, Tt as refusalOfQuota, Ut as sessionBeforeReload, Vt as forgetSessionForReload, Wt as rememberOwnStatusChange, Yt as canAutosave, _n as loadDefinitionJson, _t as watchLeavingLosesChanges, a as NODES_METADATA, b as scheduleNodePaletteLoad, bt as useSaveWorkflow, ct as useGuardedNavigate, dt as departingSave, en as saveFailureActionOf, ft as editStateFor, g as refetchStoreNodes, gt as touchesSavedFields, h as prefetchNodeType, hn as useNodeRegistryRevision, ht as savedEverythingBeforeLeaving, i as AVAILABLE_NODES, jt as bannerOf, kt as useEditLeaseLocked, l as ensureNodeConfigsLoaded, lt as useManualSave, m as onNodeTypesUpdate, mn as useCanvasEdges, mt as leavingLosesChanges, nn as useNodeExecution, o as NODE_CONFIGS, p as isNodeConfigsInitialized, pt as editingLeaseLocked, qn as loadMarkdown, qt as AUTOSAVE_DEBOUNCE_MS, s as NODE_TYPES, t as FluidGridsContext, tn as workflowFingerprint, ut as autosaveAllowedFor, v as registerWorkflowNodeTypes, vt as isFlowComplete, w as useLatestFailedRun, yt as useFlowValidator, zt as tickAction } from "./FluidGridsProvider-CaOI_H63.js";
4
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
5
5
  import { n as preloadableLazy } from "./preloadable-lazy-Pp47mqQ9.js";
6
6
  import { t as Input$1 } from "./input-ChT6Q-Pr.js";
7
- import { _ as useInstalledNodes, d as getStoreNodeAvailability, f as getStoreNodeType, g as storeNodeInstallVersion, h as storeNodeIconCandidates, i as useTemplateImportFlow, l as useWorkflowTemplates, m as storeNodeDisplayVersion, p as isStoreNodeUpdateAvailable, t as TemplateCard, u as filterStoreNodesForPalette, v as storeContextHeaders } from "./TemplateCard-BsrXJ1Su.js";
8
- import { t as useGlobalStoreClient } from "./useGlobalStoreClient-CwBAeiXV.js";
7
+ import { _ as useInstalledNodes, d as getStoreNodeAvailability, f as getStoreNodeType, g as storeNodeInstallVersion, h as storeNodeIconCandidates, i as useTemplateImportFlow, l as useWorkflowTemplates, m as storeNodeDisplayVersion, p as isStoreNodeUpdateAvailable, t as TemplateCard, u as filterStoreNodesForPalette, v as storeContextHeaders } from "./TemplateCard-DlXp6fsq.js";
8
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-ZLYG_Xls.js";
9
9
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
10
10
  import { _ as useWorkflowTestsEnabled, d as useFluidGridsFlag, h as usePhaseDFlags, l as useDurableFunctionNodesEnabled, p as usePaletteGates, t as FLUIDGRIDS_FLAGS, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
11
- import { n as storeIconCandidates, t as StoreIcon } from "./store-icon-BOiBSHY6.js";
11
+ import { n as storeIconCandidates, t as StoreIcon } from "./store-icon-CVt10XSp.js";
12
12
  import { c as NODE_TYPE_DRAG_DATA_FORMAT, l as STICKY_NOTE_TYPE, s as NODE_OPERATION_DRAG_DATA_FORMAT } from "./sticky-notes-23j-wL6Q.js";
13
13
  import { i as filterPaletteNodes } from "./durable-nodes-DXCCQYWD.js";
14
14
  import { t as Button$2 } from "./button-DG7y_FVJ.js";
@@ -18,36 +18,36 @@ import { o as emitUpgradeClicked, t as emitNodeInstalled } from "./fluidgridsEve
18
18
  import { n as getFluidGridsClient, s as waitForFluidGridsClient } from "./client-Ctl4jmY3.js";
19
19
  import { n as NodeSchemaIntrospectionDocument, r as RemoveNodeFromWorkflowsDocument, t as NodeUsageStatusDocument } from "./NodeUsageStatusDocument-B-XguSjm.js";
20
20
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
21
- import { n as firstInputHandleId, t as computeAttachPosition } from "./attach-node-helpers-4d-YMaBH.js";
21
+ import { n as firstInputHandleId, t as computeAttachPosition } from "./attach-node-helpers-CdJnfSMp.js";
22
22
  import { a as DialogFooter$1, i as DialogDescription$1, l as DialogTitle$1, o as DialogHeader$1, r as DialogContent$1, t as Dialog$1 } from "./dialog-BVd152GS.js";
23
23
  import { t as NavigationV2Provider } from "./NavigationV2Provider-DCDt35eG.js";
24
24
  import { i as emitFluidGridsEvent } from "./token-refresh-link-BjN7H4qA.js";
25
25
  import { n as useBuilderReadOnly, t as BuilderReadOnlyProvider } from "./read-only-context-Dt9N9SIG.js";
26
26
  import { r as MAPPING_TYPE_COLORS, t as MAPPING_COMPATIBILITY_COLORS } from "./mapping-colors-BIX_YeCQ.js";
27
- import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
27
+ import { t as NodeTypeIcon } from "./node-type-icon-nGIb5TyU.js";
28
28
  import { n as useFgAskAboutAvailable } from "./askAboutBridge-ByYsQams.js";
29
- import { n as LogsPanel } from "./logs-panel-BgGt_dFm.js";
30
- import { a as draftFromTestCase, c as enabledCaseIds, d as pinnedOutputsFromCanvas, f as testRunSummaryText, h as useAgentTokenStream, l as isTestRunOpen, m as testStatusTone, n as useWorkflowTests, o as draftToInput, p as testStatusLabel, r as TEST_STATUS_TONE_CLASS, s as emptyTestCaseDraft, u as nextSortOrder, v as latestAgentTokenStream } from "./use-workflow-tests-Dkij09vJ.js";
31
- import { r as useExecutionActions } from "./useExecutions-BWbMt16D.js";
29
+ import { n as LogsPanel } from "./logs-panel-PCjDyny7.js";
30
+ import { a as draftFromTestCase, c as enabledCaseIds, d as pinnedOutputsFromCanvas, f as testRunSummaryText, h as useAgentTokenStream, l as isTestRunOpen, m as testStatusTone, n as useWorkflowTests, o as draftToInput, p as testStatusLabel, r as TEST_STATUS_TONE_CLASS, s as emptyTestCaseDraft, u as nextSortOrder, v as latestAgentTokenStream } from "./use-workflow-tests-C0KaRy7p.js";
31
+ import { r as useExecutionActions } from "./useExecutions-BzvKMRA1.js";
32
32
  import { n as useAgentMarksStore } from "./marksStore-a9oIMMot.js";
33
33
  import { t as notesKeyOf } from "./notesKey-5EaREBGA.js";
34
- import { a as workflowDescriptionCharactersLeft, i as visibleWorkflowDescription, n as normalizeWorkflowDescription, o as CreateWorkflowRefusalDialog, r as saveWorkflowDescription, t as commitWorkflowDescription } from "./workflow-description-CeXdyWX8.js";
34
+ import { a as workflowDescriptionCharactersLeft, i as visibleWorkflowDescription, n as normalizeWorkflowDescription, o as CreateWorkflowRefusalDialog, r as saveWorkflowDescription, t as commitWorkflowDescription } from "./workflow-description-CllsqYja.js";
35
35
  import { r as RUNS_QUOTA_NAME, t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
36
36
  import { t as EntityTagPicker } from "./EntityTagPicker-BppBSEJk.js";
37
37
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
38
38
  import { n as runsQuotaLevel, t as readRunsQuota } from "./runsQuota-DvXR6mRN.js";
39
39
  import { a as SdkPermissionGate, i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
40
- import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-Dg7q_Tzf.js";
40
+ import { a as useDeactivateWorkflow, d as useRestoreWorkflowVersion, o as useDeleteWorkflow, t as useActivateWorkflow, v as useWorkflowVersions } from "./useWorkflows-DKBtpjFx.js";
41
41
  import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
42
42
  import { o as countLifecycle, t as VersionLifecycleBar } from "./VersionLifecycleBar-DuphLOT0.js";
43
- import { EI as WorkflowEnvironment, Iu as DrainageStatus, OI as WorkflowExportFormat, SF as VersioningBehavior, Vo as CodeReplaceStatus, aL as WorkflowTestExpectedStatus } from "./graphql-types-dS3Fk9Z5.js";
43
+ import { Iu as DrainageStatus, MI as WorkflowEnvironment, OF as VersioningBehavior, PI as WorkflowExportFormat, Vo as CodeReplaceStatus, dL as WorkflowTestExpectedStatus } from "./graphql-types-BjCOnRUQ.js";
44
44
  import { r as useConnections } from "./useConnections-CmnwGk09.js";
45
45
  import { t as buildNodeDisplayMap } from "./run-display-UjLAoYqQ.js";
46
46
  import { t as useWorkflowProposal } from "./useWorkflowProposal-B9vXLKef.js";
47
47
  import { n as useRequestedProposal } from "./useRequestedProposal-B7uPXfZB.js";
48
48
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
49
- import { _ as orderedExportFiles, b as sortFidelityItems, d as fileBaseName, g as lineOfNode, h as isLossyFidelityItem, l as buildExportDownload, m as isLosslessReport, t as downloadBlob } from "./workflow-transfer-CktP7o1c.js";
50
- import { r as useWorkflowCodeExport } from "./useWorkflowCodeExport-uKBDVvnA.js";
49
+ import { _ as orderedExportFiles, b as sortFidelityItems, d as fileBaseName, g as lineOfNode, h as isLossyFidelityItem, l as buildExportDownload, m as isLosslessReport, t as downloadBlob } from "./workflow-transfer-390a-CK8.js";
50
+ import { r as useWorkflowCodeExport } from "./useWorkflowCodeExport-CuJCY0lh.js";
51
51
  import { Suspense, lazy, useCallback, useContext, useDeferredValue, useEffect, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
52
52
  import { Link, useNavigate, useParams } from "react-router";
53
53
  import { useMutation, useQuery } from "@apollo/client/react";
@@ -6698,10 +6698,10 @@ function IntroductionPropertyPanel() {
6698
6698
  * waiting for its chunk and React's Suspense throttle (about 0.5 s on first
6699
6699
  * open even with the chunk cached).
6700
6700
  */
6701
- const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-C__INEVF.js").then((m) => m.NodeDetailView), "NodeDetailView");
6702
- const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-Bxi9TwCG.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
6703
- const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-DG-34YEW.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
6704
- const WorkflowShareDialogOverlay = preloadableLazy(() => import("./WorkflowShareDialog-B9yZMhEi.js").then((n) => n.n).then((m) => m.WorkflowShareDialog), "WorkflowShareDialog");
6701
+ const NodeDetailViewOverlay = preloadableLazy(() => import("./node-detail-view-C0cuqQfd.js").then((m) => m.NodeDetailView), "NodeDetailView");
6702
+ const QuickConfigPanelOverlay = preloadableLazy(() => import("./quick-config-panel-CIVUr12G.js").then((m) => m.QuickConfigPanel), "QuickConfigPanel");
6703
+ const SidebarNodeEditorOverlay = preloadableLazy(() => import("./sidebar-node-editor-BfY2Pjdt.js").then((m) => m.SidebarNodeEditor), "SidebarNodeEditor");
6704
+ const WorkflowShareDialogOverlay = preloadableLazy(() => import("./WorkflowShareDialog-DherIHZo.js").then((n) => n.n).then((m) => m.WorkflowShareDialog), "WorkflowShareDialog");
6705
6705
  const ConnectionFormDialogOverlay = preloadableLazy(() => import("./ConnectionFormDialog-Dr1-CTan.js").then((n) => n.n).then((m) => m.ConnectionFormDialog), "ConnectionFormDialog");
6706
6706
  const EdgeMapperOverlay = preloadableLazy(() => import("./app-4Qdv2_5b.js").then((m) => m.default), "EdgeMapper");
6707
6707
  const EdgeConditionBuilderOverlay = preloadableLazy(() => import("./conditionBuilder-D8aLGL1w.js").then((m) => m.default), "EdgeConditionBuilder");
@@ -9152,7 +9152,7 @@ function TemplatesGrid({ templates, loading, hasMore, onLoadMore, onTemplateClic
9152
9152
  }
9153
9153
 
9154
9154
  // src/builder/components/flow-builder/components/templates/TemplatesModal.tsx
9155
- const LazyTemplateDetailPanel = lazy(() => import("./TemplateDetailPanel-DXJ9VYsh.js").then((m) => ({ default: m.TemplateDetailPanel })));
9155
+ const LazyTemplateDetailPanel = lazy(() => import("./TemplateDetailPanel-D81Wl3rx.js").then((m) => ({ default: m.TemplateDetailPanel })));
9156
9156
  /**
9157
9157
  * Modal for browsing and selecting workflow templates
9158
9158
  * Features:
@@ -19443,7 +19443,7 @@ const FlowBuilder = ({ readOnly = false, fitToScreen = false }) => {
19443
19443
  paletteGatesRef.current = paletteGates;
19444
19444
  }, [paletteGates]);
19445
19445
  useWarmBuilderOverlays();
19446
- useLazyAgentTools(() => import("./agentTools-Cx5yPBe7.js").then(({ createBuilderAgentTools }) => createBuilderAgentTools({ durableFunctionsEnabled: () => paletteGatesRef.current })), !editingBlocked, "Agent tools");
19446
+ useLazyAgentTools(() => import("./agentTools-BHNiWrQw.js").then(({ createBuilderAgentTools }) => createBuilderAgentTools({ durableFunctionsEnabled: () => paletteGatesRef.current })), !editingBlocked, "Agent tools");
19447
19447
  const [nodes, edges, onNodesChange, onEdgesChange, onConnect] = useFlowStore(useShallow((s) => {
19448
19448
  return [
19449
19449
  s.workflow.nodes,
@@ -19487,7 +19487,7 @@ const FlowBuilder = ({ readOnly = false, fitToScreen = false }) => {
19487
19487
  useEffect(() => {
19488
19488
  fitViewRef.current = fitView;
19489
19489
  }, [fitView]);
19490
- useLazyAgentTools(() => import("./canvasNoteTools-BxknF5rX.js").then(({ createCanvasNoteTools }) => createCanvasNoteTools({ focusNode: (nodeId) => fitViewRef.current({
19490
+ useLazyAgentTools(() => import("./canvasNoteTools-w5Xg-5pX.js").then(({ createCanvasNoteTools }) => createCanvasNoteTools({ focusNode: (nodeId) => fitViewRef.current({
19491
19491
  nodes: [{ id: nodeId }],
19492
19492
  duration: 400,
19493
19493
  padding: .6,