@datatechsolutions/ui 3.9.0 → 3.10.0

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 (97) hide show
  1. package/dist/astrlabe/index.js +107 -107
  2. package/dist/astrlabe/index.mjs +3 -3
  3. package/dist/astrlabe/workflow-canvas.js +3 -3
  4. package/dist/astrlabe/workflow-canvas.mjs +2 -2
  5. package/dist/{chunk-ZDXEGSCF.js → chunk-2A45ZEK4.js} +45 -45
  6. package/dist/{chunk-ZDXEGSCF.js.map → chunk-2A45ZEK4.js.map} +1 -1
  7. package/dist/{chunk-T4IYOKHR.js → chunk-5AKTDJFR.js} +25 -25
  8. package/dist/{chunk-T4IYOKHR.js.map → chunk-5AKTDJFR.js.map} +1 -1
  9. package/dist/{chunk-ZQRUAXGP.mjs → chunk-5KI7FB3E.mjs} +188 -48
  10. package/dist/chunk-5KI7FB3E.mjs.map +1 -0
  11. package/dist/{chunk-GQWC4EKE.mjs → chunk-5U43K6G3.mjs} +4 -4
  12. package/dist/{chunk-GQWC4EKE.mjs.map → chunk-5U43K6G3.mjs.map} +1 -1
  13. package/dist/{chunk-PD3JLDA5.mjs → chunk-6UX2SRA2.mjs} +3 -3
  14. package/dist/{chunk-PD3JLDA5.mjs.map → chunk-6UX2SRA2.mjs.map} +1 -1
  15. package/dist/{chunk-2ZY3IQ2I.mjs → chunk-6ZYATZS3.mjs} +3 -3
  16. package/dist/{chunk-2ZY3IQ2I.mjs.map → chunk-6ZYATZS3.mjs.map} +1 -1
  17. package/dist/{chunk-AXBD6OAF.mjs → chunk-A256OE5E.mjs} +11 -11
  18. package/dist/{chunk-AXBD6OAF.mjs.map → chunk-A256OE5E.mjs.map} +1 -1
  19. package/dist/{chunk-DQIEVLA3.js → chunk-AMESLEIO.js} +35 -35
  20. package/dist/{chunk-DQIEVLA3.js.map → chunk-AMESLEIO.js.map} +1 -1
  21. package/dist/{chunk-6E2YH67A.js → chunk-B76RTA7D.js} +35 -35
  22. package/dist/{chunk-6E2YH67A.js.map → chunk-B76RTA7D.js.map} +1 -1
  23. package/dist/{chunk-OVQ4MKCV.mjs → chunk-BU4WMSK3.mjs} +3 -3
  24. package/dist/{chunk-OVQ4MKCV.mjs.map → chunk-BU4WMSK3.mjs.map} +1 -1
  25. package/dist/{chunk-WS3IJFPW.mjs → chunk-C4D3EI5L.mjs} +3 -3
  26. package/dist/{chunk-WS3IJFPW.mjs.map → chunk-C4D3EI5L.mjs.map} +1 -1
  27. package/dist/{chunk-EAIE4QGD.mjs → chunk-DA3H7ERQ.mjs} +20 -20
  28. package/dist/{chunk-EAIE4QGD.mjs.map → chunk-DA3H7ERQ.mjs.map} +1 -1
  29. package/dist/{chunk-U6VFS3RD.js → chunk-EC34PGUO.js} +142 -142
  30. package/dist/{chunk-U6VFS3RD.js.map → chunk-EC34PGUO.js.map} +1 -1
  31. package/dist/{chunk-6QJI5YOJ.mjs → chunk-FD376DZ6.mjs} +3 -3
  32. package/dist/{chunk-6QJI5YOJ.mjs.map → chunk-FD376DZ6.mjs.map} +1 -1
  33. package/dist/{chunk-ZQEMKEEH.mjs → chunk-FENA4YGN.mjs} +3 -3
  34. package/dist/{chunk-ZQEMKEEH.mjs.map → chunk-FENA4YGN.mjs.map} +1 -1
  35. package/dist/{chunk-R6GEJBFC.js → chunk-FIJMOTP4.js} +34 -34
  36. package/dist/{chunk-R6GEJBFC.js.map → chunk-FIJMOTP4.js.map} +1 -1
  37. package/dist/{chunk-BWUFLW5W.mjs → chunk-H7X3SXMB.mjs} +6 -6
  38. package/dist/{chunk-BWUFLW5W.mjs.map → chunk-H7X3SXMB.mjs.map} +1 -1
  39. package/dist/{chunk-OEZ7GAJY.mjs → chunk-HEXTU6W3.mjs} +6 -6
  40. package/dist/{chunk-OEZ7GAJY.mjs.map → chunk-HEXTU6W3.mjs.map} +1 -1
  41. package/dist/{chunk-2E7HYTS7.mjs → chunk-JB3U6ORY.mjs} +3 -3
  42. package/dist/{chunk-2E7HYTS7.mjs.map → chunk-JB3U6ORY.mjs.map} +1 -1
  43. package/dist/{chunk-A2RIX2RK.js → chunk-KHUWFL6W.js} +4 -4
  44. package/dist/{chunk-A2RIX2RK.js.map → chunk-KHUWFL6W.js.map} +1 -1
  45. package/dist/{chunk-CRBGZA6Y.js → chunk-L3R425GB.js} +13 -13
  46. package/dist/{chunk-CRBGZA6Y.js.map → chunk-L3R425GB.js.map} +1 -1
  47. package/dist/{chunk-MT66VKLS.js → chunk-LVR4SR65.js} +189 -47
  48. package/dist/chunk-LVR4SR65.js.map +1 -0
  49. package/dist/{chunk-UZIICTIY.js → chunk-MAOZWOA6.js} +55 -55
  50. package/dist/{chunk-UZIICTIY.js.map → chunk-MAOZWOA6.js.map} +1 -1
  51. package/dist/{chunk-WJENX6KB.js → chunk-MSMEECO6.js} +9 -9
  52. package/dist/{chunk-WJENX6KB.js.map → chunk-MSMEECO6.js.map} +1 -1
  53. package/dist/{chunk-SJ6SUS7H.mjs → chunk-NM37GLCL.mjs} +3 -3
  54. package/dist/{chunk-SJ6SUS7H.mjs.map → chunk-NM37GLCL.mjs.map} +1 -1
  55. package/dist/{chunk-CLTNCBSP.js → chunk-NSZN54HW.js} +4 -4
  56. package/dist/{chunk-CLTNCBSP.js.map → chunk-NSZN54HW.js.map} +1 -1
  57. package/dist/{chunk-7AM2SXEF.js → chunk-O4HH77A4.js} +85 -85
  58. package/dist/{chunk-7AM2SXEF.js.map → chunk-O4HH77A4.js.map} +1 -1
  59. package/dist/{chunk-RFUSH7WD.js → chunk-TSNKICPP.js} +10 -10
  60. package/dist/{chunk-RFUSH7WD.js.map → chunk-TSNKICPP.js.map} +1 -1
  61. package/dist/{chunk-ARLYOLSO.mjs → chunk-W6MBDTKF.mjs} +3 -3
  62. package/dist/{chunk-ARLYOLSO.mjs.map → chunk-W6MBDTKF.mjs.map} +1 -1
  63. package/dist/{chunk-IVKFXPLO.js → chunk-YSYEV2Z6.js} +28 -28
  64. package/dist/{chunk-IVKFXPLO.js.map → chunk-YSYEV2Z6.js.map} +1 -1
  65. package/dist/index.d.mts +108 -4
  66. package/dist/index.d.ts +108 -4
  67. package/dist/index.js +670 -662
  68. package/dist/index.mjs +1 -1
  69. package/dist/platform/admin/index.js +9 -9
  70. package/dist/platform/admin/index.mjs +3 -3
  71. package/dist/platform/agents-workspace.js +6 -6
  72. package/dist/platform/agents-workspace.mjs +5 -5
  73. package/dist/platform/app-shell.js +3 -3
  74. package/dist/platform/app-shell.mjs +2 -2
  75. package/dist/platform/auth/index.js +21 -21
  76. package/dist/platform/auth/index.mjs +3 -3
  77. package/dist/platform/billing/index.js +3 -3
  78. package/dist/platform/billing/index.mjs +2 -2
  79. package/dist/platform/impersonation/index.js +3 -3
  80. package/dist/platform/impersonation/index.mjs +2 -2
  81. package/dist/platform/index.d.mts +1 -1
  82. package/dist/platform/index.d.ts +1 -1
  83. package/dist/platform/index.js +74 -74
  84. package/dist/platform/index.mjs +17 -17
  85. package/dist/platform/pages/index.d.mts +235 -3
  86. package/dist/platform/pages/index.d.ts +235 -3
  87. package/dist/platform/pages/index.js +1988 -281
  88. package/dist/platform/pages/index.js.map +1 -1
  89. package/dist/platform/pages/index.mjs +1758 -53
  90. package/dist/platform/pages/index.mjs.map +1 -1
  91. package/dist/platform/settings/index.js +6 -6
  92. package/dist/platform/settings/index.mjs +5 -5
  93. package/dist/platform/workflow-canvas-shell.js +4 -4
  94. package/dist/platform/workflow-canvas-shell.mjs +3 -3
  95. package/package.json +1 -1
  96. package/dist/chunk-MT66VKLS.js.map +0 -1
  97. package/dist/chunk-ZQRUAXGP.mjs.map +0 -1
@@ -3230,54 +3230,54 @@ function InfoPopover({ title, content, triggerLabel = "Info" }) {
3230
3230
  }
3231
3231
  var colorClasses = {
3232
3232
  emerald: {
3233
- iconBg: "bg-emerald-100 text-emerald-600 dark:bg-emerald-900/50 dark:text-emerald-400",
3233
+ iconBg: "bg-emerald-500/15 text-emerald-700 dark:bg-emerald-500/20 dark:text-emerald-300",
3234
3234
  activeGradient: "from-emerald-500 to-teal-600",
3235
3235
  activeRing: "ring-emerald-500",
3236
3236
  valueColor: "text-slate-900 dark:text-white",
3237
- badgeBg: "bg-emerald-100 text-emerald-700 dark:bg-emerald-900/50 dark:text-emerald-300"
3237
+ badgeBg: "border border-emerald-500/30 bg-emerald-500/20 text-emerald-700 dark:text-emerald-300"
3238
3238
  },
3239
3239
  blue: {
3240
- iconBg: "bg-blue-100 text-blue-600 dark:bg-blue-900/50 dark:text-blue-400",
3240
+ iconBg: "bg-blue-500/15 text-blue-700 dark:bg-blue-500/20 dark:text-blue-300",
3241
3241
  activeGradient: "from-blue-500 to-indigo-600",
3242
3242
  activeRing: "ring-indigo-500/70",
3243
3243
  valueColor: "text-slate-900 dark:text-white",
3244
- badgeBg: "bg-blue-100 text-blue-700 dark:bg-blue-900/50 dark:text-blue-300"
3244
+ badgeBg: "border border-blue-500/30 bg-blue-500/20 text-blue-700 dark:text-blue-300"
3245
3245
  },
3246
3246
  amber: {
3247
- iconBg: "bg-amber-100 text-amber-600 dark:bg-amber-900/50 dark:text-amber-400",
3247
+ iconBg: "bg-amber-500/15 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300",
3248
3248
  activeGradient: "from-amber-500 to-orange-600",
3249
3249
  activeRing: "ring-amber-500",
3250
3250
  valueColor: "text-slate-900 dark:text-white",
3251
- badgeBg: "bg-amber-100 text-amber-700 dark:bg-amber-900/50 dark:text-amber-300",
3251
+ badgeBg: "border border-amber-500/30 bg-amber-500/20 text-amber-700 dark:text-amber-300",
3252
3252
  urgentValueColor: "text-amber-600 dark:text-amber-400"
3253
3253
  },
3254
3254
  orange: {
3255
- iconBg: "bg-orange-100 text-orange-600 dark:bg-orange-900/50 dark:text-orange-400",
3255
+ iconBg: "bg-orange-500/15 text-orange-700 dark:bg-orange-500/20 dark:text-orange-300",
3256
3256
  activeGradient: "from-orange-500 to-amber-600",
3257
3257
  activeRing: "ring-orange-500",
3258
3258
  valueColor: "text-slate-900 dark:text-white",
3259
- badgeBg: "bg-orange-100 text-orange-700 dark:bg-orange-900/50 dark:text-orange-300"
3259
+ badgeBg: "border border-orange-500/30 bg-orange-500/20 text-orange-700 dark:text-orange-300"
3260
3260
  },
3261
3261
  indigo: {
3262
- iconBg: "bg-indigo-100 text-indigo-600 dark:bg-indigo-900/50 dark:text-indigo-400",
3262
+ iconBg: "bg-indigo-500/15 text-indigo-700 dark:bg-indigo-500/20 dark:text-indigo-300",
3263
3263
  activeGradient: "from-indigo-500 to-blue-600",
3264
3264
  activeRing: "ring-indigo-500",
3265
3265
  valueColor: "text-slate-900 dark:text-white",
3266
- badgeBg: "bg-indigo-100 text-indigo-700 dark:bg-indigo-900/50 dark:text-indigo-300"
3266
+ badgeBg: "border border-indigo-500/30 bg-indigo-500/20 text-indigo-700 dark:text-indigo-300"
3267
3267
  },
3268
3268
  purple: {
3269
- iconBg: "bg-purple-100 text-purple-600 dark:bg-purple-900/50 dark:text-purple-400",
3269
+ iconBg: "bg-purple-500/15 text-purple-700 dark:bg-purple-500/20 dark:text-purple-300",
3270
3270
  activeGradient: "from-purple-500 to-indigo-600",
3271
3271
  activeRing: "ring-purple-500",
3272
3272
  valueColor: "text-slate-900 dark:text-white",
3273
- badgeBg: "bg-purple-100 text-purple-700 dark:bg-purple-900/50 dark:text-purple-300"
3273
+ badgeBg: "border border-purple-500/30 bg-purple-500/20 text-purple-700 dark:text-purple-300"
3274
3274
  },
3275
3275
  red: {
3276
- iconBg: "bg-red-100 text-red-600 dark:bg-red-900/50 dark:text-red-400",
3276
+ iconBg: "bg-red-500/15 text-red-700 dark:bg-red-500/20 dark:text-red-300",
3277
3277
  activeGradient: "from-red-500 to-rose-600",
3278
3278
  activeRing: "ring-red-500",
3279
3279
  valueColor: "text-red-600 dark:text-red-400",
3280
- badgeBg: "bg-red-100 text-red-700 dark:bg-red-900/50 dark:text-red-300"
3280
+ badgeBg: "border border-red-500/30 bg-red-500/20 text-red-700 dark:text-red-300"
3281
3281
  }
3282
3282
  };
3283
3283
  function StatCard({
@@ -3351,7 +3351,12 @@ function StatCard({
3351
3351
  badge && /* @__PURE__ */ jsxRuntime.jsx(
3352
3352
  "span",
3353
3353
  {
3354
- className: `mt-2 inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${isActive ? "bg-white/20 text-white" : colorConfig.badgeBg}`,
3354
+ style: isActive ? void 0 : {
3355
+ backdropFilter: "blur(12px) saturate(1.5)",
3356
+ WebkitBackdropFilter: "blur(12px) saturate(1.5)",
3357
+ boxShadow: "inset 0 1px 1.5px rgba(255,255,255,0.45), 0 1px 3px -1px rgba(15,23,42,0.12)"
3358
+ },
3359
+ className: `mt-2 inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold ${isActive ? "border border-white/30 bg-white/20 text-white backdrop-blur-sm" : colorConfig.badgeBg}`,
3355
3360
  children: badge
3356
3361
  }
3357
3362
  )
@@ -3455,6 +3460,11 @@ function getStatusColor(status) {
3455
3460
  return "bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-400";
3456
3461
  }
3457
3462
  }
3463
+ var CRYSTAL_STYLE2 = {
3464
+ backdropFilter: "blur(12px) saturate(1.5)",
3465
+ WebkitBackdropFilter: "blur(12px) saturate(1.5)",
3466
+ boxShadow: "inset 0 1px 1.5px rgba(255,255,255,0.45), 0 1px 3px -1px rgba(15,23,42,0.12)"
3467
+ };
3458
3468
  function PriceChangeBadge({
3459
3469
  value,
3460
3470
  size = "md",
@@ -3464,13 +3474,15 @@ function PriceChangeBadge({
3464
3474
  const locale = chunkYXN2K77G_js.useLocale();
3465
3475
  if (value === null) return null;
3466
3476
  const isPositive = value >= 0;
3467
- const colorClasses3 = isPositive ? "bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400" : "bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400";
3468
- const sizeClasses3 = size === "sm" ? "px-2 py-1 text-xs" : "px-2.5 py-1 text-xs";
3477
+ const toneClasses = isPositive ? "border-emerald-500/30 bg-emerald-500/20 text-emerald-700 dark:text-emerald-300" : "border-red-500/30 bg-red-500/20 text-red-700 dark:text-red-300";
3478
+ const sizeClasses3 = size === "sm" ? "px-2 py-0.5 text-xs" : "px-2.5 py-1 text-xs";
3469
3479
  const iconClasses = size === "sm" ? "h-3 w-3" : "h-3.5 w-3.5";
3470
3480
  return /* @__PURE__ */ jsxRuntime.jsxs(
3471
3481
  "span",
3472
3482
  {
3473
- className: `inline-flex items-center gap-1 rounded-full font-semibold ${colorClasses3} ${sizeClasses3} ${className}`,
3483
+ role: "status",
3484
+ style: CRYSTAL_STYLE2,
3485
+ className: `inline-flex items-center gap-1 rounded-full border font-semibold ${toneClasses} ${sizeClasses3} ${className}`,
3474
3486
  children: [
3475
3487
  showIcon && (isPositive ? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.ArrowTrendingUpIcon, { className: iconClasses }) : /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.ArrowTrendingDownIcon, { className: iconClasses })),
3476
3488
  !showIcon && isPositive ? "+" : "",
@@ -3774,9 +3786,14 @@ function InlineSpinner({ size = "xs", className }) {
3774
3786
  return /* @__PURE__ */ jsxRuntime.jsx(Spinner, { size, color: "current", className });
3775
3787
  }
3776
3788
  var sizeClasses = {
3777
- xs: { icon: "h-2.5 w-2.5", text: "text-[10px]" },
3778
- sm: { icon: "h-3 w-3", text: "text-xs" },
3779
- md: { icon: "h-4 w-4", text: "text-sm" }
3789
+ xs: { icon: "h-2.5 w-2.5", text: "text-[10px]", pad: "px-1.5 py-0.5" },
3790
+ sm: { icon: "h-3 w-3", text: "text-xs", pad: "px-2 py-0.5" },
3791
+ md: { icon: "h-4 w-4", text: "text-sm", pad: "px-2.5 py-1" }
3792
+ };
3793
+ var CRYSTAL_STYLE3 = {
3794
+ backdropFilter: "blur(12px) saturate(1.5)",
3795
+ WebkitBackdropFilter: "blur(12px) saturate(1.5)",
3796
+ boxShadow: "inset 0 1px 1.5px rgba(255,255,255,0.45), 0 1px 3px -1px rgba(15,23,42,0.12)"
3780
3797
  };
3781
3798
  function defaultFormatValue(value, format3) {
3782
3799
  if (format3 === "percent") {
@@ -3791,20 +3808,42 @@ function GrowthIndicator({
3791
3808
  showValue = false,
3792
3809
  format: format3 = "percent",
3793
3810
  formatValue,
3811
+ variant = "inline",
3794
3812
  className
3795
3813
  }) {
3796
3814
  const isPositive = value > 0;
3797
3815
  const isNegative = value < 0;
3798
3816
  const isNeutral = value === 0;
3799
- const colorClasses3 = isPositive ? "text-emerald-500" : isNegative ? "text-red-500" : "text-gray-500";
3817
+ const inlineColorClasses = isPositive ? "text-emerald-500" : isNegative ? "text-red-500" : "text-slate-500";
3818
+ const pillToneClasses = isPositive ? "border-emerald-500/30 bg-emerald-500/20 text-emerald-700 dark:text-emerald-300" : isNegative ? "border-red-500/30 bg-red-500/20 text-red-700 dark:text-red-300" : "border-slate-500/30 bg-slate-500/20 text-slate-700 dark:text-slate-300";
3800
3819
  const Icon = isPositive ? HeroIcons.ArrowTrendingUpIcon : HeroIcons.ArrowTrendingDownIcon;
3801
- const { icon: iconClass, text: textClass } = sizeClasses[size];
3820
+ const { icon: iconClass, text: textClass, pad: padClass } = sizeClasses[size];
3802
3821
  const formatter = formatValue ?? defaultFormatValue;
3803
3822
  const formattedValue = formatter(value, format3);
3804
3823
  if (isNeutral && !showValue) {
3805
3824
  return null;
3806
3825
  }
3807
- return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: clsx4.clsx("inline-flex items-center gap-0.5", colorClasses3, className), children: [
3826
+ if (variant === "pill") {
3827
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3828
+ "span",
3829
+ {
3830
+ role: "status",
3831
+ style: CRYSTAL_STYLE3,
3832
+ className: clsx4.clsx(
3833
+ "inline-flex items-center gap-1 rounded-full border font-semibold",
3834
+ padClass,
3835
+ textClass,
3836
+ pillToneClasses,
3837
+ className
3838
+ ),
3839
+ children: [
3840
+ !isNeutral && /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: iconClass }),
3841
+ showValue && /* @__PURE__ */ jsxRuntime.jsx("span", { children: formattedValue })
3842
+ ]
3843
+ }
3844
+ );
3845
+ }
3846
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: clsx4.clsx("inline-flex items-center gap-0.5", inlineColorClasses, className), children: [
3808
3847
  !isNeutral && /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: iconClass }),
3809
3848
  showValue && /* @__PURE__ */ jsxRuntime.jsx("span", { className: textClass, children: formattedValue })
3810
3849
  ] });
@@ -7203,6 +7242,118 @@ function TimePicker({
7203
7242
  ) })
7204
7243
  ] });
7205
7244
  }
7245
+ var completeStyles = "border-indigo-500 hover:border-indigo-600 dark:border-indigo-400 dark:hover:border-indigo-300";
7246
+ var currentStyles = "border-indigo-500 dark:border-indigo-400";
7247
+ var upcomingStyles = "border-slate-300 hover:border-slate-400 dark:border-white/10 dark:hover:border-white/20";
7248
+ var completeEyebrow = "text-indigo-700 group-hover:text-indigo-800 dark:text-indigo-300 dark:group-hover:text-indigo-200";
7249
+ var currentEyebrow = "text-indigo-700 dark:text-indigo-300";
7250
+ var upcomingEyebrow = "text-slate-500 group-hover:text-slate-700 dark:text-slate-400 dark:group-hover:text-slate-300";
7251
+ function StepProgress({ steps, progressLabel, onStepClick }) {
7252
+ return /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": progressLabel, children: /* @__PURE__ */ jsxRuntime.jsx("ol", { role: "list", className: "space-y-4 md:flex md:space-y-0 md:space-x-8", children: steps.map((step, index) => {
7253
+ const borderStyles = step.status === "complete" ? completeStyles : step.status === "current" ? currentStyles : upcomingStyles;
7254
+ const eyebrowStyles = step.status === "complete" ? completeEyebrow : step.status === "current" ? currentEyebrow : upcomingEyebrow;
7255
+ const isInteractive = step.status !== "upcoming" || Boolean(onStepClick);
7256
+ const ariaCurrent = step.status === "current" ? "step" : void 0;
7257
+ const handleClick = (event) => {
7258
+ if (!onStepClick) return;
7259
+ event.preventDefault();
7260
+ onStepClick(index);
7261
+ };
7262
+ const baseClasses = "group flex flex-col border-l-4 py-2 pl-4 transition-colors md:border-t-4 md:border-l-0 md:pt-4 md:pb-0 md:pl-0 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 focus-visible:rounded-sm";
7263
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { className: "md:flex-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
7264
+ "a",
7265
+ {
7266
+ href: step.href ?? "#",
7267
+ "aria-current": ariaCurrent,
7268
+ onClick: onStepClick ? handleClick : void 0,
7269
+ className: `${baseClasses} ${borderStyles} ${isInteractive ? "" : "cursor-default"}`,
7270
+ children: [
7271
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-sm font-medium ${eyebrowStyles}`, children: step.id }),
7272
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-slate-900 dark:text-white", children: step.name })
7273
+ ]
7274
+ }
7275
+ ) }, step.id);
7276
+ }) }) });
7277
+ }
7278
+ var accentStyles = {
7279
+ indigo: {
7280
+ currentPill: "bg-indigo-500/15 text-indigo-700 dark:bg-indigo-500/25 dark:text-indigo-300",
7281
+ completePill: "bg-emerald-500/10 text-emerald-700 hover:bg-emerald-500/20 dark:bg-emerald-500/20 dark:text-emerald-300",
7282
+ currentDot: "bg-indigo-500 text-white",
7283
+ completeDot: "bg-emerald-500 text-white",
7284
+ connector: "bg-emerald-500/30 dark:bg-emerald-500/20"
7285
+ },
7286
+ blue: {
7287
+ currentPill: "bg-blue-500/15 text-blue-700 dark:bg-blue-500/25 dark:text-blue-300",
7288
+ completePill: "bg-emerald-500/10 text-emerald-700 hover:bg-emerald-500/20 dark:bg-emerald-500/20 dark:text-emerald-300",
7289
+ currentDot: "bg-blue-500 text-white",
7290
+ completeDot: "bg-emerald-500 text-white",
7291
+ connector: "bg-emerald-500/30 dark:bg-emerald-500/20"
7292
+ },
7293
+ emerald: {
7294
+ currentPill: "bg-emerald-500/15 text-emerald-700 dark:bg-emerald-500/25 dark:text-emerald-300",
7295
+ completePill: "bg-emerald-500/10 text-emerald-700 hover:bg-emerald-500/20 dark:bg-emerald-500/20 dark:text-emerald-300",
7296
+ currentDot: "bg-emerald-500 text-white",
7297
+ completeDot: "bg-emerald-500 text-white",
7298
+ connector: "bg-emerald-500/30 dark:bg-emerald-500/20"
7299
+ },
7300
+ violet: {
7301
+ currentPill: "bg-violet-500/15 text-violet-700 dark:bg-violet-500/25 dark:text-violet-300",
7302
+ completePill: "bg-emerald-500/10 text-emerald-700 hover:bg-emerald-500/20 dark:bg-emerald-500/20 dark:text-emerald-300",
7303
+ currentDot: "bg-violet-500 text-white",
7304
+ completeDot: "bg-emerald-500 text-white",
7305
+ connector: "bg-emerald-500/30 dark:bg-emerald-500/20"
7306
+ }
7307
+ };
7308
+ var upcomingPill = "bg-slate-500/8 text-slate-400 dark:bg-white/5 dark:text-white/30";
7309
+ var upcomingDot = "bg-slate-200 text-slate-400 dark:bg-white/10 dark:text-white/30";
7310
+ var upcomingConnector = "bg-slate-200 dark:bg-white/10";
7311
+ function StepIndicator({
7312
+ steps,
7313
+ currentStep,
7314
+ onStepChange,
7315
+ progressLabel,
7316
+ accent = "indigo"
7317
+ }) {
7318
+ const tone = accentStyles[accent];
7319
+ return /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": progressLabel, className: "flex items-center gap-2", children: steps.map((step, index) => {
7320
+ const isCompleted = index < currentStep;
7321
+ const isCurrent = index === currentStep;
7322
+ const isClickable = isCompleted && Boolean(onStepChange);
7323
+ const pillTone = isCurrent ? tone.currentPill : isCompleted ? tone.completePill : upcomingPill;
7324
+ const dotTone = isCurrent ? tone.currentDot : isCompleted ? tone.completeDot : upcomingDot;
7325
+ const connectorTone = index < currentStep ? tone.connector : upcomingConnector;
7326
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 items-center gap-2", children: [
7327
+ /* @__PURE__ */ jsxRuntime.jsxs(
7328
+ "button",
7329
+ {
7330
+ type: "button",
7331
+ onClick: isClickable ? () => onStepChange?.(index) : void 0,
7332
+ disabled: !isClickable && !isCurrent,
7333
+ "aria-current": isCurrent ? "step" : void 0,
7334
+ className: `flex items-center gap-2 rounded-full px-3 py-1.5 text-xs font-medium transition-all duration-200 backdrop-blur-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${pillTone} ${isClickable ? "cursor-pointer" : ""}`,
7335
+ children: [
7336
+ /* @__PURE__ */ jsxRuntime.jsx(
7337
+ "span",
7338
+ {
7339
+ className: `flex h-5 w-5 items-center justify-center rounded-full text-[10px] font-bold ${dotTone}`,
7340
+ children: step.icon ? step.icon : isCompleted ? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.CheckIcon, { className: "h-3 w-3" }) : index + 1
7341
+ }
7342
+ ),
7343
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:inline", children: step.title })
7344
+ ]
7345
+ }
7346
+ ),
7347
+ index < steps.length - 1 ? /* @__PURE__ */ jsxRuntime.jsx(
7348
+ "div",
7349
+ {
7350
+ "aria-hidden": true,
7351
+ className: `h-px flex-1 transition-colors duration-200 ${connectorTone}`
7352
+ }
7353
+ ) : null
7354
+ ] }, step.id);
7355
+ }) });
7356
+ }
7206
7357
  function PageHeading({
7207
7358
  breadcrumbs,
7208
7359
  eyebrow,
@@ -7859,27 +8010,16 @@ function StepFormPage({
7859
8010
  ] }),
7860
8011
  /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "mt-2 text-2xl font-semibold tracking-tight text-slate-950 dark:text-white sm:text-3xl", children: steps[currentStep]?.title ?? title }),
7861
8012
  steps[currentStep]?.description ?? subtitle ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 max-w-xl text-sm text-slate-500 dark:text-white/60 sm:text-base", children: steps[currentStep]?.description ?? subtitle }) : null,
7862
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-6 flex items-center gap-2", children: steps.map((step, index) => {
7863
- const isCompleted = index < currentStep;
7864
- const isCurrent = index === currentStep;
7865
- const isClickable = index < currentStep;
7866
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 items-center gap-2", children: [
7867
- /* @__PURE__ */ jsxRuntime.jsxs(
7868
- "button",
7869
- {
7870
- type: "button",
7871
- onClick: () => isClickable ? onStepChange(index) : void 0,
7872
- disabled: !isClickable && !isCurrent,
7873
- 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"}`,
7874
- children: [
7875
- /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(HeroIcons.CheckIcon, { className: "h-3 w-3" }) : index + 1 }),
7876
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:inline", children: step.title })
7877
- ]
7878
- }
7879
- ),
7880
- index < steps.length - 1 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-px flex-1 transition-colors duration-200 ${index < currentStep ? "bg-emerald-500/30 dark:bg-emerald-500/20" : "bg-slate-200 dark:bg-white/10"}` }) : null
7881
- ] }, step.id);
7882
- }) })
8013
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-6", children: /* @__PURE__ */ jsxRuntime.jsx(
8014
+ StepIndicator,
8015
+ {
8016
+ steps: steps.map((step) => ({ id: step.id, title: step.title, icon: step.icon })),
8017
+ currentStep,
8018
+ onStepChange,
8019
+ accent: "blue",
8020
+ progressLabel: title
8021
+ }
8022
+ ) })
7883
8023
  ] })
7884
8024
  ] }),
7885
8025
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface rounded-2xl p-6", children: [
@@ -20319,7 +20459,9 @@ exports.StatCardSkeleton = StatCardSkeleton;
20319
20459
  exports.StatusBadge = StatusBadge;
20320
20460
  exports.StatusToggle = StatusToggle;
20321
20461
  exports.StepFormPage = StepFormPage;
20462
+ exports.StepIndicator = StepIndicator;
20322
20463
  exports.StepNavigationButtons = StepNavigationButtons;
20464
+ exports.StepProgress = StepProgress;
20323
20465
  exports.StepTimeline = StepTimeline;
20324
20466
  exports.StreamingDashboard = StreamingDashboard;
20325
20467
  exports.Strong = Strong;
@@ -20628,5 +20770,5 @@ exports.useSocialProviders = useSocialProviders;
20628
20770
  exports.validateDashboardSpec = validateDashboardSpec;
20629
20771
  exports.xScale = xScale;
20630
20772
  exports.yScale = yScale;
20631
- //# sourceMappingURL=chunk-MT66VKLS.js.map
20632
- //# sourceMappingURL=chunk-MT66VKLS.js.map
20773
+ //# sourceMappingURL=chunk-LVR4SR65.js.map
20774
+ //# sourceMappingURL=chunk-LVR4SR65.js.map