@burdenoff/microfe-adaptercloud 2026.825.4 → 2026.829.1

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 (57) hide show
  1. package/dist/adaptercloud/AdapterCloudRoot.d.ts.map +1 -1
  2. package/dist/adaptercloud/AdapterCloudRoot.js +52 -55
  3. package/dist/adaptercloud/AdapterCloudRoot.js.map +1 -1
  4. package/dist/adaptercloud/components/ActiveSwitch.d.ts +17 -0
  5. package/dist/adaptercloud/components/ActiveSwitch.d.ts.map +1 -0
  6. package/dist/adaptercloud/components/ActiveSwitch.js +28 -0
  7. package/dist/adaptercloud/components/ActiveSwitch.js.map +1 -0
  8. package/dist/adaptercloud/components/index.d.ts +1 -0
  9. package/dist/adaptercloud/components/index.d.ts.map +1 -1
  10. package/dist/adaptercloud/hooks/index.d.ts +1 -0
  11. package/dist/adaptercloud/hooks/index.d.ts.map +1 -1
  12. package/dist/adaptercloud/hooks/useAdapterCloudApi.d.ts +28 -2
  13. package/dist/adaptercloud/hooks/useAdapterCloudApi.d.ts.map +1 -1
  14. package/dist/adaptercloud/hooks/useAdapterCloudApi.js +318 -291
  15. package/dist/adaptercloud/hooks/useAdapterCloudApi.js.map +1 -1
  16. package/dist/adaptercloud/hooks/useTr.d.ts +2 -0
  17. package/dist/adaptercloud/hooks/useTr.d.ts.map +1 -0
  18. package/dist/adaptercloud/hooks/useTr.js +14 -0
  19. package/dist/adaptercloud/hooks/useTr.js.map +1 -0
  20. package/dist/adaptercloud/pages/OverviewPage.d.ts.map +1 -1
  21. package/dist/adaptercloud/pages/OverviewPage.js +117 -120
  22. package/dist/adaptercloud/pages/OverviewPage.js.map +1 -1
  23. package/dist/adaptercloud/pages/adapters/AdaptersListPage.d.ts.map +1 -1
  24. package/dist/adaptercloud/pages/adapters/AdaptersListPage.js +6 -5
  25. package/dist/adaptercloud/pages/adapters/AdaptersListPage.js.map +1 -1
  26. package/dist/adaptercloud/pages/connections/ConnectionDetailPage.d.ts.map +1 -1
  27. package/dist/adaptercloud/pages/connections/ConnectionDetailPage.js +217 -104
  28. package/dist/adaptercloud/pages/connections/ConnectionDetailPage.js.map +1 -1
  29. package/dist/adaptercloud/pages/connections/ConnectionsListPage.d.ts.map +1 -1
  30. package/dist/adaptercloud/pages/connections/ConnectionsListPage.js +6 -5
  31. package/dist/adaptercloud/pages/connections/ConnectionsListPage.js.map +1 -1
  32. package/dist/adaptercloud/pages/costs/CostsPage.d.ts.map +1 -1
  33. package/dist/adaptercloud/pages/costs/CostsPage.js +183 -156
  34. package/dist/adaptercloud/pages/costs/CostsPage.js.map +1 -1
  35. package/dist/adaptercloud/pages/drift/DriftListPage.d.ts.map +1 -1
  36. package/dist/adaptercloud/pages/drift/DriftListPage.js +108 -107
  37. package/dist/adaptercloud/pages/drift/DriftListPage.js.map +1 -1
  38. package/dist/adaptercloud/pages/policies/PoliciesListPage.d.ts.map +1 -1
  39. package/dist/adaptercloud/pages/policies/PoliciesListPage.js +141 -131
  40. package/dist/adaptercloud/pages/policies/PoliciesListPage.js.map +1 -1
  41. package/dist/adaptercloud/pages/policies/PolicyDetailPage.d.ts.map +1 -1
  42. package/dist/adaptercloud/pages/policies/PolicyDetailPage.js +171 -117
  43. package/dist/adaptercloud/pages/policies/PolicyDetailPage.js.map +1 -1
  44. package/dist/adaptercloud/pages/resources/ResourcesListPage.d.ts.map +1 -1
  45. package/dist/adaptercloud/pages/resources/ResourcesListPage.js +85 -66
  46. package/dist/adaptercloud/pages/resources/ResourcesListPage.js.map +1 -1
  47. package/dist/adaptercloud/pages/sync-runs/SyncRunsListPage.d.ts.map +1 -1
  48. package/dist/adaptercloud/pages/sync-runs/SyncRunsListPage.js +148 -121
  49. package/dist/adaptercloud/pages/sync-runs/SyncRunsListPage.js.map +1 -1
  50. package/dist/adaptercloud/pages/violations/ViolationsListPage.d.ts.map +1 -1
  51. package/dist/adaptercloud/pages/violations/ViolationsListPage.js +145 -144
  52. package/dist/adaptercloud/pages/violations/ViolationsListPage.js.map +1 -1
  53. package/dist/utils/pageContext.d.ts +0 -2
  54. package/dist/utils/pageContext.d.ts.map +1 -1
  55. package/dist/utils/pageContext.js +1 -3
  56. package/dist/utils/pageContext.js.map +1 -1
  57. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AdapterCloudRoot.d.ts","sourceRoot":"","sources":["../../src/adaptercloud/AdapterCloudRoot.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAoBhC,OAAO,KAAK,EAAE,qBAAqB,EAAW,MAAM,SAAS,CAAC;AAsB9D,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA+ItD,CAAC"}
1
+ {"version":3,"file":"AdapterCloudRoot.d.ts","sourceRoot":"","sources":["../../src/adaptercloud/AdapterCloudRoot.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAoBhC,OAAO,KAAK,EAAE,qBAAqB,EAAW,MAAM,SAAS,CAAC;AAsB9D,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAwItD,CAAC"}
@@ -1,135 +1,132 @@
1
- import { AdapterCloudProvider as e } from "./context/AdapterCloudContext.js";
2
- import { notify as t } from "./lib/toast.js";
3
- import { AdapterCloudRoutes as n } from "./AdapterCloudRoutes.js";
4
- import { useCallback as r, useEffect as i } from "react";
1
+ import { useTr as e } from "./hooks/useTr.js";
2
+ import { AdapterCloudProvider as t } from "./context/AdapterCloudContext.js";
3
+ import { notify as n } from "./lib/toast.js";
4
+ import { AdapterCloudRoutes as r } from "./AdapterCloudRoutes.js";
5
+ import { useEffect as i } from "react";
5
6
  import { MutationCache as a, QueryClient as o, QueryClientProvider as s } from "@tanstack/react-query";
6
- import { useI18n as c } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
- import { Activity as l, Boxes as u, Cable as d, DollarSign as f, GitCompareArrows as p, LayoutDashboard as m, ScrollText as h, Server as g, ShieldAlert as _, Waypoints as v } from "lucide-react";
8
- import { jsx as y } from "react/jsx-runtime";
9
- import { FeatureFlagProvider as b } from "@burdenoff/fe-libs/shared/feature-flags";
7
+ import { Activity as c, Boxes as l, Cable as u, DollarSign as d, GitCompareArrows as f, LayoutDashboard as p, ScrollText as m, Server as h, ShieldAlert as g, Waypoints as _ } from "lucide-react";
8
+ import { jsx as v } from "react/jsx-runtime";
9
+ import { FeatureFlagProvider as y } from "@burdenoff/fe-libs/shared/feature-flags";
10
10
  //#region src/adaptercloud/AdapterCloudRoot.tsx
11
- var x = new o({
11
+ var b = new o({
12
12
  mutationCache: new a({ onError: (e) => {
13
- t.error("Something went wrong", e instanceof Error ? e.message : "Please try again.");
13
+ n.error("Something went wrong", e instanceof Error ? e.message : "Please try again.");
14
14
  } }),
15
15
  defaultOptions: { queries: {
16
16
  staleTime: 300 * 1e3,
17
17
  retry: 1
18
18
  } }
19
- }), S = (t) => {
20
- let { registerNavItems: a, registerFooterItems: o, basePath: S = "/" } = t, { t: C } = c(), w = r((e, t) => {
21
- let n = C(e);
22
- return n === e ? t : n;
23
- }, [C]), T = (e, t) => (e.endsWith("/") ? e.slice(0, -1) : e) + (t.startsWith("/") ? t : `/${t}`);
19
+ }), x = (n) => {
20
+ let { registerNavItems: a, registerFooterItems: o, basePath: x = "/" } = n, S = e(), C = (e, t) => (e.endsWith("/") ? e.slice(0, -1) : e) + (t.startsWith("/") ? t : `/${t}`);
24
21
  return i(() => {
25
22
  if (a) return a([
26
23
  {
27
24
  id: "adaptercloud-overview",
28
- label: w("adaptercloud.nav.overview", "Overview"),
29
- path: T(S, ""),
30
- icon: /* @__PURE__ */ y(m, { size: 20 }),
25
+ label: S("adaptercloud.nav.overview", "Overview"),
26
+ path: C(x, ""),
27
+ icon: /* @__PURE__ */ v(p, { size: 20 }),
31
28
  order: 1,
32
29
  group: "main"
33
30
  },
34
31
  {
35
32
  id: "adaptercloud-adapters",
36
- label: w("adaptercloud.nav.adapters", "Adapters"),
37
- path: T(S, "adapters"),
38
- icon: /* @__PURE__ */ y(u, { size: 20 }),
33
+ label: S("adaptercloud.nav.adapters", "Adapters"),
34
+ path: C(x, "adapters"),
35
+ icon: /* @__PURE__ */ v(l, { size: 20 }),
39
36
  order: 10,
40
37
  group: "fabric"
41
38
  },
42
39
  {
43
40
  id: "adaptercloud-connections",
44
- label: w("adaptercloud.nav.connections", "Connections"),
45
- path: T(S, "connections"),
46
- icon: /* @__PURE__ */ y(d, { size: 20 }),
41
+ label: S("adaptercloud.nav.connections", "Connections"),
42
+ path: C(x, "connections"),
43
+ icon: /* @__PURE__ */ v(u, { size: 20 }),
47
44
  order: 11,
48
45
  group: "fabric"
49
46
  },
50
47
  {
51
48
  id: "adaptercloud-resources",
52
- label: w("adaptercloud.nav.resources", "Resources"),
53
- path: T(S, "resources"),
54
- icon: /* @__PURE__ */ y(g, { size: 20 }),
49
+ label: S("adaptercloud.nav.resources", "Resources"),
50
+ path: C(x, "resources"),
51
+ icon: /* @__PURE__ */ v(h, { size: 20 }),
55
52
  order: 12,
56
53
  group: "fabric"
57
54
  },
58
55
  {
59
56
  id: "adaptercloud-topology",
60
- label: w("adaptercloud.nav.topology", "Topology"),
61
- path: T(S, "topology"),
62
- icon: /* @__PURE__ */ y(v, { size: 20 }),
57
+ label: S("adaptercloud.nav.topology", "Topology"),
58
+ path: C(x, "topology"),
59
+ icon: /* @__PURE__ */ v(_, { size: 20 }),
63
60
  order: 13,
64
61
  group: "fabric"
65
62
  },
66
63
  {
67
64
  id: "adaptercloud-policies",
68
- label: w("adaptercloud.nav.policies", "Policies"),
69
- path: T(S, "policies"),
70
- icon: /* @__PURE__ */ y(h, { size: 20 }),
65
+ label: S("adaptercloud.nav.policies", "Policies"),
66
+ path: C(x, "policies"),
67
+ icon: /* @__PURE__ */ v(m, { size: 20 }),
71
68
  order: 20,
72
69
  group: "governance"
73
70
  },
74
71
  {
75
72
  id: "adaptercloud-violations",
76
- label: w("adaptercloud.nav.violations", "Violations"),
77
- path: T(S, "violations"),
78
- icon: /* @__PURE__ */ y(_, { size: 20 }),
73
+ label: S("adaptercloud.nav.violations", "Violations"),
74
+ path: C(x, "violations"),
75
+ icon: /* @__PURE__ */ v(g, { size: 20 }),
79
76
  order: 21,
80
77
  group: "governance"
81
78
  },
82
79
  {
83
80
  id: "adaptercloud-drift",
84
- label: w("adaptercloud.nav.drift", "Drift"),
85
- path: T(S, "drift"),
86
- icon: /* @__PURE__ */ y(p, { size: 20 }),
81
+ label: S("adaptercloud.nav.drift", "Drift"),
82
+ path: C(x, "drift"),
83
+ icon: /* @__PURE__ */ v(f, { size: 20 }),
87
84
  order: 22,
88
85
  group: "governance"
89
86
  },
90
87
  {
91
88
  id: "adaptercloud-sync-runs",
92
- label: w("adaptercloud.nav.syncRuns", "Sync Runs"),
93
- path: T(S, "sync-runs"),
94
- icon: /* @__PURE__ */ y(l, { size: 20 }),
89
+ label: S("adaptercloud.nav.syncRuns", "Sync Runs"),
90
+ path: C(x, "sync-runs"),
91
+ icon: /* @__PURE__ */ v(c, { size: 20 }),
95
92
  order: 30,
96
93
  group: "operations"
97
94
  },
98
95
  {
99
96
  id: "adaptercloud-costs",
100
- label: w("adaptercloud.nav.finops", "FinOps"),
101
- path: T(S, "costs"),
102
- icon: /* @__PURE__ */ y(f, { size: 20 }),
97
+ label: S("adaptercloud.nav.finops", "FinOps"),
98
+ path: C(x, "costs"),
99
+ icon: /* @__PURE__ */ v(d, { size: 20 }),
103
100
  order: 31,
104
101
  group: "operations"
105
102
  }
106
103
  ]);
107
104
  }, [
108
105
  a,
109
- S,
110
- w
106
+ x,
107
+ S
111
108
  ]), i(() => {
112
109
  if (o) return o([{
113
110
  id: "adaptercloud-status",
114
- label: w("adaptercloud.footer.ready", "AdapterCloud Ready"),
111
+ label: S("adaptercloud.footer.ready", "AdapterCloud Ready"),
115
112
  type: "status",
116
113
  order: 10,
117
114
  section: "left"
118
115
  }]);
119
- }, [o, w]), /* @__PURE__ */ y(s, {
120
- client: x,
121
- children: /* @__PURE__ */ y(b, {
116
+ }, [o, S]), /* @__PURE__ */ v(s, {
117
+ client: b,
118
+ children: /* @__PURE__ */ v(y, {
122
119
  workspaceId: null,
123
120
  gateway: "global",
124
121
  defaultEnabled: !0,
125
- children: /* @__PURE__ */ y(e, {
126
- ...t,
127
- children: /* @__PURE__ */ y(n, {})
122
+ children: /* @__PURE__ */ v(t, {
123
+ ...n,
124
+ children: /* @__PURE__ */ v(r, {})
128
125
  })
129
126
  })
130
127
  });
131
128
  };
132
129
  //#endregion
133
- export { S as AdapterCloudRoot };
130
+ export { x as AdapterCloudRoot };
134
131
 
135
132
  //# sourceMappingURL=AdapterCloudRoot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdapterCloudRoot.js","names":[],"sources":["../../src/adaptercloud/AdapterCloudRoot.tsx"],"sourcesContent":["/**\n * AdapterCloud Root Component\n * @module adaptercloud\n */\n\nimport type { FC } from 'react';\nimport { useCallback, useEffect } from 'react';\nimport { MutationCache, QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n LayoutDashboard,\n Boxes,\n Cable,\n Server,\n Waypoints,\n ScrollText,\n ShieldAlert,\n GitCompareArrows,\n Activity,\n DollarSign,\n} from 'lucide-react';\nimport { AdapterCloudProvider } from './context/AdapterCloudContext';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { AdapterCloudRoutes } from './AdapterCloudRoutes';\nimport { notify } from './lib/toast';\nimport type { AdapterCloudRootProps, NavItem } from './types';\n\n// Create a query client for this microfrontend. A shared MutationCache surfaces\n// every failed write as a toast, so no mutation can fail silently with only\n// inline error state (the <Toaster> is owned by the host app shell).\nconst queryClient = new QueryClient({\n mutationCache: new MutationCache({\n onError: (error) => {\n notify.error(\n 'Something went wrong',\n error instanceof Error ? error.message : 'Please try again.'\n );\n },\n }),\n defaultOptions: {\n queries: {\n staleTime: 5 * 60 * 1000,\n retry: 1,\n },\n },\n});\n\nexport const AdapterCloudRoot: FC<AdapterCloudRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t: translate } = useI18n();\n const t = useCallback(\n (key: string, fallback: string): string => {\n const value = translate(key);\n return value === key ? fallback : value;\n },\n [translate]\n );\n\n // Helper to join paths correctly\n const joinPath = (base: string, path: string): string => {\n const cleanBase = base.endsWith('/') ? base.slice(0, -1) : base;\n const cleanPath = path.startsWith('/') ? path : `/${path}`;\n return cleanBase + cleanPath;\n };\n\n // Register navigation items with shell on mount\n useEffect(() => {\n if (!registerNavItems) return;\n\n const navItems: NavItem[] = [\n // Overview\n {\n id: 'adaptercloud-overview',\n label: t('adaptercloud.nav.overview', 'Overview'),\n path: joinPath(basePath, ''),\n icon: <LayoutDashboard size={20} />,\n order: 1,\n group: 'main',\n },\n\n // Fabric\n {\n id: 'adaptercloud-adapters',\n label: t('adaptercloud.nav.adapters', 'Adapters'),\n path: joinPath(basePath, 'adapters'),\n icon: <Boxes size={20} />,\n order: 10,\n group: 'fabric',\n },\n {\n id: 'adaptercloud-connections',\n label: t('adaptercloud.nav.connections', 'Connections'),\n path: joinPath(basePath, 'connections'),\n icon: <Cable size={20} />,\n order: 11,\n group: 'fabric',\n },\n {\n id: 'adaptercloud-resources',\n label: t('adaptercloud.nav.resources', 'Resources'),\n path: joinPath(basePath, 'resources'),\n icon: <Server size={20} />,\n order: 12,\n group: 'fabric',\n },\n {\n id: 'adaptercloud-topology',\n label: t('adaptercloud.nav.topology', 'Topology'),\n path: joinPath(basePath, 'topology'),\n icon: <Waypoints size={20} />,\n order: 13,\n group: 'fabric',\n },\n\n // Governance\n {\n id: 'adaptercloud-policies',\n label: t('adaptercloud.nav.policies', 'Policies'),\n path: joinPath(basePath, 'policies'),\n icon: <ScrollText size={20} />,\n order: 20,\n group: 'governance',\n },\n {\n id: 'adaptercloud-violations',\n label: t('adaptercloud.nav.violations', 'Violations'),\n path: joinPath(basePath, 'violations'),\n icon: <ShieldAlert size={20} />,\n order: 21,\n group: 'governance',\n },\n {\n id: 'adaptercloud-drift',\n label: t('adaptercloud.nav.drift', 'Drift'),\n path: joinPath(basePath, 'drift'),\n icon: <GitCompareArrows size={20} />,\n order: 22,\n group: 'governance',\n },\n\n // Operations\n {\n id: 'adaptercloud-sync-runs',\n label: t('adaptercloud.nav.syncRuns', 'Sync Runs'),\n path: joinPath(basePath, 'sync-runs'),\n icon: <Activity size={20} />,\n order: 30,\n group: 'operations',\n },\n {\n id: 'adaptercloud-costs',\n label: t('adaptercloud.nav.finops', 'FinOps'),\n path: joinPath(basePath, 'costs'),\n icon: <DollarSign size={20} />,\n order: 31,\n group: 'operations',\n },\n ];\n\n const cleanup = registerNavItems(navItems);\n return cleanup;\n }, [registerNavItems, basePath, t]);\n\n // Register footer items\n useEffect(() => {\n if (!registerFooterItems) return;\n\n const footerItems = [\n {\n id: 'adaptercloud-status',\n label: t('adaptercloud.footer.ready', 'AdapterCloud Ready'),\n type: 'status' as const,\n order: 10,\n section: 'left' as const,\n },\n ];\n\n const cleanup = registerFooterItems(footerItems);\n return cleanup;\n }, [registerFooterItems, t]);\n\n return (\n <QueryClientProvider client={queryClient}>\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <AdapterCloudProvider {...props}>\n <AdapterCloudRoutes />\n </AdapterCloudProvider>\n </FeatureFlagProvider>\n </QueryClientProvider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"AdapterCloudRoot.js","names":[],"sources":["../../src/adaptercloud/AdapterCloudRoot.tsx"],"sourcesContent":["/**\n * AdapterCloud Root Component\n * @module adaptercloud\n */\n\nimport type { FC } from 'react';\nimport { useEffect } from 'react';\nimport { MutationCache, QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { useTr } from './hooks/useTr';\nimport {\n LayoutDashboard,\n Boxes,\n Cable,\n Server,\n Waypoints,\n ScrollText,\n ShieldAlert,\n GitCompareArrows,\n Activity,\n DollarSign,\n} from 'lucide-react';\nimport { AdapterCloudProvider } from './context/AdapterCloudContext';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { AdapterCloudRoutes } from './AdapterCloudRoutes';\nimport { notify } from './lib/toast';\nimport type { AdapterCloudRootProps, NavItem } from './types';\n\n// Create a query client for this microfrontend. A shared MutationCache surfaces\n// every failed write as a toast, so no mutation can fail silently with only\n// inline error state (the <Toaster> is owned by the host app shell).\nconst queryClient = new QueryClient({\n mutationCache: new MutationCache({\n onError: (error) => {\n notify.error(\n 'Something went wrong',\n error instanceof Error ? error.message : 'Please try again.'\n );\n },\n }),\n defaultOptions: {\n queries: {\n staleTime: 5 * 60 * 1000,\n retry: 1,\n },\n },\n});\n\nexport const AdapterCloudRoot: FC<AdapterCloudRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const t = useTr();\n\n // Helper to join paths correctly\n const joinPath = (base: string, path: string): string => {\n const cleanBase = base.endsWith('/') ? base.slice(0, -1) : base;\n const cleanPath = path.startsWith('/') ? path : `/${path}`;\n return cleanBase + cleanPath;\n };\n\n // Register navigation items with shell on mount\n useEffect(() => {\n if (!registerNavItems) return;\n\n const navItems: NavItem[] = [\n // Overview\n {\n id: 'adaptercloud-overview',\n label: t('adaptercloud.nav.overview', 'Overview'),\n path: joinPath(basePath, ''),\n icon: <LayoutDashboard size={20} />,\n order: 1,\n group: 'main',\n },\n\n // Fabric\n {\n id: 'adaptercloud-adapters',\n label: t('adaptercloud.nav.adapters', 'Adapters'),\n path: joinPath(basePath, 'adapters'),\n icon: <Boxes size={20} />,\n order: 10,\n group: 'fabric',\n },\n {\n id: 'adaptercloud-connections',\n label: t('adaptercloud.nav.connections', 'Connections'),\n path: joinPath(basePath, 'connections'),\n icon: <Cable size={20} />,\n order: 11,\n group: 'fabric',\n },\n {\n id: 'adaptercloud-resources',\n label: t('adaptercloud.nav.resources', 'Resources'),\n path: joinPath(basePath, 'resources'),\n icon: <Server size={20} />,\n order: 12,\n group: 'fabric',\n },\n {\n id: 'adaptercloud-topology',\n label: t('adaptercloud.nav.topology', 'Topology'),\n path: joinPath(basePath, 'topology'),\n icon: <Waypoints size={20} />,\n order: 13,\n group: 'fabric',\n },\n\n // Governance\n {\n id: 'adaptercloud-policies',\n label: t('adaptercloud.nav.policies', 'Policies'),\n path: joinPath(basePath, 'policies'),\n icon: <ScrollText size={20} />,\n order: 20,\n group: 'governance',\n },\n {\n id: 'adaptercloud-violations',\n label: t('adaptercloud.nav.violations', 'Violations'),\n path: joinPath(basePath, 'violations'),\n icon: <ShieldAlert size={20} />,\n order: 21,\n group: 'governance',\n },\n {\n id: 'adaptercloud-drift',\n label: t('adaptercloud.nav.drift', 'Drift'),\n path: joinPath(basePath, 'drift'),\n icon: <GitCompareArrows size={20} />,\n order: 22,\n group: 'governance',\n },\n\n // Operations\n {\n id: 'adaptercloud-sync-runs',\n label: t('adaptercloud.nav.syncRuns', 'Sync Runs'),\n path: joinPath(basePath, 'sync-runs'),\n icon: <Activity size={20} />,\n order: 30,\n group: 'operations',\n },\n {\n id: 'adaptercloud-costs',\n label: t('adaptercloud.nav.finops', 'FinOps'),\n path: joinPath(basePath, 'costs'),\n icon: <DollarSign size={20} />,\n order: 31,\n group: 'operations',\n },\n ];\n\n const cleanup = registerNavItems(navItems);\n return cleanup;\n }, [registerNavItems, basePath, t]);\n\n // Register footer items\n useEffect(() => {\n if (!registerFooterItems) return;\n\n const footerItems = [\n {\n id: 'adaptercloud-status',\n label: t('adaptercloud.footer.ready', 'AdapterCloud Ready'),\n type: 'status' as const,\n order: 10,\n section: 'left' as const,\n },\n ];\n\n const cleanup = registerFooterItems(footerItems);\n return cleanup;\n }, [registerFooterItems, t]);\n\n return (\n <QueryClientProvider client={queryClient}>\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <AdapterCloudProvider {...props}>\n <AdapterCloudRoutes />\n </AdapterCloudProvider>\n </FeatureFlagProvider>\n </QueryClientProvider>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+
3
+ interface ActiveSwitchProps {
4
+ checked: boolean;
5
+ onToggle: () => void;
6
+ disabled?: boolean;
7
+ /** Accessible name — describes the action the switch performs. */
8
+ label: string;
9
+ /** Optional visible text rendered beside the switch. */
10
+ children?: React.ReactNode;
11
+ /** Stop the click from reaching a clickable ancestor (e.g. a card row). */
12
+ stopPropagation?: boolean;
13
+ className?: string;
14
+ }
15
+ export declare const ActiveSwitch: FC<ActiveSwitchProps>;
16
+ export {};
17
+ //# sourceMappingURL=ActiveSwitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActiveSwitch.d.ts","sourceRoot":"","sources":["../../../src/adaptercloud/components/ActiveSwitch.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,UAAU,iBAAiB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAmC9C,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { cn as e } from "../utils/cn.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ //#region src/adaptercloud/components/ActiveSwitch.tsx
4
+ var r = ({ checked: r, onToggle: i, disabled: a = !1, label: o, children: s, stopPropagation: c = !1, className: l }) => /* @__PURE__ */ n("div", {
5
+ className: e("flex items-center gap-2", l),
6
+ children: [/* @__PURE__ */ t("button", {
7
+ type: "button",
8
+ role: "switch",
9
+ "aria-checked": r,
10
+ "aria-label": o,
11
+ disabled: a,
12
+ onClick: (e) => {
13
+ c && e.stopPropagation(), i();
14
+ },
15
+ className: e("relative inline-flex h-5 w-9 shrink-0 items-center rounded-full border transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] disabled:opacity-60", r ? "border-transparent bg-action-primary-bg" : "border-border-subtle bg-bg-sunken"),
16
+ children: /* @__PURE__ */ t("span", {
17
+ "aria-hidden": "true",
18
+ className: e("inline-block h-3.5 w-3.5 transform rounded-full shadow-sm transition-transform", r ? "translate-x-4 bg-action-primary-text" : "translate-x-0.5 bg-text-secondary")
19
+ })
20
+ }), s && /* @__PURE__ */ t("span", {
21
+ className: "text-xs text-text-secondary",
22
+ children: s
23
+ })]
24
+ });
25
+ //#endregion
26
+ export { r as ActiveSwitch };
27
+
28
+ //# sourceMappingURL=ActiveSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActiveSwitch.js","names":[],"sources":["../../../src/adaptercloud/components/ActiveSwitch.tsx"],"sourcesContent":["/**\n * Active Switch Component\n * @module adaptercloud/components\n *\n * The inline on/off control used wherever a governance object's `isActive`\n * flag can be flipped in place (policy list rows, policy detail header). Pure\n * presentation — the caller owns the mutation and the optimistic state.\n */\n\nimport type { FC } from 'react';\nimport { cn } from '../utils/cn';\n\ninterface ActiveSwitchProps {\n checked: boolean;\n onToggle: () => void;\n disabled?: boolean;\n /** Accessible name — describes the action the switch performs. */\n label: string;\n /** Optional visible text rendered beside the switch. */\n children?: React.ReactNode;\n /** Stop the click from reaching a clickable ancestor (e.g. a card row). */\n stopPropagation?: boolean;\n className?: string;\n}\n\nexport const ActiveSwitch: FC<ActiveSwitchProps> = ({\n checked,\n onToggle,\n disabled = false,\n label,\n children,\n stopPropagation = false,\n className,\n}) => (\n <div className={cn('flex items-center gap-2', className)}>\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n aria-label={label}\n disabled={disabled}\n onClick={(e) => {\n if (stopPropagation) e.stopPropagation();\n onToggle();\n }}\n className={cn(\n 'relative inline-flex h-5 w-9 shrink-0 items-center rounded-full border transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] disabled:opacity-60',\n checked ? 'border-transparent bg-action-primary-bg' : 'border-border-subtle bg-bg-sunken'\n )}\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'inline-block h-3.5 w-3.5 transform rounded-full shadow-sm transition-transform',\n checked ? 'translate-x-4 bg-action-primary-text' : 'translate-x-0.5 bg-text-secondary'\n )}\n />\n </button>\n {children && <span className=\"text-xs text-text-secondary\">{children}</span>}\n </div>\n);\n"],"mappings":";;;AAyBA,IAAa,KAAuC,EAClD,YACA,aACA,cAAW,IACX,UACA,aACA,qBAAkB,IAClB,mBAEA,kBAAC,OAAD;CAAK,WAAW,EAAG,2BAA2B,CAAS;WAAvD,CACE,kBAAC,UAAD;EACE,MAAK;EACL,MAAK;EACL,gBAAc;EACd,cAAY;EACF;EACV,UAAU,MAAM;GAEd,AADI,KAAiB,EAAE,gBAAgB,GACvC,EAAS;EACX;EACA,WAAW,EACT,qMACA,IAAU,4CAA4C,mCACxD;YAEA,kBAAC,QAAD;GACE,eAAY;GACZ,WAAW,EACT,kFACA,IAAU,yCAAyC,mCACrD;EACD,CAAA;CACK,CAAA,GACP,KAAY,kBAAC,QAAD;EAAM,WAAU;EAA+B;CAAe,CAAA,CACxE"}
@@ -9,4 +9,5 @@ export { SeverityBadge } from './SeverityBadge';
9
9
  export { EmptyState } from './EmptyState';
10
10
  export { DataState } from './DataState';
11
11
  export { ConfirmDialog } from './ConfirmDialog';
12
+ export { ActiveSwitch } from './ActiveSwitch';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adaptercloud/components/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adaptercloud/components/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  * Hooks Index
3
3
  * @module adaptercloud/hooks
4
4
  */
5
+ export { useTr } from './useTr';
5
6
  export { adaKeys, useAdaHealth, useAdapters, useAdapter, useCreateAdapter, useUpdateAdapter, useArchiveAdapter, useConnections, useConnection, useCreateConnection, useUpdateConnection, useSetConnectionStatus, useDisableConnection, useResources, useResource, usePolicies, usePolicy, useCreatePolicy, useUpdatePolicy, useArchivePolicy, useViolations, useResolveViolation, useDriftRecords, useRemediateDrift, useSyncRuns, useStartSyncRun, useCancelSyncRun, useCostSummary, useCostRecords, } from './useAdapterCloudApi';
6
7
  export type { AdapterListFilter, ConnectionListFilter, ResourceListFilter, PolicyListFilter, ViolationListFilter, DriftListFilter, SyncRunListFilter, CostRecordListFilter, } from './useAdapterCloudApi';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adaptercloud/hooks/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,OAAO,EAEP,YAAY,EAEZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAEjB,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EAEpB,YAAY,EACZ,WAAW,EAEX,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EAEhB,aAAa,EACb,mBAAmB,EAEnB,eAAe,EACf,iBAAiB,EAEjB,WAAW,EACX,eAAe,EACf,gBAAgB,EAEhB,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adaptercloud/hooks/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EACL,OAAO,EAEP,YAAY,EAEZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EAEjB,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EAEpB,YAAY,EACZ,WAAW,EAEX,WAAW,EACX,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EAEhB,aAAa,EACb,mBAAmB,EAEnB,eAAe,EACf,iBAAiB,EAEjB,WAAW,EACX,eAAe,EACf,gBAAgB,EAEhB,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC"}
@@ -15,6 +15,7 @@ export declare const adaKeys: {
15
15
  policy: (id: string) => readonly ["adaptercloud", "policy", string];
16
16
  violations: (filter: Record<string, unknown>) => readonly ["adaptercloud", "violations", Record<string, unknown>];
17
17
  drift: (filter: Record<string, unknown>) => readonly ["adaptercloud", "drift", Record<string, unknown>];
18
+ driftCount: (status?: AdaDriftStatus) => readonly ["adaptercloud", "drift", "count", AdaDriftStatus | null];
18
19
  syncRuns: (filter: Record<string, unknown>) => readonly ["adaptercloud", "sync-runs", Record<string, unknown>];
19
20
  syncRun: (id: string) => readonly ["adaptercloud", "sync-run", string];
20
21
  topology: (filter: Record<string, unknown>) => readonly ["adaptercloud", "topology", Record<string, unknown>];
@@ -78,7 +79,14 @@ export interface ViolationListFilter {
78
79
  status?: AdaViolationStatus;
79
80
  pagination?: PaginationInput;
80
81
  }
81
- export declare const useViolations: (filter?: ViolationListFilter) => import('@tanstack/react-query').UseQueryResult<NoInfer<AdaPolicyViolationPage>, Error>;
82
+ /**
83
+ * @param options.enabled Set false to hold the query until its inputs are
84
+ * known (e.g. a policy-scoped count whose route id has not resolved), so it
85
+ * never falls back to an unintended estate-wide fetch.
86
+ */
87
+ export declare const useViolations: (filter?: ViolationListFilter, options?: {
88
+ enabled?: boolean;
89
+ }) => import('@tanstack/react-query').UseQueryResult<NoInfer<AdaPolicyViolationPage>, Error>;
82
90
  export declare const useResolveViolation: () => import('@tanstack/react-query').UseMutationResult<AdaPolicyViolation, Error, {
83
91
  id: string;
84
92
  status: AdaViolationStatus;
@@ -89,13 +97,31 @@ export interface DriftListFilter {
89
97
  status?: AdaDriftStatus;
90
98
  }
91
99
  export declare const useDriftRecords: (filter?: DriftListFilter) => import('@tanstack/react-query').UseQueryResult<NoInfer<AdaDriftRecord[]>, Error>;
100
+ /**
101
+ * Exact, estate-wide count of drift records for one status (every status when
102
+ * omitted).
103
+ *
104
+ * Reads `pageInfo.totalCount` from a `limit: 1` query rather than measuring a
105
+ * fetched page: {@link useDriftRecords} caps at the service's 100-row page
106
+ * ceiling, so counting its result silently plateaus once an estate has more
107
+ * drift than that. Resolves to `null` when a deployed schema does not expose
108
+ * `totalCount`, which callers must render as "unknown" rather than as zero.
109
+ */
110
+ export declare const useDriftCount: (status?: AdaDriftStatus) => import('@tanstack/react-query').UseQueryResult<number | null, Error>;
92
111
  export declare const useRemediateDrift: () => import('@tanstack/react-query').UseMutationResult<AdaDriftRecord, Error, string, unknown>;
93
112
  export interface SyncRunListFilter {
94
113
  connectionId?: string;
95
114
  status?: AdaSyncStatus;
96
115
  pagination?: PaginationInput;
97
116
  }
98
- export declare const useSyncRuns: (filter?: SyncRunListFilter) => import('@tanstack/react-query').UseQueryResult<NoInfer<AdaSyncRunPage>, Error>;
117
+ /**
118
+ * @param options.enabled Set false to hold the query until its inputs are
119
+ * known (e.g. a connection-scoped panel whose route id has not resolved),
120
+ * so it never falls back to an unintended estate-wide fetch.
121
+ */
122
+ export declare const useSyncRuns: (filter?: SyncRunListFilter, options?: {
123
+ enabled?: boolean;
124
+ }) => import('@tanstack/react-query').UseQueryResult<NoInfer<AdaSyncRunPage>, Error>;
99
125
  export declare const useStartSyncRun: () => import('@tanstack/react-query').UseMutationResult<AdaSyncRun, Error, AdaStartSyncRunInput, unknown>;
100
126
  export declare const useCancelSyncRun: () => import('@tanstack/react-query').UseMutationResult<AdaSyncRun, Error, string, unknown>;
101
127
  export declare const useCostSummary: (connectionId?: string) => import('@tanstack/react-query').UseQueryResult<NoInfer<AdaCostSummary>, Error>;
@@ -1 +1 @@
1
- {"version":3,"file":"useAdapterCloudApi.d.ts","sourceRoot":"","sources":["../../../src/adaptercloud/hooks/useAdapterCloudApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useAdapterCloudApi.d.ts","sourceRoot":"","sources":["../../../src/adaptercloud/hooks/useAdapterCloudApi.ts"],"names":[],"mappings":"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"}