@datatechsolutions/ui 2.11.89 → 2.11.91
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 +108 -106
- package/dist/astrlabe/index.mjs +5 -3
- package/dist/astrlabe/workflow-canvas.js +5 -3
- package/dist/astrlabe/workflow-canvas.mjs +4 -2
- package/dist/{chunk-G7DZU3NM.mjs → chunk-256TJHVO.mjs} +3 -3
- package/dist/{chunk-G7DZU3NM.mjs.map → chunk-256TJHVO.mjs.map} +1 -1
- package/dist/{chunk-D4TESEYK.mjs → chunk-36G7GAPU.mjs} +24 -7
- package/dist/chunk-36G7GAPU.mjs.map +1 -0
- package/dist/{chunk-NBCOVUQP.mjs → chunk-6OWD54HK.mjs} +3 -3
- package/dist/{chunk-NBCOVUQP.mjs.map → chunk-6OWD54HK.mjs.map} +1 -1
- package/dist/{chunk-5HXDJBVX.mjs → chunk-7JFAOHZ3.mjs} +4 -4
- package/dist/{chunk-5HXDJBVX.mjs.map → chunk-7JFAOHZ3.mjs.map} +1 -1
- package/dist/{chunk-SAYVWIMJ.js → chunk-AP7OWR6S.js} +4 -4
- package/dist/{chunk-SAYVWIMJ.js.map → chunk-AP7OWR6S.js.map} +1 -1
- package/dist/{chunk-URDQSUW6.js → chunk-B5NZVS4A.js} +67 -67
- package/dist/{chunk-URDQSUW6.js.map → chunk-B5NZVS4A.js.map} +1 -1
- package/dist/{chunk-UUHV5KHF.js → chunk-BVCS7RBR.js} +33 -33
- package/dist/{chunk-UUHV5KHF.js.map → chunk-BVCS7RBR.js.map} +1 -1
- package/dist/{chunk-X2KCCQPL.js → chunk-C7KAF363.js} +55 -55
- package/dist/{chunk-X2KCCQPL.js.map → chunk-C7KAF363.js.map} +1 -1
- package/dist/{chunk-HK6J6HQP.mjs → chunk-CBVRUJ7N.mjs} +11 -24
- package/dist/chunk-CBVRUJ7N.mjs.map +1 -0
- package/dist/{chunk-F4TOOARV.mjs → chunk-CG3P5Z5U.mjs} +3 -3
- package/dist/{chunk-F4TOOARV.mjs.map → chunk-CG3P5Z5U.mjs.map} +1 -1
- package/dist/{chunk-RV555OEO.mjs → chunk-E2ZGFN2H.mjs} +4 -4
- package/dist/{chunk-RV555OEO.mjs.map → chunk-E2ZGFN2H.mjs.map} +1 -1
- package/dist/{chunk-Q2MG7S2E.js → chunk-E32B2MVK.js} +15 -15
- package/dist/{chunk-Q2MG7S2E.js.map → chunk-E32B2MVK.js.map} +1 -1
- package/dist/{chunk-GEUGFYLO.mjs → chunk-FDSU7GPS.mjs} +3 -3
- package/dist/{chunk-GEUGFYLO.mjs.map → chunk-FDSU7GPS.mjs.map} +1 -1
- package/dist/{chunk-UVEPTYZC.js → chunk-GWRJ5L36.js} +12 -12
- package/dist/{chunk-UVEPTYZC.js.map → chunk-GWRJ5L36.js.map} +1 -1
- package/dist/{chunk-XOZMUCMF.mjs → chunk-HPIKJS5B.mjs} +3 -3
- package/dist/{chunk-XOZMUCMF.mjs.map → chunk-HPIKJS5B.mjs.map} +1 -1
- package/dist/{chunk-TOEMSC4P.mjs → chunk-IEWFVP42.mjs} +6 -6
- package/dist/{chunk-TOEMSC4P.mjs.map → chunk-IEWFVP42.mjs.map} +1 -1
- package/dist/{chunk-ZJQ5RLGK.mjs → chunk-J4QUCX27.mjs} +1177 -390
- package/dist/chunk-J4QUCX27.mjs.map +1 -0
- package/dist/{chunk-TLDVFFAK.mjs → chunk-KHAMY7MA.mjs} +3 -3
- package/dist/{chunk-TLDVFFAK.mjs.map → chunk-KHAMY7MA.mjs.map} +1 -1
- package/dist/{chunk-YXPHJ2BQ.js → chunk-L5VEY7G4.js} +13 -2
- package/dist/chunk-L5VEY7G4.js.map +1 -0
- package/dist/{chunk-2URBM4LA.js → chunk-MLAIUJYC.js} +6 -6
- package/dist/{chunk-2URBM4LA.js.map → chunk-MLAIUJYC.js.map} +1 -1
- package/dist/{chunk-64G2HBRQ.mjs → chunk-OE4Z4FKM.mjs} +13 -3
- package/dist/chunk-OE4Z4FKM.mjs.map +1 -0
- package/dist/{chunk-LBALE4JX.js → chunk-OQDWU6AE.js} +67 -67
- package/dist/{chunk-LBALE4JX.js.map → chunk-OQDWU6AE.js.map} +1 -1
- package/dist/{chunk-JUTOBBBI.mjs → chunk-Q7WGFPGK.mjs} +4 -4
- package/dist/{chunk-JUTOBBBI.mjs.map → chunk-Q7WGFPGK.mjs.map} +1 -1
- package/dist/{chunk-TZ62G5WM.js → chunk-R5KUEOPU.js} +84 -66
- package/dist/chunk-R5KUEOPU.js.map +1 -0
- package/dist/{chunk-3YVQXDKJ.js → chunk-SIBJRWUB.js} +4 -4
- package/dist/{chunk-3YVQXDKJ.js.map → chunk-SIBJRWUB.js.map} +1 -1
- package/dist/{chunk-ZARCUQA6.js → chunk-SOYGVHPZ.js} +53 -53
- package/dist/{chunk-ZARCUQA6.js.map → chunk-SOYGVHPZ.js.map} +1 -1
- package/dist/{chunk-4667D2ZT.mjs → chunk-U4BTEKZT.mjs} +3 -3
- package/dist/{chunk-4667D2ZT.mjs.map → chunk-U4BTEKZT.mjs.map} +1 -1
- package/dist/{chunk-NAQ32ZPG.mjs → chunk-URMZJ3WF.mjs} +7 -7
- package/dist/{chunk-NAQ32ZPG.mjs.map → chunk-URMZJ3WF.mjs.map} +1 -1
- package/dist/{chunk-SUHNSUMH.mjs → chunk-VPNZDLR6.mjs} +4 -4
- package/dist/{chunk-SUHNSUMH.mjs.map → chunk-VPNZDLR6.mjs.map} +1 -1
- package/dist/{chunk-SV4SMITM.js → chunk-WIKMIULO.js} +36 -36
- package/dist/{chunk-SV4SMITM.js.map → chunk-WIKMIULO.js.map} +1 -1
- package/dist/{chunk-K26RY4EQ.js → chunk-WY3YDQXK.js} +26 -26
- package/dist/{chunk-K26RY4EQ.js.map → chunk-WY3YDQXK.js.map} +1 -1
- package/dist/{chunk-ZHHRWC27.js → chunk-Y4DNREFH.js} +135 -148
- package/dist/chunk-Y4DNREFH.js.map +1 -0
- package/dist/{chunk-MXFEU7A6.js → chunk-YMGJ4FZZ.js} +4 -4
- package/dist/{chunk-MXFEU7A6.js.map → chunk-YMGJ4FZZ.js.map} +1 -1
- package/dist/{chunk-KNXAOJAK.js → chunk-YN4IEDE4.js} +1250 -461
- package/dist/chunk-YN4IEDE4.js.map +1 -0
- package/dist/index.d.mts +306 -2
- package/dist/index.d.ts +306 -2
- package/dist/index.js +754 -744
- package/dist/index.mjs +3 -1
- package/dist/platform/admin/index.js +12 -10
- package/dist/platform/admin/index.mjs +6 -4
- package/dist/platform/agents-workspace.js +8 -8
- package/dist/platform/agents-workspace.mjs +7 -7
- package/dist/platform/app-shell.js +5 -3
- package/dist/platform/app-shell.mjs +4 -2
- package/dist/platform/auth/index.js +29 -27
- package/dist/platform/auth/index.mjs +6 -4
- package/dist/platform/billing/index.js +5 -3
- package/dist/platform/billing/index.mjs +4 -2
- package/dist/platform/impersonation/index.js +5 -3
- package/dist/platform/impersonation/index.mjs +4 -2
- package/dist/platform/index.js +100 -100
- package/dist/platform/index.mjs +20 -20
- package/dist/platform/pages/index.d.mts +2 -2
- package/dist/platform/pages/index.d.ts +2 -2
- package/dist/platform/pages/index.js +197 -195
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +9 -7
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +9 -7
- package/dist/platform/settings/index.mjs +8 -6
- package/dist/platform/workflow-api-client.d.mts +1 -1
- package/dist/platform/workflow-api-client.d.ts +1 -1
- package/dist/platform/workflow-api-client.js +64 -60
- package/dist/platform/workflow-api-client.mjs +1 -1
- package/dist/platform/workflow-canvas-shell.js +6 -4
- package/dist/platform/workflow-canvas-shell.mjs +5 -3
- package/dist/{workflow-api-client-Dy1Ph8W-.d.ts → workflow-api-client-CXN5iaih.d.ts} +34 -2
- package/dist/{workflow-api-client-C8gPn_D1.d.mts → workflow-api-client-XU83zq0k.d.mts} +34 -2
- package/package.json +1 -1
- package/dist/chunk-64G2HBRQ.mjs.map +0 -1
- package/dist/chunk-D4TESEYK.mjs.map +0 -1
- package/dist/chunk-HK6J6HQP.mjs.map +0 -1
- package/dist/chunk-KNXAOJAK.js.map +0 -1
- package/dist/chunk-TZ62G5WM.js.map +0 -1
- package/dist/chunk-YXPHJ2BQ.js.map +0 -1
- package/dist/chunk-ZHHRWC27.js.map +0 -1
- package/dist/chunk-ZJQ5RLGK.mjs.map +0 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { triggerHaptic } from './chunk-D2JF6C3E.mjs';
|
|
3
3
|
import { useTranslations, useLocale } from './chunk-7VJ7CMMT.mjs';
|
|
4
4
|
import { useLink, useRouter, usePathname } from './chunk-QWG2FMUN.mjs';
|
|
5
|
+
import { subscribeToRunEvents, submitApproval } from './chunk-OE4Z4FKM.mjs';
|
|
5
6
|
import * as Headless6 from '@headlessui/react';
|
|
6
7
|
import { Button as Button$1, Transition, Dialog, TransitionChild, DialogPanel, DialogTitle, DialogBackdrop, Menu, MenuButton, MenuItems, MenuItem } from '@headlessui/react';
|
|
7
8
|
import clsx, { clsx as clsx$1 } from 'clsx';
|
|
@@ -10,13 +11,13 @@ import React12__default, { forwardRef, useId, useState, useCallback, createConte
|
|
|
10
11
|
import { AnimatePresence, motion, useReducedMotion, useMotionValue, useTransform, animate, useInView, useSpring } from 'framer-motion';
|
|
11
12
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
12
13
|
import { ChevronDownIcon, CheckCircleIcon, EyeSlashIcon, EyeIcon, XMarkIcon, CheckIcon, ChevronLeftIcon, ChevronRightIcon, EllipsisVerticalIcon, ClipboardDocumentIcon as ClipboardDocumentIcon$1, ArrowDownTrayIcon } from '@heroicons/react/20/solid';
|
|
14
|
+
import { CheckIcon as CheckIcon$1 } from '@heroicons/react/24/solid';
|
|
13
15
|
import * as HeroIcons from '@heroicons/react/24/outline';
|
|
14
|
-
import { PlusIcon, MinusIcon, ShoppingCartIcon, BanknotesIcon, MegaphoneIcon, CubeIcon, UsersIcon, DocumentTextIcon, ShieldCheckIcon, CheckCircleIcon as CheckCircleIcon$1, RocketLaunchIcon, HandThumbUpIcon, AdjustmentsHorizontalIcon, TableCellsIcon, MapIcon, XMarkIcon as XMarkIcon$1, ClockIcon, BuildingStorefrontIcon, MagnifyingGlassIcon, InformationCircleIcon, ArrowTrendingUpIcon, ArrowTrendingDownIcon, ChevronUpIcon, ChevronDownIcon as ChevronDownIcon$1, ChevronUpDownIcon, DocumentMagnifyingGlassIcon, ShieldExclamationIcon, ServerStackIcon, WifiIcon, ExclamationTriangleIcon, ArrowPathIcon, FolderOpenIcon, BellIcon, TrashIcon, ExclamationCircleIcon, CheckIcon as CheckIcon$
|
|
16
|
+
import { PlusIcon, MinusIcon, ShoppingCartIcon, BanknotesIcon, MegaphoneIcon, CubeIcon, UsersIcon, DocumentTextIcon, ShieldCheckIcon, CheckCircleIcon as CheckCircleIcon$1, RocketLaunchIcon, HandThumbUpIcon, AdjustmentsHorizontalIcon, TableCellsIcon, MapIcon, XMarkIcon as XMarkIcon$1, ClockIcon, BuildingStorefrontIcon, MagnifyingGlassIcon, InformationCircleIcon, ArrowTrendingUpIcon, ArrowTrendingDownIcon, ChevronUpIcon, ChevronDownIcon as ChevronDownIcon$1, ChevronUpDownIcon, DocumentMagnifyingGlassIcon, ShieldExclamationIcon, ServerStackIcon, WifiIcon, ExclamationTriangleIcon, ArrowPathIcon, FolderOpenIcon, BellIcon, TrashIcon, ExclamationCircleIcon, CheckIcon as CheckIcon$2, ClipboardDocumentCheckIcon, ClipboardDocumentIcon, CalendarDaysIcon, ChevronLeftIcon as ChevronLeftIcon$1, ChevronRightIcon as ChevronRightIcon$1, FunnelIcon, CameraIcon, ArrowUpTrayIcon, BeakerIcon, GlobeAltIcon, WrenchScrewdriverIcon, EyeDropperIcon, MoonIcon as MoonIcon$1, SunIcon as SunIcon$1, UserCircleIcon, ArrowRightOnRectangleIcon, LanguageIcon, PlayIcon, StopIcon, SparklesIcon, CpuChipIcon, XCircleIcon, LockClosedIcon, EnvelopeIcon, ChatBubbleLeftIcon, TrophyIcon, CogIcon, ChartBarIcon, HomeIcon, Cog6ToothIcon, UserIcon, BoltIcon, Squares2X2Icon, PlusCircleIcon, CloudIcon, NewspaperIcon, CommandLineIcon, RectangleStackIcon, CodeBracketIcon, CircleStackIcon } from '@heroicons/react/24/outline';
|
|
15
17
|
import * as Popover from '@radix-ui/react-popover';
|
|
16
18
|
import { createPortal } from 'react-dom';
|
|
17
19
|
import { startOfDay, startOfMonth, endOfMonth, eachDayOfInterval, getDay, subMonths, addMonths, isAfter, format, isSameDay, isSameMonth, parse } from 'date-fns';
|
|
18
20
|
import { fr, es, enUS, ptBR } from 'date-fns/locale';
|
|
19
|
-
import { CheckIcon as CheckIcon$2 } from '@heroicons/react/24/solid';
|
|
20
21
|
import { ProgressBar, ProgressBarProvider } from 'react-transition-progress';
|
|
21
22
|
import { CalendarIcon, ChevronLeftIcon as ChevronLeftIcon$2, ChevronRightIcon as ChevronRightIcon$2 } from 'lucide-react';
|
|
22
23
|
import { geoAlbersUsa, geoMercator, geoPath } from 'd3-geo';
|
|
@@ -2221,104 +2222,1170 @@ function renderBars(series, seriesIndex, seriesCount, count, domain, width, heig
|
|
|
2221
2222
|
);
|
|
2222
2223
|
}) }, series.name);
|
|
2223
2224
|
}
|
|
2224
|
-
function
|
|
2225
|
+
function ItemSummary({
|
|
2226
|
+
icon,
|
|
2227
|
+
title,
|
|
2228
|
+
subtitle,
|
|
2229
|
+
metadata,
|
|
2230
|
+
iconContainerClassName = "flex size-10 flex-shrink-0 items-center justify-center rounded-lg bg-indigo-100 dark:bg-indigo-900/30",
|
|
2231
|
+
titleClassName = "truncate text-sm font-semibold text-gray-900 dark:text-white",
|
|
2232
|
+
subtitleClassName = "truncate text-xs text-gray-500 dark:text-gray-400",
|
|
2233
|
+
metadataContainerClassName = "mt-2 flex flex-wrap gap-3",
|
|
2234
|
+
metadataLabelClassName = "text-xs text-gray-500 dark:text-gray-400",
|
|
2235
|
+
metadataValueClassName = "text-xs font-medium text-gray-900 dark:text-white"
|
|
2236
|
+
}) {
|
|
2237
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-1 min-w-0 items-start gap-3", children: [
|
|
2238
|
+
icon ? /* @__PURE__ */ jsx("div", { className: iconContainerClassName, children: icon }) : null,
|
|
2239
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2240
|
+
/* @__PURE__ */ jsx("div", { className: titleClassName, children: title }),
|
|
2241
|
+
subtitle ? /* @__PURE__ */ jsx("div", { className: subtitleClassName, children: subtitle }) : null,
|
|
2242
|
+
metadata && metadata.length > 0 ? /* @__PURE__ */ jsx("div", { className: metadataContainerClassName, children: metadata.map((metadataItem, index) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
2243
|
+
/* @__PURE__ */ jsx("span", { className: metadataLabelClassName, children: metadataItem.label }),
|
|
2244
|
+
/* @__PURE__ */ jsx("span", { className: metadataValueClassName, children: metadataItem.value })
|
|
2245
|
+
] }, index)) }) : null
|
|
2246
|
+
] })
|
|
2247
|
+
] });
|
|
2248
|
+
}
|
|
2249
|
+
function isPlainTextTitle(title) {
|
|
2250
|
+
return typeof title === "string" || typeof title === "number";
|
|
2251
|
+
}
|
|
2252
|
+
function getTestIdFromTitle(title) {
|
|
2253
|
+
if (isPlainTextTitle(title)) {
|
|
2254
|
+
return `entity-card-${String(title).toLowerCase().replace(/\s+/g, "-")}`;
|
|
2255
|
+
}
|
|
2256
|
+
return "entity-card";
|
|
2257
|
+
}
|
|
2258
|
+
function StatusBadgeInternal({ status }) {
|
|
2259
|
+
const tCommon = useTranslations("common");
|
|
2260
|
+
if (typeof status !== "boolean") {
|
|
2261
|
+
return /* @__PURE__ */ jsx(Fragment, { children: status });
|
|
2262
|
+
}
|
|
2263
|
+
return /* @__PURE__ */ jsx(
|
|
2264
|
+
"span",
|
|
2265
|
+
{
|
|
2266
|
+
className: `shrink-0 rounded-full px-2 py-0.5 text-xs font-medium ${status ? "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-300" : "bg-white/40 text-slate-500 dark:bg-white/[0.08] dark:text-slate-400"}`,
|
|
2267
|
+
children: status ? tCommon("active") : tCommon("inactive")
|
|
2268
|
+
}
|
|
2269
|
+
);
|
|
2270
|
+
}
|
|
2271
|
+
function EntityCard({
|
|
2272
|
+
icon,
|
|
2273
|
+
title,
|
|
2274
|
+
subtitle,
|
|
2275
|
+
status,
|
|
2276
|
+
accentGradient,
|
|
2277
|
+
children,
|
|
2278
|
+
footer,
|
|
2279
|
+
onClick,
|
|
2280
|
+
className = "",
|
|
2281
|
+
dragProps
|
|
2282
|
+
}) {
|
|
2283
|
+
const isInteractive = Boolean(onClick);
|
|
2284
|
+
const plainTextTitle = isPlainTextTitle(title) ? String(title) : void 0;
|
|
2285
|
+
const handleKeyDown = useCallback(
|
|
2286
|
+
(event) => {
|
|
2287
|
+
if (onClick && (event.key === "Enter" || event.key === " ")) {
|
|
2288
|
+
event.preventDefault();
|
|
2289
|
+
onClick();
|
|
2290
|
+
}
|
|
2291
|
+
},
|
|
2292
|
+
[onClick]
|
|
2293
|
+
);
|
|
2294
|
+
return /* @__PURE__ */ jsxs(
|
|
2295
|
+
Card,
|
|
2296
|
+
{
|
|
2297
|
+
role: isInteractive ? "article" : "listitem",
|
|
2298
|
+
"aria-label": isInteractive ? plainTextTitle : void 0,
|
|
2299
|
+
"data-testid": getTestIdFromTitle(title),
|
|
2300
|
+
tabIndex: isInteractive ? 0 : void 0,
|
|
2301
|
+
onKeyDown: isInteractive ? handleKeyDown : void 0,
|
|
2302
|
+
className: `group overflow-hidden transition-all duration-200 hover:-translate-y-0.5 hover:shadow-md ${isInteractive ? "cursor-pointer" : ""} ${className}`,
|
|
2303
|
+
onPress: onClick,
|
|
2304
|
+
pressable: isInteractive,
|
|
2305
|
+
...dragProps,
|
|
2306
|
+
children: [
|
|
2307
|
+
accentGradient && /* @__PURE__ */ jsx("div", { className: `h-1.5 w-full bg-gradient-to-r ${accentGradient}` }),
|
|
2308
|
+
/* @__PURE__ */ jsxs("div", { className: "p-4", children: [
|
|
2309
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
|
|
2310
|
+
/* @__PURE__ */ jsx("div", { "data-testid": "entity-card-title", children: /* @__PURE__ */ jsx(
|
|
2311
|
+
ItemSummary,
|
|
2312
|
+
{
|
|
2313
|
+
icon,
|
|
2314
|
+
title,
|
|
2315
|
+
subtitle: subtitle ? /* @__PURE__ */ jsx("span", { "data-testid": "entity-card-subtitle", children: subtitle }) : void 0,
|
|
2316
|
+
iconContainerClassName: "shrink-0",
|
|
2317
|
+
titleClassName: isPlainTextTitle(title) ? "truncate font-semibold text-slate-900 dark:text-white" : "font-semibold text-slate-900 dark:text-white",
|
|
2318
|
+
subtitleClassName: "mt-0.5 text-xs text-slate-500 dark:text-slate-400"
|
|
2319
|
+
}
|
|
2320
|
+
) }),
|
|
2321
|
+
status !== void 0 && /* @__PURE__ */ jsx(StatusBadgeInternal, { status })
|
|
2322
|
+
] }),
|
|
2323
|
+
children && /* @__PURE__ */ jsx("div", { className: "mt-3", children }),
|
|
2324
|
+
footer && /* @__PURE__ */ jsx("div", { className: "mt-3 border-t border-white/30 pt-3 dark:border-white/10 flex gap-2 justify-end opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-within:opacity-100", children: footer })
|
|
2325
|
+
] })
|
|
2326
|
+
]
|
|
2327
|
+
}
|
|
2328
|
+
);
|
|
2329
|
+
}
|
|
2330
|
+
var TONE_STYLES = {
|
|
2331
|
+
error: { container: "border-red-500/30 bg-red-500/20 text-red-600 dark:text-red-400", dot: "bg-red-500" },
|
|
2332
|
+
warning: { container: "border-amber-500/30 bg-amber-500/20 text-amber-600 dark:text-amber-400", dot: "bg-amber-500" },
|
|
2333
|
+
info: { container: "border-blue-500/30 bg-blue-500/20 text-blue-600 dark:text-blue-400", dot: "bg-blue-500" },
|
|
2334
|
+
neutral: { container: "border-slate-500/30 bg-slate-500/20 text-slate-600 dark:text-slate-400", dot: "bg-slate-500" },
|
|
2335
|
+
success: { container: "border-emerald-500/30 bg-emerald-500/20 text-emerald-600 dark:text-emerald-400", dot: "bg-emerald-500" }
|
|
2336
|
+
};
|
|
2337
|
+
var LEGACY_STATUS_STYLES = {
|
|
2338
|
+
pending: "border-yellow-200 bg-yellow-50 text-yellow-700 dark:border-yellow-700/30 dark:bg-yellow-900/20 dark:text-yellow-400",
|
|
2339
|
+
approved: "border-green-200 bg-green-50 text-green-700 dark:border-green-700/30 dark:bg-green-900/20 dark:text-green-400",
|
|
2340
|
+
rejected: "border-red-200 bg-red-50 text-red-700 dark:border-red-700/30 dark:bg-red-900/20 dark:text-red-400",
|
|
2341
|
+
active: "border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-700/30 dark:bg-emerald-900/20 dark:text-emerald-400",
|
|
2342
|
+
inactive: "border-white/30 dark:border-white/10 bg-slate-500/10 text-slate-700 dark:bg-slate-900/20 dark:text-slate-400",
|
|
2343
|
+
processing: "border-blue-200 bg-blue-50 text-blue-700 dark:border-blue-700/30 dark:bg-blue-900/20 dark:text-blue-400",
|
|
2344
|
+
error: "border-red-200 bg-red-50 text-red-700 dark:border-red-700/30 dark:bg-red-900/20 dark:text-red-400",
|
|
2345
|
+
success: "border-green-200 bg-green-50 text-green-700 dark:border-green-700/30 dark:bg-green-900/20 dark:text-green-400"
|
|
2346
|
+
};
|
|
2347
|
+
var LEGACY_DOT_STYLES = {
|
|
2348
|
+
pending: "bg-yellow-500",
|
|
2349
|
+
approved: "bg-green-500",
|
|
2350
|
+
rejected: "bg-red-500",
|
|
2351
|
+
active: "bg-emerald-500",
|
|
2352
|
+
inactive: "bg-slate-500",
|
|
2353
|
+
processing: "bg-blue-500",
|
|
2354
|
+
error: "bg-red-500",
|
|
2355
|
+
success: "bg-green-500"
|
|
2356
|
+
};
|
|
2357
|
+
var SIZE_STYLES = {
|
|
2358
|
+
sm: "px-2 py-0.5 text-xs",
|
|
2359
|
+
md: "px-2.5 py-1 text-xs"
|
|
2360
|
+
};
|
|
2361
|
+
var DEFAULT_LEGACY_STYLE = "border-white/30 dark:border-white/10 bg-slate-500/10 text-slate-700 dark:bg-slate-900/20 dark:text-slate-400";
|
|
2362
|
+
var StatusBadge = forwardRef(function StatusBadge2({ status, label, size = "md", className = "", ...props }, ref) {
|
|
2363
|
+
if ("statusConfig" in props && props.statusConfig) {
|
|
2364
|
+
const configuredStatus = props.statusConfig[status];
|
|
2365
|
+
if (!configuredStatus) {
|
|
2366
|
+
return null;
|
|
2367
|
+
}
|
|
2368
|
+
const toneStyle = TONE_STYLES[configuredStatus.tone ?? "neutral"];
|
|
2369
|
+
const IconComponent = configuredStatus.icon;
|
|
2370
|
+
const resolvedLabel2 = label ?? configuredStatus.label;
|
|
2371
|
+
return /* @__PURE__ */ jsxs(
|
|
2372
|
+
"div",
|
|
2373
|
+
{
|
|
2374
|
+
ref,
|
|
2375
|
+
role: "status",
|
|
2376
|
+
"aria-label": `Status: ${status}`,
|
|
2377
|
+
"data-testid": `status-badge-${status}`,
|
|
2378
|
+
className: `inline-flex items-center gap-1.5 rounded-full border font-semibold backdrop-blur-sm ${SIZE_STYLES[size]} ${toneStyle.container} ${className}`,
|
|
2379
|
+
children: [
|
|
2380
|
+
IconComponent ? /* @__PURE__ */ jsx(IconComponent, { className: `h-3 w-3 ${configuredStatus.animateIcon ? "animate-spin motion-reduce:animate-none" : ""}` }) : /* @__PURE__ */ jsx("span", { className: `h-2 w-2 rounded-full ${toneStyle.dot}` }),
|
|
2381
|
+
resolvedLabel2
|
|
2382
|
+
]
|
|
2383
|
+
}
|
|
2384
|
+
);
|
|
2385
|
+
}
|
|
2386
|
+
const legacyStyle = LEGACY_STATUS_STYLES[status] ?? DEFAULT_LEGACY_STYLE;
|
|
2387
|
+
const legacyDot = LEGACY_DOT_STYLES[status] ?? "bg-slate-500";
|
|
2388
|
+
const resolvedLabel = label ?? status;
|
|
2389
|
+
return /* @__PURE__ */ jsxs(
|
|
2390
|
+
"div",
|
|
2391
|
+
{
|
|
2392
|
+
ref,
|
|
2393
|
+
role: "status",
|
|
2394
|
+
"aria-label": `Status: ${status}`,
|
|
2395
|
+
"data-testid": `status-badge-${status}`,
|
|
2396
|
+
className: `inline-flex items-center gap-1.5 rounded-full border font-semibold ${SIZE_STYLES[size]} ${legacyStyle} ${className}`,
|
|
2397
|
+
children: [
|
|
2398
|
+
/* @__PURE__ */ jsx("span", { className: `h-2 w-2 rounded-full ${legacyDot}` }),
|
|
2399
|
+
resolvedLabel
|
|
2400
|
+
]
|
|
2401
|
+
}
|
|
2402
|
+
);
|
|
2403
|
+
});
|
|
2404
|
+
function classNames(...classes) {
|
|
2405
|
+
return classes.filter(Boolean).join(" ");
|
|
2406
|
+
}
|
|
2407
|
+
function StepTimeline({
|
|
2408
|
+
steps,
|
|
2409
|
+
progressLabel,
|
|
2410
|
+
onStepClick,
|
|
2411
|
+
renderCompleteContent
|
|
2412
|
+
}) {
|
|
2413
|
+
return /* @__PURE__ */ jsx("div", { className: "lg:border-t lg:border-b lg:border-gray-200 dark:lg:border-white/15", children: /* @__PURE__ */ jsx("nav", { "aria-label": progressLabel, className: "mx-auto max-w-7xl px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsx(
|
|
2414
|
+
"ol",
|
|
2415
|
+
{
|
|
2416
|
+
role: "list",
|
|
2417
|
+
className: "overflow-hidden rounded-md lg:flex lg:rounded-none lg:border-r lg:border-l lg:border-gray-200 dark:lg:border-white/15",
|
|
2418
|
+
children: steps.map((step2, stepIndex) => /* @__PURE__ */ jsx("li", { className: "relative overflow-hidden lg:flex-1", children: /* @__PURE__ */ jsxs(
|
|
2419
|
+
"button",
|
|
2420
|
+
{
|
|
2421
|
+
type: "button",
|
|
2422
|
+
onClick: () => onStepClick?.(stepIndex),
|
|
2423
|
+
disabled: step2.status === "upcoming",
|
|
2424
|
+
className: classNames(
|
|
2425
|
+
step2.status === "upcoming" ? "cursor-not-allowed" : "cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800",
|
|
2426
|
+
stepIndex === 0 ? "rounded-t-md border-b-0" : "",
|
|
2427
|
+
stepIndex === steps.length - 1 ? "rounded-b-md border-t-0" : "",
|
|
2428
|
+
"w-full overflow-hidden border border-gray-200 text-left transition-colors lg:border-0 dark:border-white/15"
|
|
2429
|
+
),
|
|
2430
|
+
children: [
|
|
2431
|
+
step2.status === "complete" ? /* @__PURE__ */ jsxs("div", { className: "group", children: [
|
|
2432
|
+
/* @__PURE__ */ jsx(
|
|
2433
|
+
"span",
|
|
2434
|
+
{
|
|
2435
|
+
"aria-hidden": "true",
|
|
2436
|
+
className: "absolute top-0 left-0 h-full w-1 bg-transparent group-hover:bg-gray-200 lg:top-auto lg:bottom-0 lg:h-1 lg:w-full dark:group-hover:bg-white/20"
|
|
2437
|
+
}
|
|
2438
|
+
),
|
|
2439
|
+
renderCompleteContent ? renderCompleteContent(step2) : /* @__PURE__ */ jsxs("span", { className: classNames(stepIndex !== 0 ? "lg:pl-9" : "", "flex items-start px-6 py-5 text-sm font-medium"), children: [
|
|
2440
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0", children: /* @__PURE__ */ jsx("span", { className: "flex h-9 w-9 items-center justify-center rounded-full bg-blue-600 dark:bg-blue-500", children: /* @__PURE__ */ jsx(CheckIcon$1, { "aria-hidden": "true", className: "h-5 w-5 text-white" }) }) }),
|
|
2441
|
+
/* @__PURE__ */ jsxs("span", { className: "mt-0.5 ml-4 flex min-w-0 flex-col", children: [
|
|
2442
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-900 dark:text-white", children: step2.name }),
|
|
2443
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-500 dark:text-gray-400", children: step2.description })
|
|
2444
|
+
] })
|
|
2445
|
+
] })
|
|
2446
|
+
] }) : step2.status === "current" ? /* @__PURE__ */ jsxs("div", { "aria-current": "step", children: [
|
|
2447
|
+
/* @__PURE__ */ jsx(
|
|
2448
|
+
"span",
|
|
2449
|
+
{
|
|
2450
|
+
"aria-hidden": "true",
|
|
2451
|
+
className: "absolute top-0 left-0 h-full w-1 bg-blue-600 lg:top-auto lg:bottom-0 lg:h-1 lg:w-full dark:bg-blue-500"
|
|
2452
|
+
}
|
|
2453
|
+
),
|
|
2454
|
+
/* @__PURE__ */ jsxs("span", { className: classNames(stepIndex !== 0 ? "lg:pl-9" : "", "flex items-start px-6 py-5 text-sm font-medium"), children: [
|
|
2455
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0", children: /* @__PURE__ */ jsx("span", { className: "flex h-10 w-10 items-center justify-center rounded-full border-2 border-blue-600 dark:border-blue-500", children: /* @__PURE__ */ jsx("span", { className: "text-blue-600 dark:text-blue-400", children: step2.id }) }) }),
|
|
2456
|
+
/* @__PURE__ */ jsxs("span", { className: "mt-0.5 ml-4 flex min-w-0 flex-col", children: [
|
|
2457
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-blue-600 dark:text-blue-400", children: step2.name }),
|
|
2458
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-500 dark:text-gray-400", children: step2.description })
|
|
2459
|
+
] })
|
|
2460
|
+
] })
|
|
2461
|
+
] }) : /* @__PURE__ */ jsxs("div", { className: "group", children: [
|
|
2462
|
+
/* @__PURE__ */ jsx(
|
|
2463
|
+
"span",
|
|
2464
|
+
{
|
|
2465
|
+
"aria-hidden": "true",
|
|
2466
|
+
className: "absolute top-0 left-0 h-full w-1 bg-transparent group-hover:bg-gray-200 lg:top-auto lg:bottom-0 lg:h-1 lg:w-full dark:group-hover:bg-white/20"
|
|
2467
|
+
}
|
|
2468
|
+
),
|
|
2469
|
+
/* @__PURE__ */ jsxs("span", { className: classNames(stepIndex !== 0 ? "lg:pl-9" : "", "flex items-start px-6 py-5 text-sm font-medium"), children: [
|
|
2470
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0", children: /* @__PURE__ */ jsx("span", { className: "flex h-10 w-10 items-center justify-center rounded-full border-2 border-gray-300 dark:border-white/15", children: /* @__PURE__ */ jsx("span", { className: "text-gray-500 dark:text-gray-400", children: step2.id }) }) }),
|
|
2471
|
+
/* @__PURE__ */ jsxs("span", { className: "mt-0.5 ml-4 flex min-w-0 flex-col", children: [
|
|
2472
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-500 dark:text-gray-400", children: step2.name }),
|
|
2473
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-500 dark:text-gray-400", children: step2.description })
|
|
2474
|
+
] })
|
|
2475
|
+
] })
|
|
2476
|
+
] }),
|
|
2477
|
+
stepIndex !== 0 ? /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "absolute inset-0 top-0 left-0 hidden w-3 lg:block", children: /* @__PURE__ */ jsx(
|
|
2478
|
+
"svg",
|
|
2479
|
+
{
|
|
2480
|
+
fill: "none",
|
|
2481
|
+
viewBox: "0 0 12 82",
|
|
2482
|
+
preserveAspectRatio: "none",
|
|
2483
|
+
className: "h-full w-full text-gray-200 dark:text-white/15",
|
|
2484
|
+
children: /* @__PURE__ */ jsx("path", { d: "M0.5 0V31L10.5 41L0.5 51V82", stroke: "currentColor", vectorEffect: "non-scaling-stroke" })
|
|
2485
|
+
}
|
|
2486
|
+
) }) : null
|
|
2487
|
+
]
|
|
2488
|
+
}
|
|
2489
|
+
) }, step2.id))
|
|
2490
|
+
}
|
|
2491
|
+
) }) });
|
|
2492
|
+
}
|
|
2493
|
+
function AgentAnalysisCard({ name, avatar, duration, output }) {
|
|
2494
|
+
return /* @__PURE__ */ jsxs("div", { className: "liquid-surface rounded-xl p-3 transition-all duration-300", children: [
|
|
2495
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-1.5", children: [
|
|
2496
|
+
/* @__PURE__ */ jsx("img", { src: avatar, alt: "", className: "h-6 w-6 rounded-lg" }),
|
|
2497
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
2498
|
+
/* @__PURE__ */ jsx("div", { className: "text-[10px] font-semibold text-white", children: name }),
|
|
2499
|
+
/* @__PURE__ */ jsx("div", { className: "text-[8px] text-gray-500", children: duration })
|
|
2500
|
+
] }),
|
|
2501
|
+
/* @__PURE__ */ jsx(CheckCircleIcon$1, { className: "h-3.5 w-3.5 text-emerald-400 shrink-0" })
|
|
2502
|
+
] }),
|
|
2503
|
+
/* @__PURE__ */ jsx("p", { className: "text-[8px] text-gray-400 leading-relaxed", children: output })
|
|
2504
|
+
] });
|
|
2505
|
+
}
|
|
2506
|
+
function DashboardView({
|
|
2507
|
+
spec,
|
|
2508
|
+
className,
|
|
2509
|
+
renderInputRequest
|
|
2510
|
+
}) {
|
|
2225
2511
|
const layout = spec.layout ?? "grid";
|
|
2226
2512
|
const hasCharts = (spec.charts?.length ?? 0) > 0;
|
|
2227
2513
|
const chartGrid = layout === "grid" && (spec.charts?.length ?? 0) > 1 ? "grid grid-cols-1 gap-4 lg:grid-cols-2" : "grid grid-cols-1 gap-4";
|
|
2228
2514
|
return /* @__PURE__ */ jsxs("div", { className: className ?? "space-y-6", children: [
|
|
2229
|
-
/* @__PURE__ */ jsxs("header", { children: [
|
|
2230
|
-
/* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold text-slate-900 dark:text-slate-100", children: spec.title }),
|
|
2231
|
-
spec.subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-slate-500 dark:text-slate-400", children: spec.subtitle })
|
|
2232
|
-
] }),
|
|
2233
|
-
spec.kpis && spec.kpis.length > 0 && /* @__PURE__ */ jsx(
|
|
2234
|
-
"section",
|
|
2515
|
+
/* @__PURE__ */ jsxs("header", { children: [
|
|
2516
|
+
/* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold text-slate-900 dark:text-slate-100", children: spec.title }),
|
|
2517
|
+
spec.subtitle && /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-slate-500 dark:text-slate-400", children: spec.subtitle })
|
|
2518
|
+
] }),
|
|
2519
|
+
spec.kpis && spec.kpis.length > 0 && /* @__PURE__ */ jsx(
|
|
2520
|
+
"section",
|
|
2521
|
+
{
|
|
2522
|
+
className: spec.kpis.length > 3 ? "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4" : "grid grid-cols-1 gap-3 sm:grid-cols-3",
|
|
2523
|
+
children: spec.kpis.map((kpi, index) => /* @__PURE__ */ jsx(KpiCard, { kpi }, `${kpi.label}-${index}`))
|
|
2524
|
+
}
|
|
2525
|
+
),
|
|
2526
|
+
hasCharts && /* @__PURE__ */ jsx("section", { className: chartGrid, children: spec.charts?.map((chart, index) => /* @__PURE__ */ jsx(
|
|
2527
|
+
"div",
|
|
2528
|
+
{
|
|
2529
|
+
className: "rounded-xl border border-zinc-950/10 bg-white p-4 dark:border-white/10 dark:bg-zinc-900",
|
|
2530
|
+
children: /* @__PURE__ */ jsx(ChartRenderer, { spec: chart })
|
|
2531
|
+
},
|
|
2532
|
+
`${chart.title}-${index}`
|
|
2533
|
+
)) }),
|
|
2534
|
+
spec.table && spec.table.rows.length > 0 && /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-zinc-950/10 bg-white dark:border-white/10 dark:bg-zinc-900", children: [
|
|
2535
|
+
spec.table.title && /* @__PURE__ */ jsx("h3", { className: "border-b border-zinc-950/10 px-5 py-3 text-sm font-semibold text-slate-900 dark:border-white/10 dark:text-slate-100", children: spec.table.title }),
|
|
2536
|
+
/* @__PURE__ */ jsx(DashboardTableView, { table: spec.table })
|
|
2537
|
+
] }),
|
|
2538
|
+
spec.recommendation && spec.recommendation.trim().length > 0 && /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-indigo-500/20 bg-indigo-500/5 p-4 dark:border-indigo-400/30 dark:bg-indigo-500/10", children: [
|
|
2539
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-indigo-700 dark:text-indigo-300", children: "Recommendation" }),
|
|
2540
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-indigo-900 dark:text-indigo-100", children: spec.recommendation })
|
|
2541
|
+
] }),
|
|
2542
|
+
spec.sections && spec.sections.length > 0 && /* @__PURE__ */ jsx("div", { className: "space-y-4", children: spec.sections.map((section, index) => /* @__PURE__ */ jsx(
|
|
2543
|
+
DashboardSectionRenderer,
|
|
2544
|
+
{
|
|
2545
|
+
section,
|
|
2546
|
+
renderInputRequest
|
|
2547
|
+
},
|
|
2548
|
+
`${section.type}-${index}`
|
|
2549
|
+
)) }),
|
|
2550
|
+
spec.meta && Object.keys(spec.meta).length > 0 && /* @__PURE__ */ jsx("footer", { className: "flex flex-wrap gap-4 text-[10px] text-slate-400 dark:text-slate-500", children: Object.entries(spec.meta).map(([key, value]) => /* @__PURE__ */ jsxs("span", { children: [
|
|
2551
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold uppercase tracking-wide", children: key }),
|
|
2552
|
+
": ",
|
|
2553
|
+
value
|
|
2554
|
+
] }, key)) })
|
|
2555
|
+
] });
|
|
2556
|
+
}
|
|
2557
|
+
function KpiCard({ kpi }) {
|
|
2558
|
+
const value = typeof kpi.value === "number" ? formatNumber(kpi.value) : kpi.value;
|
|
2559
|
+
const displayValue = kpi.unit ? `${value}${kpi.unit}` : value;
|
|
2560
|
+
const variant = kpi.tone ?? "default";
|
|
2561
|
+
return /* @__PURE__ */ jsx(
|
|
2562
|
+
MetricCard,
|
|
2563
|
+
{
|
|
2564
|
+
title: kpi.label,
|
|
2565
|
+
value: displayValue,
|
|
2566
|
+
variant,
|
|
2567
|
+
trend: kpi.deltaPct !== void 0 ? { value: kpi.deltaPct } : void 0
|
|
2568
|
+
}
|
|
2569
|
+
);
|
|
2570
|
+
}
|
|
2571
|
+
function DashboardTableView({ table }) {
|
|
2572
|
+
return /* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs("table", { className: "min-w-full divide-y divide-zinc-200 text-sm dark:divide-zinc-700", children: [
|
|
2573
|
+
/* @__PURE__ */ jsx("thead", { className: "bg-zinc-50 dark:bg-zinc-800/50", children: /* @__PURE__ */ jsx("tr", { children: table.columns.map((column) => /* @__PURE__ */ jsx(
|
|
2574
|
+
"th",
|
|
2575
|
+
{
|
|
2576
|
+
scope: "col",
|
|
2577
|
+
className: `px-4 py-2 text-xs font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400 ${columnAlign(column.align)}`,
|
|
2578
|
+
children: column.label
|
|
2579
|
+
},
|
|
2580
|
+
column.key
|
|
2581
|
+
)) }) }),
|
|
2582
|
+
/* @__PURE__ */ jsx("tbody", { className: "divide-y divide-zinc-100 dark:divide-zinc-800", children: table.rows.map((row, rowIndex) => /* @__PURE__ */ jsx("tr", { className: "hover:bg-zinc-50/70 dark:hover:bg-zinc-800/30", children: table.columns.map((column) => {
|
|
2583
|
+
const raw = row[column.key] ?? "";
|
|
2584
|
+
return /* @__PURE__ */ jsx(
|
|
2585
|
+
"td",
|
|
2586
|
+
{
|
|
2587
|
+
className: `px-4 py-2 text-slate-700 dark:text-slate-300 ${columnAlign(column.align)}`,
|
|
2588
|
+
children: formatCell(raw, column.format)
|
|
2589
|
+
},
|
|
2590
|
+
column.key
|
|
2591
|
+
);
|
|
2592
|
+
}) }, rowIndex)) })
|
|
2593
|
+
] }) });
|
|
2594
|
+
}
|
|
2595
|
+
function columnAlign(align) {
|
|
2596
|
+
if (align === "right") return "text-right";
|
|
2597
|
+
if (align === "center") return "text-center";
|
|
2598
|
+
return "text-left";
|
|
2599
|
+
}
|
|
2600
|
+
function formatCell(value, format3) {
|
|
2601
|
+
if (value === null || value === void 0 || value === "") return "\u2014";
|
|
2602
|
+
if (format3 === "currency" && typeof value === "number") {
|
|
2603
|
+
return new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" }).format(value);
|
|
2604
|
+
}
|
|
2605
|
+
if (format3 === "percent" && typeof value === "number") {
|
|
2606
|
+
return `${(value * 100).toFixed(1)}%`;
|
|
2607
|
+
}
|
|
2608
|
+
if (format3 === "number" && typeof value === "number") {
|
|
2609
|
+
return formatNumber(value);
|
|
2610
|
+
}
|
|
2611
|
+
return String(value);
|
|
2612
|
+
}
|
|
2613
|
+
function formatNumber(value) {
|
|
2614
|
+
if (Math.abs(value) >= 1e3) return new Intl.NumberFormat("en-US").format(Math.round(value));
|
|
2615
|
+
return value.toFixed(Math.abs(value) < 10 ? 2 : 1);
|
|
2616
|
+
}
|
|
2617
|
+
function DashboardSectionRenderer({
|
|
2618
|
+
section,
|
|
2619
|
+
renderInputRequest
|
|
2620
|
+
}) {
|
|
2621
|
+
switch (section.type) {
|
|
2622
|
+
case "entity":
|
|
2623
|
+
return /* @__PURE__ */ jsx(EntitySection, { data: section.data });
|
|
2624
|
+
case "narrative":
|
|
2625
|
+
return /* @__PURE__ */ jsx(NarrativeSection, { data: section.data });
|
|
2626
|
+
case "lifecycle":
|
|
2627
|
+
return /* @__PURE__ */ jsx(LifecycleSection, { data: section.data });
|
|
2628
|
+
case "receipt":
|
|
2629
|
+
return /* @__PURE__ */ jsx(ReceiptSection, { data: section.data });
|
|
2630
|
+
case "approval":
|
|
2631
|
+
return /* @__PURE__ */ jsx(ApprovalSection, { data: section.data });
|
|
2632
|
+
case "fiscal":
|
|
2633
|
+
return /* @__PURE__ */ jsx(FiscalSection, { data: section.data });
|
|
2634
|
+
case "feed":
|
|
2635
|
+
return /* @__PURE__ */ jsx(FeedSection, { data: section.data });
|
|
2636
|
+
case "score":
|
|
2637
|
+
return /* @__PURE__ */ jsx(ScoreSection, { data: section.data });
|
|
2638
|
+
case "note":
|
|
2639
|
+
return /* @__PURE__ */ jsx(NoteSection, { data: section.data });
|
|
2640
|
+
case "input_request":
|
|
2641
|
+
return renderInputRequest ? /* @__PURE__ */ jsx(Fragment, { children: renderInputRequest(section.data) }) : /* @__PURE__ */ jsx(InputRequestReadOnly, { data: section.data });
|
|
2642
|
+
default:
|
|
2643
|
+
return /* @__PURE__ */ jsx(NoteSection, { data: { body: JSON.stringify(section, null, 2), tone: "info" } });
|
|
2644
|
+
}
|
|
2645
|
+
}
|
|
2646
|
+
function InputRequestReadOnly({ data }) {
|
|
2647
|
+
return /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-sky-500/20 bg-sky-500/5 p-4 dark:border-sky-400/30 dark:bg-sky-500/10", children: [
|
|
2648
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-slate-100", children: data.prompt }),
|
|
2649
|
+
data.description && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-slate-600 dark:text-slate-400", children: data.description }),
|
|
2650
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-3 space-y-1", children: data.fields.map((field) => /* @__PURE__ */ jsxs("li", { className: "text-xs", children: [
|
|
2651
|
+
/* @__PURE__ */ jsxs("span", { className: "font-medium text-slate-700 dark:text-slate-300", children: [
|
|
2652
|
+
field.label,
|
|
2653
|
+
field.required && /* @__PURE__ */ jsx("span", { className: "ml-1 text-rose-500", children: "*" })
|
|
2654
|
+
] }),
|
|
2655
|
+
/* @__PURE__ */ jsxs("span", { className: "ml-2 text-slate-500 dark:text-slate-400", children: [
|
|
2656
|
+
"(",
|
|
2657
|
+
field.kind,
|
|
2658
|
+
")"
|
|
2659
|
+
] })
|
|
2660
|
+
] }, field.key)) }),
|
|
2661
|
+
/* @__PURE__ */ jsx("p", { className: "mt-3 text-[11px] italic text-slate-500 dark:text-slate-400", children: "Esta requisi\xE7\xE3o requer entrada do operador \u2014 abra a run ao vivo para responder." })
|
|
2662
|
+
] });
|
|
2663
|
+
}
|
|
2664
|
+
function EntitySection({ data }) {
|
|
2665
|
+
const statusKey = data.status?.tone === "success" ? "success" : data.status?.tone === "danger" ? "error" : data.status?.tone === "warning" ? "pending" : data.status?.tone === "info" ? "processing" : "active";
|
|
2666
|
+
return /* @__PURE__ */ jsx(
|
|
2667
|
+
EntityCard,
|
|
2668
|
+
{
|
|
2669
|
+
title: data.title,
|
|
2670
|
+
subtitle: data.subtitle,
|
|
2671
|
+
status: data.status ? /* @__PURE__ */ jsx(StatusBadge, { status: statusKey, label: data.status.label }) : void 0,
|
|
2672
|
+
children: data.fields && data.fields.length > 0 && /* @__PURE__ */ jsx(
|
|
2673
|
+
ItemSummary,
|
|
2674
|
+
{
|
|
2675
|
+
title: "",
|
|
2676
|
+
metadata: data.fields.map((f) => ({ label: f.label, value: String(f.value) }))
|
|
2677
|
+
}
|
|
2678
|
+
)
|
|
2679
|
+
}
|
|
2680
|
+
);
|
|
2681
|
+
}
|
|
2682
|
+
function NarrativeSection({ data }) {
|
|
2683
|
+
if (data.agent) {
|
|
2684
|
+
return /* @__PURE__ */ jsx(
|
|
2685
|
+
AgentAnalysisCard,
|
|
2686
|
+
{
|
|
2687
|
+
name: data.agent.name,
|
|
2688
|
+
avatar: data.agent.avatarUrl ?? "",
|
|
2689
|
+
duration: data.durationMs !== void 0 ? `${(data.durationMs / 1e3).toFixed(1)}s` : "",
|
|
2690
|
+
output: data.body
|
|
2691
|
+
}
|
|
2692
|
+
);
|
|
2693
|
+
}
|
|
2694
|
+
return /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-zinc-950/10 bg-white p-4 dark:border-white/10 dark:bg-zinc-900", children: [
|
|
2695
|
+
data.title && /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-slate-100", children: data.title }),
|
|
2696
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 whitespace-pre-line text-sm leading-relaxed text-slate-700 dark:text-slate-300", children: data.body })
|
|
2697
|
+
] });
|
|
2698
|
+
}
|
|
2699
|
+
function LifecycleSection({ data }) {
|
|
2700
|
+
return /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-zinc-950/10 bg-white p-4 dark:border-white/10 dark:bg-zinc-900", children: [
|
|
2701
|
+
data.title && /* @__PURE__ */ jsx("h3", { className: "mb-3 text-sm font-semibold text-slate-900 dark:text-slate-100", children: data.title }),
|
|
2702
|
+
/* @__PURE__ */ jsx(
|
|
2703
|
+
StepTimeline,
|
|
2704
|
+
{
|
|
2705
|
+
steps: data.steps,
|
|
2706
|
+
progressLabel: data.progressLabel ?? data.title ?? "Progress"
|
|
2707
|
+
}
|
|
2708
|
+
)
|
|
2709
|
+
] });
|
|
2710
|
+
}
|
|
2711
|
+
function ReceiptSection({ data }) {
|
|
2712
|
+
const currency = data.currency ?? "BRL";
|
|
2713
|
+
const fmt = (v) => typeof v === "number" ? new Intl.NumberFormat("pt-BR", { style: "currency", currency }).format(v) : v;
|
|
2714
|
+
return /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-zinc-950/10 bg-white dark:border-white/10 dark:bg-zinc-900", children: [
|
|
2715
|
+
data.title && /* @__PURE__ */ jsx("h3", { className: "border-b border-zinc-950/10 px-5 py-3 text-sm font-semibold text-slate-900 dark:border-white/10 dark:text-slate-100", children: data.title }),
|
|
2716
|
+
/* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs("table", { className: "min-w-full divide-y divide-zinc-200 text-sm dark:divide-zinc-700", children: [
|
|
2717
|
+
/* @__PURE__ */ jsx("thead", { className: "bg-zinc-50 dark:bg-zinc-800/50", children: /* @__PURE__ */ jsxs("tr", { children: [
|
|
2718
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-2 text-left text-xs font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400", children: "Item" }),
|
|
2719
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-2 text-right text-xs font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400", children: "Qtd" }),
|
|
2720
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-2 text-right text-xs font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400", children: "Unit." }),
|
|
2721
|
+
/* @__PURE__ */ jsx("th", { className: "px-4 py-2 text-right text-xs font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400", children: "Total" })
|
|
2722
|
+
] }) }),
|
|
2723
|
+
/* @__PURE__ */ jsx("tbody", { className: "divide-y divide-zinc-100 dark:divide-zinc-800", children: data.items.map((item, i) => /* @__PURE__ */ jsxs("tr", { children: [
|
|
2724
|
+
/* @__PURE__ */ jsx("td", { className: "px-4 py-2 text-left text-slate-700 dark:text-slate-300", children: item.description }),
|
|
2725
|
+
/* @__PURE__ */ jsx("td", { className: "px-4 py-2 text-right text-slate-700 dark:text-slate-300", children: item.quantity }),
|
|
2726
|
+
/* @__PURE__ */ jsx("td", { className: "px-4 py-2 text-right text-slate-700 dark:text-slate-300", children: fmt(item.unitPrice) }),
|
|
2727
|
+
/* @__PURE__ */ jsx("td", { className: "px-4 py-2 text-right font-medium text-slate-900 dark:text-slate-100", children: fmt(item.total) })
|
|
2728
|
+
] }, i)) }),
|
|
2729
|
+
/* @__PURE__ */ jsxs("tfoot", { className: "border-t border-zinc-200 dark:border-zinc-700", children: [
|
|
2730
|
+
data.subtotal !== void 0 && /* @__PURE__ */ jsxs("tr", { children: [
|
|
2731
|
+
/* @__PURE__ */ jsx("td", { colSpan: 3, className: "px-4 py-1.5 text-right text-xs text-slate-500", children: "Subtotal" }),
|
|
2732
|
+
/* @__PURE__ */ jsx("td", { className: "px-4 py-1.5 text-right text-xs text-slate-700 dark:text-slate-300", children: fmt(data.subtotal) })
|
|
2733
|
+
] }),
|
|
2734
|
+
data.tax !== void 0 && /* @__PURE__ */ jsxs("tr", { children: [
|
|
2735
|
+
/* @__PURE__ */ jsx("td", { colSpan: 3, className: "px-4 py-1.5 text-right text-xs text-slate-500", children: "Tributos" }),
|
|
2736
|
+
/* @__PURE__ */ jsx("td", { className: "px-4 py-1.5 text-right text-xs text-slate-700 dark:text-slate-300", children: fmt(data.tax) })
|
|
2737
|
+
] }),
|
|
2738
|
+
/* @__PURE__ */ jsxs("tr", { children: [
|
|
2739
|
+
/* @__PURE__ */ jsx("td", { colSpan: 3, className: "px-4 py-2 text-right text-sm font-semibold text-slate-900 dark:text-slate-100", children: "Total" }),
|
|
2740
|
+
/* @__PURE__ */ jsx("td", { className: "px-4 py-2 text-right text-sm font-semibold text-slate-900 dark:text-slate-100", children: fmt(data.total) })
|
|
2741
|
+
] })
|
|
2742
|
+
] })
|
|
2743
|
+
] }) })
|
|
2744
|
+
] });
|
|
2745
|
+
}
|
|
2746
|
+
function ApprovalSection({ data }) {
|
|
2747
|
+
const tone = data.decision === "approved" ? "success" : data.decision === "rejected" ? "danger" : "warning";
|
|
2748
|
+
const accentClasses = TONE_BLOCK[tone];
|
|
2749
|
+
return /* @__PURE__ */ jsx("section", { className: `rounded-xl border p-4 ${accentClasses}`, children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
|
|
2750
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
2751
|
+
data.prompt && /* @__PURE__ */ jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: data.prompt }),
|
|
2752
|
+
/* @__PURE__ */ jsxs("p", { className: "mt-1 text-sm font-semibold capitalize text-slate-900 dark:text-slate-100", children: [
|
|
2753
|
+
data.decision,
|
|
2754
|
+
data.by?.name && /* @__PURE__ */ jsxs("span", { className: "font-normal text-slate-500 dark:text-slate-400", children: [
|
|
2755
|
+
" ",
|
|
2756
|
+
"\u2014 ",
|
|
2757
|
+
data.by.name
|
|
2758
|
+
] })
|
|
2759
|
+
] }),
|
|
2760
|
+
data.reason && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-slate-700 dark:text-slate-300", children: data.reason })
|
|
2761
|
+
] }),
|
|
2762
|
+
data.at && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[10px] uppercase tracking-wide text-slate-500 dark:text-slate-400", children: formatTimestamp(data.at) })
|
|
2763
|
+
] }) });
|
|
2764
|
+
}
|
|
2765
|
+
function FiscalSection({ data }) {
|
|
2766
|
+
const env = data.environment ?? "homologation";
|
|
2767
|
+
const envLabel = env === "production" ? "Produ\xE7\xE3o (SEFAZ)" : "Homologa\xE7\xE3o (sandbox)";
|
|
2768
|
+
return /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-emerald-500/20 bg-emerald-500/5 p-4 dark:border-emerald-400/30 dark:bg-emerald-500/10", children: [
|
|
2769
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-emerald-800 dark:text-emerald-200", children: "NF-e emitida" }),
|
|
2770
|
+
/* @__PURE__ */ jsxs("dl", { className: "mt-2 grid grid-cols-1 gap-x-4 gap-y-1 text-xs sm:grid-cols-2", children: [
|
|
2771
|
+
data.number && /* @__PURE__ */ jsxs("div", { children: [
|
|
2772
|
+
/* @__PURE__ */ jsx("dt", { className: "text-emerald-700/70 dark:text-emerald-300/70", children: "N\xFAmero" }),
|
|
2773
|
+
/* @__PURE__ */ jsx("dd", { className: "font-medium text-emerald-900 dark:text-emerald-100", children: data.number })
|
|
2774
|
+
] }),
|
|
2775
|
+
data.accessKey && /* @__PURE__ */ jsxs("div", { className: "sm:col-span-2", children: [
|
|
2776
|
+
/* @__PURE__ */ jsx("dt", { className: "text-emerald-700/70 dark:text-emerald-300/70", children: "Chave de acesso" }),
|
|
2777
|
+
/* @__PURE__ */ jsx("dd", { className: "break-all font-mono text-[11px] text-emerald-900 dark:text-emerald-100", children: data.accessKey })
|
|
2778
|
+
] }),
|
|
2779
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2780
|
+
/* @__PURE__ */ jsx("dt", { className: "text-emerald-700/70 dark:text-emerald-300/70", children: "Ambiente" }),
|
|
2781
|
+
/* @__PURE__ */ jsx("dd", { className: "font-medium text-emerald-900 dark:text-emerald-100", children: envLabel })
|
|
2782
|
+
] }),
|
|
2783
|
+
data.statusUrl && /* @__PURE__ */ jsxs("div", { className: "sm:col-span-2", children: [
|
|
2784
|
+
/* @__PURE__ */ jsx("dt", { className: "text-emerald-700/70 dark:text-emerald-300/70", children: "Status" }),
|
|
2785
|
+
/* @__PURE__ */ jsx("dd", { children: /* @__PURE__ */ jsx(
|
|
2786
|
+
"a",
|
|
2787
|
+
{
|
|
2788
|
+
href: data.statusUrl,
|
|
2789
|
+
target: "_blank",
|
|
2790
|
+
rel: "noreferrer",
|
|
2791
|
+
className: "text-emerald-900 underline hover:text-emerald-700 dark:text-emerald-100",
|
|
2792
|
+
children: data.statusUrl
|
|
2793
|
+
}
|
|
2794
|
+
) })
|
|
2795
|
+
] })
|
|
2796
|
+
] })
|
|
2797
|
+
] });
|
|
2798
|
+
}
|
|
2799
|
+
function FeedSection({ data }) {
|
|
2800
|
+
return /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-zinc-950/10 bg-white p-4 dark:border-white/10 dark:bg-zinc-900", children: [
|
|
2801
|
+
data.title && /* @__PURE__ */ jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-900 dark:text-slate-100", children: data.title }),
|
|
2802
|
+
/* @__PURE__ */ jsx("ul", { className: "space-y-2", children: data.items.map((item, index) => /* @__PURE__ */ jsx(
|
|
2803
|
+
"li",
|
|
2804
|
+
{
|
|
2805
|
+
className: `rounded-lg border px-3 py-2 ${TONE_BLOCK[item.tone ?? "default"]}`,
|
|
2806
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
|
|
2807
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
2808
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-slate-900 dark:text-slate-100", children: item.title }),
|
|
2809
|
+
item.description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-slate-600 dark:text-slate-400", children: item.description })
|
|
2810
|
+
] }),
|
|
2811
|
+
item.timestamp && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[10px] uppercase tracking-wide text-slate-500 dark:text-slate-400", children: formatTimestamp(item.timestamp) })
|
|
2812
|
+
] })
|
|
2813
|
+
},
|
|
2814
|
+
index
|
|
2815
|
+
)) })
|
|
2816
|
+
] });
|
|
2817
|
+
}
|
|
2818
|
+
function ScoreSection({ data }) {
|
|
2819
|
+
const tone = data.score >= 70 ? "success" : data.score >= 40 ? "warning" : "danger";
|
|
2820
|
+
const variant = tone;
|
|
2821
|
+
return /* @__PURE__ */ jsx("section", { className: "rounded-xl border border-zinc-950/10 bg-white p-4 dark:border-white/10 dark:bg-zinc-900", children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-3", children: [
|
|
2822
|
+
/* @__PURE__ */ jsx(
|
|
2823
|
+
MetricCard,
|
|
2824
|
+
{
|
|
2825
|
+
title: data.label,
|
|
2826
|
+
value: `${Math.round(data.score)}`,
|
|
2827
|
+
variant
|
|
2828
|
+
}
|
|
2829
|
+
),
|
|
2830
|
+
/* @__PURE__ */ jsxs("div", { className: "sm:col-span-2", children: [
|
|
2831
|
+
data.qualification && /* @__PURE__ */ jsx("p", { className: "text-sm font-medium capitalize text-slate-900 dark:text-slate-100", children: data.qualification }),
|
|
2832
|
+
data.reasoning && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs leading-relaxed text-slate-600 dark:text-slate-400", children: data.reasoning })
|
|
2833
|
+
] })
|
|
2834
|
+
] }) });
|
|
2835
|
+
}
|
|
2836
|
+
function NoteSection({ data }) {
|
|
2837
|
+
const accentClasses = TONE_BLOCK[data.tone ?? "default"];
|
|
2838
|
+
return /* @__PURE__ */ jsxs("section", { className: `rounded-xl border p-4 ${accentClasses}`, children: [
|
|
2839
|
+
data.title && /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-slate-100", children: data.title }),
|
|
2840
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 whitespace-pre-line text-sm text-slate-700 dark:text-slate-300", children: data.body })
|
|
2841
|
+
] });
|
|
2842
|
+
}
|
|
2843
|
+
var TONE_BLOCK = {
|
|
2844
|
+
default: "border-zinc-950/10 bg-white dark:border-white/10 dark:bg-zinc-900",
|
|
2845
|
+
info: "border-sky-500/20 bg-sky-500/5 dark:border-sky-400/30 dark:bg-sky-500/10",
|
|
2846
|
+
success: "border-emerald-500/20 bg-emerald-500/5 dark:border-emerald-400/30 dark:bg-emerald-500/10",
|
|
2847
|
+
warning: "border-amber-500/20 bg-amber-500/5 dark:border-amber-400/30 dark:bg-amber-500/10",
|
|
2848
|
+
danger: "border-rose-500/20 bg-rose-500/5 dark:border-rose-400/30 dark:bg-rose-500/10"
|
|
2849
|
+
};
|
|
2850
|
+
function formatTimestamp(iso) {
|
|
2851
|
+
try {
|
|
2852
|
+
const dt = new Date(iso);
|
|
2853
|
+
if (Number.isNaN(dt.getTime())) return iso;
|
|
2854
|
+
return dt.toLocaleString("pt-BR", {
|
|
2855
|
+
day: "2-digit",
|
|
2856
|
+
month: "2-digit",
|
|
2857
|
+
hour: "2-digit",
|
|
2858
|
+
minute: "2-digit"
|
|
2859
|
+
});
|
|
2860
|
+
} catch {
|
|
2861
|
+
return iso;
|
|
2862
|
+
}
|
|
2863
|
+
}
|
|
2864
|
+
function InputRequestForm({
|
|
2865
|
+
runId,
|
|
2866
|
+
data,
|
|
2867
|
+
onResolved
|
|
2868
|
+
}) {
|
|
2869
|
+
const [values, setValues] = useState(
|
|
2870
|
+
() => initialValues(data.fields)
|
|
2871
|
+
);
|
|
2872
|
+
const [submitting, setSubmitting] = useState(false);
|
|
2873
|
+
const [resolved, setResolved] = useState(null);
|
|
2874
|
+
const [error, setError] = useState(null);
|
|
2875
|
+
async function submit(decision) {
|
|
2876
|
+
if (submitting || resolved) return;
|
|
2877
|
+
setSubmitting(true);
|
|
2878
|
+
setError(null);
|
|
2879
|
+
try {
|
|
2880
|
+
const payload = decision === "approved" ? sanitizeForSubmit(values) : void 0;
|
|
2881
|
+
const reason = decision === "rejected" ? typeof values.reason === "string" ? values.reason : "rejected" : void 0;
|
|
2882
|
+
await submitApproval(runId, data.nodeId, {
|
|
2883
|
+
approved: decision === "approved",
|
|
2884
|
+
...payload ? { payload } : {},
|
|
2885
|
+
...reason ? { reason } : {}
|
|
2886
|
+
});
|
|
2887
|
+
setResolved({
|
|
2888
|
+
approved: decision === "approved",
|
|
2889
|
+
message: decision === "approved" ? "Aprovado \u2014 workflow retomado." : "Rejeitado \u2014 workflow encerrado."
|
|
2890
|
+
});
|
|
2891
|
+
onResolved?.({
|
|
2892
|
+
approved: decision === "approved",
|
|
2893
|
+
payload: payload ?? {}
|
|
2894
|
+
});
|
|
2895
|
+
} catch (e) {
|
|
2896
|
+
setError(
|
|
2897
|
+
e instanceof Error ? e.message : "Falha ao registrar a decis\xE3o."
|
|
2898
|
+
);
|
|
2899
|
+
} finally {
|
|
2900
|
+
setSubmitting(false);
|
|
2901
|
+
}
|
|
2902
|
+
}
|
|
2903
|
+
function onFieldChange(key, value) {
|
|
2904
|
+
setValues((prev) => ({ ...prev, [key]: value }));
|
|
2905
|
+
}
|
|
2906
|
+
function onSubmitForm(event) {
|
|
2907
|
+
event.preventDefault();
|
|
2908
|
+
void submit("approved");
|
|
2909
|
+
}
|
|
2910
|
+
const accentClasses = TONE_BLOCK2[data.tone ?? "info"];
|
|
2911
|
+
return /* @__PURE__ */ jsxs(
|
|
2912
|
+
"form",
|
|
2913
|
+
{
|
|
2914
|
+
onSubmit: onSubmitForm,
|
|
2915
|
+
className: `rounded-xl border p-4 ${accentClasses}`,
|
|
2916
|
+
children: [
|
|
2917
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
2918
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-slate-100", children: data.prompt }),
|
|
2919
|
+
data.description && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-slate-600 dark:text-slate-400", children: data.description })
|
|
2920
|
+
] }),
|
|
2921
|
+
/* @__PURE__ */ jsx("div", { className: "mt-4 space-y-3", children: data.fields.map((field) => /* @__PURE__ */ jsx(
|
|
2922
|
+
FieldInput,
|
|
2923
|
+
{
|
|
2924
|
+
field,
|
|
2925
|
+
value: values[field.key],
|
|
2926
|
+
disabled: submitting || Boolean(resolved),
|
|
2927
|
+
onChange: (value) => onFieldChange(field.key, value)
|
|
2928
|
+
},
|
|
2929
|
+
field.key
|
|
2930
|
+
)) }),
|
|
2931
|
+
error && /* @__PURE__ */ jsx("p", { className: "mt-3 text-xs text-rose-700 dark:text-rose-300", children: error }),
|
|
2932
|
+
resolved ? /* @__PURE__ */ jsx("p", { className: "mt-3 text-xs font-medium text-emerald-800 dark:text-emerald-200", children: resolved.message }) : /* @__PURE__ */ jsxs("div", { className: "mt-4 flex flex-wrap items-center justify-end gap-2", children: [
|
|
2933
|
+
data.rejectLabel !== null && /* @__PURE__ */ jsx(
|
|
2934
|
+
"button",
|
|
2935
|
+
{
|
|
2936
|
+
type: "button",
|
|
2937
|
+
disabled: submitting,
|
|
2938
|
+
onClick: () => submit("rejected"),
|
|
2939
|
+
className: "rounded-md border border-rose-500/30 bg-rose-500/5 px-3 py-1.5 text-sm font-medium text-rose-700 hover:bg-rose-500/10 disabled:opacity-50 dark:text-rose-300",
|
|
2940
|
+
children: data.rejectLabel ?? "Rejeitar"
|
|
2941
|
+
}
|
|
2942
|
+
),
|
|
2943
|
+
/* @__PURE__ */ jsx(
|
|
2944
|
+
"button",
|
|
2945
|
+
{
|
|
2946
|
+
type: "submit",
|
|
2947
|
+
disabled: submitting,
|
|
2948
|
+
className: "rounded-md bg-emerald-600 px-3 py-1.5 text-sm font-medium text-white hover:bg-emerald-500 disabled:opacity-50",
|
|
2949
|
+
children: submitting ? "Enviando\u2026" : data.submitLabel ?? "Aprovar"
|
|
2950
|
+
}
|
|
2951
|
+
)
|
|
2952
|
+
] })
|
|
2953
|
+
]
|
|
2954
|
+
}
|
|
2955
|
+
);
|
|
2956
|
+
}
|
|
2957
|
+
function FieldInput({
|
|
2958
|
+
field,
|
|
2959
|
+
value,
|
|
2960
|
+
disabled,
|
|
2961
|
+
onChange
|
|
2962
|
+
}) {
|
|
2963
|
+
const labelEl = /* @__PURE__ */ jsxs(
|
|
2964
|
+
"label",
|
|
2965
|
+
{
|
|
2966
|
+
htmlFor: `input-${field.key}`,
|
|
2967
|
+
className: "block text-xs font-medium text-slate-700 dark:text-slate-300",
|
|
2968
|
+
children: [
|
|
2969
|
+
field.label,
|
|
2970
|
+
field.required && /* @__PURE__ */ jsx("span", { className: "ml-1 text-rose-500", children: "*" })
|
|
2971
|
+
]
|
|
2972
|
+
}
|
|
2973
|
+
);
|
|
2974
|
+
const helpEl = field.helpText ? /* @__PURE__ */ jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: field.helpText }) : null;
|
|
2975
|
+
switch (field.kind) {
|
|
2976
|
+
case "text":
|
|
2977
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
2978
|
+
labelEl,
|
|
2979
|
+
/* @__PURE__ */ jsx(
|
|
2980
|
+
"input",
|
|
2981
|
+
{
|
|
2982
|
+
id: `input-${field.key}`,
|
|
2983
|
+
type: "text",
|
|
2984
|
+
disabled,
|
|
2985
|
+
required: field.required,
|
|
2986
|
+
placeholder: field.placeholder,
|
|
2987
|
+
value: typeof value === "string" ? value : "",
|
|
2988
|
+
onChange: (e) => onChange(e.target.value),
|
|
2989
|
+
className: INPUT_CLASSES
|
|
2990
|
+
}
|
|
2991
|
+
),
|
|
2992
|
+
helpEl
|
|
2993
|
+
] });
|
|
2994
|
+
case "number":
|
|
2995
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
2996
|
+
labelEl,
|
|
2997
|
+
/* @__PURE__ */ jsx(
|
|
2998
|
+
"input",
|
|
2999
|
+
{
|
|
3000
|
+
id: `input-${field.key}`,
|
|
3001
|
+
type: "number",
|
|
3002
|
+
disabled,
|
|
3003
|
+
required: field.required,
|
|
3004
|
+
placeholder: field.placeholder,
|
|
3005
|
+
min: field.min,
|
|
3006
|
+
max: field.max,
|
|
3007
|
+
step: field.step,
|
|
3008
|
+
value: typeof value === "number" ? value : typeof value === "string" ? value : "",
|
|
3009
|
+
onChange: (e) => {
|
|
3010
|
+
const raw = e.target.value;
|
|
3011
|
+
onChange(raw === "" ? "" : Number(raw));
|
|
3012
|
+
},
|
|
3013
|
+
className: INPUT_CLASSES
|
|
3014
|
+
}
|
|
3015
|
+
),
|
|
3016
|
+
helpEl
|
|
3017
|
+
] });
|
|
3018
|
+
case "textarea":
|
|
3019
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
3020
|
+
labelEl,
|
|
3021
|
+
/* @__PURE__ */ jsx(
|
|
3022
|
+
"textarea",
|
|
3023
|
+
{
|
|
3024
|
+
id: `input-${field.key}`,
|
|
3025
|
+
disabled,
|
|
3026
|
+
required: field.required,
|
|
3027
|
+
placeholder: field.placeholder,
|
|
3028
|
+
rows: field.rows ?? 3,
|
|
3029
|
+
value: typeof value === "string" ? value : "",
|
|
3030
|
+
onChange: (e) => onChange(e.target.value),
|
|
3031
|
+
className: INPUT_CLASSES
|
|
3032
|
+
}
|
|
3033
|
+
),
|
|
3034
|
+
helpEl
|
|
3035
|
+
] });
|
|
3036
|
+
case "select":
|
|
3037
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
3038
|
+
labelEl,
|
|
3039
|
+
/* @__PURE__ */ jsxs(
|
|
3040
|
+
"select",
|
|
3041
|
+
{
|
|
3042
|
+
id: `input-${field.key}`,
|
|
3043
|
+
disabled,
|
|
3044
|
+
required: field.required,
|
|
3045
|
+
value: typeof value === "string" ? value : "",
|
|
3046
|
+
onChange: (e) => onChange(e.target.value),
|
|
3047
|
+
className: INPUT_CLASSES,
|
|
3048
|
+
children: [
|
|
3049
|
+
/* @__PURE__ */ jsx("option", { value: "", disabled: true, children: "Selecione\u2026" }),
|
|
3050
|
+
field.options.map((option) => /* @__PURE__ */ jsx("option", { value: option.value, children: option.label }, option.value))
|
|
3051
|
+
]
|
|
3052
|
+
}
|
|
3053
|
+
),
|
|
3054
|
+
helpEl
|
|
3055
|
+
] });
|
|
3056
|
+
case "boolean":
|
|
3057
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3058
|
+
/* @__PURE__ */ jsx(
|
|
3059
|
+
"input",
|
|
3060
|
+
{
|
|
3061
|
+
id: `input-${field.key}`,
|
|
3062
|
+
type: "checkbox",
|
|
3063
|
+
disabled,
|
|
3064
|
+
checked: Boolean(value),
|
|
3065
|
+
onChange: (e) => onChange(e.target.checked),
|
|
3066
|
+
className: "h-4 w-4 rounded border-zinc-300 text-emerald-600 focus:ring-emerald-500"
|
|
3067
|
+
}
|
|
3068
|
+
),
|
|
3069
|
+
/* @__PURE__ */ jsx(
|
|
3070
|
+
"label",
|
|
3071
|
+
{
|
|
3072
|
+
htmlFor: `input-${field.key}`,
|
|
3073
|
+
className: "text-xs text-slate-700 dark:text-slate-300",
|
|
3074
|
+
children: field.label
|
|
3075
|
+
}
|
|
3076
|
+
)
|
|
3077
|
+
] });
|
|
3078
|
+
default:
|
|
3079
|
+
return null;
|
|
3080
|
+
}
|
|
3081
|
+
}
|
|
3082
|
+
function initialValues(fields) {
|
|
3083
|
+
const out = {};
|
|
3084
|
+
for (const field of fields) {
|
|
3085
|
+
if ("defaultValue" in field && field.defaultValue !== void 0) {
|
|
3086
|
+
out[field.key] = field.defaultValue;
|
|
3087
|
+
} else if (field.kind === "boolean") {
|
|
3088
|
+
out[field.key] = false;
|
|
3089
|
+
} else {
|
|
3090
|
+
out[field.key] = "";
|
|
3091
|
+
}
|
|
3092
|
+
}
|
|
3093
|
+
return out;
|
|
3094
|
+
}
|
|
3095
|
+
function sanitizeForSubmit(values) {
|
|
3096
|
+
const out = {};
|
|
3097
|
+
for (const [key, value] of Object.entries(values)) {
|
|
3098
|
+
if (value === "" || value === void 0) continue;
|
|
3099
|
+
out[key] = value;
|
|
3100
|
+
}
|
|
3101
|
+
return out;
|
|
3102
|
+
}
|
|
3103
|
+
var INPUT_CLASSES = "mt-1 block w-full rounded-md border border-zinc-300 bg-white px-2.5 py-1.5 text-sm text-slate-900 shadow-sm focus:border-emerald-500 focus:outline-none focus:ring-1 focus:ring-emerald-500 disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-slate-100";
|
|
3104
|
+
var TONE_BLOCK2 = {
|
|
3105
|
+
default: "border-zinc-950/10 bg-white dark:border-white/10 dark:bg-zinc-900",
|
|
3106
|
+
info: "border-sky-500/20 bg-sky-500/5 dark:border-sky-400/30 dark:bg-sky-500/10",
|
|
3107
|
+
success: "border-emerald-500/20 bg-emerald-500/5 dark:border-emerald-400/30 dark:bg-emerald-500/10",
|
|
3108
|
+
warning: "border-amber-500/20 bg-amber-500/5 dark:border-amber-400/30 dark:bg-amber-500/10",
|
|
3109
|
+
danger: "border-rose-500/20 bg-rose-500/5 dark:border-rose-400/30 dark:bg-rose-500/10"
|
|
3110
|
+
};
|
|
3111
|
+
function StreamingDashboard({
|
|
3112
|
+
runId,
|
|
3113
|
+
initialSpec,
|
|
3114
|
+
initialStatus,
|
|
3115
|
+
className
|
|
3116
|
+
}) {
|
|
3117
|
+
const [spec, setSpec] = useState(
|
|
3118
|
+
initialSpec ?? null
|
|
3119
|
+
);
|
|
3120
|
+
const [timeline, setTimeline] = useState([]);
|
|
3121
|
+
const [phase, setPhase] = useState(
|
|
3122
|
+
() => derivePhase(initialStatus)
|
|
3123
|
+
);
|
|
3124
|
+
const [error, setError] = useState(null);
|
|
3125
|
+
const specRef = useRef(initialSpec ?? null);
|
|
3126
|
+
useEffect(() => {
|
|
3127
|
+
if (phase === "completed" || phase === "failed" || phase === "cancelled") {
|
|
3128
|
+
return;
|
|
3129
|
+
}
|
|
3130
|
+
const unsubscribe = subscribeToRunEvents(
|
|
3131
|
+
runId,
|
|
3132
|
+
(event) => handleEvent(event),
|
|
3133
|
+
(err) => {
|
|
3134
|
+
console.warn("streaming-dashboard sse error", err);
|
|
3135
|
+
}
|
|
3136
|
+
);
|
|
3137
|
+
return unsubscribe;
|
|
3138
|
+
}, [runId]);
|
|
3139
|
+
function handleEvent(event) {
|
|
3140
|
+
switch (event.type) {
|
|
3141
|
+
case "run-started":
|
|
3142
|
+
setPhase("running");
|
|
3143
|
+
break;
|
|
3144
|
+
case "node-started":
|
|
3145
|
+
if (event.nodeId) {
|
|
3146
|
+
setTimeline((prev) => upsertTimelineRunning(prev, event));
|
|
3147
|
+
}
|
|
3148
|
+
break;
|
|
3149
|
+
case "node-completed":
|
|
3150
|
+
if (event.nodeId) {
|
|
3151
|
+
setTimeline(
|
|
3152
|
+
(prev) => upsertTimelineDone(prev, event, "done")
|
|
3153
|
+
);
|
|
3154
|
+
mergeNodeOutput(event);
|
|
3155
|
+
}
|
|
3156
|
+
break;
|
|
3157
|
+
case "node-failed":
|
|
3158
|
+
if (event.nodeId) {
|
|
3159
|
+
setTimeline(
|
|
3160
|
+
(prev) => upsertTimelineDone(prev, event, "failed")
|
|
3161
|
+
);
|
|
3162
|
+
}
|
|
3163
|
+
break;
|
|
3164
|
+
case "run-paused":
|
|
3165
|
+
setPhase("paused");
|
|
3166
|
+
if (event.nodeId) {
|
|
3167
|
+
setTimeline(
|
|
3168
|
+
(prev) => upsertTimelineDone(prev, event, "paused")
|
|
3169
|
+
);
|
|
3170
|
+
}
|
|
3171
|
+
appendPauseSection(event);
|
|
3172
|
+
break;
|
|
3173
|
+
case "ui-render":
|
|
3174
|
+
appendSectionFromEvent(event);
|
|
3175
|
+
break;
|
|
3176
|
+
case "run-completed":
|
|
3177
|
+
setPhase("completed");
|
|
3178
|
+
break;
|
|
3179
|
+
case "run-failed":
|
|
3180
|
+
setPhase("failed");
|
|
3181
|
+
setError(
|
|
3182
|
+
event.data?.error ?? "Workflow run failed"
|
|
3183
|
+
);
|
|
3184
|
+
break;
|
|
3185
|
+
}
|
|
3186
|
+
}
|
|
3187
|
+
function mergeNodeOutput(event) {
|
|
3188
|
+
const output = event.data?.outputs;
|
|
3189
|
+
if (!output) return;
|
|
3190
|
+
const candidateSpec = isDashboardSpecLike(output) ? output : null;
|
|
3191
|
+
if (candidateSpec) {
|
|
3192
|
+
setSpec((prev) => mergeSpec(prev, candidateSpec));
|
|
3193
|
+
specRef.current = mergeSpec(specRef.current, candidateSpec);
|
|
3194
|
+
return;
|
|
3195
|
+
}
|
|
3196
|
+
if (isSectionLike(output)) {
|
|
3197
|
+
const section = output;
|
|
3198
|
+
setSpec((prev) => appendSectionToSpec(prev, section));
|
|
3199
|
+
specRef.current = appendSectionToSpec(specRef.current, section);
|
|
3200
|
+
}
|
|
3201
|
+
}
|
|
3202
|
+
function appendSectionFromEvent(event) {
|
|
3203
|
+
const sectionPayload = event.data?.section ?? event.data;
|
|
3204
|
+
if (!sectionPayload || !sectionPayload.type) return;
|
|
3205
|
+
setSpec((prev) => appendSectionToSpec(prev, sectionPayload));
|
|
3206
|
+
specRef.current = appendSectionToSpec(specRef.current, sectionPayload);
|
|
3207
|
+
}
|
|
3208
|
+
function appendPauseSection(event) {
|
|
3209
|
+
const promptValue = event.data?.prompt;
|
|
3210
|
+
const payloadValue = event.data?.payload;
|
|
3211
|
+
const prompt = typeof promptValue === "string" ? promptValue : void 0;
|
|
3212
|
+
const section = {
|
|
3213
|
+
type: "note",
|
|
3214
|
+
data: {
|
|
3215
|
+
title: "Aguardando aprova\xE7\xE3o",
|
|
3216
|
+
body: prompt ? prompt : "O workflow pausou e aguarda decis\xE3o do operador.",
|
|
3217
|
+
tone: "warning"
|
|
3218
|
+
}
|
|
3219
|
+
};
|
|
3220
|
+
setSpec((prev) => appendSectionToSpec(prev, section));
|
|
3221
|
+
specRef.current = appendSectionToSpec(specRef.current, section);
|
|
3222
|
+
if (payloadValue && typeof payloadValue === "object") {
|
|
3223
|
+
const followUp = {
|
|
3224
|
+
type: "note",
|
|
3225
|
+
data: {
|
|
3226
|
+
title: "Contexto",
|
|
3227
|
+
body: JSON.stringify(payloadValue, null, 2),
|
|
3228
|
+
tone: "info"
|
|
3229
|
+
}
|
|
3230
|
+
};
|
|
3231
|
+
setSpec((prev) => appendSectionToSpec(prev, followUp));
|
|
3232
|
+
specRef.current = appendSectionToSpec(specRef.current, followUp);
|
|
3233
|
+
}
|
|
3234
|
+
}
|
|
3235
|
+
return /* @__PURE__ */ jsxs("div", { className: className ?? "space-y-6", children: [
|
|
3236
|
+
/* @__PURE__ */ jsx(PhaseBadge, { phase }),
|
|
3237
|
+
timeline.length > 0 && /* @__PURE__ */ jsx(Timeline, { entries: timeline }),
|
|
3238
|
+
spec && /* @__PURE__ */ jsx(
|
|
3239
|
+
DashboardView,
|
|
2235
3240
|
{
|
|
2236
|
-
|
|
2237
|
-
|
|
3241
|
+
spec,
|
|
3242
|
+
renderInputRequest: (data) => /* @__PURE__ */ jsx(
|
|
3243
|
+
InputRequestForm,
|
|
3244
|
+
{
|
|
3245
|
+
runId,
|
|
3246
|
+
data,
|
|
3247
|
+
onResolved: (result) => {
|
|
3248
|
+
setPhase(result.approved ? "running" : "failed");
|
|
3249
|
+
}
|
|
3250
|
+
}
|
|
3251
|
+
)
|
|
2238
3252
|
}
|
|
2239
3253
|
),
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
{
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
},
|
|
2246
|
-
`${chart.title}-${index}`
|
|
2247
|
-
)) }),
|
|
2248
|
-
spec.table && spec.table.rows.length > 0 && /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-zinc-950/10 bg-white dark:border-white/10 dark:bg-zinc-900", children: [
|
|
2249
|
-
spec.table.title && /* @__PURE__ */ jsx("h3", { className: "border-b border-zinc-950/10 px-5 py-3 text-sm font-semibold text-slate-900 dark:border-white/10 dark:text-slate-100", children: spec.table.title }),
|
|
2250
|
-
/* @__PURE__ */ jsx(DashboardTableView, { table: spec.table })
|
|
2251
|
-
] }),
|
|
2252
|
-
spec.recommendation && spec.recommendation.trim().length > 0 && /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-indigo-500/20 bg-indigo-500/5 p-4 dark:border-indigo-400/30 dark:bg-indigo-500/10", children: [
|
|
2253
|
-
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-indigo-700 dark:text-indigo-300", children: "Recommendation" }),
|
|
2254
|
-
/* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-indigo-900 dark:text-indigo-100", children: spec.recommendation })
|
|
2255
|
-
] }),
|
|
2256
|
-
spec.meta && Object.keys(spec.meta).length > 0 && /* @__PURE__ */ jsx("footer", { className: "flex flex-wrap gap-4 text-[10px] text-slate-400 dark:text-slate-500", children: Object.entries(spec.meta).map(([key, value]) => /* @__PURE__ */ jsxs("span", { children: [
|
|
2257
|
-
/* @__PURE__ */ jsx("span", { className: "font-semibold uppercase tracking-wide", children: key }),
|
|
2258
|
-
": ",
|
|
2259
|
-
value
|
|
2260
|
-
] }, key)) })
|
|
3254
|
+
!spec && phase !== "completed" && /* @__PURE__ */ jsx("div", { className: "rounded-xl border border-dashed border-zinc-300 p-8 text-center text-sm text-slate-500 dark:border-zinc-700 dark:text-slate-400", children: phase === "paused" ? "Run paused \u2014 aguardando entrada do operador." : "Aguardando dados do workflow\u2026" }),
|
|
3255
|
+
error && /* @__PURE__ */ jsxs("section", { className: "rounded-xl border border-rose-500/30 bg-rose-500/10 p-4 text-sm text-rose-900 dark:text-rose-100", children: [
|
|
3256
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold", children: "Run falhou" }),
|
|
3257
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 whitespace-pre-line text-xs", children: error })
|
|
3258
|
+
] })
|
|
2261
3259
|
] });
|
|
2262
3260
|
}
|
|
2263
|
-
function
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
3261
|
+
function derivePhase(status) {
|
|
3262
|
+
switch (String(status ?? "").toLowerCase()) {
|
|
3263
|
+
case "completed":
|
|
3264
|
+
return "completed";
|
|
3265
|
+
case "failed":
|
|
3266
|
+
return "failed";
|
|
3267
|
+
case "cancelled":
|
|
3268
|
+
return "cancelled";
|
|
3269
|
+
case "paused_for_approval":
|
|
3270
|
+
return "paused";
|
|
3271
|
+
case "running":
|
|
3272
|
+
return "running";
|
|
3273
|
+
case "pending":
|
|
3274
|
+
case "":
|
|
3275
|
+
return "pending";
|
|
3276
|
+
default:
|
|
3277
|
+
return "pending";
|
|
3278
|
+
}
|
|
2276
3279
|
}
|
|
2277
|
-
function
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
3280
|
+
function PhaseBadge({ phase }) {
|
|
3281
|
+
const map = {
|
|
3282
|
+
pending: { status: "pending", label: "Pendente" },
|
|
3283
|
+
running: { status: "processing", label: "Em execu\xE7\xE3o" },
|
|
3284
|
+
paused: { status: "pending", label: "Aguardando aprova\xE7\xE3o" },
|
|
3285
|
+
completed: { status: "success", label: "Conclu\xEDdo" },
|
|
3286
|
+
failed: { status: "error", label: "Falhou" },
|
|
3287
|
+
cancelled: { status: "inactive", label: "Cancelado" }
|
|
3288
|
+
};
|
|
3289
|
+
const entry = map[phase];
|
|
3290
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx(StatusBadge, { status: entry.status, label: entry.label }) });
|
|
3291
|
+
}
|
|
3292
|
+
function Timeline({ entries }) {
|
|
3293
|
+
return /* @__PURE__ */ jsx("ol", { className: "flex flex-wrap gap-2", children: entries.map((entry) => {
|
|
3294
|
+
const dotClass = entry.status === "done" ? "bg-emerald-500" : entry.status === "failed" ? "bg-rose-500" : entry.status === "paused" ? "bg-amber-500" : "animate-pulse bg-sky-500";
|
|
3295
|
+
return /* @__PURE__ */ jsxs(
|
|
3296
|
+
"li",
|
|
2281
3297
|
{
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
children:
|
|
3298
|
+
className: "flex items-center gap-2 rounded-full border border-zinc-950/10 bg-white px-3 py-1 text-xs dark:border-white/10 dark:bg-zinc-900",
|
|
3299
|
+
title: entry.error ?? entry.nodeId,
|
|
3300
|
+
children: [
|
|
3301
|
+
/* @__PURE__ */ jsx("span", { className: `h-2 w-2 rounded-full ${dotClass}` }),
|
|
3302
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-slate-700 dark:text-slate-300", children: entry.nodeId }),
|
|
3303
|
+
entry.nodeType && /* @__PURE__ */ jsx("span", { className: "text-[10px] uppercase tracking-wide text-slate-400", children: entry.nodeType })
|
|
3304
|
+
]
|
|
2285
3305
|
},
|
|
2286
|
-
|
|
2287
|
-
)
|
|
2288
|
-
|
|
2289
|
-
const raw = row[column.key] ?? "";
|
|
2290
|
-
return /* @__PURE__ */ jsx(
|
|
2291
|
-
"td",
|
|
2292
|
-
{
|
|
2293
|
-
className: `px-4 py-2 text-slate-700 dark:text-slate-300 ${columnAlign(column.align)}`,
|
|
2294
|
-
children: formatCell(raw, column.format)
|
|
2295
|
-
},
|
|
2296
|
-
column.key
|
|
2297
|
-
);
|
|
2298
|
-
}) }, rowIndex)) })
|
|
2299
|
-
] }) });
|
|
2300
|
-
}
|
|
2301
|
-
function columnAlign(align) {
|
|
2302
|
-
if (align === "right") return "text-right";
|
|
2303
|
-
if (align === "center") return "text-center";
|
|
2304
|
-
return "text-left";
|
|
3306
|
+
entry.nodeId
|
|
3307
|
+
);
|
|
3308
|
+
}) });
|
|
2305
3309
|
}
|
|
2306
|
-
function
|
|
2307
|
-
if (
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
3310
|
+
function upsertTimelineRunning(prev, event) {
|
|
3311
|
+
if (!event.nodeId) return prev;
|
|
3312
|
+
const idx = prev.findIndex((entry) => entry.nodeId === event.nodeId);
|
|
3313
|
+
const nodeType = typeof event.data?.nodeType === "string" ? event.data.nodeType : void 0;
|
|
3314
|
+
const fresh = {
|
|
3315
|
+
nodeId: event.nodeId,
|
|
3316
|
+
nodeType,
|
|
3317
|
+
status: "running",
|
|
3318
|
+
startedAt: event.timestamp
|
|
3319
|
+
};
|
|
3320
|
+
if (idx === -1) return [...prev, fresh];
|
|
3321
|
+
const next = [...prev];
|
|
3322
|
+
next[idx] = { ...next[idx], ...fresh };
|
|
3323
|
+
return next;
|
|
3324
|
+
}
|
|
3325
|
+
function upsertTimelineDone(prev, event, status) {
|
|
3326
|
+
if (!event.nodeId) return prev;
|
|
3327
|
+
const idx = prev.findIndex((entry) => entry.nodeId === event.nodeId);
|
|
3328
|
+
const nodeType = typeof event.data?.nodeType === "string" ? event.data.nodeType : void 0;
|
|
3329
|
+
const error = typeof event.data?.error === "string" ? event.data.error : void 0;
|
|
3330
|
+
if (idx === -1) {
|
|
3331
|
+
return [
|
|
3332
|
+
...prev,
|
|
3333
|
+
{
|
|
3334
|
+
nodeId: event.nodeId,
|
|
3335
|
+
nodeType,
|
|
3336
|
+
status,
|
|
3337
|
+
startedAt: event.timestamp,
|
|
3338
|
+
finishedAt: event.timestamp,
|
|
3339
|
+
error
|
|
3340
|
+
}
|
|
3341
|
+
];
|
|
2313
3342
|
}
|
|
2314
|
-
|
|
2315
|
-
|
|
3343
|
+
const next = [...prev];
|
|
3344
|
+
next[idx] = {
|
|
3345
|
+
...next[idx],
|
|
3346
|
+
status,
|
|
3347
|
+
finishedAt: event.timestamp,
|
|
3348
|
+
error: error ?? next[idx].error
|
|
3349
|
+
};
|
|
3350
|
+
return next;
|
|
3351
|
+
}
|
|
3352
|
+
function isDashboardSpecLike(value) {
|
|
3353
|
+
if (!value || typeof value !== "object") return false;
|
|
3354
|
+
const candidate = value;
|
|
3355
|
+
return typeof candidate.title === "string" || Array.isArray(candidate.sections) || Array.isArray(candidate.kpis) || Array.isArray(candidate.charts) || typeof candidate.recommendation === "string";
|
|
3356
|
+
}
|
|
3357
|
+
function isSectionLike(value) {
|
|
3358
|
+
if (!value || typeof value !== "object") return false;
|
|
3359
|
+
const candidate = value;
|
|
3360
|
+
return typeof candidate.type === "string" && "data" in candidate;
|
|
3361
|
+
}
|
|
3362
|
+
function mergeSpec(prev, next) {
|
|
3363
|
+
if (!prev) return next;
|
|
3364
|
+
return {
|
|
3365
|
+
...prev,
|
|
3366
|
+
...next,
|
|
3367
|
+
title: next.title ?? prev.title,
|
|
3368
|
+
sections: mergeSections(prev.sections, next.sections)
|
|
3369
|
+
};
|
|
3370
|
+
}
|
|
3371
|
+
function mergeSections(a, b) {
|
|
3372
|
+
if (!a && !b) return void 0;
|
|
3373
|
+
if (!a) return b;
|
|
3374
|
+
if (!b) return a;
|
|
3375
|
+
const seen = /* @__PURE__ */ new Set();
|
|
3376
|
+
const merged = [];
|
|
3377
|
+
for (const section of [...a, ...b]) {
|
|
3378
|
+
const key = JSON.stringify(section);
|
|
3379
|
+
if (seen.has(key)) continue;
|
|
3380
|
+
seen.add(key);
|
|
3381
|
+
merged.push(section);
|
|
2316
3382
|
}
|
|
2317
|
-
return
|
|
3383
|
+
return merged;
|
|
2318
3384
|
}
|
|
2319
|
-
function
|
|
2320
|
-
|
|
2321
|
-
|
|
3385
|
+
function appendSectionToSpec(prev, section) {
|
|
3386
|
+
const base = prev ?? { title: "" };
|
|
3387
|
+
const sections = base.sections ? [...base.sections, section] : [section];
|
|
3388
|
+
return { ...base, sections };
|
|
2322
3389
|
}
|
|
2323
3390
|
|
|
2324
3391
|
// src/types/dashboard-spec.ts
|
|
@@ -2328,8 +3395,9 @@ function validateDashboardSpec(spec) {
|
|
|
2328
3395
|
const hasKpis = (spec.kpis?.length ?? 0) > 0;
|
|
2329
3396
|
const hasTable = (spec.table?.rows.length ?? 0) > 0;
|
|
2330
3397
|
const hasRecommendation = Boolean(spec.recommendation?.trim());
|
|
2331
|
-
|
|
2332
|
-
|
|
3398
|
+
const hasSections = (spec.sections?.length ?? 0) > 0;
|
|
3399
|
+
if (!hasCharts && !hasKpis && !hasTable && !hasRecommendation && !hasSections) {
|
|
3400
|
+
issues.push({ kind: "empty", message: "Dashboard has no content (no charts, KPIs, table, recommendation, or sections)." });
|
|
2333
3401
|
}
|
|
2334
3402
|
spec.charts?.forEach((chart, chartIndex) => {
|
|
2335
3403
|
if (chart.series.length === 0) {
|
|
@@ -2358,19 +3426,6 @@ function validateDashboardSpec(spec) {
|
|
|
2358
3426
|
}
|
|
2359
3427
|
return issues;
|
|
2360
3428
|
}
|
|
2361
|
-
function AgentAnalysisCard({ name, avatar, duration, output }) {
|
|
2362
|
-
return /* @__PURE__ */ jsxs("div", { className: "liquid-surface rounded-xl p-3 transition-all duration-300", children: [
|
|
2363
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-1.5", children: [
|
|
2364
|
-
/* @__PURE__ */ jsx("img", { src: avatar, alt: "", className: "h-6 w-6 rounded-lg" }),
|
|
2365
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
2366
|
-
/* @__PURE__ */ jsx("div", { className: "text-[10px] font-semibold text-white", children: name }),
|
|
2367
|
-
/* @__PURE__ */ jsx("div", { className: "text-[8px] text-gray-500", children: duration })
|
|
2368
|
-
] }),
|
|
2369
|
-
/* @__PURE__ */ jsx(CheckCircleIcon$1, { className: "h-3.5 w-3.5 text-emerald-400 shrink-0" })
|
|
2370
|
-
] }),
|
|
2371
|
-
/* @__PURE__ */ jsx("p", { className: "text-[8px] text-gray-400 leading-relaxed", children: output })
|
|
2372
|
-
] });
|
|
2373
|
-
}
|
|
2374
3429
|
function RecommendationCard({ price, delta, confidence, margin, minMax }) {
|
|
2375
3430
|
return /* @__PURE__ */ jsxs("div", { className: "liquid-surface rounded-xl p-3.5", children: [
|
|
2376
3431
|
/* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center gap-1.5 text-[11px] font-semibold text-gray-400", children: [
|
|
@@ -3750,7 +4805,7 @@ function ProgressIndicator({
|
|
|
3750
4805
|
stiffness: 500,
|
|
3751
4806
|
damping: 30
|
|
3752
4807
|
},
|
|
3753
|
-
children: showNumbers && (isCompleted ? /* @__PURE__ */ jsx(
|
|
4808
|
+
children: showNumbers && (isCompleted ? /* @__PURE__ */ jsx(CheckIcon3, { className: "w-4 h-4" }) : index + 1)
|
|
3754
4809
|
}
|
|
3755
4810
|
),
|
|
3756
4811
|
index < steps - 1 && /* @__PURE__ */ jsx(
|
|
@@ -3765,7 +4820,7 @@ function ProgressIndicator({
|
|
|
3765
4820
|
] }, index);
|
|
3766
4821
|
}) });
|
|
3767
4822
|
}
|
|
3768
|
-
function
|
|
4823
|
+
function CheckIcon3({ className }) {
|
|
3769
4824
|
return /* @__PURE__ */ jsx(
|
|
3770
4825
|
"svg",
|
|
3771
4826
|
{
|
|
@@ -5722,43 +6777,19 @@ var FormField = React12__default.forwardRef(
|
|
|
5722
6777
|
] });
|
|
5723
6778
|
}
|
|
5724
6779
|
);
|
|
5725
|
-
FormField.displayName = "FormField";
|
|
5726
|
-
var FormSection = React12__default.forwardRef(
|
|
5727
|
-
({ title, description, children, className, ...props }, ref) => {
|
|
5728
|
-
return /* @__PURE__ */ jsxs("div", { ref, className: clsx("space-y-4", className), ...props, children: [
|
|
5729
|
-
(title || description) && /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
5730
|
-
title && /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold text-gray-900 dark:text-white", children: title }),
|
|
5731
|
-
description && /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: description })
|
|
5732
|
-
] }),
|
|
5733
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-4", children })
|
|
5734
|
-
] });
|
|
5735
|
-
}
|
|
5736
|
-
);
|
|
5737
|
-
FormSection.displayName = "FormSection";
|
|
5738
|
-
function ItemSummary({
|
|
5739
|
-
icon,
|
|
5740
|
-
title,
|
|
5741
|
-
subtitle,
|
|
5742
|
-
metadata,
|
|
5743
|
-
iconContainerClassName = "flex size-10 flex-shrink-0 items-center justify-center rounded-lg bg-indigo-100 dark:bg-indigo-900/30",
|
|
5744
|
-
titleClassName = "truncate text-sm font-semibold text-gray-900 dark:text-white",
|
|
5745
|
-
subtitleClassName = "truncate text-xs text-gray-500 dark:text-gray-400",
|
|
5746
|
-
metadataContainerClassName = "mt-2 flex flex-wrap gap-3",
|
|
5747
|
-
metadataLabelClassName = "text-xs text-gray-500 dark:text-gray-400",
|
|
5748
|
-
metadataValueClassName = "text-xs font-medium text-gray-900 dark:text-white"
|
|
5749
|
-
}) {
|
|
5750
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-1 min-w-0 items-start gap-3", children: [
|
|
5751
|
-
icon ? /* @__PURE__ */ jsx("div", { className: iconContainerClassName, children: icon }) : null,
|
|
5752
|
-
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
5753
|
-
/* @__PURE__ */ jsx("div", { className: titleClassName, children: title }),
|
|
5754
|
-
subtitle ? /* @__PURE__ */ jsx("div", { className: subtitleClassName, children: subtitle }) : null,
|
|
5755
|
-
metadata && metadata.length > 0 ? /* @__PURE__ */ jsx("div", { className: metadataContainerClassName, children: metadata.map((metadataItem, index) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
5756
|
-
/* @__PURE__ */ jsx("span", { className: metadataLabelClassName, children: metadataItem.label }),
|
|
5757
|
-
/* @__PURE__ */ jsx("span", { className: metadataValueClassName, children: metadataItem.value })
|
|
5758
|
-
] }, index)) }) : null
|
|
5759
|
-
] })
|
|
5760
|
-
] });
|
|
5761
|
-
}
|
|
6780
|
+
FormField.displayName = "FormField";
|
|
6781
|
+
var FormSection = React12__default.forwardRef(
|
|
6782
|
+
({ title, description, children, className, ...props }, ref) => {
|
|
6783
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: clsx("space-y-4", className), ...props, children: [
|
|
6784
|
+
(title || description) && /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
6785
|
+
title && /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold text-gray-900 dark:text-white", children: title }),
|
|
6786
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: description })
|
|
6787
|
+
] }),
|
|
6788
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-4", children })
|
|
6789
|
+
] });
|
|
6790
|
+
}
|
|
6791
|
+
);
|
|
6792
|
+
FormSection.displayName = "FormSection";
|
|
5762
6793
|
var CONTAINER_STYLES2 = {
|
|
5763
6794
|
default: "bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700",
|
|
5764
6795
|
compact: "bg-transparent",
|
|
@@ -5822,80 +6853,6 @@ var ListItem = React12__default.forwardRef(
|
|
|
5822
6853
|
}
|
|
5823
6854
|
);
|
|
5824
6855
|
ListItem.displayName = "ListItem";
|
|
5825
|
-
var TONE_STYLES = {
|
|
5826
|
-
error: { container: "border-red-500/30 bg-red-500/20 text-red-600 dark:text-red-400", dot: "bg-red-500" },
|
|
5827
|
-
warning: { container: "border-amber-500/30 bg-amber-500/20 text-amber-600 dark:text-amber-400", dot: "bg-amber-500" },
|
|
5828
|
-
info: { container: "border-blue-500/30 bg-blue-500/20 text-blue-600 dark:text-blue-400", dot: "bg-blue-500" },
|
|
5829
|
-
neutral: { container: "border-slate-500/30 bg-slate-500/20 text-slate-600 dark:text-slate-400", dot: "bg-slate-500" },
|
|
5830
|
-
success: { container: "border-emerald-500/30 bg-emerald-500/20 text-emerald-600 dark:text-emerald-400", dot: "bg-emerald-500" }
|
|
5831
|
-
};
|
|
5832
|
-
var LEGACY_STATUS_STYLES = {
|
|
5833
|
-
pending: "border-yellow-200 bg-yellow-50 text-yellow-700 dark:border-yellow-700/30 dark:bg-yellow-900/20 dark:text-yellow-400",
|
|
5834
|
-
approved: "border-green-200 bg-green-50 text-green-700 dark:border-green-700/30 dark:bg-green-900/20 dark:text-green-400",
|
|
5835
|
-
rejected: "border-red-200 bg-red-50 text-red-700 dark:border-red-700/30 dark:bg-red-900/20 dark:text-red-400",
|
|
5836
|
-
active: "border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-700/30 dark:bg-emerald-900/20 dark:text-emerald-400",
|
|
5837
|
-
inactive: "border-white/30 dark:border-white/10 bg-slate-500/10 text-slate-700 dark:bg-slate-900/20 dark:text-slate-400",
|
|
5838
|
-
processing: "border-blue-200 bg-blue-50 text-blue-700 dark:border-blue-700/30 dark:bg-blue-900/20 dark:text-blue-400",
|
|
5839
|
-
error: "border-red-200 bg-red-50 text-red-700 dark:border-red-700/30 dark:bg-red-900/20 dark:text-red-400",
|
|
5840
|
-
success: "border-green-200 bg-green-50 text-green-700 dark:border-green-700/30 dark:bg-green-900/20 dark:text-green-400"
|
|
5841
|
-
};
|
|
5842
|
-
var LEGACY_DOT_STYLES = {
|
|
5843
|
-
pending: "bg-yellow-500",
|
|
5844
|
-
approved: "bg-green-500",
|
|
5845
|
-
rejected: "bg-red-500",
|
|
5846
|
-
active: "bg-emerald-500",
|
|
5847
|
-
inactive: "bg-slate-500",
|
|
5848
|
-
processing: "bg-blue-500",
|
|
5849
|
-
error: "bg-red-500",
|
|
5850
|
-
success: "bg-green-500"
|
|
5851
|
-
};
|
|
5852
|
-
var SIZE_STYLES = {
|
|
5853
|
-
sm: "px-2 py-0.5 text-xs",
|
|
5854
|
-
md: "px-2.5 py-1 text-xs"
|
|
5855
|
-
};
|
|
5856
|
-
var DEFAULT_LEGACY_STYLE = "border-white/30 dark:border-white/10 bg-slate-500/10 text-slate-700 dark:bg-slate-900/20 dark:text-slate-400";
|
|
5857
|
-
var StatusBadge = forwardRef(function StatusBadge2({ status, label, size = "md", className = "", ...props }, ref) {
|
|
5858
|
-
if ("statusConfig" in props && props.statusConfig) {
|
|
5859
|
-
const configuredStatus = props.statusConfig[status];
|
|
5860
|
-
if (!configuredStatus) {
|
|
5861
|
-
return null;
|
|
5862
|
-
}
|
|
5863
|
-
const toneStyle = TONE_STYLES[configuredStatus.tone ?? "neutral"];
|
|
5864
|
-
const IconComponent = configuredStatus.icon;
|
|
5865
|
-
const resolvedLabel2 = label ?? configuredStatus.label;
|
|
5866
|
-
return /* @__PURE__ */ jsxs(
|
|
5867
|
-
"div",
|
|
5868
|
-
{
|
|
5869
|
-
ref,
|
|
5870
|
-
role: "status",
|
|
5871
|
-
"aria-label": `Status: ${status}`,
|
|
5872
|
-
"data-testid": `status-badge-${status}`,
|
|
5873
|
-
className: `inline-flex items-center gap-1.5 rounded-full border font-semibold backdrop-blur-sm ${SIZE_STYLES[size]} ${toneStyle.container} ${className}`,
|
|
5874
|
-
children: [
|
|
5875
|
-
IconComponent ? /* @__PURE__ */ jsx(IconComponent, { className: `h-3 w-3 ${configuredStatus.animateIcon ? "animate-spin motion-reduce:animate-none" : ""}` }) : /* @__PURE__ */ jsx("span", { className: `h-2 w-2 rounded-full ${toneStyle.dot}` }),
|
|
5876
|
-
resolvedLabel2
|
|
5877
|
-
]
|
|
5878
|
-
}
|
|
5879
|
-
);
|
|
5880
|
-
}
|
|
5881
|
-
const legacyStyle = LEGACY_STATUS_STYLES[status] ?? DEFAULT_LEGACY_STYLE;
|
|
5882
|
-
const legacyDot = LEGACY_DOT_STYLES[status] ?? "bg-slate-500";
|
|
5883
|
-
const resolvedLabel = label ?? status;
|
|
5884
|
-
return /* @__PURE__ */ jsxs(
|
|
5885
|
-
"div",
|
|
5886
|
-
{
|
|
5887
|
-
ref,
|
|
5888
|
-
role: "status",
|
|
5889
|
-
"aria-label": `Status: ${status}`,
|
|
5890
|
-
"data-testid": `status-badge-${status}`,
|
|
5891
|
-
className: `inline-flex items-center gap-1.5 rounded-full border font-semibold ${SIZE_STYLES[size]} ${legacyStyle} ${className}`,
|
|
5892
|
-
children: [
|
|
5893
|
-
/* @__PURE__ */ jsx("span", { className: `h-2 w-2 rounded-full ${legacyDot}` }),
|
|
5894
|
-
resolvedLabel
|
|
5895
|
-
]
|
|
5896
|
-
}
|
|
5897
|
-
);
|
|
5898
|
-
});
|
|
5899
6856
|
function ProfileIdentityCard({
|
|
5900
6857
|
displayName,
|
|
5901
6858
|
profileInitial,
|
|
@@ -6508,7 +7465,7 @@ function SelectableListPicker({
|
|
|
6508
7465
|
"div",
|
|
6509
7466
|
{
|
|
6510
7467
|
className: `flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full ${isSelected ? "bg-blue-500 text-white" : "border-2 border-gray-300 dark:border-gray-500"}`,
|
|
6511
|
-
children: isSelected ? /* @__PURE__ */ jsx(CheckIcon$
|
|
7468
|
+
children: isSelected ? /* @__PURE__ */ jsx(CheckIcon$2, { className: "h-3 w-3" }) : null
|
|
6512
7469
|
}
|
|
6513
7470
|
)
|
|
6514
7471
|
]
|
|
@@ -6664,7 +7621,7 @@ function SelectableChipPicker({
|
|
|
6664
7621
|
"div",
|
|
6665
7622
|
{
|
|
6666
7623
|
className: `flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-full ${isSelected ? "bg-blue-500 text-white" : "border border-gray-300 dark:border-gray-500"}`,
|
|
6667
|
-
children: isSelected ? /* @__PURE__ */ jsx(CheckIcon$
|
|
7624
|
+
children: isSelected ? /* @__PURE__ */ jsx(CheckIcon$2, { className: "h-2.5 w-2.5" }) : null
|
|
6668
7625
|
}
|
|
6669
7626
|
)
|
|
6670
7627
|
]
|
|
@@ -7238,7 +8195,7 @@ function TimePicker({
|
|
|
7238
8195
|
${isFuture ? "bg-gray-200 dark:bg-gray-700 text-gray-400 dark:text-gray-500 cursor-not-allowed" : "bg-indigo-500 text-white hover:bg-indigo-600 active:bg-indigo-700"}
|
|
7239
8196
|
`,
|
|
7240
8197
|
children: [
|
|
7241
|
-
/* @__PURE__ */ jsx(CheckIcon$
|
|
8198
|
+
/* @__PURE__ */ jsx(CheckIcon$2, { className: "h-4 w-4" }),
|
|
7242
8199
|
t("confirm")
|
|
7243
8200
|
]
|
|
7244
8201
|
}
|
|
@@ -7249,95 +8206,6 @@ function TimePicker({
|
|
|
7249
8206
|
) })
|
|
7250
8207
|
] });
|
|
7251
8208
|
}
|
|
7252
|
-
function classNames(...classes) {
|
|
7253
|
-
return classes.filter(Boolean).join(" ");
|
|
7254
|
-
}
|
|
7255
|
-
function StepTimeline({
|
|
7256
|
-
steps,
|
|
7257
|
-
progressLabel,
|
|
7258
|
-
onStepClick,
|
|
7259
|
-
renderCompleteContent
|
|
7260
|
-
}) {
|
|
7261
|
-
return /* @__PURE__ */ jsx("div", { className: "lg:border-t lg:border-b lg:border-gray-200 dark:lg:border-white/15", children: /* @__PURE__ */ jsx("nav", { "aria-label": progressLabel, className: "mx-auto max-w-7xl px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsx(
|
|
7262
|
-
"ol",
|
|
7263
|
-
{
|
|
7264
|
-
role: "list",
|
|
7265
|
-
className: "overflow-hidden rounded-md lg:flex lg:rounded-none lg:border-r lg:border-l lg:border-gray-200 dark:lg:border-white/15",
|
|
7266
|
-
children: steps.map((step2, stepIndex) => /* @__PURE__ */ jsx("li", { className: "relative overflow-hidden lg:flex-1", children: /* @__PURE__ */ jsxs(
|
|
7267
|
-
"button",
|
|
7268
|
-
{
|
|
7269
|
-
type: "button",
|
|
7270
|
-
onClick: () => onStepClick?.(stepIndex),
|
|
7271
|
-
disabled: step2.status === "upcoming",
|
|
7272
|
-
className: classNames(
|
|
7273
|
-
step2.status === "upcoming" ? "cursor-not-allowed" : "cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800",
|
|
7274
|
-
stepIndex === 0 ? "rounded-t-md border-b-0" : "",
|
|
7275
|
-
stepIndex === steps.length - 1 ? "rounded-b-md border-t-0" : "",
|
|
7276
|
-
"w-full overflow-hidden border border-gray-200 text-left transition-colors lg:border-0 dark:border-white/15"
|
|
7277
|
-
),
|
|
7278
|
-
children: [
|
|
7279
|
-
step2.status === "complete" ? /* @__PURE__ */ jsxs("div", { className: "group", children: [
|
|
7280
|
-
/* @__PURE__ */ jsx(
|
|
7281
|
-
"span",
|
|
7282
|
-
{
|
|
7283
|
-
"aria-hidden": "true",
|
|
7284
|
-
className: "absolute top-0 left-0 h-full w-1 bg-transparent group-hover:bg-gray-200 lg:top-auto lg:bottom-0 lg:h-1 lg:w-full dark:group-hover:bg-white/20"
|
|
7285
|
-
}
|
|
7286
|
-
),
|
|
7287
|
-
renderCompleteContent ? renderCompleteContent(step2) : /* @__PURE__ */ jsxs("span", { className: classNames(stepIndex !== 0 ? "lg:pl-9" : "", "flex items-start px-6 py-5 text-sm font-medium"), children: [
|
|
7288
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0", children: /* @__PURE__ */ jsx("span", { className: "flex h-9 w-9 items-center justify-center rounded-full bg-blue-600 dark:bg-blue-500", children: /* @__PURE__ */ jsx(CheckIcon$2, { "aria-hidden": "true", className: "h-5 w-5 text-white" }) }) }),
|
|
7289
|
-
/* @__PURE__ */ jsxs("span", { className: "mt-0.5 ml-4 flex min-w-0 flex-col", children: [
|
|
7290
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-900 dark:text-white", children: step2.name }),
|
|
7291
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-500 dark:text-gray-400", children: step2.description })
|
|
7292
|
-
] })
|
|
7293
|
-
] })
|
|
7294
|
-
] }) : step2.status === "current" ? /* @__PURE__ */ jsxs("div", { "aria-current": "step", children: [
|
|
7295
|
-
/* @__PURE__ */ jsx(
|
|
7296
|
-
"span",
|
|
7297
|
-
{
|
|
7298
|
-
"aria-hidden": "true",
|
|
7299
|
-
className: "absolute top-0 left-0 h-full w-1 bg-blue-600 lg:top-auto lg:bottom-0 lg:h-1 lg:w-full dark:bg-blue-500"
|
|
7300
|
-
}
|
|
7301
|
-
),
|
|
7302
|
-
/* @__PURE__ */ jsxs("span", { className: classNames(stepIndex !== 0 ? "lg:pl-9" : "", "flex items-start px-6 py-5 text-sm font-medium"), children: [
|
|
7303
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0", children: /* @__PURE__ */ jsx("span", { className: "flex h-10 w-10 items-center justify-center rounded-full border-2 border-blue-600 dark:border-blue-500", children: /* @__PURE__ */ jsx("span", { className: "text-blue-600 dark:text-blue-400", children: step2.id }) }) }),
|
|
7304
|
-
/* @__PURE__ */ jsxs("span", { className: "mt-0.5 ml-4 flex min-w-0 flex-col", children: [
|
|
7305
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-blue-600 dark:text-blue-400", children: step2.name }),
|
|
7306
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-500 dark:text-gray-400", children: step2.description })
|
|
7307
|
-
] })
|
|
7308
|
-
] })
|
|
7309
|
-
] }) : /* @__PURE__ */ jsxs("div", { className: "group", children: [
|
|
7310
|
-
/* @__PURE__ */ jsx(
|
|
7311
|
-
"span",
|
|
7312
|
-
{
|
|
7313
|
-
"aria-hidden": "true",
|
|
7314
|
-
className: "absolute top-0 left-0 h-full w-1 bg-transparent group-hover:bg-gray-200 lg:top-auto lg:bottom-0 lg:h-1 lg:w-full dark:group-hover:bg-white/20"
|
|
7315
|
-
}
|
|
7316
|
-
),
|
|
7317
|
-
/* @__PURE__ */ jsxs("span", { className: classNames(stepIndex !== 0 ? "lg:pl-9" : "", "flex items-start px-6 py-5 text-sm font-medium"), children: [
|
|
7318
|
-
/* @__PURE__ */ jsx("span", { className: "shrink-0", children: /* @__PURE__ */ jsx("span", { className: "flex h-10 w-10 items-center justify-center rounded-full border-2 border-gray-300 dark:border-white/15", children: /* @__PURE__ */ jsx("span", { className: "text-gray-500 dark:text-gray-400", children: step2.id }) }) }),
|
|
7319
|
-
/* @__PURE__ */ jsxs("span", { className: "mt-0.5 ml-4 flex min-w-0 flex-col", children: [
|
|
7320
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-500 dark:text-gray-400", children: step2.name }),
|
|
7321
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-gray-500 dark:text-gray-400", children: step2.description })
|
|
7322
|
-
] })
|
|
7323
|
-
] })
|
|
7324
|
-
] }),
|
|
7325
|
-
stepIndex !== 0 ? /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "absolute inset-0 top-0 left-0 hidden w-3 lg:block", children: /* @__PURE__ */ jsx(
|
|
7326
|
-
"svg",
|
|
7327
|
-
{
|
|
7328
|
-
fill: "none",
|
|
7329
|
-
viewBox: "0 0 12 82",
|
|
7330
|
-
preserveAspectRatio: "none",
|
|
7331
|
-
className: "h-full w-full text-gray-200 dark:text-white/15",
|
|
7332
|
-
children: /* @__PURE__ */ jsx("path", { d: "M0.5 0V31L10.5 41L0.5 51V82", stroke: "currentColor", vectorEffect: "non-scaling-stroke" })
|
|
7333
|
-
}
|
|
7334
|
-
) }) : null
|
|
7335
|
-
]
|
|
7336
|
-
}
|
|
7337
|
-
) }, step2.id))
|
|
7338
|
-
}
|
|
7339
|
-
) }) });
|
|
7340
|
-
}
|
|
7341
8209
|
function PageHeading({ breadcrumbs, title, subtitle, icon, meta, actions }) {
|
|
7342
8210
|
const t = useTranslations("common");
|
|
7343
8211
|
return /* @__PURE__ */ jsxs("div", { className: "mb-6 lg:flex lg:items-start lg:justify-between", children: [
|
|
@@ -7680,7 +8548,7 @@ function FormCheckbox({ checked, onChange, label, description, disabled = false
|
|
|
7680
8548
|
"span",
|
|
7681
8549
|
{
|
|
7682
8550
|
className: `mt-0.5 inline-flex h-4 w-4 items-center justify-center rounded border text-white ${checked ? "border-blue-500 bg-blue-500" : "border-gray-300 bg-transparent dark:border-gray-600"}`,
|
|
7683
|
-
children: checked ? /* @__PURE__ */ jsx(CheckIcon$
|
|
8551
|
+
children: checked ? /* @__PURE__ */ jsx(CheckIcon$1, { className: "h-3 w-3" }) : null
|
|
7684
8552
|
}
|
|
7685
8553
|
),
|
|
7686
8554
|
/* @__PURE__ */ jsxs("span", { className: "min-w-0", children: [
|
|
@@ -7991,7 +8859,7 @@ function StepFormPage({
|
|
|
7991
8859
|
disabled: !isClickable && !isCurrent,
|
|
7992
8860
|
className: `flex items-center gap-2 rounded-full px-3 py-1.5 text-xs font-medium transition-all duration-200 ${isCurrent ? "bg-blue-500/15 text-blue-700 shadow-sm backdrop-blur-sm dark:bg-blue-500/25 dark:text-blue-300" : isCompleted ? "bg-emerald-500/10 text-emerald-700 cursor-pointer hover:bg-emerald-500/20 backdrop-blur-sm dark:bg-emerald-500/20 dark:text-emerald-300" : "bg-slate-500/8 text-slate-400 dark:bg-white/5 dark:text-white/30"}`,
|
|
7993
8861
|
children: [
|
|
7994
|
-
/* @__PURE__ */ jsx("span", { className: `flex h-5 w-5 items-center justify-center rounded-full text-[10px] font-bold ${isCurrent ? "bg-blue-500 text-white" : isCompleted ? "bg-emerald-500 text-white" : "bg-slate-200 text-slate-400 dark:bg-white/10 dark:text-white/30"}`, children: isCompleted ? /* @__PURE__ */ jsx(CheckIcon$
|
|
8862
|
+
/* @__PURE__ */ jsx("span", { className: `flex h-5 w-5 items-center justify-center rounded-full text-[10px] font-bold ${isCurrent ? "bg-blue-500 text-white" : isCompleted ? "bg-emerald-500 text-white" : "bg-slate-200 text-slate-400 dark:bg-white/10 dark:text-white/30"}`, children: isCompleted ? /* @__PURE__ */ jsx(CheckIcon$2, { className: "h-3 w-3" }) : index + 1 }),
|
|
7995
8863
|
/* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: step2.title })
|
|
7996
8864
|
]
|
|
7997
8865
|
}
|
|
@@ -8201,87 +9069,6 @@ function SearchFilterToolbar({
|
|
|
8201
9069
|
] }) })
|
|
8202
9070
|
] });
|
|
8203
9071
|
}
|
|
8204
|
-
function isPlainTextTitle(title) {
|
|
8205
|
-
return typeof title === "string" || typeof title === "number";
|
|
8206
|
-
}
|
|
8207
|
-
function getTestIdFromTitle(title) {
|
|
8208
|
-
if (isPlainTextTitle(title)) {
|
|
8209
|
-
return `entity-card-${String(title).toLowerCase().replace(/\s+/g, "-")}`;
|
|
8210
|
-
}
|
|
8211
|
-
return "entity-card";
|
|
8212
|
-
}
|
|
8213
|
-
function StatusBadgeInternal({ status }) {
|
|
8214
|
-
const tCommon = useTranslations("common");
|
|
8215
|
-
if (typeof status !== "boolean") {
|
|
8216
|
-
return /* @__PURE__ */ jsx(Fragment, { children: status });
|
|
8217
|
-
}
|
|
8218
|
-
return /* @__PURE__ */ jsx(
|
|
8219
|
-
"span",
|
|
8220
|
-
{
|
|
8221
|
-
className: `shrink-0 rounded-full px-2 py-0.5 text-xs font-medium ${status ? "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-300" : "bg-white/40 text-slate-500 dark:bg-white/[0.08] dark:text-slate-400"}`,
|
|
8222
|
-
children: status ? tCommon("active") : tCommon("inactive")
|
|
8223
|
-
}
|
|
8224
|
-
);
|
|
8225
|
-
}
|
|
8226
|
-
function EntityCard({
|
|
8227
|
-
icon,
|
|
8228
|
-
title,
|
|
8229
|
-
subtitle,
|
|
8230
|
-
status,
|
|
8231
|
-
accentGradient,
|
|
8232
|
-
children,
|
|
8233
|
-
footer,
|
|
8234
|
-
onClick,
|
|
8235
|
-
className = "",
|
|
8236
|
-
dragProps
|
|
8237
|
-
}) {
|
|
8238
|
-
const isInteractive = Boolean(onClick);
|
|
8239
|
-
const plainTextTitle = isPlainTextTitle(title) ? String(title) : void 0;
|
|
8240
|
-
const handleKeyDown = useCallback(
|
|
8241
|
-
(event) => {
|
|
8242
|
-
if (onClick && (event.key === "Enter" || event.key === " ")) {
|
|
8243
|
-
event.preventDefault();
|
|
8244
|
-
onClick();
|
|
8245
|
-
}
|
|
8246
|
-
},
|
|
8247
|
-
[onClick]
|
|
8248
|
-
);
|
|
8249
|
-
return /* @__PURE__ */ jsxs(
|
|
8250
|
-
Card,
|
|
8251
|
-
{
|
|
8252
|
-
role: isInteractive ? "article" : "listitem",
|
|
8253
|
-
"aria-label": isInteractive ? plainTextTitle : void 0,
|
|
8254
|
-
"data-testid": getTestIdFromTitle(title),
|
|
8255
|
-
tabIndex: isInteractive ? 0 : void 0,
|
|
8256
|
-
onKeyDown: isInteractive ? handleKeyDown : void 0,
|
|
8257
|
-
className: `group overflow-hidden transition-all duration-200 hover:-translate-y-0.5 hover:shadow-md ${isInteractive ? "cursor-pointer" : ""} ${className}`,
|
|
8258
|
-
onPress: onClick,
|
|
8259
|
-
pressable: isInteractive,
|
|
8260
|
-
...dragProps,
|
|
8261
|
-
children: [
|
|
8262
|
-
accentGradient && /* @__PURE__ */ jsx("div", { className: `h-1.5 w-full bg-gradient-to-r ${accentGradient}` }),
|
|
8263
|
-
/* @__PURE__ */ jsxs("div", { className: "p-4", children: [
|
|
8264
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3", children: [
|
|
8265
|
-
/* @__PURE__ */ jsx("div", { "data-testid": "entity-card-title", children: /* @__PURE__ */ jsx(
|
|
8266
|
-
ItemSummary,
|
|
8267
|
-
{
|
|
8268
|
-
icon,
|
|
8269
|
-
title,
|
|
8270
|
-
subtitle: subtitle ? /* @__PURE__ */ jsx("span", { "data-testid": "entity-card-subtitle", children: subtitle }) : void 0,
|
|
8271
|
-
iconContainerClassName: "shrink-0",
|
|
8272
|
-
titleClassName: isPlainTextTitle(title) ? "truncate font-semibold text-slate-900 dark:text-white" : "font-semibold text-slate-900 dark:text-white",
|
|
8273
|
-
subtitleClassName: "mt-0.5 text-xs text-slate-500 dark:text-slate-400"
|
|
8274
|
-
}
|
|
8275
|
-
) }),
|
|
8276
|
-
status !== void 0 && /* @__PURE__ */ jsx(StatusBadgeInternal, { status })
|
|
8277
|
-
] }),
|
|
8278
|
-
children && /* @__PURE__ */ jsx("div", { className: "mt-3", children }),
|
|
8279
|
-
footer && /* @__PURE__ */ jsx("div", { className: "mt-3 border-t border-white/30 pt-3 dark:border-white/10 flex gap-2 justify-end opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-within:opacity-100", children: footer })
|
|
8280
|
-
] })
|
|
8281
|
-
]
|
|
8282
|
-
}
|
|
8283
|
-
);
|
|
8284
|
-
}
|
|
8285
9072
|
var COLOR_MAP = {
|
|
8286
9073
|
blue: {
|
|
8287
9074
|
activeGradient: "bg-gradient-to-br from-blue-500 to-blue-600 ring-2 ring-blue-500 shadow-lg",
|
|
@@ -24808,6 +25595,6 @@ function SkipToContent({
|
|
|
24808
25595
|
);
|
|
24809
25596
|
}
|
|
24810
25597
|
|
|
24811
|
-
export { AIOrchestratorDemo, ARGENTINA_ACCENT_MAP, ARGENTINA_MACRO_REGIONS, ARGENTINA_MAP_CENTER, ARGENTINA_PROVINCE_COORDINATES, ARGENTINA_PROVINCE_PALETTES, AR_THEME_CONFIG, AUSTRALIA_ACCENT_MAP, AUSTRALIA_MACRO_REGIONS, AUSTRALIA_MAP_CENTER, AUSTRALIA_STATE_COORDINATES, AUSTRALIA_STATE_PALETTES, AU_THEME_CONFIG, ActionMenu, ActionSheet, ActiveFilterChips, AgentAnalysisCard, AnalysisSkeleton, AnimatedNumber, AnimatedTableRow, AppLogo, AppNavigation, AppShell, ArchiveSwipeAction, AuthLayout, Avatar, AvatarButton, BRAZIL_ACCENT_MAP, BRAZIL_MACRO_REGIONS, BRAZIL_MAP_CENTER, BRAZIL_STATE_COORDINATES, BRAZIL_STATE_PALETTES, BR_THEME_CONFIG, BackupCodeGrid, BadRequestPage, Badge, BaseForm, BentoCard, BentoFeatureGrid, BooleanFlagsPicker, BottomSafeArea, BrandFilterSkeleton, BrandedLoader, Breadcrumb, Button, CANADA_ACCENT_MAP, CANADA_MACRO_REGIONS, CANADA_MAP_CENTER, CANADA_PROVINCE_COORDINATES, CANADA_PROVINCE_PALETTES, CA_THEME_CONFIG, CHILE_ACCENT_MAP, CHILE_MACRO_REGIONS, CHILE_MAP_CENTER, CHILE_REGION_COORDINATES, CHILE_REGION_PALETTES, CL_THEME_CONFIG, COLOMBIA_ACCENT_MAP, COLOMBIA_DEPARTMENT_COORDINATES, COLOMBIA_DEPARTMENT_PALETTES, COLOMBIA_MACRO_REGIONS, COLOMBIA_MAP_CENTER, CO_THEME_CONFIG, Card, CardActionMenu, CardContent, CardDescription, CardDivider, CardFooter, CardGridSkeleton, CardHeader, CardSectionHeader, CardTitle, CategoryBadge, CategoryTab, CategoryTabs, ChartRenderer, ChipPicker, CircularRefreshIndicator, Code, CollapsibleGroupedList, CompactSegmentedControl, ContactCard, ContactSection, Container, ContextMenu, CookieConsent, CopyableId, CountPill, CreateActionButton, CustomerAnalyticsDemo, DE_THEME_CONFIG, DashboardDemo, DashboardDemoLayout, DashboardProgressShell, DashboardView, DataPagination, DatePicker, DeleteSwipeAction, DepartmentAssistantDemo, DepartmentWorkflowDemo, Description4 as Description, DetailsPopover, DevModeBanner, Dialog4 as Dialog, DialogActions, DialogBody, DialogDescription, DialogTitle3 as DialogTitle, Divider, Dock, DockContainer, DockSkeleton, DotRefreshIndicator, Dropdown, DropdownButton, DropdownDivider, DropdownItem, DropdownLabel, DropdownMenu, DropdownSelect, DynamicIsland, DynamicIslandConfirm, DynamicIslandNotification, EGYPT_ACCENT_MAP, EGYPT_GOVERNORATE_COORDINATES, EGYPT_GOVERNORATE_PALETTES, EGYPT_MACRO_REGIONS, EGYPT_MAP_CENTER, EG_THEME_CONFIG, ES_THEME_CONFIG, EdgeSwipeIndicator, EdgeSwipeProvider, EditSwipeAction, EmptyState, EntityCard, EntityDrawer, ErrorMessage, ErrorState, ExpandableHistoryList, ExpandingPageIndicator, FRANCE_ACCENT_MAP, FRANCE_MACRO_REGIONS, FRANCE_MAP_CENTER, FRANCE_REGION_COORDINATES, FRANCE_REGION_PALETTES, FR_THEME_CONFIG, FUEL_PRICE_LOADER, FavoriteSwipeAction, FeatureCard, FeedItemCard, Field2 as Field, FieldGroup, Fieldset2 as Fieldset, FilterBadge, FilterPill, FilterSectionHeader, FilterTileButton, FinancialDemo, FloatingActionButton, FlyoutMenu, FlyoutNavGrid, FlyoutQuickActions, ForceTouchMenu, Form, FormActions, FormActionsRow, FormCheckbox, FormField, FormGrid, FormInput, FormPriceInput, FormSection, FormSelect, FormTextarea, FormToggle, FuelPipelineDemo, GB_THEME_CONFIG, GERMANY_ACCENT_MAP, GERMANY_MACRO_REGIONS, GERMANY_MAP_CENTER, GERMANY_STATE_COORDINATES, GERMANY_STATE_PALETTES, GeoMapCanvas, GeoMapLegend, GlassModal, Gradient, GradientBackground, GrowthIndicator, HRRecruitmentDemo, Heading, HeroPanel, HeroSection, ID_THEME_CONFIG, INDIA_ACCENT_MAP, INDIA_MACRO_REGIONS, INDIA_MAP_CENTER, INDIA_STATE_COORDINATES, INDIA_STATE_PALETTES, INDONESIA_ACCENT_MAP, INDONESIA_MACRO_REGIONS, INDONESIA_MAP_CENTER, INDONESIA_PROVINCE_COORDINATES, INDONESIA_PROVINCE_PALETTES, IN_THEME_CONFIG, ITALY_ACCENT_MAP, ITALY_MACRO_REGIONS, ITALY_MAP_CENTER, ITALY_REGION_COORDINATES, ITALY_REGION_PALETTES, IT_THEME_CONFIG, IconButton, ImageUpload, IncidentPipelineDemo, InfoPopover, InlineForm, InlineSpinner, Input, InteractiveGeoMap, InventoryDemo, ItemSummary, JAPAN_ACCENT_MAP, JAPAN_MACRO_REGIONS, JAPAN_MAP_CENTER, JAPAN_PREFECTURE_COORDINATES, JAPAN_PREFECTURE_PALETTES, JP_THEME_CONFIG, KORI_ERP_LOADER, KR_THEME_CONFIG, LGPDComplianceDemo, LOCALE_FLAGS, Label2 as Label, LabeledToggle, LanguageSwitcher, LaunchpadGrid, Lead, Legend2 as Legend, LiquidFilterInput, ListCard, ListCardItem, ListItem, LoadingOverlay, MEXICO_ACCENT_MAP, MEXICO_MACRO_REGIONS, MEXICO_MAP_CENTER, MEXICO_STATE_COORDINATES, MEXICO_STATE_PALETTES, MX_THEME_CONFIG, ManagementPageLayout, ManagementSurface, MapZoomControls, MarketPricesCard, MarketingDemo, MetricCard, MonthPicker, MultiColumnPicker, NETHERLANDS_ACCENT_MAP, NETHERLANDS_MACRO_REGIONS, NETHERLANDS_MAP_CENTER, NETHERLANDS_PROVINCE_COORDINATES, NETHERLANDS_PROVINCE_PALETTES, NEW_ZEALAND_ACCENT_MAP, NEW_ZEALAND_MACRO_REGIONS, NEW_ZEALAND_MAP_CENTER, NEW_ZEALAND_REGION_COORDINATES, NEW_ZEALAND_REGION_PALETTES, NG_THEME_CONFIG, NIGERIA_ACCENT_MAP, NIGERIA_MACRO_REGIONS, NIGERIA_MAP_CENTER, NIGERIA_STATE_COORDINATES, NIGERIA_STATE_PALETTES, NL_THEME_CONFIG, NORWAY_ACCENT_MAP, NORWAY_COUNTY_COORDINATES, NORWAY_COUNTY_PALETTES, NORWAY_MACRO_REGIONS, NORWAY_MAP_CENTER, NO_THEME_CONFIG, NZ_THEME_CONFIG, NavigationProgress, NoDataState, NoResultsState, NotFoundPage, NotificationBadge, NotificationBellButton, NotificationProvider, OfficeCard, OfflineState, OptionGrid, OtpInput, PERU_ACCENT_MAP, PERU_DEPARTMENT_COORDINATES, PERU_DEPARTMENT_PALETTES, PERU_MACRO_REGIONS, PERU_MAP_CENTER, PE_THEME_CONFIG, PHILIPPINES_ACCENT_MAP, PHILIPPINES_MACRO_REGIONS, PHILIPPINES_MAP_CENTER, PHILIPPINES_PROVINCE_COORDINATES, PHILIPPINES_PROVINCE_PALETTES, PH_THEME_CONFIG, PL_THEME_CONFIG, POLAND_ACCENT_MAP, POLAND_MACRO_REGIONS, POLAND_MAP_CENTER, POLAND_VOIVODESHIP_COORDINATES, POLAND_VOIVODESHIP_PALETTES, PORTUGAL_ACCENT_MAP, PORTUGAL_DISTRICT_COORDINATES, PORTUGAL_DISTRICT_PALETTES, PORTUGAL_MACRO_REGIONS, PORTUGAL_MAP_CENTER, PT_THEME_CONFIG, PageEmptyState, PageErrorState, PageHeader, PageHeading, PageIndicator, PageLoadingState, PageSectionHeader, Pagination, PasswordInput, PasswordStrengthMeter, Pill, PlatformShell, PlusGrid, PlusGridItem, PlusGridRow, PreferenceSection, PriceChangeBadge, ProfileIdentityCard, Progress, ProgressIndicator, PullToRefreshContainer, PullToRefreshIndicator, RadiantHeading, RadiantStatCard, RadiantSubheading, RecommendationCard, RegionFilterSkeleton, RoleBadge, SE_THEME_CONFIG, SOUTH_AFRICA_ACCENT_MAP, SOUTH_AFRICA_MACRO_REGIONS, SOUTH_AFRICA_MAP_CENTER, SOUTH_AFRICA_PROVINCE_COORDINATES, SOUTH_AFRICA_PROVINCE_PALETTES, SOUTH_KOREA_ACCENT_MAP, SOUTH_KOREA_MACRO_REGIONS, SOUTH_KOREA_MAP_CENTER, SOUTH_KOREA_PROVINCE_COORDINATES, SOUTH_KOREA_PROVINCE_PALETTES, SPAIN_ACCENT_MAP, SPAIN_MACRO_REGIONS, SPAIN_MAP_CENTER, SPAIN_PROVINCE_COORDINATES, SPAIN_PROVINCE_PALETTES, SWEDEN_ACCENT_MAP, SWEDEN_COUNTY_COORDINATES, SWEDEN_COUNTY_PALETTES, SWEDEN_MACRO_REGIONS, SWEDEN_MAP_CENTER, SafeArea, SafeAreaSpacer, SafeAreaView, SalesDemo, SearchBar, SearchFilterToolbar, SearchInput, SectionCard, SectionHeader, SectionHeaderSkeleton, SegmentedControl, Select, SelectableChipPicker, SelectableListPicker, SelectableOptionsGrid, SelectableTableRow, SelectionCard, ServerErrorPage, SettingsModal, Sheet, SkipToContent, SocialLoginButtons, SortableTableHeader, Spinner, Stat, StatCard, StatCardSkeleton, StatusBadge, StatusToggle, StepFormPage, StepNavigationButtons, StepTimeline, Strong, Subheading, SwipeableRow, Switch2 as Switch, THAILAND_ACCENT_MAP, THAILAND_MACRO_REGIONS, THAILAND_MAP_CENTER, THAILAND_PROVINCE_COORDINATES, THAILAND_PROVINCE_PALETTES, TH_THEME_CONFIG, TR_THEME_CONFIG, TURKEY_ACCENT_MAP, TURKEY_MACRO_REGIONS, TURKEY_MAP_CENTER, TURKEY_PROVINCE_COORDINATES, TURKEY_PROVINCE_PALETTES, Table, TableBody, TableCell, TableEmptyState, TableHead, TableHeader, TableRow, TableSkeleton, TableSkeletonRow, Tabs, TabsContent, TabsList, TabsTrigger, TagBadge, Text, TextLink, Textarea, ThemeSwitch, ThemeToggle, ThemeToggleCompact, TimePicker, ToggleSwitch, TouchTarget, UK_ACCENT_MAP, UK_MACRO_REGIONS, UK_MAP_CENTER, UK_NATION_COORDINATES, UK_NATION_PALETTES, US_ACCENT_MAP, US_MACRO_REGIONS, US_MAP_CENTER, US_STATE_COORDINATES, US_STATE_PALETTES, US_THEME_CONFIG, UserAvatar, UserMobileInfo, WINDSOCK_LOADER, WIRE_LOADER, WheelPicker, WindsockIcon, ZA_THEME_CONFIG, buildDockActions, buildFlyoutNavItems, buildLaunchpadItems, buttonPress, buttonPressReduced, buttonTap, cardHover, cardHoverReduced, cardPress, computeDomain, computeSeries, createMotionProps, customerAnalyticsWorkflow, durations, durationsReduced, easings, fadeOnly, fadeScale, filterByPermission, financialWorkflow, formatAddress, formatCurrency, formatCurrency2, formatDate, formatPercentage, getAllCountries, getArgentinaAccent, getArgentinaColors, getArgentinaFlagUrl, getArgentinaGradient, getArgentinaHexColor, getArgentinaPalette, getAustraliaAccent, getAustraliaColors, getAustraliaFlagUrl, getAustraliaGradient, getAustraliaHexColor, getAustraliaPalette, getBrazilAccent, getBrazilColors, getBrazilFlagUrl, getBrazilGradient, getBrazilHexColor, getBrazilPalette, getCanadaAccent, getCanadaColors, getCanadaFlagUrl, getCanadaGradient, getCanadaHexColor, getCanadaPalette, getChileAccent, getChileColors, getChileFlagUrl, getChileGradient, getChileHexColor, getChilePalette, getColombiaAccent, getColombiaColors, getColombiaFlagUrl, getColombiaGradient, getColombiaHexColor, getColombiaPalette, getCountryConfig, getEgyptAccent, getEgyptColors, getEgyptFlagUrl, getEgyptGradient, getEgyptHexColor, getEgyptPalette, getFranceAccent, getFranceColors, getFranceFlagUrl, getFranceGradient, getFranceHexColor, getFrancePalette, getGermanyAccent, getGermanyColors, getGermanyFlagUrl, getGermanyGradient, getGermanyHexColor, getGermanyPalette, getIndiaAccent, getIndiaColors, getIndiaFlagUrl, getIndiaGradient, getIndiaHexColor, getIndiaPalette, getIndonesiaAccent, getIndonesiaColors, getIndonesiaFlagUrl, getIndonesiaGradient, getIndonesiaHexColor, getIndonesiaPalette, getItalyAccent, getItalyColors, getItalyFlagUrl, getItalyGradient, getItalyHexColor, getItalyPalette, getJapanAccent, getJapanColors, getJapanFlagUrl, getJapanGradient, getJapanHexColor, getJapanPalette, getMexicoAccent, getMexicoColors, getMexicoFlagUrl, getMexicoGradient, getMexicoHexColor, getMexicoPalette, getNetherlandsAccent, getNetherlandsColors, getNetherlandsFlagUrl, getNetherlandsGradient, getNetherlandsHexColor, getNetherlandsPalette, getNewZealandAccent, getNewZealandColors, getNewZealandFlagUrl, getNewZealandGradient, getNewZealandHexColor, getNewZealandPalette, getNigeriaAccent, getNigeriaColors, getNigeriaFlagUrl, getNigeriaGradient, getNigeriaHexColor, getNigeriaPalette, getNorwayAccent, getNorwayColors, getNorwayFlagUrl, getNorwayGradient, getNorwayHexColor, getNorwayPalette, getPeruAccent, getPeruColors, getPeruFlagUrl, getPeruGradient, getPeruHexColor, getPeruPalette, getPhilippinesAccent, getPhilippinesColors, getPhilippinesFlagUrl, getPhilippinesGradient, getPhilippinesHexColor, getPhilippinesPalette, getPolandAccent, getPolandColors, getPolandFlagUrl, getPolandGradient, getPolandHexColor, getPolandPalette, getPortugalAccent, getPortugalColors, getPortugalFlagUrl, getPortugalGradient, getPortugalHexColor, getPortugalPalette, getSouthAfricaAccent, getSouthAfricaColors, getSouthAfricaFlagUrl, getSouthAfricaGradient, getSouthAfricaHexColor, getSouthAfricaPalette, getSouthKoreaAccent, getSouthKoreaColors, getSouthKoreaFlagUrl, getSouthKoreaGradient, getSouthKoreaHexColor, getSouthKoreaPalette, getSpainAccent, getSpainColors, getSpainFlagUrl, getSpainGradient, getSpainHexColor, getSpainPalette, getStatusColor, getSubdivisionAccent, getSubdivisionColors, getSubdivisionFlagUrl, getSubdivisionGradient, getSubdivisionHexColor, getSubdivisionPalette, getSwedenAccent, getSwedenColors, getSwedenFlagUrl, getSwedenGradient, getSwedenHexColor, getSwedenPalette, getThailandAccent, getThailandColors, getThailandFlagUrl, getThailandGradient, getThailandHexColor, getThailandPalette, getTransition, getTurkeyAccent, getTurkeyColors, getTurkeyFlagUrl, getTurkeyGradient, getTurkeyHexColor, getTurkeyPalette, getUKAccent, getUKColors, getUKFlagUrl, getUKGradient, getUKHexColor, getUKPalette, getUsAccent, getUsColors, getUsFlagUrl, getUsGradient, getUsHexColor, getUsPalette, getVariants, hrWorkflow, inventoryWorkflow, iosColors, isValidArgentinaProvince, isValidAustraliaState, isValidBrazilState, isValidCanadaProvince, isValidChileRegion, isValidColombiaDepartment, isValidEgyptGovernorate, isValidFranceRegion, isValidGermanyState, isValidIndiaState, isValidIndonesiaProvince, isValidItalyRegion, isValidJapanPrefecture, isValidMexicoState, isValidNetherlandsProvince, isValidNewZealandRegion, isValidNigeriaState, isValidNorwayCounty, isValidPeruDepartment, isValidPhilippinesProvince, isValidPolandVoivodeship, isValidPortugalDistrict, isValidSouthAfricaProvince, isValidSouthKoreaProvince, isValidSpainProvince, isValidSubdivision, isValidSwedenCounty, isValidThailandProvince, isValidTurkeyProvince, isValidUKNation, isValidUsState, koriAssistantTheme, koriDepartmentFlows, lgpdWorkflow, listItem, listItemReduced, logisticsWorkflow, manufacturingWorkflow, marketingWorkflow, notificationBanner, notificationBannerReduced, pageControlDot, payrollWorkflow, prefersReducedMotion, registerCountry, registerSubdivisionTheme, resolveGlassAccentRgb, salesWorkflow, selectIsAuthenticated, selectShowShellChrome, selectUserInitial, selectUserName, shimmerClass, shimmerWhiteClass, slideDown, slideRight, slideUp, springPresets, springPresetsReduced, staggerContainer, supportWorkflow, swipeActionThreshold, swipeConstraints, useGeoMapState, useNotifications, usePlatformShellStore, usePullToRefresh, validateDashboardSpec, xScale, yScale };
|
|
24812
|
-
//# sourceMappingURL=chunk-
|
|
24813
|
-
//# sourceMappingURL=chunk-
|
|
25598
|
+
export { AIOrchestratorDemo, ARGENTINA_ACCENT_MAP, ARGENTINA_MACRO_REGIONS, ARGENTINA_MAP_CENTER, ARGENTINA_PROVINCE_COORDINATES, ARGENTINA_PROVINCE_PALETTES, AR_THEME_CONFIG, AUSTRALIA_ACCENT_MAP, AUSTRALIA_MACRO_REGIONS, AUSTRALIA_MAP_CENTER, AUSTRALIA_STATE_COORDINATES, AUSTRALIA_STATE_PALETTES, AU_THEME_CONFIG, ActionMenu, ActionSheet, ActiveFilterChips, AgentAnalysisCard, AnalysisSkeleton, AnimatedNumber, AnimatedTableRow, AppLogo, AppNavigation, AppShell, ArchiveSwipeAction, AuthLayout, Avatar, AvatarButton, BRAZIL_ACCENT_MAP, BRAZIL_MACRO_REGIONS, BRAZIL_MAP_CENTER, BRAZIL_STATE_COORDINATES, BRAZIL_STATE_PALETTES, BR_THEME_CONFIG, BackupCodeGrid, BadRequestPage, Badge, BaseForm, BentoCard, BentoFeatureGrid, BooleanFlagsPicker, BottomSafeArea, BrandFilterSkeleton, BrandedLoader, Breadcrumb, Button, CANADA_ACCENT_MAP, CANADA_MACRO_REGIONS, CANADA_MAP_CENTER, CANADA_PROVINCE_COORDINATES, CANADA_PROVINCE_PALETTES, CA_THEME_CONFIG, CHILE_ACCENT_MAP, CHILE_MACRO_REGIONS, CHILE_MAP_CENTER, CHILE_REGION_COORDINATES, CHILE_REGION_PALETTES, CL_THEME_CONFIG, COLOMBIA_ACCENT_MAP, COLOMBIA_DEPARTMENT_COORDINATES, COLOMBIA_DEPARTMENT_PALETTES, COLOMBIA_MACRO_REGIONS, COLOMBIA_MAP_CENTER, CO_THEME_CONFIG, Card, CardActionMenu, CardContent, CardDescription, CardDivider, CardFooter, CardGridSkeleton, CardHeader, CardSectionHeader, CardTitle, CategoryBadge, CategoryTab, CategoryTabs, ChartRenderer, ChipPicker, CircularRefreshIndicator, Code, CollapsibleGroupedList, CompactSegmentedControl, ContactCard, ContactSection, Container, ContextMenu, CookieConsent, CopyableId, CountPill, CreateActionButton, CustomerAnalyticsDemo, DE_THEME_CONFIG, DashboardDemo, DashboardDemoLayout, DashboardProgressShell, DashboardView, DataPagination, DatePicker, DeleteSwipeAction, DepartmentAssistantDemo, DepartmentWorkflowDemo, Description4 as Description, DetailsPopover, DevModeBanner, Dialog4 as Dialog, DialogActions, DialogBody, DialogDescription, DialogTitle3 as DialogTitle, Divider, Dock, DockContainer, DockSkeleton, DotRefreshIndicator, Dropdown, DropdownButton, DropdownDivider, DropdownItem, DropdownLabel, DropdownMenu, DropdownSelect, DynamicIsland, DynamicIslandConfirm, DynamicIslandNotification, EGYPT_ACCENT_MAP, EGYPT_GOVERNORATE_COORDINATES, EGYPT_GOVERNORATE_PALETTES, EGYPT_MACRO_REGIONS, EGYPT_MAP_CENTER, EG_THEME_CONFIG, ES_THEME_CONFIG, EdgeSwipeIndicator, EdgeSwipeProvider, EditSwipeAction, EmptyState, EntityCard, EntityDrawer, ErrorMessage, ErrorState, ExpandableHistoryList, ExpandingPageIndicator, FRANCE_ACCENT_MAP, FRANCE_MACRO_REGIONS, FRANCE_MAP_CENTER, FRANCE_REGION_COORDINATES, FRANCE_REGION_PALETTES, FR_THEME_CONFIG, FUEL_PRICE_LOADER, FavoriteSwipeAction, FeatureCard, FeedItemCard, Field2 as Field, FieldGroup, Fieldset2 as Fieldset, FilterBadge, FilterPill, FilterSectionHeader, FilterTileButton, FinancialDemo, FloatingActionButton, FlyoutMenu, FlyoutNavGrid, FlyoutQuickActions, ForceTouchMenu, Form, FormActions, FormActionsRow, FormCheckbox, FormField, FormGrid, FormInput, FormPriceInput, FormSection, FormSelect, FormTextarea, FormToggle, FuelPipelineDemo, GB_THEME_CONFIG, GERMANY_ACCENT_MAP, GERMANY_MACRO_REGIONS, GERMANY_MAP_CENTER, GERMANY_STATE_COORDINATES, GERMANY_STATE_PALETTES, GeoMapCanvas, GeoMapLegend, GlassModal, Gradient, GradientBackground, GrowthIndicator, HRRecruitmentDemo, Heading, HeroPanel, HeroSection, ID_THEME_CONFIG, INDIA_ACCENT_MAP, INDIA_MACRO_REGIONS, INDIA_MAP_CENTER, INDIA_STATE_COORDINATES, INDIA_STATE_PALETTES, INDONESIA_ACCENT_MAP, INDONESIA_MACRO_REGIONS, INDONESIA_MAP_CENTER, INDONESIA_PROVINCE_COORDINATES, INDONESIA_PROVINCE_PALETTES, IN_THEME_CONFIG, ITALY_ACCENT_MAP, ITALY_MACRO_REGIONS, ITALY_MAP_CENTER, ITALY_REGION_COORDINATES, ITALY_REGION_PALETTES, IT_THEME_CONFIG, IconButton, ImageUpload, IncidentPipelineDemo, InfoPopover, InlineForm, InlineSpinner, Input, InputRequestForm, InteractiveGeoMap, InventoryDemo, ItemSummary, JAPAN_ACCENT_MAP, JAPAN_MACRO_REGIONS, JAPAN_MAP_CENTER, JAPAN_PREFECTURE_COORDINATES, JAPAN_PREFECTURE_PALETTES, JP_THEME_CONFIG, KORI_ERP_LOADER, KR_THEME_CONFIG, LGPDComplianceDemo, LOCALE_FLAGS, Label2 as Label, LabeledToggle, LanguageSwitcher, LaunchpadGrid, Lead, Legend2 as Legend, LiquidFilterInput, ListCard, ListCardItem, ListItem, LoadingOverlay, MEXICO_ACCENT_MAP, MEXICO_MACRO_REGIONS, MEXICO_MAP_CENTER, MEXICO_STATE_COORDINATES, MEXICO_STATE_PALETTES, MX_THEME_CONFIG, ManagementPageLayout, ManagementSurface, MapZoomControls, MarketPricesCard, MarketingDemo, MetricCard, MonthPicker, MultiColumnPicker, NETHERLANDS_ACCENT_MAP, NETHERLANDS_MACRO_REGIONS, NETHERLANDS_MAP_CENTER, NETHERLANDS_PROVINCE_COORDINATES, NETHERLANDS_PROVINCE_PALETTES, NEW_ZEALAND_ACCENT_MAP, NEW_ZEALAND_MACRO_REGIONS, NEW_ZEALAND_MAP_CENTER, NEW_ZEALAND_REGION_COORDINATES, NEW_ZEALAND_REGION_PALETTES, NG_THEME_CONFIG, NIGERIA_ACCENT_MAP, NIGERIA_MACRO_REGIONS, NIGERIA_MAP_CENTER, NIGERIA_STATE_COORDINATES, NIGERIA_STATE_PALETTES, NL_THEME_CONFIG, NORWAY_ACCENT_MAP, NORWAY_COUNTY_COORDINATES, NORWAY_COUNTY_PALETTES, NORWAY_MACRO_REGIONS, NORWAY_MAP_CENTER, NO_THEME_CONFIG, NZ_THEME_CONFIG, NavigationProgress, NoDataState, NoResultsState, NotFoundPage, NotificationBadge, NotificationBellButton, NotificationProvider, OfficeCard, OfflineState, OptionGrid, OtpInput, PERU_ACCENT_MAP, PERU_DEPARTMENT_COORDINATES, PERU_DEPARTMENT_PALETTES, PERU_MACRO_REGIONS, PERU_MAP_CENTER, PE_THEME_CONFIG, PHILIPPINES_ACCENT_MAP, PHILIPPINES_MACRO_REGIONS, PHILIPPINES_MAP_CENTER, PHILIPPINES_PROVINCE_COORDINATES, PHILIPPINES_PROVINCE_PALETTES, PH_THEME_CONFIG, PL_THEME_CONFIG, POLAND_ACCENT_MAP, POLAND_MACRO_REGIONS, POLAND_MAP_CENTER, POLAND_VOIVODESHIP_COORDINATES, POLAND_VOIVODESHIP_PALETTES, PORTUGAL_ACCENT_MAP, PORTUGAL_DISTRICT_COORDINATES, PORTUGAL_DISTRICT_PALETTES, PORTUGAL_MACRO_REGIONS, PORTUGAL_MAP_CENTER, PT_THEME_CONFIG, PageEmptyState, PageErrorState, PageHeader, PageHeading, PageIndicator, PageLoadingState, PageSectionHeader, Pagination, PasswordInput, PasswordStrengthMeter, Pill, PlatformShell, PlusGrid, PlusGridItem, PlusGridRow, PreferenceSection, PriceChangeBadge, ProfileIdentityCard, Progress, ProgressIndicator, PullToRefreshContainer, PullToRefreshIndicator, RadiantHeading, RadiantStatCard, RadiantSubheading, RecommendationCard, RegionFilterSkeleton, RoleBadge, SE_THEME_CONFIG, SOUTH_AFRICA_ACCENT_MAP, SOUTH_AFRICA_MACRO_REGIONS, SOUTH_AFRICA_MAP_CENTER, SOUTH_AFRICA_PROVINCE_COORDINATES, SOUTH_AFRICA_PROVINCE_PALETTES, SOUTH_KOREA_ACCENT_MAP, SOUTH_KOREA_MACRO_REGIONS, SOUTH_KOREA_MAP_CENTER, SOUTH_KOREA_PROVINCE_COORDINATES, SOUTH_KOREA_PROVINCE_PALETTES, SPAIN_ACCENT_MAP, SPAIN_MACRO_REGIONS, SPAIN_MAP_CENTER, SPAIN_PROVINCE_COORDINATES, SPAIN_PROVINCE_PALETTES, SWEDEN_ACCENT_MAP, SWEDEN_COUNTY_COORDINATES, SWEDEN_COUNTY_PALETTES, SWEDEN_MACRO_REGIONS, SWEDEN_MAP_CENTER, SafeArea, SafeAreaSpacer, SafeAreaView, SalesDemo, SearchBar, SearchFilterToolbar, SearchInput, SectionCard, SectionHeader, SectionHeaderSkeleton, SegmentedControl, Select, SelectableChipPicker, SelectableListPicker, SelectableOptionsGrid, SelectableTableRow, SelectionCard, ServerErrorPage, SettingsModal, Sheet, SkipToContent, SocialLoginButtons, SortableTableHeader, Spinner, Stat, StatCard, StatCardSkeleton, StatusBadge, StatusToggle, StepFormPage, StepNavigationButtons, StepTimeline, StreamingDashboard, Strong, Subheading, SwipeableRow, Switch2 as Switch, THAILAND_ACCENT_MAP, THAILAND_MACRO_REGIONS, THAILAND_MAP_CENTER, THAILAND_PROVINCE_COORDINATES, THAILAND_PROVINCE_PALETTES, TH_THEME_CONFIG, TR_THEME_CONFIG, TURKEY_ACCENT_MAP, TURKEY_MACRO_REGIONS, TURKEY_MAP_CENTER, TURKEY_PROVINCE_COORDINATES, TURKEY_PROVINCE_PALETTES, Table, TableBody, TableCell, TableEmptyState, TableHead, TableHeader, TableRow, TableSkeleton, TableSkeletonRow, Tabs, TabsContent, TabsList, TabsTrigger, TagBadge, Text, TextLink, Textarea, ThemeSwitch, ThemeToggle, ThemeToggleCompact, TimePicker, ToggleSwitch, TouchTarget, UK_ACCENT_MAP, UK_MACRO_REGIONS, UK_MAP_CENTER, UK_NATION_COORDINATES, UK_NATION_PALETTES, US_ACCENT_MAP, US_MACRO_REGIONS, US_MAP_CENTER, US_STATE_COORDINATES, US_STATE_PALETTES, US_THEME_CONFIG, UserAvatar, UserMobileInfo, WINDSOCK_LOADER, WIRE_LOADER, WheelPicker, WindsockIcon, ZA_THEME_CONFIG, buildDockActions, buildFlyoutNavItems, buildLaunchpadItems, buttonPress, buttonPressReduced, buttonTap, cardHover, cardHoverReduced, cardPress, computeDomain, computeSeries, createMotionProps, customerAnalyticsWorkflow, durations, durationsReduced, easings, fadeOnly, fadeScale, filterByPermission, financialWorkflow, formatAddress, formatCurrency, formatCurrency2, formatDate, formatPercentage, getAllCountries, getArgentinaAccent, getArgentinaColors, getArgentinaFlagUrl, getArgentinaGradient, getArgentinaHexColor, getArgentinaPalette, getAustraliaAccent, getAustraliaColors, getAustraliaFlagUrl, getAustraliaGradient, getAustraliaHexColor, getAustraliaPalette, getBrazilAccent, getBrazilColors, getBrazilFlagUrl, getBrazilGradient, getBrazilHexColor, getBrazilPalette, getCanadaAccent, getCanadaColors, getCanadaFlagUrl, getCanadaGradient, getCanadaHexColor, getCanadaPalette, getChileAccent, getChileColors, getChileFlagUrl, getChileGradient, getChileHexColor, getChilePalette, getColombiaAccent, getColombiaColors, getColombiaFlagUrl, getColombiaGradient, getColombiaHexColor, getColombiaPalette, getCountryConfig, getEgyptAccent, getEgyptColors, getEgyptFlagUrl, getEgyptGradient, getEgyptHexColor, getEgyptPalette, getFranceAccent, getFranceColors, getFranceFlagUrl, getFranceGradient, getFranceHexColor, getFrancePalette, getGermanyAccent, getGermanyColors, getGermanyFlagUrl, getGermanyGradient, getGermanyHexColor, getGermanyPalette, getIndiaAccent, getIndiaColors, getIndiaFlagUrl, getIndiaGradient, getIndiaHexColor, getIndiaPalette, getIndonesiaAccent, getIndonesiaColors, getIndonesiaFlagUrl, getIndonesiaGradient, getIndonesiaHexColor, getIndonesiaPalette, getItalyAccent, getItalyColors, getItalyFlagUrl, getItalyGradient, getItalyHexColor, getItalyPalette, getJapanAccent, getJapanColors, getJapanFlagUrl, getJapanGradient, getJapanHexColor, getJapanPalette, getMexicoAccent, getMexicoColors, getMexicoFlagUrl, getMexicoGradient, getMexicoHexColor, getMexicoPalette, getNetherlandsAccent, getNetherlandsColors, getNetherlandsFlagUrl, getNetherlandsGradient, getNetherlandsHexColor, getNetherlandsPalette, getNewZealandAccent, getNewZealandColors, getNewZealandFlagUrl, getNewZealandGradient, getNewZealandHexColor, getNewZealandPalette, getNigeriaAccent, getNigeriaColors, getNigeriaFlagUrl, getNigeriaGradient, getNigeriaHexColor, getNigeriaPalette, getNorwayAccent, getNorwayColors, getNorwayFlagUrl, getNorwayGradient, getNorwayHexColor, getNorwayPalette, getPeruAccent, getPeruColors, getPeruFlagUrl, getPeruGradient, getPeruHexColor, getPeruPalette, getPhilippinesAccent, getPhilippinesColors, getPhilippinesFlagUrl, getPhilippinesGradient, getPhilippinesHexColor, getPhilippinesPalette, getPolandAccent, getPolandColors, getPolandFlagUrl, getPolandGradient, getPolandHexColor, getPolandPalette, getPortugalAccent, getPortugalColors, getPortugalFlagUrl, getPortugalGradient, getPortugalHexColor, getPortugalPalette, getSouthAfricaAccent, getSouthAfricaColors, getSouthAfricaFlagUrl, getSouthAfricaGradient, getSouthAfricaHexColor, getSouthAfricaPalette, getSouthKoreaAccent, getSouthKoreaColors, getSouthKoreaFlagUrl, getSouthKoreaGradient, getSouthKoreaHexColor, getSouthKoreaPalette, getSpainAccent, getSpainColors, getSpainFlagUrl, getSpainGradient, getSpainHexColor, getSpainPalette, getStatusColor, getSubdivisionAccent, getSubdivisionColors, getSubdivisionFlagUrl, getSubdivisionGradient, getSubdivisionHexColor, getSubdivisionPalette, getSwedenAccent, getSwedenColors, getSwedenFlagUrl, getSwedenGradient, getSwedenHexColor, getSwedenPalette, getThailandAccent, getThailandColors, getThailandFlagUrl, getThailandGradient, getThailandHexColor, getThailandPalette, getTransition, getTurkeyAccent, getTurkeyColors, getTurkeyFlagUrl, getTurkeyGradient, getTurkeyHexColor, getTurkeyPalette, getUKAccent, getUKColors, getUKFlagUrl, getUKGradient, getUKHexColor, getUKPalette, getUsAccent, getUsColors, getUsFlagUrl, getUsGradient, getUsHexColor, getUsPalette, getVariants, hrWorkflow, inventoryWorkflow, iosColors, isValidArgentinaProvince, isValidAustraliaState, isValidBrazilState, isValidCanadaProvince, isValidChileRegion, isValidColombiaDepartment, isValidEgyptGovernorate, isValidFranceRegion, isValidGermanyState, isValidIndiaState, isValidIndonesiaProvince, isValidItalyRegion, isValidJapanPrefecture, isValidMexicoState, isValidNetherlandsProvince, isValidNewZealandRegion, isValidNigeriaState, isValidNorwayCounty, isValidPeruDepartment, isValidPhilippinesProvince, isValidPolandVoivodeship, isValidPortugalDistrict, isValidSouthAfricaProvince, isValidSouthKoreaProvince, isValidSpainProvince, isValidSubdivision, isValidSwedenCounty, isValidThailandProvince, isValidTurkeyProvince, isValidUKNation, isValidUsState, koriAssistantTheme, koriDepartmentFlows, lgpdWorkflow, listItem, listItemReduced, logisticsWorkflow, manufacturingWorkflow, marketingWorkflow, notificationBanner, notificationBannerReduced, pageControlDot, payrollWorkflow, prefersReducedMotion, registerCountry, registerSubdivisionTheme, resolveGlassAccentRgb, salesWorkflow, selectIsAuthenticated, selectShowShellChrome, selectUserInitial, selectUserName, shimmerClass, shimmerWhiteClass, slideDown, slideRight, slideUp, springPresets, springPresetsReduced, staggerContainer, supportWorkflow, swipeActionThreshold, swipeConstraints, useGeoMapState, useNotifications, usePlatformShellStore, usePullToRefresh, validateDashboardSpec, xScale, yScale };
|
|
25599
|
+
//# sourceMappingURL=chunk-J4QUCX27.mjs.map
|
|
25600
|
+
//# sourceMappingURL=chunk-J4QUCX27.mjs.map
|