@underverse-ui/underverse 0.2.20 → 0.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -970,7 +970,7 @@ interface SmartImageProps {
970
970
  alt: string;
971
971
  className?: string;
972
972
  /**
973
- * Aspect ratio utility class, e.g. `aspect-square`, `aspect-[4/3]`.
973
+ * Aspect ratio utility class, e.g. `aspect-square`, `aspect-4/3`.
974
974
  * If provided with `fill`, the wrapper enforces the ratio.
975
975
  */
976
976
  ratioClass?: string;
@@ -1170,7 +1170,7 @@ interface WatermarkProps extends React$1.HTMLAttributes<HTMLDivElement> {
1170
1170
  blur?: boolean;
1171
1171
  /** Blur amount in pixels */
1172
1172
  blurAmount?: number;
1173
- /** Enable text shadow/glow */
1173
+ /** Enable text shadow */
1174
1174
  textShadow?: boolean;
1175
1175
  /** Text shadow color */
1176
1176
  shadowColor?: string;
package/dist/index.d.ts CHANGED
@@ -970,7 +970,7 @@ interface SmartImageProps {
970
970
  alt: string;
971
971
  className?: string;
972
972
  /**
973
- * Aspect ratio utility class, e.g. `aspect-square`, `aspect-[4/3]`.
973
+ * Aspect ratio utility class, e.g. `aspect-square`, `aspect-4/3`.
974
974
  * If provided with `fill`, the wrapper enforces the ratio.
975
975
  */
976
976
  ratioClass?: string;
@@ -1170,7 +1170,7 @@ interface WatermarkProps extends React$1.HTMLAttributes<HTMLDivElement> {
1170
1170
  blur?: boolean;
1171
1171
  /** Blur amount in pixels */
1172
1172
  blurAmount?: number;
1173
- /** Enable text shadow/glow */
1173
+ /** Enable text shadow */
1174
1174
  textShadow?: boolean;
1175
1175
  /** Text shadow color */
1176
1176
  shadowColor?: string;
package/dist/index.js CHANGED
@@ -27,13 +27,13 @@ var VARIANT_STYLES_BTN = {
27
27
  // Link: chỉ văn bản
28
28
  link: "text-primary bg-transparent underline-offset-4 hover:underline hover:text-primary/85 transition-colors",
29
29
  // Gradient: tuỳ chọn, giảm shadow
30
- gradient: "bg-gradient-to-r from-primary via-secondary to-accent text-primary-foreground hover:opacity-90 shadow-sm border border-primary/10"
30
+ gradient: "bg-linear-to-r from-primary via-secondary to-accent text-primary-foreground hover:opacity-90 shadow-sm border border-primary/10"
31
31
  };
32
32
  var SIZE_STYLES_BTN = {
33
- sm: "px-3 py-1.5 text-sm h-8 min-w-[2rem] md:px-2.5 md:py-1 md:h-7 md:text-xs",
34
- md: "px-4 py-2 text-sm h-10 min-w-[2.5rem] md:px-3 md:py-1.5 md:h-9",
35
- lg: "px-6 py-3 text-base h-12 min-w-[3rem] md:px-4 md:py-2 md:h-10 md:text-sm",
36
- smx: "px-3.5 py-1.5 text-[13px] h-9 min-w-[2.25rem] md:px-3 md:py-1 md:h-8 md:text-xs",
33
+ sm: "px-3 py-1.5 text-sm h-8 min-w-8 md:px-2.5 md:py-1 md:h-7 md:text-xs",
34
+ md: "px-4 py-2 text-sm h-10 min-w-10 md:px-3 md:py-1.5 md:h-9",
35
+ lg: "px-6 py-3 text-base h-12 min-w-12 md:px-4 md:py-2 md:h-10 md:text-sm",
36
+ smx: "px-3.5 py-1.5 text-[13px] h-9 min-w-9 md:px-3 md:py-1 md:h-8 md:text-xs",
37
37
  icon: "w-11 h-11 p-0 rounded-full flex items-center justify-center md:w-10 md:h-10"
38
38
  };
39
39
 
@@ -134,7 +134,7 @@ var Button = forwardRef(
134
134
  "aria-label": rest["aria-label"] || title,
135
135
  ...rest,
136
136
  children: [
137
- !noHoverOverlay && /* @__PURE__ */ jsx("span", { className: "absolute inset-0 bg-gradient-to-r from-primary-foreground/20 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-200 dark:hidden" }),
137
+ !noHoverOverlay && /* @__PURE__ */ jsx("span", { className: "absolute inset-0 bg-linear-to-r from-primary-foreground/20 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-200 dark:hidden" }),
138
138
  loading2 ? /* @__PURE__ */ jsxs(Fragment, { children: [
139
139
  /* @__PURE__ */ jsx(SpinnerIcon, { className: "w-4 h-4 animate-spin" }),
140
140
  loadingText && /* @__PURE__ */ jsx("span", { className: "ml-2", "aria-live": "polite", children: loadingText }),
@@ -166,7 +166,7 @@ var variantStyles = {
166
166
  outline: "bg-transparent text-foreground border-border hover:bg-accent/50",
167
167
  ghost: "bg-transparent hover:bg-accent/20 hover:text-accent-foreground border-transparent transition-colors",
168
168
  transparent: "bg-transparent text-foreground border-transparent hover:bg-accent/30",
169
- gradient: "bg-gradient-to-r from-primary to-secondary text-primary-foreground border-transparent hover:from-primary/90 hover:to-secondary/90"
169
+ gradient: "bg-linear-to-r from-primary to-secondary text-primary-foreground border-transparent hover:from-primary/90 hover:to-secondary/90"
170
170
  };
171
171
  var sizeStyles = {
172
172
  xs: "px-1.5 py-0.5 text-xs font-medium min-h-[18px]",
@@ -243,12 +243,12 @@ var Badge = ({
243
243
  className: cn(
244
244
  baseClasses,
245
245
  "justify-center rounded-full",
246
- "min-w-[1.5rem] h-6 px-1.5 text-xs font-bold",
247
- size === "xs" && "min-w-[1.25rem] h-5 px-1 text-xs",
248
- size === "sm" && "min-w-[1.5rem] h-6 px-1.5 text-xs",
249
- size === "md" && "min-w-[1.75rem] h-7 px-2 text-xs",
250
- size === "lg" && "min-w-[2rem] h-8 px-2.5 text-sm",
251
- size === "xl" && "min-w-[2.25rem] h-9 px-3 text-sm",
246
+ "min-w-6 h-6 px-1.5 text-xs font-bold",
247
+ size === "xs" && "min-w-5 h-5 px-1 text-xs",
248
+ size === "sm" && "min-w-6 h-6 px-1.5 text-xs",
249
+ size === "md" && "min-w-7 h-7 px-2 text-xs",
250
+ size === "lg" && "min-w-8 h-8 px-2.5 text-sm",
251
+ size === "xl" && "min-w-9 h-9 px-3 text-sm",
252
252
  className
253
253
  ),
254
254
  onClick: handleClick,
@@ -263,7 +263,7 @@ var Badge = ({
263
263
  Icon,
264
264
  {
265
265
  className: cn(
266
- "flex-shrink-0",
266
+ "shrink-0",
267
267
  size === "xs" && "h-3 w-3",
268
268
  size === "sm" && "h-3 w-3",
269
269
  size === "md" && "h-4 w-4",
@@ -279,7 +279,7 @@ var Badge = ({
279
279
  onClick: handleRemove,
280
280
  className: cn(
281
281
  "ml-1 rounded-full hover:bg-accent focus:outline-none focus:bg-accent",
282
- "transition-colors duration-150 flex-shrink-0",
282
+ "transition-colors duration-150 shrink-0",
283
283
  size === "xs" && "h-3 w-3",
284
284
  size === "sm" && "h-3 w-3",
285
285
  size === "md" && "h-4 w-4",
@@ -368,7 +368,7 @@ var GradientBadge = ({ from = "from-primary", to = "to-secondary", className, ..
368
368
  {
369
369
  ...props,
370
370
  variant: "transparent",
371
- className: cn(`bg-gradient-to-r ${from} ${to} text-primary-foreground border-transparent`, "hover:opacity-90", className)
371
+ className: cn(`bg-linear-to-r ${from} ${to} text-primary-foreground border-transparent`, "hover:opacity-90", className)
372
372
  }
373
373
  );
374
374
  };
@@ -407,7 +407,7 @@ var Card = ({ title, description, children, footer, className, hoverable = false
407
407
  "div",
408
408
  {
409
409
  className: cn(
410
- "absolute inset-0 bg-gradient-to-br from-primary/5 to-transparent transition-opacity duration-300",
410
+ "absolute inset-0 bg-linear-to-br from-primary/5 to-transparent transition-opacity duration-300",
411
411
  isHovered ? "opacity-100" : "opacity-0"
412
412
  )
413
413
  }
@@ -725,7 +725,7 @@ var Input = forwardRef3(
725
725
  "div",
726
726
  {
727
727
  className: cn(
728
- "absolute bottom-0 left-0 h-0.5 bg-gradient-to-r from-primary to-primary/60 transition-all duration-300",
728
+ "absolute bottom-0 left-0 h-0.5 bg-linear-to-r from-primary to-primary/60 transition-all duration-300",
729
729
  // default hidden
730
730
  "w-0 opacity-0",
731
731
  // expand underline when focused within input container
@@ -735,7 +735,7 @@ var Input = forwardRef3(
735
735
  )
736
736
  ] }),
737
737
  errMsg && /* @__PURE__ */ jsxs5("div", { id: errorId, className: "flex items-center gap-2 text-sm text-destructive animate-in slide-in-from-top-1 duration-200", children: [
738
- /* @__PURE__ */ jsx5(AlertCircle, { className: "w-4 h-4 flex-shrink-0" }),
738
+ /* @__PURE__ */ jsx5(AlertCircle, { className: "w-4 h-4 shrink-0" }),
739
739
  /* @__PURE__ */ jsx5("span", { children: errMsg })
740
740
  ] }),
741
741
  (description || hint) && !errMsg && /* @__PURE__ */ jsx5(
@@ -919,7 +919,7 @@ var NumberInput = forwardRef3(
919
919
  "text-muted-foreground hover:text-foreground"
920
920
  ),
921
921
  "aria-label": "Increase value",
922
- children: /* @__PURE__ */ jsx5("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", className: "flex-shrink-0", children: /* @__PURE__ */ jsx5("path", { d: "M4 2L6 6H2L4 2Z", fill: "currentColor" }) })
922
+ children: /* @__PURE__ */ jsx5("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", className: "shrink-0", children: /* @__PURE__ */ jsx5("path", { d: "M4 2L6 6H2L4 2Z", fill: "currentColor" }) })
923
923
  }
924
924
  ),
925
925
  /* @__PURE__ */ jsx5(
@@ -935,7 +935,7 @@ var NumberInput = forwardRef3(
935
935
  "text-muted-foreground hover:text-foreground"
936
936
  ),
937
937
  "aria-label": "Decrease value",
938
- children: /* @__PURE__ */ jsx5("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", className: "flex-shrink-0", children: /* @__PURE__ */ jsx5("path", { d: "M4 6L2 2H6L4 6Z", fill: "currentColor" }) })
938
+ children: /* @__PURE__ */ jsx5("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", className: "shrink-0", children: /* @__PURE__ */ jsx5("path", { d: "M4 6L2 2H6L4 6Z", fill: "currentColor" }) })
939
939
  }
940
940
  )
941
941
  ] })
@@ -1016,7 +1016,7 @@ var Textarea = forwardRef3(
1016
1016
  }
1017
1017
  ),
1018
1018
  error && /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-2 text-sm text-destructive animate-in slide-in-from-top-1 duration-200", children: [
1019
- /* @__PURE__ */ jsx5(AlertCircle, { className: "w-4 h-4 flex-shrink-0" }),
1019
+ /* @__PURE__ */ jsx5(AlertCircle, { className: "w-4 h-4 shrink-0" }),
1020
1020
  /* @__PURE__ */ jsx5("span", { children: error })
1021
1021
  ] }),
1022
1022
  description && !error && /* @__PURE__ */ jsx5("p", { className: cn("text-xs transition-colors duration-200", isFocused ? "text-primary/70" : "text-muted-foreground"), children: description })
@@ -1089,7 +1089,7 @@ var Textarea2 = forwardRef4(
1089
1089
  }
1090
1090
  ),
1091
1091
  variant === "default" && /* @__PURE__ */ jsx6("div", { className: cn(
1092
- "absolute bottom-0 left-0 h-0.5 bg-gradient-to-r from-primary to-primary/60 transition-all duration-300 ease-soft",
1092
+ "absolute bottom-0 left-0 h-0.5 bg-linear-to-r from-primary to-primary/60 transition-all duration-300 ease-soft",
1093
1093
  isFocused ? "w-full opacity-100" : "w-0 opacity-0"
1094
1094
  ) }),
1095
1095
  isFocused && variant !== "outlined" && /* @__PURE__ */ jsx6("div", { className: "absolute inset-0 rounded-lg bg-primary/5 -z-10 animate-pulse" })
@@ -1440,7 +1440,7 @@ var Avatar = ({ src, alt = "avatar", fallback = "?", size = "md", className, onC
1440
1440
  "span",
1441
1441
  {
1442
1442
  className: cn(
1443
- "font-bold uppercase bg-gradient-to-br from-primary to-primary/80 bg-clip-text text-transparent",
1443
+ "font-bold uppercase bg-linear-to-br from-primary to-primary/80 bg-clip-text text-transparent",
1444
1444
  "transition-all duration-200 animate-fade-in"
1445
1445
  ),
1446
1446
  children: fallback
@@ -1471,7 +1471,7 @@ var Skeleton = ({
1471
1471
  };
1472
1472
  const animationClasses = {
1473
1473
  pulse: "animate-pulse",
1474
- wave: "animate-shimmer bg-gradient-to-r from-muted via-muted/50 to-muted bg-[length:200%_100%]",
1474
+ wave: "animate-shimmer bg-linear-to-r from-muted via-muted/50 to-muted bg-size-[200%_100%]",
1475
1475
  none: ""
1476
1476
  };
1477
1477
  if (variant === "text" && lines > 1) {
@@ -1660,11 +1660,11 @@ import { Check as Check2, X as X2, Clock } from "lucide-react";
1660
1660
  import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
1661
1661
  var variantStyles2 = {
1662
1662
  default: "bg-muted-foreground",
1663
- primary: "bg-gradient-to-r from-primary via-primary/90 to-primary",
1664
- success: "bg-gradient-to-r from-success via-success/90 to-success shadow-sm shadow-success/20",
1665
- warning: "bg-gradient-to-r from-warning via-warning/90 to-warning shadow-sm shadow-warning/20",
1666
- danger: "bg-gradient-to-r from-destructive via-destructive/90 to-destructive shadow-sm shadow-destructive/20",
1667
- info: "bg-gradient-to-r from-info via-info/90 to-info shadow-sm shadow-info/20"
1663
+ primary: "bg-linear-to-r from-primary via-primary/90 to-primary",
1664
+ success: "bg-linear-to-r from-success via-success/90 to-success shadow-sm shadow-success/20",
1665
+ warning: "bg-linear-to-r from-warning via-warning/90 to-warning shadow-sm shadow-warning/20",
1666
+ danger: "bg-linear-to-r from-destructive via-destructive/90 to-destructive shadow-sm shadow-destructive/20",
1667
+ info: "bg-linear-to-r from-info via-info/90 to-info shadow-sm shadow-info/20"
1668
1668
  };
1669
1669
  var sizeStyles2 = {
1670
1670
  sm: "h-1.5",
@@ -1733,12 +1733,12 @@ var Progress = ({
1733
1733
  "before:absolute before:inset-0 before:rounded-full before:opacity-30",
1734
1734
  indeterminate && "animate-pulse",
1735
1735
  !indeterminate && variantStyles2[variant],
1736
- isComplete && "bg-gradient-to-r from-success via-success/90 to-success shadow-sm shadow-success/20",
1737
- isError && "bg-gradient-to-r from-destructive via-destructive/90 to-destructive shadow-sm shadow-destructive/20",
1738
- striped && "bg-gradient-to-r from-transparent via-primary-foreground/20 to-transparent bg-[length:1rem_1rem]",
1736
+ isComplete && "bg-linear-to-r from-success via-success/90 to-success shadow-sm shadow-success/20",
1737
+ isError && "bg-linear-to-r from-destructive via-destructive/90 to-destructive shadow-sm shadow-destructive/20",
1738
+ striped && "bg-linear-to-r from-transparent via-primary-foreground/20 to-transparent bg-size-[1rem_1rem]",
1739
1739
  animated && !indeterminate && "before:animate-pulse",
1740
1740
  // Shimmer effect for indeterminate
1741
- indeterminate && "bg-gradient-to-r from-muted via-primary/50 to-muted bg-[length:200%_100%] animate-[shimmer_2s_infinite]"
1741
+ indeterminate && "bg-linear-to-r from-muted via-primary/50 to-muted bg-size-[200%_100%] animate-[shimmer_2s_infinite]"
1742
1742
  ),
1743
1743
  style: {
1744
1744
  width: indeterminate ? "100%" : `${percentage}%`,
@@ -1948,7 +1948,7 @@ var MiniProgress = ({
1948
1948
  )
1949
1949
  }
1950
1950
  ),
1951
- showValue && /* @__PURE__ */ jsxs10("span", { className: "text-xs font-medium text-muted-foreground min-w-[2.5rem] text-right", children: [
1951
+ showValue && /* @__PURE__ */ jsxs10("span", { className: "text-xs font-medium text-muted-foreground min-w-10 text-right", children: [
1952
1952
  Math.round(percentage),
1953
1953
  "%"
1954
1954
  ] })
@@ -2182,7 +2182,7 @@ var Modal = ({
2182
2182
  return null;
2183
2183
  }
2184
2184
  const maxWidthClass = width ? "max-w-none" : fullWidth ? "max-w-full" : sizeStyles3[size];
2185
- const modalContent = /* @__PURE__ */ jsxs11("div", { className: cn("fixed inset-0 z-[9999] flex items-center justify-center", overlayClassName), onClick: handleOverlayClick, children: [
2185
+ const modalContent = /* @__PURE__ */ jsxs11("div", { className: cn("fixed inset-0 z-9999 flex items-center justify-center", overlayClassName), onClick: handleOverlayClick, children: [
2186
2186
  /* @__PURE__ */ jsx13(
2187
2187
  "div",
2188
2188
  {
@@ -2283,7 +2283,7 @@ var ToastProvider = ({ children, position = "top-right", maxToasts = 5 }) => {
2283
2283
  };
2284
2284
  return /* @__PURE__ */ jsxs12(ToastContext.Provider, { value: { addToast, removeToast, toasts }, children: [
2285
2285
  children,
2286
- /* @__PURE__ */ jsx14("div", { className: cn("fixed z-[99999] flex flex-col gap-2 pointer-events-none", positionClasses[position]), "aria-live": "polite", "aria-atomic": true, children: toasts.map((toast) => /* @__PURE__ */ jsx14(ToastComponent, { toast, onRemove: removeToast }, toast.id)) })
2286
+ /* @__PURE__ */ jsx14("div", { className: cn("fixed z-99999 flex flex-col gap-2 pointer-events-none", positionClasses[position]), "aria-live": "polite", "aria-atomic": true, children: toasts.map((toast) => /* @__PURE__ */ jsx14(ToastComponent, { toast, onRemove: removeToast }, toast.id)) })
2287
2287
  ] });
2288
2288
  };
2289
2289
  var ToastComponent = ({ toast, onRemove }) => {
@@ -2517,7 +2517,7 @@ var Tooltip = ({
2517
2517
  },
2518
2518
  className: cn(
2519
2519
  "px-3 py-2 text-sm font-medium rounded-lg shadow-lg border",
2520
- "max-w-xs break-words backdrop-blur-sm",
2520
+ "max-w-xs wrap-break-word backdrop-blur-sm",
2521
2521
  variantStyles3[variant],
2522
2522
  className
2523
2523
  ),
@@ -2872,7 +2872,7 @@ var Popover = ({
2872
2872
  role: "dialog",
2873
2873
  "aria-modal": modal || void 0,
2874
2874
  className: cn(
2875
- "z-[9999]",
2875
+ "z-9999",
2876
2876
  // shadcn-like enter animation
2877
2877
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
2878
2878
  className
@@ -3081,7 +3081,7 @@ var Sheet = ({
3081
3081
  transition: "transform 300ms cubic-bezier(0.4, 0, 0.2, 1)"
3082
3082
  },
3083
3083
  children: [
3084
- (title || description || header || showClose) && /* @__PURE__ */ jsx17("div", { className: "flex-shrink-0 border-b border-border", children: header || /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between p-4", children: [
3084
+ (title || description || header || showClose) && /* @__PURE__ */ jsx17("div", { className: "shrink-0 border-b border-border", children: header || /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between p-4", children: [
3085
3085
  /* @__PURE__ */ jsxs15("div", { className: "flex-1", children: [
3086
3086
  title && /* @__PURE__ */ jsx17("h2", { className: "text-lg font-semibold text-foreground", children: title }),
3087
3087
  description && /* @__PURE__ */ jsx17("p", { className: "text-sm text-muted-foreground mt-1", children: description })
@@ -3100,7 +3100,7 @@ var Sheet = ({
3100
3100
  children
3101
3101
  }
3102
3102
  ),
3103
- footer && /* @__PURE__ */ jsx17("div", { className: "flex-shrink-0 border-t border-border p-4", children: footer })
3103
+ footer && /* @__PURE__ */ jsx17("div", { className: "shrink-0 border-t border-border p-4", children: footer })
3104
3104
  ]
3105
3105
  }
3106
3106
  )
@@ -3165,7 +3165,7 @@ var Alert = ({ title, description, variant = "default", className, icon, dismiss
3165
3165
  /* @__PURE__ */ jsx18("div", { className: "pt-1", children: icon ?? variantIcons[variant] }),
3166
3166
  /* @__PURE__ */ jsxs16("div", { className: "flex-1 min-w-0", children: [
3167
3167
  title && /* @__PURE__ */ jsx18("p", { className: "font-semibold text-sm leading-none mb-1 text-foreground", children: title }),
3168
- description && (typeof description === "string" ? /* @__PURE__ */ jsx18("p", { className: "text-sm text-muted-foreground leading-relaxed break-words", children: description }) : /* @__PURE__ */ jsx18("div", { className: "text-sm text-muted-foreground leading-relaxed break-words", children: description })),
3168
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx18("p", { className: "text-sm text-muted-foreground leading-relaxed wrap-break-word", children: description }) : /* @__PURE__ */ jsx18("div", { className: "text-sm text-muted-foreground leading-relaxed wrap-break-word", children: description })),
3169
3169
  actions && /* @__PURE__ */ jsx18("div", { className: "mt-2 flex flex-wrap gap-2", children: actions })
3170
3170
  ] }),
3171
3171
  dismissible && /* @__PURE__ */ jsx18(
@@ -3247,7 +3247,7 @@ var GlobalLoading = ({
3247
3247
  "div",
3248
3248
  {
3249
3249
  className: cn(
3250
- "inset-0 z-[100000] flex items-center justify-center",
3250
+ "inset-0 z-100000 flex items-center justify-center",
3251
3251
  position === "fixed" ? "fixed" : "absolute",
3252
3252
  backdrop && "bg-background/90 backdrop-blur-sm",
3253
3253
  className
@@ -3684,7 +3684,7 @@ var VerticalTabs = ({
3684
3684
  className,
3685
3685
  ...props
3686
3686
  }) => {
3687
- return /* @__PURE__ */ jsx21("div", { className: cn("flex gap-6", className), children: /* @__PURE__ */ jsx21("div", { className: cn(sidebarWidth, "flex-shrink-0"), children: /* @__PURE__ */ jsx21(
3687
+ return /* @__PURE__ */ jsx21("div", { className: cn("flex gap-6", className), children: /* @__PURE__ */ jsx21("div", { className: cn(sidebarWidth, "shrink-0"), children: /* @__PURE__ */ jsx21(
3688
3688
  Tabs,
3689
3689
  {
3690
3690
  ...props,
@@ -4148,7 +4148,7 @@ var Combobox = ({
4148
4148
  "outline-none focus:outline-none focus-visible:outline-none",
4149
4149
  "hover:bg-accent hover:text-accent-foreground",
4150
4150
  "focus:bg-accent focus:text-accent-foreground",
4151
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4151
+ "data-disabled:pointer-events-none data-disabled:opacity-50",
4152
4152
  index === activeIndex && "bg-accent text-accent-foreground",
4153
4153
  isSelected && "bg-accent text-accent-foreground"
4154
4154
  ),
@@ -4379,7 +4379,7 @@ var Pagination = ({
4379
4379
  size,
4380
4380
  onClick: () => onChange(pageNumber),
4381
4381
  disabled,
4382
- className: cn("min-w-[2.5rem]", isActive && "font-semibold"),
4382
+ className: cn("min-w-10", isActive && "font-semibold"),
4383
4383
  "aria-label": labels?.pageNumber ? labels.pageNumber(pageNumber) : t("pageNumber", { page: pageNumber }),
4384
4384
  "aria-current": isActive ? "page" : void 0,
4385
4385
  children: pageNumber
@@ -4515,7 +4515,7 @@ var CompactPagination = ({
4515
4515
  title: "Previous page"
4516
4516
  }
4517
4517
  ),
4518
- /* @__PURE__ */ jsxs22("div", { className: "px-2 py-1 text-sm text-muted-foreground min-w-[4rem] text-center", children: [
4518
+ /* @__PURE__ */ jsxs22("div", { className: "px-2 py-1 text-sm text-muted-foreground min-w-16 text-center", children: [
4519
4519
  page,
4520
4520
  " / ",
4521
4521
  totalPages
@@ -4916,7 +4916,7 @@ var DatePicker = ({
4916
4916
  size === "sm" ? "w-7 h-7 text-[12px]" : "w-8 h-8 text-sm",
4917
4917
  "datepicker-day rounded-md focus:outline-none",
4918
4918
  "transition-colors",
4919
- isSelected ? "!bg-primary text-primary-foreground font-bold ring-2 ring-primary-foreground/60 shadow-lg scale-105 z-10 hover:!bg-primary focus:!bg-primary focus:text-primary-foreground" : "hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
4919
+ isSelected ? "bg-primary! text-primary-foreground font-bold ring-2 ring-primary-foreground/60 shadow-lg scale-105 z-10 hover:bg-primary! focus:bg-primary! focus:text-primary-foreground" : "hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
4920
4920
  isToday2 && !isSelected && "bg-accent text-accent-foreground font-semibold"
4921
4921
  ),
4922
4922
  children: day
@@ -4941,7 +4941,7 @@ var DatePicker = ({
4941
4941
  },
4942
4942
  "data-state": isOpen ? "open" : "closed",
4943
4943
  className: cn(
4944
- "z-[9999]",
4944
+ "z-9999",
4945
4945
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
4946
4946
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95"
4947
4947
  ),
@@ -5204,7 +5204,7 @@ var DateRangePicker = ({ startDate, endDate, onChange, placeholder = "Select dat
5204
5204
  style: { position: "absolute", top: dropdownPosition.top, left: dropdownPosition.left, width: dropdownPosition.width || 256, zIndex: 9999 },
5205
5205
  "data-state": isOpen ? "open" : "closed",
5206
5206
  className: cn(
5207
- "z-[9999]",
5207
+ "z-9999",
5208
5208
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
5209
5209
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95"
5210
5210
  ),
@@ -5849,11 +5849,11 @@ function TimePicker({
5849
5849
  ),
5850
5850
  (error || success || helperText) && /* @__PURE__ */ jsxs24("div", { className: cn("mt-1.5 flex items-start gap-1.5", sz.label), children: [
5851
5851
  error && /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-1.5 text-destructive", children: [
5852
- /* @__PURE__ */ jsx28(X8, { className: "w-3.5 h-3.5 flex-shrink-0" }),
5852
+ /* @__PURE__ */ jsx28(X8, { className: "w-3.5 h-3.5 shrink-0" }),
5853
5853
  /* @__PURE__ */ jsx28("span", { children: error })
5854
5854
  ] }),
5855
5855
  success && !error && /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-1.5 text-green-600", children: [
5856
- /* @__PURE__ */ jsx28(Check4, { className: "w-3.5 h-3.5 flex-shrink-0" }),
5856
+ /* @__PURE__ */ jsx28(Check4, { className: "w-3.5 h-3.5 shrink-0" }),
5857
5857
  /* @__PURE__ */ jsx28("span", { children: "Valid time selected" })
5858
5858
  ] }),
5859
5859
  helperText && !error && !success && /* @__PURE__ */ jsx28("span", { className: "text-muted-foreground", children: helperText })
@@ -6342,13 +6342,13 @@ var MultiCombobox = ({
6342
6342
  setOpen(next);
6343
6343
  },
6344
6344
  className: cn(
6345
- "flex w-full items-center gap-2 rounded-lg border border-input bg-background shadow-sm min-h-[2.5rem]",
6345
+ "flex w-full items-center gap-2 rounded-lg border border-input bg-background shadow-sm min-h-10",
6346
6346
  "px-3 py-2",
6347
6347
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
6348
6348
  "disabled:cursor-not-allowed disabled:opacity-50"
6349
6349
  ),
6350
6350
  children: [
6351
- /* @__PURE__ */ jsx30("div", { className: "flex items-center gap-1 flex-wrap min-h-[1.5rem] flex-1", children: value.length > 0 ? showTags ? value.map((itemValue) => {
6351
+ /* @__PURE__ */ jsx30("div", { className: "flex items-center gap-1 flex-wrap min-h-6 flex-1", children: value.length > 0 ? showTags ? value.map((itemValue) => {
6352
6352
  const option = normalizedOptions.find((o) => o.value === itemValue);
6353
6353
  return /* @__PURE__ */ jsxs26("span", { className: "inline-flex items-center gap-1 bg-accent text-accent-foreground rounded px-2 py-1 text-xs", children: [
6354
6354
  /* @__PURE__ */ jsx30("span", { className: "truncate max-w-[120px]", children: option ? displayFormat(option) : itemValue }),
@@ -6864,7 +6864,7 @@ var Slider = React26.forwardRef(
6864
6864
  return /* @__PURE__ */ jsxs28("div", { className: cn("w-full space-y-2", containerClassName), children: [
6865
6865
  (label || showValue) && /* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-between", children: [
6866
6866
  label && /* @__PURE__ */ jsx32("label", { className: cn("text-sm font-medium text-foreground", labelClassName), children: label }),
6867
- showValue && /* @__PURE__ */ jsx32("span", { className: cn("text-xs font-mono text-muted-foreground min-w-[2rem] text-right", valueClassName), children: displayValue })
6867
+ showValue && /* @__PURE__ */ jsx32("span", { className: cn("text-xs font-mono text-muted-foreground min-w-8 text-right", valueClassName), children: displayValue })
6868
6868
  ] }),
6869
6869
  /* @__PURE__ */ jsxs28("div", { className: cn("relative flex items-center", sizeStyles8.container), children: [
6870
6870
  /* @__PURE__ */ jsx32("div", { className: cn("w-full rounded-full bg-secondary relative overflow-hidden", sizeStyles8.track, trackClassName), children: /* @__PURE__ */ jsx32(
@@ -7201,7 +7201,7 @@ function OverlayControls({
7201
7201
  "div",
7202
7202
  {
7203
7203
  className: cn(
7204
- "absolute bottom-0 left-0 right-0 pb-2 pt-8 bg-gradient-to-t from-black/40 to-transparent z-20 transition-opacity duration-200",
7204
+ "absolute bottom-0 left-0 right-0 pb-2 pt-8 bg-linear-to-t from-black/40 to-transparent z-20 transition-opacity duration-200",
7205
7205
  hoverClasses,
7206
7206
  autoHide && !controlsVisible && "opacity-0 pointer-events-none",
7207
7207
  className
@@ -7929,7 +7929,7 @@ function Carousel({
7929
7929
  "div",
7930
7930
  {
7931
7931
  className: cn(
7932
- "flex-shrink-0",
7932
+ "shrink-0",
7933
7933
  isHorizontal ? "h-full" : "w-full",
7934
7934
  animation === "fade" && idx !== currentIndex && "opacity-0",
7935
7935
  animation === "scale" && idx !== currentIndex && "scale-95",
@@ -8012,7 +8012,7 @@ function Carousel({
8012
8012
  "div",
8013
8013
  {
8014
8014
  className: cn(
8015
- "absolute bottom-0 left-0 right-0 flex gap-2 p-4 bg-gradient-to-t from-black/50 to-transparent overflow-x-auto",
8015
+ "absolute bottom-0 left-0 right-0 flex gap-2 p-4 bg-linear-to-t from-black/50 to-transparent overflow-x-auto",
8016
8016
  isHorizontal ? "flex-row" : "flex-col"
8017
8017
  ),
8018
8018
  children: React29.Children.map(children, (child, idx) => /* @__PURE__ */ jsx36(
@@ -8020,7 +8020,7 @@ function Carousel({
8020
8020
  {
8021
8021
  onClick: () => scrollTo(idx),
8022
8022
  className: cn(
8023
- "flex-shrink-0 w-16 h-16 rounded-md overflow-hidden border-2 transition-all focus:outline-none focus:ring-2 focus:ring-primary",
8023
+ "shrink-0 w-16 h-16 rounded-md overflow-hidden border-2 transition-all focus:outline-none focus:ring-2 focus:ring-primary",
8024
8024
  idx === currentIndex ? "border-primary scale-110" : "border-transparent opacity-70 hover:opacity-100"
8025
8025
  ),
8026
8026
  "aria-label": `Thumbnail ${idx + 1}`,
@@ -8297,8 +8297,8 @@ function FallingIcons({
8297
8297
  "span",
8298
8298
  {
8299
8299
  className: cn(
8300
- "block uv-spin hover:[animation:var(--popName)_0.35s_ease-out_forwards]",
8301
- physicsRotation ? "[animation:var(--physicsSpinName)_var(--spinDur)_ease-in-out_infinite]" : spin && "[animation:var(--spinName)_var(--spinDur)_linear_infinite]"
8300
+ "block uv-spin hover:animate-[var(--popName)_0.35s_ease-out_forwards]",
8301
+ physicsRotation ? "animate-[var(--physicsSpinName)_var(--spinDur)_ease-in-out_infinite]" : spin && "animate-[var(--spinName)_var(--spinDur)_linear_infinite]"
8302
8302
  ),
8303
8303
  style: {
8304
8304
  width: p.size,
@@ -8965,8 +8965,8 @@ var TimelineItem = React33.forwardRef(
8965
8965
  outlined: "rounded-lg border border-border bg-card shadow-sm px-4 py-3",
8966
8966
  card: "rounded-xl border border-border bg-card shadow-md px-5 py-4",
8967
8967
  minimal: "border-l-2 pl-4 py-2",
8968
- modern: "rounded-lg bg-gradient-to-r from-card to-muted/20 border border-border/50 px-5 py-4 backdrop-blur-sm",
8969
- gradient: "rounded-xl bg-gradient-to-br from-primary/10 via-card to-accent/10 border border-primary/20 px-5 py-4 shadow-lg"
8968
+ modern: "rounded-lg bg-linear-to-r from-card to-muted/20 border border-border/50 px-5 py-4 backdrop-blur-sm",
8969
+ gradient: "rounded-xl bg-linear-to-br from-primary/10 via-card to-accent/10 border border-primary/20 px-5 py-4 shadow-lg"
8970
8970
  };
8971
8971
  const contentBox = /* @__PURE__ */ jsxs36("div", { className: cn("min-w-0 flex-1", variantClasses[ctx.variant]), children: [
8972
8972
  /* @__PURE__ */ jsxs36("div", { className: "flex items-start justify-between gap-2", children: [
@@ -8993,12 +8993,12 @@ var TimelineItem = React33.forwardRef(
8993
8993
  ] });
8994
8994
  const markerWidth = Icon || dot ? "w-auto" : "w-6";
8995
8995
  const leftSide = /* @__PURE__ */ jsxs36("div", { className: cn("flex items-stretch gap-4", padding, ctx.animate && "animate-in slide-in-from-left duration-500"), style: { animationDelay: ctx.animate ? `${(idx ?? 0) * 100}ms` : void 0 }, children: [
8996
- /* @__PURE__ */ jsx40("div", { className: cn("flex-shrink-0 flex items-stretch", markerWidth), children: /* @__PURE__ */ jsx40(Marker, { index: idx ?? 0, last: isLast, size: ctx.size, color, status, lineColor: ctx.lineColor, lineStyle: ctx.lineStyle, active, dot, icon: Icon, showLine: ctx.showLine }) }),
8996
+ /* @__PURE__ */ jsx40("div", { className: cn("shrink-0 flex items-stretch", markerWidth), children: /* @__PURE__ */ jsx40(Marker, { index: idx ?? 0, last: isLast, size: ctx.size, color, status, lineColor: ctx.lineColor, lineStyle: ctx.lineStyle, active, dot, icon: Icon, showLine: ctx.showLine }) }),
8997
8997
  /* @__PURE__ */ jsx40("div", { className: "flex-1", children: contentBox })
8998
8998
  ] });
8999
8999
  const rightSide = /* @__PURE__ */ jsxs36("div", { className: cn("flex items-stretch gap-4", padding, ctx.animate && "animate-in slide-in-from-right duration-500"), style: { animationDelay: ctx.animate ? `${(idx ?? 0) * 100}ms` : void 0 }, children: [
9000
9000
  /* @__PURE__ */ jsx40("div", { className: "flex-1 flex justify-end", children: contentBox }),
9001
- /* @__PURE__ */ jsx40("div", { className: cn("flex-shrink-0 flex items-stretch", markerWidth), children: /* @__PURE__ */ jsx40(Marker, { index: idx ?? 0, last: isLast, size: ctx.size, color, status, lineColor: ctx.lineColor, lineStyle: ctx.lineStyle, active, dot, icon: Icon, showLine: ctx.showLine }) })
9001
+ /* @__PURE__ */ jsx40("div", { className: cn("shrink-0 flex items-stretch", markerWidth), children: /* @__PURE__ */ jsx40(Marker, { index: idx ?? 0, last: isLast, size: ctx.size, color, status, lineColor: ctx.lineColor, lineStyle: ctx.lineStyle, active, dot, icon: Icon, showLine: ctx.showLine }) })
9002
9002
  ] });
9003
9003
  const horizontalItem = /* @__PURE__ */ jsxs36(
9004
9004
  "div",
@@ -10015,7 +10015,7 @@ function DataTable({
10015
10015
  children: (() => {
10016
10016
  const isRightAlign = col.align === "right" || !col.align && headerAlign === "right";
10017
10017
  const isCenterAlign = col.align === "center" || !col.align && headerAlign === "center";
10018
- const titleContent = /* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-1 min-w-0 flex-shrink", children: [
10018
+ const titleContent = /* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-1 min-w-0 shrink", children: [
10019
10019
  /* @__PURE__ */ jsx46("span", { className: "truncate font-medium text-sm", children: col.title }),
10020
10020
  col.sortable && /* @__PURE__ */ jsx46(
10021
10021
  "button",
@@ -10106,7 +10106,7 @@ function DataTable({
10106
10106
  "div",
10107
10107
  {
10108
10108
  className: cn(
10109
- "flex items-center gap-2 select-none min-h-[2.5rem]",
10109
+ "flex items-center gap-2 select-none min-h-10",
10110
10110
  isRightAlign && "justify-end",
10111
10111
  isCenterAlign && "justify-center",
10112
10112
  !isRightAlign && !isCenterAlign && "justify-between"
@@ -10232,7 +10232,7 @@ function DataTable({
10232
10232
  Table,
10233
10233
  {
10234
10234
  containerClassName: "border-0 md:border-0 rounded-none md:rounded-none shadow-none bg-transparent",
10235
- className: "[&_thead]:sticky [&_thead]:top-0 [&_thead]:z-[5] [&_thead]:bg-background [&_thead]:backdrop-blur-sm",
10235
+ className: "[&_thead]:sticky [&_thead]:top-0 [&_thead]:z-5 [&_thead]:bg-background [&_thead]:backdrop-blur-sm",
10236
10236
  children: [
10237
10237
  /* @__PURE__ */ jsx46(TableHeader, { children: renderHeader }),
10238
10238
  /* @__PURE__ */ jsx46(TableBody, { children: loading2 ? /* @__PURE__ */ jsx46(TableRow, { children: /* @__PURE__ */ jsx46(TableCell, { colSpan: visibleColumns.length, className: "text-center py-8", children: /* @__PURE__ */ jsxs41("div", { className: "flex items-center justify-center gap-2 text-muted-foreground", children: [
@@ -12397,7 +12397,7 @@ function FloatingContacts({ className }) {
12397
12397
  external: true
12398
12398
  }
12399
12399
  ];
12400
- return /* @__PURE__ */ jsxs44("div", { className: cn("fixed bottom-6 right-4 z-[100000]", "flex flex-col items-end gap-3", className), "aria-label": "Quick contacts", children: [
12400
+ return /* @__PURE__ */ jsxs44("div", { className: cn("fixed bottom-6 right-4 z-100000", "flex flex-col items-end gap-3", className), "aria-label": "Quick contacts", children: [
12401
12401
  /* @__PURE__ */ jsx49(
12402
12402
  Link2,
12403
12403
  {
@@ -12520,12 +12520,12 @@ function ThemeToggleHeadless({
12520
12520
  }
12521
12521
  ),
12522
12522
  isOpen && /* @__PURE__ */ jsxs46(Fragment18, { children: [
12523
- typeof window !== "undefined" && createPortal10(/* @__PURE__ */ jsx51("div", { className: "fixed inset-0 z-[9998]", onClick: () => setIsOpen(false) }), document.body),
12523
+ typeof window !== "undefined" && createPortal10(/* @__PURE__ */ jsx51("div", { className: "fixed inset-0 z-9998", onClick: () => setIsOpen(false) }), document.body),
12524
12524
  typeof window !== "undefined" && dropdownPosition && createPortal10(
12525
12525
  /* @__PURE__ */ jsx51(
12526
12526
  "div",
12527
12527
  {
12528
- className: "z-[9999] bg-card border border-border rounded-lg shadow-lg overflow-hidden",
12528
+ className: "z-9999 bg-card border border-border rounded-lg shadow-lg overflow-hidden",
12529
12529
  style: { position: "absolute", top: dropdownPosition.top, left: dropdownPosition.left, width: dropdownPosition.width },
12530
12530
  onMouseDown: (e) => e.stopPropagation(),
12531
12531
  role: "menu",
@@ -12617,12 +12617,12 @@ function LanguageSwitcherHeadless({
12617
12617
  }
12618
12618
  ),
12619
12619
  isOpen && /* @__PURE__ */ jsxs47(Fragment19, { children: [
12620
- typeof window !== "undefined" && createPortal11(/* @__PURE__ */ jsx52("div", { className: "fixed inset-0 z-[9998]", onClick: () => setIsOpen(false) }), document.body),
12620
+ typeof window !== "undefined" && createPortal11(/* @__PURE__ */ jsx52("div", { className: "fixed inset-0 z-9998", onClick: () => setIsOpen(false) }), document.body),
12621
12621
  typeof window !== "undefined" && dropdownPosition && createPortal11(
12622
12622
  /* @__PURE__ */ jsx52(
12623
12623
  "div",
12624
12624
  {
12625
- className: "z-[9999] bg-card border border-border rounded-lg shadow-lg overflow-hidden",
12625
+ className: "z-9999 bg-card border border-border rounded-lg shadow-lg overflow-hidden",
12626
12626
  style: { position: "absolute", top: dropdownPosition.top, left: dropdownPosition.left, width: dropdownPosition.width },
12627
12627
  onMouseDown: (e) => e.stopPropagation(),
12628
12628
  role: "menu",