@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.
Files changed (115) hide show
  1. package/dist/astrlabe/index.js +108 -106
  2. package/dist/astrlabe/index.mjs +5 -3
  3. package/dist/astrlabe/workflow-canvas.js +5 -3
  4. package/dist/astrlabe/workflow-canvas.mjs +4 -2
  5. package/dist/{chunk-G7DZU3NM.mjs → chunk-256TJHVO.mjs} +3 -3
  6. package/dist/{chunk-G7DZU3NM.mjs.map → chunk-256TJHVO.mjs.map} +1 -1
  7. package/dist/{chunk-D4TESEYK.mjs → chunk-36G7GAPU.mjs} +24 -7
  8. package/dist/chunk-36G7GAPU.mjs.map +1 -0
  9. package/dist/{chunk-NBCOVUQP.mjs → chunk-6OWD54HK.mjs} +3 -3
  10. package/dist/{chunk-NBCOVUQP.mjs.map → chunk-6OWD54HK.mjs.map} +1 -1
  11. package/dist/{chunk-5HXDJBVX.mjs → chunk-7JFAOHZ3.mjs} +4 -4
  12. package/dist/{chunk-5HXDJBVX.mjs.map → chunk-7JFAOHZ3.mjs.map} +1 -1
  13. package/dist/{chunk-SAYVWIMJ.js → chunk-AP7OWR6S.js} +4 -4
  14. package/dist/{chunk-SAYVWIMJ.js.map → chunk-AP7OWR6S.js.map} +1 -1
  15. package/dist/{chunk-URDQSUW6.js → chunk-B5NZVS4A.js} +67 -67
  16. package/dist/{chunk-URDQSUW6.js.map → chunk-B5NZVS4A.js.map} +1 -1
  17. package/dist/{chunk-UUHV5KHF.js → chunk-BVCS7RBR.js} +33 -33
  18. package/dist/{chunk-UUHV5KHF.js.map → chunk-BVCS7RBR.js.map} +1 -1
  19. package/dist/{chunk-X2KCCQPL.js → chunk-C7KAF363.js} +55 -55
  20. package/dist/{chunk-X2KCCQPL.js.map → chunk-C7KAF363.js.map} +1 -1
  21. package/dist/{chunk-HK6J6HQP.mjs → chunk-CBVRUJ7N.mjs} +11 -24
  22. package/dist/chunk-CBVRUJ7N.mjs.map +1 -0
  23. package/dist/{chunk-F4TOOARV.mjs → chunk-CG3P5Z5U.mjs} +3 -3
  24. package/dist/{chunk-F4TOOARV.mjs.map → chunk-CG3P5Z5U.mjs.map} +1 -1
  25. package/dist/{chunk-RV555OEO.mjs → chunk-E2ZGFN2H.mjs} +4 -4
  26. package/dist/{chunk-RV555OEO.mjs.map → chunk-E2ZGFN2H.mjs.map} +1 -1
  27. package/dist/{chunk-Q2MG7S2E.js → chunk-E32B2MVK.js} +15 -15
  28. package/dist/{chunk-Q2MG7S2E.js.map → chunk-E32B2MVK.js.map} +1 -1
  29. package/dist/{chunk-GEUGFYLO.mjs → chunk-FDSU7GPS.mjs} +3 -3
  30. package/dist/{chunk-GEUGFYLO.mjs.map → chunk-FDSU7GPS.mjs.map} +1 -1
  31. package/dist/{chunk-UVEPTYZC.js → chunk-GWRJ5L36.js} +12 -12
  32. package/dist/{chunk-UVEPTYZC.js.map → chunk-GWRJ5L36.js.map} +1 -1
  33. package/dist/{chunk-XOZMUCMF.mjs → chunk-HPIKJS5B.mjs} +3 -3
  34. package/dist/{chunk-XOZMUCMF.mjs.map → chunk-HPIKJS5B.mjs.map} +1 -1
  35. package/dist/{chunk-TOEMSC4P.mjs → chunk-IEWFVP42.mjs} +6 -6
  36. package/dist/{chunk-TOEMSC4P.mjs.map → chunk-IEWFVP42.mjs.map} +1 -1
  37. package/dist/{chunk-ZJQ5RLGK.mjs → chunk-J4QUCX27.mjs} +1177 -390
  38. package/dist/chunk-J4QUCX27.mjs.map +1 -0
  39. package/dist/{chunk-TLDVFFAK.mjs → chunk-KHAMY7MA.mjs} +3 -3
  40. package/dist/{chunk-TLDVFFAK.mjs.map → chunk-KHAMY7MA.mjs.map} +1 -1
  41. package/dist/{chunk-YXPHJ2BQ.js → chunk-L5VEY7G4.js} +13 -2
  42. package/dist/chunk-L5VEY7G4.js.map +1 -0
  43. package/dist/{chunk-2URBM4LA.js → chunk-MLAIUJYC.js} +6 -6
  44. package/dist/{chunk-2URBM4LA.js.map → chunk-MLAIUJYC.js.map} +1 -1
  45. package/dist/{chunk-64G2HBRQ.mjs → chunk-OE4Z4FKM.mjs} +13 -3
  46. package/dist/chunk-OE4Z4FKM.mjs.map +1 -0
  47. package/dist/{chunk-LBALE4JX.js → chunk-OQDWU6AE.js} +67 -67
  48. package/dist/{chunk-LBALE4JX.js.map → chunk-OQDWU6AE.js.map} +1 -1
  49. package/dist/{chunk-JUTOBBBI.mjs → chunk-Q7WGFPGK.mjs} +4 -4
  50. package/dist/{chunk-JUTOBBBI.mjs.map → chunk-Q7WGFPGK.mjs.map} +1 -1
  51. package/dist/{chunk-TZ62G5WM.js → chunk-R5KUEOPU.js} +84 -66
  52. package/dist/chunk-R5KUEOPU.js.map +1 -0
  53. package/dist/{chunk-3YVQXDKJ.js → chunk-SIBJRWUB.js} +4 -4
  54. package/dist/{chunk-3YVQXDKJ.js.map → chunk-SIBJRWUB.js.map} +1 -1
  55. package/dist/{chunk-ZARCUQA6.js → chunk-SOYGVHPZ.js} +53 -53
  56. package/dist/{chunk-ZARCUQA6.js.map → chunk-SOYGVHPZ.js.map} +1 -1
  57. package/dist/{chunk-4667D2ZT.mjs → chunk-U4BTEKZT.mjs} +3 -3
  58. package/dist/{chunk-4667D2ZT.mjs.map → chunk-U4BTEKZT.mjs.map} +1 -1
  59. package/dist/{chunk-NAQ32ZPG.mjs → chunk-URMZJ3WF.mjs} +7 -7
  60. package/dist/{chunk-NAQ32ZPG.mjs.map → chunk-URMZJ3WF.mjs.map} +1 -1
  61. package/dist/{chunk-SUHNSUMH.mjs → chunk-VPNZDLR6.mjs} +4 -4
  62. package/dist/{chunk-SUHNSUMH.mjs.map → chunk-VPNZDLR6.mjs.map} +1 -1
  63. package/dist/{chunk-SV4SMITM.js → chunk-WIKMIULO.js} +36 -36
  64. package/dist/{chunk-SV4SMITM.js.map → chunk-WIKMIULO.js.map} +1 -1
  65. package/dist/{chunk-K26RY4EQ.js → chunk-WY3YDQXK.js} +26 -26
  66. package/dist/{chunk-K26RY4EQ.js.map → chunk-WY3YDQXK.js.map} +1 -1
  67. package/dist/{chunk-ZHHRWC27.js → chunk-Y4DNREFH.js} +135 -148
  68. package/dist/chunk-Y4DNREFH.js.map +1 -0
  69. package/dist/{chunk-MXFEU7A6.js → chunk-YMGJ4FZZ.js} +4 -4
  70. package/dist/{chunk-MXFEU7A6.js.map → chunk-YMGJ4FZZ.js.map} +1 -1
  71. package/dist/{chunk-KNXAOJAK.js → chunk-YN4IEDE4.js} +1250 -461
  72. package/dist/chunk-YN4IEDE4.js.map +1 -0
  73. package/dist/index.d.mts +306 -2
  74. package/dist/index.d.ts +306 -2
  75. package/dist/index.js +754 -744
  76. package/dist/index.mjs +3 -1
  77. package/dist/platform/admin/index.js +12 -10
  78. package/dist/platform/admin/index.mjs +6 -4
  79. package/dist/platform/agents-workspace.js +8 -8
  80. package/dist/platform/agents-workspace.mjs +7 -7
  81. package/dist/platform/app-shell.js +5 -3
  82. package/dist/platform/app-shell.mjs +4 -2
  83. package/dist/platform/auth/index.js +29 -27
  84. package/dist/platform/auth/index.mjs +6 -4
  85. package/dist/platform/billing/index.js +5 -3
  86. package/dist/platform/billing/index.mjs +4 -2
  87. package/dist/platform/impersonation/index.js +5 -3
  88. package/dist/platform/impersonation/index.mjs +4 -2
  89. package/dist/platform/index.js +100 -100
  90. package/dist/platform/index.mjs +20 -20
  91. package/dist/platform/pages/index.d.mts +2 -2
  92. package/dist/platform/pages/index.d.ts +2 -2
  93. package/dist/platform/pages/index.js +197 -195
  94. package/dist/platform/pages/index.js.map +1 -1
  95. package/dist/platform/pages/index.mjs +9 -7
  96. package/dist/platform/pages/index.mjs.map +1 -1
  97. package/dist/platform/settings/index.js +9 -7
  98. package/dist/platform/settings/index.mjs +8 -6
  99. package/dist/platform/workflow-api-client.d.mts +1 -1
  100. package/dist/platform/workflow-api-client.d.ts +1 -1
  101. package/dist/platform/workflow-api-client.js +64 -60
  102. package/dist/platform/workflow-api-client.mjs +1 -1
  103. package/dist/platform/workflow-canvas-shell.js +6 -4
  104. package/dist/platform/workflow-canvas-shell.mjs +5 -3
  105. package/dist/{workflow-api-client-Dy1Ph8W-.d.ts → workflow-api-client-CXN5iaih.d.ts} +34 -2
  106. package/dist/{workflow-api-client-C8gPn_D1.d.mts → workflow-api-client-XU83zq0k.d.mts} +34 -2
  107. package/package.json +1 -1
  108. package/dist/chunk-64G2HBRQ.mjs.map +0 -1
  109. package/dist/chunk-D4TESEYK.mjs.map +0 -1
  110. package/dist/chunk-HK6J6HQP.mjs.map +0 -1
  111. package/dist/chunk-KNXAOJAK.js.map +0 -1
  112. package/dist/chunk-TZ62G5WM.js.map +0 -1
  113. package/dist/chunk-YXPHJ2BQ.js.map +0 -1
  114. package/dist/chunk-ZHHRWC27.js.map +0 -1
  115. 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$1, 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';
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 DashboardView({ spec, className }) {
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
- 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",
2237
- children: spec.kpis.map((kpi, index) => /* @__PURE__ */ jsx(KpiCard, { kpi }, `${kpi.label}-${index}`))
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
- hasCharts && /* @__PURE__ */ jsx("section", { className: chartGrid, children: spec.charts?.map((chart, index) => /* @__PURE__ */ jsx(
2241
- "div",
2242
- {
2243
- className: "rounded-xl border border-zinc-950/10 bg-white p-4 dark:border-white/10 dark:bg-zinc-900",
2244
- children: /* @__PURE__ */ jsx(ChartRenderer, { spec: chart })
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 KpiCard({ kpi }) {
2264
- const value = typeof kpi.value === "number" ? formatNumber(kpi.value) : kpi.value;
2265
- const displayValue = kpi.unit ? `${value}${kpi.unit}` : value;
2266
- const variant = kpi.tone ?? "default";
2267
- return /* @__PURE__ */ jsx(
2268
- MetricCard,
2269
- {
2270
- title: kpi.label,
2271
- value: displayValue,
2272
- variant,
2273
- trend: kpi.deltaPct !== void 0 ? { value: kpi.deltaPct } : void 0
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 DashboardTableView({ table }) {
2278
- 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: [
2279
- /* @__PURE__ */ jsx("thead", { className: "bg-zinc-50 dark:bg-zinc-800/50", children: /* @__PURE__ */ jsx("tr", { children: table.columns.map((column) => /* @__PURE__ */ jsx(
2280
- "th",
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
- scope: "col",
2283
- className: `px-4 py-2 text-xs font-medium uppercase tracking-wide text-slate-500 dark:text-slate-400 ${columnAlign(column.align)}`,
2284
- children: column.label
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
- column.key
2287
- )) }) }),
2288
- /* @__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) => {
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 formatCell(value, format3) {
2307
- if (value === null || value === void 0 || value === "") return "\u2014";
2308
- if (format3 === "currency" && typeof value === "number") {
2309
- return new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" }).format(value);
2310
- }
2311
- if (format3 === "percent" && typeof value === "number") {
2312
- return `${(value * 100).toFixed(1)}%`;
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
- if (format3 === "number" && typeof value === "number") {
2315
- return formatNumber(value);
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 String(value);
3383
+ return merged;
2318
3384
  }
2319
- function formatNumber(value) {
2320
- if (Math.abs(value) >= 1e3) return new Intl.NumberFormat("en-US").format(Math.round(value));
2321
- return value.toFixed(Math.abs(value) < 10 ? 2 : 1);
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
- if (!hasCharts && !hasKpis && !hasTable && !hasRecommendation) {
2332
- issues.push({ kind: "empty", message: "Dashboard has no content (no charts, KPIs, table, or recommendation)." });
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(CheckIcon2, { className: "w-4 h-4" }) : index + 1)
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 CheckIcon2({ className }) {
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$1, { className: "h-3 w-3" }) : null
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$1, { className: "h-2.5 w-2.5" }) : null
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$1, { className: "h-4 w-4" }),
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$2, { className: "h-3 w-3" }) : null
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$1, { className: "h-3 w-3" }) : index + 1 }),
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-ZJQ5RLGK.mjs.map
24813
- //# sourceMappingURL=chunk-ZJQ5RLGK.mjs.map
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