@underverse-ui/underverse 2.0.7 → 2.0.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.
Files changed (31) hide show
  1. package/api-reference.json +1 -1
  2. package/dist/{EmojiPicker-34YATB7Z.js → EmojiPicker-RPB24XXJ.js} +4 -4
  3. package/dist/{chunk-JINSMREP.js → chunk-7V65PWQN.js} +3 -3
  4. package/dist/{chunk-PLHJWXCW.js → chunk-CKG2QLQL.js} +61 -1
  5. package/dist/chunk-CKG2QLQL.js.map +1 -0
  6. package/dist/{chunk-A7XL4RDV.js → chunk-K5PVUTXH.js} +7 -5
  7. package/dist/chunk-K5PVUTXH.js.map +1 -0
  8. package/dist/{chunk-KGNYK5YF.js → chunk-KKASHK7A.js} +2 -2
  9. package/dist/{chunk-TETMVVUP.js → chunk-VDIAFUIE.js} +11 -65
  10. package/dist/chunk-VDIAFUIE.js.map +1 -0
  11. package/dist/{chunk-XE3RJHVX.js → chunk-WNVGXH5Y.js} +12 -10
  12. package/dist/chunk-WNVGXH5Y.js.map +1 -0
  13. package/dist/index.cjs +278 -141
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.cts +7 -0
  16. package/dist/index.d.ts +7 -0
  17. package/dist/index.js +297 -167
  18. package/dist/index.js.map +1 -1
  19. package/dist/{menu-bar-NFEW4FOJ.js → menu-bar-R5ZFI2ST.js} +4 -4
  20. package/dist/ueditor.cjs +25 -9
  21. package/dist/ueditor.cjs.map +1 -1
  22. package/dist/ueditor.js +4 -4
  23. package/package.json +2 -1
  24. package/dist/chunk-A7XL4RDV.js.map +0 -1
  25. package/dist/chunk-PLHJWXCW.js.map +0 -1
  26. package/dist/chunk-TETMVVUP.js.map +0 -1
  27. package/dist/chunk-XE3RJHVX.js.map +0 -1
  28. /package/dist/{EmojiPicker-34YATB7Z.js.map → EmojiPicker-RPB24XXJ.js.map} +0 -0
  29. /package/dist/{chunk-JINSMREP.js.map → chunk-7V65PWQN.js.map} +0 -0
  30. /package/dist/{chunk-KGNYK5YF.js.map → chunk-KKASHK7A.js.map} +0 -0
  31. /package/dist/{menu-bar-NFEW4FOJ.js.map → menu-bar-R5ZFI2ST.js.map} +0 -0
package/dist/index.js CHANGED
@@ -4,19 +4,19 @@ import {
4
4
  extractImageSrcsFromHtml,
5
5
  normalizeImageUrl,
6
6
  prepareUEditorContentForSave
7
- } from "./chunk-XE3RJHVX.js";
7
+ } from "./chunk-WNVGXH5Y.js";
8
8
  import {
9
9
  EmojiPicker_default
10
- } from "./chunk-A7XL4RDV.js";
10
+ } from "./chunk-K5PVUTXH.js";
11
11
  import {
12
12
  getEmojiImageUrl,
13
13
  getEmojiUnifiedCode,
14
14
  setEmojiBaseUrl
15
- } from "./chunk-KGNYK5YF.js";
15
+ } from "./chunk-KKASHK7A.js";
16
16
  import "./chunk-4TYW5K4J.js";
17
17
  import {
18
18
  Modal_default
19
- } from "./chunk-JINSMREP.js";
19
+ } from "./chunk-7V65PWQN.js";
20
20
  import {
21
21
  DropdownMenuItem,
22
22
  DropdownMenuSeparator,
@@ -24,10 +24,6 @@ import {
24
24
  Popover,
25
25
  SelectDropdown,
26
26
  UnderverseConfigProvider,
27
- formControlFixedClass,
28
- formControlLabelClass,
29
- formControlSizeStyles,
30
- formControlValueClass,
31
27
  getAnimationStyles,
32
28
  getBorderRadiusClass,
33
29
  getPanelBorderRadiusClass,
@@ -35,7 +31,7 @@ import {
35
31
  shadcnAnimationStyles,
36
32
  useShadCNAnimations,
37
33
  useUnderverseUIConfig
38
- } from "./chunk-TETMVVUP.js";
34
+ } from "./chunk-VDIAFUIE.js";
39
35
  import {
40
36
  ForceInternalTranslationsProvider,
41
37
  NextIntlAdapter,
@@ -44,6 +40,12 @@ import {
44
40
  UnderverseNextIntlProvider,
45
41
  cn,
46
42
  en_default,
43
+ formControlFixedClass,
44
+ formControlGroupOutlineClass,
45
+ formControlLabelClass,
46
+ formControlOutlineClass,
47
+ formControlSizeStyles,
48
+ formControlValueClass,
47
49
  getUnderverseDefaultTranslation,
48
50
  ja_default,
49
51
  ko_default,
@@ -55,7 +57,7 @@ import {
55
57
  useUnderverseLocale,
56
58
  useUnderverseTranslations,
57
59
  vi_default
58
- } from "./chunk-PLHJWXCW.js";
60
+ } from "./chunk-CKG2QLQL.js";
59
61
  import {
60
62
  __export,
61
63
  __require
@@ -854,7 +856,7 @@ function useOverlayScrollbarTarget(targetRef, options = {}) {
854
856
  var OverlayScrollbarProvider_default = OverlayScrollbarProvider;
855
857
 
856
858
  // src/components/Input.tsx
857
- import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
859
+ import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
858
860
  var Input = forwardRef3(
859
861
  ({
860
862
  label,
@@ -877,6 +879,7 @@ var Input = forwardRef3(
877
879
  value,
878
880
  maxLength,
879
881
  rightAddon,
882
+ rightSection,
880
883
  borderMode,
881
884
  ...rest
882
885
  }, ref) => {
@@ -896,19 +899,19 @@ var Input = forwardRef3(
896
899
  const containerSpacing = size === "xs" || size === "sm" ? "space-y-1.5" : "space-y-2";
897
900
  const variantStyles5 = {
898
901
  default: {
899
- container: "bg-background border border-input hover:border-accent-foreground/20",
900
- focus: "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent",
901
- error: "border-destructive focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-destructive focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent"
902
+ container: cn("bg-background", formControlOutlineClass),
903
+ focus: "",
904
+ error: "border-destructive focus-visible:outline-none focus-visible:border-destructive"
902
905
  },
903
906
  filled: {
904
907
  container: "bg-muted/50 border border-transparent hover:bg-muted/70",
905
908
  focus: "focus-visible:outline-none focus-visible:bg-background focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent",
906
- error: "bg-destructive/10 border-destructive focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-destructive focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent"
909
+ error: "bg-destructive/10 border-destructive focus-visible:outline-none focus-visible:border-destructive"
907
910
  },
908
911
  outlined: {
909
912
  container: "bg-transparent border border-border/50 hover:border-accent-foreground/30",
910
913
  focus: "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent",
911
- error: "border-destructive focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-destructive focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent"
914
+ error: "border-destructive focus-visible:outline-none focus-visible:border-destructive"
912
915
  },
913
916
  minimal: {
914
917
  container: "bg-transparent border-0 border-b border-border/50 hover:border-accent-foreground/30",
@@ -1048,7 +1051,7 @@ var Input = forwardRef3(
1048
1051
  radiusClass,
1049
1052
  // Icon padding adjustments
1050
1053
  LeftIcon && "pl-10",
1051
- (RightIcon || showPasswordToggle || clearable || loading2 || success || errMsg) && "pr-10",
1054
+ (RightIcon || showPasswordToggle || clearable || loading2 || success || errMsg || rightSection) && "pr-10",
1052
1055
  // Variant styles
1053
1056
  variantStyles5[variant].container,
1054
1057
  errMsg ? variantStyles5[variant].error : variantStyles5[variant].focus,
@@ -1061,45 +1064,57 @@ var Input = forwardRef3(
1061
1064
  ...restInput
1062
1065
  }
1063
1066
  ),
1064
- /* @__PURE__ */ jsxs5("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1", children: [
1065
- getStatusIcon(),
1066
- RightIcon && !loading2 && !success && !errMsg && /* @__PURE__ */ jsx6(RightIcon, { className: cn("text-muted-foreground", sizeStyles7[size].icon) }),
1067
- clearable && hasValue && !loading2 && /* @__PURE__ */ jsx6(
1068
- "button",
1069
- {
1070
- type: "button",
1071
- onClick: () => {
1072
- if (onClear) return onClear();
1073
- rest.onChange?.({ target: { value: "" } });
1074
- },
1075
- className: cn(
1076
- "flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors rounded-md",
1077
- "focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",
1078
- "active:bg-accent active:text-accent-foreground",
1079
- sizeStyles7[size].iconButton
1080
- ),
1081
- tabIndex: 0,
1082
- "aria-label": gi18n.clearInput ?? "Clear input",
1083
- children: /* @__PURE__ */ jsx6(X, { className: sizeStyles7[size].icon })
1084
- }
1085
- ),
1086
- showPasswordToggle && /* @__PURE__ */ jsx6(
1087
- "button",
1088
- {
1089
- type: "button",
1090
- onClick: () => setShowPassword(!showPassword),
1091
- className: cn(
1092
- "flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors rounded-full",
1093
- "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring/40",
1094
- "active:bg-accent/50 active:text-accent-foreground",
1095
- sizeStyles7[size].iconButton
1096
- ),
1097
- tabIndex: 0,
1098
- "aria-label": showPassword ? gi18n.hidePassword ?? "Hide password" : gi18n.showPassword ?? "Show password",
1099
- children: showPassword ? /* @__PURE__ */ jsx6(EyeOff, { className: sizeStyles7[size].icon }) : /* @__PURE__ */ jsx6(Eye, { className: sizeStyles7[size].icon })
1100
- }
1101
- )
1102
- ] }),
1067
+ /* @__PURE__ */ jsxs5(
1068
+ "div",
1069
+ {
1070
+ className: cn(
1071
+ "absolute z-10 flex items-center gap-1",
1072
+ rightSection ? "inset-y-0 right-0" : "right-3 top-1/2 -translate-y-1/2"
1073
+ ),
1074
+ children: [
1075
+ /* @__PURE__ */ jsxs5("div", { className: cn("flex items-center gap-1", rightSection && "px-1"), children: [
1076
+ getStatusIcon(),
1077
+ RightIcon && !loading2 && !success && !errMsg && /* @__PURE__ */ jsx6(RightIcon, { className: cn("text-muted-foreground", sizeStyles7[size].icon) }),
1078
+ clearable && hasValue && !loading2 && /* @__PURE__ */ jsx6(
1079
+ "button",
1080
+ {
1081
+ type: "button",
1082
+ onClick: () => {
1083
+ if (onClear) return onClear();
1084
+ rest.onChange?.({ target: { value: "" } });
1085
+ },
1086
+ className: cn(
1087
+ "flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors rounded-md",
1088
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",
1089
+ "active:bg-accent active:text-accent-foreground",
1090
+ sizeStyles7[size].iconButton
1091
+ ),
1092
+ tabIndex: 0,
1093
+ "aria-label": gi18n.clearInput ?? "Clear input",
1094
+ children: /* @__PURE__ */ jsx6(X, { className: sizeStyles7[size].icon })
1095
+ }
1096
+ ),
1097
+ showPasswordToggle && /* @__PURE__ */ jsx6(
1098
+ "button",
1099
+ {
1100
+ type: "button",
1101
+ onClick: () => setShowPassword(!showPassword),
1102
+ className: cn(
1103
+ "flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors rounded-full",
1104
+ "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring/40",
1105
+ "active:bg-accent/50 active:text-accent-foreground",
1106
+ sizeStyles7[size].iconButton
1107
+ ),
1108
+ tabIndex: 0,
1109
+ "aria-label": showPassword ? gi18n.hidePassword ?? "Hide password" : gi18n.showPassword ?? "Show password",
1110
+ children: showPassword ? /* @__PURE__ */ jsx6(EyeOff, { className: sizeStyles7[size].icon }) : /* @__PURE__ */ jsx6(Eye, { className: sizeStyles7[size].icon })
1111
+ }
1112
+ )
1113
+ ] }),
1114
+ rightSection
1115
+ ]
1116
+ }
1117
+ ),
1103
1118
  rightAddon,
1104
1119
  variant === "minimal" && /* @__PURE__ */ jsx6(
1105
1120
  "div",
@@ -1134,27 +1149,128 @@ var Input = forwardRef3(
1134
1149
  }
1135
1150
  );
1136
1151
  Input.displayName = "Input";
1152
+ var searchButtonWidthStyles = {
1153
+ xs: "w-6",
1154
+ sm: "w-8",
1155
+ md: "w-10",
1156
+ lg: "w-12",
1157
+ xl: "w-14"
1158
+ };
1159
+ var searchButtonPaddingStyles = {
1160
+ xs: "pr-14",
1161
+ sm: "pr-18",
1162
+ md: "pr-20",
1163
+ lg: "pr-24",
1164
+ xl: "pr-28"
1165
+ };
1166
+ var searchButtonRadiusStyles = {
1167
+ none: "rounded-r-none",
1168
+ sm: "rounded-r-sm",
1169
+ md: "rounded-r-md",
1170
+ lg: "rounded-r-lg",
1171
+ xl: "rounded-r-xl",
1172
+ "2xl": "rounded-r-2xl",
1173
+ "3xl": "rounded-r-3xl",
1174
+ full: "rounded-r-full",
1175
+ daewoo: "rounded-r",
1176
+ infiniq: "rounded-r-full"
1177
+ };
1137
1178
  var SearchInput = forwardRef3(
1138
- ({ onSearch, searchDelay = 300, placeholder = "Search\u2026", ...props }, ref) => {
1139
- const [searchValue, setSearchValue] = useState3(props.value || "");
1179
+ ({
1180
+ mode = "default",
1181
+ onSearch,
1182
+ searchDelay = 300,
1183
+ searchButtonLabel = "Search",
1184
+ placeholder = "Search\u2026",
1185
+ value,
1186
+ defaultValue,
1187
+ onChange,
1188
+ onClear,
1189
+ onKeyDown,
1190
+ clearable = true,
1191
+ size = "md",
1192
+ className,
1193
+ disabled,
1194
+ loading: loading2 = false,
1195
+ rightSection,
1196
+ borderMode,
1197
+ ...props
1198
+ }, ref) => {
1199
+ const [uncontrolledValue, setUncontrolledValue] = useState3(defaultValue ?? "");
1200
+ const isControlled = value !== void 0;
1201
+ const searchValue = isControlled ? value : uncontrolledValue;
1202
+ const searchText = String(searchValue ?? "");
1203
+ const globalConfig = useUnderverseUIConfig();
1204
+ const resolvedBorderMode = borderMode ?? globalConfig.input?.borderMode ?? globalConfig.borderMode ?? "full";
1205
+ const searchButtonRadiusClass = searchButtonRadiusStyles[resolvedBorderMode] ?? getBorderRadiusClass(resolvedBorderMode);
1206
+ const triggerSearch = useCallback2(() => {
1207
+ onSearch?.(searchText);
1208
+ }, [onSearch, searchText]);
1140
1209
  React5.useEffect(() => {
1141
- if (!onSearch) return;
1210
+ if (!onSearch || mode !== "default") return;
1142
1211
  const timer = setTimeout(() => {
1143
- onSearch(searchValue);
1212
+ onSearch(searchText);
1144
1213
  }, searchDelay);
1145
1214
  return () => clearTimeout(timer);
1146
- }, [searchValue, onSearch, searchDelay]);
1215
+ }, [mode, onSearch, searchDelay, searchText]);
1216
+ const searchButton = mode === "button" ? /* @__PURE__ */ jsx6(
1217
+ "button",
1218
+ {
1219
+ type: "button",
1220
+ onClick: triggerSearch,
1221
+ disabled: disabled || loading2,
1222
+ className: cn(
1223
+ "flex h-full shrink-0 cursor-pointer items-center justify-center border-l border-border bg-transparent text-foreground",
1224
+ "transition-colors hover:bg-accent hover:text-accent-foreground",
1225
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",
1226
+ "disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent",
1227
+ searchButtonWidthStyles[size],
1228
+ searchButtonRadiusClass
1229
+ ),
1230
+ "aria-label": searchButtonLabel,
1231
+ children: /* @__PURE__ */ jsx6(Search, { className: formControlSizeStyles[size].icon, "aria-hidden": "true" })
1232
+ }
1233
+ ) : null;
1147
1234
  return /* @__PURE__ */ jsx6(
1148
1235
  Input,
1149
1236
  {
1150
1237
  ref,
1151
1238
  type: "search",
1152
- leftIcon: Search,
1239
+ leftIcon: mode === "default" ? Search : void 0,
1153
1240
  placeholder,
1154
- clearable: true,
1241
+ clearable,
1155
1242
  value: searchValue,
1156
- onChange: (e) => setSearchValue(e.target.value),
1157
- onClear: () => setSearchValue(""),
1243
+ onChange: (event) => {
1244
+ if (!isControlled) setUncontrolledValue(event.target.value);
1245
+ onChange?.(event);
1246
+ },
1247
+ onClear: () => {
1248
+ if (!isControlled) {
1249
+ setUncontrolledValue("");
1250
+ } else if (!onClear && onChange) {
1251
+ onChange({ target: { value: "" }, currentTarget: { value: "" } });
1252
+ }
1253
+ onClear?.();
1254
+ },
1255
+ onKeyDown: (event) => {
1256
+ onKeyDown?.(event);
1257
+ if (mode === "button" && event.key === "Enter" && !event.defaultPrevented && !event.nativeEvent.isComposing) {
1258
+ triggerSearch();
1259
+ }
1260
+ },
1261
+ size,
1262
+ className: cn(
1263
+ "[&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none",
1264
+ mode === "button" && searchButtonPaddingStyles[size],
1265
+ className
1266
+ ),
1267
+ disabled,
1268
+ loading: loading2,
1269
+ rightSection: mode === "button" ? /* @__PURE__ */ jsxs5(Fragment2, { children: [
1270
+ rightSection,
1271
+ searchButton
1272
+ ] }) : rightSection,
1273
+ borderMode,
1158
1274
  ...props
1159
1275
  }
1160
1276
  );
@@ -1371,7 +1487,7 @@ var Textarea = forwardRef3(
1371
1487
  [ref]
1372
1488
  );
1373
1489
  const variantStyles5 = {
1374
- default: "bg-background border border-input hover:border-accent-foreground/20 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent",
1490
+ default: cn("bg-background", formControlOutlineClass),
1375
1491
  filled: "bg-muted/50 border border-transparent hover:bg-muted/70 focus-visible:outline-none focus-visible:bg-background focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent",
1376
1492
  outlined: "bg-transparent border border-border/50 hover:border-accent-foreground/30 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent",
1377
1493
  minimal: "bg-transparent border-0 border-b border-border/50 hover:border-accent-foreground/30 focus-visible:outline-none focus-visible:border-ring focus-visible:ring-0 rounded-none"
@@ -1439,7 +1555,7 @@ var Textarea = forwardRef3(
1439
1555
  "disabled:cursor-not-allowed disabled:opacity-50",
1440
1556
  sizeStyles7[size],
1441
1557
  variantStyles5[variant],
1442
- error && "border-destructive focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-destructive focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-transparent",
1558
+ error && "border-destructive focus-visible:outline-none focus-visible:border-destructive",
1443
1559
  resizeClasses[resize],
1444
1560
  isFocused && "shadow-md",
1445
1561
  variant !== "minimal" && "shadow-sm",
@@ -2113,8 +2229,9 @@ var StickerPicker = ({
2113
2229
  value: search,
2114
2230
  onChange: (e) => setSearch(e.target.value),
2115
2231
  className: cn(
2116
- "w-full rounded-2xl border border-border/10 bg-muted/20 py-2 pl-9.5 pr-9 text-sm transition-all duration-300",
2117
- "placeholder:text-muted-foreground/60 focus:outline-none focus:ring-2 focus:ring-primary/15 focus:border-primary/20",
2232
+ "w-full rounded-2xl bg-muted/20 py-2 pl-9.5 pr-9 text-sm transition-all duration-300",
2233
+ formControlOutlineClass,
2234
+ "placeholder:text-muted-foreground/60",
2118
2235
  "focus:bg-background/90 focus:shadow-[0_0_12px_rgba(var(--color-primary-rgb),0.04)]"
2119
2236
  )
2120
2237
  }
@@ -2372,11 +2489,11 @@ var TagInput = forwardRef4(
2372
2489
  className: cn(
2373
2490
  "flex items-center gap-1.5 cursor-text",
2374
2491
  formControlFixedClass,
2375
- "bg-background border border-input",
2492
+ "bg-background",
2493
+ formControlGroupOutlineClass,
2376
2494
  "transition-all duration-200",
2377
- "hover:border-accent-foreground/20",
2378
2495
  getBorderRadiusClass(resolvedBorderMode),
2379
- isFocused && "ring-1 ring-ring ring-offset-1 ring-offset-background border-transparent shadow-md",
2496
+ isFocused && "shadow-md",
2380
2497
  disabled && "opacity-50 cursor-not-allowed",
2381
2498
  sizeStyles7[size].container
2382
2499
  ),
@@ -2996,7 +3113,7 @@ var Skeleton_default = Skeleton;
2996
3113
  // src/components/Progress.tsx
2997
3114
  import React13 from "react";
2998
3115
  import { Check as Check2, X as X4, Clock } from "lucide-react";
2999
- import { Fragment as Fragment2, jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
3116
+ import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
3000
3117
  var variantStyles2 = {
3001
3118
  default: "bg-muted-foreground",
3002
3119
  primary: "bg-linear-to-r from-primary via-primary/90 to-primary",
@@ -3157,7 +3274,7 @@ var CircularProgress = ({
3157
3274
  ]
3158
3275
  }
3159
3276
  ),
3160
- /* @__PURE__ */ jsx15("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-center", children: children ? children : /* @__PURE__ */ jsxs11(Fragment2, { children: [
3277
+ /* @__PURE__ */ jsx15("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-center", children: children ? children : /* @__PURE__ */ jsxs11(Fragment3, { children: [
3161
3278
  getContentIcon(),
3162
3279
  showValue && !indeterminate && /* @__PURE__ */ jsx15("span", { className: cn("text-sm font-semibold", isComplete ? "text-success" : isError ? "text-destructive" : "text-foreground"), children: isComplete ? "\u2713" : isError ? "\u2717" : `${Math.round(percentage)}%` }),
3163
3280
  indeterminate && /* @__PURE__ */ jsx15(Clock, { className: "w-4 h-4 text-muted-foreground animate-pulse" })
@@ -4473,7 +4590,7 @@ import * as React19 from "react";
4473
4590
  import { useId as useId4 } from "react";
4474
4591
  import { useVirtualizer } from "@tanstack/react-virtual";
4475
4592
  import { ChevronDown, Search as Search4, SearchX, Check as Check3, X as X8 } from "lucide-react";
4476
- import { Fragment as Fragment3, jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
4593
+ import { Fragment as Fragment4, jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
4477
4594
  var getOptionLabel = (option) => {
4478
4595
  return typeof option === "string" ? option : option.label;
4479
4596
  };
@@ -4923,7 +5040,7 @@ var Combobox = ({
4923
5040
  xl: formControlSizeStyles.xl.control
4924
5041
  };
4925
5042
  const variantStyles5 = {
4926
- default: "border border-input bg-background hover:bg-accent/5 hover:border-primary/40",
5043
+ default: "bg-background hover:bg-accent/5",
4927
5044
  outline: "border-2 border-input bg-transparent hover:border-primary/60",
4928
5045
  ghost: "border-0 bg-transparent hover:bg-accent/50",
4929
5046
  filled: "border-0 bg-muted/50 hover:bg-muted/80"
@@ -4956,17 +5073,17 @@ var Combobox = ({
4956
5073
  className: cn(
4957
5074
  "group flex w-full items-center justify-between transition-all duration-200",
4958
5075
  formControlFixedClass,
5076
+ formControlOutlineClass,
4959
5077
  radiusClass,
4960
5078
  sizeStyles7[size],
4961
5079
  variantStyles5[variant],
4962
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:border-primary",
4963
5080
  "disabled:cursor-not-allowed disabled:opacity-50",
4964
- open && "border-primary",
4965
- !!effectiveError && "border-destructive focus-visible:ring-destructive/30",
5081
+ open && "border-ring",
5082
+ !!effectiveError && "border-destructive",
4966
5083
  className
4967
5084
  )
4968
5085
  };
4969
- const triggerContents = /* @__PURE__ */ jsxs18(Fragment3, { children: [
5086
+ const triggerContents = /* @__PURE__ */ jsxs18(Fragment4, { children: [
4970
5087
  selectedIcon && /* @__PURE__ */ jsx22("span", { className: cn("mr-2 flex shrink-0 items-center justify-center overflow-hidden text-primary", formControlSizeStyles[size].icon), children: selectedIcon }),
4971
5088
  /* @__PURE__ */ jsx22("span", { className: cn(formControlValueClass, "text-left", !displayValue && "text-muted-foreground", fontBold && "font-semibold"), children: renderValue && selectedOption ? renderValue(selectedOption) : displayValue || placeholder }),
4972
5089
  /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1.5 ml-2 shrink-0", children: [
@@ -5028,6 +5145,7 @@ var Combobox = ({
5028
5145
  formControlLabelClass,
5029
5146
  "transition-colors duration-200",
5030
5147
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary",
5148
+ open && "text-primary",
5031
5149
  effectiveError && "text-destructive",
5032
5150
  labelClassName
5033
5151
  ),
@@ -5814,7 +5932,7 @@ function parseDateString(str, locale = "en") {
5814
5932
  import { Calendar, ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight3, Sparkles, X as XIcon } from "lucide-react";
5815
5933
  import * as React23 from "react";
5816
5934
  import { useId as useId5 } from "react";
5817
- import { Fragment as Fragment4, jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
5935
+ import { Fragment as Fragment5, jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
5818
5936
  function normalizeToLocalDate(date) {
5819
5937
  if (!date) return null;
5820
5938
  return new Date(date.getFullYear(), date.getMonth(), date.getDate());
@@ -6205,7 +6323,7 @@ var DatePicker = ({
6205
6323
  }
6206
6324
  )
6207
6325
  ] }),
6208
- viewMode === "calendar" && /* @__PURE__ */ jsxs20(Fragment4, { children: [
6326
+ viewMode === "calendar" && /* @__PURE__ */ jsxs20(Fragment5, { children: [
6209
6327
  /* @__PURE__ */ jsx27("div", { className: cn("grid grid-cols-7 gap-1 mb-2 px-0.5"), children: (weekdayLabels || (locale === "vi" ? ["CN", "T2", "T3", "T4", "T5", "T6", "T7"] : ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"])).map(
6210
6328
  (day, idx) => /* @__PURE__ */ jsx27(
6211
6329
  "div",
@@ -6297,6 +6415,7 @@ var DatePicker = ({
6297
6415
  formControlLabelClass,
6298
6416
  "transition-colors duration-300 cursor-pointer",
6299
6417
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary hover:text-primary",
6418
+ isOpen && "text-primary",
6300
6419
  effectiveError && "text-destructive",
6301
6420
  labelClassName
6302
6421
  ),
@@ -6346,19 +6465,19 @@ var DatePicker = ({
6346
6465
  {
6347
6466
  ref: triggerRef,
6348
6467
  className: cn(
6349
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
6468
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
6350
6469
  formControlFixedClass,
6470
+ formControlGroupOutlineClass,
6351
6471
  getBorderRadiusClass(resolvedBorderMode),
6352
6472
  sizeStyles7[size].trigger,
6353
6473
  formControlSizeStyles[requestedSize].control,
6354
6474
  disabled ? "border-border/40 opacity-50 cursor-not-allowed" : [
6355
- "border-border/60 hover:border-primary/40",
6356
- "focus-within:border-primary focus-within:ring-0",
6475
+ "focus-within:border-ring",
6357
6476
  "hover:bg-accent/10"
6358
6477
  ],
6359
6478
  "transition-all duration-300 ease-out",
6360
- isOpen && !isFocused && "border-primary shadow-lg shadow-primary/10",
6361
- effectiveError && "border-destructive/60 focus-within:ring-destructive/50 bg-destructive/5",
6479
+ isOpen && "border-ring shadow-lg shadow-primary/10",
6480
+ effectiveError && "border-destructive/60 bg-destructive/5",
6362
6481
  className
6363
6482
  ),
6364
6483
  children: [
@@ -6976,7 +7095,7 @@ var DateRangePicker = ({
6976
7095
  }
6977
7096
  )
6978
7097
  ] }),
6979
- viewMode === "calendar" && /* @__PURE__ */ jsxs20(Fragment4, { children: [
7098
+ viewMode === "calendar" && /* @__PURE__ */ jsxs20(Fragment5, { children: [
6980
7099
  /* @__PURE__ */ jsx27("div", { className: cn("grid grid-cols-7 gap-1 px-0.5", size === "sm" ? "mb-1" : size === "lg" ? "mb-3" : "mb-2"), children: (locale === "vi" ? ["CN", "T2", "T3", "T4", "T5", "T6", "T7"] : ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]).map((d, idx) => /* @__PURE__ */ jsx27(
6981
7100
  "div",
6982
7101
  {
@@ -7057,6 +7176,7 @@ var DateRangePicker = ({
7057
7176
  formControlLabelClass,
7058
7177
  "transition-colors duration-300",
7059
7178
  disabled ? "text-muted-foreground cursor-not-allowed" : "text-foreground group-focus-within:text-primary hover:text-primary cursor-pointer",
7179
+ isOpen && "text-primary",
7060
7180
  effectiveError && "text-destructive",
7061
7181
  labelClassName
7062
7182
  ),
@@ -7105,19 +7225,19 @@ var DateRangePicker = ({
7105
7225
  {
7106
7226
  ref: triggerRef,
7107
7227
  className: cn(
7108
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
7228
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
7109
7229
  formControlFixedClass,
7230
+ formControlGroupOutlineClass,
7110
7231
  getBorderRadiusClass(resolvedBorderMode),
7111
7232
  sizeStyles7[size].trigger,
7112
7233
  formControlSizeStyles[requestedSize].control,
7113
7234
  disabled ? "border-border/40 opacity-50 cursor-not-allowed" : [
7114
- "border-border/60 hover:border-primary/40",
7115
- "focus-within:border-primary focus-within:ring-0",
7235
+ "focus-within:border-ring",
7116
7236
  "hover:bg-accent/10"
7117
7237
  ],
7118
7238
  "transition-all duration-300 ease-out",
7119
- isOpen && !isFocused && "border-primary shadow-lg shadow-primary/10",
7120
- effectiveError && "border-destructive/60 focus-within:ring-destructive/50 bg-destructive/5"
7239
+ isOpen && "border-ring shadow-lg shadow-primary/10",
7240
+ effectiveError && "border-destructive/60 bg-destructive/5"
7121
7241
  ),
7122
7242
  children: [
7123
7243
  /* @__PURE__ */ jsxs20("div", { className: cn("flex min-h-0 min-w-0 flex-1 items-center overflow-hidden", size === "sm" ? "gap-1.5" : "gap-2.5"), children: [
@@ -7400,7 +7520,7 @@ function getLeapMonthOffset(a11, timeZone) {
7400
7520
  }
7401
7521
 
7402
7522
  // src/components/LunarDatePicker.tsx
7403
- import { Fragment as Fragment5, jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
7523
+ import { Fragment as Fragment6, jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
7404
7524
  function toSolarDate(value) {
7405
7525
  if (!value) return null;
7406
7526
  const solar = lunarToSolar({
@@ -7904,7 +8024,7 @@ var LunarDatePicker = ({
7904
8024
  }
7905
8025
  )
7906
8026
  ] }),
7907
- viewMode === "calendar" && /* @__PURE__ */ jsxs21(Fragment5, { children: [
8027
+ viewMode === "calendar" && /* @__PURE__ */ jsxs21(Fragment6, { children: [
7908
8028
  /* @__PURE__ */ jsx28("div", { className: cn("grid grid-cols-7 gap-1 mb-2 px-0.5"), children: (weekdayLabels || (locale === "vi" ? ["CN", "T2", "T3", "T4", "T5", "T6", "T7"] : ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"])).map(
7909
8029
  (day, idx) => /* @__PURE__ */ jsx28(
7910
8030
  "div",
@@ -7996,6 +8116,7 @@ var LunarDatePicker = ({
7996
8116
  formControlLabelClass,
7997
8117
  "transition-colors duration-300 cursor-pointer",
7998
8118
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary hover:text-primary",
8119
+ isOpen && "text-primary",
7999
8120
  effectiveError && "text-destructive",
8000
8121
  labelClassName
8001
8122
  ),
@@ -8045,19 +8166,19 @@ var LunarDatePicker = ({
8045
8166
  {
8046
8167
  ref: triggerRef,
8047
8168
  className: cn(
8048
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
8169
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
8049
8170
  formControlFixedClass,
8171
+ formControlGroupOutlineClass,
8050
8172
  getBorderRadiusClass(resolvedBorderMode),
8051
8173
  sizeStyles7[size].trigger,
8052
8174
  formControlSizeStyles[requestedSize].control,
8053
8175
  disabled ? "border-border/40 opacity-50 cursor-not-allowed" : [
8054
- "border-border/60 hover:border-primary/40",
8055
- "focus-within:border-primary focus-within:ring-0",
8176
+ "focus-within:border-ring",
8056
8177
  "hover:bg-accent/10"
8057
8178
  ],
8058
8179
  "transition-all duration-300 ease-out",
8059
- isOpen && !isFocused && "border-primary shadow-lg shadow-primary/10",
8060
- effectiveError && "border-destructive/60 focus-within:ring-destructive/50 bg-destructive/5",
8180
+ isOpen && "border-ring shadow-lg shadow-primary/10",
8181
+ effectiveError && "border-destructive/60 bg-destructive/5",
8061
8182
  className
8062
8183
  ),
8063
8184
  children: [
@@ -8544,7 +8665,7 @@ var LunarDateRangePicker = ({
8544
8665
  }
8545
8666
  )
8546
8667
  ] }),
8547
- viewMode === "calendar" && /* @__PURE__ */ jsxs21(Fragment5, { children: [
8668
+ viewMode === "calendar" && /* @__PURE__ */ jsxs21(Fragment6, { children: [
8548
8669
  /* @__PURE__ */ jsx28("div", { className: cn("grid grid-cols-7 gap-1 px-0.5", size === "sm" ? "mb-1" : size === "lg" ? "mb-3" : "mb-2"), children: (locale === "vi" ? ["CN", "T2", "T3", "T4", "T5", "T6", "T7"] : ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]).map((d, idx) => /* @__PURE__ */ jsx28(
8549
8670
  "div",
8550
8671
  {
@@ -8626,6 +8747,7 @@ var LunarDateRangePicker = ({
8626
8747
  formControlLabelClass,
8627
8748
  "transition-colors duration-300",
8628
8749
  disabled ? "text-muted-foreground cursor-not-allowed" : "text-foreground group-focus-within:text-primary hover:text-primary cursor-pointer",
8750
+ isOpen && "text-primary",
8629
8751
  effectiveError && "text-destructive",
8630
8752
  labelClassName
8631
8753
  ),
@@ -8685,19 +8807,19 @@ var LunarDateRangePicker = ({
8685
8807
  "aria-required": required,
8686
8808
  "aria-invalid": !!effectiveError,
8687
8809
  className: cn(
8688
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
8810
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
8689
8811
  formControlFixedClass,
8812
+ formControlGroupOutlineClass,
8690
8813
  getBorderRadiusClass(borderMode ?? "full"),
8691
8814
  sizeStyles7[size].trigger,
8692
8815
  formControlSizeStyles[requestedSize].control,
8693
8816
  disabled ? "border-border/40 opacity-50 cursor-not-allowed" : [
8694
- "border-border/60 hover:border-primary/40",
8695
- "focus-within:border-primary focus-within:ring-0",
8817
+ "focus-within:border-ring",
8696
8818
  "hover:bg-accent/10"
8697
8819
  ],
8698
8820
  "transition-all duration-300 ease-out text-left",
8699
- isOpen && "border-primary shadow-lg shadow-primary/10",
8700
- effectiveError && "border-destructive/60 focus-within:ring-destructive/50 bg-destructive/5"
8821
+ isOpen && "border-ring shadow-lg shadow-primary/10",
8822
+ effectiveError && "border-destructive/60 bg-destructive/5"
8701
8823
  ),
8702
8824
  children: [
8703
8825
  /* @__PURE__ */ jsxs21("div", { className: cn("flex min-h-0 min-w-0 flex-1 items-center overflow-hidden", size === "sm" ? "gap-1.5" : "gap-2.5"), children: [
@@ -9376,18 +9498,18 @@ function MonthYearPicker({
9376
9498
  "aria-required": required,
9377
9499
  "aria-invalid": !!effectiveError,
9378
9500
  className: cn(
9379
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
9501
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
9380
9502
  getBorderRadiusClass(resolvedBorderMode),
9381
9503
  sz.control,
9382
9504
  formControlSizeStyles[requestedSize].control,
9383
9505
  formControlFixedClass,
9384
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
9506
+ formControlOutlineClass,
9385
9507
  "disabled:opacity-50 disabled:cursor-not-allowed",
9386
9508
  "transition-all duration-300 ease-out",
9387
- effectiveError && "border-destructive/60 focus-visible:ring-destructive/50 bg-destructive/5",
9388
- success && !effectiveError && "border-success/60 focus-visible:ring-success/50 bg-success/5",
9389
- !effectiveError && !success && "border-border/60 hover:border-primary/40 hover:bg-accent/10",
9390
- open && "border-primary shadow-lg shadow-primary/10",
9509
+ effectiveError && "border-destructive/60 bg-destructive/5",
9510
+ success && !effectiveError && "border-success/60 bg-success/5",
9511
+ !effectiveError && !success && "hover:bg-accent/10",
9512
+ open && "border-ring shadow-lg shadow-primary/10",
9391
9513
  className
9392
9514
  ),
9393
9515
  children: [
@@ -9569,7 +9691,7 @@ function MonthYearPicker({
9569
9691
  ] });
9570
9692
  }
9571
9693
  return /* @__PURE__ */ jsxs22("div", { className: cn("w-full", className), ...rest, children: [
9572
- label && /* @__PURE__ */ jsxs22("label", { className: cn(sz.label, "block mb-1.5 text-foreground/80", formControlLabelClass, effectiveError && "text-destructive", labelClassName), children: [
9694
+ label && /* @__PURE__ */ jsxs22("label", { className: cn(sz.label, "block mb-1.5 text-foreground/80", formControlLabelClass, open && "text-primary", effectiveError && "text-destructive", labelClassName), children: [
9573
9695
  label,
9574
9696
  required && /* @__PURE__ */ jsx29("span", { className: "text-destructive ml-0.5", children: "*" })
9575
9697
  ] }),
@@ -9611,7 +9733,7 @@ function MonthYearPicker({
9611
9733
  }
9612
9734
 
9613
9735
  // src/components/Calendar.tsx
9614
- import { Fragment as Fragment7, jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
9736
+ import { Fragment as Fragment8, jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
9615
9737
  var VIETNAM_HOLIDAYS = [
9616
9738
  { date: "01-01", name: "T\u1EBFt D\u01B0\u01A1ng l\u1ECBch", recurring: true },
9617
9739
  { date: "04-30", name: "Gi\u1EA3i ph\xF3ng mi\u1EC1n Nam", recurring: true },
@@ -10106,7 +10228,7 @@ function Calendar4({
10106
10228
  }
10107
10229
  )
10108
10230
  ] }),
10109
- display === "week" ? /* @__PURE__ */ jsxs23(Fragment7, { children: [
10231
+ display === "week" ? /* @__PURE__ */ jsxs23(Fragment8, { children: [
10110
10232
  showWeekdays && /* @__PURE__ */ jsx30("div", { className: cn("grid grid-cols-7", sz.grid, "mb-1 text-center text-muted-foreground font-medium"), children: weekdays.map((w) => /* @__PURE__ */ jsx30("div", { className: cn(sz.head), children: w }, `w-${w}`)) }),
10111
10233
  /* @__PURE__ */ jsx30("div", { className: cn("grid grid-cols-7", sz.grid), children: weekDays.map((d, idx) => {
10112
10234
  const inMonth = true;
@@ -10262,7 +10384,7 @@ function Calendar4({
10262
10384
  // src/components/TimePicker.tsx
10263
10385
  import * as React27 from "react";
10264
10386
  import { Clock as Clock2, X as X10, Check as Check5, Sun, Moon, Sunset, Coffee } from "lucide-react";
10265
- import { Fragment as Fragment8, jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
10387
+ import { Fragment as Fragment9, jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
10266
10388
  var pad = (n) => n.toString().padStart(2, "0");
10267
10389
  var clamp2 = (n, min, max) => Math.min(max, Math.max(min, n));
10268
10390
  var WHEEL_ITEM_HEIGHT2 = {
@@ -11091,18 +11213,18 @@ function TimePicker({
11091
11213
  "aria-required": required,
11092
11214
  "aria-invalid": !!effectiveError,
11093
11215
  className: cn(
11094
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
11216
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
11095
11217
  getBorderRadiusClass(resolvedBorderMode),
11096
11218
  sz.control,
11097
11219
  formControlSizeStyles[requestedSize].control,
11098
11220
  formControlFixedClass,
11099
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
11221
+ formControlOutlineClass,
11100
11222
  "disabled:opacity-50 disabled:cursor-not-allowed",
11101
11223
  "transition-all duration-300 ease-out",
11102
- effectiveError && "border-destructive/60 focus-visible:ring-destructive/50 bg-destructive/5",
11103
- success && !effectiveError && "border-success/60 focus-visible:ring-success/50 bg-success/5",
11104
- !effectiveError && !success && "border-border/60 hover:border-primary/40 hover:bg-accent/10",
11105
- open && "border-primary shadow-lg shadow-primary/10",
11224
+ effectiveError && "border-destructive/60 bg-destructive/5",
11225
+ success && !effectiveError && "border-success/60 bg-success/5",
11226
+ !effectiveError && !success && "hover:bg-accent/10",
11227
+ open && "border-ring shadow-lg shadow-primary/10",
11106
11228
  className
11107
11229
  ),
11108
11230
  children: [
@@ -11299,7 +11421,7 @@ function TimePicker({
11299
11421
  }
11300
11422
  );
11301
11423
  })(),
11302
- includeSeconds && /* @__PURE__ */ jsxs24(Fragment8, { children: [
11424
+ includeSeconds && /* @__PURE__ */ jsxs24(Fragment9, { children: [
11303
11425
  /* @__PURE__ */ jsx31("div", { className: cn("flex flex-col items-center justify-center", panelSz.separatorPad, compactPanel && "pt-6"), children: /* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-2", children: [
11304
11426
  /* @__PURE__ */ jsx31("div", { className: "w-1.5 h-1.5 rounded-full bg-primary/60" }),
11305
11427
  /* @__PURE__ */ jsx31("div", { className: "w-1.5 h-1.5 rounded-full bg-primary/60" })
@@ -11494,6 +11616,7 @@ function TimePicker({
11494
11616
  sz.label,
11495
11617
  formControlLabelClass,
11496
11618
  disabled ? "text-muted-foreground" : "text-foreground",
11619
+ open && "text-primary",
11497
11620
  effectiveError && "text-destructive",
11498
11621
  "cursor-pointer transition-colors hover:text-primary"
11499
11622
  ),
@@ -11737,6 +11860,7 @@ var DateTimePicker = ({
11737
11860
  sizeStyles7[size].label,
11738
11861
  formControlLabelClass,
11739
11862
  "text-foreground flex items-center gap-1",
11863
+ open && "text-primary",
11740
11864
  effectiveError && "text-destructive",
11741
11865
  labelClassName
11742
11866
  ),
@@ -11785,14 +11909,15 @@ var DateTimePicker = ({
11785
11909
  "aria-required": required,
11786
11910
  "aria-invalid": !!effectiveError,
11787
11911
  className: cn(
11788
- "flex w-full items-center justify-between border border-input bg-background",
11912
+ "flex w-full items-center justify-between bg-background",
11789
11913
  formControlFixedClass,
11914
+ formControlOutlineClass,
11790
11915
  getBorderRadiusClass(resolvedBorderMode),
11791
11916
  sizeStyles7[size].trigger,
11792
11917
  formControlSizeStyles[requestedSize].control,
11793
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
11794
11918
  disabled && "opacity-50 cursor-not-allowed",
11795
11919
  !displayValue && "text-muted-foreground",
11920
+ open && "border-ring",
11796
11921
  effectiveError && "border-destructive/60 bg-destructive/5"
11797
11922
  ),
11798
11923
  children: [
@@ -13286,7 +13411,7 @@ function useVisibleSlotRange(args) {
13286
13411
  }
13287
13412
 
13288
13413
  // src/components/CalendarTimeline/CalendarTimeline.tsx
13289
- import { Fragment as Fragment10, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
13414
+ import { Fragment as Fragment11, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
13290
13415
  function CalendarTimeline({
13291
13416
  resources,
13292
13417
  events,
@@ -14612,7 +14737,7 @@ function CalendarTimeline({
14612
14737
  ]
14613
14738
  }
14614
14739
  ),
14615
- !isViewOnly && (interactions?.resizableEvents ?? true) && ev.resizable !== false ? /* @__PURE__ */ jsxs31(Fragment10, { children: [
14740
+ !isViewOnly && (interactions?.resizableEvents ?? true) && ev.resizable !== false ? /* @__PURE__ */ jsxs31(Fragment11, { children: [
14616
14741
  /* @__PURE__ */ jsx38(
14617
14742
  "div",
14618
14743
  {
@@ -14792,7 +14917,7 @@ import * as React35 from "react";
14792
14917
  import { useId as useId10 } from "react";
14793
14918
  import { useVirtualizer as useVirtualizer2 } from "@tanstack/react-virtual";
14794
14919
  import { ChevronDown as ChevronDown4, Search as Search5, Check as Check6, SearchX as SearchX2, Loader2 as Loader23, X as X12, Sparkles as Sparkles3 } from "lucide-react";
14795
- import { Fragment as Fragment11, jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
14920
+ import { Fragment as Fragment12, jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
14796
14921
  var comboboxScrollClassName2 = [
14797
14922
  "scrollbar-thin",
14798
14923
  "[scrollbar-width:thin]",
@@ -15030,7 +15155,7 @@ var MultiCombobox = ({
15030
15155
  }
15031
15156
  };
15032
15157
  const variantStyles5 = {
15033
- default: "border border-input bg-background shadow-sm hover:border-primary/50",
15158
+ default: "bg-background shadow-sm",
15034
15159
  outline: "border-2 border-input bg-transparent hover:border-primary",
15035
15160
  ghost: "border border-transparent bg-muted/50 hover:bg-muted"
15036
15161
  };
@@ -15262,16 +15387,16 @@ var MultiCombobox = ({
15262
15387
  className: cn(
15263
15388
  "group flex w-full items-center gap-2 transition-all duration-200",
15264
15389
  formControlFixedClass,
15390
+ formControlOutlineClass,
15265
15391
  getBorderRadiusClass(resolvedBorderMode),
15266
15392
  sizeStyles7[size].trigger,
15267
15393
  variantStyles5[variant],
15268
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:border-primary",
15269
15394
  "disabled:cursor-not-allowed disabled:opacity-50",
15270
- open && "border-primary",
15271
- !!effectiveError && "border-destructive focus-visible:ring-destructive/30"
15395
+ open && "border-ring",
15396
+ !!effectiveError && "border-destructive"
15272
15397
  ),
15273
15398
  children: [
15274
- /* @__PURE__ */ jsx39("div", { className: "flex min-h-0 min-w-0 flex-1 items-center gap-1.5 overflow-hidden", children: value.length > 0 ? showTags ? /* @__PURE__ */ jsxs32(Fragment11, { children: [
15399
+ /* @__PURE__ */ jsx39("div", { className: "flex min-h-0 min-w-0 flex-1 items-center gap-1.5 overflow-hidden", children: value.length > 0 ? showTags ? /* @__PURE__ */ jsxs32(Fragment12, { children: [
15275
15400
  visibleTags.map((option) => {
15276
15401
  if (renderTag) {
15277
15402
  return /* @__PURE__ */ jsx39("span", { className: "inline-flex max-h-full min-w-0 shrink overflow-hidden", children: renderTag(option, () => handleRemove(option.value)) }, option.value);
@@ -15356,6 +15481,7 @@ var MultiCombobox = ({
15356
15481
  formControlLabelClass,
15357
15482
  "transition-colors duration-200",
15358
15483
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary",
15484
+ open && "text-primary",
15359
15485
  effectiveError && "text-destructive",
15360
15486
  labelClassName
15361
15487
  ),
@@ -15375,6 +15501,7 @@ var MultiCombobox = ({
15375
15501
  formControlLabelClass,
15376
15502
  "transition-colors duration-200",
15377
15503
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary",
15504
+ open && "text-primary",
15378
15505
  effectiveError && "text-destructive",
15379
15506
  labelClassName
15380
15507
  ),
@@ -15873,7 +16000,7 @@ var ToggleGroup = (props) => {
15873
16000
 
15874
16001
  // src/components/Slider.tsx
15875
16002
  import * as React37 from "react";
15876
- import { Fragment as Fragment12, jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
16003
+ import { Fragment as Fragment13, jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
15877
16004
  var SIZE_STYLES = {
15878
16005
  sm: {
15879
16006
  track: "h-1",
@@ -16131,7 +16258,7 @@ var Slider = React37.forwardRef(
16131
16258
  tooltipClassName
16132
16259
  }
16133
16260
  ),
16134
- isRange && /* @__PURE__ */ jsxs34(Fragment12, { children: [
16261
+ isRange && /* @__PURE__ */ jsxs34(Fragment13, { children: [
16135
16262
  /* @__PURE__ */ jsx41(
16136
16263
  SliderTooltip,
16137
16264
  {
@@ -16227,7 +16354,7 @@ var Slider = React37.forwardRef(
16227
16354
  }
16228
16355
  const minZ = activeThumb === "min" ? "z-20" : "z-10";
16229
16356
  const maxZ = activeThumb === "max" ? "z-20" : "z-10";
16230
- return /* @__PURE__ */ jsxs34(Fragment12, { children: [
16357
+ return /* @__PURE__ */ jsxs34(Fragment13, { children: [
16231
16358
  /* @__PURE__ */ jsx41(
16232
16359
  "div",
16233
16360
  {
@@ -16290,7 +16417,7 @@ Slider.displayName = "Slider";
16290
16417
  // src/components/OverlayControls.tsx
16291
16418
  import { Dot as Dot2, Maximize2, Pause, Play, RotateCcw, RotateCw, Volume2, VolumeX } from "lucide-react";
16292
16419
  import React38 from "react";
16293
- import { Fragment as Fragment13, jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
16420
+ import { Fragment as Fragment14, jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
16294
16421
  function resolveKeyboardEventElement(target) {
16295
16422
  if (target instanceof Element) return target;
16296
16423
  if (target instanceof Node) return target.parentElement;
@@ -16535,7 +16662,7 @@ function OverlayControls({
16535
16662
  const handleSliderMouseLeave = () => {
16536
16663
  setPreviewData(null);
16537
16664
  };
16538
- return /* @__PURE__ */ jsxs35(Fragment13, { children: [
16665
+ return /* @__PURE__ */ jsxs35(Fragment14, { children: [
16539
16666
  keyboardFeedback && /* @__PURE__ */ jsx42(
16540
16667
  "div",
16541
16668
  {
@@ -17373,6 +17500,7 @@ function CategoryTreeSelect(props) {
17373
17500
  className: cn(
17374
17501
  size === "sm" ? "text-xs" : size === "lg" ? "text-base" : "text-sm",
17375
17502
  disabled ? "text-muted-foreground" : "text-foreground",
17503
+ isOpen && "text-primary",
17376
17504
  effectiveError && "text-destructive",
17377
17505
  labelClassName
17378
17506
  ),
@@ -17508,7 +17636,7 @@ function CategoryTreeSelect(props) {
17508
17636
  }
17509
17637
  };
17510
17638
  const triggerVariantStyles = {
17511
- default: "border border-input bg-background shadow-sm hover:border-primary/50",
17639
+ default: "bg-background shadow-sm",
17512
17640
  outline: "border-2 border-input bg-transparent hover:border-primary",
17513
17641
  ghost: "border border-transparent bg-muted/50 hover:bg-muted",
17514
17642
  filled: "border border-transparent bg-muted/70 hover:bg-muted"
@@ -17625,14 +17753,14 @@ function CategoryTreeSelect(props) {
17625
17753
  className: cn(
17626
17754
  "group flex w-full items-center justify-between transition-all duration-200",
17627
17755
  formControlFixedClass,
17756
+ formControlOutlineClass,
17628
17757
  getBorderRadiusClass(resolvedBorderMode ?? "full"),
17629
17758
  "backdrop-blur-sm",
17630
17759
  triggerSizeStyles[size].button,
17631
17760
  triggerVariantStyles[variant],
17632
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
17633
17761
  disabled && "opacity-50 cursor-not-allowed hover:transform-none hover:shadow-none",
17634
- isOpen && "border-primary shadow-lg shadow-primary/10",
17635
- effectiveError && "border-destructive focus-visible:ring-destructive/30"
17762
+ isOpen && "border-ring shadow-lg shadow-primary/10",
17763
+ effectiveError && "border-destructive"
17636
17764
  ),
17637
17765
  children: [
17638
17766
  /* @__PURE__ */ jsxs36("div", { className: "flex min-h-0 min-w-0 flex-1 items-center gap-2.5 overflow-hidden text-left", children: [
@@ -17959,7 +18087,7 @@ import {
17959
18087
  Upload as Upload2
17960
18088
  } from "lucide-react";
17961
18089
  import { useCallback as useCallback16, useMemo as useMemo19, useRef as useRef19, useState as useState29 } from "react";
17962
- import { Fragment as Fragment14, jsx as jsx45, jsxs as jsxs38 } from "react/jsx-runtime";
18090
+ import { Fragment as Fragment15, jsx as jsx45, jsxs as jsxs38 } from "react/jsx-runtime";
17963
18091
  var formatFileSize = (bytes) => {
17964
18092
  if (bytes === 0) return "0 Bytes";
17965
18093
  const k = 1024;
@@ -18390,7 +18518,7 @@ function FileUpload({
18390
18518
  ] }),
18391
18519
  /* @__PURE__ */ jsx45("p", { className: cn("text-muted-foreground", size === "lg" ? "text-sm" : "text-xs"), children: supportedFormatsText || t("supportedFormats") || `Max ${maxSize}MB per file \u2022 Up to ${maxFiles} files` })
18392
18520
  ] }),
18393
- variant === "compact" && /* @__PURE__ */ jsxs38(Fragment14, { children: [
18521
+ variant === "compact" && /* @__PURE__ */ jsxs38(Fragment15, { children: [
18394
18522
  /* @__PURE__ */ jsx45("div", { className: cn("shrink-0 rounded-lg flex items-center justify-center", "bg-primary/10", currentSize.iconSize), children: /* @__PURE__ */ jsx45(Upload2, { className: cn("text-primary", size === "sm" ? "w-4 h-4" : "w-5 h-5") }) }),
18395
18523
  /* @__PURE__ */ jsxs38("div", { className: "flex-1 min-w-0", children: [
18396
18524
  /* @__PURE__ */ jsx45("p", { className: cn("font-medium truncate", currentSize.text), children: dragDropText || t("dragDropText") || "Drop files here or" }),
@@ -18457,7 +18585,7 @@ function FileUpload({
18457
18585
  // src/components/Carousel.tsx
18458
18586
  import * as React40 from "react";
18459
18587
  import { ChevronLeft as ChevronLeft6, ChevronRight as ChevronRight8 } from "lucide-react";
18460
- import { Fragment as Fragment15, jsx as jsx46, jsxs as jsxs39 } from "react/jsx-runtime";
18588
+ import { Fragment as Fragment16, jsx as jsx46, jsxs as jsxs39 } from "react/jsx-runtime";
18461
18589
  function Carousel({
18462
18590
  children,
18463
18591
  autoScroll = true,
@@ -18887,7 +19015,7 @@ function Carousel({
18887
19015
  })
18888
19016
  }
18889
19017
  ),
18890
- shouldShowArrows && totalSlides > effectiveSlidesToShow && /* @__PURE__ */ jsxs39(Fragment15, { children: [
19018
+ shouldShowArrows && totalSlides > effectiveSlidesToShow && /* @__PURE__ */ jsxs39(Fragment16, { children: [
18891
19019
  /* @__PURE__ */ jsx46(
18892
19020
  Button_default,
18893
19021
  {
@@ -19258,7 +19386,7 @@ function FallingIcons({
19258
19386
  // src/components/List.tsx
19259
19387
  import * as React42 from "react";
19260
19388
  import { ChevronRight as ChevronRight9 } from "lucide-react";
19261
- import { Fragment as Fragment16, jsx as jsx48, jsxs as jsxs41 } from "react/jsx-runtime";
19389
+ import { Fragment as Fragment17, jsx as jsx48, jsxs as jsxs41 } from "react/jsx-runtime";
19262
19390
  var SIZE_STYLES2 = {
19263
19391
  xs: { label: "text-xs", desc: "text-[11px]", icon: "h-3.5 w-3.5", avatar: "h-6 w-6" },
19264
19392
  sm: { label: "text-[13px]", desc: "text-xs", icon: "h-4 w-4", avatar: "h-8 w-8" },
@@ -19427,7 +19555,7 @@ var ListItem = React42.forwardRef(
19427
19555
  }
19428
19556
  }
19429
19557
  } : {};
19430
- const inner = /* @__PURE__ */ jsxs41(Fragment16, { children: [
19558
+ const inner = /* @__PURE__ */ jsxs41(Fragment17, { children: [
19431
19559
  /* @__PURE__ */ jsxs41("div", { className: cn("flex items-center gap-3 group/item relative max-md:gap-2.5", contentClassName), ...headerProps, children: [
19432
19560
  avatar && /* @__PURE__ */ jsx48("div", { className: cn("shrink-0", sz.avatar), children: typeof avatar === "string" ? /* @__PURE__ */ jsx48("img", { src: avatar, alt: "", className: cn("rounded-full object-cover", sz.avatar) }) : avatar }),
19433
19561
  Left && !avatar && /* @__PURE__ */ jsx48("span", { className: cn("text-muted-foreground shrink-0", sz.icon), children: /* @__PURE__ */ jsx48(Left, { className: cn(sz.icon) }) }),
@@ -19472,7 +19600,7 @@ var List_default = List;
19472
19600
  // src/components/Watermark.tsx
19473
19601
  import * as React43 from "react";
19474
19602
  import { createPortal as createPortal2 } from "react-dom";
19475
- import { Fragment as Fragment17, jsx as jsx49, jsxs as jsxs42 } from "react/jsx-runtime";
19603
+ import { Fragment as Fragment18, jsx as jsx49, jsxs as jsxs42 } from "react/jsx-runtime";
19476
19604
  var PRESETS2 = {
19477
19605
  confidential: { text: "CONFIDENTIAL", color: "rgba(220, 38, 38, 0.15)", rotate: -22, fontSize: 16, fontWeight: "bold" },
19478
19606
  draft: { text: "DRAFT", color: "rgba(59, 130, 246, 0.15)", rotate: -22, fontSize: 18, fontWeight: "bold" },
@@ -19751,7 +19879,7 @@ var Watermark = ({
19751
19879
  }
19752
19880
  );
19753
19881
  if (fullPage) {
19754
- return /* @__PURE__ */ jsxs42(Fragment17, { children: [
19882
+ return /* @__PURE__ */ jsxs42(Fragment18, { children: [
19755
19883
  children,
19756
19884
  typeof window !== "undefined" ? createPortal2(overlay, document.body) : null
19757
19885
  ] });
@@ -20335,11 +20463,13 @@ function ColorPicker({
20335
20463
  type: "button",
20336
20464
  disabled,
20337
20465
  className: cn(
20338
- "w-full border border-input bg-background flex items-center justify-between",
20466
+ "w-full bg-background flex items-center justify-between",
20467
+ formControlOutlineClass,
20339
20468
  getBorderRadiusClass(resolvedBorderMode),
20340
20469
  sizeClasses2[size],
20341
20470
  formControlFixedClass,
20342
- "hover:border-accent-foreground/30 transition-colors",
20471
+ "transition-colors",
20472
+ open && "border-ring",
20343
20473
  disabled && "opacity-50 cursor-not-allowed",
20344
20474
  triggerClassName
20345
20475
  ),
@@ -20938,7 +21068,7 @@ var MusicPlayer_default = MusicPlayer;
20938
21068
 
20939
21069
  // src/components/Grid.tsx
20940
21070
  import React47, { useId as useId13 } from "react";
20941
- import { Fragment as Fragment18, jsx as jsx53, jsxs as jsxs46 } from "react/jsx-runtime";
21071
+ import { Fragment as Fragment19, jsx as jsx53, jsxs as jsxs46 } from "react/jsx-runtime";
20942
21072
  var BP_MIN = {
20943
21073
  sm: 640,
20944
21074
  md: 768,
@@ -21095,7 +21225,7 @@ var GridItem = React47.forwardRef(
21095
21225
  st.opacity = 0;
21096
21226
  st.animation = `uvGridItemFadeIn 0.5s ease-out forwards`;
21097
21227
  }
21098
- return /* @__PURE__ */ jsxs46(Fragment18, { children: [
21228
+ return /* @__PURE__ */ jsxs46(Fragment19, { children: [
21099
21229
  animationDelay != null && /* @__PURE__ */ jsx53(
21100
21230
  "style",
21101
21231
  {
@@ -21125,13 +21255,13 @@ var Grid = Object.assign(GridRoot, { Item: GridItem });
21125
21255
  var Grid_default = Grid;
21126
21256
 
21127
21257
  // src/components/ClientOnly.tsx
21128
- import { Fragment as Fragment19, jsx as jsx54 } from "react/jsx-runtime";
21258
+ import { Fragment as Fragment20, jsx as jsx54 } from "react/jsx-runtime";
21129
21259
  function ClientOnly({ children, fallback = null }) {
21130
21260
  const hasMounted = useHydrated();
21131
21261
  if (!hasMounted) {
21132
- return /* @__PURE__ */ jsx54(Fragment19, { children: fallback });
21262
+ return /* @__PURE__ */ jsx54(Fragment20, { children: fallback });
21133
21263
  }
21134
- return /* @__PURE__ */ jsx54(Fragment19, { children });
21264
+ return /* @__PURE__ */ jsx54(Fragment20, { children });
21135
21265
  }
21136
21266
 
21137
21267
  // src/components/Loading.tsx
@@ -21313,7 +21443,7 @@ import React58 from "react";
21313
21443
 
21314
21444
  // src/components/DataTable/components/DataTableBody.tsx
21315
21445
  import React49 from "react";
21316
- import { Fragment as Fragment20, jsx as jsx57, jsxs as jsxs49 } from "react/jsx-runtime";
21446
+ import { Fragment as Fragment21, jsx as jsx57, jsxs as jsxs49 } from "react/jsx-runtime";
21317
21447
  function DataTableOverflowText({
21318
21448
  text,
21319
21449
  align
@@ -21408,7 +21538,7 @@ function DataTableBodyRows({
21408
21538
  t("loading"),
21409
21539
  "\u2026"
21410
21540
  ] })
21411
- ] }) }) }) : displayedData.length === 0 ? /* @__PURE__ */ jsx57(TableRow, { className: "!border-border/10", children: /* @__PURE__ */ jsx57(TableCell, { colSpan: leafColumns.length, className: "text-center py-6 text-muted-foreground", children: labels?.noData || t("noData") }) }) : /* @__PURE__ */ jsxs49(Fragment20, { children: [
21541
+ ] }) }) }) : displayedData.length === 0 ? /* @__PURE__ */ jsx57(TableRow, { className: "!border-border/10", children: /* @__PURE__ */ jsx57(TableCell, { colSpan: leafColumns.length, className: "text-center py-6 text-muted-foreground", children: labels?.noData || t("noData") }) }) : /* @__PURE__ */ jsxs49(Fragment21, { children: [
21412
21542
  virtualPaddingTop > 0 && /* @__PURE__ */ jsx57(TableRow, { "aria-hidden": "true", className: "border-0 hover:bg-transparent hover:shadow-none", children: /* @__PURE__ */ jsx57(TableCell, { colSpan: leafColumns.length, className: "p-0", style: { height: virtualPaddingTop } }) }),
21413
21543
  rowsToRender.map(({ row, idx, virtualRow }) => {
21414
21544
  const isStripedRow = striped && idx % 2 === 0;
@@ -21542,7 +21672,7 @@ function groupColumnsByColorTag(leafCols, colorGroups) {
21542
21672
  }
21543
21673
 
21544
21674
  // src/components/DataTable/components/DataTableHeader.tsx
21545
- import { Fragment as Fragment21, jsx as jsx58, jsxs as jsxs50 } from "react/jsx-runtime";
21675
+ import { Fragment as Fragment22, jsx as jsx58, jsxs as jsxs50 } from "react/jsx-runtime";
21546
21676
  function getColumnLabel(title) {
21547
21677
  if (typeof title === "string" || typeof title === "number") {
21548
21678
  return String(title).replace(/\s+/g, " ").trim();
@@ -21786,10 +21916,10 @@ function DataTableHeader({
21786
21916
  !isRightAlign && !isCenterAlign && "justify-start",
21787
21917
  useEndIcon && "w-full"
21788
21918
  ),
21789
- children: isRightAlign ? /* @__PURE__ */ jsxs50(Fragment21, { children: [
21919
+ children: isRightAlign ? /* @__PURE__ */ jsxs50(Fragment22, { children: [
21790
21920
  filterContent,
21791
21921
  titleContent
21792
- ] }) : /* @__PURE__ */ jsxs50(Fragment21, { children: [
21922
+ ] }) : /* @__PURE__ */ jsxs50(Fragment22, { children: [
21793
21923
  titleContent,
21794
21924
  filterContent
21795
21925
  ] })
@@ -21812,7 +21942,7 @@ function DataTableHeader({
21812
21942
  t
21813
21943
  ]
21814
21944
  );
21815
- return /* @__PURE__ */ jsx58(Fragment21, { children: headerRows.map((row, rowIndex) => /* @__PURE__ */ jsx58(TableRow, { className: "!border-border/10", children: row.map((headerCell, cellIndex) => {
21945
+ return /* @__PURE__ */ jsx58(Fragment22, { children: headerRows.map((row, rowIndex) => /* @__PURE__ */ jsx58(TableRow, { className: "!border-border/10", children: row.map((headerCell, cellIndex) => {
21816
21946
  const { column: col, colSpan, rowSpan, isLeaf } = headerCell;
21817
21947
  const prevCell = cellIndex > 0 ? row[cellIndex - 1] : null;
21818
21948
  const prevCol = prevCell?.column;
@@ -23455,7 +23585,7 @@ function AccessDenied({
23455
23585
  import { Moon as Moon2, Sun as Sun2, Monitor } from "lucide-react";
23456
23586
  import { useRef as useRef23, useState as useState37 } from "react";
23457
23587
  import { createPortal as createPortal3 } from "react-dom";
23458
- import { Fragment as Fragment22, jsx as jsx65, jsxs as jsxs57 } from "react/jsx-runtime";
23588
+ import { Fragment as Fragment23, jsx as jsx65, jsxs as jsxs57 } from "react/jsx-runtime";
23459
23589
  function ThemeToggleHeadless({
23460
23590
  theme,
23461
23591
  onChange,
@@ -23505,7 +23635,7 @@ function ThemeToggleHeadless({
23505
23635
  children: /* @__PURE__ */ jsx65(CurrentIcon, { className: "h-5 w-5" })
23506
23636
  }
23507
23637
  ),
23508
- isOpen && /* @__PURE__ */ jsxs57(Fragment22, { children: [
23638
+ isOpen && /* @__PURE__ */ jsxs57(Fragment23, { children: [
23509
23639
  typeof window !== "undefined" && createPortal3(/* @__PURE__ */ jsx65("div", { className: "fixed inset-0 z-[99998]", onClick: () => setIsOpen(false) }), document.body),
23510
23640
  typeof window !== "undefined" && dropdownPosition && createPortal3(
23511
23641
  /* @__PURE__ */ jsx65(
@@ -23557,7 +23687,7 @@ function ThemeToggleHeadless({
23557
23687
  import { useRef as useRef24, useState as useState38 } from "react";
23558
23688
  import { createPortal as createPortal4 } from "react-dom";
23559
23689
  import { Globe } from "lucide-react";
23560
- import { Fragment as Fragment23, jsx as jsx66, jsxs as jsxs58 } from "react/jsx-runtime";
23690
+ import { Fragment as Fragment24, jsx as jsx66, jsxs as jsxs58 } from "react/jsx-runtime";
23561
23691
  function LanguageSwitcherHeadless({
23562
23692
  locales,
23563
23693
  currentLocale,
@@ -23602,7 +23732,7 @@ function LanguageSwitcherHeadless({
23602
23732
  children: /* @__PURE__ */ jsx66(Globe, { className: "h-5 w-5" })
23603
23733
  }
23604
23734
  ),
23605
- isOpen && /* @__PURE__ */ jsxs58(Fragment23, { children: [
23735
+ isOpen && /* @__PURE__ */ jsxs58(Fragment24, { children: [
23606
23736
  typeof window !== "undefined" && createPortal4(/* @__PURE__ */ jsx66("div", { className: "fixed inset-0 z-[99998]", onClick: () => setIsOpen(false) }), document.body),
23607
23737
  typeof window !== "undefined" && dropdownPosition && createPortal4(
23608
23738
  /* @__PURE__ */ jsx66(