@underverse-ui/underverse 2.0.8 → 2.0.10

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
@@ -31,7 +31,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
31
31
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
32
 
33
33
  // src/constants/form-control-size.ts
34
- var formControlSizeStyles, formControlLabelClass, formControlFixedClass, formControlValueClass;
34
+ var formControlSizeStyles, formControlLabelClass, formControlFixedClass, formControlValueClass, formControlOutlineClass, formControlGroupOutlineClass;
35
35
  var init_form_control_size = __esm({
36
36
  "src/constants/form-control-size.ts"() {
37
37
  "use strict";
@@ -85,6 +85,8 @@ var init_form_control_size = __esm({
85
85
  formControlLabelClass = "font-medium";
86
86
  formControlFixedClass = "min-h-0 overflow-hidden";
87
87
  formControlValueClass = "max-h-full min-w-0 flex-1 truncate whitespace-nowrap";
88
+ formControlOutlineClass = "border border-input hover:border-primary/40 focus-visible:outline-none focus-visible:border-ring";
89
+ formControlGroupOutlineClass = "border border-input hover:border-primary/40 focus-within:border-ring";
88
90
  }
89
91
  });
90
92
 
@@ -3528,6 +3530,7 @@ var init_EmojiPicker = __esm({
3528
3530
  init_emoji_ui();
3529
3531
  init_Tooltip();
3530
3532
  init_emojis();
3533
+ init_form_control_size();
3531
3534
  import_jsx_runtime14 = require("react/jsx-runtime");
3532
3535
  CATEGORY_ICONS = {
3533
3536
  smileys_people: import_lucide_react4.Smile,
@@ -3667,8 +3670,9 @@ var init_EmojiPicker = __esm({
3667
3670
  value: search,
3668
3671
  onChange: (e) => setSearch(e.target.value),
3669
3672
  className: cn(
3670
- "w-full rounded-2xl border border-border/10 bg-muted/20 py-2 pl-9.5 pr-9 text-sm transition-all duration-300",
3671
- "placeholder:text-muted-foreground/60 focus:outline-none focus:ring-2 focus:ring-primary/15 focus:border-primary/20",
3673
+ "w-full rounded-2xl bg-muted/20 py-2 pl-9.5 pr-9 text-sm transition-all duration-300",
3674
+ formControlOutlineClass,
3675
+ "placeholder:text-muted-foreground/60",
3672
3676
  "focus:bg-background/90 focus:shadow-[0_0_12px_rgba(var(--color-primary-rgb),0.04)]"
3673
3677
  )
3674
3678
  }
@@ -4835,12 +4839,12 @@ var init_DropdownMenu = __esm({
4835
4839
  "button",
4836
4840
  {
4837
4841
  className: cn(
4838
- "inline-flex items-center justify-between gap-2 border bg-background border-border/60",
4842
+ "inline-flex items-center justify-between gap-2 bg-background",
4843
+ formControlOutlineClass,
4839
4844
  resolvedBorderMode ? getBorderRadiusClass(resolvedBorderMode) : "rounded-2xl",
4840
4845
  formControlFixedClass,
4841
4846
  formControlSizeStyles[size].control,
4842
4847
  "hover:bg-accent/50",
4843
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
4844
4848
  className
4845
4849
  ),
4846
4850
  children: [
@@ -6854,6 +6858,7 @@ var init_inputs = __esm({
6854
6858
  init_useSmartTranslations();
6855
6859
  import_lucide_react51 = require("lucide-react");
6856
6860
  init_url_safety();
6861
+ init_form_control_size();
6857
6862
  import_jsx_runtime92 = require("react/jsx-runtime");
6858
6863
  LinkInput = ({
6859
6864
  onSubmit,
@@ -6894,7 +6899,7 @@ var init_inputs = __esm({
6894
6899
  placeholder: t("linkInput.placeholder"),
6895
6900
  "aria-invalid": Boolean(error),
6896
6901
  "aria-describedby": error ? errorId : void 0,
6897
- className: "flex-1 px-3 py-2 text-sm bg-muted/50 border-0 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/20 aria-invalid:ring-2 aria-invalid:ring-destructive/40"
6902
+ className: `flex-1 rounded-lg bg-muted/50 px-3 py-2 text-sm ${formControlOutlineClass} aria-invalid:border-destructive`
6898
6903
  }
6899
6904
  ),
6900
6905
  /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("button", { type: "submit", className: "p-2 rounded-lg bg-primary text-primary-foreground hover:bg-primary/90 transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react51.Check, { className: "w-4 h-4" }) }),
@@ -6929,7 +6934,7 @@ var init_inputs = __esm({
6929
6934
  value: url,
6930
6935
  onChange: (e) => setUrl(e.target.value),
6931
6936
  placeholder: t("imageInput.urlPlaceholder"),
6932
- className: "w-full mt-1 px-3 py-2 text-sm bg-muted/50 border-0 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/20"
6937
+ className: `mt-1 w-full rounded-lg bg-muted/50 px-3 py-2 text-sm ${formControlOutlineClass}`
6933
6938
  }
6934
6939
  )
6935
6940
  ] }),
@@ -6942,7 +6947,7 @@ var init_inputs = __esm({
6942
6947
  value: alt,
6943
6948
  onChange: (e) => setAlt(e.target.value),
6944
6949
  placeholder: t("imageInput.altPlaceholder"),
6945
- className: "w-full mt-1 px-3 py-2 text-sm bg-muted/50 border-0 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/20"
6950
+ className: `mt-1 w-full rounded-lg bg-muted/50 px-3 py-2 text-sm ${formControlOutlineClass}`
6946
6951
  }
6947
6952
  )
6948
6953
  ] }),
@@ -10377,19 +10382,19 @@ var Input = (0, import_react4.forwardRef)(
10377
10382
  const containerSpacing = size === "xs" || size === "sm" ? "space-y-1.5" : "space-y-2";
10378
10383
  const variantStyles6 = {
10379
10384
  default: {
10380
- container: "bg-background border border-input hover:border-accent-foreground/20",
10381
- 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",
10382
- 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"
10385
+ container: cn("bg-background", formControlOutlineClass),
10386
+ focus: "",
10387
+ error: "border-destructive focus-visible:outline-none focus-visible:border-destructive"
10383
10388
  },
10384
10389
  filled: {
10385
10390
  container: "bg-muted/50 border border-transparent hover:bg-muted/70",
10386
10391
  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",
10387
- 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"
10392
+ error: "bg-destructive/10 border-destructive focus-visible:outline-none focus-visible:border-destructive"
10388
10393
  },
10389
10394
  outlined: {
10390
10395
  container: "bg-transparent border border-border/50 hover:border-accent-foreground/30",
10391
10396
  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",
10392
- 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"
10397
+ error: "border-destructive focus-visible:outline-none focus-visible:border-destructive"
10393
10398
  },
10394
10399
  minimal: {
10395
10400
  container: "bg-transparent border-0 border-b border-border/50 hover:border-accent-foreground/30",
@@ -10965,7 +10970,7 @@ var Textarea = (0, import_react4.forwardRef)(
10965
10970
  [ref]
10966
10971
  );
10967
10972
  const variantStyles6 = {
10968
- 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",
10973
+ default: cn("bg-background", formControlOutlineClass),
10969
10974
  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",
10970
10975
  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",
10971
10976
  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"
@@ -11033,7 +11038,7 @@ var Textarea = (0, import_react4.forwardRef)(
11033
11038
  "disabled:cursor-not-allowed disabled:opacity-50",
11034
11039
  sizeStyles8[size],
11035
11040
  variantStyles6[variant],
11036
- 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",
11041
+ error && "border-destructive focus-visible:outline-none focus-visible:border-destructive",
11037
11042
  resizeClasses[resize],
11038
11043
  isFocused && "shadow-md",
11039
11044
  variant !== "minimal" && "shadow-sm",
@@ -11610,6 +11615,7 @@ var StickerGridButton = ({ packId, stickerId, name, onClick, className, active =
11610
11615
 
11611
11616
  // src/components/StickerPicker.tsx
11612
11617
  init_Tooltip();
11618
+ init_form_control_size();
11613
11619
  var import_jsx_runtime16 = require("react/jsx-runtime");
11614
11620
  var StickerPicker = ({
11615
11621
  onStickerSelect,
@@ -11716,8 +11722,9 @@ var StickerPicker = ({
11716
11722
  value: search,
11717
11723
  onChange: (e) => setSearch(e.target.value),
11718
11724
  className: cn(
11719
- "w-full rounded-2xl border border-border/10 bg-muted/20 py-2 pl-9.5 pr-9 text-sm transition-all duration-300",
11720
- "placeholder:text-muted-foreground/60 focus:outline-none focus:ring-2 focus:ring-primary/15 focus:border-primary/20",
11725
+ "w-full rounded-2xl bg-muted/20 py-2 pl-9.5 pr-9 text-sm transition-all duration-300",
11726
+ formControlOutlineClass,
11727
+ "placeholder:text-muted-foreground/60",
11721
11728
  "focus:bg-background/90 focus:shadow-[0_0_12px_rgba(var(--color-primary-rgb),0.04)]"
11722
11729
  )
11723
11730
  }
@@ -11980,11 +11987,11 @@ var TagInput = (0, import_react10.forwardRef)(
11980
11987
  className: cn(
11981
11988
  "flex items-center gap-1.5 cursor-text",
11982
11989
  formControlFixedClass,
11983
- "bg-background border border-input",
11990
+ "bg-background",
11991
+ formControlGroupOutlineClass,
11984
11992
  "transition-all duration-200",
11985
- "hover:border-accent-foreground/20",
11986
11993
  getBorderRadiusClass(resolvedBorderMode),
11987
- isFocused && "ring-1 ring-ring ring-offset-1 ring-offset-background border-transparent shadow-md",
11994
+ isFocused && "shadow-md",
11988
11995
  disabled && "opacity-50 cursor-not-allowed",
11989
11996
  sizeStyles8[size].container
11990
11997
  ),
@@ -14573,7 +14580,7 @@ var Combobox = ({
14573
14580
  xl: formControlSizeStyles.xl.control
14574
14581
  };
14575
14582
  const variantStyles6 = {
14576
- default: "border border-input bg-background hover:bg-accent/5 hover:border-primary/40",
14583
+ default: "bg-background hover:bg-accent/5",
14577
14584
  outline: "border-2 border-input bg-transparent hover:border-primary/60",
14578
14585
  ghost: "border-0 bg-transparent hover:bg-accent/50",
14579
14586
  filled: "border-0 bg-muted/50 hover:bg-muted/80"
@@ -14609,10 +14616,10 @@ var Combobox = ({
14609
14616
  radiusClass,
14610
14617
  sizeStyles8[size],
14611
14618
  variantStyles6[variant],
14612
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:border-primary",
14619
+ formControlOutlineClass,
14613
14620
  "disabled:cursor-not-allowed disabled:opacity-50",
14614
- open && "border-primary",
14615
- !!effectiveError && "border-destructive focus-visible:ring-destructive/30",
14621
+ open && "border-ring",
14622
+ !!effectiveError && "border-destructive",
14616
14623
  className
14617
14624
  )
14618
14625
  };
@@ -14678,6 +14685,7 @@ var Combobox = ({
14678
14685
  formControlLabelClass,
14679
14686
  "transition-colors duration-200",
14680
14687
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary",
14688
+ open && "text-primary",
14681
14689
  effectiveError && "text-destructive",
14682
14690
  labelClassName
14683
14691
  ),
@@ -15960,6 +15968,7 @@ var DatePicker = ({
15960
15968
  formControlLabelClass,
15961
15969
  "transition-colors duration-300 cursor-pointer",
15962
15970
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary hover:text-primary",
15971
+ isOpen && "text-primary",
15963
15972
  effectiveError && "text-destructive",
15964
15973
  labelClassName
15965
15974
  ),
@@ -16009,19 +16018,19 @@ var DatePicker = ({
16009
16018
  {
16010
16019
  ref: triggerRef,
16011
16020
  className: cn(
16012
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
16021
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
16013
16022
  formControlFixedClass,
16023
+ formControlGroupOutlineClass,
16014
16024
  getBorderRadiusClass(resolvedBorderMode),
16015
16025
  sizeStyles8[size].trigger,
16016
16026
  formControlSizeStyles[requestedSize].control,
16017
16027
  disabled ? "border-border/40 opacity-50 cursor-not-allowed" : [
16018
- "border-border/60 hover:border-primary/40",
16019
- "focus-within:border-primary focus-within:ring-0",
16028
+ "focus-within:border-ring",
16020
16029
  "hover:bg-accent/10"
16021
16030
  ],
16022
16031
  "transition-all duration-300 ease-out",
16023
- isOpen && !isFocused && "border-primary shadow-lg shadow-primary/10",
16024
- effectiveError && "border-destructive/60 focus-within:ring-destructive/50 bg-destructive/5",
16032
+ isOpen && "border-ring shadow-lg shadow-primary/10",
16033
+ effectiveError && "border-destructive/60 bg-destructive/5",
16025
16034
  className
16026
16035
  ),
16027
16036
  children: [
@@ -16720,6 +16729,7 @@ var DateRangePicker = ({
16720
16729
  formControlLabelClass,
16721
16730
  "transition-colors duration-300",
16722
16731
  disabled ? "text-muted-foreground cursor-not-allowed" : "text-foreground group-focus-within:text-primary hover:text-primary cursor-pointer",
16732
+ isOpen && "text-primary",
16723
16733
  effectiveError && "text-destructive",
16724
16734
  labelClassName
16725
16735
  ),
@@ -16768,19 +16778,19 @@ var DateRangePicker = ({
16768
16778
  {
16769
16779
  ref: triggerRef,
16770
16780
  className: cn(
16771
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
16781
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
16772
16782
  formControlFixedClass,
16783
+ formControlGroupOutlineClass,
16773
16784
  getBorderRadiusClass(resolvedBorderMode),
16774
16785
  sizeStyles8[size].trigger,
16775
16786
  formControlSizeStyles[requestedSize].control,
16776
16787
  disabled ? "border-border/40 opacity-50 cursor-not-allowed" : [
16777
- "border-border/60 hover:border-primary/40",
16778
- "focus-within:border-primary focus-within:ring-0",
16788
+ "focus-within:border-ring",
16779
16789
  "hover:bg-accent/10"
16780
16790
  ],
16781
16791
  "transition-all duration-300 ease-out",
16782
- isOpen && !isFocused && "border-primary shadow-lg shadow-primary/10",
16783
- effectiveError && "border-destructive/60 focus-within:ring-destructive/50 bg-destructive/5"
16792
+ isOpen && "border-ring shadow-lg shadow-primary/10",
16793
+ effectiveError && "border-destructive/60 bg-destructive/5"
16784
16794
  ),
16785
16795
  children: [
16786
16796
  /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("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: [
@@ -17666,6 +17676,7 @@ var LunarDatePicker = ({
17666
17676
  formControlLabelClass,
17667
17677
  "transition-colors duration-300 cursor-pointer",
17668
17678
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary hover:text-primary",
17679
+ isOpen && "text-primary",
17669
17680
  effectiveError && "text-destructive",
17670
17681
  labelClassName
17671
17682
  ),
@@ -17715,19 +17726,19 @@ var LunarDatePicker = ({
17715
17726
  {
17716
17727
  ref: triggerRef,
17717
17728
  className: cn(
17718
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
17729
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
17719
17730
  formControlFixedClass,
17731
+ formControlGroupOutlineClass,
17720
17732
  getBorderRadiusClass(resolvedBorderMode),
17721
17733
  sizeStyles8[size].trigger,
17722
17734
  formControlSizeStyles[requestedSize].control,
17723
17735
  disabled ? "border-border/40 opacity-50 cursor-not-allowed" : [
17724
- "border-border/60 hover:border-primary/40",
17725
- "focus-within:border-primary focus-within:ring-0",
17736
+ "focus-within:border-ring",
17726
17737
  "hover:bg-accent/10"
17727
17738
  ],
17728
17739
  "transition-all duration-300 ease-out",
17729
- isOpen && !isFocused && "border-primary shadow-lg shadow-primary/10",
17730
- effectiveError && "border-destructive/60 focus-within:ring-destructive/50 bg-destructive/5",
17740
+ isOpen && "border-ring shadow-lg shadow-primary/10",
17741
+ effectiveError && "border-destructive/60 bg-destructive/5",
17731
17742
  className
17732
17743
  ),
17733
17744
  children: [
@@ -18296,6 +18307,7 @@ var LunarDateRangePicker = ({
18296
18307
  formControlLabelClass,
18297
18308
  "transition-colors duration-300",
18298
18309
  disabled ? "text-muted-foreground cursor-not-allowed" : "text-foreground group-focus-within:text-primary hover:text-primary cursor-pointer",
18310
+ isOpen && "text-primary",
18299
18311
  effectiveError && "text-destructive",
18300
18312
  labelClassName
18301
18313
  ),
@@ -18355,19 +18367,19 @@ var LunarDateRangePicker = ({
18355
18367
  "aria-required": required,
18356
18368
  "aria-invalid": !!effectiveError,
18357
18369
  className: cn(
18358
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
18370
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
18359
18371
  formControlFixedClass,
18372
+ formControlGroupOutlineClass,
18360
18373
  getBorderRadiusClass(borderMode ?? "full"),
18361
18374
  sizeStyles8[size].trigger,
18362
18375
  formControlSizeStyles[requestedSize].control,
18363
18376
  disabled ? "border-border/40 opacity-50 cursor-not-allowed" : [
18364
- "border-border/60 hover:border-primary/40",
18365
- "focus-within:border-primary focus-within:ring-0",
18377
+ "focus-within:border-ring",
18366
18378
  "hover:bg-accent/10"
18367
18379
  ],
18368
18380
  "transition-all duration-300 ease-out text-left",
18369
- isOpen && "border-primary shadow-lg shadow-primary/10",
18370
- effectiveError && "border-destructive/60 focus-within:ring-destructive/50 bg-destructive/5"
18381
+ isOpen && "border-ring shadow-lg shadow-primary/10",
18382
+ effectiveError && "border-destructive/60 bg-destructive/5"
18371
18383
  ),
18372
18384
  children: [
18373
18385
  /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("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: [
@@ -19056,18 +19068,18 @@ function MonthYearPicker({
19056
19068
  "aria-required": required,
19057
19069
  "aria-invalid": !!effectiveError,
19058
19070
  className: cn(
19059
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
19071
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
19060
19072
  getBorderRadiusClass(resolvedBorderMode),
19061
19073
  sz.control,
19062
19074
  formControlSizeStyles[requestedSize].control,
19063
19075
  formControlFixedClass,
19064
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
19076
+ formControlOutlineClass,
19065
19077
  "disabled:opacity-50 disabled:cursor-not-allowed",
19066
19078
  "transition-all duration-300 ease-out",
19067
- effectiveError && "border-destructive/60 focus-visible:ring-destructive/50 bg-destructive/5",
19068
- success && !effectiveError && "border-success/60 focus-visible:ring-success/50 bg-success/5",
19069
- !effectiveError && !success && "border-border/60 hover:border-primary/40 hover:bg-accent/10",
19070
- open && "border-primary shadow-lg shadow-primary/10",
19079
+ effectiveError && "border-destructive/60 bg-destructive/5",
19080
+ success && !effectiveError && "border-success/60 bg-success/5",
19081
+ !effectiveError && !success && "hover:bg-accent/10",
19082
+ open && "border-ring shadow-lg shadow-primary/10",
19071
19083
  className
19072
19084
  ),
19073
19085
  children: [
@@ -19249,7 +19261,7 @@ function MonthYearPicker({
19249
19261
  ] });
19250
19262
  }
19251
19263
  return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: cn("w-full", className), ...rest, children: [
19252
- label && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("label", { className: cn(sz.label, "block mb-1.5 text-foreground/80", formControlLabelClass, effectiveError && "text-destructive", labelClassName), children: [
19264
+ label && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("label", { className: cn(sz.label, "block mb-1.5 text-foreground/80", formControlLabelClass, open && "text-primary", effectiveError && "text-destructive", labelClassName), children: [
19253
19265
  label,
19254
19266
  required && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "text-destructive ml-0.5", children: "*" })
19255
19267
  ] }),
@@ -20778,18 +20790,18 @@ function TimePicker({
20778
20790
  "aria-required": required,
20779
20791
  "aria-invalid": !!effectiveError,
20780
20792
  className: cn(
20781
- "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
20793
+ "group flex w-full items-center justify-between bg-background/80 backdrop-blur-sm",
20782
20794
  getBorderRadiusClass(resolvedBorderMode),
20783
20795
  sz.control,
20784
20796
  formControlSizeStyles[requestedSize].control,
20785
20797
  formControlFixedClass,
20786
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
20798
+ formControlOutlineClass,
20787
20799
  "disabled:opacity-50 disabled:cursor-not-allowed",
20788
20800
  "transition-all duration-300 ease-out",
20789
- effectiveError && "border-destructive/60 focus-visible:ring-destructive/50 bg-destructive/5",
20790
- success && !effectiveError && "border-success/60 focus-visible:ring-success/50 bg-success/5",
20791
- !effectiveError && !success && "border-border/60 hover:border-primary/40 hover:bg-accent/10",
20792
- open && "border-primary shadow-lg shadow-primary/10",
20801
+ effectiveError && "border-destructive/60 bg-destructive/5",
20802
+ success && !effectiveError && "border-success/60 bg-success/5",
20803
+ !effectiveError && !success && "hover:bg-accent/10",
20804
+ open && "border-ring shadow-lg shadow-primary/10",
20793
20805
  className
20794
20806
  ),
20795
20807
  children: [
@@ -21181,6 +21193,7 @@ function TimePicker({
21181
21193
  sz.label,
21182
21194
  formControlLabelClass,
21183
21195
  disabled ? "text-muted-foreground" : "text-foreground",
21196
+ open && "text-primary",
21184
21197
  effectiveError && "text-destructive",
21185
21198
  "cursor-pointer transition-colors hover:text-primary"
21186
21199
  ),
@@ -21428,6 +21441,7 @@ var DateTimePicker = ({
21428
21441
  sizeStyles8[size].label,
21429
21442
  formControlLabelClass,
21430
21443
  "text-foreground flex items-center gap-1",
21444
+ open && "text-primary",
21431
21445
  effectiveError && "text-destructive",
21432
21446
  labelClassName
21433
21447
  ),
@@ -21476,14 +21490,15 @@ var DateTimePicker = ({
21476
21490
  "aria-required": required,
21477
21491
  "aria-invalid": !!effectiveError,
21478
21492
  className: cn(
21479
- "flex w-full items-center justify-between border border-input bg-background",
21493
+ "flex w-full items-center justify-between bg-background",
21480
21494
  formControlFixedClass,
21495
+ formControlOutlineClass,
21481
21496
  getBorderRadiusClass(resolvedBorderMode),
21482
21497
  sizeStyles8[size].trigger,
21483
21498
  formControlSizeStyles[requestedSize].control,
21484
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
21485
21499
  disabled && "opacity-50 cursor-not-allowed",
21486
21500
  !displayValue && "text-muted-foreground",
21501
+ open && "border-ring",
21487
21502
  effectiveError && "border-destructive/60 bg-destructive/5"
21488
21503
  ),
21489
21504
  children: [
@@ -24740,7 +24755,7 @@ var MultiCombobox = ({
24740
24755
  }
24741
24756
  };
24742
24757
  const variantStyles6 = {
24743
- default: "border border-input bg-background shadow-sm hover:border-primary/50",
24758
+ default: "bg-background shadow-sm",
24744
24759
  outline: "border-2 border-input bg-transparent hover:border-primary",
24745
24760
  ghost: "border border-transparent bg-muted/50 hover:bg-muted"
24746
24761
  };
@@ -24972,13 +24987,13 @@ var MultiCombobox = ({
24972
24987
  className: cn(
24973
24988
  "group flex w-full items-center gap-2 transition-all duration-200",
24974
24989
  formControlFixedClass,
24990
+ formControlOutlineClass,
24975
24991
  getBorderRadiusClass(resolvedBorderMode),
24976
24992
  sizeStyles8[size].trigger,
24977
24993
  variantStyles6[variant],
24978
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:border-primary",
24979
24994
  "disabled:cursor-not-allowed disabled:opacity-50",
24980
- open && "border-primary",
24981
- !!effectiveError && "border-destructive focus-visible:ring-destructive/30"
24995
+ open && "border-ring",
24996
+ !!effectiveError && "border-destructive"
24982
24997
  ),
24983
24998
  children: [
24984
24999
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex min-h-0 min-w-0 flex-1 items-center gap-1.5 overflow-hidden", children: value.length > 0 ? showTags ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
@@ -25066,6 +25081,7 @@ var MultiCombobox = ({
25066
25081
  formControlLabelClass,
25067
25082
  "transition-colors duration-200",
25068
25083
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary",
25084
+ open && "text-primary",
25069
25085
  effectiveError && "text-destructive",
25070
25086
  labelClassName
25071
25087
  ),
@@ -25085,6 +25101,7 @@ var MultiCombobox = ({
25085
25101
  formControlLabelClass,
25086
25102
  "transition-colors duration-200",
25087
25103
  disabled ? "text-muted-foreground" : "text-foreground group-focus-within:text-primary",
25104
+ open && "text-primary",
25088
25105
  effectiveError && "text-destructive",
25089
25106
  labelClassName
25090
25107
  ),
@@ -27098,6 +27115,7 @@ function CategoryTreeSelect(props) {
27098
27115
  className: cn(
27099
27116
  size === "sm" ? "text-xs" : size === "lg" ? "text-base" : "text-sm",
27100
27117
  disabled ? "text-muted-foreground" : "text-foreground",
27118
+ isOpen && "text-primary",
27101
27119
  effectiveError && "text-destructive",
27102
27120
  labelClassName
27103
27121
  ),
@@ -27233,7 +27251,7 @@ function CategoryTreeSelect(props) {
27233
27251
  }
27234
27252
  };
27235
27253
  const triggerVariantStyles = {
27236
- default: "border border-input bg-background shadow-sm hover:border-primary/50",
27254
+ default: "bg-background shadow-sm",
27237
27255
  outline: "border-2 border-input bg-transparent hover:border-primary",
27238
27256
  ghost: "border border-transparent bg-muted/50 hover:bg-muted",
27239
27257
  filled: "border border-transparent bg-muted/70 hover:bg-muted"
@@ -27350,14 +27368,14 @@ function CategoryTreeSelect(props) {
27350
27368
  className: cn(
27351
27369
  "group flex w-full items-center justify-between transition-all duration-200",
27352
27370
  formControlFixedClass,
27371
+ formControlOutlineClass,
27353
27372
  getBorderRadiusClass(resolvedBorderMode ?? "full"),
27354
27373
  "backdrop-blur-sm",
27355
27374
  triggerSizeStyles[size].button,
27356
27375
  triggerVariantStyles[variant],
27357
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-offset-2 focus-visible:ring-offset-background",
27358
27376
  disabled && "opacity-50 cursor-not-allowed hover:transform-none hover:shadow-none",
27359
- isOpen && "border-primary shadow-lg shadow-primary/10",
27360
- effectiveError && "border-destructive focus-visible:ring-destructive/30"
27377
+ isOpen && "border-ring shadow-lg shadow-primary/10",
27378
+ effectiveError && "border-destructive"
27361
27379
  ),
27362
27380
  children: [
27363
27381
  /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex min-h-0 min-w-0 flex-1 items-center gap-2.5 overflow-hidden text-left", children: [
@@ -30061,11 +30079,13 @@ function ColorPicker({
30061
30079
  type: "button",
30062
30080
  disabled,
30063
30081
  className: cn(
30064
- "w-full border border-input bg-background flex items-center justify-between",
30082
+ "w-full bg-background flex items-center justify-between",
30083
+ formControlOutlineClass,
30065
30084
  getBorderRadiusClass(resolvedBorderMode),
30066
30085
  sizeClasses2[size],
30067
30086
  formControlFixedClass,
30068
- "hover:border-accent-foreground/30 transition-colors",
30087
+ "transition-colors",
30088
+ open && "border-ring",
30069
30089
  disabled && "opacity-50 cursor-not-allowed",
30070
30090
  triggerClassName
30071
30091
  ),
@@ -34380,6 +34400,7 @@ init_cn();
34380
34400
  init_Popover();
34381
34401
  var import_lucide_react45 = require("lucide-react");
34382
34402
  init_useSmartTranslations();
34403
+ init_form_control_size();
34383
34404
  var import_jsx_runtime84 = require("react/jsx-runtime");
34384
34405
  var FormRadioView = ({ node, updateAttributes, editor, selected }) => {
34385
34406
  const t = useSmartTranslations("UEditor");
@@ -34452,7 +34473,7 @@ var FormRadioView = ({ node, updateAttributes, editor, selected }) => {
34452
34473
  type: "text",
34453
34474
  value: groupName,
34454
34475
  onChange: (e) => updateAttributes({ name: e.target.value }),
34455
- className: "w-full text-sm px-2 py-1.5 border border-border/60 rounded-lg bg-background text-foreground focus:outline-none focus:ring-1 focus:ring-primary"
34476
+ className: `w-full rounded-lg bg-background px-2 py-1.5 text-sm text-foreground ${formControlOutlineClass}`
34456
34477
  }
34457
34478
  )
34458
34479
  ] })
@@ -38688,6 +38709,7 @@ var import_react_dom8 = require("react-dom");
38688
38709
  init_useSmartTranslations();
38689
38710
  var import_lucide_react53 = require("lucide-react");
38690
38711
  init_cn();
38712
+ init_form_control_size();
38691
38713
  init_toolbar();
38692
38714
  init_inputs();
38693
38715
  init_link_commands();
@@ -39443,7 +39465,7 @@ var BubbleMenuContent = ({
39443
39465
  }
39444
39466
  )
39445
39467
  ] }),
39446
- /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "flex h-9 items-center overflow-hidden rounded-md border border-border/60 bg-muted/40", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
39468
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: cn("flex h-9 items-center overflow-hidden rounded-md bg-muted/40", formControlGroupOutlineClass), children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
39447
39469
  "input",
39448
39470
  {
39449
39471
  value: formulaDraft,
@@ -39541,7 +39563,7 @@ var BubbleMenuContent = ({
39541
39563
  /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "space-y-2", children: [
39542
39564
  /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { children: [
39543
39565
  /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "mb-1 px-1 text-[11px] font-medium text-muted-foreground", children: t("toolbar.fontSize") }),
39544
- /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex h-9 items-center overflow-hidden rounded-md border border-border/60 bg-muted/40", children: [
39566
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: cn("flex h-9 items-center overflow-hidden rounded-md bg-muted/40", formControlGroupOutlineClass), children: [
39545
39567
  /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
39546
39568
  "input",
39547
39569
  {
@@ -47496,6 +47518,7 @@ var import_react82 = require("@tiptap/react");
47496
47518
  var import_lucide_react58 = require("lucide-react");
47497
47519
  init_useSmartTranslations();
47498
47520
  init_table_dom_utils();
47521
+ init_form_control_size();
47499
47522
  var import_jsx_runtime102 = require("react/jsx-runtime");
47500
47523
  function TableFormulaBar({ editor }) {
47501
47524
  const t = useSmartTranslations("UEditor");
@@ -47594,7 +47617,7 @@ function TableFormulaBar({ editor }) {
47594
47617
  }
47595
47618
  },
47596
47619
  "aria-label": t("tableMenu.editFormula"),
47597
- className: "h-7 min-w-0 flex-1 rounded-md border border-border/60 bg-background px-2 font-mono text-sm text-foreground outline-none focus:border-primary/40 focus:ring-2 focus:ring-primary/15"
47620
+ className: `h-7 min-w-0 flex-1 rounded-md bg-background px-2 font-mono text-sm text-foreground ${formControlOutlineClass}`
47598
47621
  }
47599
47622
  ),
47600
47623
  selectedCell.formulaState === "error" && /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(