@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.cjs CHANGED
@@ -182,13 +182,13 @@ var VARIANT_STYLES_BTN = {
182
182
  // Link: chỉ văn bản
183
183
  link: "text-primary bg-transparent underline-offset-4 hover:underline hover:text-primary/85 transition-colors",
184
184
  // Gradient: tuỳ chọn, giảm shadow
185
- gradient: "bg-gradient-to-r from-primary via-secondary to-accent text-primary-foreground hover:opacity-90 shadow-sm border border-primary/10"
185
+ gradient: "bg-linear-to-r from-primary via-secondary to-accent text-primary-foreground hover:opacity-90 shadow-sm border border-primary/10"
186
186
  };
187
187
  var SIZE_STYLES_BTN = {
188
- 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",
189
- md: "px-4 py-2 text-sm h-10 min-w-[2.5rem] md:px-3 md:py-1.5 md:h-9",
190
- lg: "px-6 py-3 text-base h-12 min-w-[3rem] md:px-4 md:py-2 md:h-10 md:text-sm",
191
- 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",
188
+ 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",
189
+ md: "px-4 py-2 text-sm h-10 min-w-10 md:px-3 md:py-1.5 md:h-9",
190
+ lg: "px-6 py-3 text-base h-12 min-w-12 md:px-4 md:py-2 md:h-10 md:text-sm",
191
+ 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",
192
192
  icon: "w-11 h-11 p-0 rounded-full flex items-center justify-center md:w-10 md:h-10"
193
193
  };
194
194
 
@@ -289,7 +289,7 @@ var Button = (0, import_react.forwardRef)(
289
289
  "aria-label": rest["aria-label"] || title,
290
290
  ...rest,
291
291
  children: [
292
- !noHoverOverlay && /* @__PURE__ */ (0, import_jsx_runtime.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" }),
292
+ !noHoverOverlay && /* @__PURE__ */ (0, import_jsx_runtime.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" }),
293
293
  loading2 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
294
294
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SpinnerIcon, { className: "w-4 h-4 animate-spin" }),
295
295
  loadingText && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "ml-2", "aria-live": "polite", children: loadingText }),
@@ -321,7 +321,7 @@ var variantStyles = {
321
321
  outline: "bg-transparent text-foreground border-border hover:bg-accent/50",
322
322
  ghost: "bg-transparent hover:bg-accent/20 hover:text-accent-foreground border-transparent transition-colors",
323
323
  transparent: "bg-transparent text-foreground border-transparent hover:bg-accent/30",
324
- gradient: "bg-gradient-to-r from-primary to-secondary text-primary-foreground border-transparent hover:from-primary/90 hover:to-secondary/90"
324
+ gradient: "bg-linear-to-r from-primary to-secondary text-primary-foreground border-transparent hover:from-primary/90 hover:to-secondary/90"
325
325
  };
326
326
  var sizeStyles = {
327
327
  xs: "px-1.5 py-0.5 text-xs font-medium min-h-[18px]",
@@ -398,12 +398,12 @@ var Badge = ({
398
398
  className: cn(
399
399
  baseClasses,
400
400
  "justify-center rounded-full",
401
- "min-w-[1.5rem] h-6 px-1.5 text-xs font-bold",
402
- size === "xs" && "min-w-[1.25rem] h-5 px-1 text-xs",
403
- size === "sm" && "min-w-[1.5rem] h-6 px-1.5 text-xs",
404
- size === "md" && "min-w-[1.75rem] h-7 px-2 text-xs",
405
- size === "lg" && "min-w-[2rem] h-8 px-2.5 text-sm",
406
- size === "xl" && "min-w-[2.25rem] h-9 px-3 text-sm",
401
+ "min-w-6 h-6 px-1.5 text-xs font-bold",
402
+ size === "xs" && "min-w-5 h-5 px-1 text-xs",
403
+ size === "sm" && "min-w-6 h-6 px-1.5 text-xs",
404
+ size === "md" && "min-w-7 h-7 px-2 text-xs",
405
+ size === "lg" && "min-w-8 h-8 px-2.5 text-sm",
406
+ size === "xl" && "min-w-9 h-9 px-3 text-sm",
407
407
  className
408
408
  ),
409
409
  onClick: handleClick,
@@ -418,7 +418,7 @@ var Badge = ({
418
418
  Icon,
419
419
  {
420
420
  className: cn(
421
- "flex-shrink-0",
421
+ "shrink-0",
422
422
  size === "xs" && "h-3 w-3",
423
423
  size === "sm" && "h-3 w-3",
424
424
  size === "md" && "h-4 w-4",
@@ -434,7 +434,7 @@ var Badge = ({
434
434
  onClick: handleRemove,
435
435
  className: cn(
436
436
  "ml-1 rounded-full hover:bg-accent focus:outline-none focus:bg-accent",
437
- "transition-colors duration-150 flex-shrink-0",
437
+ "transition-colors duration-150 shrink-0",
438
438
  size === "xs" && "h-3 w-3",
439
439
  size === "sm" && "h-3 w-3",
440
440
  size === "md" && "h-4 w-4",
@@ -523,7 +523,7 @@ var GradientBadge = ({ from = "from-primary", to = "to-secondary", className, ..
523
523
  {
524
524
  ...props,
525
525
  variant: "transparent",
526
- className: cn(`bg-gradient-to-r ${from} ${to} text-primary-foreground border-transparent`, "hover:opacity-90", className)
526
+ className: cn(`bg-linear-to-r ${from} ${to} text-primary-foreground border-transparent`, "hover:opacity-90", className)
527
527
  }
528
528
  );
529
529
  };
@@ -562,7 +562,7 @@ var Card = ({ title, description, children, footer, className, hoverable = false
562
562
  "div",
563
563
  {
564
564
  className: cn(
565
- "absolute inset-0 bg-gradient-to-br from-primary/5 to-transparent transition-opacity duration-300",
565
+ "absolute inset-0 bg-linear-to-br from-primary/5 to-transparent transition-opacity duration-300",
566
566
  isHovered ? "opacity-100" : "opacity-0"
567
567
  )
568
568
  }
@@ -880,7 +880,7 @@ var Input = (0, import_react3.forwardRef)(
880
880
  "div",
881
881
  {
882
882
  className: cn(
883
- "absolute bottom-0 left-0 h-0.5 bg-gradient-to-r from-primary to-primary/60 transition-all duration-300",
883
+ "absolute bottom-0 left-0 h-0.5 bg-linear-to-r from-primary to-primary/60 transition-all duration-300",
884
884
  // default hidden
885
885
  "w-0 opacity-0",
886
886
  // expand underline when focused within input container
@@ -890,7 +890,7 @@ var Input = (0, import_react3.forwardRef)(
890
890
  )
891
891
  ] }),
892
892
  errMsg && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { id: errorId, className: "flex items-center gap-2 text-sm text-destructive animate-in slide-in-from-top-1 duration-200", children: [
893
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react3.AlertCircle, { className: "w-4 h-4 flex-shrink-0" }),
893
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react3.AlertCircle, { className: "w-4 h-4 shrink-0" }),
894
894
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { children: errMsg })
895
895
  ] }),
896
896
  (description || hint) && !errMsg && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
@@ -1074,7 +1074,7 @@ var NumberInput = (0, import_react3.forwardRef)(
1074
1074
  "text-muted-foreground hover:text-foreground"
1075
1075
  ),
1076
1076
  "aria-label": "Increase value",
1077
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M4 2L6 6H2L4 2Z", fill: "currentColor" }) })
1077
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M4 2L6 6H2L4 2Z", fill: "currentColor" }) })
1078
1078
  }
1079
1079
  ),
1080
1080
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
@@ -1090,7 +1090,7 @@ var NumberInput = (0, import_react3.forwardRef)(
1090
1090
  "text-muted-foreground hover:text-foreground"
1091
1091
  ),
1092
1092
  "aria-label": "Decrease value",
1093
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M4 6L2 2H6L4 6Z", fill: "currentColor" }) })
1093
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M4 6L2 2H6L4 6Z", fill: "currentColor" }) })
1094
1094
  }
1095
1095
  )
1096
1096
  ] })
@@ -1171,7 +1171,7 @@ var Textarea = (0, import_react3.forwardRef)(
1171
1171
  }
1172
1172
  ),
1173
1173
  error && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2 text-sm text-destructive animate-in slide-in-from-top-1 duration-200", children: [
1174
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react3.AlertCircle, { className: "w-4 h-4 flex-shrink-0" }),
1174
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_lucide_react3.AlertCircle, { className: "w-4 h-4 shrink-0" }),
1175
1175
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { children: error })
1176
1176
  ] }),
1177
1177
  description && !error && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: cn("text-xs transition-colors duration-200", isFocused ? "text-primary/70" : "text-muted-foreground"), children: description })
@@ -1244,7 +1244,7 @@ var Textarea2 = (0, import_react4.forwardRef)(
1244
1244
  }
1245
1245
  ),
1246
1246
  variant === "default" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: cn(
1247
- "absolute bottom-0 left-0 h-0.5 bg-gradient-to-r from-primary to-primary/60 transition-all duration-300 ease-soft",
1247
+ "absolute bottom-0 left-0 h-0.5 bg-linear-to-r from-primary to-primary/60 transition-all duration-300 ease-soft",
1248
1248
  isFocused ? "w-full opacity-100" : "w-0 opacity-0"
1249
1249
  ) }),
1250
1250
  isFocused && variant !== "outlined" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "absolute inset-0 rounded-lg bg-primary/5 -z-10 animate-pulse" })
@@ -1595,7 +1595,7 @@ var Avatar = ({ src, alt = "avatar", fallback = "?", size = "md", className, onC
1595
1595
  "span",
1596
1596
  {
1597
1597
  className: cn(
1598
- "font-bold uppercase bg-gradient-to-br from-primary to-primary/80 bg-clip-text text-transparent",
1598
+ "font-bold uppercase bg-linear-to-br from-primary to-primary/80 bg-clip-text text-transparent",
1599
1599
  "transition-all duration-200 animate-fade-in"
1600
1600
  ),
1601
1601
  children: fallback
@@ -1626,7 +1626,7 @@ var Skeleton = ({
1626
1626
  };
1627
1627
  const animationClasses = {
1628
1628
  pulse: "animate-pulse",
1629
- wave: "animate-shimmer bg-gradient-to-r from-muted via-muted/50 to-muted bg-[length:200%_100%]",
1629
+ wave: "animate-shimmer bg-linear-to-r from-muted via-muted/50 to-muted bg-size-[200%_100%]",
1630
1630
  none: ""
1631
1631
  };
1632
1632
  if (variant === "text" && lines > 1) {
@@ -1815,11 +1815,11 @@ var import_lucide_react4 = require("lucide-react");
1815
1815
  var import_jsx_runtime12 = require("react/jsx-runtime");
1816
1816
  var variantStyles2 = {
1817
1817
  default: "bg-muted-foreground",
1818
- primary: "bg-gradient-to-r from-primary via-primary/90 to-primary",
1819
- success: "bg-gradient-to-r from-success via-success/90 to-success shadow-sm shadow-success/20",
1820
- warning: "bg-gradient-to-r from-warning via-warning/90 to-warning shadow-sm shadow-warning/20",
1821
- danger: "bg-gradient-to-r from-destructive via-destructive/90 to-destructive shadow-sm shadow-destructive/20",
1822
- info: "bg-gradient-to-r from-info via-info/90 to-info shadow-sm shadow-info/20"
1818
+ primary: "bg-linear-to-r from-primary via-primary/90 to-primary",
1819
+ success: "bg-linear-to-r from-success via-success/90 to-success shadow-sm shadow-success/20",
1820
+ warning: "bg-linear-to-r from-warning via-warning/90 to-warning shadow-sm shadow-warning/20",
1821
+ danger: "bg-linear-to-r from-destructive via-destructive/90 to-destructive shadow-sm shadow-destructive/20",
1822
+ info: "bg-linear-to-r from-info via-info/90 to-info shadow-sm shadow-info/20"
1823
1823
  };
1824
1824
  var sizeStyles2 = {
1825
1825
  sm: "h-1.5",
@@ -1888,12 +1888,12 @@ var Progress = ({
1888
1888
  "before:absolute before:inset-0 before:rounded-full before:opacity-30",
1889
1889
  indeterminate && "animate-pulse",
1890
1890
  !indeterminate && variantStyles2[variant],
1891
- isComplete && "bg-gradient-to-r from-success via-success/90 to-success shadow-sm shadow-success/20",
1892
- isError && "bg-gradient-to-r from-destructive via-destructive/90 to-destructive shadow-sm shadow-destructive/20",
1893
- striped && "bg-gradient-to-r from-transparent via-primary-foreground/20 to-transparent bg-[length:1rem_1rem]",
1891
+ isComplete && "bg-linear-to-r from-success via-success/90 to-success shadow-sm shadow-success/20",
1892
+ isError && "bg-linear-to-r from-destructive via-destructive/90 to-destructive shadow-sm shadow-destructive/20",
1893
+ striped && "bg-linear-to-r from-transparent via-primary-foreground/20 to-transparent bg-size-[1rem_1rem]",
1894
1894
  animated && !indeterminate && "before:animate-pulse",
1895
1895
  // Shimmer effect for indeterminate
1896
- indeterminate && "bg-gradient-to-r from-muted via-primary/50 to-muted bg-[length:200%_100%] animate-[shimmer_2s_infinite]"
1896
+ indeterminate && "bg-linear-to-r from-muted via-primary/50 to-muted bg-size-[200%_100%] animate-[shimmer_2s_infinite]"
1897
1897
  ),
1898
1898
  style: {
1899
1899
  width: indeterminate ? "100%" : `${percentage}%`,
@@ -2103,7 +2103,7 @@ var MiniProgress = ({
2103
2103
  )
2104
2104
  }
2105
2105
  ),
2106
- showValue && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "text-xs font-medium text-muted-foreground min-w-[2.5rem] text-right", children: [
2106
+ showValue && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "text-xs font-medium text-muted-foreground min-w-10 text-right", children: [
2107
2107
  Math.round(percentage),
2108
2108
  "%"
2109
2109
  ] })
@@ -2337,7 +2337,7 @@ var Modal = ({
2337
2337
  return null;
2338
2338
  }
2339
2339
  const maxWidthClass = width ? "max-w-none" : fullWidth ? "max-w-full" : sizeStyles3[size];
2340
- const modalContent = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: cn("fixed inset-0 z-[9999] flex items-center justify-center", overlayClassName), onClick: handleOverlayClick, children: [
2340
+ const modalContent = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: cn("fixed inset-0 z-9999 flex items-center justify-center", overlayClassName), onClick: handleOverlayClick, children: [
2341
2341
  /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2342
2342
  "div",
2343
2343
  {
@@ -2438,7 +2438,7 @@ var ToastProvider = ({ children, position = "top-right", maxToasts = 5 }) => {
2438
2438
  };
2439
2439
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(ToastContext.Provider, { value: { addToast, removeToast, toasts }, children: [
2440
2440
  children,
2441
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("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__ */ (0, import_jsx_runtime14.jsx)(ToastComponent, { toast, onRemove: removeToast }, toast.id)) })
2441
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("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__ */ (0, import_jsx_runtime14.jsx)(ToastComponent, { toast, onRemove: removeToast }, toast.id)) })
2442
2442
  ] });
2443
2443
  };
2444
2444
  var ToastComponent = ({ toast, onRemove }) => {
@@ -2672,7 +2672,7 @@ var Tooltip = ({
2672
2672
  },
2673
2673
  className: cn(
2674
2674
  "px-3 py-2 text-sm font-medium rounded-lg shadow-lg border",
2675
- "max-w-xs break-words backdrop-blur-sm",
2675
+ "max-w-xs wrap-break-word backdrop-blur-sm",
2676
2676
  variantStyles3[variant],
2677
2677
  className
2678
2678
  ),
@@ -3027,7 +3027,7 @@ var Popover = ({
3027
3027
  role: "dialog",
3028
3028
  "aria-modal": modal || void 0,
3029
3029
  className: cn(
3030
- "z-[9999]",
3030
+ "z-9999",
3031
3031
  // shadcn-like enter animation
3032
3032
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
3033
3033
  className
@@ -3236,7 +3236,7 @@ var Sheet = ({
3236
3236
  transition: "transform 300ms cubic-bezier(0.4, 0, 0.2, 1)"
3237
3237
  },
3238
3238
  children: [
3239
- (title || description || header || showClose) && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex-shrink-0 border-b border-border", children: header || /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center justify-between p-4", children: [
3239
+ (title || description || header || showClose) && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "shrink-0 border-b border-border", children: header || /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center justify-between p-4", children: [
3240
3240
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex-1", children: [
3241
3241
  title && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h2", { className: "text-lg font-semibold text-foreground", children: title }),
3242
3242
  description && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-sm text-muted-foreground mt-1", children: description })
@@ -3255,7 +3255,7 @@ var Sheet = ({
3255
3255
  children
3256
3256
  }
3257
3257
  ),
3258
- footer && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex-shrink-0 border-t border-border p-4", children: footer })
3258
+ footer && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "shrink-0 border-t border-border p-4", children: footer })
3259
3259
  ]
3260
3260
  }
3261
3261
  )
@@ -3320,7 +3320,7 @@ var Alert = ({ title, description, variant = "default", className, icon, dismiss
3320
3320
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "pt-1", children: icon ?? variantIcons[variant] }),
3321
3321
  /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "flex-1 min-w-0", children: [
3322
3322
  title && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "font-semibold text-sm leading-none mb-1 text-foreground", children: title }),
3323
- description && (typeof description === "string" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "text-sm text-muted-foreground leading-relaxed break-words", children: description }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-sm text-muted-foreground leading-relaxed break-words", children: description })),
3323
+ description && (typeof description === "string" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "text-sm text-muted-foreground leading-relaxed wrap-break-word", children: description }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "text-sm text-muted-foreground leading-relaxed wrap-break-word", children: description })),
3324
3324
  actions && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "mt-2 flex flex-wrap gap-2", children: actions })
3325
3325
  ] }),
3326
3326
  dismissible && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
@@ -3402,7 +3402,7 @@ var GlobalLoading = ({
3402
3402
  "div",
3403
3403
  {
3404
3404
  className: cn(
3405
- "inset-0 z-[100000] flex items-center justify-center",
3405
+ "inset-0 z-100000 flex items-center justify-center",
3406
3406
  position === "fixed" ? "fixed" : "absolute",
3407
3407
  backdrop && "bg-background/90 backdrop-blur-sm",
3408
3408
  className
@@ -3839,7 +3839,7 @@ var VerticalTabs = ({
3839
3839
  className,
3840
3840
  ...props
3841
3841
  }) => {
3842
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: cn("flex gap-6", className), children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: cn(sidebarWidth, "flex-shrink-0"), children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3842
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: cn("flex gap-6", className), children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: cn(sidebarWidth, "shrink-0"), children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3843
3843
  Tabs,
3844
3844
  {
3845
3845
  ...props,
@@ -4303,7 +4303,7 @@ var Combobox = ({
4303
4303
  "outline-none focus:outline-none focus-visible:outline-none",
4304
4304
  "hover:bg-accent hover:text-accent-foreground",
4305
4305
  "focus:bg-accent focus:text-accent-foreground",
4306
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4306
+ "data-disabled:pointer-events-none data-disabled:opacity-50",
4307
4307
  index === activeIndex && "bg-accent text-accent-foreground",
4308
4308
  isSelected && "bg-accent text-accent-foreground"
4309
4309
  ),
@@ -4534,7 +4534,7 @@ var Pagination = ({
4534
4534
  size,
4535
4535
  onClick: () => onChange(pageNumber),
4536
4536
  disabled,
4537
- className: cn("min-w-[2.5rem]", isActive && "font-semibold"),
4537
+ className: cn("min-w-10", isActive && "font-semibold"),
4538
4538
  "aria-label": labels?.pageNumber ? labels.pageNumber(pageNumber) : t("pageNumber", { page: pageNumber }),
4539
4539
  "aria-current": isActive ? "page" : void 0,
4540
4540
  children: pageNumber
@@ -4670,7 +4670,7 @@ var CompactPagination = ({
4670
4670
  title: "Previous page"
4671
4671
  }
4672
4672
  ),
4673
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "px-2 py-1 text-sm text-muted-foreground min-w-[4rem] text-center", children: [
4673
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "px-2 py-1 text-sm text-muted-foreground min-w-16 text-center", children: [
4674
4674
  page,
4675
4675
  " / ",
4676
4676
  totalPages
@@ -5071,7 +5071,7 @@ var DatePicker = ({
5071
5071
  size === "sm" ? "w-7 h-7 text-[12px]" : "w-8 h-8 text-sm",
5072
5072
  "datepicker-day rounded-md focus:outline-none",
5073
5073
  "transition-colors",
5074
- 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",
5074
+ 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",
5075
5075
  isToday2 && !isSelected && "bg-accent text-accent-foreground font-semibold"
5076
5076
  ),
5077
5077
  children: day
@@ -5096,7 +5096,7 @@ var DatePicker = ({
5096
5096
  },
5097
5097
  "data-state": isOpen ? "open" : "closed",
5098
5098
  className: cn(
5099
- "z-[9999]",
5099
+ "z-9999",
5100
5100
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
5101
5101
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95"
5102
5102
  ),
@@ -5359,7 +5359,7 @@ var DateRangePicker = ({ startDate, endDate, onChange, placeholder = "Select dat
5359
5359
  style: { position: "absolute", top: dropdownPosition.top, left: dropdownPosition.left, width: dropdownPosition.width || 256, zIndex: 9999 },
5360
5360
  "data-state": isOpen ? "open" : "closed",
5361
5361
  className: cn(
5362
- "z-[9999]",
5362
+ "z-9999",
5363
5363
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
5364
5364
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95"
5365
5365
  ),
@@ -6004,11 +6004,11 @@ function TimePicker({
6004
6004
  ),
6005
6005
  (error || success || helperText) && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: cn("mt-1.5 flex items-start gap-1.5", sz.label), children: [
6006
6006
  error && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center gap-1.5 text-destructive", children: [
6007
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react14.X, { className: "w-3.5 h-3.5 flex-shrink-0" }),
6007
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react14.X, { className: "w-3.5 h-3.5 shrink-0" }),
6008
6008
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { children: error })
6009
6009
  ] }),
6010
6010
  success && !error && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center gap-1.5 text-green-600", children: [
6011
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react14.Check, { className: "w-3.5 h-3.5 flex-shrink-0" }),
6011
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react14.Check, { className: "w-3.5 h-3.5 shrink-0" }),
6012
6012
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { children: "Valid time selected" })
6013
6013
  ] }),
6014
6014
  helperText && !error && !success && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-muted-foreground", children: helperText })
@@ -6497,13 +6497,13 @@ var MultiCombobox = ({
6497
6497
  setOpen(next);
6498
6498
  },
6499
6499
  className: cn(
6500
- "flex w-full items-center gap-2 rounded-lg border border-input bg-background shadow-sm min-h-[2.5rem]",
6500
+ "flex w-full items-center gap-2 rounded-lg border border-input bg-background shadow-sm min-h-10",
6501
6501
  "px-3 py-2",
6502
6502
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
6503
6503
  "disabled:cursor-not-allowed disabled:opacity-50"
6504
6504
  ),
6505
6505
  children: [
6506
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "flex items-center gap-1 flex-wrap min-h-[1.5rem] flex-1", children: value.length > 0 ? showTags ? value.map((itemValue) => {
6506
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "flex items-center gap-1 flex-wrap min-h-6 flex-1", children: value.length > 0 ? showTags ? value.map((itemValue) => {
6507
6507
  const option = normalizedOptions.find((o) => o.value === itemValue);
6508
6508
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("span", { className: "inline-flex items-center gap-1 bg-accent text-accent-foreground rounded px-2 py-1 text-xs", children: [
6509
6509
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "truncate max-w-[120px]", children: option ? displayFormat(option) : itemValue }),
@@ -7019,7 +7019,7 @@ var Slider = React26.forwardRef(
7019
7019
  return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: cn("w-full space-y-2", containerClassName), children: [
7020
7020
  (label || showValue) && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex items-center justify-between", children: [
7021
7021
  label && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("label", { className: cn("text-sm font-medium text-foreground", labelClassName), children: label }),
7022
- showValue && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: cn("text-xs font-mono text-muted-foreground min-w-[2rem] text-right", valueClassName), children: displayValue })
7022
+ showValue && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: cn("text-xs font-mono text-muted-foreground min-w-8 text-right", valueClassName), children: displayValue })
7023
7023
  ] }),
7024
7024
  /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: cn("relative flex items-center", sizeStyles8.container), children: [
7025
7025
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: cn("w-full rounded-full bg-secondary relative overflow-hidden", sizeStyles8.track, trackClassName), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
@@ -7356,7 +7356,7 @@ function OverlayControls({
7356
7356
  "div",
7357
7357
  {
7358
7358
  className: cn(
7359
- "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",
7359
+ "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",
7360
7360
  hoverClasses,
7361
7361
  autoHide && !controlsVisible && "opacity-0 pointer-events-none",
7362
7362
  className
@@ -8084,7 +8084,7 @@ function Carousel({
8084
8084
  "div",
8085
8085
  {
8086
8086
  className: cn(
8087
- "flex-shrink-0",
8087
+ "shrink-0",
8088
8088
  isHorizontal ? "h-full" : "w-full",
8089
8089
  animation === "fade" && idx !== currentIndex && "opacity-0",
8090
8090
  animation === "scale" && idx !== currentIndex && "scale-95",
@@ -8167,7 +8167,7 @@ function Carousel({
8167
8167
  "div",
8168
8168
  {
8169
8169
  className: cn(
8170
- "absolute bottom-0 left-0 right-0 flex gap-2 p-4 bg-gradient-to-t from-black/50 to-transparent overflow-x-auto",
8170
+ "absolute bottom-0 left-0 right-0 flex gap-2 p-4 bg-linear-to-t from-black/50 to-transparent overflow-x-auto",
8171
8171
  isHorizontal ? "flex-row" : "flex-col"
8172
8172
  ),
8173
8173
  children: React29.Children.map(children, (child, idx) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
@@ -8175,7 +8175,7 @@ function Carousel({
8175
8175
  {
8176
8176
  onClick: () => scrollTo(idx),
8177
8177
  className: cn(
8178
- "flex-shrink-0 w-16 h-16 rounded-md overflow-hidden border-2 transition-all focus:outline-none focus:ring-2 focus:ring-primary",
8178
+ "shrink-0 w-16 h-16 rounded-md overflow-hidden border-2 transition-all focus:outline-none focus:ring-2 focus:ring-primary",
8179
8179
  idx === currentIndex ? "border-primary scale-110" : "border-transparent opacity-70 hover:opacity-100"
8180
8180
  ),
8181
8181
  "aria-label": `Thumbnail ${idx + 1}`,
@@ -8452,8 +8452,8 @@ function FallingIcons({
8452
8452
  "span",
8453
8453
  {
8454
8454
  className: cn(
8455
- "block uv-spin hover:[animation:var(--popName)_0.35s_ease-out_forwards]",
8456
- physicsRotation ? "[animation:var(--physicsSpinName)_var(--spinDur)_ease-in-out_infinite]" : spin && "[animation:var(--spinName)_var(--spinDur)_linear_infinite]"
8455
+ "block uv-spin hover:animate-[var(--popName)_0.35s_ease-out_forwards]",
8456
+ physicsRotation ? "animate-[var(--physicsSpinName)_var(--spinDur)_ease-in-out_infinite]" : spin && "animate-[var(--spinName)_var(--spinDur)_linear_infinite]"
8457
8457
  ),
8458
8458
  style: {
8459
8459
  width: p.size,
@@ -9120,8 +9120,8 @@ var TimelineItem = React33.forwardRef(
9120
9120
  outlined: "rounded-lg border border-border bg-card shadow-sm px-4 py-3",
9121
9121
  card: "rounded-xl border border-border bg-card shadow-md px-5 py-4",
9122
9122
  minimal: "border-l-2 pl-4 py-2",
9123
- modern: "rounded-lg bg-gradient-to-r from-card to-muted/20 border border-border/50 px-5 py-4 backdrop-blur-sm",
9124
- 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"
9123
+ modern: "rounded-lg bg-linear-to-r from-card to-muted/20 border border-border/50 px-5 py-4 backdrop-blur-sm",
9124
+ 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"
9125
9125
  };
9126
9126
  const contentBox = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: cn("min-w-0 flex-1", variantClasses[ctx.variant]), children: [
9127
9127
  /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
@@ -9148,12 +9148,12 @@ var TimelineItem = React33.forwardRef(
9148
9148
  ] });
9149
9149
  const markerWidth = Icon || dot ? "w-auto" : "w-6";
9150
9150
  const leftSide = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("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: [
9151
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn("flex-shrink-0 flex items-stretch", markerWidth), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Marker, { index: idx ?? 0, last: isLast, size: ctx.size, color, status, lineColor: ctx.lineColor, lineStyle: ctx.lineStyle, active, dot, icon: Icon, showLine: ctx.showLine }) }),
9151
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn("shrink-0 flex items-stretch", markerWidth), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Marker, { index: idx ?? 0, last: isLast, size: ctx.size, color, status, lineColor: ctx.lineColor, lineStyle: ctx.lineStyle, active, dot, icon: Icon, showLine: ctx.showLine }) }),
9152
9152
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "flex-1", children: contentBox })
9153
9153
  ] });
9154
9154
  const rightSide = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("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: [
9155
9155
  /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "flex-1 flex justify-end", children: contentBox }),
9156
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn("flex-shrink-0 flex items-stretch", markerWidth), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Marker, { index: idx ?? 0, last: isLast, size: ctx.size, color, status, lineColor: ctx.lineColor, lineStyle: ctx.lineStyle, active, dot, icon: Icon, showLine: ctx.showLine }) })
9156
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn("shrink-0 flex items-stretch", markerWidth), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Marker, { index: idx ?? 0, last: isLast, size: ctx.size, color, status, lineColor: ctx.lineColor, lineStyle: ctx.lineStyle, active, dot, icon: Icon, showLine: ctx.showLine }) })
9157
9157
  ] });
9158
9158
  const horizontalItem = /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
9159
9159
  "div",
@@ -10170,7 +10170,7 @@ function DataTable({
10170
10170
  children: (() => {
10171
10171
  const isRightAlign = col.align === "right" || !col.align && headerAlign === "right";
10172
10172
  const isCenterAlign = col.align === "center" || !col.align && headerAlign === "center";
10173
- const titleContent = /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center gap-1 min-w-0 flex-shrink", children: [
10173
+ const titleContent = /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center gap-1 min-w-0 shrink", children: [
10174
10174
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "truncate font-medium text-sm", children: col.title }),
10175
10175
  col.sortable && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
10176
10176
  "button",
@@ -10261,7 +10261,7 @@ function DataTable({
10261
10261
  "div",
10262
10262
  {
10263
10263
  className: cn(
10264
- "flex items-center gap-2 select-none min-h-[2.5rem]",
10264
+ "flex items-center gap-2 select-none min-h-10",
10265
10265
  isRightAlign && "justify-end",
10266
10266
  isCenterAlign && "justify-center",
10267
10267
  !isRightAlign && !isCenterAlign && "justify-between"
@@ -10387,7 +10387,7 @@ function DataTable({
10387
10387
  Table,
10388
10388
  {
10389
10389
  containerClassName: "border-0 md:border-0 rounded-none md:rounded-none shadow-none bg-transparent",
10390
- className: "[&_thead]:sticky [&_thead]:top-0 [&_thead]:z-[5] [&_thead]:bg-background [&_thead]:backdrop-blur-sm",
10390
+ className: "[&_thead]:sticky [&_thead]:top-0 [&_thead]:z-5 [&_thead]:bg-background [&_thead]:backdrop-blur-sm",
10391
10391
  children: [
10392
10392
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableHeader, { children: renderHeader }),
10393
10393
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableBody, { children: loading2 ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TableCell, { colSpan: visibleColumns.length, className: "text-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center justify-center gap-2 text-muted-foreground", children: [
@@ -12552,7 +12552,7 @@ function FloatingContacts({ className }) {
12552
12552
  external: true
12553
12553
  }
12554
12554
  ];
12555
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: cn("fixed bottom-6 right-4 z-[100000]", "flex flex-col items-end gap-3", className), "aria-label": "Quick contacts", children: [
12555
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: cn("fixed bottom-6 right-4 z-100000", "flex flex-col items-end gap-3", className), "aria-label": "Quick contacts", children: [
12556
12556
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
12557
12557
  import_link2.default,
12558
12558
  {
@@ -12675,12 +12675,12 @@ function ThemeToggleHeadless({
12675
12675
  }
12676
12676
  ),
12677
12677
  isOpen && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
12678
- typeof window !== "undefined" && (0, import_react_dom10.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "fixed inset-0 z-[9998]", onClick: () => setIsOpen(false) }), document.body),
12678
+ typeof window !== "undefined" && (0, import_react_dom10.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "fixed inset-0 z-9998", onClick: () => setIsOpen(false) }), document.body),
12679
12679
  typeof window !== "undefined" && dropdownPosition && (0, import_react_dom10.createPortal)(
12680
12680
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
12681
12681
  "div",
12682
12682
  {
12683
- className: "z-[9999] bg-card border border-border rounded-lg shadow-lg overflow-hidden",
12683
+ className: "z-9999 bg-card border border-border rounded-lg shadow-lg overflow-hidden",
12684
12684
  style: { position: "absolute", top: dropdownPosition.top, left: dropdownPosition.left, width: dropdownPosition.width },
12685
12685
  onMouseDown: (e) => e.stopPropagation(),
12686
12686
  role: "menu",
@@ -12772,12 +12772,12 @@ function LanguageSwitcherHeadless({
12772
12772
  }
12773
12773
  ),
12774
12774
  isOpen && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
12775
- typeof window !== "undefined" && (0, import_react_dom11.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "fixed inset-0 z-[9998]", onClick: () => setIsOpen(false) }), document.body),
12775
+ typeof window !== "undefined" && (0, import_react_dom11.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "fixed inset-0 z-9998", onClick: () => setIsOpen(false) }), document.body),
12776
12776
  typeof window !== "undefined" && dropdownPosition && (0, import_react_dom11.createPortal)(
12777
12777
  /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
12778
12778
  "div",
12779
12779
  {
12780
- className: "z-[9999] bg-card border border-border rounded-lg shadow-lg overflow-hidden",
12780
+ className: "z-9999 bg-card border border-border rounded-lg shadow-lg overflow-hidden",
12781
12781
  style: { position: "absolute", top: dropdownPosition.top, left: dropdownPosition.left, width: dropdownPosition.width },
12782
12782
  onMouseDown: (e) => e.stopPropagation(),
12783
12783
  role: "menu",