@burdenoff/microfe-workflows 2026.625.1 → 2026.626.2

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,80 +1,133 @@
1
1
  import { setWorkflowsConfig as e } from "../config/index.js";
2
2
  import { useWorkflowsTranslation as t } from "../i18n.js";
3
3
  import { createContext as n, useEffect as r, useState as i } from "react";
4
- import { GlassCard as a, IllustratedEmptyState as o } from "@burdenoff/fe-libs/ui";
5
- import { resetFluidGridsClient as s, resetGlobalStoreClient as c, setFluidGridsClient as l, setFluidGridsConfig as u, setGlobalStoreClient as d } from "@burdenoff/fluidgrids-fe-sdk";
6
- import { useGatewayClient as f } from "@burdenoff/fe-libs/shared/graphql";
7
- import { PermissionProvider as p } from "@burdenoff/fe-libs/shared/providers/shell";
8
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
4
+ import { EmphasisPanel as a, GlassCard as o, IllustratedEmptyState as s, NextSteps as c, PagePurpose as l } from "@burdenoff/fe-libs/ui";
5
+ import { Boxes as u, LayoutDashboard as d, Workflow as f } from "lucide-react";
6
+ import { resetFluidGridsClient as p, resetGlobalStoreClient as m, setFluidGridsClient as h, setFluidGridsConfig as g, setGlobalStoreClient as _ } from "@burdenoff/fluidgrids-fe-sdk";
7
+ import { useGatewayClient as v } from "@burdenoff/fe-libs/shared/graphql";
8
+ import { PermissionProvider as y } from "@burdenoff/fe-libs/shared/providers/shell";
9
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
9
10
  //#region src/providers/WorkflowsProvider.tsx
10
- var g = n(null);
11
- function _(e) {
11
+ var S = n(null);
12
+ function C(e) {
12
13
  let t = e.endsWith("/") ? e.slice(0, -1) : e;
13
14
  return t.endsWith("/graphql") ? t : `${t}/workspaces/graphql`;
14
15
  }
15
- function v({ children: n, ...v }) {
16
- let y = t(), b = f("workspace"), x = f("global"), [S, C] = i(!1);
17
- return r(() => (b && x && (l(b), d(x), C(!0)), () => {
18
- s(), c(), C(!1);
19
- }), [b, x]), r(() => {
20
- if (v.apiGatewayUrl) {
21
- let t = _(v.apiGatewayUrl), n = v.apiGatewayUrl.endsWith("/") ? v.apiGatewayUrl.slice(0, -1) : v.apiGatewayUrl;
16
+ function w({ children: n, ...w }) {
17
+ let T = t(), E = v("workspace"), D = v("global"), [O, k] = i(!1);
18
+ if (r(() => (E && D && (h(E), _(D), k(!0)), () => {
19
+ p(), m(), k(!1);
20
+ }), [E, D]), r(() => {
21
+ if (w.apiGatewayUrl) {
22
+ let t = C(w.apiGatewayUrl), n = w.apiGatewayUrl.endsWith("/") ? w.apiGatewayUrl.slice(0, -1) : w.apiGatewayUrl;
22
23
  e({
23
24
  workflowSvcUrl: t,
24
25
  apiGatewayUrl: n
25
26
  });
26
- let r = v.callbacks?.onWorkflowSaved;
27
- u({
27
+ let r = w.callbacks?.onWorkflowSaved;
28
+ g({
28
29
  apiGatewayUrl: n,
29
- authToken: v.authToken,
30
- workspaceId: v.workspaceId ?? "",
31
- tenantId: v.tenantId,
32
- productId: v.productId,
33
- productName: v.productName,
30
+ authToken: w.authToken,
31
+ workspaceId: w.workspaceId ?? "",
32
+ tenantId: w.tenantId,
33
+ productId: w.productId,
34
+ productName: w.productName,
34
35
  onWorkflowSaved: r
35
36
  });
36
37
  }
37
38
  }, [
38
- v.apiGatewayUrl,
39
- v.authToken,
40
- v.workspaceId,
41
- v.tenantId,
42
- v.productId,
43
- v.productName,
44
- v.callbacks
45
- ]), v.workspaceId ? S ? /* @__PURE__ */ m(g.Provider, {
46
- value: v,
47
- children: /* @__PURE__ */ m(p, {
48
- scopeId: v.workspaceId ?? null,
39
+ w.apiGatewayUrl,
40
+ w.authToken,
41
+ w.workspaceId,
42
+ w.tenantId,
43
+ w.productId,
44
+ w.productName,
45
+ w.callbacks
46
+ ]), !w.workspaceId) {
47
+ let e = (e, t) => `${e.endsWith("/") ? e.slice(0, -1) : e}/${t}`, t = (t) => w.navigate(e(w.basePath ?? "/", t));
48
+ return /* @__PURE__ */ x("div", {
49
+ className: "mx-auto flex h-full min-h-[60vh] w-full max-w-2xl flex-col justify-center gap-6 px-4 py-10",
50
+ children: [
51
+ /* @__PURE__ */ b(l, {
52
+ icon: /* @__PURE__ */ b(f, {
53
+ className: "size-4",
54
+ "aria-hidden": "true"
55
+ }),
56
+ children: T("workflows.provider.purpose", "Workflows let you automate multi-step processes — for example, sync a new signup into your CRM, post run results to Slack, or transform and route data between apps. You build them visually by wiring nodes together, then trigger them on a schedule, a webhook, or on demand.")
57
+ }),
58
+ /* @__PURE__ */ b(a, {
59
+ className: "p-6",
60
+ children: /* @__PURE__ */ b(s, {
61
+ illustration: "onboarding",
62
+ title: T("workflows.provider.workspaceRequired.title", "Pick a workspace to start building"),
63
+ description: T("workflows.provider.workspaceRequired.description", "Workflows live inside a workspace so your automations, runs, and connections stay scoped to the right team. Select or create an active workspace from the shell to load your workflows.")
64
+ })
65
+ }),
66
+ /* @__PURE__ */ b(c, {
67
+ storageKey: "workflows-get-started",
68
+ title: T("workflows.provider.nextSteps.title", "Once your workspace is active"),
69
+ steps: [
70
+ {
71
+ id: "open-workflows",
72
+ label: T("workflows.provider.nextSteps.open.label", "Open your workflows"),
73
+ description: T("workflows.provider.nextSteps.open.description", "Browse, search, and manage every automation in this workspace."),
74
+ icon: /* @__PURE__ */ b(f, {
75
+ className: "size-4",
76
+ "aria-hidden": "true"
77
+ }),
78
+ onClick: () => t("list")
79
+ },
80
+ {
81
+ id: "start-template",
82
+ label: T("workflows.provider.nextSteps.template.label", "Start from a template"),
83
+ description: T("workflows.provider.nextSteps.template.description", "Skip the blank canvas — adapt a ready-made workflow to your use-case."),
84
+ icon: /* @__PURE__ */ b(d, {
85
+ className: "size-4",
86
+ "aria-hidden": "true"
87
+ }),
88
+ onClick: () => t("templates")
89
+ },
90
+ {
91
+ id: "build-new",
92
+ label: T("workflows.provider.nextSteps.build.label", "Build a workflow from scratch"),
93
+ description: T("workflows.provider.nextSteps.build.description", "Open the visual builder and wire nodes together step by step."),
94
+ icon: /* @__PURE__ */ b(u, {
95
+ className: "size-4",
96
+ "aria-hidden": "true"
97
+ }),
98
+ onClick: () => t("new")
99
+ }
100
+ ]
101
+ })
102
+ ]
103
+ });
104
+ }
105
+ return O ? /* @__PURE__ */ b(S.Provider, {
106
+ value: w,
107
+ children: /* @__PURE__ */ b(y, {
108
+ scopeId: w.workspaceId ?? null,
49
109
  gateway: "workspace",
50
110
  children: n
51
111
  })
52
- }) : /* @__PURE__ */ h("div", {
112
+ }) : /* @__PURE__ */ x("div", {
53
113
  className: "mx-auto flex h-full min-h-[60vh] w-full max-w-md flex-col items-center justify-center gap-4 px-4 py-10 text-center",
54
114
  role: "status",
55
115
  "aria-live": "polite",
56
116
  "aria-busy": "true",
57
- "aria-label": y("workflows.provider.loading.ariaLabel", "Loading workflows"),
58
- children: [/* @__PURE__ */ h(a, {
117
+ "aria-label": T("workflows.provider.loading.ariaLabel", "Loading workflows"),
118
+ children: [/* @__PURE__ */ x(o, {
59
119
  treatment: "glass",
60
120
  className: "flex w-full flex-col items-center gap-4 border-border-seam p-6",
61
121
  children: [
62
- /* @__PURE__ */ m("div", { className: "h-12 w-12 rounded-full bg-muted/60 motion-safe:animate-vc-shimmer" }),
63
- /* @__PURE__ */ m("div", { className: "h-4 w-40 rounded bg-muted/50 motion-safe:animate-vc-shimmer" }),
64
- /* @__PURE__ */ m("div", { className: "h-3 w-56 max-w-full rounded bg-muted/30 motion-safe:animate-vc-shimmer" })
122
+ /* @__PURE__ */ b("div", { className: "h-12 w-12 rounded-full bg-muted/60 motion-safe:animate-vc-shimmer" }),
123
+ /* @__PURE__ */ b("div", { className: "h-4 w-40 rounded bg-muted/50 motion-safe:animate-vc-shimmer" }),
124
+ /* @__PURE__ */ b("div", { className: "h-3 w-56 max-w-full rounded bg-muted/30 motion-safe:animate-vc-shimmer" })
65
125
  ]
66
- }), /* @__PURE__ */ m("p", {
126
+ }), /* @__PURE__ */ b("p", {
67
127
  className: "text-sm text-text-secondary",
68
- children: y("workflows.provider.loading.message", "Connecting workflows...")
128
+ children: T("workflows.provider.loading.message", "Connecting workflows...")
69
129
  })]
70
- }) : /* @__PURE__ */ m("div", {
71
- className: "flex h-full min-h-[60vh] w-full items-center justify-center px-4 py-10",
72
- children: /* @__PURE__ */ m(o, {
73
- illustration: "onboarding",
74
- title: y("workflows.provider.workspaceRequired.title", "Workspace context required"),
75
- description: y("workflows.provider.workspaceRequired.description", "This workflows module needs an active workspace before it can load workflow data.")
76
- })
77
130
  });
78
131
  }
79
132
  //#endregion
80
- export { v as WorkflowsProvider };
133
+ export { w as WorkflowsProvider };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-workflows",
3
- "version": "2026.625.1",
3
+ "version": "2026.626.2",
4
4
  "description": "Workflows microfrontend for Burdenoff products - thin shell over @burdenoff/fluidgrids-fe-sdk",
5
5
  "type": "module",
6
6
  "exports": {
@@ -28,7 +28,7 @@
28
28
  "format:check": "prettier --check \"src/**/*.{ts,tsx}\""
29
29
  },
30
30
  "dependencies": {
31
- "@burdenoff/fe-libs": "2026.625.3",
31
+ "@burdenoff/fe-libs": "2026.625.5",
32
32
  "lucide-react": "^0.468.0",
33
33
  "react": "^19.0.0",
34
34
  "react-dom": "^19.0.0",