@burdenoff/fluidgrids-fe-sdk 2026.1115.3 → 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 (64) hide show
  1. package/dist/{AiStudioPage-CRgw_P7Y.js → AiStudioPage-CsS637Bn.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-VNS0Y4Bb.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-CISnd6ug.js} +4 -4
  25. package/dist/{WorkflowBuilder-BFJq_45O.js → WorkflowBuilder-aBnrbP9M.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-B2vxHaAG.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-C0cuqQfd.js} +7 -7
  37. package/dist/{node-editor-tab-body-_09aIAMK.js → node-editor-tab-body-CsMOa4-Z.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-CIVUr12G.js} +5 -5
  44. package/dist/{schedule-panel-Dwq6JXhH.js → schedule-panel-CdptgUXs.js} +5 -5
  45. package/dist/settings.js +1 -1
  46. package/dist/{sidebar-node-editor-Cx9-gwpu.js → sidebar-node-editor-BfY2Pjdt.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
@@ -1,15 +1,15 @@
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 { a as useAiWorkflowTemplates, i as enrichDraftNodes, n as AI_DRAFT_MAX_PROMPT_LENGTH, r as draftToCanvas, t as FlowBuilderPage } from "./flow-builder-D6iWW6tJ.js";
5
- import { Ct as classifyCreateRefusal, N as buildOperationSeed, St as builderPathOf, d as ensureNodeTypesLoaded } from "./FluidGridsProvider-64qAUX4Y.js";
4
+ import { a as useAiWorkflowTemplates, i as enrichDraftNodes, n as AI_DRAFT_MAX_PROMPT_LENGTH, r as draftToCanvas, t as FlowBuilderPage } from "./flow-builder-B2vxHaAG.js";
5
+ import { Ct as classifyCreateRefusal, N as buildOperationSeed, St as builderPathOf, d as ensureNodeTypesLoaded } from "./FluidGridsProvider-CaOI_H63.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 { a as notifyFluidGridsAiCreditsUpdated, t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
9
- import { n as useCreateWorkflow } from "./useWorkflows-CEOWXYpV.js";
9
+ import { n as useCreateWorkflow } from "./useWorkflows-DKBtpjFx.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
11
  import { t as BILLING_PLANS_PATH } from "./quota-Cdt8yz7N.js";
12
- import { o as CreateWorkflowRefusalDialog } from "./workflow-description-QYwLwwFT.js";
12
+ import { o as CreateWorkflowRefusalDialog } from "./workflow-description-CllsqYja.js";
13
13
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
14
14
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
15
15
  import { useNavigate } from "react-router";
@@ -5,7 +5,7 @@ import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
5
  import { o as throwIfResultError, r as isForbiddenError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
6
6
  import { a as useRecipientLabel, i as notAnswerableText, n as ApprovalApprovers, r as answeredToastText, t as channelLabel } from "./channel-DtF1n_ab.js";
7
7
  import { n as useRespondToHumanRequest, t as usePendingHumanRequests } from "./useHumanRequests-DwG2tQ3f.js";
8
- import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
8
+ import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
9
9
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
10
10
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
11
11
  import { r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-UjLAoYqQ.js";
@@ -2,7 +2,7 @@
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
- import { n as useDataSinks, t as useDataSinkData } from "./useObservability-CkNAUULL.js";
5
+ import { n as useDataSinks, t as useDataSinkData } from "./useObservability-DadWpUTF.js";
6
6
  import { i as formatTimestamp, l as prettyJson, t as formatBytes } from "./utils-CXEodE1a.js";
7
7
  import { useEffect, useMemo, useState } from "react";
8
8
  import { Icon } from "@iconify/react";
@@ -11,9 +11,9 @@ import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
11
11
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
12
12
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
13
13
  import { t as ConfirmActionDialog } from "./ConfirmActionDialog-D9Pir3bc.js";
14
- import { t as Disclosure } from "./Disclosure-CsxDspR7.js";
14
+ import { t as Disclosure } from "./Disclosure-PfrdUKIg.js";
15
15
  import { t as RunActionsMenu } from "./RunActionsMenu-BZY4NreS.js";
16
- import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
16
+ import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
17
17
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
18
18
  import { useNavigate } from "react-router";
19
19
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
+ import { t as OfflineIcon } from "./OfflineIcon-Ckynq7Vp.js";
2
3
  import { useId, useState } from "react";
3
- import { Icon } from "@iconify/react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
 
6
6
  // src/modules/executions/components/Disclosure.tsx
@@ -29,7 +29,7 @@ function Disclosure({ closedLabel, openLabel, children, keptContent, defaultOpen
29
29
  "aria-expanded": open,
30
30
  "aria-controls": panelId,
31
31
  className: "inline-flex items-center gap-1 text-sm text-text-secondary hover:text-text-primary",
32
- children: [/* @__PURE__ */ jsx(Icon, {
32
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
33
33
  icon: open ? "mdi:chevron-down" : "mdi:chevron-right",
34
34
  width: 16
35
35
  }), open ? openLabel : closedLabel]
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { c as activityOptionsFrom, d as errorAdvice, f as needsReconnect, i as useRunPending, l as ConfirmStopRunDialog, m as NodeStatusBadge, n as useDurableParityRunFields, o as ActivityOptionsFields, p as ExecutionStatusBadge, r as useRunMetadata, s as EMPTY_ACTIVITY_OPTIONS_FORM, t as setRunVersioningOverride } from "./useDurableParity-ClG3HMH8.js";
3
+ import { c as activityOptionsFrom, d as errorAdvice, f as needsReconnect, i as useRunPending, l as ConfirmStopRunDialog, m as NodeStatusBadge, n as useDurableParityRunFields, o as ActivityOptionsFields, p as ExecutionStatusBadge, r as useRunMetadata, s as EMPTY_ACTIVITY_OPTIONS_FORM, t as setRunVersioningOverride } from "./useDurableParity-X6Zze6Sb.js";
4
4
  import { n as formatRunVersion, r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-UjLAoYqQ.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { c as RunLogAppendedDocument, l as RunLogsDocument, s as isAgentNodeType } from "./agent-form-D0uLvzx4.js";
7
- import { A as describeRunError, D as runQuestions, E as isFailedStatus, O as runStepQuestions, T as failureQuestions, an as runDurationMs, in as nodeStateDurationMs, j as describeRunStep, k as describeRun, rn as formatElapsedMs, wn as runSignalTargets, xn as durableInterfaceOf, yn as canSignalRun } from "./FluidGridsProvider-64qAUX4Y.js";
7
+ import { A as describeRunError, D as runQuestions, E as isFailedStatus, O as runStepQuestions, T as failureQuestions, an as runDurationMs, in as nodeStateDurationMs, j as describeRunStep, k as describeRun, rn as formatElapsedMs, wn as runSignalTargets, xn as durableInterfaceOf, yn as canSignalRun } from "./FluidGridsProvider-CaOI_H63.js";
8
8
  import { i as useFgAskable, o as useFgAskableSelection, r as useFgAskAssistant } from "./askAboutBridge-ByYsQams.js";
9
9
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
10
- import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
11
- import { _ as shortRunId, g as runChainLinks, h as parseMetadataDefinition, m as overrideRequestOf, n as useExecution, p as callbackTone, r as useExecutionActions, s as buildRetryTriggerInput, t as useAutoRefresh } from "./useExecutions-D9Sc9QbB.js";
10
+ import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
11
+ import { _ as shortRunId, g as runChainLinks, h as parseMetadataDefinition, m as overrideRequestOf, n as useExecution, p as callbackTone, r as useExecutionActions, s as buildRetryTriggerInput, t as useAutoRefresh } from "./useExecutions-BzvKMRA1.js";
12
12
  import { t as RunActionsMenu } from "./RunActionsMenu-BZY4NreS.js";
13
13
  import { n as getFluidGridsClient, r as getFluidGridsClientSafe } from "./client-Ctl4jmY3.js";
14
14
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
@@ -24,14 +24,14 @@ import { t as useWorkflowProposal } from "./useWorkflowProposal-B9vXLKef.js";
24
24
  import { t as WorkflowProposalCard } from "./WorkflowProposalCard-SmRv_Egf.js";
25
25
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
26
26
  import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-Chvh8S_q.js";
27
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-Dv1V1EO0.js";
27
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-DA8-msTi.js";
28
28
  import { JI as WorkflowQueryRejectCondition, L as AgentStepKind, OF as VersioningBehavior, Wd as ErrorType, mL as WorkflowUpdateWaitFor } from "./graphql-types-BjCOnRUQ.js";
29
29
  import { _ as agentTokenStreamsFor, g as agentLiveReplyState, h as useAgentTokenStream, i as canSaveRunAsTestCase, t as saveRunAsTestCase } from "./use-workflow-tests-C0KaRy7p.js";
30
30
  import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-BovljL6l.js";
31
31
  import { _ as useWorkflowTestsEnabled, l as useDurableFunctionNodesEnabled, m as usePhaseCFlags, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
32
32
  import { A as revokeSignalToken, B as updateActivityOptions, D as resetActivities, E as queryRun, N as sendRunUpdate, O as resetRun, R as unpauseActivities, S as fetchSignalTokens, V as upsertRunSearchAttributes, _ as fetchPauseRules, b as fetchRunUpdate, d as failActivityById, g as fetchCodecServerSettings, i as completeActivityById, k as resetRunToLastCleanTask, s as createSignalToken, v as fetchRunControlFields, w as pauseActivities, y as fetchRunHistoryArchive } from "./api-o5UUDbr8.js";
33
33
  import { a as fetchTaskQueueStats } from "./api-CEzqoN5H.js";
34
- import { v as useWorkflowVersions } from "./useWorkflows-CEOWXYpV.js";
34
+ import { v as useWorkflowVersions } from "./useWorkflows-DKBtpjFx.js";
35
35
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
36
36
  import { Link, useNavigate, useParams, useSearchParams } from "react-router";
37
37
  import { Icon } from "@iconify/react";
@@ -1,23 +1,23 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { g as useExecutionsStore, h as DEFAULT_EXECUTIONS_FILTER } from "./config-X97zrIvn.js";
4
- import { b as validateDateRange, c as EMPTY_SEARCH_FILTER, d as searchFilterConflicts, i as useExecutionStats, l as OPERATORS_BY_TYPE, m as overrideRequestOf, o as useExecutionsWithStore, r as useExecutionActions, t as useAutoRefresh, u as buildSearchAttributeFilter } from "./useExecutions-D9Sc9QbB.js";
4
+ import { b as validateDateRange, c as EMPTY_SEARCH_FILTER, d as searchFilterConflicts, i as useExecutionStats, l as OPERATORS_BY_TYPE, m as overrideRequestOf, o as useExecutionsWithStore, r as useExecutionActions, t as useAutoRefresh, u as buildSearchAttributeFilter } from "./useExecutions-BzvKMRA1.js";
5
5
  import { m as usePhaseCFlags, u as useDurableParityEnabled } from "./feature-flags-B_b8PJ6Z.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
7
7
  import { n as useFluidGridsPageControls } from "./pageControlsBridge-0pX9s-3k.js";
8
8
  import { t as executionsControls } from "./pageControlSpecs-DZJ9K37m.js";
9
9
  import { t as TagFilterSelect } from "./TagFilterSelect-CAShgvbS.js";
10
10
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
11
- import { a as useRunStatusCounts, c as activityOptionsFrom, d as errorAdvice, g as RUN_STATUS_CONFIG, h as runStatusLabels, l as ConfirmStopRunDialog, o as ActivityOptionsFields, p as ExecutionStatusBadge, s as EMPTY_ACTIVITY_OPTIONS_FORM, u as ADVICE_ERROR_TYPES } from "./useDurableParity-ClG3HMH8.js";
12
- import { t as Disclosure } from "./Disclosure-CsxDspR7.js";
11
+ import { a as useRunStatusCounts, c as activityOptionsFrom, d as errorAdvice, g as RUN_STATUS_CONFIG, h as runStatusLabels, l as ConfirmStopRunDialog, o as ActivityOptionsFields, p as ExecutionStatusBadge, s as EMPTY_ACTIVITY_OPTIONS_FORM, u as ADVICE_ERROR_TYPES } from "./useDurableParity-X6Zze6Sb.js";
12
+ import { t as Disclosure } from "./Disclosure-PfrdUKIg.js";
13
13
  import { n as formatRunVersion } from "./run-display-UjLAoYqQ.js";
14
14
  import { r as runSuggestAnchorProps } from "./entities-I_0kio3q.js";
15
- import { an as runDurationMs, rn as formatElapsedMs } from "./FluidGridsProvider-64qAUX4Y.js";
15
+ import { an as runDurationMs, rn as formatElapsedMs } from "./FluidGridsProvider-CaOI_H63.js";
16
16
  import { r as useRunHumanRequests } from "./useHumanRequests-DwG2tQ3f.js";
17
17
  import { n as runListLinkKey, t as runListFilterFromSearch } from "./run-list-links-DPWTtVr5.js";
18
- import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
18
+ import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
19
19
  import { t as RunActionsMenu } from "./RunActionsMenu-BZY4NreS.js";
20
- import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-CEOWXYpV.js";
20
+ import { h as useWorkflowDefinitions, v as useWorkflowVersions } from "./useWorkflows-DKBtpjFx.js";
21
21
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
22
22
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
23
23
  import { C as jsonArg, F as startBatchOperation, I as startBatchTerminate, P as startBatchExport, m as fetchBatchOperations, n as cancelBatchOperation, p as fetchBatchOperation, x as fetchSearchAttributes } from "./api-o5UUDbr8.js";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { a as resetFluidGridsClient, n as getFluidGridsClient, o as setFluidGridsClient, r as getFluidGridsClientSafe, s as waitForFluidGridsClient, t as createFluidGridsClient } from "./client-Ctl4jmY3.js";
3
3
  import { a as setGlobalStoreClient, i as resetGlobalStoreClient, n as getGlobalStoreClient, t as createGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
4
- import { A as useFlowStore, C as outputHandlesSpacerHeight, D as NodeCardBody, E as NodeCard, M as isNodeTrigger, O as NodeCardHeader, S as nodeAdaptersOf, T as resolveOutputHandles, _ as InputHandles, b as hasNodeManifest, g as LogicNodeCard, i as WAIT_FOR_SIGNAL_NODE_TYPE, k as nodeAccent, l as interfaceFields, m as readSignalName, n as synchronizeOperationUpdate, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, u as interfaceHandlers, v as OutputHandles, w as resolveInputHandles, y as alignPlainOutputEdges } from "./node-operation-selection-DHbtGNrG.js";
4
+ import { A as useFlowStore, C as outputHandlesSpacerHeight, D as NodeCardBody, E as NodeCard, M as isNodeTrigger, O as NodeCardHeader, S as nodeAdaptersOf, T as resolveOutputHandles, _ as InputHandles, b as hasNodeManifest, g as LogicNodeCard, i as WAIT_FOR_SIGNAL_NODE_TYPE, k as nodeAccent, l as interfaceFields, m as readSignalName, n as synchronizeOperationUpdate, p as readCodeWorkflowState, r as CODE_WORKFLOW_NODE_TYPE, t as resolveOperationName, u as interfaceHandlers, v as OutputHandles, w as resolveInputHandles, y as alignPlainOutputEdges } from "./node-operation-selection-DCJ_DDHr.js";
5
5
  import { n as useBuilderReadOnly } from "./read-only-context-Dt9N9SIG.js";
6
6
  import { a as resolveStickyColor, i as partitionStickyNotes, l as STICKY_NOTE_TYPE, n as STICKY_COLORS, o as stickySurfaceStyle, t as DEFAULT_STICKY_COLOR } from "./sticky-notes-23j-wL6Q.js";
7
7
  import { n as FluidGridsTranslationProvider, r as useTr, t as ENGLISH_FALLBACK_TRANSLATOR } from "./TranslationBridge-Da-TPgQm.js";
8
- import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
8
+ import { t as NodeTypeIcon } from "./node-type-icon-nGIb5TyU.js";
9
9
  import { l as useDurableFunctionNodesEnabled } from "./feature-flags-B_b8PJ6Z.js";
10
10
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
11
11
  import { t as WorkflowDefinitionDocument } from "./WorkflowDefinitionDocument-DZLbTPUZ.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-CEOWXYpV.js";
3
+ import { d as useRestoreWorkflowVersion, h as useWorkflowDefinitions } from "./useWorkflows-DKBtpjFx.js";
4
4
  import { t as VersionDiffDialog } from "./VersionDiffDialog-D9W5Fm56.js";
5
5
  import { c as versionsOfWorkflow } from "./VersionLifecycleBar-DuphLOT0.js";
6
6
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
@@ -2,8 +2,8 @@
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
4
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
- import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
6
- import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-CkNAUULL.js";
5
+ import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
6
+ import { o as useRunReplayActions, r as useInsightsData } from "./useObservability-DadWpUTF.js";
7
7
  import { a as getFailureBreakdown, c as percentage, d as summarySuccessRate, n as formatDuration, o as getTopFailingNodes, r as formatMs, s as getTopFailingWorkflows, u as rankedFailingWorkflows } from "./utils-CXEodE1a.js";
8
8
  import { n as FailureTriagePanel } from "./FailureTriagePanel-Chvh8S_q.js";
9
9
  import { c as useContinuousOptimisationEnabled, l as useDurableFunctionNodesEnabled } from "./feature-flags-B_b8PJ6Z.js";
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
+ import { r as registerOfflineIcons, t as OfflineIcon } from "./OfflineIcon-Ckynq7Vp.js";
3
4
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
5
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
5
6
  import { t as PublishCustomNodeAction } from "./PublishCustomNodeAction-OOY35dUv.js";
6
7
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
7
8
  import { o as throwIfResultError, t as describeOperationError } from "./errors-xPZ-IbQd.js";
8
- import { t as NodeTypeIcon } from "./node-type-icon-DEAztACh.js";
9
+ import { t as NodeTypeIcon } from "./node-type-icon-nGIb5TyU.js";
9
10
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
10
11
  import { useNavigate } from "react-router";
11
- import { Icon } from "@iconify/react";
12
12
  import { jsx, jsxs } from "react/jsx-runtime";
13
13
  import { gql } from "@apollo/client";
14
14
  import { Badge, Card, CardHeader, Input, Skeleton, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@burdenoff/fe-libs/ui";
@@ -217,6 +217,7 @@ function nodeStatusLabel(tr, status) {
217
217
 
218
218
  // src/modules/nodes/pages/NodesPage.tsx
219
219
  var NodesPage_exports = /* @__PURE__ */ __exportAll({ NodesPage: () => NodesPage });
220
+ registerOfflineIcons();
220
221
  const NODE_CATEGORIES = [
221
222
  {
222
223
  value: "all",
@@ -280,7 +281,7 @@ function EmptyState$1({ hasFilters }) {
280
281
  children: [
281
282
  /* @__PURE__ */ jsx("div", {
282
283
  className: "rounded-full bg-surface p-4 mb-4",
283
- children: /* @__PURE__ */ jsx(Icon, {
284
+ children: /* @__PURE__ */ jsx(OfflineIcon, {
284
285
  icon: "mdi:puzzle-outline",
285
286
  width: 40,
286
287
  className: "text-text-secondary"
@@ -304,7 +305,7 @@ function ErrorState({ message, onRetry }) {
304
305
  children: [
305
306
  /* @__PURE__ */ jsxs("div", {
306
307
  className: "flex items-center gap-2 text-[var(--color-status-error-text)]",
307
- children: [/* @__PURE__ */ jsx(Icon, {
308
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
308
309
  icon: "mdi:alert-circle",
309
310
  width: 20
310
311
  }), /* @__PURE__ */ jsx("span", {
@@ -349,7 +350,7 @@ function NodeCard({ node, category, v2 }) {
349
350
  }), /* @__PURE__ */ jsxs(Badge, {
350
351
  variant: "outline",
351
352
  className: status.className,
352
- children: [/* @__PURE__ */ jsx(Icon, {
353
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
353
354
  icon: status.icon,
354
355
  width: 12,
355
356
  className: "mr-1"
@@ -385,7 +386,7 @@ function NodeCard({ node, category, v2 }) {
385
386
  type: "button",
386
387
  "aria-label": tr("fluidgrids.nodes.nodeCard.configureTooltip", "Configure node"),
387
388
  className: "p-1.5 rounded hover:bg-surface-sunken text-text-secondary hover:text-text-primary transition-colors",
388
- children: /* @__PURE__ */ jsx(Icon, {
389
+ children: /* @__PURE__ */ jsx(OfflineIcon, {
389
390
  icon: "mdi:cog",
390
391
  width: 16
391
392
  })
@@ -450,7 +451,7 @@ function NodesPage() {
450
451
  /* @__PURE__ */ jsxs(Button$1, {
451
452
  variant: "outline",
452
453
  onClick: () => void refetch(),
453
- children: [/* @__PURE__ */ jsx(Icon, {
454
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
454
455
  icon: "mdi:refresh",
455
456
  className: "mr-2",
456
457
  width: 16
@@ -459,7 +460,7 @@ function NodesPage() {
459
460
  /* @__PURE__ */ jsxs(Button$1, {
460
461
  variant: "outline",
461
462
  onClick: () => navigate("../list"),
462
- children: [/* @__PURE__ */ jsx(Icon, {
463
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
463
464
  icon: "mdi:arrow-left",
464
465
  className: "mr-2",
465
466
  width: 16
@@ -476,7 +477,7 @@ function NodesPage() {
476
477
  className: "p-3 rounded-lg bg-surface border border-border-default",
477
478
  children: [/* @__PURE__ */ jsxs("div", {
478
479
  className: "flex items-center gap-2",
479
- children: [/* @__PURE__ */ jsx(Icon, {
480
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
480
481
  icon: "mdi:puzzle",
481
482
  width: 18,
482
483
  className: "text-text-secondary"
@@ -493,7 +494,7 @@ function NodesPage() {
493
494
  className: "p-3 rounded-lg bg-surface border border-border-default",
494
495
  children: [/* @__PURE__ */ jsxs("div", {
495
496
  className: "flex items-center gap-2",
496
- children: [/* @__PURE__ */ jsx(Icon, {
497
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
497
498
  icon: "mdi:check-circle",
498
499
  width: 18,
499
500
  className: "text-status-success-text"
@@ -510,7 +511,7 @@ function NodesPage() {
510
511
  className: "p-3 rounded-lg bg-surface border border-border-default",
511
512
  children: [/* @__PURE__ */ jsxs("div", {
512
513
  className: "flex items-center gap-2",
513
- children: [/* @__PURE__ */ jsx(Icon, {
514
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
514
515
  icon: "mdi:alert",
515
516
  width: 18,
516
517
  className: "text-status-warning-text"
@@ -528,7 +529,7 @@ function NodesPage() {
528
529
  /* @__PURE__ */ jsxs("div", {
529
530
  className: "relative max-w-md mb-6",
530
531
  "data-tour": "fluidgrids-nodes-search",
531
- children: [/* @__PURE__ */ jsx(Icon, {
532
+ children: [/* @__PURE__ */ jsx(OfflineIcon, {
532
533
  icon: "mdi:magnify",
533
534
  width: 18,
534
535
  className: "absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary"
@@ -552,7 +553,7 @@ function NodesPage() {
552
553
  onClick: () => setActiveCategory(cat.value),
553
554
  className: `inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-colors ${isActive ? "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"}`,
554
555
  children: [
555
- /* @__PURE__ */ jsx(Icon, {
556
+ /* @__PURE__ */ jsx(OfflineIcon, {
556
557
  icon: cat.icon,
557
558
  width: 16
558
559
  }),
@@ -0,0 +1,124 @@
1
+ "use client";
2
+ import { addCollection } from "@iconify/react";
3
+ import { Fragment, jsx } from "react/jsx-runtime";
4
+ import { Icon as Icon$1, addCollection as addCollection$1 } from "@iconify/react/offline";
5
+
6
+ // src/icons/offline-mdi.generated.ts
7
+ const OFFLINE_MDI_ICONS = {
8
+ "prefix": "mdi",
9
+ "width": 24,
10
+ "height": 24,
11
+ "icons": {
12
+ "alert": { "body": "<path fill=\"currentColor\" d=\"M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z\"/>" },
13
+ "alert-circle": { "body": "<path fill=\"currentColor\" d=\"M13 13h-2V7h2m0 10h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2\"/>" },
14
+ "alert-circle-outline": { "body": "<path fill=\"currentColor\" d=\"M11 15h2v2h-2zm0-8h2v6h-2zm1-5C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18a8 8 0 0 1-8-8a8 8 0 0 1 8-8a8 8 0 0 1 8 8a8 8 0 0 1-8 8\"/>" },
15
+ "arrow-left": { "body": "<path fill=\"currentColor\" d=\"M20 11v2H8l5.5 5.5l-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5L8 11z\"/>" },
16
+ "brain": { "body": "<path fill=\"currentColor\" d=\"M21.33 12.91c.09 1.55-.62 3.04-1.89 3.95l.77 1.49c.23.45.26.98.06 1.45c-.19.47-.58.84-1.06 1l-.79.25a1.69 1.69 0 0 1-1.86-.55L14.44 18c-.89-.15-1.73-.53-2.44-1.1c-.5.15-1 .23-1.5.23c-.88 0-1.76-.27-2.5-.79c-.53.16-1.07.23-1.62.22c-.79.01-1.57-.15-2.3-.45a4.1 4.1 0 0 1-2.43-3.61c-.08-.72.04-1.45.35-2.11c-.29-.75-.32-1.57-.07-2.33C2.3 7.11 3 6.32 3.87 5.82c.58-1.69 2.21-2.82 4-2.7c1.6-1.5 4.05-1.66 5.83-.37c.42-.11.86-.17 1.3-.17c1.36-.03 2.65.57 3.5 1.64c2.04.53 3.5 2.35 3.58 4.47c.05 1.11-.25 2.2-.86 3.13c.07.36.11.72.11 1.09m-5-1.41c.57.07 1.02.5 1.02 1.07a1 1 0 0 1-1 1h-.63c-.32.9-.88 1.69-1.62 2.29c.25.09.51.14.77.21c5.13-.07 4.53-3.2 4.53-3.25a2.59 2.59 0 0 0-2.69-2.49a1 1 0 0 1-1-1a1 1 0 0 1 1-1c1.23.03 2.41.49 3.33 1.3c.05-.29.08-.59.08-.89c-.06-1.24-.62-2.32-2.87-2.53c-1.25-2.96-4.4-1.32-4.4-.4c-.03.23.21.72.25.75a1 1 0 0 1 1 1c0 .55-.45 1-1 1c-.53-.02-1.03-.22-1.43-.56c-.48.31-1.03.5-1.6.56c-.57.05-1.04-.35-1.07-.9a.97.97 0 0 1 .88-1.1c.16-.02.94-.14.94-.77c0-.66.25-1.29.68-1.79c-.92-.25-1.91.08-2.91 1.29C6.75 5 6 5.25 5.45 7.2C4.5 7.67 4 8 3.78 9c1.08-.22 2.19-.13 3.22.25c.5.19.78.75.59 1.29c-.19.52-.77.78-1.29.59c-.73-.32-1.55-.34-2.3-.06c-.32.27-.32.83-.32 1.27c0 .74.37 1.43 1 1.83c.53.27 1.12.41 1.71.4q-.225-.39-.39-.81a1.038 1.038 0 0 1 1.96-.68c.4 1.14 1.42 1.92 2.62 2.05c1.37-.07 2.59-.88 3.19-2.13c.23-1.38 1.34-1.5 2.56-1.5m2 7.47l-.62-1.3l-.71.16l1 1.25zm-4.65-8.61a1 1 0 0 0-.91-1.03c-.71-.04-1.4.2-1.93.67c-.57.58-.87 1.38-.84 2.19a1 1 0 0 0 1 1c.57 0 1-.45 1-1c0-.27.07-.54.23-.76c.12-.1.27-.15.43-.15c.55.03 1.02-.38 1.02-.92\"/>" },
17
+ "bullhorn": { "body": "<path fill=\"currentColor\" d=\"M12 8H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h1v4a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-4h3l5 4V4zm9.5 4c0 1.71-.96 3.26-2.5 4V8c1.53.75 2.5 2.3 2.5 4\"/>" },
18
+ "cancel": { "body": "<path fill=\"currentColor\" d=\"M12 2c5.5 0 10 4.5 10 10s-4.5 10-10 10S2 17.5 2 12S6.5 2 12 2m0 2c-1.9 0-3.6.6-4.9 1.7l11.2 11.2c1-1.4 1.7-3.1 1.7-4.9c0-4.4-3.6-8-8-8m4.9 14.3L5.7 7.1C4.6 8.4 4 10.1 4 12c0 4.4 3.6 8 8 8c1.9 0 3.6-.6 4.9-1.7\"/>" },
19
+ "cart-outline": { "body": "<path fill=\"currentColor\" d=\"M17 18a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2c0-1.11.89-2 2-2M1 2h3.27l.94 2H20a1 1 0 0 1 1 1c0 .17-.05.34-.12.5l-3.58 6.47c-.34.61-1 1.03-1.75 1.03H8.1l-.9 1.63l-.03.12a.25.25 0 0 0 .25.25H19v2H7a2 2 0 0 1-2-2c0-.35.09-.68.24-.96l1.36-2.45L3 4H1zm6 16a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2c0-1.11.89-2 2-2m9-7l2.78-5H6.14l2.36 5z\"/>" },
20
+ "check": { "body": "<path fill=\"currentColor\" d=\"M21 7L9 19l-5.5-5.5l1.41-1.41L9 16.17L19.59 5.59z\"/>" },
21
+ "check-circle": { "body": "<path fill=\"currentColor\" d=\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10s10-4.5 10-10S17.5 2 12 2m-2 15l-5-5l1.41-1.41L10 14.17l7.59-7.59L19 8z\"/>" },
22
+ "check-circle-outline": { "body": "<path fill=\"currentColor\" d=\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10s10-4.5 10-10S17.5 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4l8-8z\"/>" },
23
+ "checkbox-marked-circle-outline": { "body": "<path fill=\"currentColor\" d=\"M20 12a8 8 0 0 1-8 8a8 8 0 0 1-8-8a8 8 0 0 1 8-8c.76 0 1.5.11 2.2.31l1.57-1.57A9.8 9.8 0 0 0 12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10M7.91 10.08L6.5 11.5L11 16L21 6l-1.41-1.42L11 13.17z\"/>" },
24
+ "chevron-down": { "body": "<path fill=\"currentColor\" d=\"M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6z\"/>" },
25
+ "chevron-right": { "body": "<path fill=\"currentColor\" d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6z\"/>" },
26
+ "chevron-up": { "body": "<path fill=\"currentColor\" d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6l-6 6z\"/>" },
27
+ "clock-alert-outline": { "body": "<path fill=\"currentColor\" d=\"M11 7v6l5.2 3.1l.8-1.2l-4.5-2.7V7zm9 5v6h2v-6zm0 8v2h2v-2zm-2 0c-1.7 1.3-3.7 2-6 2c-5.5 0-10-4.5-10-10S6.5 2 12 2c4.8 0 8.9 3.4 9.8 8h-2.1c-.9-3.4-4-6-7.7-6c-4.4 0-8 3.6-8 8s3.6 8 8 8c2.4 0 4.5-1.1 6-2.7z\"/>" },
28
+ "clock-outline": { "body": "<path fill=\"currentColor\" d=\"M12 20a8 8 0 0 0 8-8a8 8 0 0 0-8-8a8 8 0 0 0-8 8a8 8 0 0 0 8 8m0-18a10 10 0 0 1 10 10a10 10 0 0 1-10 10C6.47 22 2 17.5 2 12A10 10 0 0 1 12 2m.5 5v5.25l4.5 2.67l-.75 1.23L11 13V7z\"/>" },
29
+ "close": { "body": "<path fill=\"currentColor\" d=\"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z\"/>" },
30
+ "close-circle": { "body": "<path fill=\"currentColor\" d=\"M12 2c5.53 0 10 4.47 10 10s-4.47 10-10 10S2 17.53 2 12S6.47 2 12 2m3.59 5L12 10.59L8.41 7L7 8.41L10.59 12L7 15.59L8.41 17L12 13.41L15.59 17L17 15.59L13.41 12L17 8.41z\"/>" },
31
+ "close-circle-outline": { "body": "<path fill=\"currentColor\" d=\"M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-18C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2m2.59 6L12 10.59L9.41 8L8 9.41L10.59 12L8 14.59L9.41 16L12 13.41L14.59 16L16 14.59L13.41 12L16 9.41z\"/>" },
32
+ "code-braces": { "body": "<path fill=\"currentColor\" d=\"M8 3a2 2 0 0 0-2 2v4a2 2 0 0 1-2 2H3v2h1a2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h2v-2H8v-5a2 2 0 0 0-2-2a2 2 0 0 0 2-2V5h2V3m6 0a2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h1v2h-1a2 2 0 0 0-2 2v4a2 2 0 0 1-2 2h-2v-2h2v-5a2 2 0 0 1 2-2a2 2 0 0 1-2-2V5h-2V3z\"/>" },
33
+ "code-brackets": { "body": "<path fill=\"currentColor\" d=\"M15 4v2h3v12h-3v2h5V4M4 4v16h5v-2H6V6h3V4z\"/>" },
34
+ "cog": { "body": "<path fill=\"currentColor\" d=\"M12 15.5A3.5 3.5 0 0 1 8.5 12A3.5 3.5 0 0 1 12 8.5a3.5 3.5 0 0 1 3.5 3.5a3.5 3.5 0 0 1-3.5 3.5m7.43-2.53c.04-.32.07-.64.07-.97s-.03-.66-.07-1l2.11-1.63c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.31-.61-.22l-2.49 1c-.52-.39-1.06-.73-1.69-.98l-.37-2.65A.506.506 0 0 0 14 2h-4c-.25 0-.46.18-.5.42l-.37 2.65c-.63.25-1.17.59-1.69.98l-2.49-1c-.22-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64L4.57 11c-.04.34-.07.67-.07 1s.03.65.07.97l-2.11 1.66c-.19.15-.25.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1.01c.52.4 1.06.74 1.69.99l.37 2.65c.04.24.25.42.5.42h4c.25 0 .46-.18.5-.42l.37-2.65c.63-.26 1.17-.59 1.69-.99l2.49 1.01c.22.08.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64z\"/>" },
35
+ "connection": { "body": "<path fill=\"currentColor\" d=\"M21.4 7.5c.8.8.8 2.1 0 2.8l-2.8 2.8l-7.8-7.8l2.8-2.8c.8-.8 2.1-.8 2.8 0l1.8 1.8l3-3l1.4 1.4l-3 3zm-5.8 5.8l-1.4-1.4l-2.8 2.8l-2.1-2.1l2.8-2.8l-1.4-1.4l-2.8 2.8l-1.5-1.4l-2.8 2.8c-.8.8-.8 2.1 0 2.8l1.8 1.8l-4 4l1.4 1.4l4-4l1.8 1.8c.8.8 2.1.8 2.8 0l2.8-2.8l-1.4-1.4z\"/>" },
36
+ "currency-usd": { "body": "<path fill=\"currentColor\" d=\"M7 15h2c0 1.08 1.37 2 3 2s3-.92 3-2c0-1.1-1.04-1.5-3.24-2.03C9.64 12.44 7 11.78 7 9c0-1.79 1.47-3.31 3.5-3.82V3h3v2.18C15.53 5.69 17 7.21 17 9h-2c0-1.08-1.37-2-3-2s-3 .92-3 2c0 1.1 1.04 1.5 3.24 2.03C14.36 11.56 17 12.22 17 15c0 1.79-1.47 3.31-3.5 3.82V21h-3v-2.18C8.47 18.31 7 16.79 7 15\"/>" },
37
+ "database": { "body": "<path fill=\"currentColor\" d=\"M12 3C7.58 3 4 4.79 4 7s3.58 4 8 4s8-1.79 8-4s-3.58-4-8-4M4 9v3c0 2.21 3.58 4 8 4s8-1.79 8-4V9c0 2.21-3.58 4-8 4s-8-1.79-8-4m0 5v3c0 2.21 3.58 4 8 4s8-1.79 8-4v-3c0 2.21-3.58 4-8 4s-8-1.79-8-4\"/>" },
38
+ "database-cog": { "body": "<path fill=\"currentColor\" d=\"M4 7c0-2.21 3.58-4 8-4s8 1.79 8 4s-3.58 4-8 4s-8-1.79-8-4m8.08 11H12c-4.42 0-8-1.79-8-4v3c0 2.21 3.58 4 8 4h.29a7.4 7.4 0 0 1-.29-2c0-.34.03-.67.08-1M20 12.08V9c0 2.21-3.58 4-8 4s-8-1.79-8-4v3c0 2.21 3.58 4 8 4h.69c1.13-2.37 3.53-4 6.31-4c.34 0 .67.03 1 .08m3.8 8.32c.1 0 .1.1 0 .2l-1 1.7c-.1.1-.2.1-.3.1l-1.2-.4c-.3.2-.5.3-.8.5l-.2 1.3c0 .1-.1.2-.2.2h-2c-.1 0-.2-.1-.3-.2l-.2-1.3c-.3-.1-.6-.3-.8-.5l-1.2.5c-.1 0-.2 0-.3-.1l-1-1.7c-.1-.1 0-.2.1-.3l1.1-.8v-1l-1.1-.8c-.1-.1-.1-.2-.1-.3l1-1.7c.1-.1.2-.1.3-.1l1.2.5c.3-.2.5-.3.8-.5l.2-1.3c0-.1.1-.2.3-.2h2c.1 0 .2.1.2.2l.2 1.3c.3.1.6.3.9.5l1.2-.5c.1 0 .3 0 .3.1l1 1.7c.1.1 0 .2-.1.3l-1.1.8v1zM20.5 19c0-.8-.7-1.5-1.5-1.5s-1.5.7-1.5 1.5s.7 1.5 1.5 1.5s1.5-.7 1.5-1.5\"/>" },
39
+ "download-outline": { "body": "<path fill=\"currentColor\" d=\"M13 5v6h1.17L12 13.17L9.83 11H11V5zm2-2H9v6H5l7 7l7-7h-4zm4 15H5v2h14z\"/>" },
40
+ "eye-off": { "body": "<path fill=\"currentColor\" d=\"M11.83 9L15 12.16V12a3 3 0 0 0-3-3zm-4.3.8l1.55 1.55c-.05.21-.08.42-.08.65a3 3 0 0 0 3 3c.22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53a5 5 0 0 1-5-5c0-.79.2-1.53.53-2.2M2 4.27l2.28 2.28l.45.45C3.08 8.3 1.78 10 1 12c1.73 4.39 6 7.5 11 7.5c1.55 0 3.03-.3 4.38-.84l.43.42L19.73 22L21 20.73L3.27 3M12 7a5 5 0 0 1 5 5c0 .64-.13 1.26-.36 1.82l2.93 2.93c1.5-1.25 2.7-2.89 3.43-4.75c-1.73-4.39-6-7.5-11-7.5c-1.4 0-2.74.25-4 .7l2.17 2.15C10.74 7.13 11.35 7 12 7\"/>" },
41
+ "file-delimited": { "body": "<path fill=\"currentColor\" d=\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8zm1 14l-2 4h-3l2-4H9v-5h6zm-2-7V3.5L18.5 9z\"/>" },
42
+ "file-document-multiple-outline": { "body": "<path fill=\"currentColor\" d=\"M16 0H8C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6zm4 18H8V2h7v5h5zM4 4v18h16v2H4c-1.1 0-2-.9-2-2V4zm6 6v2h8v-2zm0 4v2h5v-2z\"/>" },
43
+ "folder-outline": { "body": "<path fill=\"currentColor\" d=\"M20 18H4V8h16m0-2h-8l-2-2H4c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2\"/>" },
44
+ "format-text": { "body": "<path fill=\"currentColor\" d=\"m18.5 4l1.16 4.35l-.96.26c-.45-.87-.91-1.74-1.44-2.18C16.73 6 16.11 6 15.5 6H13v10.5c0 .5 0 1 .33 1.25c.34.25 1 .25 1.67.25v1H9v-1c.67 0 1.33 0 1.67-.25c.33-.25.33-.75.33-1.25V6H8.5c-.61 0-1.23 0-1.76.43c-.53.44-.99 1.31-1.44 2.18l-.96-.26L5.5 4z\"/>" },
45
+ "function-variant": { "body": "<path fill=\"currentColor\" d=\"M12.42 5.29c-1.1-.1-2.07.71-2.17 1.82L10 10h2.82v2h-3l-.44 5.07A4.001 4.001 0 0 1 2 18.83l1.5-1.5c.33 1.05 1.46 1.64 2.5 1.3c.78-.24 1.33-.93 1.4-1.74L7.82 12h-3v-2H8l.27-3.07a4.01 4.01 0 0 1 4.33-3.65c1.26.11 2.4.81 3.06 1.89l-1.5 1.5c-.25-.77-.93-1.31-1.74-1.38M22 13.65l-1.41-1.41l-2.83 2.83l-2.83-2.83l-1.43 1.41l2.85 2.85l-2.85 2.81l1.43 1.41l2.83-2.83l2.83 2.83L22 19.31l-2.83-2.81z\"/>" },
46
+ "handshake": { "body": "<path fill=\"currentColor\" d=\"M11 6h3l3.29-3.3a1 1 0 0 1 1.42 0l2.58 2.59a1 1 0 0 1 0 1.41L19 9h-8v2a1 1 0 0 1-1 1a1 1 0 0 1-1-1V8a2 2 0 0 1 2-2m-6 5v4l-2.29 2.29a1 1 0 0 0 0 1.41l2.58 2.59a1 1 0 0 0 1.42 0L11 17h4a1 1 0 0 0 1-1v-1h1a1 1 0 0 0 1-1v-1h1a1 1 0 0 0 1-1v-1h-7v1a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V9Z\"/>" },
47
+ "help-circle-outline": { "body": "<path fill=\"currentColor\" d=\"M11 18h2v-2h-2zm1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2a2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4\"/>" },
48
+ "lifebuoy": { "body": "<path fill=\"currentColor\" d=\"M19.79 15.41c.95-2.17.95-4.66 0-6.82l-2.74 1.24c.6 1.38.6 2.95.01 4.34zm-4.37-11.2a8.54 8.54 0 0 0-6.83 0l1.24 2.73c1.39-.59 2.96-.59 4.35.01zM4.21 8.58a8.56 8.56 0 0 0 0 6.84l2.74-1.25c-.6-1.38-.6-2.96 0-4.35zm4.38 11.21a8.5 8.5 0 0 0 6.83-.01l-1.24-2.73a5.5 5.5 0 0 1-4.34.01zM12 2a10 10 0 0 1 10 10a10 10 0 0 1-10 10A10 10 0 0 1 2 12A10 10 0 0 1 12 2m0 6a4 4 0 0 0-4 4a4 4 0 0 0 4 4a4 4 0 0 0 4-4a4 4 0 0 0-4-4\"/>" },
49
+ "lightning-bolt": { "body": "<path fill=\"currentColor\" d=\"M11 15H6l7-14v8h5l-7 14z\"/>" },
50
+ "loading": { "body": "<path fill=\"currentColor\" d=\"M12 4V2A10 10 0 0 0 2 12h2a8 8 0 0 1 8-8\"/>" },
51
+ "magnify": { "body": "<path fill=\"currentColor\" d=\"M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5l-1.5 1.5l-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16A6.5 6.5 0 0 1 3 9.5A6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14S14 12 14 9.5S12 5 9.5 5\"/>" },
52
+ "message-text": { "body": "<path fill=\"currentColor\" d=\"M20 2H4a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2M6 9h12v2H6m8 3H6v-2h8m4-4H6V6h12\"/>" },
53
+ "numeric": { "body": "<path fill=\"currentColor\" d=\"M4 17V9H2V7h4v10zm18-2a2 2 0 0 1-2 2h-4v-2h4v-2h-2v-2h2V9h-4V7h4a2 2 0 0 1 2 2v1.5a1.5 1.5 0 0 1-1.5 1.5a1.5 1.5 0 0 1 1.5 1.5zm-8 0v2H8v-4a2 2 0 0 1 2-2h2V9H8V7h4a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-2v2z\"/>" },
54
+ "pencil": { "body": "<path fill=\"currentColor\" d=\"M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83l3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75z\"/>" },
55
+ "play": { "body": "<path fill=\"currentColor\" d=\"M8 5.14v14l11-7z\"/>" },
56
+ "play-circle-outline": { "body": "<path fill=\"currentColor\" d=\"M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m-2 14.5l6-4.5l-6-4.5z\"/>" },
57
+ "plus": { "body": "<path fill=\"currentColor\" d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z\"/>" },
58
+ "power": { "body": "<path fill=\"currentColor\" d=\"m16.56 5.44l-1.45 1.45A5.97 5.97 0 0 1 18 12a6 6 0 0 1-6 6a6 6 0 0 1-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 5.44A7.96 7.96 0 0 0 4 12a8 8 0 0 0 8 8a8 8 0 0 0 8-8c0-2.72-1.36-5.12-3.44-6.56M13 3h-2v10h2\"/>" },
59
+ "power-off": { "body": "<path fill=\"currentColor\" d=\"M12 3a9 9 0 0 0-9 9a9 9 0 0 0 9 9a9 9 0 0 0 9-9a9 9 0 0 0-9-9m0 16a7 7 0 0 1-7-7a7 7 0 0 1 7-7a7 7 0 0 1 7 7a7 7 0 0 1-7 7\"/>" },
60
+ "puzzle": { "body": "<path fill=\"currentColor\" d=\"M20.5 11H19V7a2 2 0 0 0-2-2h-4V3.5A2.5 2.5 0 0 0 10.5 1A2.5 2.5 0 0 0 8 3.5V5H4a2 2 0 0 0-2 2v3.8h1.5c1.5 0 2.7 1.2 2.7 2.7S5 16.2 3.5 16.2H2V20a2 2 0 0 0 2 2h3.8v-1.5c0-1.5 1.2-2.7 2.7-2.7s2.7 1.2 2.7 2.7V22H17a2 2 0 0 0 2-2v-4h1.5a2.5 2.5 0 0 0 2.5-2.5a2.5 2.5 0 0 0-2.5-2.5\"/>" },
61
+ "puzzle-outline": { "body": "<path fill=\"currentColor\" d=\"M22 13.5c0 1.76-1.3 3.22-3 3.46V20a2 2 0 0 1-2 2h-3.8v-.3a2.7 2.7 0 0 0-2.7-2.7c-1.5 0-2.7 1.21-2.7 2.7v.3H4a2 2 0 0 1-2-2v-3.8h.3C3.79 16.2 5 15 5 13.5s-1.21-2.7-2.7-2.7H2V7a2 2 0 0 1 2-2h3.04c.24-1.7 1.7-3 3.46-3s3.22 1.3 3.46 3H17a2 2 0 0 1 2 2v3.04c1.7.24 3 1.7 3 3.46M17 15h1.5a1.5 1.5 0 0 0 1.5-1.5a1.5 1.5 0 0 0-1.5-1.5H17V7h-5V5.5A1.5 1.5 0 0 0 10.5 4A1.5 1.5 0 0 0 9 5.5V7H4v2.12c1.76.68 3 2.38 3 4.38s-1.25 3.7-3 4.38V20h2.12a4.7 4.7 0 0 1 4.38-3c2 0 3.7 1.25 4.38 3H17z\"/>" },
62
+ "refresh": { "body": "<path fill=\"currentColor\" d=\"M17.65 6.35A7.96 7.96 0 0 0 12 4a8 8 0 0 0-8 8a8 8 0 0 0 8 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18a6 6 0 0 1-6-6a6 6 0 0 1 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z\"/>" },
63
+ "robot": { "body": "<path fill=\"currentColor\" d=\"M12 2a2 2 0 0 1 2 2c0 .74-.4 1.39-1 1.73V7h1a7 7 0 0 1 7 7h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-1H2a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1a7 7 0 0 1 7-7h1V5.73c-.6-.34-1-.99-1-1.73a2 2 0 0 1 2-2M7.5 13A2.5 2.5 0 0 0 5 15.5A2.5 2.5 0 0 0 7.5 18a2.5 2.5 0 0 0 2.5-2.5A2.5 2.5 0 0 0 7.5 13m9 0a2.5 2.5 0 0 0-2.5 2.5a2.5 2.5 0 0 0 2.5 2.5a2.5 2.5 0 0 0 2.5-2.5a2.5 2.5 0 0 0-2.5-2.5\"/>" },
64
+ "server": { "body": "<path fill=\"currentColor\" d=\"M4 1h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1m0 8h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1m0 8h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1M9 5h1V3H9zm0 8h1v-2H9zm0 8h1v-2H9zM5 3v2h2V3zm0 8v2h2v-2zm0 8v2h2v-2z\"/>" },
65
+ "skip-next": { "body": "<path fill=\"currentColor\" d=\"M16 18h2V6h-2M6 18l8.5-6L6 6z\"/>" },
66
+ "stop-circle-outline": { "body": "<path fill=\"currentColor\" d=\"M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 2c4.41 0 8 3.59 8 8s-3.59 8-8 8s-8-3.59-8-8s3.59-8 8-8M9 9v6h6V9\"/>" },
67
+ "store": { "body": "<path fill=\"currentColor\" d=\"M12 18H6v-4h6m9 0v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6m0-10H4v2h16z\"/>" },
68
+ "store-plus": { "body": "<path fill=\"currentColor\" d=\"M4 4v2h16V4M4 7l-1 5v2h1v6h9c-.05-.34-.08-.69-.08-1.05c0-1.22.38-2.42 1.08-3.42V14h1.54c1-.67 2.17-1.04 3.37-1.04c.71 0 1.42.13 2.09.38V12l-1-5M6 14h6v4H6m12-3v3h-3v2h3v3h2v-3h3v-2h-3v-3\"/>" },
69
+ "subdirectory-arrow-right": { "body": "<path fill=\"currentColor\" d=\"m19 15l-6 6l-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9z\"/>" },
70
+ "tag-outline": { "body": "<path fill=\"currentColor\" d=\"m21.41 11.58l-9-9A2 2 0 0 0 11 2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 .59 1.42l9 9A2 2 0 0 0 13 22a2 2 0 0 0 1.41-.59l7-7A2 2 0 0 0 22 13a2 2 0 0 0-.59-1.42M13 20l-9-9V4h7l9 9M6.5 5A1.5 1.5 0 1 1 5 6.5A1.5 1.5 0 0 1 6.5 5\"/>" },
71
+ "timer-off-outline": { "body": "<path fill=\"currentColor\" d=\"M12 20a7 7 0 0 1-7-7c0-1.28.35-2.5.95-3.5l9.55 9.54c-1 .61-2.22.96-3.5.96M3 4L1.75 5.27L4.5 8.03A8.9 8.9 0 0 0 3 13a9 9 0 0 0 9 9c1.84 0 3.55-.55 5-1.5l2.5 2.5l1.25-1.27L13.04 14zm8 5.44l2 2V8h-2m4-7H9v2h6m4.04 1.55l-1.42 1.42A9 9 0 0 0 12 4c-1.83 0-3.53.55-4.95 1.5L8.5 6.94C9.53 6.35 10.73 6 12 6a7 7 0 0 1 7 7c0 1.27-.35 2.47-.94 3.5l1.44 1.44c.95-1.41 1.5-3.11 1.5-4.94c0-2.12-.74-4.07-1.97-5.61l1.42-1.42z\"/>" },
72
+ "timer-sand": { "body": "<path fill=\"currentColor\" d=\"M6 2h12v6l-4 4l4 4v6H6v-6l4-4l-4-4zm10 14.5l-4-4l-4 4V20h8zm-4-5l4-4V4H8v3.5zM10 6h4v.75l-2 2l-2-2z\"/>" },
73
+ "toggle-switch-outline": { "body": "<path fill=\"currentColor\" d=\"M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6m0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4m0-7c-1.66 0-3 1.34-3 3s1.34 3 3 3s3-1.34 3-3s-1.34-3-3-3\"/>" },
74
+ "upload": { "body": "<path fill=\"currentColor\" d=\"M9 16v-6H5l7-7l7 7h-4v6zm-4 4v-2h14v2z\"/>" },
75
+ "view-grid": { "body": "<path fill=\"currentColor\" d=\"M3 11h8V3H3m0 18h8v-8H3m10 8h8v-8h-8m0-10v8h8V3\"/>" },
76
+ "workflow": { "body": "<path fill=\"currentColor\" d=\"M9 2v6h2v3H5c-1.11 0-2 .89-2 2v3H1v6h6v-6H5v-3h6v3H9v6h6v-6h-2v-3h6v3h-2v6h6v-6h-2v-3c0-1.11-.89-2-2-2h-6V8h2V2z\"/>" }
77
+ }
78
+ };
79
+
80
+ // src/icons/offline-icons.ts
81
+ let registered = false;
82
+ /**
83
+ * Registers the bundled Material Design Icons with the online
84
+ * `@iconify/react` build, so shared components that still use it (the
85
+ * builder's node cards that the template preview reuses) draw those icons
86
+ * from the bundle instead of fetching them from the public Iconify API
87
+ * (api.iconify.design). Safe to call more than once.
88
+ *
89
+ * Gallery surfaces do not depend on this: they draw through `OfflineIcon`,
90
+ * which never reaches the API at all.
91
+ */
92
+ function registerOfflineIcons() {
93
+ if (registered) return;
94
+ registered = addCollection(OFFLINE_MDI_ICONS);
95
+ }
96
+ const OFFLINE_PREFIX = `${OFFLINE_MDI_ICONS.prefix}:`;
97
+ /**
98
+ * True when `name` (a full Iconify name such as `mdi:store`) is in the
99
+ * bundled set, so `OfflineIcon` can draw it without a network request.
100
+ */
101
+ function hasOfflineIcon(name) {
102
+ if (!name.startsWith(OFFLINE_PREFIX)) return false;
103
+ return Object.hasOwn(OFFLINE_MDI_ICONS.icons, name.slice(OFFLINE_PREFIX.length));
104
+ }
105
+ /**
106
+ * The store icon candidates `OfflineIcon` can draw: every image, plus the
107
+ * Iconify names in the bundled set. Names outside it are dropped, so a store
108
+ * surface in offline mode moves on to its next candidate or its fallback.
109
+ */
110
+ function offlineCandidates(candidates) {
111
+ return candidates.filter((candidate) => candidate.kind !== "icon" || hasOfflineIcon(candidate.name));
112
+ }
113
+
114
+ // src/icons/OfflineIcon.tsx
115
+ addCollection$1(OFFLINE_MDI_ICONS);
116
+ function OfflineIcon({ icon, fallback = null, ...props }) {
117
+ if (!hasOfflineIcon(icon)) return /* @__PURE__ */ jsx(Fragment, { children: fallback });
118
+ return /* @__PURE__ */ jsx(Icon$1, {
119
+ icon,
120
+ ...props
121
+ });
122
+ }
123
+
124
+ export { offlineCandidates as n, registerOfflineIcons as r, OfflineIcon as t };
@@ -5,11 +5,11 @@ import { t as describeOperationError } from "./errors-xPZ-IbQd.js";
5
5
  import { t as downloadBlob } from "./workflow-transfer-390a-CK8.js";
6
6
  import { i as buildTemplateCodeDownload, s as readTemplateCode } from "./template-code-xlEMDtL8.js";
7
7
  import { useState } from "react";
8
- import { Icon } from "@iconify/react";
9
8
  import { cn } from "@burdenoff/fe-libs/utils";
10
9
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
10
  import { toast } from "sonner";
12
11
  import { Button } from "@burdenoff/fe-libs/ui";
12
+ import { Code } from "lucide-react";
13
13
 
14
14
  // src/components/OpenTemplateAsCodeButton.tsx
15
15
  /**
@@ -84,9 +84,9 @@ function OpenTemplateAsCode({ templateName, code, className, save = downloadBlob
84
84
  className: cn("gap-2", className),
85
85
  "data-testid": "fluidgrids-template-open-as-code",
86
86
  title: tr("fluidgrids.templates.openAsCode.hint", "Download this template as a FluidGrids project ({{count}} files)", { count: String(code.files.length) }),
87
- children: [/* @__PURE__ */ jsx(Icon, {
88
- icon: "mynaui:code",
89
- className: "size-4"
87
+ children: [/* @__PURE__ */ jsx(Code, {
88
+ className: "size-4",
89
+ "aria-hidden": "true"
90
90
  }), tr("fluidgrids.templates.openAsCode.button", "Open as code")]
91
91
  });
92
92
  }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { n as formatTemplatePrice } from "./TemplateCard-CA4tMUzN.js";
3
+ import { n as formatTemplatePrice } from "./TemplateCard-DlXp6fsq.js";
4
4
  import { t as ConfirmActionDialog } from "./ConfirmActionDialog-D9Pir3bc.js";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
 
@@ -8,7 +8,7 @@ import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
8
8
  import { t as ConfirmActionDialog } from "./ConfirmActionDialog-D9Pir3bc.js";
9
9
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
10
10
  import { t as RunActionsMenu } from "./RunActionsMenu-BZY4NreS.js";
11
- import { t as TechnicalDetails } from "./TechnicalDetails-r5JXr1jZ.js";
11
+ import { t as TechnicalDetails } from "./TechnicalDetails-CMZwijEM.js";
12
12
  import { useCallback, useRef, useState } from "react";
13
13
  import { Icon } from "@iconify/react";
14
14
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -11,11 +11,11 @@ import { d as useFluidGridsFlag, m as usePhaseCFlags, t as FLUIDGRIDS_FLAGS, u a
11
11
  import { aL as WorkflowSecuritySeverity, iL as WorkflowSecurityCheck, rL as WorkflowSearchAttributeType } from "./graphql-types-BjCOnRUQ.js";
12
12
  import { M as saveCodecServerSettings, _ as fetchPauseRules, a as createPauseRule, c as deletePauseRule, f as fetchArchiveSettings, g as fetchCodecServerSettings, j as saveArchiveSettings, l as deleteSearchAttribute, o as createSearchAttribute, r as clearArchiveSettings, x as fetchSearchAttributes } from "./api-o5UUDbr8.js";
13
13
  import { i as NativeSelect, o as StatusPill, t as FieldError, u as useResource } from "./shared-mbyvDPde.js";
14
- import { A as useFlowStore } from "./node-operation-selection-DHbtGNrG.js";
15
- import { Dt as useSaveStatusStore, Zt as findSaveConflict } from "./FluidGridsProvider-64qAUX4Y.js";
16
- import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-CkNAUULL.js";
14
+ import { A as useFlowStore } from "./node-operation-selection-DCJ_DDHr.js";
15
+ import { Dt as useSaveStatusStore, Zt as findSaveConflict } from "./FluidGridsProvider-CaOI_H63.js";
16
+ import { a as useLogStreamDestinations, i as useLogStreamDestinationActions } from "./useObservability-DadWpUTF.js";
17
17
  import { r as useConnections } from "./useConnections-CmnwGk09.js";
18
- import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-dpKr9Mee.js";
18
+ import { Nt as useUpdateWorkflowDefinitionMutation, Rt as useWorkflowDefinitionQuery, Vt as useWorkflowDefinitionsQuery, n as useAgentDefinitions } from "./useAgentDefinitions-tsGlUO4v.js";
19
19
  import { a as formToInput$2, i as emptyAgentForm, n as agentToForm, o as grantDays, r as describeRule, t as AgentFormError } from "./agent-form-D0uLvzx4.js";
20
20
  import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
21
21
  import { n as getGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
3
- import { t as Disclosure } from "./Disclosure-CsxDspR7.js";
3
+ import { t as Disclosure } from "./Disclosure-PfrdUKIg.js";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
 
6
6
  // src/modules/executions/components/TechnicalDetails.tsx
@@ -3,9 +3,9 @@ import { r as getFluidGridsConfig } from "./config-X97zrIvn.js";
3
3
  import { o as throwIfResultError } from "./errors-xPZ-IbQd.js";
4
4
  import { n as getFluidGridsClient } from "./client-Ctl4jmY3.js";
5
5
  import { n as getGlobalStoreClient } from "./global-client-DP_Wxe5t.js";
6
- import { c as ensureInstalledNodeTypesLoaded, f as ensureRegistryNodeTypesLoaded, fn as useFluidGridsAnalytics, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, x as GetMyNodeInstallationsDocument } from "./FluidGridsProvider-64qAUX4Y.js";
6
+ import { c as ensureInstalledNodeTypesLoaded, f as ensureRegistryNodeTypesLoaded, fn as useFluidGridsAnalytics, i as AVAILABLE_NODES, o as NODE_CONFIGS, t as FluidGridsContext, x as GetMyNodeInstallationsDocument } from "./FluidGridsProvider-CaOI_H63.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
- import { n as storeIconCandidates, t as StoreIcon } from "./store-icon-BOiBSHY6.js";
8
+ import { n as storeIconCandidates, t as StoreIcon } from "./store-icon-CVt10XSp.js";
9
9
  import { o as isNodeTypeHiddenFromPalette } from "./durable-nodes-DXCCQYWD.js";
10
10
  import { h as usePhaseDFlags } from "./feature-flags-B_b8PJ6Z.js";
11
11
  import { c as isQuotaExhaustedFailure } from "./quota-Cdt8yz7N.js";
@@ -14,10 +14,10 @@ import { n as InstallWorkflowNodeDocument } from "./global-operations-7pvXw_j9.j
14
14
  import { t as cn } from "./cn-QqidFIgr.js";
15
15
  import { t as Button } from "./button-DG7y_FVJ.js";
16
16
  import { i as SdkPermissionButton, t as FLUIDGRIDS_PERMISSIONS } from "./constants-65QV61nQ.js";
17
- import { t as useGlobalStoreClient } from "./useGlobalStoreClient-iCPQeryK.js";
17
+ import { t as useGlobalStoreClient } from "./useGlobalStoreClient-ZLYG_Xls.js";
18
18
  import { c as templateInstallSource } from "./template-code-xlEMDtL8.js";
19
19
  import { t as Badge } from "./badge-CXfPhoMH.js";
20
- import { t as templatePreviewCandidates } from "./template-preview-BpP8QMAe.js";
20
+ import { t as templatePreviewCandidates } from "./template-preview-ByYgTYSz.js";
21
21
  import { n as useNavigationV2 } from "./useNavigationV2-C2WeqN7d.js";
22
22
  import { Suspense, forwardRef, lazy, useCallback, useContext, useMemo, useState } from "react";
23
23
  import { useQuery } from "@apollo/client/react";
@@ -1657,7 +1657,7 @@ async function dismissToastWhenShown(id) {
1657
1657
  }
1658
1658
 
1659
1659
  // src/hooks/store/useTemplateImportFlow.tsx
1660
- const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-CObP8Po7.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1660
+ const LazyTemplateConfigurationModal = lazy(() => import("./TemplateConfigurationModal-kuykSUNk.js").then((m) => ({ default: m.TemplateConfigurationModal })));
1661
1661
  /**
1662
1662
  * "Use this template", the same everywhere it is offered: the builder's
1663
1663
  * template panel, the Templates page and the template preview page
@@ -1924,7 +1924,8 @@ function TemplateCard({ template, onClick, onUseTemplate }) {
1924
1924
  imageClassName: "w-full h-full group-hover:scale-110 transition-transform duration-300",
1925
1925
  iconClassName: "text-primary/60",
1926
1926
  iconSize: 64,
1927
- fallback: /* @__PURE__ */ jsx(Sparkles, { className: "size-16 text-primary/30" })
1927
+ fallback: /* @__PURE__ */ jsx(Sparkles, { className: "size-16 text-primary/30" }),
1928
+ offline: true
1928
1929
  })
1929
1930
  }),
1930
1931
  template.featured && /* @__PURE__ */ jsx("div", {
@@ -5,7 +5,7 @@ import { t as Button } from "./button-DG7y_FVJ.js";
5
5
  import { t as Badge } from "./badge-CXfPhoMH.js";
6
6
  import { t as Label } from "./label-BMVzJ2yW.js";
7
7
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
8
- import { t as OpenTemplateAsCodeButton } from "./OpenTemplateAsCodeButton-DCEbeUb5.js";
8
+ import { t as OpenTemplateAsCodeButton } from "./OpenTemplateAsCodeButton-DpOFXUOn.js";
9
9
  import { useEffect, useMemo, useState } from "react";
10
10
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
11
  import { AlertTriangle, CheckCircle2, Download, ExternalLink, KeyRound, Loader2, ShoppingCart, Sparkles } from "lucide-react";