@datatechsolutions/ui 2.11.84 → 2.11.85
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.
- package/dist/astrlabe/index.js +107 -107
- package/dist/astrlabe/index.mjs +4 -4
- package/dist/astrlabe/workflow-canvas.js +4 -4
- package/dist/astrlabe/workflow-canvas.mjs +3 -3
- package/dist/{chunk-JJWFMKZY.js → chunk-2URBM4LA.js} +7 -7
- package/dist/{chunk-JJWFMKZY.js.map → chunk-2URBM4LA.js.map} +1 -1
- package/dist/{chunk-WGELLCOZ.js → chunk-3YVQXDKJ.js} +4 -4
- package/dist/{chunk-WGELLCOZ.js.map → chunk-3YVQXDKJ.js.map} +1 -1
- package/dist/{chunk-SGJ24J2Q.js → chunk-6F3IMKDZ.js} +39 -39
- package/dist/{chunk-SGJ24J2Q.js.map → chunk-6F3IMKDZ.js.map} +1 -1
- package/dist/{chunk-CCRBT7TA.mjs → chunk-6OWYGDNW.mjs} +6 -6
- package/dist/{chunk-CCRBT7TA.mjs.map → chunk-6OWYGDNW.mjs.map} +1 -1
- package/dist/{chunk-BH2AU3LG.mjs → chunk-D4TESEYK.mjs} +3 -3
- package/dist/{chunk-BH2AU3LG.mjs.map → chunk-D4TESEYK.mjs.map} +1 -1
- package/dist/{chunk-EDE36MKE.mjs → chunk-G7DZU3NM.mjs} +3 -3
- package/dist/{chunk-EDE36MKE.mjs.map → chunk-G7DZU3NM.mjs.map} +1 -1
- package/dist/{chunk-63AL2RN5.mjs → chunk-HK6J6HQP.mjs} +4 -4
- package/dist/{chunk-63AL2RN5.mjs.map → chunk-HK6J6HQP.mjs.map} +1 -1
- package/dist/{chunk-MNQEZL7B.mjs → chunk-JUTOBBBI.mjs} +4 -4
- package/dist/{chunk-MNQEZL7B.mjs.map → chunk-JUTOBBBI.mjs.map} +1 -1
- package/dist/{chunk-CXIQWPBH.js → chunk-K26RY4EQ.js} +26 -26
- package/dist/{chunk-CXIQWPBH.js.map → chunk-K26RY4EQ.js.map} +1 -1
- package/dist/{chunk-GV6WJCEB.js → chunk-KNXAOJAK.js} +3 -3
- package/dist/{chunk-GV6WJCEB.js.map → chunk-KNXAOJAK.js.map} +1 -1
- package/dist/{chunk-SW6TVAIJ.js → chunk-SV4SMITM.js} +36 -36
- package/dist/{chunk-SW6TVAIJ.js.map → chunk-SV4SMITM.js.map} +1 -1
- package/dist/{chunk-HU3EAHFO.mjs → chunk-TLDVFFAK.mjs} +3 -3
- package/dist/{chunk-HU3EAHFO.mjs.map → chunk-TLDVFFAK.mjs.map} +1 -1
- package/dist/{chunk-EFREXNZB.js → chunk-TZ62G5WM.js} +64 -64
- package/dist/{chunk-EFREXNZB.js.map → chunk-TZ62G5WM.js.map} +1 -1
- package/dist/{chunk-CHLJUSXX.mjs → chunk-XOZMUCMF.mjs} +4 -4
- package/dist/{chunk-CHLJUSXX.mjs.map → chunk-XOZMUCMF.mjs.map} +1 -1
- package/dist/{chunk-L6FVIWAJ.js → chunk-ZHHRWC27.js} +128 -128
- package/dist/{chunk-L6FVIWAJ.js.map → chunk-ZHHRWC27.js.map} +1 -1
- package/dist/{chunk-I6WYV2AN.mjs → chunk-ZJQ5RLGK.mjs} +3 -3
- package/dist/{chunk-I6WYV2AN.mjs.map → chunk-ZJQ5RLGK.mjs.map} +1 -1
- package/dist/index.js +761 -761
- package/dist/index.mjs +2 -2
- package/dist/platform/agents-workspace.js +7 -7
- package/dist/platform/agents-workspace.mjs +6 -6
- package/dist/platform/app-shell.js +4 -4
- package/dist/platform/app-shell.mjs +3 -3
- package/dist/platform/index.js +37 -37
- package/dist/platform/index.mjs +11 -11
- package/dist/platform/pages/index.js +202 -197
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +14 -9
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/workflow-canvas-shell.js +5 -5
- package/dist/platform/workflow-canvas-shell.mjs +4 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/platform/platform-state-provider.tsx","../src/platform/app-shell.tsx"],"names":["createContext","useAuth","useMemo","useContext","LOCALE_FLAGS","useTranslations","usePlatformPreferences","usePathname","useRouter","useNotifications","useLocale","LANGUAGE_META","useCallback","jsx","PlatformShell","RectangleStackIcon","HomeIcon"],"mappings":"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","file":"chunk-JJWFMKZY.js","sourcesContent":["import { createContext, useContext, useMemo, type ReactNode } from 'react'\nimport { useAuth, type AuthUser } from '@datatechsolutions/windsock/client'\n\ntype PlatformState = {\n currentOrganizationId: string\n actor: AuthUser | null\n}\n\nconst PlatformStateContext = createContext<PlatformState | null>(null)\n\nexport type PlatformStateProviderProps = {\n children: ReactNode\n /**\n * Function that converts a JWT role claim to the app's canonical role\n * union (the same `normalizePlatformRole` produced by\n * `createPlatformRbac()` in this app). Lifted out as a prop because\n * each consuming app uses its own role enum.\n */\n normalizeRole: (input: unknown) => string\n}\n\nexport function PlatformStateProvider({ children, normalizeRole }: PlatformStateProviderProps) {\n const { user } = useAuth()\n\n const state = useMemo<PlatformState>(() => {\n const organizationId = user?.organizationId ?? ''\n\n const actor: AuthUser | null = user\n ? {\n ...user,\n role: normalizeRole(user.role),\n organizationId,\n }\n : null\n\n return {\n currentOrganizationId: organizationId,\n actor,\n }\n }, [user, normalizeRole])\n\n return (\n <PlatformStateContext.Provider value={state}>\n {children}\n </PlatformStateContext.Provider>\n )\n}\n\nexport function usePlatformState() {\n const context = useContext(PlatformStateContext)\n if (!context) throw new Error('usePlatformState must be used inside PlatformStateProvider')\n return context\n}\n","import { useCallback, useMemo, type ComponentType, type ReactNode } from 'react'\nimport { RectangleStackIcon, HomeIcon } from '@heroicons/react/24/outline'\nimport { useAuth, usePlatformPreferences } from '@datatechsolutions/windsock/client'\nimport { LANGUAGE_META } from '@datatechsolutions/shared-domain/i18n'\nimport {\n PlatformShell,\n type NavigationItem,\n} from '@ui/index'\nimport { useNotifications } from '@ui/components/notifications'\nimport { useLocale, useTranslations } from '@ui/lib/i18n-context'\nimport { usePathname, useRouter } from '@ui/lib/router-context'\nimport { LOCALE_FLAGS } from '@ui/lib/locale-flags'\nimport { usePlatformState } from './platform-state-provider'\n\nfunction resolveFlag(locale: string): string | undefined {\n const code = locale === 'pt-BR' ? 'br' : locale\n return LOCALE_FLAGS?.[code as keyof typeof LOCALE_FLAGS]\n}\n\nexport type PlatformAppShellProps = {\n /** App display name (e.g. \"Astrlabe\"). */\n appName: string\n /** Tailwind gradient classes for the shell branding (e.g. \"from-sky-500 to-indigo-600\"). */\n appGradient: string\n /** Branded logo node rendered inside the flyout trigger. */\n appLogo: ReactNode\n /**\n * Optional app icon for the branded loader (defaults to the platform's\n * RectangleStackIcon if omitted).\n */\n appIcon?: ReactNode\n /**\n * Optional override for the dock dashboard icon (defaults to HomeIcon).\n */\n dashboardIcon?: ComponentType<{ className?: string }>\n\n /** App-specific navigation items already pre-translated. */\n navigationItems: NavigationItem[]\n /** Custom ordering of launchpad page tiles. */\n pageOrder: string[]\n /**\n * Map of navigation/module ID → required permission name. The shell\n * filters `navigationItems` so that any item whose ID has an entry here\n * is hidden unless `hasPermission` returns true for the listed permission.\n */\n modulePermissions: Record<string, string>\n /**\n * Permission predicate, typically `(p) => can(actor, p)` from each app's\n * `createPlatformRbac()` factory.\n */\n hasPermission: (permission: string) => boolean\n\n /**\n * Optional settings/profile drawer content (e.g. an app-specific\n * `<SettingsModal>`). Receives the open state + close handler the shell\n * manages internally so the drawer renders inside the shell chrome.\n */\n settingsModal?: (props: { open: boolean; onClose: () => void }) => ReactNode\n\n children: ReactNode\n}\n\n/**\n * Cross-app platform shell — wires `<PlatformShell>` from ui to windsock's\n * auth + preferences hooks and to ui's i18n/router contexts. Each app\n * passes its own logo, gradient, navigation, and permission predicate; the\n * rest of the chrome (header, dock, flyout, sign-out confirm modal) is\n * shared.\n */\nexport function PlatformAppShell({\n appName,\n appGradient,\n appLogo,\n appIcon,\n dashboardIcon,\n navigationItems,\n pageOrder,\n modulePermissions,\n hasPermission,\n settingsModal,\n children,\n}: PlatformAppShellProps) {\n const tCommon = useTranslations('common')\n const { user, status, logout } = useAuth()\n // Validate the platform-state provider is mounted above this shell;\n // the actor itself isn't read here, but the same provider feeds children.\n usePlatformState()\n const { resolvedTheme, setTheme, dockPosition, dockAutoHide, dockEnabled } = usePlatformPreferences()\n const pathname = usePathname()\n const router = useRouter()\n const { history, openHistory } = useNotifications()\n const currentLocale = useLocale()\n const localeMeta = LANGUAGE_META[currentLocale as keyof typeof LANGUAGE_META]\n\n const items = useMemo(() => navigationItems.filter((item) => {\n const permission = modulePermissions[item.id]\n if (!permission) return true\n return hasPermission(permission)\n }), [navigationItems, modulePermissions, hasPermission])\n\n const handleSignOut = useCallback(() => { void logout('/login') }, [logout])\n const handleToggleTheme = useCallback(\n () => { setTheme(resolvedTheme === 'dark' ? 'light' : 'dark') },\n [resolvedTheme, setTheme],\n )\n const handleNavigate = useCallback((href: string) => router.push(href), [router])\n const handlePrefetch = useCallback((href: string) => router.prefetch(href), [router])\n\n const shellUser = user\n ? {\n name: user.name ?? null,\n email: user.email ?? null,\n image: user.image ?? null,\n role: user.role ?? null,\n permissions: user.permissions as string[] | undefined,\n organizationId: user.organizationId ?? null,\n }\n : null\n\n return (\n <PlatformShell\n items={items}\n launchpadPageOrder={pageOrder}\n user={shellUser}\n authStatus={status}\n onSignOut={handleSignOut}\n dockPosition={dockPosition}\n dockAutoHide={dockAutoHide}\n dockEnabled={dockEnabled}\n resolvedTheme={resolvedTheme}\n onToggleTheme={handleToggleTheme}\n pathname={pathname}\n onNavigate={handleNavigate}\n onPrefetch={handlePrefetch}\n appName={appName}\n appIcon={appIcon ?? <RectangleStackIcon className=\"h-full w-full\" />}\n appLogo={appLogo}\n appGradient={appGradient}\n dashboardIcon={dashboardIcon ?? HomeIcon}\n notificationCount={history.length}\n onNotifications={openHistory}\n labels={{\n home: tCommon('home'),\n profile: tCommon('profile'),\n signOut: tCommon('signOut'),\n signOutConfirmTitle: tCommon('signOutConfirmTitle'),\n cancel: tCommon('cancel'),\n notifications: tCommon('notifications'),\n theme: tCommon('theme'),\n currentTheme: resolvedTheme === 'dark' ? tCommon('darkMode') : tCommon('lightMode'),\n language: tCommon('language'),\n currentLocale: localeMeta?.nativeName ?? currentLocale,\n localeFlag: resolveFlag(currentLocale),\n actions: tCommon('actions'),\n }}\n {...(settingsModal ? { profileDrawer: settingsModal } : {})}\n >\n {children}\n </PlatformShell>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/platform/platform-state-provider.tsx","../src/platform/app-shell.tsx"],"names":["createContext","useAuth","useMemo","useContext","LOCALE_FLAGS","useTranslations","usePlatformPreferences","usePathname","useRouter","useNotifications","useLocale","LANGUAGE_META","useCallback","jsx","PlatformShell","RectangleStackIcon","HomeIcon"],"mappings":"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","file":"chunk-2URBM4LA.js","sourcesContent":["import { createContext, useContext, useMemo, type ReactNode } from 'react'\nimport { useAuth, type AuthUser } from '@datatechsolutions/windsock/client'\n\ntype PlatformState = {\n currentOrganizationId: string\n actor: AuthUser | null\n}\n\nconst PlatformStateContext = createContext<PlatformState | null>(null)\n\nexport type PlatformStateProviderProps = {\n children: ReactNode\n /**\n * Function that converts a JWT role claim to the app's canonical role\n * union (the same `normalizePlatformRole` produced by\n * `createPlatformRbac()` in this app). Lifted out as a prop because\n * each consuming app uses its own role enum.\n */\n normalizeRole: (input: unknown) => string\n}\n\nexport function PlatformStateProvider({ children, normalizeRole }: PlatformStateProviderProps) {\n const { user } = useAuth()\n\n const state = useMemo<PlatformState>(() => {\n const organizationId = user?.organizationId ?? ''\n\n const actor: AuthUser | null = user\n ? {\n ...user,\n role: normalizeRole(user.role),\n organizationId,\n }\n : null\n\n return {\n currentOrganizationId: organizationId,\n actor,\n }\n }, [user, normalizeRole])\n\n return (\n <PlatformStateContext.Provider value={state}>\n {children}\n </PlatformStateContext.Provider>\n )\n}\n\nexport function usePlatformState() {\n const context = useContext(PlatformStateContext)\n if (!context) throw new Error('usePlatformState must be used inside PlatformStateProvider')\n return context\n}\n","import { useCallback, useMemo, type ComponentType, type ReactNode } from 'react'\nimport { RectangleStackIcon, HomeIcon } from '@heroicons/react/24/outline'\nimport { useAuth, usePlatformPreferences } from '@datatechsolutions/windsock/client'\nimport { LANGUAGE_META } from '@datatechsolutions/shared-domain/i18n'\nimport {\n PlatformShell,\n type NavigationItem,\n} from '@ui/index'\nimport { useNotifications } from '@ui/components/notifications'\nimport { useLocale, useTranslations } from '@ui/lib/i18n-context'\nimport { usePathname, useRouter } from '@ui/lib/router-context'\nimport { LOCALE_FLAGS } from '@ui/lib/locale-flags'\nimport { usePlatformState } from './platform-state-provider'\n\nfunction resolveFlag(locale: string): string | undefined {\n const code = locale === 'pt-BR' ? 'br' : locale\n return LOCALE_FLAGS?.[code as keyof typeof LOCALE_FLAGS]\n}\n\nexport type PlatformAppShellProps = {\n /** App display name (e.g. \"Astrlabe\"). */\n appName: string\n /** Tailwind gradient classes for the shell branding (e.g. \"from-sky-500 to-indigo-600\"). */\n appGradient: string\n /** Branded logo node rendered inside the flyout trigger. */\n appLogo: ReactNode\n /**\n * Optional app icon for the branded loader (defaults to the platform's\n * RectangleStackIcon if omitted).\n */\n appIcon?: ReactNode\n /**\n * Optional override for the dock dashboard icon (defaults to HomeIcon).\n */\n dashboardIcon?: ComponentType<{ className?: string }>\n\n /** App-specific navigation items already pre-translated. */\n navigationItems: NavigationItem[]\n /** Custom ordering of launchpad page tiles. */\n pageOrder: string[]\n /**\n * Map of navigation/module ID → required permission name. The shell\n * filters `navigationItems` so that any item whose ID has an entry here\n * is hidden unless `hasPermission` returns true for the listed permission.\n */\n modulePermissions: Record<string, string>\n /**\n * Permission predicate, typically `(p) => can(actor, p)` from each app's\n * `createPlatformRbac()` factory.\n */\n hasPermission: (permission: string) => boolean\n\n /**\n * Optional settings/profile drawer content (e.g. an app-specific\n * `<SettingsModal>`). Receives the open state + close handler the shell\n * manages internally so the drawer renders inside the shell chrome.\n */\n settingsModal?: (props: { open: boolean; onClose: () => void }) => ReactNode\n\n children: ReactNode\n}\n\n/**\n * Cross-app platform shell — wires `<PlatformShell>` from ui to windsock's\n * auth + preferences hooks and to ui's i18n/router contexts. Each app\n * passes its own logo, gradient, navigation, and permission predicate; the\n * rest of the chrome (header, dock, flyout, sign-out confirm modal) is\n * shared.\n */\nexport function PlatformAppShell({\n appName,\n appGradient,\n appLogo,\n appIcon,\n dashboardIcon,\n navigationItems,\n pageOrder,\n modulePermissions,\n hasPermission,\n settingsModal,\n children,\n}: PlatformAppShellProps) {\n const tCommon = useTranslations('common')\n const { user, status, logout } = useAuth()\n // Validate the platform-state provider is mounted above this shell;\n // the actor itself isn't read here, but the same provider feeds children.\n usePlatformState()\n const { resolvedTheme, setTheme, dockPosition, dockAutoHide, dockEnabled } = usePlatformPreferences()\n const pathname = usePathname()\n const router = useRouter()\n const { history, openHistory } = useNotifications()\n const currentLocale = useLocale()\n const localeMeta = LANGUAGE_META[currentLocale as keyof typeof LANGUAGE_META]\n\n const items = useMemo(() => navigationItems.filter((item) => {\n const permission = modulePermissions[item.id]\n if (!permission) return true\n return hasPermission(permission)\n }), [navigationItems, modulePermissions, hasPermission])\n\n const handleSignOut = useCallback(() => { void logout('/login') }, [logout])\n const handleToggleTheme = useCallback(\n () => { setTheme(resolvedTheme === 'dark' ? 'light' : 'dark') },\n [resolvedTheme, setTheme],\n )\n const handleNavigate = useCallback((href: string) => router.push(href), [router])\n const handlePrefetch = useCallback((href: string) => router.prefetch(href), [router])\n\n const shellUser = user\n ? {\n name: user.name ?? null,\n email: user.email ?? null,\n image: user.image ?? null,\n role: user.role ?? null,\n permissions: user.permissions as string[] | undefined,\n organizationId: user.organizationId ?? null,\n }\n : null\n\n return (\n <PlatformShell\n items={items}\n launchpadPageOrder={pageOrder}\n user={shellUser}\n authStatus={status}\n onSignOut={handleSignOut}\n dockPosition={dockPosition}\n dockAutoHide={dockAutoHide}\n dockEnabled={dockEnabled}\n resolvedTheme={resolvedTheme}\n onToggleTheme={handleToggleTheme}\n pathname={pathname}\n onNavigate={handleNavigate}\n onPrefetch={handlePrefetch}\n appName={appName}\n appIcon={appIcon ?? <RectangleStackIcon className=\"h-full w-full\" />}\n appLogo={appLogo}\n appGradient={appGradient}\n dashboardIcon={dashboardIcon ?? HomeIcon}\n notificationCount={history.length}\n onNotifications={openHistory}\n labels={{\n home: tCommon('home'),\n profile: tCommon('profile'),\n signOut: tCommon('signOut'),\n signOutConfirmTitle: tCommon('signOutConfirmTitle'),\n cancel: tCommon('cancel'),\n notifications: tCommon('notifications'),\n theme: tCommon('theme'),\n currentTheme: resolvedTheme === 'dark' ? tCommon('darkMode') : tCommon('lightMode'),\n language: tCommon('language'),\n currentLocale: localeMeta?.nativeName ?? currentLocale,\n localeFlag: resolveFlag(currentLocale),\n actions: tCommon('actions'),\n }}\n {...(settingsModal ? { profileDrawer: settingsModal } : {})}\n >\n {children}\n </PlatformShell>\n )\n}\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkTZ62G5WM_js = require('./chunk-TZ62G5WM.js');
|
|
5
5
|
var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
|
|
8
8
|
function WorkflowCanvasShell({ graph, messages }) {
|
|
9
9
|
const locale = chunkYXN2K77G_js.useLocale();
|
|
10
10
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
11
|
-
|
|
11
|
+
chunkTZ62G5WM_js.Workspace,
|
|
12
12
|
{
|
|
13
13
|
initialGraph: graph,
|
|
14
14
|
locale,
|
|
@@ -18,5 +18,5 @@ function WorkflowCanvasShell({ graph, messages }) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
exports.WorkflowCanvasShell = WorkflowCanvasShell;
|
|
21
|
-
//# sourceMappingURL=chunk-
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
21
|
+
//# sourceMappingURL=chunk-3YVQXDKJ.js.map
|
|
22
|
+
//# sourceMappingURL=chunk-3YVQXDKJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/platform/workflow-canvas-shell.tsx"],"names":["useLocale","jsx","Workspace"],"mappings":";;;;;;AAkBO,SAAS,mBAAA,CAAoB,EAAE,KAAA,EAAO,QAAA,EAAS,EAAU;AAC9D,EAAA,MAAM,SAASA,0BAAA,EAAU;AACzB,EAAA,uBACEC,cAAA;AAAA,IAACC,0BAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAc,KAAA;AAAA,MACd,MAAA;AAAA,MACC,GAAI,QAAA,GAAW,EAAE,QAAA,KAAa;AAAC;AAAA,GAClC;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/platform/workflow-canvas-shell.tsx"],"names":["useLocale","jsx","Workspace"],"mappings":";;;;;;AAkBO,SAAS,mBAAA,CAAoB,EAAE,KAAA,EAAO,QAAA,EAAS,EAAU;AAC9D,EAAA,MAAM,SAASA,0BAAA,EAAU;AACzB,EAAA,uBACEC,cAAA;AAAA,IAACC,0BAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAc,KAAA;AAAA,MACd,MAAA;AAAA,MACC,GAAI,QAAA,GAAW,EAAE,QAAA,KAAa;AAAC;AAAA,GAClC;AAEJ","file":"chunk-3YVQXDKJ.js","sourcesContent":["import { useLocale } from '@ui/lib/i18n-context'\nimport { Workspace } from '@ui/astrlabe/workflow-canvas'\nimport type { WorkflowGraph as UiWorkflowGraph } from '@ui/astrlabe'\nimport type { WorkflowCanvasShellProps } from '@datatechsolutions/shared-domain/common'\n\n/**\n * Workflow canvas shell with optional message bundle override.\n *\n * Most apps wrap their tree in `<I18nProvider>` and let the canvas read\n * messages from context — in that case `messages` can be omitted. Apps\n * that need to inject a precomputed bundle (e.g. for tests or app-specific\n * overrides not shipped with shared-domain) can pass it explicitly.\n */\ntype Props = WorkflowCanvasShellProps & {\n /** Optional override for the messages catalog passed into the canvas. */\n messages?: Record<string, unknown>\n}\n\nexport function WorkflowCanvasShell({ graph, messages }: Props) {\n const locale = useLocale()\n return (\n <Workspace\n initialGraph={graph as unknown as UiWorkflowGraph}\n locale={locale}\n {...(messages ? { messages } : {})}\n />\n )\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkSV4SMITM_js = require('./chunk-SV4SMITM.js');
|
|
5
5
|
var chunkYXPHJ2BQ_js = require('./chunk-YXPHJ2BQ.js');
|
|
6
|
-
var
|
|
6
|
+
var chunkZHHRWC27_js = require('./chunk-ZHHRWC27.js');
|
|
7
7
|
var chunk5UU3RQRB_js = require('./chunk-5UU3RQRB.js');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var chunkTZ62G5WM_js = require('./chunk-TZ62G5WM.js');
|
|
9
|
+
var chunkKNXAOJAK_js = require('./chunk-KNXAOJAK.js');
|
|
10
10
|
var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
|
|
11
11
|
var react = require('react');
|
|
12
12
|
var reactRouter = require('react-router');
|
|
@@ -180,9 +180,9 @@ function applyWorkflowExecutionEventToStore(actions, event) {
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
function useWorkflowRunPresentation(events, status) {
|
|
183
|
-
const clearNodeResults =
|
|
184
|
-
const setIsRunning =
|
|
185
|
-
const setNodeResult =
|
|
183
|
+
const clearNodeResults = chunkTZ62G5WM_js.useWorkflowStore((state) => state.clearNodeResults);
|
|
184
|
+
const setIsRunning = chunkTZ62G5WM_js.useWorkflowStore((state) => state.setIsRunning);
|
|
185
|
+
const setNodeResult = chunkTZ62G5WM_js.useWorkflowStore((state) => state.setNodeResult);
|
|
186
186
|
react.useEffect(() => {
|
|
187
187
|
if (status === "idle") {
|
|
188
188
|
resetWorkflowRunPresentation({ clearNodeResults, setIsRunning, setNodeResult });
|
|
@@ -205,9 +205,9 @@ function useWorkflowExecution(workflowId) {
|
|
|
205
205
|
const [activeRunId, setActiveRunId] = react.useState(null);
|
|
206
206
|
const [isLaunching, setIsLaunching] = react.useState(false);
|
|
207
207
|
const stream = useRunEvents(workflowId || null, activeRunId);
|
|
208
|
-
const clearNodeResults =
|
|
209
|
-
const setIsRunning =
|
|
210
|
-
const setNodeResult =
|
|
208
|
+
const clearNodeResults = chunkTZ62G5WM_js.useWorkflowStore((state) => state.clearNodeResults);
|
|
209
|
+
const setIsRunning = chunkTZ62G5WM_js.useWorkflowStore((state) => state.setIsRunning);
|
|
210
|
+
const setNodeResult = chunkTZ62G5WM_js.useWorkflowStore((state) => state.setNodeResult);
|
|
211
211
|
useWorkflowRunPresentation(stream.events, activeRunId ? stream.status : "idle");
|
|
212
212
|
react.useEffect(() => {
|
|
213
213
|
if (stream.status === "completed" || stream.status === "failed" || stream.status === "error") {
|
|
@@ -332,7 +332,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
332
332
|
const tWorkflow = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
333
333
|
const tCommon = chunkYXN2K77G_js.useTranslations("common");
|
|
334
334
|
const datasourceLabels = useDatasourceLabels();
|
|
335
|
-
const { error: notifyError, success: notifySuccess } =
|
|
335
|
+
const { error: notifyError, success: notifySuccess } = chunkKNXAOJAK_js.useNotifications();
|
|
336
336
|
const showSuccess = react.useCallback((title, message) => {
|
|
337
337
|
notifySuccess(title, message);
|
|
338
338
|
}, [notifySuccess]);
|
|
@@ -356,20 +356,20 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
356
356
|
const [datasources, setDatasources] = react.useState([]);
|
|
357
357
|
const [modelConnections, setModelConnections] = react.useState([]);
|
|
358
358
|
const [showDatasourceModal, setShowDatasourceModal] = react.useState(false);
|
|
359
|
-
const openPipelineSettingsModal =
|
|
359
|
+
const openPipelineSettingsModal = chunkTZ62G5WM_js.useModalStore((s) => s.openPipelineSettingsModal);
|
|
360
360
|
const [showRunInputDialog, setShowRunInputDialog] = react.useState(false);
|
|
361
361
|
const [showPreviewPanel, setShowPreviewPanel] = react.useState(false);
|
|
362
362
|
const [isCreatingAgent, setIsCreatingAgent] = react.useState(false);
|
|
363
|
-
const openSubworkflowModal =
|
|
364
|
-
const closeSubworkflowModal =
|
|
363
|
+
const openSubworkflowModal = chunkZHHRWC27_js.useSubworkflowStore((s) => s.openModal);
|
|
364
|
+
const closeSubworkflowModal = chunkZHHRWC27_js.useSubworkflowStore((s) => s.closeModal);
|
|
365
365
|
const [deleteTarget, setDeleteTarget] = react.useState(null);
|
|
366
366
|
const [saveStatus, setSaveStatus] = react.useState("idle");
|
|
367
367
|
const latestGraphRef = react.useRef(null);
|
|
368
368
|
const saveTimerRef = react.useRef(null);
|
|
369
369
|
const skipInitialAutoSaveRef = react.useRef(true);
|
|
370
|
-
const showRunPanel =
|
|
371
|
-
const toggleRunPanel =
|
|
372
|
-
const workflowNodes =
|
|
370
|
+
const showRunPanel = chunkTZ62G5WM_js.useWorkflowStore((state) => state.showRunPanel);
|
|
371
|
+
const toggleRunPanel = chunkTZ62G5WM_js.useWorkflowStore((state) => state.toggleRunPanel);
|
|
372
|
+
const workflowNodes = chunkTZ62G5WM_js.useWorkflowStore((state) => state.nodes);
|
|
373
373
|
const { execute: executeWorkflowRun, stop: stopWorkflowRun, isRunning } = useWorkflowExecution(workflowId);
|
|
374
374
|
const loadWorkspaceData = react.useCallback(async () => {
|
|
375
375
|
setIsLoading(true);
|
|
@@ -652,7 +652,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
652
652
|
}
|
|
653
653
|
if (!workflow) {
|
|
654
654
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-[calc(100vh-120px)] items-center justify-center", children: loadError ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
655
|
-
|
|
655
|
+
chunkKNXAOJAK_js.PageErrorState,
|
|
656
656
|
{
|
|
657
657
|
statusCode: 500,
|
|
658
658
|
title: tCommon("serverError"),
|
|
@@ -663,7 +663,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
663
663
|
retryLabel: tCommon("retry")
|
|
664
664
|
}
|
|
665
665
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
666
|
-
|
|
666
|
+
chunkKNXAOJAK_js.PageEmptyState,
|
|
667
667
|
{
|
|
668
668
|
title: tWorkflow("emptyTitle"),
|
|
669
669
|
message: tWorkflow("emptyDescription"),
|
|
@@ -671,7 +671,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
671
671
|
}
|
|
672
672
|
) });
|
|
673
673
|
}
|
|
674
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
674
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkTZ62G5WM_js.WorkflowBuilderProvider, { publishableKey: getPublishableKey(), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-[calc(100vh-120px)] flex-col", "data-testid": "agents-workspace", children: [
|
|
675
675
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface flex h-full flex-col overflow-hidden rounded-2xl", children: [
|
|
676
676
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-shrink-0 items-center justify-between px-5 py-3", children: [
|
|
677
677
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
@@ -693,13 +693,13 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
693
693
|
children: workflow.name || tWorkflow("title")
|
|
694
694
|
}
|
|
695
695
|
),
|
|
696
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
696
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkKNXAOJAK_js.CopyableId, { id: workflowId, className: "text-[10px]" }),
|
|
697
697
|
workflow.isDraft ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center rounded-full bg-amber-100 px-2.5 py-0.5 text-[10px] font-semibold text-amber-800 dark:bg-amber-900/30 dark:text-amber-300", children: tWorkflow("draftBadge") }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center rounded-full bg-green-100 px-2.5 py-0.5 text-[10px] font-semibold text-green-800 dark:bg-green-900/30 dark:text-green-300", children: tWorkflow("published") }),
|
|
698
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
698
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZHHRWC27_js.SaveStatusBadge, { status: saveStatus })
|
|
699
699
|
] }),
|
|
700
700
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
701
701
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
702
|
-
|
|
702
|
+
chunkKNXAOJAK_js.Button,
|
|
703
703
|
{
|
|
704
704
|
size: "xs",
|
|
705
705
|
plain: true,
|
|
@@ -708,11 +708,11 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
708
708
|
children: /* @__PURE__ */ jsxRuntime.jsx(outline.ChartBarIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" })
|
|
709
709
|
}
|
|
710
710
|
),
|
|
711
|
-
isRunning ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
711
|
+
isRunning ? /* @__PURE__ */ jsxRuntime.jsxs(chunkKNXAOJAK_js.Button, { size: "xs", outline: true, onClick: stopWorkflowRun, children: [
|
|
712
712
|
/* @__PURE__ */ jsxRuntime.jsx(outline.StopIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
|
|
713
713
|
tWorkflow("runPanel.stop")
|
|
714
714
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
715
|
-
|
|
715
|
+
chunkKNXAOJAK_js.Button,
|
|
716
716
|
{
|
|
717
717
|
size: "xs",
|
|
718
718
|
outline: true,
|
|
@@ -725,7 +725,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
725
725
|
]
|
|
726
726
|
}
|
|
727
727
|
),
|
|
728
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
728
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkKNXAOJAK_js.Button, { gradient: true, size: "xs", onClick: () => {
|
|
729
729
|
void handlePublish();
|
|
730
730
|
}, disabled: isPublishing, children: [
|
|
731
731
|
/* @__PURE__ */ jsxRuntime.jsx(outline.DocumentCheckIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
|
|
@@ -735,7 +735,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
735
735
|
] }),
|
|
736
736
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-divider border-t" }),
|
|
737
737
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pt-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
738
|
-
|
|
738
|
+
chunkZHHRWC27_js.WorkflowListBar,
|
|
739
739
|
{
|
|
740
740
|
workflows,
|
|
741
741
|
activeWorkflowId: workflowId,
|
|
@@ -751,7 +751,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
751
751
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-divider border-t" }),
|
|
752
752
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-1 overflow-hidden", children: [
|
|
753
753
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
754
|
-
|
|
754
|
+
chunkZHHRWC27_js.NodePalette,
|
|
755
755
|
{
|
|
756
756
|
agents,
|
|
757
757
|
tools,
|
|
@@ -773,7 +773,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
773
773
|
}
|
|
774
774
|
),
|
|
775
775
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
776
|
-
|
|
776
|
+
chunkZHHRWC27_js.AutoSaveWorkspace,
|
|
777
777
|
{
|
|
778
778
|
workflowId,
|
|
779
779
|
className: "h-full w-full",
|
|
@@ -801,7 +801,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
801
801
|
latestGraphRef.current = graph;
|
|
802
802
|
},
|
|
803
803
|
renderAgentModal: (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
804
|
-
|
|
804
|
+
chunkZHHRWC27_js.AgentModal,
|
|
805
805
|
{
|
|
806
806
|
...props,
|
|
807
807
|
onSaved: () => {
|
|
@@ -842,7 +842,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
842
842
|
] })
|
|
843
843
|
] }),
|
|
844
844
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
845
|
-
|
|
845
|
+
chunkZHHRWC27_js.PipelineSettingsModal,
|
|
846
846
|
{
|
|
847
847
|
onSave: async (changes) => {
|
|
848
848
|
const metadata = {
|
|
@@ -859,7 +859,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
859
859
|
}
|
|
860
860
|
),
|
|
861
861
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
862
|
-
|
|
862
|
+
chunkZHHRWC27_js.SubworkflowModal,
|
|
863
863
|
{
|
|
864
864
|
onMaximize: (subworkflowId) => {
|
|
865
865
|
closeSubworkflowModal();
|
|
@@ -883,7 +883,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
883
883
|
}
|
|
884
884
|
),
|
|
885
885
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
886
|
-
|
|
886
|
+
chunkZHHRWC27_js.RunPanel,
|
|
887
887
|
{
|
|
888
888
|
open: showRunPanel,
|
|
889
889
|
onClose: toggleRunPanel,
|
|
@@ -892,7 +892,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
892
892
|
}
|
|
893
893
|
),
|
|
894
894
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
895
|
-
|
|
895
|
+
chunkZHHRWC27_js.RunInputDialog,
|
|
896
896
|
{
|
|
897
897
|
open: showRunInputDialog,
|
|
898
898
|
onClose: () => setShowRunInputDialog(false),
|
|
@@ -905,7 +905,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
905
905
|
}
|
|
906
906
|
),
|
|
907
907
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
908
|
-
|
|
908
|
+
chunkZHHRWC27_js.PreviewPanel,
|
|
909
909
|
{
|
|
910
910
|
open: showPreviewPanel,
|
|
911
911
|
onClose: () => setShowPreviewPanel(false),
|
|
@@ -914,7 +914,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
914
914
|
}
|
|
915
915
|
),
|
|
916
916
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
917
|
-
|
|
917
|
+
chunkSV4SMITM_js.DatasourceFormModal,
|
|
918
918
|
{
|
|
919
919
|
open: showDatasourceModal,
|
|
920
920
|
onClose: () => setShowDatasourceModal(false),
|
|
@@ -925,7 +925,7 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
925
925
|
}
|
|
926
926
|
),
|
|
927
927
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
928
|
-
|
|
928
|
+
chunkKNXAOJAK_js.DynamicIslandConfirm,
|
|
929
929
|
{
|
|
930
930
|
open: deleteTarget !== null,
|
|
931
931
|
onClose: () => setDeleteTarget(null),
|
|
@@ -939,5 +939,5 @@ function AgentsWorkspace({ workflowId, messages }) {
|
|
|
939
939
|
}
|
|
940
940
|
|
|
941
941
|
exports.AgentsWorkspace = AgentsWorkspace;
|
|
942
|
-
//# sourceMappingURL=chunk-
|
|
943
|
-
//# sourceMappingURL=chunk-
|
|
942
|
+
//# sourceMappingURL=chunk-6F3IMKDZ.js.map
|
|
943
|
+
//# sourceMappingURL=chunk-6F3IMKDZ.js.map
|