@burdenoff/fluidgrids-fe-sdk 2026.1022.5 → 2026.1022.7

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.
@@ -1,5 +1,6 @@
1
- export { ExecutionDetailPage } from './chunk-P3R3RFAC.js';
2
- import './chunk-HIXQIM22.js';
1
+ export { ExecutionDetailPage } from './chunk-WFZD44CK.js';
2
+ import './chunk-CV56O5R4.js';
3
+ import './chunk-VGIH3SOT.js';
3
4
  import './chunk-QBFAJNUC.js';
4
5
  import './chunk-ONVGFVNH.js';
5
6
  import './chunk-JL7CASN5.js';
@@ -1,5 +1,6 @@
1
- export { ExecutionsListPage } from './chunk-PG2JFX63.js';
2
- import './chunk-HIXQIM22.js';
1
+ export { ExecutionsListPage } from './chunk-QMZGUJI3.js';
2
+ import './chunk-CV56O5R4.js';
3
+ import './chunk-VGIH3SOT.js';
3
4
  import './chunk-QBFAJNUC.js';
4
5
  import './chunk-HP3A6BPK.js';
5
6
  import './chunk-D3UWK7GY.js';
@@ -1,6 +1,6 @@
1
- export { WorkflowBuilder } from './chunk-M7FOQBCR.js';
2
- import './chunk-6N27YGMB.js';
3
- import './chunk-T3UCFY7J.js';
1
+ export { WorkflowBuilder } from './chunk-RQ6TDVVL.js';
2
+ import './chunk-YGBDZ424.js';
3
+ import './chunk-36RTRUCM.js';
4
4
  import './chunk-GEMNVFPK.js';
5
5
  import './chunk-IEVSFCFS.js';
6
6
  import './chunk-YXMFRQYV.js';
@@ -1,5 +1,7 @@
1
- export { WorkflowsList } from './chunk-QP62LB3V.js';
2
- import './chunk-6N27YGMB.js';
1
+ export { WorkflowsList } from './chunk-QN4HHTQP.js';
2
+ import './chunk-YGBDZ424.js';
3
+ import './chunk-VGIH3SOT.js';
4
+ import './chunk-QBFAJNUC.js';
3
5
  import './chunk-SYVLFHWV.js';
4
6
  import './chunk-ONVGFVNH.js';
5
7
  import './chunk-JL7CASN5.js';
@@ -165,42 +165,56 @@ function DataSinkDashboardPage() {
165
165
  const payload = sinkData?.extracted ?? sinkData?.raw;
166
166
  const totalBytes = sinks.reduce((total, sink) => total + sink.sizeBytes, 0);
167
167
  return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-background-primary p-4 sm:p-6", children: [
168
- /* @__PURE__ */ jsxs("header", { className: "mb-6 flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between", children: [
169
- /* @__PURE__ */ jsxs("div", { children: [
170
- /* @__PURE__ */ jsx("p", { className: "text-xs font-medium uppercase tracking-wide text-text-secondary", children: tr("fluidgrids.dataSinks.kicker", "BigConsole data") }),
171
- /* @__PURE__ */ jsx("h1", { className: "mt-1 text-2xl font-semibold text-text-primary sm:text-3xl", children: tr("fluidgrids.dataSinks.title", "DataSink dashboard") }),
172
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-text-secondary", children: tr(
173
- "fluidgrids.dataSinks.subtitle",
174
- "Inspect workflow-produced data and its freshness without leaving FluidGrids."
175
- ) })
176
- ] }),
177
- /* @__PURE__ */ jsxs(
178
- Button,
179
- {
180
- variant: "outline",
181
- onClick: () => void refetch(),
182
- disabled: loading,
183
- children: [
184
- /* @__PURE__ */ jsx(Icon, { icon: "mdi:refresh", className: "mr-1", width: 16 }),
185
- tr("fluidgrids.dataSinks.refresh", "Refresh")
186
- ]
187
- }
188
- )
189
- ] }),
190
- /* @__PURE__ */ jsxs("section", { className: "mb-6 grid gap-4 sm:grid-cols-3", children: [
191
- /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border-secondary bg-background-secondary p-4", children: [
192
- /* @__PURE__ */ jsx("p", { className: "text-sm text-text-secondary", children: tr("fluidgrids.dataSinks.totalSinks", "DataSinks") }),
193
- /* @__PURE__ */ jsx("p", { className: "mt-2 text-2xl font-semibold text-text-primary", children: totalCount })
194
- ] }),
195
- /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border-secondary bg-background-secondary p-4", children: [
196
- /* @__PURE__ */ jsx("p", { className: "text-sm text-text-secondary", children: tr("fluidgrids.dataSinks.activeSinks", "Active sinks") }),
197
- /* @__PURE__ */ jsx("p", { className: "mt-2 text-2xl font-semibold text-status-success-text", children: sinks.filter((sink) => sink.isActive).length })
198
- ] }),
199
- /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border-secondary bg-background-secondary p-4", children: [
200
- /* @__PURE__ */ jsx("p", { className: "text-sm text-text-secondary", children: tr("fluidgrids.dataSinks.totalStorage", "Visible storage") }),
201
- /* @__PURE__ */ jsx("p", { className: "mt-2 text-2xl font-semibold text-text-primary", children: formatBytes(totalBytes) })
202
- ] })
203
- ] }),
168
+ /* @__PURE__ */ jsxs(
169
+ "header",
170
+ {
171
+ className: "mb-6 flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
172
+ "data-tour": "fluidgrids-data-sinks-header",
173
+ children: [
174
+ /* @__PURE__ */ jsxs("div", { children: [
175
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-medium uppercase tracking-wide text-text-secondary", children: tr("fluidgrids.dataSinks.kicker", "BigConsole data") }),
176
+ /* @__PURE__ */ jsx("h1", { className: "mt-1 text-2xl font-semibold text-text-primary sm:text-3xl", children: tr("fluidgrids.dataSinks.title", "DataSink dashboard") }),
177
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-text-secondary", children: tr(
178
+ "fluidgrids.dataSinks.subtitle",
179
+ "Inspect workflow-produced data and its freshness without leaving FluidGrids."
180
+ ) })
181
+ ] }),
182
+ /* @__PURE__ */ jsxs(
183
+ Button,
184
+ {
185
+ variant: "outline",
186
+ onClick: () => void refetch(),
187
+ disabled: loading,
188
+ children: [
189
+ /* @__PURE__ */ jsx(Icon, { icon: "mdi:refresh", className: "mr-1", width: 16 }),
190
+ tr("fluidgrids.dataSinks.refresh", "Refresh")
191
+ ]
192
+ }
193
+ )
194
+ ]
195
+ }
196
+ ),
197
+ /* @__PURE__ */ jsxs(
198
+ "section",
199
+ {
200
+ className: "mb-6 grid gap-4 sm:grid-cols-3",
201
+ "data-tour": "fluidgrids-data-sinks-stats",
202
+ children: [
203
+ /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border-secondary bg-background-secondary p-4", children: [
204
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-text-secondary", children: tr("fluidgrids.dataSinks.totalSinks", "DataSinks") }),
205
+ /* @__PURE__ */ jsx("p", { className: "mt-2 text-2xl font-semibold text-text-primary", children: totalCount })
206
+ ] }),
207
+ /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border-secondary bg-background-secondary p-4", children: [
208
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-text-secondary", children: tr("fluidgrids.dataSinks.activeSinks", "Active sinks") }),
209
+ /* @__PURE__ */ jsx("p", { className: "mt-2 text-2xl font-semibold text-status-success-text", children: sinks.filter((sink) => sink.isActive).length })
210
+ ] }),
211
+ /* @__PURE__ */ jsxs("div", { className: "rounded-xl border border-border-secondary bg-background-secondary p-4", children: [
212
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-text-secondary", children: tr("fluidgrids.dataSinks.totalStorage", "Visible storage") }),
213
+ /* @__PURE__ */ jsx("p", { className: "mt-2 text-2xl font-semibold text-text-primary", children: formatBytes(totalBytes) })
214
+ ] })
215
+ ]
216
+ }
217
+ ),
204
218
  error && /* @__PURE__ */ jsx(
205
219
  "div",
206
220
  {
@@ -210,7 +224,7 @@ function DataSinkDashboardPage() {
210
224
  }
211
225
  ),
212
226
  /* @__PURE__ */ jsxs("div", { className: "grid gap-6 xl:grid-cols-[22rem_minmax(0,1fr)]", children: [
213
- /* @__PURE__ */ jsxs("aside", { className: "space-y-3", children: [
227
+ /* @__PURE__ */ jsxs("aside", { className: "space-y-3", "data-tour": "fluidgrids-data-sinks-list", children: [
214
228
  /* @__PURE__ */ jsx(
215
229
  Input,
216
230
  {
@@ -238,81 +252,88 @@ function DataSinkDashboardPage() {
238
252
  sink.id
239
253
  ))
240
254
  ] }),
241
- /* @__PURE__ */ jsxs("main", { className: "min-w-0 rounded-xl border border-border-secondary bg-background-secondary p-5", children: [
242
- !selectedSink && /* @__PURE__ */ jsxs("div", { className: "flex min-h-64 flex-col items-center justify-center text-center", children: [
243
- /* @__PURE__ */ jsx(
244
- Icon,
245
- {
246
- icon: "mdi:database-outline",
247
- className: "mb-3 text-text-secondary",
248
- width: 40
249
- }
250
- ),
251
- /* @__PURE__ */ jsx("p", { className: "font-medium text-text-primary", children: tr("fluidgrids.dataSinks.selectTitle", "Select a DataSink") }),
252
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-text-secondary", children: tr(
253
- "fluidgrids.dataSinks.selectDescription",
254
- "Choose a sink to inspect its latest payload."
255
- ) })
256
- ] }),
257
- selectedSink && /* @__PURE__ */ jsxs(Fragment, { children: [
258
- /* @__PURE__ */ jsxs("div", { className: "mb-5 flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between", children: [
259
- /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
260
- /* @__PURE__ */ jsx("h2", { className: "truncate text-lg font-semibold text-text-primary", children: selectedSink.name || selectedSink.key }),
261
- /* @__PURE__ */ jsxs("p", { className: "mt-1 font-mono text-xs text-text-secondary", children: [
262
- selectedSink.key,
263
- " \xB7",
264
- " ",
265
- tr("fluidgrids.dataSinks.updated", "Updated"),
266
- " ",
267
- new Date(selectedSink.lastRefreshedAt).toLocaleString()
268
- ] })
255
+ /* @__PURE__ */ jsxs(
256
+ "main",
257
+ {
258
+ className: "min-w-0 rounded-xl border border-border-secondary bg-background-secondary p-5",
259
+ "data-tour": "fluidgrids-data-sinks-preview",
260
+ children: [
261
+ !selectedSink && /* @__PURE__ */ jsxs("div", { className: "flex min-h-64 flex-col items-center justify-center text-center", children: [
262
+ /* @__PURE__ */ jsx(
263
+ Icon,
264
+ {
265
+ icon: "mdi:database-outline",
266
+ className: "mb-3 text-text-secondary",
267
+ width: 40
268
+ }
269
+ ),
270
+ /* @__PURE__ */ jsx("p", { className: "font-medium text-text-primary", children: tr("fluidgrids.dataSinks.selectTitle", "Select a DataSink") }),
271
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-text-secondary", children: tr(
272
+ "fluidgrids.dataSinks.selectDescription",
273
+ "Choose a sink to inspect its latest payload."
274
+ ) })
269
275
  ] }),
270
- /* @__PURE__ */ jsxs(
271
- Button,
272
- {
273
- variant: "outline",
274
- size: "sm",
275
- onClick: () => void refetchData(),
276
- disabled: dataLoading,
277
- children: [
278
- /* @__PURE__ */ jsx(
279
- Icon,
280
- {
281
- icon: "mdi:database-refresh-outline",
282
- className: "mr-1",
283
- width: 16
284
- }
285
- ),
286
- tr("fluidgrids.dataSinks.refreshPayload", "Refresh payload")
287
- ]
288
- }
289
- )
290
- ] }),
291
- dataError && /* @__PURE__ */ jsx(
292
- "div",
293
- {
294
- role: "alert",
295
- className: "mb-4 rounded-lg border border-status-error-border bg-status-error-bg-subtle p-3 text-sm text-status-error-text",
296
- children: dataError.message
297
- }
298
- ),
299
- dataLoading && !sinkData && /* @__PURE__ */ jsx("div", { className: "h-64 animate-pulse rounded-lg bg-background-primary" }),
300
- !dataLoading && sinkData && /* @__PURE__ */ jsxs(Fragment, { children: [
301
- /* @__PURE__ */ jsxs("div", { className: "mb-4 flex flex-wrap gap-3 text-xs text-text-secondary", children: [
302
- /* @__PURE__ */ jsx("span", { children: sinkData.cached ? tr("fluidgrids.dataSinks.cached", "Cached") : tr("fluidgrids.dataSinks.fresh", "Fresh") }),
303
- /* @__PURE__ */ jsxs("span", { children: [
304
- "v",
305
- sinkData.version
276
+ selectedSink && /* @__PURE__ */ jsxs(Fragment, { children: [
277
+ /* @__PURE__ */ jsxs("div", { className: "mb-5 flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between", children: [
278
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
279
+ /* @__PURE__ */ jsx("h2", { className: "truncate text-lg font-semibold text-text-primary", children: selectedSink.name || selectedSink.key }),
280
+ /* @__PURE__ */ jsxs("p", { className: "mt-1 font-mono text-xs text-text-secondary", children: [
281
+ selectedSink.key,
282
+ " \xB7",
283
+ " ",
284
+ tr("fluidgrids.dataSinks.updated", "Updated"),
285
+ " ",
286
+ new Date(selectedSink.lastRefreshedAt).toLocaleString()
287
+ ] })
288
+ ] }),
289
+ /* @__PURE__ */ jsxs(
290
+ Button,
291
+ {
292
+ variant: "outline",
293
+ size: "sm",
294
+ onClick: () => void refetchData(),
295
+ disabled: dataLoading,
296
+ children: [
297
+ /* @__PURE__ */ jsx(
298
+ Icon,
299
+ {
300
+ icon: "mdi:database-refresh-outline",
301
+ className: "mr-1",
302
+ width: 16
303
+ }
304
+ ),
305
+ tr("fluidgrids.dataSinks.refreshPayload", "Refresh payload")
306
+ ]
307
+ }
308
+ )
306
309
  ] }),
307
- sinkData.totalCount !== null && sinkData.totalCount !== void 0 && /* @__PURE__ */ jsxs("span", { children: [
308
- sinkData.totalCount,
309
- " rows"
310
+ dataError && /* @__PURE__ */ jsx(
311
+ "div",
312
+ {
313
+ role: "alert",
314
+ className: "mb-4 rounded-lg border border-status-error-border bg-status-error-bg-subtle p-3 text-sm text-status-error-text",
315
+ children: dataError.message
316
+ }
317
+ ),
318
+ dataLoading && !sinkData && /* @__PURE__ */ jsx("div", { className: "h-64 animate-pulse rounded-lg bg-background-primary" }),
319
+ !dataLoading && sinkData && /* @__PURE__ */ jsxs(Fragment, { children: [
320
+ /* @__PURE__ */ jsxs("div", { className: "mb-4 flex flex-wrap gap-3 text-xs text-text-secondary", children: [
321
+ /* @__PURE__ */ jsx("span", { children: sinkData.cached ? tr("fluidgrids.dataSinks.cached", "Cached") : tr("fluidgrids.dataSinks.fresh", "Fresh") }),
322
+ /* @__PURE__ */ jsxs("span", { children: [
323
+ "v",
324
+ sinkData.version
325
+ ] }),
326
+ sinkData.totalCount !== null && sinkData.totalCount !== void 0 && /* @__PURE__ */ jsxs("span", { children: [
327
+ sinkData.totalCount,
328
+ " rows"
329
+ ] })
330
+ ] }),
331
+ /* @__PURE__ */ jsx(DataPreview, { value: payload })
310
332
  ] })
311
- ] }),
312
- /* @__PURE__ */ jsx(DataPreview, { value: payload })
313
- ] })
314
- ] })
315
- ] })
333
+ ] })
334
+ ]
335
+ }
336
+ )
316
337
  ] })
317
338
  ] });
318
339
  }
@@ -409,33 +430,41 @@ function InsightsPage({ showErrors = false }) {
409
430
  const failureRate = summary ? percentage(summary.runsFailedCount, summary.runsCountTotal) : 0;
410
431
  const commonError = failureBreakdown[0];
411
432
  return /* @__PURE__ */ jsxs("div", { className: "min-h-screen bg-background-primary p-4 sm:p-6", children: [
412
- /* @__PURE__ */ jsxs("header", { className: "mb-6 flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between", children: [
413
- /* @__PURE__ */ jsxs("div", { children: [
414
- /* @__PURE__ */ jsx("p", { className: "text-xs font-medium uppercase tracking-wide text-text-secondary", children: tr("fluidgrids.insights.period", "Last 30 days") }),
415
- /* @__PURE__ */ jsx("h1", { className: "mt-1 text-2xl font-semibold text-text-primary sm:text-3xl", children: tr("fluidgrids.insights.title", "Workflow insights") }),
416
- /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-text-secondary", children: tr(
417
- "fluidgrids.insights.subtitle",
418
- "Understand workflow health, failures, and the nodes that need attention."
419
- ) })
420
- ] }),
421
- /* @__PURE__ */ jsxs(
422
- Button,
423
- {
424
- variant: "outline",
425
- onClick: () => void refetch(),
426
- disabled: loading,
427
- children: [
428
- /* @__PURE__ */ jsx(Icon, { icon: "mdi:refresh", className: "mr-1", width: 16 }),
429
- tr("fluidgrids.insights.refresh", "Refresh")
430
- ]
431
- }
432
- )
433
- ] }),
433
+ /* @__PURE__ */ jsxs(
434
+ "header",
435
+ {
436
+ className: "mb-6 flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
437
+ "data-tour": "fluidgrids-insights-header",
438
+ children: [
439
+ /* @__PURE__ */ jsxs("div", { children: [
440
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-medium uppercase tracking-wide text-text-secondary", children: tr("fluidgrids.insights.period", "Last 30 days") }),
441
+ /* @__PURE__ */ jsx("h1", { className: "mt-1 text-2xl font-semibold text-text-primary sm:text-3xl", children: tr("fluidgrids.insights.title", "Workflow insights") }),
442
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-text-secondary", children: tr(
443
+ "fluidgrids.insights.subtitle",
444
+ "Understand workflow health, failures, and the nodes that need attention."
445
+ ) })
446
+ ] }),
447
+ /* @__PURE__ */ jsxs(
448
+ Button,
449
+ {
450
+ variant: "outline",
451
+ onClick: () => void refetch(),
452
+ disabled: loading,
453
+ children: [
454
+ /* @__PURE__ */ jsx(Icon, { icon: "mdi:refresh", className: "mr-1", width: 16 }),
455
+ tr("fluidgrids.insights.refresh", "Refresh")
456
+ ]
457
+ }
458
+ )
459
+ ]
460
+ }
461
+ ),
434
462
  /* @__PURE__ */ jsxs(
435
463
  "div",
436
464
  {
437
465
  className: "mb-6 flex gap-1 border-b border-border-secondary",
438
466
  role: "tablist",
467
+ "data-tour": "fluidgrids-insights-tabs",
439
468
  children: [
440
469
  /* @__PURE__ */ jsx(
441
470
  "button",
@@ -499,7 +528,7 @@ function OverviewContent({
499
528
  tr
500
529
  }) {
501
530
  const totalDuration = summary.runsCompletedCount * (summary.avgWorkflowExecutionTimeSeconds ?? 0);
502
- return /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
531
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-6", "data-tour": "fluidgrids-insights-overview", children: [
503
532
  /* @__PURE__ */ jsxs(
504
533
  "section",
505
534
  {
@@ -626,7 +655,7 @@ function ErrorContent({
626
655
  retryLoading,
627
656
  tr
628
657
  }) {
629
- return /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
658
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-6", "data-tour": "fluidgrids-insights-errors", children: [
630
659
  /* @__PURE__ */ jsxs("section", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4", children: [
631
660
  /* @__PURE__ */ jsx(
632
661
  MetricCard,
@@ -26624,6 +26624,7 @@ function RunWithViewRuns({
26624
26624
  {
26625
26625
  variant: "default",
26626
26626
  size: "icon",
26627
+ "data-tour": "fluidgrids-builder-run-menu",
26627
26628
  className: "flex items-center justify-center h-8 w-6 rounded-r-lg rounded-l-none border-l border-action-primary-text/20 bg-[var(--color-status-success-bg)] hover:bg-[var(--color-status-success-bg)]/90",
26628
26629
  children: /* @__PURE__ */ jsx(
26629
26630
  Icon,
@@ -26889,6 +26890,7 @@ var FlowBuilder = ({ readOnly = false }) => {
26889
26890
  variant: "ghost",
26890
26891
  size: "icon",
26891
26892
  className: "text-card-foreground",
26893
+ "data-tour": "fluidgrids-builder-actions-menu",
26892
26894
  children: /* @__PURE__ */ jsx(Icon, { icon: "mynaui:dots-vertical", className: "size-5" })
26893
26895
  }
26894
26896
  ) }),
@@ -1,4 +1,4 @@
1
- import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TemplateCard } from './chunk-T3UCFY7J.js';
1
+ import { useImportWorkflowTemplate, FlowBuilderPage, useWorkflowTemplates, TemplateCard } from './chunk-36RTRUCM.js';
2
2
  import { QuotaExhaustedDialog } from './chunk-SYVLFHWV.js';
3
3
  import { useWorkflowDefinitions, useDuplicateWorkflow } from './chunk-HP3A6BPK.js';
4
4
  import { templatesControls } from './chunk-D3UWK7GY.js';