@almadar/ui 2.24.5 → 2.24.9

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.
@@ -1,5 +1,5 @@
1
- import * as React110 from 'react';
2
- import React110__default, { createContext, useCallback, useState, useRef, useLayoutEffect, useEffect, lazy, useContext, useMemo } from 'react';
1
+ import * as React112 from 'react';
2
+ import React112__default, { createContext, useCallback, useState, useRef, useEffect, useLayoutEffect, lazy, useContext, useMemo } from 'react';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import { EventBusContext } from '@almadar/ui/providers';
5
5
  import 'react-dom';
@@ -357,8 +357,8 @@ function EventBusProvider({ children, debug: debug2 = false }) {
357
357
  payload,
358
358
  timestamp: Date.now()
359
359
  };
360
- const listeners7 = listenersRef.current.get(type);
361
- const listenerCount = listeners7?.size ?? 0;
360
+ const listeners6 = listenersRef.current.get(type);
361
+ const listenerCount = listeners6?.size ?? 0;
362
362
  if (debug2) {
363
363
  if (listenerCount > 0) {
364
364
  console.log(`[EventBus] Emit: ${type} \u2192 ${listenerCount} listener(s)`, payload);
@@ -366,8 +366,8 @@ function EventBusProvider({ children, debug: debug2 = false }) {
366
366
  console.warn(`[EventBus] Emit: ${type} (NO LISTENERS - event may be lost!)`, payload);
367
367
  }
368
368
  }
369
- if (listeners7) {
370
- const listenersCopy = Array.from(listeners7);
369
+ if (listeners6) {
370
+ const listenersCopy = Array.from(listeners6);
371
371
  for (const listener of listenersCopy) {
372
372
  try {
373
373
  listener(event);
@@ -389,17 +389,17 @@ function EventBusProvider({ children, debug: debug2 = false }) {
389
389
  if (!listenersRef.current.has(type)) {
390
390
  listenersRef.current.set(type, /* @__PURE__ */ new Set());
391
391
  }
392
- const listeners7 = listenersRef.current.get(type);
393
- listeners7.add(listener);
392
+ const listeners6 = listenersRef.current.get(type);
393
+ listeners6.add(listener);
394
394
  if (debug2) {
395
- console.log(`[EventBus] Subscribed to '${type}', total: ${listeners7.size}`);
395
+ console.log(`[EventBus] Subscribed to '${type}', total: ${listeners6.size}`);
396
396
  }
397
397
  return () => {
398
- listeners7.delete(listener);
398
+ listeners6.delete(listener);
399
399
  if (debug2) {
400
- console.log(`[EventBus] Unsubscribed from '${type}', remaining: ${listeners7.size}`);
400
+ console.log(`[EventBus] Unsubscribed from '${type}', remaining: ${listeners6.size}`);
401
401
  }
402
- if (listeners7.size === 0) {
402
+ if (listeners6.size === 0) {
403
403
  listenersRef.current.delete(type);
404
404
  }
405
405
  };
@@ -412,8 +412,8 @@ function EventBusProvider({ children, debug: debug2 = false }) {
412
412
  return on(type, wrappedListener);
413
413
  }, [on]);
414
414
  const hasListeners = useCallback((type) => {
415
- const listeners7 = listenersRef.current.get(type);
416
- return listeners7 !== void 0 && listeners7.size > 0;
415
+ const listeners6 = listenersRef.current.get(type);
416
+ return listeners6 !== void 0 && listeners6.size > 0;
417
417
  }, []);
418
418
  const onAny = useCallback((listener) => {
419
419
  anyListenersRef.current.add(listener);
@@ -631,28 +631,28 @@ var marginYStyles = {
631
631
  };
632
632
  var bgStyles = {
633
633
  transparent: "bg-transparent",
634
- primary: "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]",
635
- secondary: "bg-[var(--color-secondary)] text-[var(--color-secondary-foreground)]",
636
- muted: "bg-[var(--color-muted)] text-[var(--color-foreground)]",
637
- accent: "bg-[var(--color-accent)] text-[var(--color-accent-foreground)]",
638
- surface: "bg-[var(--color-card)]",
639
- overlay: "bg-[var(--color-card)]/80 backdrop-blur-sm"
634
+ primary: "bg-primary text-primary-foreground",
635
+ secondary: "bg-secondary text-secondary-foreground",
636
+ muted: "bg-muted text-foreground",
637
+ accent: "bg-accent text-accent-foreground",
638
+ surface: "bg-card",
639
+ overlay: "bg-card/80 backdrop-blur-sm"
640
640
  };
641
641
  var roundedStyles = {
642
642
  none: "rounded-none",
643
- sm: "rounded-[var(--radius-sm)]",
644
- md: "rounded-[var(--radius-md)]",
645
- lg: "rounded-[var(--radius-lg)]",
646
- xl: "rounded-[var(--radius-xl)]",
647
- "2xl": "rounded-[var(--radius-xl)]",
648
- full: "rounded-[var(--radius-full)]"
643
+ sm: "rounded-sm",
644
+ md: "rounded-md",
645
+ lg: "rounded-lg",
646
+ xl: "rounded-xl",
647
+ "2xl": "rounded-xl",
648
+ full: "rounded-full"
649
649
  };
650
650
  var shadowStyles = {
651
651
  none: "shadow-none",
652
- sm: "shadow-[var(--shadow-sm)]",
653
- md: "shadow-[var(--shadow-main)]",
654
- lg: "shadow-[var(--shadow-lg)]",
655
- xl: "shadow-[var(--shadow-lg)]"
652
+ sm: "shadow-sm",
653
+ md: "shadow",
654
+ lg: "shadow-lg",
655
+ xl: "shadow-lg"
656
656
  };
657
657
  var displayStyles = {
658
658
  block: "block",
@@ -674,7 +674,7 @@ var positionStyles = {
674
674
  fixed: "fixed",
675
675
  sticky: "sticky"
676
676
  };
677
- var Box = React110__default.forwardRef(
677
+ var Box = React112__default.forwardRef(
678
678
  ({
679
679
  padding,
680
680
  paddingX,
@@ -740,7 +740,7 @@ var Box = React110__default.forwardRef(
740
740
  // Background
741
741
  bgStyles[bg],
742
742
  // Border - uses theme variables
743
- border && "border-[length:var(--border-width)] border-[var(--color-border)]",
743
+ border && "border-[length:var(--border-width)] border-border",
744
744
  // Rounded
745
745
  roundedStyles[rounded],
746
746
  // Shadow
@@ -769,30 +769,30 @@ var Box = React110__default.forwardRef(
769
769
  );
770
770
  Box.displayName = "Box";
771
771
  var variantStyles = {
772
- h1: "text-4xl font-bold tracking-tight text-[var(--color-foreground)]",
773
- h2: "text-3xl font-bold tracking-tight text-[var(--color-foreground)]",
774
- h3: "text-2xl font-bold text-[var(--color-foreground)]",
775
- h4: "text-xl font-bold text-[var(--color-foreground)]",
776
- h5: "text-lg font-bold text-[var(--color-foreground)]",
777
- h6: "text-base font-bold text-[var(--color-foreground)]",
778
- heading: "text-2xl font-bold text-[var(--color-foreground)]",
779
- subheading: "text-lg font-semibold text-[var(--color-foreground)]",
780
- body1: "text-base font-normal text-[var(--color-foreground)]",
781
- body2: "text-sm font-normal text-[var(--color-foreground)]",
782
- body: "text-base font-normal text-[var(--color-foreground)]",
783
- caption: "text-xs font-normal text-[var(--color-muted-foreground)]",
784
- overline: "text-xs uppercase tracking-wide font-bold text-[var(--color-muted-foreground)]",
785
- small: "text-sm font-normal text-[var(--color-foreground)]",
786
- large: "text-lg font-medium text-[var(--color-foreground)]",
787
- label: "text-sm font-medium text-[var(--color-foreground)]"
772
+ h1: "text-4xl font-bold tracking-tight text-foreground",
773
+ h2: "text-3xl font-bold tracking-tight text-foreground",
774
+ h3: "text-2xl font-bold text-foreground",
775
+ h4: "text-xl font-bold text-foreground",
776
+ h5: "text-lg font-bold text-foreground",
777
+ h6: "text-base font-bold text-foreground",
778
+ heading: "text-2xl font-bold text-foreground",
779
+ subheading: "text-lg font-semibold text-foreground",
780
+ body1: "text-base font-normal text-foreground",
781
+ body2: "text-sm font-normal text-foreground",
782
+ body: "text-base font-normal text-foreground",
783
+ caption: "text-xs font-normal text-muted-foreground",
784
+ overline: "text-xs uppercase tracking-wide font-bold text-muted-foreground",
785
+ small: "text-sm font-normal text-foreground",
786
+ large: "text-lg font-medium text-foreground",
787
+ label: "text-sm font-medium text-foreground"
788
788
  };
789
789
  var colorStyles = {
790
- primary: "text-[var(--color-foreground)]",
791
- secondary: "text-[var(--color-muted-foreground)]",
792
- muted: "text-[var(--color-muted-foreground)]",
793
- error: "text-[var(--color-error)]",
794
- success: "text-[var(--color-success)]",
795
- warning: "text-[var(--color-warning)]",
790
+ primary: "text-foreground",
791
+ secondary: "text-muted-foreground",
792
+ muted: "text-muted-foreground",
793
+ error: "text-error",
794
+ success: "text-success",
795
+ warning: "text-warning",
796
796
  inherit: "text-inherit"
797
797
  };
798
798
  var weightStyles = {
@@ -877,49 +877,50 @@ var Typography = ({
877
877
  Typography.displayName = "Typography";
878
878
  var variantStyles2 = {
879
879
  primary: [
880
- "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]",
880
+ "bg-primary text-primary-foreground",
881
881
  "border-none",
882
- "shadow-[var(--shadow-sm)]",
883
- "hover:bg-[var(--color-primary-hover)] hover:shadow-[var(--shadow-hover)]",
884
- "active:scale-[var(--active-scale)] active:shadow-[var(--shadow-active)]"
882
+ "shadow-sm",
883
+ "hover:bg-primary-hover hover:shadow-lg",
884
+ "active:scale-[var(--active-scale)] active:shadow-sm"
885
885
  ].join(" "),
886
886
  secondary: [
887
- "bg-[var(--color-muted)] text-[var(--color-foreground)]",
888
- "border-none",
889
- "hover:bg-[var(--color-muted-foreground)]/15 hover:text-[var(--color-foreground)]",
887
+ "bg-transparent text-accent",
888
+ "border border-accent",
889
+ "hover:bg-accent hover:text-white hover:border-accent",
890
890
  "active:scale-[var(--active-scale)]"
891
891
  ].join(" "),
892
892
  ghost: [
893
- "bg-transparent text-[var(--color-muted-foreground)]",
894
- "hover:text-[var(--color-foreground)] hover:bg-[var(--color-muted)]",
893
+ "bg-transparent text-muted-foreground",
894
+ "border border-transparent",
895
+ "hover:text-primary-foreground hover:bg-primary hover:border-primary",
895
896
  "active:scale-[var(--active-scale)]"
896
897
  ].join(" "),
897
898
  danger: [
898
- "bg-[var(--color-surface)] text-[var(--color-error)]",
899
- "border-[length:var(--border-width)] border-[var(--color-error)]",
900
- "shadow-[var(--shadow-sm)]",
901
- "hover:bg-[var(--color-error)] hover:text-[var(--color-error-foreground)] hover:shadow-[var(--shadow-hover)]",
902
- "active:scale-[var(--active-scale)] active:shadow-[var(--shadow-active)]"
899
+ "bg-surface text-error",
900
+ "border-[length:var(--border-width)] border-error",
901
+ "shadow-sm",
902
+ "hover:bg-error hover:text-error-foreground hover:shadow-lg",
903
+ "active:scale-[var(--active-scale)] active:shadow-sm"
903
904
  ].join(" "),
904
905
  success: [
905
- "bg-[var(--color-surface)] text-[var(--color-success)]",
906
- "border-[length:var(--border-width)] border-[var(--color-success)]",
907
- "shadow-[var(--shadow-sm)]",
908
- "hover:bg-[var(--color-success)] hover:text-[var(--color-success-foreground)] hover:shadow-[var(--shadow-hover)]",
909
- "active:scale-[var(--active-scale)] active:shadow-[var(--shadow-active)]"
906
+ "bg-surface text-success",
907
+ "border-[length:var(--border-width)] border-success",
908
+ "shadow-sm",
909
+ "hover:bg-success hover:text-success-foreground hover:shadow-lg",
910
+ "active:scale-[var(--active-scale)] active:shadow-sm"
910
911
  ].join(" "),
911
912
  warning: [
912
- "bg-[var(--color-surface)] text-[var(--color-warning)]",
913
- "border-[length:var(--border-width)] border-[var(--color-warning)]",
914
- "shadow-[var(--shadow-sm)]",
915
- "hover:bg-[var(--color-warning)] hover:text-[var(--color-warning-foreground)] hover:shadow-[var(--shadow-hover)]",
916
- "active:scale-[var(--active-scale)] active:shadow-[var(--shadow-active)]"
913
+ "bg-surface text-warning",
914
+ "border-[length:var(--border-width)] border-warning",
915
+ "shadow-sm",
916
+ "hover:bg-warning hover:text-warning-foreground hover:shadow-lg",
917
+ "active:scale-[var(--active-scale)] active:shadow-sm"
917
918
  ].join(" "),
918
919
  // "default" is an alias for secondary
919
920
  default: [
920
- "bg-[var(--color-secondary)] text-[var(--color-secondary-foreground)]",
921
- "border-[length:var(--border-width-thin)] border-[var(--color-border)]",
922
- "hover:bg-[var(--color-secondary-hover)]",
921
+ "bg-secondary text-secondary-foreground",
922
+ "border-[length:var(--border-width-thin)] border-border",
923
+ "hover:bg-secondary-hover",
923
924
  "active:scale-[var(--active-scale)]"
924
925
  ].join(" ")
925
926
  };
@@ -944,7 +945,7 @@ function resolveIconProp(value, sizeClass) {
944
945
  const IconComp = value;
945
946
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
946
947
  }
947
- if (React110__default.isValidElement(value)) {
948
+ if (React112__default.isValidElement(value)) {
948
949
  return value;
949
950
  }
950
951
  if (typeof value === "object" && value !== null && "render" in value) {
@@ -953,7 +954,7 @@ function resolveIconProp(value, sizeClass) {
953
954
  }
954
955
  return value;
955
956
  }
956
- var Button = React110__default.forwardRef(
957
+ var Button = React112__default.forwardRef(
957
958
  ({
958
959
  className,
959
960
  variant = "primary",
@@ -990,9 +991,10 @@ var Button = React110__default.forwardRef(
990
991
  className: cn(
991
992
  "inline-flex items-center justify-center gap-2",
992
993
  "font-[var(--font-weight-medium)]",
993
- "rounded-[var(--radius-sm)]",
994
+ "rounded-sm",
995
+ "cursor-pointer",
994
996
  "transition-all duration-[var(--transition-normal)]",
995
- "focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-[var(--color-ring)] focus:ring-offset-[length:var(--focus-ring-offset)]",
997
+ "focus:outline-none focus:ring-[length:var(--focus-ring-width)] focus:ring-ring focus:ring-offset-[length:var(--focus-ring-offset)]",
996
998
  "disabled:opacity-50 disabled:cursor-not-allowed",
997
999
  variantStyles2[variant],
998
1000
  sizeStyles2[size],
@@ -1013,34 +1015,34 @@ var Button = React110__default.forwardRef(
1013
1015
  Button.displayName = "Button";
1014
1016
  var variantStyles3 = {
1015
1017
  default: [
1016
- "bg-[var(--color-muted)] text-[var(--color-foreground)]",
1017
- "border-[length:var(--border-width-thin)] border-[var(--color-border)]"
1018
+ "bg-muted text-foreground",
1019
+ "border-[length:var(--border-width-thin)] border-border"
1018
1020
  ].join(" "),
1019
- primary: "bg-[var(--color-primary)] text-[var(--color-primary-foreground)]",
1020
- secondary: "bg-[var(--color-secondary)] text-[var(--color-secondary-foreground)]",
1021
+ primary: "bg-primary text-primary-foreground",
1022
+ secondary: "bg-secondary text-secondary-foreground",
1021
1023
  success: [
1022
- "bg-[var(--color-surface)] text-[var(--color-success)]",
1023
- "border-[length:var(--border-width)] border-[var(--color-success)]"
1024
+ "bg-surface text-success",
1025
+ "border-[length:var(--border-width)] border-success"
1024
1026
  ].join(" "),
1025
1027
  warning: [
1026
- "bg-[var(--color-surface)] text-[var(--color-warning)]",
1027
- "border-[length:var(--border-width)] border-[var(--color-warning)]"
1028
+ "bg-surface text-warning",
1029
+ "border-[length:var(--border-width)] border-warning"
1028
1030
  ].join(" "),
1029
1031
  danger: [
1030
- "bg-[var(--color-surface)] text-[var(--color-error)]",
1031
- "border-[length:var(--border-width)] border-[var(--color-error)]"
1032
+ "bg-surface text-error",
1033
+ "border-[length:var(--border-width)] border-error"
1032
1034
  ].join(" "),
1033
1035
  error: [
1034
- "bg-[var(--color-surface)] text-[var(--color-error)]",
1035
- "border-[length:var(--border-width)] border-[var(--color-error)]"
1036
+ "bg-surface text-error",
1037
+ "border-[length:var(--border-width)] border-error"
1036
1038
  ].join(" "),
1037
1039
  info: [
1038
- "bg-[var(--color-surface)] text-[var(--color-info)]",
1039
- "border-[length:var(--border-width)] border-[var(--color-info)]"
1040
+ "bg-surface text-info",
1041
+ "border-[length:var(--border-width)] border-info"
1040
1042
  ].join(" "),
1041
1043
  neutral: [
1042
- "bg-[var(--color-muted)] text-[var(--color-muted-foreground)]",
1043
- "border-[length:var(--border-width-thin)] border-[var(--color-border)]"
1044
+ "bg-muted text-muted-foreground",
1045
+ "border-[length:var(--border-width-thin)] border-border"
1044
1046
  ].join(" ")
1045
1047
  };
1046
1048
  var sizeStyles3 = {
@@ -1048,7 +1050,7 @@ var sizeStyles3 = {
1048
1050
  md: "px-2.5 py-1 text-sm",
1049
1051
  lg: "px-3 py-1.5 text-base"
1050
1052
  };
1051
- var Badge = React110__default.forwardRef(
1053
+ var Badge = React112__default.forwardRef(
1052
1054
  ({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
1053
1055
  const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
1054
1056
  const resolvedIcon = typeof icon === "string" ? (() => {
@@ -1060,7 +1062,7 @@ var Badge = React110__default.forwardRef(
1060
1062
  {
1061
1063
  ref,
1062
1064
  className: cn(
1063
- "inline-flex items-center gap-1 font-bold rounded-[var(--radius-sm)]",
1065
+ "inline-flex items-center gap-1 font-bold rounded-sm",
1064
1066
  variantStyles3[variant],
1065
1067
  sizeStyles3[size],
1066
1068
  className
@@ -1075,7 +1077,7 @@ var Badge = React110__default.forwardRef(
1075
1077
  }
1076
1078
  );
1077
1079
  Badge.displayName = "Badge";
1078
- var Input = React110__default.forwardRef(
1080
+ var Input = React112__default.forwardRef(
1079
1081
  ({
1080
1082
  className,
1081
1083
  inputType,
@@ -1096,21 +1098,21 @@ var Input = React110__default.forwardRef(
1096
1098
  const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsx(IconComponent, { className: "h-4 w-4" });
1097
1099
  const showClearButton = clearable && value && String(value).length > 0;
1098
1100
  const baseClassName = cn(
1099
- "block w-full rounded-[var(--radius-sm)] transition-all duration-[var(--transition-fast)]",
1100
- "border-[length:var(--border-width-thin)] border-[var(--color-border)]",
1101
+ "block w-full rounded-sm transition-all duration-[var(--transition-fast)]",
1102
+ "border-[length:var(--border-width-thin)] border-border",
1101
1103
  "px-3 py-2 text-sm",
1102
- "bg-[var(--color-card)] hover:bg-[var(--color-muted)] focus:bg-[var(--color-card)]",
1103
- "text-[var(--color-foreground)] placeholder:text-[var(--color-muted-foreground)]",
1104
- "focus:outline-none focus:ring-1 focus:ring-[var(--color-ring)] focus:border-[var(--color-ring)]",
1105
- "disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-[var(--color-muted)]",
1106
- error ? "border-[var(--color-error)] focus:border-[var(--color-error)] focus:ring-[var(--color-error)]" : "",
1104
+ "bg-card hover:bg-muted focus:bg-card",
1105
+ "text-foreground placeholder:text-muted-foreground",
1106
+ "focus:outline-none focus:ring-1 focus:ring-ring focus:border-ring",
1107
+ "disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-muted",
1108
+ error ? "border-error focus:border-error focus:ring-error" : "",
1107
1109
  resolvedLeftIcon && "pl-10",
1108
1110
  (rightIcon || showClearButton) && "pr-10",
1109
1111
  className
1110
1112
  );
1111
1113
  if (type === "select") {
1112
1114
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
1113
- resolvedLeftIcon && /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none text-[var(--color-muted-foreground)]", children: resolvedLeftIcon }),
1115
+ resolvedLeftIcon && /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none text-muted-foreground", children: resolvedLeftIcon }),
1114
1116
  /* @__PURE__ */ jsxs(
1115
1117
  "select",
1116
1118
  {
@@ -1125,7 +1127,7 @@ var Input = React110__default.forwardRef(
1125
1127
  ]
1126
1128
  }
1127
1129
  ),
1128
- /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none text-[var(--color-muted-foreground)]", children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4" }) })
1130
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none text-muted-foreground", children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4" }) })
1129
1131
  ] });
1130
1132
  }
1131
1133
  if (type === "textarea") {
@@ -1150,9 +1152,9 @@ var Input = React110__default.forwardRef(
1150
1152
  checked: props.checked,
1151
1153
  onChange,
1152
1154
  className: cn(
1153
- "h-4 w-4 rounded-[var(--radius-sm)]",
1154
- "border-[var(--color-border)]",
1155
- "text-[var(--color-primary)] focus:ring-[var(--color-ring)]",
1155
+ "h-4 w-4 rounded-sm",
1156
+ "border-border",
1157
+ "text-primary focus:ring-ring",
1156
1158
  "disabled:opacity-50 disabled:cursor-not-allowed",
1157
1159
  className
1158
1160
  ),
@@ -1161,7 +1163,7 @@ var Input = React110__default.forwardRef(
1161
1163
  );
1162
1164
  }
1163
1165
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
1164
- resolvedLeftIcon && /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none text-[var(--color-muted-foreground)]", children: resolvedLeftIcon }),
1166
+ resolvedLeftIcon && /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none text-muted-foreground", children: resolvedLeftIcon }),
1165
1167
  /* @__PURE__ */ jsx(
1166
1168
  "input",
1167
1169
  {
@@ -1178,50 +1180,50 @@ var Input = React110__default.forwardRef(
1178
1180
  {
1179
1181
  type: "button",
1180
1182
  onClick: onClear,
1181
- className: "absolute inset-y-0 right-0 pr-3 flex items-center text-[var(--color-muted-foreground)] hover:text-[var(--color-foreground)]",
1183
+ className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground hover:text-foreground",
1182
1184
  children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
1183
1185
  }
1184
1186
  ),
1185
- rightIcon && !showClearButton && /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center text-[var(--color-muted-foreground)]", children: rightIcon })
1187
+ rightIcon && !showClearButton && /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center text-muted-foreground", children: rightIcon })
1186
1188
  ] });
1187
1189
  }
1188
1190
  );
1189
1191
  Input.displayName = "Input";
1190
- var Label = React110__default.forwardRef(
1192
+ var Label = React112__default.forwardRef(
1191
1193
  ({ className, required, children, ...props }, ref) => {
1192
1194
  return /* @__PURE__ */ jsxs(
1193
1195
  "label",
1194
1196
  {
1195
1197
  ref,
1196
1198
  className: cn(
1197
- "block text-sm font-bold text-[var(--color-foreground)]",
1199
+ "block text-sm font-bold text-foreground",
1198
1200
  className
1199
1201
  ),
1200
1202
  ...props,
1201
1203
  children: [
1202
1204
  children,
1203
- required && /* @__PURE__ */ jsx("span", { className: "text-[var(--color-error)] ml-1", children: "*" })
1205
+ required && /* @__PURE__ */ jsx("span", { className: "text-error ml-1", children: "*" })
1204
1206
  ]
1205
1207
  }
1206
1208
  );
1207
1209
  }
1208
1210
  );
1209
1211
  Label.displayName = "Label";
1210
- var Textarea = React110__default.forwardRef(
1212
+ var Textarea = React112__default.forwardRef(
1211
1213
  ({ className, error, ...props }, ref) => {
1212
1214
  return /* @__PURE__ */ jsx(
1213
1215
  "textarea",
1214
1216
  {
1215
1217
  ref,
1216
1218
  className: cn(
1217
- "block w-full border-[length:var(--border-width)] shadow-[var(--shadow-sm)]",
1218
- "px-3 py-2 text-sm text-[var(--color-foreground)]",
1219
- "bg-[var(--color-card)]",
1219
+ "block w-full border-[length:var(--border-width)] shadow-sm",
1220
+ "px-3 py-2 text-sm text-foreground",
1221
+ "bg-card",
1220
1222
  "placeholder:text-[var(--color-placeholder)]",
1221
- "focus:outline-none focus:ring-2 focus:ring-offset-0 focus:ring-[var(--color-ring)]",
1222
- "disabled:bg-[var(--color-muted)] disabled:text-[var(--color-muted-foreground)] disabled:cursor-not-allowed",
1223
+ "focus:outline-none focus:ring-2 focus:ring-offset-0 focus:ring-ring",
1224
+ "disabled:bg-muted disabled:text-muted-foreground disabled:cursor-not-allowed",
1223
1225
  "resize-y min-h-[80px]",
1224
- error ? "border-[var(--color-error)] focus:border-[var(--color-error)]" : "border-[var(--color-border)] focus:border-[var(--color-primary)]",
1226
+ error ? "border-error focus:border-error" : "border-border focus:border-primary",
1225
1227
  className
1226
1228
  ),
1227
1229
  ...props
@@ -1230,7 +1232,7 @@ var Textarea = React110__default.forwardRef(
1230
1232
  }
1231
1233
  );
1232
1234
  Textarea.displayName = "Textarea";
1233
- var Select = React110__default.forwardRef(
1235
+ var Select = React112__default.forwardRef(
1234
1236
  ({ className, options, placeholder, error, ...props }, ref) => {
1235
1237
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
1236
1238
  /* @__PURE__ */ jsxs(
@@ -1238,12 +1240,12 @@ var Select = React110__default.forwardRef(
1238
1240
  {
1239
1241
  ref,
1240
1242
  className: cn(
1241
- "block w-full border-[length:var(--border-width)] shadow-[var(--shadow-sm)] appearance-none",
1242
- "px-3 py-2 pr-10 text-sm text-[var(--color-foreground)] font-medium",
1243
- "bg-[var(--color-card)]",
1244
- "focus:outline-none focus:ring-2 focus:ring-offset-0 focus:ring-[var(--color-ring)]",
1245
- "disabled:bg-[var(--color-muted)] disabled:text-[var(--color-muted-foreground)] disabled:cursor-not-allowed",
1246
- error ? "border-[var(--color-error)] focus:border-[var(--color-error)]" : "border-[var(--color-border)] focus:border-[var(--color-primary)]",
1243
+ "block w-full border-[length:var(--border-width)] shadow-sm appearance-none",
1244
+ "px-3 py-2 pr-10 text-sm text-foreground font-medium",
1245
+ "bg-card",
1246
+ "focus:outline-none focus:ring-2 focus:ring-offset-0 focus:ring-ring",
1247
+ "disabled:bg-muted disabled:text-muted-foreground disabled:cursor-not-allowed",
1248
+ error ? "border-error focus:border-error" : "border-border focus:border-primary",
1247
1249
  className
1248
1250
  ),
1249
1251
  ...props,
@@ -1261,12 +1263,12 @@ var Select = React110__default.forwardRef(
1261
1263
  ]
1262
1264
  }
1263
1265
  ),
1264
- /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none", children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 text-[var(--color-foreground)]" }) })
1266
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none", children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 text-foreground" }) })
1265
1267
  ] });
1266
1268
  }
1267
1269
  );
1268
1270
  Select.displayName = "Select";
1269
- var Checkbox = React110__default.forwardRef(
1271
+ var Checkbox = React112__default.forwardRef(
1270
1272
  ({ className, label, id, ...props }, ref) => {
1271
1273
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
1272
1274
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
@@ -1277,9 +1279,9 @@ var Checkbox = React110__default.forwardRef(
1277
1279
  type: "checkbox",
1278
1280
  id: inputId,
1279
1281
  className: cn(
1280
- "peer h-4 w-4 border-[length:var(--border-width)] border-[var(--color-border)]",
1281
- "accent-[var(--color-primary)] focus:ring-[var(--color-ring)] focus:ring-offset-0",
1282
- "bg-[var(--color-card)] checked:bg-[var(--color-primary)]",
1282
+ "peer h-4 w-4 border-[length:var(--border-width)] border-border",
1283
+ "accent-primary focus:ring-ring focus:ring-offset-0",
1284
+ "bg-card checked:bg-primary",
1283
1285
  "disabled:opacity-50 disabled:cursor-not-allowed",
1284
1286
  className
1285
1287
  ),
@@ -1290,7 +1292,7 @@ var Checkbox = React110__default.forwardRef(
1290
1292
  "label",
1291
1293
  {
1292
1294
  htmlFor: inputId,
1293
- className: "ml-2 text-sm text-[var(--color-foreground)] font-medium cursor-pointer select-none",
1295
+ className: "ml-2 text-sm text-foreground font-medium cursor-pointer select-none",
1294
1296
  children: label
1295
1297
  }
1296
1298
  )
@@ -1300,34 +1302,34 @@ var Checkbox = React110__default.forwardRef(
1300
1302
  Checkbox.displayName = "Checkbox";
1301
1303
  var variantStyles4 = {
1302
1304
  default: [
1303
- "bg-[var(--color-card)]",
1304
- "border-[length:var(--border-width)] border-[var(--color-border)]",
1305
- "shadow-[var(--shadow-sm)]",
1305
+ "bg-card",
1306
+ "border-[length:var(--border-width)] border-border",
1307
+ "shadow-sm",
1306
1308
  "transition-all duration-[var(--transition-normal)]",
1307
- "hover:shadow-[var(--shadow-hover)] hover:-translate-y-0.5"
1309
+ "hover:shadow-lg hover:-translate-y-0.5"
1308
1310
  ].join(" "),
1309
1311
  bordered: [
1310
- "bg-[var(--color-card)]",
1311
- "border-[length:var(--border-width)] border-[var(--color-border)]",
1312
- "shadow-[var(--shadow-sm)]",
1312
+ "bg-card",
1313
+ "border-[length:var(--border-width)] border-border",
1314
+ "shadow-sm",
1313
1315
  "transition-all duration-[var(--transition-normal)]",
1314
- "hover:shadow-[var(--shadow-hover)] hover:-translate-y-0.5"
1316
+ "hover:shadow-lg hover:-translate-y-0.5"
1315
1317
  ].join(" "),
1316
1318
  elevated: [
1317
- "bg-[var(--color-card)]",
1318
- "border-[length:var(--border-width)] border-[var(--color-border)]",
1319
- "shadow-[var(--shadow-main)]",
1319
+ "bg-card",
1320
+ "border-[length:var(--border-width)] border-border",
1321
+ "shadow",
1320
1322
  "transition-all duration-[var(--transition-normal)]",
1321
- "hover:shadow-[var(--shadow-hover)] hover:-translate-y-0.5"
1323
+ "hover:shadow-lg hover:-translate-y-0.5"
1322
1324
  ].join(" "),
1323
1325
  // Interactive variant with theme-specific hover effects
1324
1326
  interactive: [
1325
- "bg-[var(--color-card)]",
1326
- "border-[length:var(--border-width)] border-[var(--color-border)]",
1327
- "shadow-[var(--shadow-main)]",
1327
+ "bg-card",
1328
+ "border-[length:var(--border-width)] border-border",
1329
+ "shadow",
1328
1330
  "cursor-pointer",
1329
1331
  "transition-all duration-[var(--transition-normal)]",
1330
- "hover:shadow-[var(--shadow-hover)]"
1332
+ "hover:shadow-lg"
1331
1333
  ].join(" ")
1332
1334
  };
1333
1335
  var paddingStyles2 = {
@@ -1338,11 +1340,11 @@ var paddingStyles2 = {
1338
1340
  };
1339
1341
  var shadowStyles2 = {
1340
1342
  none: "shadow-none",
1341
- sm: "shadow-[var(--shadow-sm)]",
1342
- md: "shadow-[var(--shadow-main)]",
1343
- lg: "shadow-[var(--shadow-lg)]"
1343
+ sm: "shadow-sm",
1344
+ md: "shadow",
1345
+ lg: "shadow-lg"
1344
1346
  };
1345
- var Card = React110__default.forwardRef(
1347
+ var Card = React112__default.forwardRef(
1346
1348
  ({
1347
1349
  className,
1348
1350
  variant = "bordered",
@@ -1358,7 +1360,7 @@ var Card = React110__default.forwardRef(
1358
1360
  {
1359
1361
  ref,
1360
1362
  className: cn(
1361
- "rounded-[var(--radius-md)]",
1363
+ "rounded-md",
1362
1364
  "transition-all duration-[var(--transition-normal)]",
1363
1365
  variantStyles4[variant],
1364
1366
  paddingStyles2[padding],
@@ -1368,8 +1370,8 @@ var Card = React110__default.forwardRef(
1368
1370
  ...props,
1369
1371
  children: [
1370
1372
  (title || subtitle) && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
1371
- title && /* @__PURE__ */ jsx("h3", { className: "text-lg text-[var(--color-card-foreground)] font-[var(--font-weight-bold)]", children: title }),
1372
- subtitle && /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--color-muted-foreground)] mt-1", children: subtitle })
1373
+ title && /* @__PURE__ */ jsx("h3", { className: "text-lg text-card-foreground font-[var(--font-weight-bold)]", children: title }),
1374
+ subtitle && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground mt-1", children: subtitle })
1373
1375
  ] }),
1374
1376
  children
1375
1377
  ]
@@ -1378,14 +1380,14 @@ var Card = React110__default.forwardRef(
1378
1380
  }
1379
1381
  );
1380
1382
  Card.displayName = "Card";
1381
- var CardHeader = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
1383
+ var CardHeader = React112__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
1382
1384
  CardHeader.displayName = "CardHeader";
1383
- var CardTitle = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1385
+ var CardTitle = React112__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1384
1386
  "h3",
1385
1387
  {
1386
1388
  ref,
1387
1389
  className: cn(
1388
- "text-lg text-[var(--color-card-foreground)]",
1390
+ "text-lg text-card-foreground",
1389
1391
  "font-[var(--font-weight-bold)]",
1390
1392
  className
1391
1393
  ),
@@ -1393,11 +1395,11 @@ var CardTitle = React110__default.forwardRef(({ className, ...props }, ref) => /
1393
1395
  }
1394
1396
  ));
1395
1397
  CardTitle.displayName = "CardTitle";
1396
- var CardContent = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
1398
+ var CardContent = React112__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
1397
1399
  CardContent.displayName = "CardContent";
1398
1400
  var CardBody = CardContent;
1399
1401
  CardBody.displayName = "CardBody";
1400
- var CardFooter = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1402
+ var CardFooter = React112__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1401
1403
  "div",
1402
1404
  {
1403
1405
  ref,
@@ -1412,13 +1414,13 @@ var sizeStyles4 = {
1412
1414
  md: "h-6 w-6",
1413
1415
  lg: "h-8 w-8"
1414
1416
  };
1415
- var Spinner = React110__default.forwardRef(
1417
+ var Spinner = React112__default.forwardRef(
1416
1418
  ({ className, size = "md", ...props }, ref) => {
1417
1419
  return /* @__PURE__ */ jsx(
1418
1420
  "div",
1419
1421
  {
1420
1422
  ref,
1421
- className: cn("text-[var(--color-foreground)]", className),
1423
+ className: cn("text-foreground", className),
1422
1424
  ...props,
1423
1425
  children: /* @__PURE__ */ jsx(Loader2, { className: cn("animate-spin", sizeStyles4[size]) })
1424
1426
  }
@@ -1426,7 +1428,7 @@ var Spinner = React110__default.forwardRef(
1426
1428
  }
1427
1429
  );
1428
1430
  Spinner.displayName = "Spinner";
1429
- var Radio = React110__default.forwardRef(
1431
+ var Radio = React112__default.forwardRef(
1430
1432
  ({
1431
1433
  label,
1432
1434
  helperText,
@@ -1475,8 +1477,8 @@ var Radio = React110__default.forwardRef(
1475
1477
  "flex items-center justify-center",
1476
1478
  "border-[length:var(--border-width)] transition-all cursor-pointer",
1477
1479
  sizeClasses6[size],
1478
- hasError ? "border-[var(--color-error)] peer-focus:ring-[var(--color-error)]/20" : "border-[var(--color-border)] peer-focus:ring-[var(--color-ring)]/20",
1479
- checked ? hasError ? "border-[var(--color-error)]" : "border-[var(--color-primary)] bg-[var(--color-primary)]" : "",
1480
+ hasError ? "border-error peer-focus:ring-error/20" : "border-border peer-focus:ring-ring/20",
1481
+ checked ? hasError ? "border-error" : "border-primary bg-primary" : "",
1480
1482
  "peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-offset-2",
1481
1483
  disabled && "opacity-50 cursor-not-allowed",
1482
1484
  !disabled && "hover:border-[var(--color-border-hover)]"
@@ -1487,7 +1489,7 @@ var Radio = React110__default.forwardRef(
1487
1489
  className: cn(
1488
1490
  "transition-all",
1489
1491
  dotSizeClasses[size],
1490
- hasError ? "bg-[var(--color-error)]" : "bg-[var(--color-primary-foreground)]"
1492
+ hasError ? "bg-error" : "bg-primary-foreground"
1491
1493
  )
1492
1494
  }
1493
1495
  )
@@ -1500,7 +1502,7 @@ var Radio = React110__default.forwardRef(
1500
1502
  htmlFor: radioId,
1501
1503
  className: cn(
1502
1504
  "block text-sm font-medium cursor-pointer select-none",
1503
- hasError ? "text-[var(--color-error)]" : "text-[var(--color-foreground)]",
1505
+ hasError ? "text-error" : "text-foreground",
1504
1506
  disabled && "opacity-50 cursor-not-allowed"
1505
1507
  ),
1506
1508
  children: label
@@ -1512,7 +1514,7 @@ var Radio = React110__default.forwardRef(
1512
1514
  "p",
1513
1515
  {
1514
1516
  id: `${radioId}-error`,
1515
- className: "text-sm text-[var(--color-error)] font-medium",
1517
+ className: "text-sm text-error font-medium",
1516
1518
  role: "alert",
1517
1519
  children: error
1518
1520
  }
@@ -1521,7 +1523,7 @@ var Radio = React110__default.forwardRef(
1521
1523
  "p",
1522
1524
  {
1523
1525
  id: `${radioId}-helper`,
1524
- className: "text-sm text-[var(--color-muted-foreground)]",
1526
+ className: "text-sm text-muted-foreground",
1525
1527
  children: helperText
1526
1528
  }
1527
1529
  )
@@ -1530,7 +1532,7 @@ var Radio = React110__default.forwardRef(
1530
1532
  }
1531
1533
  );
1532
1534
  Radio.displayName = "Radio";
1533
- var Switch = React110.forwardRef(
1535
+ var Switch = React112.forwardRef(
1534
1536
  ({
1535
1537
  checked,
1536
1538
  defaultChecked = false,
@@ -1541,10 +1543,10 @@ var Switch = React110.forwardRef(
1541
1543
  name,
1542
1544
  className
1543
1545
  }, ref) => {
1544
- const [isChecked, setIsChecked] = React110.useState(
1546
+ const [isChecked, setIsChecked] = React112.useState(
1545
1547
  checked !== void 0 ? checked : defaultChecked
1546
1548
  );
1547
- React110.useEffect(() => {
1549
+ React112.useEffect(() => {
1548
1550
  if (checked !== void 0) {
1549
1551
  setIsChecked(checked);
1550
1552
  }
@@ -1682,27 +1684,27 @@ var Stack = ({
1682
1684
  var VStack = (props) => /* @__PURE__ */ jsx(Stack, { direction: "vertical", ...props });
1683
1685
  var HStack = (props) => /* @__PURE__ */ jsx(Stack, { direction: "horizontal", ...props });
1684
1686
  var statusColors = {
1685
- online: "bg-[var(--color-success)]",
1686
- offline: "bg-[var(--color-muted-foreground)]",
1687
- away: "bg-[var(--color-warning)]",
1688
- busy: "bg-[var(--color-error)]",
1689
- warning: "bg-[var(--color-warning)]",
1690
- critical: "bg-[var(--color-error)]"
1687
+ online: "bg-success",
1688
+ offline: "bg-muted-foreground",
1689
+ away: "bg-warning",
1690
+ busy: "bg-error",
1691
+ warning: "bg-warning",
1692
+ critical: "bg-error"
1691
1693
  };
1692
1694
  var pulseRingColors = {
1693
- online: "ring-[var(--color-success)]",
1694
- offline: "ring-[var(--color-muted-foreground)]",
1695
- away: "ring-[var(--color-warning)]",
1696
- busy: "ring-[var(--color-error)]",
1697
- warning: "ring-[var(--color-warning)]",
1698
- critical: "ring-[var(--color-error)]"
1695
+ online: "ring-success",
1696
+ offline: "ring-muted-foreground",
1697
+ away: "ring-warning",
1698
+ busy: "ring-error",
1699
+ warning: "ring-warning",
1700
+ critical: "ring-error"
1699
1701
  };
1700
1702
  var sizeStyles5 = {
1701
1703
  sm: "w-2 h-2",
1702
1704
  md: "w-2.5 h-2.5",
1703
1705
  lg: "w-3 h-3"
1704
1706
  };
1705
- var StatusDot = React110__default.forwardRef(
1707
+ var StatusDot = React112__default.forwardRef(
1706
1708
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
1707
1709
  return /* @__PURE__ */ jsx(
1708
1710
  "span",
@@ -1739,17 +1741,17 @@ function resolveDirection(value, direction) {
1739
1741
  return value > 0 ? "up" : "down";
1740
1742
  }
1741
1743
  function resolveColor(dir, invert) {
1742
- if (dir === "flat") return "text-[var(--color-muted-foreground)]";
1744
+ if (dir === "flat") return "text-muted-foreground";
1743
1745
  const isPositive = dir === "up";
1744
1746
  const isGood = invert ? !isPositive : isPositive;
1745
- return isGood ? "text-[var(--color-success)]" : "text-[var(--color-error)]";
1747
+ return isGood ? "text-success" : "text-error";
1746
1748
  }
1747
1749
  var iconMap2 = {
1748
1750
  up: TrendingUp,
1749
1751
  down: TrendingDown,
1750
1752
  flat: ArrowRight
1751
1753
  };
1752
- var TrendIndicator = React110__default.forwardRef(
1754
+ var TrendIndicator = React112__default.forwardRef(
1753
1755
  ({
1754
1756
  className,
1755
1757
  value,
@@ -1808,7 +1810,7 @@ var thumbSizes = {
1808
1810
  md: "w-4 h-4",
1809
1811
  lg: "w-5 h-5"
1810
1812
  };
1811
- var RangeSlider = React110__default.forwardRef(
1813
+ var RangeSlider = React112__default.forwardRef(
1812
1814
  ({
1813
1815
  className,
1814
1816
  min = 0,
@@ -1860,7 +1862,7 @@ var RangeSlider = React110__default.forwardRef(
1860
1862
  "div",
1861
1863
  {
1862
1864
  className: cn(
1863
- "absolute inset-x-0 rounded-full bg-[var(--color-muted)]",
1865
+ "absolute inset-x-0 rounded-full bg-muted",
1864
1866
  trackSizes[size]
1865
1867
  ),
1866
1868
  style: { top: "50%", transform: "translateY(-50%)" }
@@ -1870,7 +1872,7 @@ var RangeSlider = React110__default.forwardRef(
1870
1872
  "div",
1871
1873
  {
1872
1874
  className: cn(
1873
- "absolute rounded-full bg-[var(--color-muted-foreground)] opacity-30",
1875
+ "absolute rounded-full bg-muted-foreground opacity-30",
1874
1876
  trackSizes[size]
1875
1877
  ),
1876
1878
  style: {
@@ -1885,7 +1887,7 @@ var RangeSlider = React110__default.forwardRef(
1885
1887
  "div",
1886
1888
  {
1887
1889
  className: cn(
1888
- "absolute rounded-full bg-[var(--color-primary)]",
1890
+ "absolute rounded-full bg-primary",
1889
1891
  trackSizes[size]
1890
1892
  ),
1891
1893
  style: {
@@ -1947,9 +1949,9 @@ var RangeSlider = React110__default.forwardRef(
1947
1949
  "div",
1948
1950
  {
1949
1951
  className: cn(
1950
- "absolute rounded-full bg-[var(--color-primary-foreground)]",
1951
- "border-2 border-[var(--color-primary)]",
1952
- "shadow-[var(--shadow-sm)]",
1952
+ "absolute rounded-full bg-primary-foreground",
1953
+ "border-2 border-primary",
1954
+ "shadow-sm",
1953
1955
  "pointer-events-none",
1954
1956
  "transition-transform duration-100",
1955
1957
  isDragging && "scale-110",
@@ -1967,7 +1969,7 @@ var RangeSlider = React110__default.forwardRef(
1967
1969
  {
1968
1970
  className: cn(
1969
1971
  "absolute -top-8 px-2 py-0.5 rounded",
1970
- "bg-[var(--color-foreground)] text-[var(--color-background)]",
1972
+ "bg-foreground text-background",
1971
1973
  "text-xs font-medium whitespace-nowrap",
1972
1974
  "pointer-events-none"
1973
1975
  ),
@@ -1984,7 +1986,7 @@ var RangeSlider = React110__default.forwardRef(
1984
1986
  return /* @__PURE__ */ jsx(
1985
1987
  "div",
1986
1988
  {
1987
- className: "absolute w-px h-1.5 bg-[var(--color-muted-foreground)]",
1989
+ className: "absolute w-px h-1.5 bg-muted-foreground",
1988
1990
  style: { left: `${tickPercent}%` }
1989
1991
  },
1990
1992
  i
@@ -1998,8 +2000,8 @@ var RangeSlider = React110__default.forwardRef(
1998
2000
  RangeSlider.displayName = "RangeSlider";
1999
2001
  var backgroundClasses = {
2000
2002
  default: "",
2001
- alt: "bg-[var(--color-surface)]",
2002
- dark: "bg-[var(--color-foreground)] text-[var(--color-background)]",
2003
+ alt: "bg-surface",
2004
+ dark: "bg-foreground text-background",
2003
2005
  gradient: [
2004
2006
  "bg-gradient-to-b",
2005
2007
  "from-[var(--color-primary)]/5",
@@ -2011,7 +2013,7 @@ var paddingClasses = {
2011
2013
  md: "py-16",
2012
2014
  lg: "py-24"
2013
2015
  };
2014
- var ContentSection = React110__default.forwardRef(
2016
+ var ContentSection = React112__default.forwardRef(
2015
2017
  ({ children, background = "default", padding = "lg", id, className }, ref) => {
2016
2018
  return /* @__PURE__ */ jsx(
2017
2019
  Box,
@@ -2030,6 +2032,289 @@ var ContentSection = React110__default.forwardRef(
2030
2032
  }
2031
2033
  );
2032
2034
  ContentSection.displayName = "ContentSection";
2035
+ var initialStyles = {
2036
+ "fade-up": { opacity: 0, transform: "translateY(24px)" },
2037
+ "fade-down": { opacity: 0, transform: "translateY(-24px)" },
2038
+ "fade-in": { opacity: 0 },
2039
+ "fade-left": { opacity: 0, transform: "translateX(24px)" },
2040
+ "fade-right": { opacity: 0, transform: "translateX(-24px)" },
2041
+ "scale": { opacity: 0, transform: "scale(0.92)" },
2042
+ "scale-up": { opacity: 0, transform: "scale(0.92) translateY(16px)" },
2043
+ "none": {}
2044
+ };
2045
+ var animatedStyles = {
2046
+ "fade-up": { opacity: 1, transform: "translateY(0)" },
2047
+ "fade-down": { opacity: 1, transform: "translateY(0)" },
2048
+ "fade-in": { opacity: 1 },
2049
+ "fade-left": { opacity: 1, transform: "translateX(0)" },
2050
+ "fade-right": { opacity: 1, transform: "translateX(0)" },
2051
+ "scale": { opacity: 1, transform: "scale(1)" },
2052
+ "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
2053
+ "none": {}
2054
+ };
2055
+ var AnimatedReveal = React112__default.forwardRef(
2056
+ ({
2057
+ trigger = "scroll",
2058
+ animation = "fade-up",
2059
+ duration = 600,
2060
+ delay = 0,
2061
+ threshold = 0.15,
2062
+ once = true,
2063
+ animate: manualAnimate,
2064
+ easing = "cubic-bezier(0.16, 1, 0.3, 1)",
2065
+ children,
2066
+ className,
2067
+ style,
2068
+ ...props
2069
+ }, forwardedRef) => {
2070
+ const [isAnimated, setIsAnimated] = useState(false);
2071
+ const internalRef = useRef(null);
2072
+ const hasAnimated = useRef(false);
2073
+ const setRef = useCallback(
2074
+ (node) => {
2075
+ internalRef.current = node;
2076
+ if (typeof forwardedRef === "function") forwardedRef(node);
2077
+ else if (forwardedRef) forwardedRef.current = node;
2078
+ },
2079
+ [forwardedRef]
2080
+ );
2081
+ useEffect(() => {
2082
+ if (trigger !== "scroll") return;
2083
+ const el = internalRef.current;
2084
+ if (!el) return;
2085
+ const observer = new IntersectionObserver(
2086
+ ([entry]) => {
2087
+ if (entry.isIntersecting) {
2088
+ if (once && hasAnimated.current) return;
2089
+ hasAnimated.current = true;
2090
+ setIsAnimated(true);
2091
+ } else if (!once) {
2092
+ setIsAnimated(false);
2093
+ }
2094
+ },
2095
+ { threshold }
2096
+ );
2097
+ observer.observe(el);
2098
+ return () => observer.disconnect();
2099
+ }, [trigger, threshold, once]);
2100
+ const handleMouseEnter = trigger === "hover" ? () => setIsAnimated(true) : void 0;
2101
+ const handleMouseLeave = trigger === "hover" ? () => {
2102
+ if (!once || !hasAnimated.current) {
2103
+ hasAnimated.current = true;
2104
+ setIsAnimated(false);
2105
+ }
2106
+ } : void 0;
2107
+ useEffect(() => {
2108
+ if (trigger === "manual" && manualAnimate !== void 0) {
2109
+ setIsAnimated(manualAnimate);
2110
+ }
2111
+ }, [trigger, manualAnimate]);
2112
+ const active = isAnimated;
2113
+ const currentStyle = active ? animatedStyles[animation] : initialStyles[animation];
2114
+ return /* @__PURE__ */ jsx(
2115
+ "div",
2116
+ {
2117
+ ref: setRef,
2118
+ className: cn("will-change-[opacity,transform]", className),
2119
+ style: {
2120
+ ...currentStyle,
2121
+ transitionProperty: "opacity, transform",
2122
+ transitionDuration: `${duration}ms`,
2123
+ transitionDelay: `${delay}ms`,
2124
+ transitionTimingFunction: easing,
2125
+ ...style
2126
+ },
2127
+ onMouseEnter: handleMouseEnter,
2128
+ onMouseLeave: handleMouseLeave,
2129
+ ...props,
2130
+ children: typeof children === "function" ? children(active) : children
2131
+ }
2132
+ );
2133
+ }
2134
+ );
2135
+ AnimatedReveal.displayName = "AnimatedReveal";
2136
+ function useFetchedSvg(src) {
2137
+ const [svg, setSvg] = useState(null);
2138
+ const cache = useRef({});
2139
+ useEffect(() => {
2140
+ if (!src) {
2141
+ setSvg(null);
2142
+ return;
2143
+ }
2144
+ if (cache.current[src]) {
2145
+ setSvg(cache.current[src]);
2146
+ return;
2147
+ }
2148
+ let cancelled = false;
2149
+ fetch(src).then((res) => {
2150
+ if (!res.ok) throw new Error(`Failed to fetch SVG: ${res.status}`);
2151
+ return res.text();
2152
+ }).then((text) => {
2153
+ if (cancelled) return;
2154
+ cache.current[src] = text;
2155
+ setSvg(text);
2156
+ }).catch(() => {
2157
+ if (!cancelled) setSvg(null);
2158
+ });
2159
+ return () => {
2160
+ cancelled = true;
2161
+ };
2162
+ }, [src]);
2163
+ return svg;
2164
+ }
2165
+ function applyDrawAnimation(container, animate, duration, delay, easing) {
2166
+ const paths = container.querySelectorAll("path, line, polyline, polygon, circle, ellipse, rect");
2167
+ paths.forEach((el) => {
2168
+ if ("getTotalLength" in el && typeof el.getTotalLength === "function") {
2169
+ const len = el.getTotalLength();
2170
+ el.style.strokeDasharray = `${len}`;
2171
+ el.style.strokeDashoffset = animate ? "0" : `${len}`;
2172
+ el.style.transition = `stroke-dashoffset ${duration}ms ${easing} ${delay}ms`;
2173
+ }
2174
+ });
2175
+ }
2176
+ function applyFillAnimation(container, animate, duration, delay, easing, fillColor) {
2177
+ const paths = container.querySelectorAll("path, circle, ellipse, rect, polygon");
2178
+ paths.forEach((el) => {
2179
+ if ("getTotalLength" in el && typeof el.getTotalLength === "function") {
2180
+ const geom = el;
2181
+ const len = geom.getTotalLength();
2182
+ geom.style.strokeDasharray = `${len}`;
2183
+ geom.style.strokeDashoffset = animate ? "0" : `${len}`;
2184
+ geom.style.transition = `stroke-dashoffset ${duration * 0.6}ms ${easing} ${delay}ms, fill-opacity ${duration * 0.4}ms ${easing} ${delay + duration * 0.6}ms`;
2185
+ }
2186
+ if (fillColor) el.style.fill = fillColor;
2187
+ el.style.fillOpacity = animate ? "1" : "0";
2188
+ });
2189
+ }
2190
+ function applyPulseAnimation(container, animate, duration) {
2191
+ const svg = container.querySelector("svg");
2192
+ if (!svg) return;
2193
+ if (animate) {
2194
+ svg.style.animation = `ag-pulse ${duration}ms ease-in-out infinite`;
2195
+ } else {
2196
+ svg.style.animation = "none";
2197
+ }
2198
+ }
2199
+ function applyMorphAnimation(container, animate, duration, delay, easing) {
2200
+ const paths = container.querySelectorAll("path, circle, ellipse, rect, polygon");
2201
+ paths.forEach((el) => {
2202
+ el.style.transition = `all ${duration}ms ${easing} ${delay}ms`;
2203
+ el.style.transform = animate ? "scale(1)" : "scale(0)";
2204
+ el.style.transformOrigin = "center";
2205
+ el.style.opacity = animate ? "1" : "0";
2206
+ });
2207
+ }
2208
+ var AnimatedGraphic = React112__default.forwardRef(
2209
+ ({
2210
+ src,
2211
+ svgContent,
2212
+ animation = "draw",
2213
+ animate = false,
2214
+ duration = 1200,
2215
+ delay = 0,
2216
+ easing = "cubic-bezier(0.16, 1, 0.3, 1)",
2217
+ width,
2218
+ height,
2219
+ strokeColor,
2220
+ fillColor,
2221
+ alt,
2222
+ className,
2223
+ style,
2224
+ children,
2225
+ ...props
2226
+ }, ref) => {
2227
+ const containerRef = useRef(null);
2228
+ const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
2229
+ const resolvedSvg = svgContent ?? fetchedSvg;
2230
+ const prevAnimateRef = useRef(animate);
2231
+ const setRef = React112__default.useCallback(
2232
+ (node) => {
2233
+ containerRef.current = node;
2234
+ if (typeof ref === "function") ref(node);
2235
+ else if (ref) ref.current = node;
2236
+ },
2237
+ [ref]
2238
+ );
2239
+ useEffect(() => {
2240
+ const el = containerRef.current;
2241
+ if (!el || !strokeColor) return;
2242
+ const paths = el.querySelectorAll("path, line, polyline, polygon, circle, ellipse, rect");
2243
+ paths.forEach((p2) => {
2244
+ p2.style.stroke = strokeColor;
2245
+ });
2246
+ }, [resolvedSvg, strokeColor]);
2247
+ useEffect(() => {
2248
+ const el = containerRef.current;
2249
+ if (!el || !resolvedSvg) return;
2250
+ if (animation === "draw" || animation === "fill") {
2251
+ const paths = el.querySelectorAll("path, line, polyline, polygon, circle, ellipse, rect");
2252
+ paths.forEach((p2) => {
2253
+ if ("getTotalLength" in p2 && typeof p2.getTotalLength === "function") {
2254
+ const len = p2.getTotalLength();
2255
+ p2.style.strokeDasharray = `${len}`;
2256
+ p2.style.strokeDashoffset = `${len}`;
2257
+ }
2258
+ if (animation === "fill") {
2259
+ p2.style.fillOpacity = "0";
2260
+ }
2261
+ });
2262
+ }
2263
+ if (animation === "morph") {
2264
+ const paths = el.querySelectorAll("path, circle, ellipse, rect, polygon");
2265
+ paths.forEach((p2) => {
2266
+ p2.style.transform = "scale(0)";
2267
+ p2.style.transformOrigin = "center";
2268
+ p2.style.opacity = "0";
2269
+ });
2270
+ }
2271
+ }, [resolvedSvg, animation]);
2272
+ useEffect(() => {
2273
+ const el = containerRef.current;
2274
+ if (!el) return;
2275
+ const id = requestAnimationFrame(() => {
2276
+ switch (animation) {
2277
+ case "draw":
2278
+ applyDrawAnimation(el, animate, duration, delay, easing);
2279
+ break;
2280
+ case "fill":
2281
+ applyFillAnimation(el, animate, duration, delay, easing, fillColor);
2282
+ break;
2283
+ case "pulse":
2284
+ applyPulseAnimation(el, animate, duration);
2285
+ break;
2286
+ case "morph":
2287
+ applyMorphAnimation(el, animate, duration, delay, easing);
2288
+ break;
2289
+ }
2290
+ });
2291
+ prevAnimateRef.current = animate;
2292
+ return () => cancelAnimationFrame(id);
2293
+ }, [animate, animation, duration, delay, easing, fillColor, resolvedSvg]);
2294
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2295
+ /* @__PURE__ */ jsx("style", { children: `@keyframes ag-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.04); opacity: 0.85; } }` }),
2296
+ /* @__PURE__ */ jsx(
2297
+ "div",
2298
+ {
2299
+ ref: setRef,
2300
+ className: cn("inline-flex items-center justify-center", className),
2301
+ style: { width, height, ...style },
2302
+ role: alt ? "img" : void 0,
2303
+ "aria-label": alt,
2304
+ ...props,
2305
+ children: resolvedSvg ? /* @__PURE__ */ jsx(
2306
+ "div",
2307
+ {
2308
+ className: "w-full h-full [&>svg]:w-full [&>svg]:h-full",
2309
+ dangerouslySetInnerHTML: { __html: resolvedSvg }
2310
+ }
2311
+ ) : children
2312
+ }
2313
+ )
2314
+ ] });
2315
+ }
2316
+ );
2317
+ AnimatedGraphic.displayName = "AnimatedGraphic";
2033
2318
 
2034
2319
  // locales/en.json
2035
2320
  var en_default = {
@@ -2176,16 +2461,16 @@ var ErrorState = ({
2176
2461
  className
2177
2462
  ),
2178
2463
  children: [
2179
- /* @__PURE__ */ jsx(Box, { className: "mb-4 rounded-[var(--radius-full)] bg-[var(--color-error)]/10 p-3", children: /* @__PURE__ */ jsx(AlertCircle, { className: "h-8 w-8 text-[var(--color-error)]" }) }),
2180
- /* @__PURE__ */ jsx(Typography, { variant: "h3", className: "text-lg font-medium text-[var(--color-foreground)]", children: resolvedTitle }),
2181
- /* @__PURE__ */ jsx(Typography, { variant: "small", className: "mt-1 text-[var(--color-muted-foreground)] max-w-sm", children: resolvedMessage }),
2464
+ /* @__PURE__ */ jsx(Box, { className: "mb-4 rounded-full bg-error/10 p-3", children: /* @__PURE__ */ jsx(AlertCircle, { className: "h-8 w-8 text-error" }) }),
2465
+ /* @__PURE__ */ jsx(Typography, { variant: "h3", className: "text-lg font-medium text-foreground", children: resolvedTitle }),
2466
+ /* @__PURE__ */ jsx(Typography, { variant: "small", className: "mt-1 text-muted-foreground max-w-sm", children: resolvedMessage }),
2182
2467
  (onRetry || retryEvent) && /* @__PURE__ */ jsx(Button, { variant: "secondary", className: "mt-4", onClick: handleRetry, children: t("error.retry") })
2183
2468
  ]
2184
2469
  }
2185
2470
  );
2186
2471
  };
2187
2472
  ErrorState.displayName = "ErrorState";
2188
- var ErrorBoundary = class extends React110__default.Component {
2473
+ var ErrorBoundary = class extends React112__default.Component {
2189
2474
  constructor(props) {
2190
2475
  super(props);
2191
2476
  __publicField(this, "reset", () => {
@@ -2613,29 +2898,41 @@ var defaultIcon = L.icon({
2613
2898
  L.Marker.prototype.options.icon = defaultIcon;
2614
2899
 
2615
2900
  // lib/verificationRegistry.ts
2616
- var checks = /* @__PURE__ */ new Map();
2617
- var transitions = [];
2618
2901
  var MAX_TRANSITIONS = 500;
2619
- var listeners = /* @__PURE__ */ new Set();
2902
+ function getState() {
2903
+ if (typeof window !== "undefined") {
2904
+ const w = window;
2905
+ if (!w.__verificationRegistryState) {
2906
+ w.__verificationRegistryState = {
2907
+ checks: /* @__PURE__ */ new Map(),
2908
+ transitions: [],
2909
+ bridgeHealth: null,
2910
+ listeners: /* @__PURE__ */ new Set()
2911
+ };
2912
+ }
2913
+ return w.__verificationRegistryState;
2914
+ }
2915
+ return { checks: /* @__PURE__ */ new Map(), transitions: [], bridgeHealth: null, listeners: /* @__PURE__ */ new Set() };
2916
+ }
2620
2917
  function notifyListeners() {
2621
- listeners.forEach((l) => l());
2918
+ getState().listeners.forEach((l) => l());
2622
2919
  exposeOnWindow();
2623
2920
  }
2624
2921
  function registerCheck(id, label, status = "pending", details) {
2625
- checks.set(id, { id, label, status, details, updatedAt: Date.now() });
2922
+ getState().checks.set(id, { id, label, status, details, updatedAt: Date.now() });
2626
2923
  notifyListeners();
2627
2924
  }
2628
2925
  function getAllChecks() {
2629
- return Array.from(checks.values());
2926
+ return Array.from(getState().checks.values());
2630
2927
  }
2631
2928
  function recordTransition(trace) {
2632
2929
  const entry = {
2633
2930
  ...trace,
2634
2931
  id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
2635
2932
  };
2636
- transitions.push(entry);
2637
- if (transitions.length > MAX_TRANSITIONS) {
2638
- transitions.shift();
2933
+ getState().transitions.push(entry);
2934
+ if (getState().transitions.length > MAX_TRANSITIONS) {
2935
+ getState().transitions.shift();
2639
2936
  }
2640
2937
  if (entry.event === "INIT") {
2641
2938
  const hasFetch = entry.effects.some((e) => e.type === "fetch");
@@ -2670,10 +2967,11 @@ function recordTransition(trace) {
2670
2967
  notifyListeners();
2671
2968
  }
2672
2969
  function getTransitions() {
2673
- return [...transitions];
2970
+ return [...getState().transitions];
2674
2971
  }
2675
2972
  function getBridgeHealth() {
2676
- return null;
2973
+ const bh = getState().bridgeHealth;
2974
+ return bh ? { ...bh } : null;
2677
2975
  }
2678
2976
  function getSummary() {
2679
2977
  const allChecks = getAllChecks();
@@ -2694,8 +2992,8 @@ function getSnapshot() {
2694
2992
  };
2695
2993
  }
2696
2994
  function subscribeToVerification(listener) {
2697
- listeners.add(listener);
2698
- return () => listeners.delete(listener);
2995
+ getState().listeners.add(listener);
2996
+ return () => getState().listeners.delete(listener);
2699
2997
  }
2700
2998
  function exposeOnWindow() {
2701
2999
  if (typeof window === "undefined") return;
@@ -2712,7 +3010,7 @@ function exposeOnWindow() {
2712
3010
  }
2713
3011
  function waitForTransition(event, timeoutMs = 1e4) {
2714
3012
  return new Promise((resolve) => {
2715
- const existing = transitions.find((t) => t.event === event);
3013
+ const existing = getState().transitions.find((t) => t.event === event);
2716
3014
  if (existing) {
2717
3015
  resolve(existing);
2718
3016
  return;
@@ -2722,7 +3020,7 @@ function waitForTransition(event, timeoutMs = 1e4) {
2722
3020
  resolve(null);
2723
3021
  }, timeoutMs);
2724
3022
  const unsub = subscribeToVerification(() => {
2725
- const found = transitions.find((t) => t.event === event);
3023
+ const found = getState().transitions.find((t) => t.event === event);
2726
3024
  if (found) {
2727
3025
  clearTimeout(timeout);
2728
3026
  unsub();
@@ -2765,7 +3063,7 @@ function bindTraitStateGetter(getter) {
2765
3063
  }
2766
3064
  }
2767
3065
  exposeOnWindow();
2768
- var MarkdownContent = React110__default.memo(
3066
+ var MarkdownContent = React112__default.memo(
2769
3067
  ({ content, direction, className }) => {
2770
3068
  const { t: _t } = useTranslate();
2771
3069
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -2852,7 +3150,7 @@ var MarkdownContent = React110__default.memo(
2852
3150
  "blockquote",
2853
3151
  {
2854
3152
  ...props,
2855
- className: "border-l-4 border-blue-500 pl-4 italic text-[var(--color-foreground)] my-4",
3153
+ className: "border-l-4 border-blue-500 pl-4 italic text-foreground my-4",
2856
3154
  children
2857
3155
  }
2858
3156
  );
@@ -2867,7 +3165,7 @@ var MarkdownContent = React110__default.memo(
2867
3165
  (prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
2868
3166
  );
2869
3167
  MarkdownContent.displayName = "MarkdownContent";
2870
- var CodeBlock = React110__default.memo(
3168
+ var CodeBlock = React112__default.memo(
2871
3169
  ({
2872
3170
  code: rawCode,
2873
3171
  language = "text",
@@ -2927,7 +3225,7 @@ var CodeBlock = React110__default.memo(
2927
3225
  variant: "ghost",
2928
3226
  size: "sm",
2929
3227
  onClick: handleCopy,
2930
- className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-[var(--color-muted-foreground)] hover:text-white",
3228
+ className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-white",
2931
3229
  "aria-label": "Copy code",
2932
3230
  children: copied ? /* @__PURE__ */ jsx(Check, { size: 16, className: "text-green-400" }) : /* @__PURE__ */ jsx(Copy, { size: 16 })
2933
3231
  }
@@ -2984,12 +3282,12 @@ GameAudioContext.displayName = "GameAudioContext";
2984
3282
 
2985
3283
  // components/organisms/component-registry.generated.ts
2986
3284
  function lazyThree(name, loader) {
2987
- const Lazy = React110__default.lazy(() => loader().then((m) => ({ default: m[name] })));
3285
+ const Lazy = React112__default.lazy(() => loader().then((m) => ({ default: m[name] })));
2988
3286
  function ThreeWrapper(props) {
2989
- return React110__default.createElement(
2990
- React110__default.Suspense,
3287
+ return React112__default.createElement(
3288
+ React112__default.Suspense,
2991
3289
  { fallback: null },
2992
- React110__default.createElement(Lazy, props)
3290
+ React112__default.createElement(Lazy, props)
2993
3291
  );
2994
3292
  }
2995
3293
  ThreeWrapper.displayName = `Lazy(${name})`;
@@ -3016,7 +3314,7 @@ function SuspenseConfigProvider({
3016
3314
  config,
3017
3315
  children
3018
3316
  }) {
3019
- return React110__default.createElement(
3317
+ return React112__default.createElement(
3020
3318
  SuspenseConfigContext.Provider,
3021
3319
  { value: config },
3022
3320
  children
@@ -3089,7 +3387,7 @@ function VerificationProvider({
3089
3387
  })) : [];
3090
3388
  recordTransition({
3091
3389
  traitName: parsed.traitName,
3092
- from: pending?.from ?? "unknown",
3390
+ from: pending?.from ?? payload["currentState"] ?? newState,
3093
3391
  to: newState,
3094
3392
  event: parsed.event,
3095
3393
  effects,
@@ -3100,10 +3398,11 @@ function VerificationProvider({
3100
3398
  const pending = pendingRef.current.get(key);
3101
3399
  pendingRef.current.delete(key);
3102
3400
  const errorMsg = payload["error"] ?? "Unknown error";
3401
+ const fromState = pending?.from ?? payload["currentState"] ?? "unknown";
3103
3402
  recordTransition({
3104
3403
  traitName: parsed.traitName,
3105
- from: pending?.from ?? "unknown",
3106
- to: pending?.from ?? "unknown",
3404
+ from: fromState,
3405
+ to: fromState,
3107
3406
  // state didn't change on error
3108
3407
  event: parsed.event,
3109
3408
  effects: [{