@underverse-ui/underverse 1.0.191 → 1.0.192

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.js CHANGED
@@ -3365,7 +3365,7 @@ var Textarea = forwardRef3(
3365
3365
  required,
3366
3366
  value,
3367
3367
  maxLength,
3368
- borderMode = "2xl",
3368
+ borderMode,
3369
3369
  ...props
3370
3370
  }, ref) => {
3371
3371
  const [isFocused, setIsFocused] = useState4(false);
@@ -6774,9 +6774,12 @@ var Modal = ({
6774
6774
  noPadding = false,
6775
6775
  fullWidth = false,
6776
6776
  width,
6777
- height
6777
+ height,
6778
+ borderMode
6778
6779
  }) => {
6779
6780
  const gi18n = useGlobalI18n();
6781
+ const globalConfig = useUnderverseUIConfig();
6782
+ const resolvedBorderMode = borderMode ?? globalConfig.borderMode;
6780
6783
  const [isMounted, setIsMounted] = React22.useState(false);
6781
6784
  const [isVisible, setIsVisible] = React22.useState(false);
6782
6785
  const [isAnimating, setIsAnimating] = React22.useState(true);
@@ -6882,7 +6885,8 @@ var Modal = ({
6882
6885
  {
6883
6886
  ref: modalContentRef,
6884
6887
  className: cn(
6885
- "relative w-full rounded-2xl md:rounded-3xl border border-border/40 bg-card text-card-foreground shadow-xl",
6888
+ "relative w-full border border-border/40 bg-card text-card-foreground shadow-xl",
6889
+ resolvedBorderMode ? getBorderRadiusClass(resolvedBorderMode) : "rounded-2xl md:rounded-3xl",
6886
6890
  "transition-all duration-200 ease-out",
6887
6891
  maxWidthClass,
6888
6892
  fullWidth && "mx-0",
@@ -7390,7 +7394,8 @@ var Popover = ({
7390
7394
  open,
7391
7395
  onOpenChange,
7392
7396
  matchTriggerWidth = false,
7393
- contentWidth
7397
+ contentWidth,
7398
+ borderMode
7394
7399
  }) => {
7395
7400
  const isControlled = open !== void 0;
7396
7401
  const [internalOpen, setInternalOpen] = React24.useState(false);
@@ -7399,6 +7404,8 @@ var Popover = ({
7399
7404
  const panelRef = React24.useRef(null);
7400
7405
  const lastAppliedRef = React24.useRef(null);
7401
7406
  useShadCNAnimations();
7407
+ const globalConfig = useUnderverseUIConfig();
7408
+ const resolvedBorderMode = borderMode ?? globalConfig.popover?.borderMode ?? globalConfig.borderMode;
7402
7409
  const isOpen = isControlled ? open : internalOpen;
7403
7410
  const setIsOpen = React24.useCallback(
7404
7411
  (next) => {
@@ -7579,7 +7586,8 @@ var Popover = ({
7579
7586
  {
7580
7587
  ...contentProps,
7581
7588
  className: cn(
7582
- "rounded-2xl md:rounded-3xl border bg-popover text-popover-foreground shadow-md",
7589
+ resolvedBorderMode ? getBorderRadiusClass(resolvedBorderMode) : "rounded-2xl md:rounded-3xl",
7590
+ "border bg-popover text-popover-foreground shadow-md",
7583
7591
  "backdrop-blur-sm bg-popover/95 border-border/60 p-4",
7584
7592
  contentProps?.className,
7585
7593
  contentClassName
@@ -7918,7 +7926,9 @@ var SlideOver = (props) => {
7918
7926
  return /* @__PURE__ */ jsx27(Sheet, { ...props, side: "right", variant: "overlay", size: "lg" });
7919
7927
  };
7920
7928
  var BottomSheet = ({ snapPoints = ["25%", "50%", "90%"], defaultSnap = 1, ...props }) => {
7921
- return /* @__PURE__ */ jsx27(Sheet, { ...props, side: "bottom", variant: "overlay", className: cn("rounded-t-3xl", props.className) });
7929
+ const globalConfig = useUnderverseUIConfig();
7930
+ const isSquare = globalConfig.borderMode === "daewoo" || globalConfig.borderMode === "none";
7931
+ return /* @__PURE__ */ jsx27(Sheet, { ...props, side: "bottom", variant: "overlay", className: cn(isSquare ? "" : "rounded-t-3xl", props.className) });
7922
7932
  };
7923
7933
  var SidebarSheet = ({ navigation, children, ...props }) => {
7924
7934
  return /* @__PURE__ */ jsxs17(Sheet, { ...props, side: "left", variant: "push", size: "md", children: [
@@ -8590,7 +8600,8 @@ var DropdownMenu = ({
8590
8600
  disabled = false,
8591
8601
  isOpen,
8592
8602
  onOpenChange,
8593
- items
8603
+ items,
8604
+ borderMode
8594
8605
  }) => {
8595
8606
  const [internalOpen, setInternalOpen] = useState18(false);
8596
8607
  const open = isOpen !== void 0 ? isOpen : internalOpen;
@@ -8626,6 +8637,8 @@ var DropdownMenu = ({
8626
8637
  item.scrollIntoView({ block: "nearest" });
8627
8638
  }, [getEnabledMenuItems, setActiveIndex]);
8628
8639
  useShadCNAnimations();
8640
+ const globalConfig = useUnderverseUIConfig();
8641
+ const resolvedBorderMode = borderMode ?? globalConfig.dropdownMenu?.borderMode ?? globalConfig.borderMode;
8629
8642
  React29.useEffect(() => {
8630
8643
  if (!open) return;
8631
8644
  const handleKeyNav = (e) => {
@@ -8693,7 +8706,8 @@ var DropdownMenu = ({
8693
8706
  animationDelay: open ? `${Math.min(index * 20, 200)}ms` : "0ms"
8694
8707
  },
8695
8708
  className: cn(
8696
- "dropdown-item flex w-full items-center gap-2 px-2.5 py-1.5 text-sm rounded-lg",
8709
+ "dropdown-item flex w-full items-center gap-2 px-2.5 py-1.5 text-sm",
8710
+ resolvedBorderMode ? getBorderRadiusClass(resolvedBorderMode) : "rounded-lg",
8697
8711
  "outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
8698
8712
  "hover:bg-accent hover:text-accent-foreground",
8699
8713
  "focus:bg-accent focus:text-accent-foreground",
@@ -8749,6 +8763,7 @@ var DropdownMenu = ({
8749
8763
  trigger: enhancedTrigger,
8750
8764
  placement,
8751
8765
  disabled,
8766
+ borderMode: resolvedBorderMode,
8752
8767
  contentClassName: cn("p-1", contentClassName),
8753
8768
  children: menuBody
8754
8769
  }
@@ -8765,10 +8780,13 @@ var DropdownMenuItem = ({
8765
8780
  active,
8766
8781
  shortcut,
8767
8782
  className,
8768
- closeOnSelect
8783
+ closeOnSelect,
8784
+ borderMode
8769
8785
  }) => {
8770
8786
  const menu = React29.useContext(DropdownMenuContext);
8771
8787
  const shouldCloseOnSelect = closeOnSelect ?? menu?.closeOnSelect ?? false;
8788
+ const globalConfig = useUnderverseUIConfig();
8789
+ const resolvedBorderMode = borderMode ?? globalConfig.dropdownMenu?.borderMode ?? globalConfig.borderMode;
8772
8790
  return /* @__PURE__ */ jsxs22(
8773
8791
  "button",
8774
8792
  {
@@ -8783,7 +8801,8 @@ var DropdownMenuItem = ({
8783
8801
  "data-dropdown-menu-item": "",
8784
8802
  tabIndex: -1,
8785
8803
  className: cn(
8786
- "flex w-full items-center gap-2 px-3 py-2 text-sm rounded-lg transition-colors group cursor-pointer",
8804
+ "flex w-full items-center gap-2 px-3 py-2 text-sm transition-colors group cursor-pointer",
8805
+ resolvedBorderMode ? getBorderRadiusClass(resolvedBorderMode) : "rounded-lg",
8787
8806
  "hover:bg-accent hover:text-accent-foreground",
8788
8807
  "focus:bg-accent focus:text-accent-foreground focus:outline-none",
8789
8808
  "disabled:opacity-50 disabled:cursor-not-allowed",
@@ -8805,56 +8824,67 @@ var DropdownMenuItem = ({
8805
8824
  );
8806
8825
  };
8807
8826
  var DropdownMenuSeparator = ({ className }) => /* @__PURE__ */ jsx32("div", { className: cn("h-px bg-border my-1", className) });
8808
- var DropdownMenuSub = ({ label, icon: Icon, disabled, children }) => /* @__PURE__ */ jsx32(
8809
- DropdownMenu,
8810
- {
8811
- trigger: /* @__PURE__ */ jsxs22(
8812
- "button",
8813
- {
8814
- type: "button",
8815
- disabled,
8816
- onMouseDown: (e) => e.preventDefault(),
8817
- className: cn(
8818
- "flex w-full items-center gap-2 px-3 py-2 text-sm rounded-lg transition-colors cursor-pointer",
8819
- "hover:bg-accent hover:text-accent-foreground",
8820
- "focus:bg-accent focus:text-accent-foreground focus:outline-none",
8821
- "disabled:opacity-50 disabled:cursor-not-allowed"
8822
- ),
8823
- children: [
8824
- Icon && /* @__PURE__ */ jsx32(Icon, { className: "w-4 h-4 shrink-0 opacity-60" }),
8825
- /* @__PURE__ */ jsx32("span", { className: "flex-1 text-left", children: label }),
8826
- /* @__PURE__ */ jsx32(ChevronRight2, { className: "w-3 h-3 opacity-50" })
8827
- ]
8828
- }
8829
- ),
8830
- placement: "right",
8831
- children
8832
- }
8833
- );
8834
- var SelectDropdown = ({ options, value, onChange, placeholder = "Select...", className }) => /* @__PURE__ */ jsx32(
8835
- DropdownMenu,
8836
- {
8837
- trigger: /* @__PURE__ */ jsxs22(
8838
- "button",
8839
- {
8840
- className: cn(
8841
- "inline-flex items-center justify-between gap-2 px-3 py-2 text-sm rounded-2xl border bg-background border-border/60",
8842
- "hover:bg-accent/50",
8843
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
8844
- className
8845
- ),
8846
- children: [
8847
- /* @__PURE__ */ jsx32("span", { className: "truncate max-w-64 text-foreground/90", children: value || placeholder }),
8848
- /* @__PURE__ */ jsx32("svg", { width: "16", height: "16", viewBox: "0 0 20 20", fill: "none", className: "opacity-70", children: /* @__PURE__ */ jsx32("path", { d: "M6 8l4 4 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
8849
- ]
8850
- }
8851
- ),
8852
- items: options.map((option) => ({
8853
- label: option,
8854
- onClick: () => onChange(option)
8855
- }))
8856
- }
8857
- );
8827
+ var DropdownMenuSub = ({ label, icon: Icon, disabled, borderMode, children }) => {
8828
+ const globalConfig = useUnderverseUIConfig();
8829
+ const resolvedBorderMode = borderMode ?? globalConfig.dropdownMenu?.borderMode ?? globalConfig.borderMode;
8830
+ return /* @__PURE__ */ jsx32(
8831
+ DropdownMenu,
8832
+ {
8833
+ trigger: /* @__PURE__ */ jsxs22(
8834
+ "button",
8835
+ {
8836
+ type: "button",
8837
+ disabled,
8838
+ onMouseDown: (e) => e.preventDefault(),
8839
+ className: cn(
8840
+ "flex w-full items-center gap-2 px-3 py-2 text-sm transition-colors cursor-pointer",
8841
+ resolvedBorderMode ? getBorderRadiusClass(resolvedBorderMode) : "rounded-lg",
8842
+ "hover:bg-accent hover:text-accent-foreground",
8843
+ "focus:bg-accent focus:text-accent-foreground focus:outline-none",
8844
+ "disabled:opacity-50 disabled:cursor-not-allowed"
8845
+ ),
8846
+ children: [
8847
+ Icon && /* @__PURE__ */ jsx32(Icon, { className: "w-4 h-4 shrink-0 opacity-60" }),
8848
+ /* @__PURE__ */ jsx32("span", { className: "flex-1 text-left", children: label }),
8849
+ /* @__PURE__ */ jsx32(ChevronRight2, { className: "w-3 h-3 opacity-50" })
8850
+ ]
8851
+ }
8852
+ ),
8853
+ placement: "right",
8854
+ children
8855
+ }
8856
+ );
8857
+ };
8858
+ var SelectDropdown = ({ options, value, onChange, placeholder = "Select...", className, borderMode }) => {
8859
+ const globalConfig = useUnderverseUIConfig();
8860
+ const resolvedBorderMode = borderMode ?? globalConfig.dropdownMenu?.borderMode ?? globalConfig.borderMode;
8861
+ return /* @__PURE__ */ jsx32(
8862
+ DropdownMenu,
8863
+ {
8864
+ trigger: /* @__PURE__ */ jsxs22(
8865
+ "button",
8866
+ {
8867
+ className: cn(
8868
+ "inline-flex items-center justify-between gap-2 px-3 py-2 text-sm border bg-background border-border/60",
8869
+ resolvedBorderMode ? getBorderRadiusClass(resolvedBorderMode) : "rounded-2xl",
8870
+ "hover:bg-accent/50",
8871
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
8872
+ className
8873
+ ),
8874
+ children: [
8875
+ /* @__PURE__ */ jsx32("span", { className: "truncate max-w-64 text-foreground/90", children: value || placeholder }),
8876
+ /* @__PURE__ */ jsx32("svg", { width: "16", height: "16", viewBox: "0 0 20 20", fill: "none", className: "opacity-70", children: /* @__PURE__ */ jsx32("path", { d: "M6 8l4 4 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
8877
+ ]
8878
+ }
8879
+ ),
8880
+ items: options.map((option) => ({
8881
+ label: option,
8882
+ onClick: () => onChange(option)
8883
+ })),
8884
+ borderMode: resolvedBorderMode
8885
+ }
8886
+ );
8887
+ };
8858
8888
  var DropdownMenu_default = DropdownMenu;
8859
8889
 
8860
8890
  // src/components/Pagination.tsx
@@ -8939,6 +8969,9 @@ var Combobox = ({
8939
8969
  maxInitialOptions,
8940
8970
  showSearchPromptWhenEmptyQuery = false
8941
8971
  }) => {
8972
+ const globalConfig = useUnderverseUIConfig();
8973
+ const resolvedBorderMode = borderMode ?? globalConfig.borderMode ?? "full";
8974
+ const radiusClass = getBorderRadiusClass(resolvedBorderMode);
8942
8975
  const tv = useSmartTranslations("ValidationInput");
8943
8976
  const gi18n = useGlobalI18n();
8944
8977
  const placeholder = placeholderProp ?? gi18n.selectPlaceholder ?? "Select\u2026";
@@ -9148,7 +9181,7 @@ var Combobox = ({
9148
9181
  {
9149
9182
  "data-combobox-dropdown": true,
9150
9183
  "data-state": open ? "open" : "closed",
9151
- className: "w-full rounded-2xl md:rounded-3xl overflow-hidden",
9184
+ className: cn("w-full overflow-hidden", getBorderRadiusClass(resolvedBorderMode)),
9152
9185
  children: [
9153
9186
  enableSearch && /* @__PURE__ */ jsx33("div", { className: cn("relative border-b border-border/30", size === "sm" ? "p-2" : size === "lg" ? "p-3" : "p-2.5"), children: /* @__PURE__ */ jsxs23("div", { className: "relative", children: [
9154
9187
  /* @__PURE__ */ jsx33(
@@ -9290,9 +9323,6 @@ var Combobox = ({
9290
9323
  filled: "border-0 bg-muted/50 hover:bg-muted/80"
9291
9324
  };
9292
9325
  const labelSize = size === "sm" ? "text-xs" : size === "lg" ? "text-base" : "text-sm";
9293
- const globalConfig = useUnderverseUIConfig();
9294
- const resolvedBorderMode = borderMode ?? globalConfig.borderMode ?? "full";
9295
- const radiusClass = getBorderRadiusClass(resolvedBorderMode);
9296
9326
  const verticalGap = size === "sm" ? "space-y-1.5" : "space-y-2";
9297
9327
  const triggerButtonBaseProps = {
9298
9328
  ref: triggerRef,
@@ -9423,12 +9453,13 @@ var Combobox = ({
9423
9453
  placement: "bottom-start",
9424
9454
  matchTriggerWidth: true,
9425
9455
  className: "z-9999",
9426
- contentClassName: "p-0 overflow-hidden rounded-2xl md:rounded-3xl",
9456
+ borderMode: resolvedBorderMode,
9457
+ contentClassName: "p-0 overflow-hidden",
9427
9458
  children: dropdownBody
9428
9459
  }
9429
9460
  ) : /* @__PURE__ */ jsxs23("div", { className: "relative", children: [
9430
9461
  triggerButtonInline,
9431
- open && /* @__PURE__ */ jsx33("div", { className: "absolute left-0 top-full mt-1 z-50 w-full", children: /* @__PURE__ */ jsx33("div", { className: "rounded-2xl md:rounded-3xl overflow-hidden border text-popover-foreground shadow-md backdrop-blur-sm bg-popover/95 border-border/60", children: dropdownBody }) })
9462
+ open && /* @__PURE__ */ jsx33("div", { className: "absolute left-0 top-full mt-1 z-50 w-full", children: /* @__PURE__ */ jsx33("div", { className: cn("overflow-hidden border text-popover-foreground shadow-md backdrop-blur-sm bg-popover/95 border-border/60", getBorderRadiusClass(resolvedBorderMode)), children: dropdownBody }) })
9432
9463
  ] }),
9433
9464
  (helperText || effectiveError) && /* @__PURE__ */ jsxs23(
9434
9465
  "p",
@@ -10702,10 +10733,10 @@ var DatePicker = ({
10702
10733
  placement: "bottom-start",
10703
10734
  disabled,
10704
10735
  contentWidth: sizeStyles8[size].contentWidth,
10736
+ borderMode: resolvedBorderMode,
10705
10737
  contentClassName: cn(
10706
10738
  "p-0",
10707
10739
  "backdrop-blur-xl bg-popover/95 border-border/40 shadow-2xl",
10708
- "rounded-2xl md:rounded-3xl",
10709
10740
  // Keep usable on small viewports (wheel scroll should stay within the popover if it overflows)
10710
10741
  "max-w-[calc(100vw-1rem)] max-h-[calc(100vh-6rem)] overflow-auto overscroll-contain",
10711
10742
  sizeStyles8[size].contentPadding,
@@ -11457,10 +11488,10 @@ var DateRangePicker = ({
11457
11488
  placement: "bottom-start",
11458
11489
  disabled,
11459
11490
  contentWidth: sizeStyles8[size].contentWidth,
11491
+ borderMode: resolvedBorderMode,
11460
11492
  contentClassName: cn(
11461
11493
  "p-0",
11462
11494
  "backdrop-blur-xl bg-popover/95 border-border/40 shadow-2xl",
11463
- "rounded-2xl md:rounded-3xl",
11464
11495
  "max-w-[calc(100vw-1rem)] max-h-[calc(100vh-6rem)] overflow-auto overscroll-contain",
11465
11496
  sizeStyles8[size].contentPadding,
11466
11497
  "animate-in fade-in-0 zoom-in-95 slide-in-from-top-2 duration-300"
@@ -11860,6 +11891,8 @@ var LunarDatePicker = ({
11860
11891
  maxDate,
11861
11892
  borderMode
11862
11893
  }) => {
11894
+ const globalConfig = useUnderverseUIConfig();
11895
+ const resolvedBorderMode = borderMode ?? globalConfig.input?.borderMode ?? globalConfig.borderMode ?? "full";
11863
11896
  const t = useSmartTranslations("DatePicker");
11864
11897
  const tv = useSmartTranslations("ValidationInput");
11865
11898
  const locale = useSmartLocale();
@@ -12384,12 +12417,12 @@ var LunarDatePicker = ({
12384
12417
  open: isOpen,
12385
12418
  onOpenChange: setIsOpen,
12386
12419
  placement: "bottom-start",
12420
+ borderMode: resolvedBorderMode,
12387
12421
  disabled,
12388
12422
  contentWidth: sizeStyles8[size].contentWidth,
12389
12423
  contentClassName: cn(
12390
12424
  "p-0",
12391
12425
  "backdrop-blur-xl bg-popover/95 border-border/40 shadow-2xl",
12392
- "rounded-2xl md:rounded-3xl",
12393
12426
  // Keep usable on small viewports (wheel scroll should stay within the popover if it overflows)
12394
12427
  "max-w-[calc(100vw-1rem)] max-h-[calc(100vh-6rem)] overflow-auto overscroll-contain",
12395
12428
  sizeStyles8[size].contentPadding,
@@ -12407,7 +12440,7 @@ var LunarDatePicker = ({
12407
12440
  "aria-invalid": !!effectiveError,
12408
12441
  className: cn(
12409
12442
  "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
12410
- getBorderRadiusClass(borderMode ?? "full"),
12443
+ getBorderRadiusClass(resolvedBorderMode),
12411
12444
  sizeStyles8[size].trigger,
12412
12445
  disabled ? "border-border/40 opacity-50 cursor-not-allowed" : [
12413
12446
  "border-border/60 hover:border-primary/40",
@@ -13550,6 +13583,8 @@ function MonthYearPicker({
13550
13583
  borderMode,
13551
13584
  ...rest
13552
13585
  }) {
13586
+ const globalConfig = useUnderverseUIConfig();
13587
+ const resolvedBorderMode = borderMode ?? globalConfig.input?.borderMode ?? globalConfig.borderMode ?? "full";
13553
13588
  const gi18n = useGlobalI18n();
13554
13589
  const tv = useSmartTranslations("ValidationInput");
13555
13590
  const now = /* @__PURE__ */ new Date();
@@ -13708,7 +13743,7 @@ function MonthYearPicker({
13708
13743
  "aria-invalid": !!effectiveError,
13709
13744
  className: cn(
13710
13745
  "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
13711
- getBorderRadiusClass(borderMode ?? "full"),
13746
+ getBorderRadiusClass(resolvedBorderMode),
13712
13747
  sz.height,
13713
13748
  sz.padding,
13714
13749
  sz.text,
@@ -13890,7 +13925,8 @@ function MonthYearPicker({
13890
13925
  {
13891
13926
  className: cn(
13892
13927
  panelSz.contentPadding,
13893
- "rounded-2xl border bg-background/80 backdrop-blur-sm",
13928
+ resolvedBorderMode ? getBorderRadiusClass(resolvedBorderMode) : "rounded-2xl md:rounded-3xl",
13929
+ "border bg-background/80 backdrop-blur-sm",
13894
13930
  effectiveError ? "border-destructive/60 bg-destructive/5" : "border-border/50"
13895
13931
  ),
13896
13932
  children: pickerContent
@@ -13931,7 +13967,8 @@ function MonthYearPicker({
13931
13967
  contentWidth,
13932
13968
  matchTriggerWidth,
13933
13969
  disabled,
13934
- contentClassName: cn(panelSz.contentPadding, compactPanel && "max-w-[calc(100vw-2rem)] p-4 rounded-2xl", "rounded-2xl"),
13970
+ borderMode: resolvedBorderMode,
13971
+ contentClassName: cn(panelSz.contentPadding, compactPanel && "max-w-[calc(100vw-2rem)] p-4"),
13935
13972
  children: pickerContent
13936
13973
  }
13937
13974
  ),
@@ -15078,6 +15115,8 @@ function TimePicker({
15078
15115
  }) {
15079
15116
  const tv = useSmartTranslations("ValidationInput");
15080
15117
  const gi18n = useGlobalI18n();
15118
+ const globalConfig = useUnderverseUIConfig();
15119
+ const resolvedBorderMode = borderMode ?? globalConfig.input?.borderMode ?? globalConfig.borderMode ?? "full";
15081
15120
  const autoId = React38.useId();
15082
15121
  const isControlled = value !== void 0;
15083
15122
  const now = /* @__PURE__ */ new Date();
@@ -15415,7 +15454,7 @@ function TimePicker({
15415
15454
  "aria-invalid": !!effectiveError,
15416
15455
  className: cn(
15417
15456
  "group flex w-full items-center justify-between border bg-background/80 backdrop-blur-sm",
15418
- getBorderRadiusClass(borderMode ?? "full"),
15457
+ getBorderRadiusClass(resolvedBorderMode),
15419
15458
  sz.height,
15420
15459
  sz.padding,
15421
15460
  sz.text,
@@ -15796,7 +15835,8 @@ function TimePicker({
15796
15835
  {
15797
15836
  className: cn(
15798
15837
  panelSz.contentPadding,
15799
- "rounded-2xl md:rounded-3xl border bg-card/95 backdrop-blur-sm shadow-xl",
15838
+ resolvedBorderMode ? getBorderRadiusClass(resolvedBorderMode) : "rounded-2xl md:rounded-3xl",
15839
+ "border bg-card/95 backdrop-blur-sm shadow-xl",
15800
15840
  effectiveError ? "border-destructive/60 bg-destructive/5" : "border-border/60",
15801
15841
  className
15802
15842
  ),
@@ -15852,10 +15892,11 @@ function TimePicker({
15852
15892
  placement: "bottom-start",
15853
15893
  matchTriggerWidth: shouldMatchTriggerWidth,
15854
15894
  contentWidth: shouldMatchTriggerWidth ? void 0 : contentWidth,
15895
+ borderMode: resolvedBorderMode,
15855
15896
  contentClassName: cn(
15856
15897
  panelSz.contentPadding,
15857
- compactPanel && "max-w-[calc(100vw-2rem)] p-4 rounded-2xl",
15858
- "rounded-2xl md:rounded-3xl border bg-popover/98 backdrop-blur-md shadow-2xl",
15898
+ compactPanel && "max-w-[calc(100vw-2rem)] p-4",
15899
+ "border bg-popover/98 backdrop-blur-md shadow-2xl",
15859
15900
  effectiveError && "border-destructive/40",
15860
15901
  success && !effectiveError && "border-success/40",
15861
15902
  !effectiveError && !success && "border-border/60",
@@ -15898,6 +15939,8 @@ var DateTimePicker = ({
15898
15939
  size = "md",
15899
15940
  borderMode
15900
15941
  }) => {
15942
+ const globalConfig = useUnderverseUIConfig();
15943
+ const resolvedBorderMode = borderMode ?? globalConfig.input?.borderMode ?? globalConfig.borderMode ?? "full";
15901
15944
  const t = useSmartTranslations("DateTimePicker");
15902
15945
  const tv = useSmartTranslations("ValidationInput");
15903
15946
  const locale = useSmartLocale();
@@ -16077,7 +16120,7 @@ var DateTimePicker = ({
16077
16120
  "aria-invalid": !!effectiveError,
16078
16121
  className: cn(
16079
16122
  "flex w-full items-center justify-between border border-input bg-background",
16080
- getBorderRadiusClass(borderMode ?? "full"),
16123
+ getBorderRadiusClass(resolvedBorderMode),
16081
16124
  sizeStyles8[size].trigger,
16082
16125
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
16083
16126
  disabled && "opacity-50 cursor-not-allowed",
@@ -16106,12 +16149,9 @@ var DateTimePicker = ({
16106
16149
  ]
16107
16150
  }
16108
16151
  ),
16109
- contentClassName: cn(
16110
- "w-auto p-0 rounded-2xl md:rounded-3xl",
16111
- // Keep the popover usable on small viewports
16112
- "max-w-[calc(100vw-1rem)] max-h-[calc(100vh-6rem)] overflow-auto"
16113
- ),
16114
- placement: "bottom-end",
16152
+ placement: "bottom-start",
16153
+ borderMode: resolvedBorderMode,
16154
+ contentClassName: "p-0 overflow-hidden w-auto flex flex-col md:flex-row max-w-[calc(100vw-1rem)] max-h-[calc(100vh-6rem)] overflow-auto",
16115
16155
  children: [
16116
16156
  /* @__PURE__ */ jsxs30("div", { className: "flex flex-col lg:flex-row divide-y lg:divide-y-0 lg:divide-x divide-border", children: [
16117
16157
  /* @__PURE__ */ jsx43("div", { className: sizeStyles8[size].padding, children: /* @__PURE__ */ jsx43(
@@ -19143,6 +19183,8 @@ var MultiCombobox = ({
19143
19183
  maxInitialOptions,
19144
19184
  showSearchPromptWhenEmptyQuery = false
19145
19185
  }) => {
19186
+ const globalConfig = useUnderverseUIConfig();
19187
+ const resolvedBorderMode = borderMode ?? globalConfig.borderMode ?? "full";
19146
19188
  const tv = useSmartTranslations("ValidationInput");
19147
19189
  const gi18n = useGlobalI18n();
19148
19190
  const placeholder = placeholderProp ?? gi18n.selectPlaceholder ?? "Select...";
@@ -19403,7 +19445,7 @@ var MultiCombobox = ({
19403
19445
  item.value
19404
19446
  );
19405
19447
  };
19406
- const dropdownBody = /* @__PURE__ */ jsxs37("div", { "data-combobox-dropdown": true, "data-state": open ? "open" : "closed", className: "w-full rounded-2xl md:rounded-3xl overflow-hidden", children: [
19448
+ const dropdownBody = /* @__PURE__ */ jsxs37("div", { "data-combobox-dropdown": true, "data-state": open ? "open" : "closed", className: cn("w-full overflow-hidden", getBorderRadiusClass(resolvedBorderMode)), children: [
19407
19449
  value.length > 0 && /* @__PURE__ */ jsxs37("div", { className: "px-3 py-2 border-b border-border/40 flex items-center justify-between bg-muted/30", children: [
19408
19450
  /* @__PURE__ */ jsx50("span", { className: "text-xs font-medium text-muted-foreground", children: maxSelected ? gi18n.selectedCountWithMax ? gi18n.selectedCountWithMax(value.length, maxSelected) : `${value.length} / ${maxSelected} max` : gi18n.itemSelectedCount ? gi18n.itemSelectedCount(value.length) : `${value.length} selected` }),
19409
19451
  showClear && /* @__PURE__ */ jsxs37(
@@ -19521,8 +19563,6 @@ var MultiCombobox = ({
19521
19563
  const selectedOptions = value.map((v) => normalizedOptions.find((o) => o.value === v) ?? selectedOptionFallbackMap.get(v)).filter(Boolean);
19522
19564
  const visibleTags = maxTagsVisible ? selectedOptions.slice(0, maxTagsVisible) : selectedOptions;
19523
19565
  const hiddenCount = maxTagsVisible ? Math.max(0, selectedOptions.length - maxTagsVisible) : 0;
19524
- const globalConfig = useUnderverseUIConfig();
19525
- const resolvedBorderMode = borderMode ?? globalConfig.borderMode ?? "full";
19526
19566
  const triggerButton = /* @__PURE__ */ jsxs37(
19527
19567
  "button",
19528
19568
  {
@@ -19685,7 +19725,8 @@ var MultiCombobox = ({
19685
19725
  placement: "bottom-start",
19686
19726
  matchTriggerWidth: true,
19687
19727
  className: "z-9999",
19688
- contentClassName: "p-0 overflow-hidden rounded-2xl md:rounded-3xl",
19728
+ borderMode: resolvedBorderMode,
19729
+ contentClassName: "p-0 overflow-hidden",
19689
19730
  children: dropdownBody
19690
19731
  }
19691
19732
  ),
@@ -19740,6 +19781,8 @@ var RadioGroup = React47.forwardRef(
19740
19781
  error = false,
19741
19782
  errorMessage
19742
19783
  }, ref) => {
19784
+ const globalConfig = useUnderverseUIConfig();
19785
+ const resolvedBorderMode = borderMode ?? globalConfig.input?.borderMode ?? globalConfig.borderMode ?? "full";
19743
19786
  const [internalValue, setInternalValue] = React47.useState(defaultValue || "");
19744
19787
  const isControlled = value !== void 0;
19745
19788
  const currentValue = isControlled ? value : internalValue;
@@ -19763,7 +19806,7 @@ var RadioGroup = React47.forwardRef(
19763
19806
  disabled,
19764
19807
  size,
19765
19808
  variant,
19766
- borderMode
19809
+ borderMode: resolvedBorderMode
19767
19810
  },
19768
19811
  children: /* @__PURE__ */ jsxs38("div", { className: "space-y-2", children: [
19769
19812
  /* @__PURE__ */ jsx51(
@@ -21017,6 +21060,8 @@ function CategoryTreeSelect(props) {
21017
21060
  singleSelect = false,
21018
21061
  borderMode
21019
21062
  } = props;
21063
+ const globalConfig = useUnderverseUIConfig();
21064
+ const resolvedBorderMode = borderMode ?? globalConfig.input?.borderMode ?? globalConfig.borderMode ?? "full";
21020
21065
  const [isOpen, setIsOpen] = useState33(false);
21021
21066
  const [expandedNodes, setExpandedNodes] = useState33(
21022
21067
  () => getInitialExpandedNodes(categories, { defaultExpanded, defaultExpandedIds, expandToId, viewOnly, inline })
@@ -21674,10 +21719,11 @@ function CategoryTreeSelect(props) {
21674
21719
  matchTriggerWidth: true,
21675
21720
  className: "z-9999",
21676
21721
  contentClassName: cn(
21677
- "p-0 overflow-hidden rounded-2xl md:rounded-3xl",
21722
+ "p-0 overflow-hidden",
21678
21723
  "border-border/40 bg-popover/95 text-popover-foreground",
21679
21724
  "shadow-2xl backdrop-blur-xl"
21680
21725
  ),
21726
+ borderMode: resolvedBorderMode,
21681
21727
  trigger: /* @__PURE__ */ jsxs41(
21682
21728
  "div",
21683
21729
  {
@@ -21704,7 +21750,7 @@ function CategoryTreeSelect(props) {
21704
21750
  },
21705
21751
  className: cn(
21706
21752
  "group flex w-full items-center justify-between transition-all duration-200",
21707
- getBorderRadiusClass(borderMode ?? "full"),
21753
+ getBorderRadiusClass(resolvedBorderMode ?? "full"),
21708
21754
  "backdrop-blur-sm",
21709
21755
  triggerSizeStyles[size].button,
21710
21756
  triggerVariantStyles[variant],
@@ -24311,6 +24357,8 @@ function ColorPicker({
24311
24357
  borderMode,
24312
24358
  ...rest
24313
24359
  }) {
24360
+ const globalConfig = useUnderverseUIConfig();
24361
+ const resolvedBorderMode = borderMode ?? globalConfig.input?.borderMode ?? globalConfig.borderMode ?? "full";
24314
24362
  const gi18n = useGlobalI18n();
24315
24363
  const isControlled = value !== void 0;
24316
24364
  const initial = parseAnyColor(isControlled ? value : defaultValue) || { r: 79, g: 70, b: 229, a: 1 };
@@ -24408,7 +24456,7 @@ function ColorPicker({
24408
24456
  disabled,
24409
24457
  className: cn(
24410
24458
  "w-full px-3 border border-input bg-background flex items-center justify-between",
24411
- getBorderRadiusClass(borderMode ?? "full"),
24459
+ getBorderRadiusClass(resolvedBorderMode),
24412
24460
  sizeClasses2[size],
24413
24461
  "hover:border-accent-foreground/30 transition-colors",
24414
24462
  disabled && "opacity-50 cursor-not-allowed",
@@ -24444,8 +24492,9 @@ function ColorPicker({
24444
24492
  onOpenChange: setOpen,
24445
24493
  placement: "bottom-start",
24446
24494
  matchTriggerWidth: variant === "minimal",
24495
+ borderMode: resolvedBorderMode,
24447
24496
  contentWidth: contentWidthByVariant[variant],
24448
- contentClassName: cn("p-3 rounded-2xl md:rounded-3xl border border-border/50 bg-card shadow-lg", contentClassName),
24497
+ contentClassName: cn("p-3 border border-border/50 bg-card shadow-lg", contentClassName),
24449
24498
  children: /* @__PURE__ */ jsxs49("div", { className: "space-y-3", children: [
24450
24499
  variant !== "minimal" && /* @__PURE__ */ jsxs49("div", { className: "flex items-center gap-2", children: [
24451
24500
  /* @__PURE__ */ jsx62(