@burdenoff/fluidgrids-fe-sdk 2026.1111.20 → 2026.1111.21

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 (49) hide show
  1. package/dist/{AiStudioPage-CmjZwaoy.js → AiStudioPage-CJdzRL26.js} +4 -4
  2. package/dist/{DataSinkDashboardPage-auvILMSt.js → DataSinkDashboardPage-hrwQSvks.js} +1 -1
  3. package/dist/{ExecutionDetailPage-C0q5brcQ.js → ExecutionDetailPage-DKp421Fj.js} +60 -13
  4. package/dist/{ExecutionsListPage-Dcc6wi-8.js → ExecutionsListPage-DwJQfDPt.js} +4 -4
  5. package/dist/{FluidGridsProvider-CRGXDZX1.js → FluidGridsProvider-CbY91ZQq.js} +362 -97
  6. package/dist/{HistoryPage-B5Np7Dd_.js → HistoryPage-BLXZJDoJ.js} +1 -1
  7. package/dist/{InsightsPage-CQ8sB4d6.js → InsightsPage-ChnoW5U4.js} +1 -1
  8. package/dist/{MissingNodesInstallModal-Dm1m3Ysp.js → MissingNodesInstallModal-mYFfy9Gg.js} +1 -1
  9. package/dist/{QuotaExhaustedDialog-DYCpMOyQ.js → QuotaExhaustedDialog-DWm_YWL7.js} +1 -1
  10. package/dist/{SettingsPage-BNJV7nwG.js → SettingsPage-CXoKX0px.js} +2 -2
  11. package/dist/{TemplateCard-BuP6_QX8.js → TemplateCard-HIMsb47R.js} +2 -2
  12. package/dist/{TemplateConfigurationModal--YswnkOD.js → TemplateConfigurationModal-BNtbJ2fv.js} +1 -1
  13. package/dist/{TemplateDetailPanel-CtUjihCQ.js → TemplateDetailPanel-C6Zh2WRF.js} +1 -1
  14. package/dist/{TemplatePreview-TH3zVEtT.js → TemplatePreview-_wUMSwh_.js} +3 -3
  15. package/dist/{TemplatesPage-BDiIswSv.js → TemplatesPage-DBfL-ao9.js} +4 -4
  16. package/dist/{WorkflowBuilder-DnTqzYD5.js → WorkflowBuilder-CMZi6wQE.js} +7 -7
  17. package/dist/{WorkflowBuilder-KypUzhmK.js → WorkflowBuilder-CYmpQtIQ.js} +3 -3
  18. package/dist/{WorkflowSearchRedirect-DAA2K0Md.js → WorkflowSearchRedirect-iWzvY9Qo.js} +1 -1
  19. package/dist/{WorkflowsList-BWdu8wj0.js → WorkflowsList-C8aoqtRE.js} +5 -5
  20. package/dist/{agentTools-VQXDvw4O.js → agentTools-CrEWQ5st.js} +3 -4
  21. package/dist/askAboutBridge-BV8m95kk.js +65 -0
  22. package/dist/assistant.d.ts +30 -1
  23. package/dist/assistant.js +2 -1
  24. package/dist/{canvasNoteTools-CCQtxq7U.js → canvasNoteTools-6BQYNCee.js} +2 -2
  25. package/dist/{code-editor-field-4j1LiULY.js → code-editor-field-CoRq10k7.js} +1 -1
  26. package/dist/executions.js +2 -2
  27. package/dist/{flow-builder-KbM4vIW8.js → flow-builder-Dwev-C_g.js} +11 -11
  28. package/dist/history.js +1 -1
  29. package/dist/index.js +24 -24
  30. package/dist/{node-detail-view-CeOkSF2C.js → node-detail-view-BFBSKj5w.js} +5 -5
  31. package/dist/{node-editor-tab-body-CN89wDV7.js → node-editor-tab-body-Cz9kOlxu.js} +2 -2
  32. package/dist/observability.js +2 -2
  33. package/dist/{popover-CxKbvYSJ.js → popover-xPh0iIzy.js} +1 -1
  34. package/dist/{quick-config-panel-wfP0s4QO.js → quick-config-panel-Ym05lyGn.js} +3 -3
  35. package/dist/{schedule-panel-2HgyHvO8.js → schedule-panel-54D5W5Qk.js} +4 -4
  36. package/dist/settings.js +1 -1
  37. package/dist/{sidebar-node-editor-DLOVQATw.js → sidebar-node-editor-LL3ofDN7.js} +3 -3
  38. package/dist/templates.js +2 -2
  39. package/dist/{useDurableParity-CJvnfF3T.js → useDurableParity-BScby67i.js} +1 -1
  40. package/dist/{useExecutions-CyXkJtpk.js → useExecutions-B0VzQcY2.js} +1 -1
  41. package/dist/{useObservability-QZjFuXnI.js → useObservability-FfQGgW6W.js} +1 -1
  42. package/dist/{useRunHistory-D4gaa81A.js → useRunHistory-BZJg72kd.js} +1 -1
  43. package/dist/{useWorkflowCodeExport-BNGq3BJ9.js → useWorkflowCodeExport-CUWMlJbi.js} +1 -1
  44. package/dist/{useWorkflows-XsfD7JA-.js → useWorkflows-Czz5DlL0.js} +1 -1
  45. package/dist/workflow-builder.js +4 -4
  46. package/dist/workflow-pages.d.ts +1 -1
  47. package/dist/workflow-pages.js +13 -13
  48. package/dist/workflows-list.js +1 -1
  49. package/package.json +1 -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-KbM4vIW8.js";
5
- import { Et as classifyCreateRefusal, I as buildOperationSeed, Tt as builderPathOf, u as ensureNodeTypesLoaded } from "./FluidGridsProvider-CRGXDZX1.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-Dwev-C_g.js";
5
+ import { Ot as builderPathOf, kt as classifyCreateRefusal, u as ensureNodeTypesLoaded, z as buildOperationSeed } from "./FluidGridsProvider-CbY91ZQq.js";
6
6
  import { _ as throwIfResultError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
7
7
  import { a as notifyFluidGridsAiCreditsUpdated, t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
8
8
  import { Pr as WorkflowGenerationDocument, y as CancelWorkflowGenerationDocument, yt as GenerateWorkflowFromPromptDocument } from "./graphql-operation-types-kX-MMjgW.js";
9
- import { n as useCreateWorkflow } from "./useWorkflows-XsfD7JA-.js";
9
+ import { n as useCreateWorkflow } from "./useWorkflows-Czz5DlL0.js";
10
10
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
11
11
  import { f as BILLING_PLANS_PATH } from "./fluidgridsEvents-CNdcrUNN.js";
12
- import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-BNGq3BJ9.js";
12
+ import { T as CreateWorkflowRefusalDialog } from "./useWorkflowCodeExport-CUWMlJbi.js";
13
13
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
14
14
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
15
15
  import { useNavigate } from "react-router";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
4
- import { n as useDataSinks, t as useDataSinkData } from "./useObservability-QZjFuXnI.js";
4
+ import { n as useDataSinks, t as useDataSinkData } from "./useObservability-FfQGgW6W.js";
5
5
  import { s as prettyJson, t as formatBytes } from "./utils-uaL5UVxb.js";
6
6
  import { useEffect, useMemo, useState } from "react";
7
7
  import { Icon } from "@iconify/react";
@@ -1,11 +1,12 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
- import { i as useRunPending, n as useDurableParityRunFields, o as ExecutionStatusBadge, r as useRunMetadata, s as NodeStatusBadge, t as setRunVersioningOverride } from "./useDurableParity-CJvnfF3T.js";
3
+ import { i as useRunPending, n as useDurableParityRunFields, o as ExecutionStatusBadge, r as useRunMetadata, s as NodeStatusBadge, t as setRunVersioningOverride } from "./useDurableParity-BScby67i.js";
4
4
  import { n as formatRunVersion, r as nodeDisplayTitle, t as buildNodeDisplayMap } from "./run-display-BycKYSU0.js";
5
5
  import { r as useTr } from "./TranslationBridge-Da-TPgQm.js";
6
6
  import { s as isAgentNodeType } from "./agent-form-Bfvm32j1.js";
7
- import { Sn as durableInterfaceOf, Tn as runSignalTargets, an as nodeStateDurationMs, bn as canSignalRun, in as formatElapsedMs, on as runDurationMs } from "./FluidGridsProvider-CRGXDZX1.js";
8
- import { f as callbackTone, g as shortRunId, h as runChainLinks, m as parseMetadataDefinition, n as useExecution, p as overrideRequestOf, r as useExecutionActions, t as useAutoRefresh } from "./useExecutions-CyXkJtpk.js";
7
+ import { Cn as canSignalRun, I as describeRunError, L as describeRunStep, On as runSignalTargets, Tn as durableInterfaceOf, cn as nodeStateDurationMs, ln as runDurationMs, sn as formatElapsedMs } from "./FluidGridsProvider-CbY91ZQq.js";
8
+ import { n as useFgAskable, r as useFgAskableSelection } from "./askAboutBridge-BV8m95kk.js";
9
+ import { f as callbackTone, g as shortRunId, h as runChainLinks, m as parseMetadataDefinition, n as useExecution, p as overrideRequestOf, r as useExecutionActions, t as useAutoRefresh } from "./useExecutions-B0VzQcY2.js";
9
10
  import { _ as throwIfResultError, m as describeOperationError, n as getFluidGridsClient, r as getFluidGridsClientSafe, x as getFluidGridsConfig } from "./client-C9XSzSXr.js";
10
11
  import { Yr as WorkflowRunHierarchyDocument, dn as RunAiUsageDocument, o as AgentStepUpdatedDocument, s as AgentTraceDocument, ut as ExplainRunDocument, xn as RunLogsDocument, yn as RunLogAppendedDocument } from "./graphql-operation-types-kX-MMjgW.js";
11
12
  import { i as SdkPermissionButton, s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
@@ -15,14 +16,14 @@ import { a as encodedPayloadBytes, f as EffectBadge, h as useRunPolicyDecisions,
15
16
  import { n as useWorkflowProposal, o as canSaveRunAsTestCase, r as saveRunAsTestCase, t as WorkflowProposalCard } from "./WorkflowProposalCard-qrEeNyYG.js";
16
17
  import { t as AiCreditBalanceSlot } from "./aiCreditsBridge-BuE92tKo.js";
17
18
  import { a as fetchRunFailureClusters, i as dismissRunFailureCluster, r as OPEN_STATUSES, t as BUCKET_LABELS } from "./FailureTriagePanel-B9hDQymi.js";
18
- import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-D4gaa81A.js";
19
+ import { a as useDurableRunFields, i as useDeterminismStatus, n as SignalRunDialog, o as useRunStackTrace, r as terminateDurableRun, s as RunHistoryView, t as useRunHistory } from "./useRunHistory-BZJg72kd.js";
19
20
  import { $u as ErrorType, L as AgentStepKind, LF as WorkflowQueryRejectCondition, tI as WorkflowUpdateWaitFor, yP as VersioningBehavior } from "./graphql-types-CDKVWH2R.js";
20
21
  import { a as formatTokens, d as formatMicroUsd, o as modelLabel, r as aiCost } from "./ai-usage-glCwHyQz.js";
21
22
  import { c as useDurableParityEnabled, f as usePhaseCFlags, m as useWorkflowTestsEnabled, s as useDurableFunctionNodesEnabled } from "./feature-flags-DM5myWaD.js";
22
23
  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-BrCHB5oA.js";
23
24
  import { a as fetchTaskQueueStats } from "./api-C8e0iV-Q.js";
24
25
  import { a as RUN_CONTROL_DIALOG_STYLE, c as parseJsonInput, i as NativeSelect, l as parseJsonObjectInput, n as JsonBlock, o as StatusPill, r as JsonField, s as newRunControlId, t as FieldError, u as useResource } from "./shared-CMfn30xT.js";
25
- import { v as useWorkflowVersions } from "./useWorkflows-XsfD7JA-.js";
26
+ import { v as useWorkflowVersions } from "./useWorkflows-Czz5DlL0.js";
26
27
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
27
28
  import { Link, useNavigate, useParams, useSearchParams } from "react-router";
28
29
  import { Icon } from "@iconify/react";
@@ -243,6 +244,22 @@ function agentNodeTraces(nodeStates) {
243
244
  return (nodeStates ?? []).filter((node) => isAgentNodeType(node.nodeType)).map(parseAgentNodeState);
244
245
  }
245
246
 
247
+ // src/askAbout/Askable.tsx
248
+ const AskableDiv = ({ describe, askDisabled, ...rest }) => {
249
+ const ref = useFgAskable(describe, { disabled: askDisabled });
250
+ return /* @__PURE__ */ jsx("div", {
251
+ ref,
252
+ ...rest
253
+ });
254
+ };
255
+ const AskableSelectionDiv = ({ describe, ...rest }) => {
256
+ const ref = useFgAskableSelection(describe);
257
+ return /* @__PURE__ */ jsx("div", {
258
+ ref,
259
+ ...rest
260
+ });
261
+ };
262
+
246
263
  // src/modules/executions/components/NodeTimeline.tsx
247
264
  /**
248
265
  * Order nodes the way they actually executed.
@@ -271,7 +288,7 @@ function orderNodesByExecution(nodeStates, triggerNodeId) {
271
288
  return rankA === rankB ? 0 : rankA - rankB;
272
289
  });
273
290
  }
274
- function NodeTimeline({ nodeStates, nodeDisplay, loading, triggerNodeId, onRetryNode, onViewChildRun, onViewAgentTrace }) {
291
+ function NodeTimeline({ nodeStates, nodeDisplay, loading, triggerNodeId, onRetryNode, onViewChildRun, onViewAgentTrace, askRun }) {
275
292
  const tr = useTr();
276
293
  const [expandedNodes, setExpandedNodes] = useState(/* @__PURE__ */ new Set());
277
294
  const [selectedTab, setSelectedTab] = useState("output");
@@ -331,6 +348,17 @@ function NodeTimeline({ nodeStates, nodeDisplay, loading, triggerNodeId, onRetry
331
348
  const isRunning = node.status === "RUNNING";
332
349
  const isWaitingSubworkflow = node.status === "WAITING_SUBWORKFLOW";
333
350
  const hasChildRun = Boolean(node.childRunId);
351
+ const stepName = nodeDisplayTitle(nodeDisplay?.[node.nodeId], node.nodeId);
352
+ const describeStep = () => askRun ? describeRunStep({
353
+ run: askRun,
354
+ stepId: node.nodeId,
355
+ stepName,
356
+ stepType: node.nodeType,
357
+ stepVersion: node.nodeVersion,
358
+ status: node.status,
359
+ errorType: node.errorType,
360
+ error: nodeError
361
+ }) : null;
334
362
  return /* @__PURE__ */ jsxs("div", {
335
363
  className: "relative flex gap-4",
336
364
  children: [/* @__PURE__ */ jsxs("div", {
@@ -342,7 +370,10 @@ function NodeTimeline({ nodeStates, nodeDisplay, loading, triggerNodeId, onRetry
342
370
  className: "text-xs font-bold",
343
371
  children: index + 1
344
372
  }), isRunning && /* @__PURE__ */ jsx("span", { className: "absolute inset-0 rounded-full border-2 border-[var(--color-status-info-text)] animate-ping" })]
345
- }), /* @__PURE__ */ jsxs("div", {
373
+ }), /* @__PURE__ */ jsxs(AskableDiv, {
374
+ describe: describeStep,
375
+ askDisabled: !askRun,
376
+ "data-testid": "run-step-card",
346
377
  className: `
347
378
  flex-1 rounded-lg border transition-all
348
379
  ${hasError ? "bg-[var(--color-status-error-bg-subtle)] border-[var(--color-status-error-border)]" : isRunning ? "bg-[var(--color-status-info-bg-subtle)] border-[var(--color-status-info-border)]" : "bg-background-secondary border-border-secondary"}
@@ -429,7 +460,8 @@ function NodeTimeline({ nodeStates, nodeDisplay, loading, triggerNodeId, onRetry
429
460
  children: selectedTab === "output" ? formatJsonData(node.output) : formatJsonData(node.inputArgs)
430
461
  })
431
462
  }),
432
- node.error && /* @__PURE__ */ jsxs("div", {
463
+ node.error && /* @__PURE__ */ jsxs(AskableSelectionDiv, {
464
+ describe: describeStep,
433
465
  className: "mt-3 p-3 bg-[var(--color-status-error-bg-subtle)] border border-[var(--color-status-error-border)] rounded",
434
466
  children: [/* @__PURE__ */ jsxs("div", {
435
467
  className: "flex items-center gap-2 text-[var(--color-status-error-text)] mb-1",
@@ -6270,6 +6302,15 @@ function ExecutionDetailPage() {
6270
6302
  icon: "mdi:information-outline"
6271
6303
  }
6272
6304
  ];
6305
+ const askRun = {
6306
+ runId: execution.id,
6307
+ status: execution.status,
6308
+ workflowKey: execution.workflowKey,
6309
+ version: execution.version,
6310
+ errorType: execution.errorType ?? null,
6311
+ errorMessage: execution.errorMessage ?? null,
6312
+ failedSteps: execution.failedNodes
6313
+ };
6273
6314
  return /* @__PURE__ */ jsxs("div", {
6274
6315
  className: "p-4 pb-24 sm:p-6 sm:pb-24 bg-background-primary min-h-screen",
6275
6316
  children: [
@@ -6591,7 +6632,9 @@ function ExecutionDetailPage() {
6591
6632
  })
6592
6633
  ]
6593
6634
  }),
6594
- execution.errorMessage && /* @__PURE__ */ jsxs("div", {
6635
+ execution.errorMessage && /* @__PURE__ */ jsxs(AskableDiv, {
6636
+ describe: () => describeRunError(askRun),
6637
+ "data-testid": "run-error-banner",
6595
6638
  className: "mb-6 p-4 bg-[var(--color-status-error-bg-subtle)] border border-[var(--color-status-error-border)] rounded-lg",
6596
6639
  children: [/* @__PURE__ */ jsxs("div", {
6597
6640
  className: "flex items-center gap-2 text-[var(--color-status-error-text)] mb-2",
@@ -6602,9 +6645,12 @@ function ExecutionDetailPage() {
6602
6645
  className: "font-medium",
6603
6646
  children: [tr("fluidgrids.executions.executionDetail.errorLabel", "Error"), execution.errorType ? ` (${execution.errorType})` : ""]
6604
6647
  })]
6605
- }), /* @__PURE__ */ jsx("p", {
6606
- className: "text-[var(--color-status-error-text)]",
6607
- children: execution.errorMessage
6648
+ }), /* @__PURE__ */ jsx(AskableSelectionDiv, {
6649
+ describe: () => describeRunError(askRun),
6650
+ children: /* @__PURE__ */ jsx("p", {
6651
+ className: "text-[var(--color-status-error-text)]",
6652
+ children: execution.errorMessage
6653
+ })
6608
6654
  })]
6609
6655
  }),
6610
6656
  isDurableRun && /* @__PURE__ */ jsx(DurableDeterminismBanner, {
@@ -6717,7 +6763,8 @@ function ExecutionDetailPage() {
6717
6763
  triggerNodeId: execution.triggerNodeId ?? void 0,
6718
6764
  onRetryNode: canControlRuns ? handleRetryNode : void 0,
6719
6765
  onViewChildRun: handleViewChildRun,
6720
- onViewAgentTrace: (nodeId) => setActiveTab("agent", nodeId)
6766
+ onViewAgentTrace: (nodeId) => setActiveTab("agent", nodeId),
6767
+ askRun
6721
6768
  })
6722
6769
  }),
6723
6770
  activeTab === "agent" && hasAgent && /* @__PURE__ */ jsxs("div", {
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import { t as __exportAll } from "./rolldown-runtime-hDbaFkMy.js";
3
3
  import { M as DEFAULT_EXECUTIONS_FILTER, N as useExecutionsStore, m as describeOperationError, n as getFluidGridsClient } from "./client-C9XSzSXr.js";
4
- import { c as OPERATORS_BY_TYPE, i as useExecutionStats, l as buildSearchAttributeFilter, o as useExecutionsWithStore, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, y as validateDateRange } from "./useExecutions-CyXkJtpk.js";
4
+ import { c as OPERATORS_BY_TYPE, i as useExecutionStats, l as buildSearchAttributeFilter, o as useExecutionsWithStore, r as useExecutionActions, s as EMPTY_SEARCH_FILTER, t as useAutoRefresh, u as searchFilterConflicts, y as validateDateRange } from "./useExecutions-B0VzQcY2.js";
5
5
  import { c as useDurableParityEnabled, f as usePhaseCFlags } from "./feature-flags-DM5myWaD.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-DCBOH6Ou.js";
10
- import { a as useRunStatusCounts, c as runStatusLabels, l as RUN_STATUS_CONFIG, o as ExecutionStatusBadge } from "./useDurableParity-CJvnfF3T.js";
10
+ import { a as useRunStatusCounts, c as runStatusLabels, l as RUN_STATUS_CONFIG, o as ExecutionStatusBadge } from "./useDurableParity-BScby67i.js";
11
11
  import { n as formatRunVersion } from "./run-display-BycKYSU0.js";
12
- import { in as formatElapsedMs, on as runDurationMs } from "./FluidGridsProvider-CRGXDZX1.js";
12
+ import { ln as runDurationMs, sn as formatElapsedMs } from "./FluidGridsProvider-CbY91ZQq.js";
13
13
  import { n as runListLinkKey, t as runListFilterFromSearch } from "./run-list-links-ByYC0OlV.js";
14
- import { h as useWorkflowDefinitions } from "./useWorkflows-XsfD7JA-.js";
14
+ import { h as useWorkflowDefinitions } from "./useWorkflows-Czz5DlL0.js";
15
15
  import { t as FluidGridsDocsLink } from "./FluidGridsDocsLink-JxkBpOeb.js";
16
16
  import { s as useFluidGridsPermission, t as FLUIDGRIDS_PERMISSIONS } from "./constants-B2lhWNoN.js";
17
17
  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-BrCHB5oA.js";