@underverse-ui/underverse 1.0.196 → 1.0.198

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "@underverse-ui/underverse",
3
- "version": "1.0.196",
3
+ "version": "1.0.198",
4
4
  "sourceEntry": "src/index.ts",
5
5
  "totalExports": 252,
6
6
  "exports": [
package/dist/index.cjs CHANGED
@@ -704,7 +704,7 @@ var Card = import_react2.default.forwardRef(
704
704
  {
705
705
  ref,
706
706
  className: cn(
707
- "group bg-card text-card-foreground transition-[transform,box-shadow,border-color,background-color] duration-300 ease-soft",
707
+ "group/card bg-card text-card-foreground transition-[transform,box-shadow,border-color,background-color] duration-300 ease-soft",
708
708
  resolvedBorderMode ? getPanelBorderRadiusClass(resolvedBorderMode) : "rounded-2xl md:rounded-3xl max-md:rounded-xl",
709
709
  "border border-border/50 shadow-sm backdrop-blur-sm",
710
710
  hoverable && "md:hover:-translate-y-0.5 md:hover:border-primary/15 md:hover:shadow-md",
@@ -729,7 +729,7 @@ var Card = import_react2.default.forwardRef(
729
729
  {
730
730
  className: cn(
731
731
  "pointer-events-none absolute inset-0 bg-linear-to-br from-primary/5 to-transparent opacity-0 transition-opacity duration-300",
732
- "group-hover:opacity-100"
732
+ "group-hover/card:opacity-100"
733
733
  )
734
734
  }
735
735
  ),
@@ -739,7 +739,7 @@ var Card = import_react2.default.forwardRef(
739
739
  {
740
740
  className: cn(
741
741
  "min-w-0 text-base md:text-lg font-semibold leading-tight tracking-tight wrap-anywhere transition-colors duration-200 max-md:text-sm",
742
- hoverable && "group-hover:text-primary"
742
+ hoverable && "group-hover/card:text-primary"
743
743
  ),
744
744
  children: title
745
745
  }
@@ -9223,7 +9223,8 @@ var Combobox = ({
9223
9223
  searchDebounceMs = 0,
9224
9224
  minSearchLength = 0,
9225
9225
  maxInitialOptions,
9226
- showSearchPromptWhenEmptyQuery = false
9226
+ showSearchPromptWhenEmptyQuery = false,
9227
+ matchTriggerBackground = false
9227
9228
  }) => {
9228
9229
  const globalConfig = useUnderverseUIConfig();
9229
9230
  const resolvedBorderMode = borderMode ?? globalConfig.borderMode ?? "full";
@@ -9238,6 +9239,7 @@ var Combobox = ({
9238
9239
  const [query, setQuery] = React30.useState("");
9239
9240
  const [activeIndex, setActiveIndex] = React30.useState(null);
9240
9241
  const [localRequiredError, setLocalRequiredError] = React30.useState();
9242
+ const [triggerBackgroundColor, setTriggerBackgroundColor] = React30.useState();
9241
9243
  useShadCNAnimations();
9242
9244
  const inputRef = React30.useRef(null);
9243
9245
  const optionsViewportRef = React30.useRef(null);
@@ -9279,6 +9281,12 @@ var Combobox = ({
9279
9281
  });
9280
9282
  const virtualItems = canVirtualize ? optionVirtualizer.getVirtualItems() : [];
9281
9283
  const triggerRef = React30.useRef(null);
9284
+ const updateTriggerBackgroundColor = React30.useCallback(() => {
9285
+ const trigger = triggerRef.current;
9286
+ if (!trigger) return;
9287
+ const backgroundColor = window.getComputedStyle(trigger).backgroundColor;
9288
+ setTriggerBackgroundColor((current) => current === backgroundColor ? current : backgroundColor);
9289
+ }, []);
9282
9290
  const scrollVirtualListToIndex = React30.useCallback((index) => {
9283
9291
  if (!canVirtualize || renderLimitedOptions.length === 0) return;
9284
9292
  optionVirtualizer.scrollToIndex(index, { align: "auto" });
@@ -9333,6 +9341,19 @@ var Combobox = ({
9333
9341
  );
9334
9342
  }
9335
9343
  }, [maxInitialOptions, options.length, searchMode, virtualized]);
9344
+ React30.useLayoutEffect(() => {
9345
+ if (!open || !matchTriggerBackground) {
9346
+ setTriggerBackgroundColor(void 0);
9347
+ return void 0;
9348
+ }
9349
+ let raf = 0;
9350
+ const tick = () => {
9351
+ updateTriggerBackgroundColor();
9352
+ raf = window.requestAnimationFrame(tick);
9353
+ };
9354
+ tick();
9355
+ return () => window.cancelAnimationFrame(raf);
9356
+ }, [matchTriggerBackground, open, updateTriggerBackgroundColor]);
9336
9357
  const selectedOption = findOptionByValue(options, value) ?? (selectedOptionProp && getOptionValue(selectedOptionProp) === value ? selectedOptionProp : void 0);
9337
9358
  const displayValue = selectedOption ? getOptionLabel(selectedOption) : "";
9338
9359
  const selectedIcon = selectedOption ? getOptionIcon(selectedOption) : void 0;
@@ -9580,6 +9601,7 @@ var Combobox = ({
9580
9601
  };
9581
9602
  const labelSize = size === "sm" ? "text-xs" : size === "lg" ? "text-base" : "text-sm";
9582
9603
  const verticalGap = size === "sm" ? "space-y-1.5" : "space-y-2";
9604
+ const dropdownBackgroundStyle = matchTriggerBackground && triggerBackgroundColor ? { backgroundColor: triggerBackgroundColor } : void 0;
9583
9605
  const triggerButtonBaseProps = {
9584
9606
  ref: triggerRef,
9585
9607
  type: "button",
@@ -9712,11 +9734,19 @@ var Combobox = ({
9712
9734
  className: "z-50",
9713
9735
  borderMode: resolvedBorderMode,
9714
9736
  contentClassName: "p-0 overflow-hidden",
9737
+ contentProps: { style: dropdownBackgroundStyle },
9715
9738
  children: dropdownBody
9716
9739
  }
9717
9740
  ) : /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "relative", children: [
9718
9741
  triggerButtonInline,
9719
- open && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "absolute left-0 top-full mt-1 z-50 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: cn("overflow-hidden border text-popover-foreground shadow-md backdrop-blur-sm bg-popover/95 border-border/60", getPanelBorderRadiusClass(resolvedBorderMode)), children: dropdownBody }) })
9742
+ open && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "absolute left-0 top-full mt-1 z-50 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
9743
+ "div",
9744
+ {
9745
+ style: dropdownBackgroundStyle,
9746
+ className: cn("overflow-hidden border text-popover-foreground shadow-md backdrop-blur-sm bg-popover/95 border-border/60", getPanelBorderRadiusClass(resolvedBorderMode)),
9747
+ children: dropdownBody
9748
+ }
9749
+ ) })
9720
9750
  ] }),
9721
9751
  (helperText || effectiveError) && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
9722
9752
  "p",