@l3mpire/ui 2.21.0 → 2.22.0

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.mjs CHANGED
@@ -674,7 +674,7 @@ var containerStyle = [
674
674
  "bg-dropdown-bg",
675
675
  "border border-dropdown-border",
676
676
  "rounded-md",
677
- "p-base",
677
+ "p-xs",
678
678
  "shadow-lg"
679
679
  ];
680
680
  var DropdownMenu = React4.forwardRef(
@@ -3946,7 +3946,7 @@ var StatusCell = ({
3946
3946
  label,
3947
3947
  variant = "light",
3948
3948
  type = "primary",
3949
- size = "sm",
3949
+ size = "md",
3950
3950
  className
3951
3951
  }) => /* @__PURE__ */ jsx32("div", { className: cn("flex items-center", className), children: /* @__PURE__ */ jsx32(Badge, { variant, type, size, children: label }) });
3952
3952
  StatusCell.displayName = "StatusCell";
@@ -4991,6 +4991,7 @@ SidePanelContent.displayName = "SidePanelContent";
4991
4991
 
4992
4992
  // src/components/ui/filter/filter-chip-segment.tsx
4993
4993
  import * as React36 from "react";
4994
+ import * as TooltipPrimitive3 from "@radix-ui/react-tooltip";
4994
4995
  import { cva as cva19 } from "class-variance-authority";
4995
4996
  import { Icon as Icon23 } from "@l3mpire/icons";
4996
4997
  import { jsx as jsx36, jsxs as jsxs32 } from "react/jsx-runtime";
@@ -5016,6 +5017,43 @@ var filterChipSegmentVariants = cva19(
5016
5017
  }
5017
5018
  }
5018
5019
  );
5020
+ function TruncatedLabel({
5021
+ label,
5022
+ truncate,
5023
+ className
5024
+ }) {
5025
+ const textRef = React36.useRef(null);
5026
+ const [isTruncated, setIsTruncated] = React36.useState(false);
5027
+ React36.useEffect(() => {
5028
+ const el = textRef.current;
5029
+ if (el && truncate) {
5030
+ setIsTruncated(el.scrollWidth > el.clientWidth);
5031
+ }
5032
+ }, [label, truncate]);
5033
+ const span = /* @__PURE__ */ jsx36(
5034
+ "span",
5035
+ {
5036
+ ref: textRef,
5037
+ className: cn(className, truncate && "max-w-[160px] truncate"),
5038
+ children: label
5039
+ }
5040
+ );
5041
+ if (!isTruncated) return span;
5042
+ return /* @__PURE__ */ jsx36(TooltipPrimitive3.Provider, { delayDuration: 300, children: /* @__PURE__ */ jsxs32(TooltipPrimitive3.Root, { children: [
5043
+ /* @__PURE__ */ jsx36(TooltipPrimitive3.Trigger, { asChild: true, children: span }),
5044
+ /* @__PURE__ */ jsx36(TooltipPrimitive3.Portal, { children: /* @__PURE__ */ jsxs32(
5045
+ TooltipPrimitive3.Content,
5046
+ {
5047
+ sideOffset: 4,
5048
+ className: "z-50 px-base py-sm rounded-md shadow-lg bg-tooltip-default-bg text-tooltip-default-text text-sm font-regular leading-sm max-w-[320px] data-[state=delayed-open]:animate-[tooltip-in_150ms_ease-out] data-[state=closed]:animate-[tooltip-out_100ms_ease-in]",
5049
+ children: [
5050
+ label,
5051
+ /* @__PURE__ */ jsx36(TooltipPrimitive3.Arrow, { className: "fill-tooltip-default-bg" })
5052
+ ]
5053
+ }
5054
+ ) })
5055
+ ] }) });
5056
+ }
5019
5057
  var FilterChipSegment = React36.forwardRef(
5020
5058
  ({
5021
5059
  className,
@@ -5077,13 +5115,14 @@ var FilterChipSegment = React36.forwardRef(
5077
5115
  }
5078
5116
  ),
5079
5117
  label && /* @__PURE__ */ jsx36(
5080
- "span",
5118
+ TruncatedLabel,
5081
5119
  {
5120
+ label,
5121
+ truncate: segmentType === "value",
5082
5122
  className: cn(
5083
5123
  "text-sm font-medium leading-sm whitespace-nowrap",
5084
5124
  segmentType === "placeholder" ? "text-filter-chip-segment-placeholder" : "text-filter-chip-segment-text"
5085
- ),
5086
- children: label
5125
+ )
5087
5126
  }
5088
5127
  ),
5089
5128
  badgeCount != null && badgeCount > 0 && /* @__PURE__ */ jsx36("span", { className: "flex items-center gap-2xs p-2xs rounded-xs bg-filter-chip-badge-bg", children: /* @__PURE__ */ jsx36("span", { className: "text-[10px] font-medium leading-2xs text-filter-chip-badge-text", children: badgeCount }) }),
@@ -5474,10 +5513,10 @@ var SortButton = ({
5474
5513
  className: cn(
5475
5514
  "flex items-center gap-xs",
5476
5515
  "min-h-[32px] max-h-[32px]",
5477
- "bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)]",
5478
- "border border-[var(--color-btn-outlined-neutral-border-default)] rounded-md shadow-sm",
5516
+ "bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
5517
+ "border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
5479
5518
  "cursor-pointer transition-colors",
5480
- "hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]",
5519
+ "hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover",
5481
5520
  iconOnly ? "size-8 justify-center p-0" : "px-md py-sm min-w-[80px]",
5482
5521
  className
5483
5522
  ),
@@ -5487,15 +5526,15 @@ var SortButton = ({
5487
5526
  {
5488
5527
  icon: direction === "asc" ? faArrowUpSmallBigOutline : faArrowDownBigSmallOutline,
5489
5528
  size: "sm",
5490
- className: "shrink-0 text-[var(--color-foreground)]"
5529
+ className: "shrink-0 text-foreground"
5491
5530
  }
5492
5531
  ),
5493
5532
  !iconOnly && /* @__PURE__ */ jsxs34("span", { className: "text-sm font-medium leading-sm whitespace-nowrap", children: [
5494
- /* @__PURE__ */ jsxs34("span", { className: "text-[var(--color-muted-foreground)]", children: [
5533
+ /* @__PURE__ */ jsxs34("span", { className: "text-muted-foreground", children: [
5495
5534
  "Sort by",
5496
5535
  " "
5497
5536
  ] }),
5498
- /* @__PURE__ */ jsx39("span", { className: "text-[var(--color-foreground)]", children: activeLabel })
5537
+ /* @__PURE__ */ jsx39("span", { className: "text-foreground", children: activeLabel })
5499
5538
  ] })
5500
5539
  ]
5501
5540
  }
@@ -5507,7 +5546,7 @@ var SortButton = ({
5507
5546
  align: "start",
5508
5547
  className: cn(
5509
5548
  "z-50 flex flex-col gap-xs overflow-clip p-xs",
5510
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
5549
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
5511
5550
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
5512
5551
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
5513
5552
  "data-[side=bottom]:slide-in-from-top-2",
@@ -5524,8 +5563,8 @@ var SortButton = ({
5524
5563
  },
5525
5564
  className: cn(
5526
5565
  "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors",
5527
- "hover:bg-[var(--color-dropdown-item-hover)]",
5528
- field.id === activeField ? "bg-[var(--color-dropdown-item-hover)]" : ""
5566
+ "hover:bg-dropdown-item-hover",
5567
+ field.id === activeField ? "bg-dropdown-item-hover" : ""
5529
5568
  ),
5530
5569
  children: [
5531
5570
  /* @__PURE__ */ jsx39(
@@ -5535,7 +5574,7 @@ var SortButton = ({
5535
5574
  size: "sm",
5536
5575
  className: cn(
5537
5576
  "shrink-0",
5538
- field.id === activeField ? "text-[var(--color-foreground)]" : "text-[var(--color-dropdown-item-icon)]"
5577
+ field.id === activeField ? "text-foreground" : "text-dropdown-item-icon"
5539
5578
  )
5540
5579
  }
5541
5580
  ),
@@ -5544,7 +5583,7 @@ var SortButton = ({
5544
5583
  {
5545
5584
  className: cn(
5546
5585
  "flex-1 text-sm font-regular leading-sm text-left truncate",
5547
- field.id === activeField ? "text-[var(--color-foreground)]" : "text-[var(--color-dropdown-item-icon)]"
5586
+ field.id === activeField ? "text-foreground" : "text-dropdown-item-icon"
5548
5587
  ),
5549
5588
  children: field.label
5550
5589
  }
@@ -5553,7 +5592,7 @@ var SortButton = ({
5553
5592
  },
5554
5593
  field.id
5555
5594
  )) }),
5556
- /* @__PURE__ */ jsx39("div", { className: "h-px bg-[var(--color-border)]" }),
5595
+ /* @__PURE__ */ jsx39("div", { className: "h-px bg-border" }),
5557
5596
  /* @__PURE__ */ jsxs34("div", { className: "flex flex-col", children: [
5558
5597
  /* @__PURE__ */ jsxs34(
5559
5598
  "button",
@@ -5565,8 +5604,8 @@ var SortButton = ({
5565
5604
  },
5566
5605
  className: cn(
5567
5606
  "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors",
5568
- "hover:bg-[var(--color-dropdown-item-hover)]",
5569
- direction === "asc" ? "bg-[var(--color-dropdown-item-hover)]" : ""
5607
+ "hover:bg-dropdown-item-hover",
5608
+ direction === "asc" ? "bg-dropdown-item-hover" : ""
5570
5609
  ),
5571
5610
  children: [
5572
5611
  /* @__PURE__ */ jsx39(
@@ -5576,7 +5615,7 @@ var SortButton = ({
5576
5615
  size: "sm",
5577
5616
  className: cn(
5578
5617
  "shrink-0",
5579
- direction === "asc" ? "text-[var(--color-foreground)]" : "text-[var(--color-dropdown-item-icon)]"
5618
+ direction === "asc" ? "text-foreground" : "text-dropdown-item-icon"
5580
5619
  )
5581
5620
  }
5582
5621
  ),
@@ -5585,7 +5624,7 @@ var SortButton = ({
5585
5624
  {
5586
5625
  className: cn(
5587
5626
  "flex-1 text-sm font-regular leading-sm text-left",
5588
- direction === "asc" ? "text-[var(--color-foreground)]" : "text-[var(--color-dropdown-item-icon)]"
5627
+ direction === "asc" ? "text-foreground" : "text-dropdown-item-icon"
5589
5628
  ),
5590
5629
  children: "Ascending"
5591
5630
  }
@@ -5603,8 +5642,8 @@ var SortButton = ({
5603
5642
  },
5604
5643
  className: cn(
5605
5644
  "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors",
5606
- "hover:bg-[var(--color-dropdown-item-hover)]",
5607
- direction === "desc" ? "bg-[var(--color-dropdown-item-hover)]" : ""
5645
+ "hover:bg-dropdown-item-hover",
5646
+ direction === "desc" ? "bg-dropdown-item-hover" : ""
5608
5647
  ),
5609
5648
  children: [
5610
5649
  /* @__PURE__ */ jsx39(
@@ -5614,7 +5653,7 @@ var SortButton = ({
5614
5653
  size: "sm",
5615
5654
  className: cn(
5616
5655
  "shrink-0",
5617
- direction === "desc" ? "text-[var(--color-foreground)]" : "text-[var(--color-dropdown-item-icon)]"
5656
+ direction === "desc" ? "text-foreground" : "text-dropdown-item-icon"
5618
5657
  )
5619
5658
  }
5620
5659
  ),
@@ -5623,7 +5662,7 @@ var SortButton = ({
5623
5662
  {
5624
5663
  className: cn(
5625
5664
  "flex-1 text-sm font-regular leading-sm text-left",
5626
- direction === "desc" ? "text-[var(--color-foreground)]" : "text-[var(--color-dropdown-item-icon)]"
5665
+ direction === "desc" ? "text-foreground" : "text-dropdown-item-icon"
5627
5666
  ),
5628
5667
  children: "Descending"
5629
5668
  }
@@ -5651,10 +5690,10 @@ var FilterBarButton = React40.forwardRef(({ className, count, iconOnly = false,
5651
5690
  className: cn(
5652
5691
  "shrink-0 flex items-center gap-sm overflow-hidden",
5653
5692
  "min-h-[32px] max-h-[32px]",
5654
- "bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)]",
5655
- "border border-[var(--color-btn-outlined-neutral-border-default)] rounded-md shadow-sm",
5693
+ "bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
5694
+ "border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
5656
5695
  "cursor-pointer transition-colors",
5657
- "hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]",
5696
+ "hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover",
5658
5697
  iconOnly ? count ? "px-sm justify-center" : "size-8 justify-center p-0" : "px-base py-sm min-w-[80px]",
5659
5698
  className
5660
5699
  ),
@@ -5665,10 +5704,10 @@ var FilterBarButton = React40.forwardRef(({ className, count, iconOnly = false,
5665
5704
  {
5666
5705
  icon: faFilterOutline2,
5667
5706
  size: "sm",
5668
- className: "shrink-0 text-[var(--color-foreground)]"
5707
+ className: "shrink-0 text-foreground"
5669
5708
  }
5670
5709
  ),
5671
- !iconOnly && /* @__PURE__ */ jsx40("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-[var(--color-foreground)]", children: children ?? "Filters" }),
5710
+ !iconOnly && /* @__PURE__ */ jsx40("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-foreground", children: children ?? "Filters" }),
5672
5711
  count != null && count > 0 && /* @__PURE__ */ jsx40("span", { className: "flex items-center p-2xs rounded-xs bg-filter-chip-badge-bg", children: /* @__PURE__ */ jsx40("span", { className: "text-[10px] font-medium leading-2xs text-filter-chip-badge-text", children: count }) })
5673
5712
  ]
5674
5713
  }
@@ -5684,10 +5723,10 @@ var SaveViewButton = React41.forwardRef(
5684
5723
  const sharedStyle = [
5685
5724
  "relative flex items-center justify-center",
5686
5725
  "min-h-[32px] max-h-[32px]",
5687
- "bg-gradient-to-t from-[var(--color-btn-solid-brand-bg-default)] from-[10%] to-[var(--color-btn-solid-brand-bg-gradient-to-default)]",
5688
- "border border-[var(--color-btn-solid-brand-border-default)]",
5726
+ "bg-gradient-to-t from-btn-solid-brand-bg-default from-[10%] to-btn-solid-brand-bg-gradient-to-default",
5727
+ "border border-btn-solid-brand-border-default",
5689
5728
  "shadow-sm cursor-pointer transition-colors",
5690
- "hover:from-[var(--color-btn-solid-brand-bg-hover)] hover:to-[var(--color-btn-solid-brand-bg-gradient-to-hover)]"
5729
+ "hover:from-btn-solid-brand-bg-hover hover:to-btn-solid-brand-bg-gradient-to-hover"
5691
5730
  ];
5692
5731
  return /* @__PURE__ */ jsxs36(
5693
5732
  "div",
@@ -5707,8 +5746,8 @@ var SaveViewButton = React41.forwardRef(
5707
5746
  "rounded-l-md -mr-px"
5708
5747
  ),
5709
5748
  children: [
5710
- /* @__PURE__ */ jsx41("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-[var(--color-btn-solid-brand-text-default)]", children: label }),
5711
- /* @__PURE__ */ jsx41("span", { className: "absolute inset-0 rounded-l-[11px] border border-[var(--color-btn-solid-brand-inner-border-default)] shadow-sm pointer-events-none" })
5749
+ /* @__PURE__ */ jsx41("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-btn-solid-brand-text-default", children: label }),
5750
+ /* @__PURE__ */ jsx41("span", { className: "absolute inset-0 rounded-l-[11px] border border-btn-solid-brand-inner-border-default shadow-sm pointer-events-none" })
5712
5751
  ]
5713
5752
  }
5714
5753
  ),
@@ -5728,10 +5767,10 @@ var SaveViewButton = React41.forwardRef(
5728
5767
  {
5729
5768
  icon: faChevronDownOutline,
5730
5769
  size: "sm",
5731
- className: "text-[var(--color-btn-solid-brand-text-default)]"
5770
+ className: "text-btn-solid-brand-text-default"
5732
5771
  }
5733
5772
  ),
5734
- /* @__PURE__ */ jsx41("span", { className: "absolute inset-0 rounded-r-[11px] border border-[var(--color-btn-solid-brand-inner-border-default)] shadow-sm pointer-events-none" })
5773
+ /* @__PURE__ */ jsx41("span", { className: "absolute inset-0 rounded-r-[11px] border border-btn-solid-brand-inner-border-default shadow-sm pointer-events-none" })
5735
5774
  ]
5736
5775
  }
5737
5776
  )
@@ -5763,7 +5802,7 @@ var OperatorSelector = ({
5763
5802
  align: "start",
5764
5803
  className: cn(
5765
5804
  "z-50 flex flex-col p-xs overflow-clip",
5766
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
5805
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
5767
5806
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
5768
5807
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
5769
5808
  "data-[side=bottom]:slide-in-from-top-2",
@@ -5776,8 +5815,8 @@ var OperatorSelector = ({
5776
5815
  onClick: () => onSelect(op),
5777
5816
  className: cn(
5778
5817
  "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
5779
- "hover:bg-[var(--color-dropdown-item-hover)]",
5780
- op === activeOperator && "bg-[var(--color-dropdown-item-hover)]"
5818
+ "hover:bg-dropdown-item-hover",
5819
+ op === activeOperator && "bg-dropdown-item-hover"
5781
5820
  ),
5782
5821
  children: [
5783
5822
  /* @__PURE__ */ jsx42(
@@ -5785,12 +5824,12 @@ var OperatorSelector = ({
5785
5824
  {
5786
5825
  className: cn(
5787
5826
  "text-sm font-regular leading-sm",
5788
- op === activeOperator ? "text-[var(--color-foreground)] font-medium" : "text-[var(--color-dropdown-item-text)]"
5827
+ op === activeOperator ? "text-foreground font-medium" : "text-dropdown-item-text"
5789
5828
  ),
5790
5829
  children: op
5791
5830
  }
5792
5831
  ),
5793
- isNoValueOperator(op) && /* @__PURE__ */ jsx42("span", { className: "ml-auto text-xs text-[var(--color-muted-foreground)]", children: "instant" })
5832
+ isNoValueOperator(op) && /* @__PURE__ */ jsx42("span", { className: "ml-auto text-xs text-muted-foreground", children: "instant" })
5794
5833
  ]
5795
5834
  },
5796
5835
  op
@@ -5813,15 +5852,15 @@ var OperatorList = ({
5813
5852
  onClick: () => onSelect(op),
5814
5853
  className: cn(
5815
5854
  "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
5816
- "hover:bg-[var(--color-dropdown-item-hover)]",
5817
- op === activeOperator && "bg-[var(--color-dropdown-item-hover)]"
5855
+ "hover:bg-dropdown-item-hover",
5856
+ op === activeOperator && "bg-dropdown-item-hover"
5818
5857
  ),
5819
5858
  children: /* @__PURE__ */ jsx42(
5820
5859
  "span",
5821
5860
  {
5822
5861
  className: cn(
5823
5862
  "text-sm font-regular leading-sm",
5824
- op === activeOperator ? "text-[var(--color-foreground)] font-medium" : "text-[var(--color-dropdown-item-text)]"
5863
+ op === activeOperator ? "text-foreground font-medium" : "text-dropdown-item-text"
5825
5864
  ),
5826
5865
  children: op
5827
5866
  }
@@ -5834,17 +5873,16 @@ OperatorList.displayName = "OperatorList";
5834
5873
 
5835
5874
  // src/components/ui/filter/value-inputs/shared.ts
5836
5875
  var inputClasses = [
5837
- "w-full px-base py-sm rounded-base border border-[var(--color-input)]",
5838
- "bg-[var(--color-background)] text-sm font-regular leading-sm text-[var(--color-foreground)]",
5839
- "placeholder:text-[var(--color-muted-foreground)]",
5840
- "focus:outline-none focus:ring-2 focus:ring-[var(--color-ring)] focus:ring-offset-0"
5876
+ "w-full px-base py-sm rounded-base border border-input",
5877
+ "bg-background text-sm font-regular leading-sm text-foreground",
5878
+ "placeholder:text-muted-foreground",
5879
+ "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-0"
5841
5880
  ].join(" ");
5842
5881
  var halfInputClasses = [
5843
- "flex-1 px-base py-sm rounded-base border border-[var(--color-input)]",
5844
- "bg-[var(--color-background)] text-sm font-regular leading-sm text-[var(--color-foreground)]",
5845
- "focus:outline-none focus:ring-2 focus:ring-[var(--color-ring)]"
5882
+ "flex-1 px-base py-sm rounded-base border border-input",
5883
+ "bg-background text-sm font-regular leading-sm text-foreground",
5884
+ "focus:outline-none focus:ring-2 focus:ring-ring"
5846
5885
  ].join(" ");
5847
- var applyBtnClasses = "self-end px-md py-sm text-sm font-medium leading-sm text-[var(--color-primary-foreground)] bg-[var(--color-primary)] rounded-base cursor-pointer hover:opacity-90 transition-opacity";
5848
5886
 
5849
5887
  // src/components/ui/filter/value-inputs/text-value-input.tsx
5850
5888
  import { jsx as jsx43, jsxs as jsxs38 } from "react/jsx-runtime";
@@ -5857,7 +5895,7 @@ var TextValueInput = ({
5857
5895
  const handleKeyDown = (e) => {
5858
5896
  if (e.key === "Enter") onSubmit?.();
5859
5897
  };
5860
- return /* @__PURE__ */ jsxs38("div", { className: cn("flex flex-col gap-base p-base", className), children: [
5898
+ return /* @__PURE__ */ jsxs38("div", { className: cn("flex flex-col gap-base p-xs", className), children: [
5861
5899
  /* @__PURE__ */ jsx43(
5862
5900
  "input",
5863
5901
  {
@@ -5870,7 +5908,7 @@ var TextValueInput = ({
5870
5908
  className: inputClasses
5871
5909
  }
5872
5910
  ),
5873
- /* @__PURE__ */ jsx43("button", { type: "button", onClick: onSubmit, className: applyBtnClasses, children: "Apply" })
5911
+ /* @__PURE__ */ jsx43(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
5874
5912
  ] });
5875
5913
  };
5876
5914
  TextValueInput.displayName = "TextValueInput";
@@ -5886,7 +5924,7 @@ var NumberValueInput = ({
5886
5924
  const handleKeyDown = (e) => {
5887
5925
  if (e.key === "Enter") onSubmit?.();
5888
5926
  };
5889
- return /* @__PURE__ */ jsxs39("div", { className: cn("flex flex-col gap-base p-base", className), children: [
5927
+ return /* @__PURE__ */ jsxs39("div", { className: cn("flex flex-col gap-base p-xs", className), children: [
5890
5928
  /* @__PURE__ */ jsx44(
5891
5929
  "input",
5892
5930
  {
@@ -5899,7 +5937,7 @@ var NumberValueInput = ({
5899
5937
  className: inputClasses
5900
5938
  }
5901
5939
  ),
5902
- /* @__PURE__ */ jsx44("button", { type: "button", onClick: onSubmit, className: applyBtnClasses, children: "Apply" })
5940
+ /* @__PURE__ */ jsx44(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
5903
5941
  ] });
5904
5942
  };
5905
5943
  NumberValueInput.displayName = "NumberValueInput";
@@ -5910,7 +5948,7 @@ var NumberRangeValueInput = ({
5910
5948
  className
5911
5949
  }) => {
5912
5950
  const rangeVal = value ?? [0, 0];
5913
- return /* @__PURE__ */ jsxs39("div", { className: cn("flex flex-col gap-base p-base", className), children: [
5951
+ return /* @__PURE__ */ jsxs39("div", { className: cn("flex flex-col gap-base p-xs", className), children: [
5914
5952
  /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-base", children: [
5915
5953
  /* @__PURE__ */ jsx44(
5916
5954
  "input",
@@ -5923,7 +5961,7 @@ var NumberRangeValueInput = ({
5923
5961
  className: halfInputClasses
5924
5962
  }
5925
5963
  ),
5926
- /* @__PURE__ */ jsx44("span", { className: "text-sm text-[var(--color-muted-foreground)]", children: "and" }),
5964
+ /* @__PURE__ */ jsx44("span", { className: "text-sm text-muted-foreground", children: "and" }),
5927
5965
  /* @__PURE__ */ jsx44(
5928
5966
  "input",
5929
5967
  {
@@ -5935,7 +5973,7 @@ var NumberRangeValueInput = ({
5935
5973
  }
5936
5974
  )
5937
5975
  ] }),
5938
- /* @__PURE__ */ jsx44("button", { type: "button", onClick: onSubmit, className: applyBtnClasses, children: "Apply" })
5976
+ /* @__PURE__ */ jsx44(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
5939
5977
  ] });
5940
5978
  };
5941
5979
  NumberRangeValueInput.displayName = "NumberRangeValueInput";
@@ -6497,7 +6535,7 @@ var DateCalendarValueInput = ({
6497
6535
  ] }) : /* @__PURE__ */ jsx46(DatePickerCalendar, {}),
6498
6536
  isRange && /* @__PURE__ */ jsxs41(DatePickerFooter, { children: [
6499
6537
  /* @__PURE__ */ jsx46("div", {}),
6500
- /* @__PURE__ */ jsx46("button", { type: "button", onClick: onSubmit, className: applyBtnClasses, children: "Apply" })
6538
+ /* @__PURE__ */ jsx46(Button, { appearance: "solid", intent: "brand", size: "sm", onClick: onSubmit, children: "Apply" })
6501
6539
  ] })
6502
6540
  ]
6503
6541
  }
@@ -6509,8 +6547,8 @@ var PresetTagsValueInput = ({
6509
6547
  onChange,
6510
6548
  onSubmit,
6511
6549
  className
6512
- }) => /* @__PURE__ */ jsx46("div", { className: cn("flex flex-col gap-base p-base max-w-[280px]", className), children: RELATIVE_DATE_PRESETS.map((group) => /* @__PURE__ */ jsxs41("div", { className: "flex flex-col gap-xs", children: [
6513
- /* @__PURE__ */ jsx46("span", { className: "text-xs font-medium leading-xs text-[var(--color-muted-foreground)] uppercase px-xs", children: group.group }),
6550
+ }) => /* @__PURE__ */ jsx46("div", { className: cn("flex flex-col gap-base p-xs max-w-[280px]", className), children: RELATIVE_DATE_PRESETS.map((group) => /* @__PURE__ */ jsxs41("div", { className: "flex flex-col gap-xs", children: [
6551
+ /* @__PURE__ */ jsx46("span", { className: "text-xs font-medium leading-xs text-muted-foreground uppercase px-xs", children: group.group }),
6514
6552
  /* @__PURE__ */ jsx46("div", { className: "flex flex-wrap gap-xs", children: group.options.map((preset) => /* @__PURE__ */ jsx46(
6515
6553
  "button",
6516
6554
  {
@@ -6521,7 +6559,7 @@ var PresetTagsValueInput = ({
6521
6559
  },
6522
6560
  className: cn(
6523
6561
  "px-base py-2xs rounded-base border cursor-pointer transition-colors text-sm font-regular leading-sm",
6524
- value === preset ? "border-[var(--color-ring)] bg-[var(--color-primary)] text-[var(--color-primary-foreground)]" : "border-[var(--color-input)] bg-[var(--color-background)] text-[var(--color-foreground)] hover:bg-[var(--color-accent)]"
6562
+ value === preset ? "border-ring bg-primary text-primary-foreground" : "border-input bg-background text-foreground hover:bg-accent"
6525
6563
  ),
6526
6564
  children: preset
6527
6565
  },
@@ -6544,8 +6582,8 @@ var DynamicOptionRow = ({
6544
6582
  onClick,
6545
6583
  className: cn(
6546
6584
  "flex items-start gap-base p-base rounded-base cursor-pointer transition-colors text-left",
6547
- "hover:bg-[var(--color-dropdown-item-hover)]",
6548
- selected && "bg-[var(--color-dropdown-item-hover)]"
6585
+ "hover:bg-dropdown-item-hover",
6586
+ selected && "bg-dropdown-item-hover"
6549
6587
  ),
6550
6588
  children: [
6551
6589
  multi && /* @__PURE__ */ jsx47(
@@ -6553,7 +6591,7 @@ var DynamicOptionRow = ({
6553
6591
  {
6554
6592
  className: cn(
6555
6593
  "mt-[2px] flex items-center justify-center size-4 rounded-xs border transition-colors shrink-0",
6556
- selected ? "bg-[var(--color-primary)] border-[var(--color-primary)]" : "border-[var(--color-input)] bg-[var(--color-background)]"
6594
+ selected ? "bg-primary border-primary" : "border-input bg-background"
6557
6595
  ),
6558
6596
  children: selected && /* @__PURE__ */ jsx47("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ jsx47(
6559
6597
  "path",
@@ -6568,8 +6606,8 @@ var DynamicOptionRow = ({
6568
6606
  }
6569
6607
  ),
6570
6608
  /* @__PURE__ */ jsxs42("span", { className: "flex-1 flex flex-col gap-2xs min-w-0", children: [
6571
- /* @__PURE__ */ jsx47("span", { className: "text-sm font-regular leading-sm text-[var(--color-foreground)] truncate", children: option.label }),
6572
- option.description && /* @__PURE__ */ jsx47("span", { className: "text-xs font-regular leading-xs text-[var(--color-muted-foreground)]", children: option.description })
6609
+ /* @__PURE__ */ jsx47("span", { className: "text-sm font-regular leading-sm text-foreground truncate", children: option.label }),
6610
+ option.description && /* @__PURE__ */ jsx47("span", { className: "text-xs font-regular leading-xs text-muted-foreground", children: option.description })
6573
6611
  ] })
6574
6612
  ]
6575
6613
  }
@@ -6590,7 +6628,7 @@ var SingleSelectValueInput = ({
6590
6628
  "div",
6591
6629
  {
6592
6630
  className: cn(
6593
- "flex flex-col gap-xs p-base max-h-[280px] overflow-y-auto",
6631
+ "flex flex-col gap-xs p-xs max-h-[280px] overflow-y-auto",
6594
6632
  className
6595
6633
  ),
6596
6634
  children: [
@@ -6611,10 +6649,10 @@ var SingleSelectValueInput = ({
6611
6649
  onClick: () => pick(opt),
6612
6650
  className: cn(
6613
6651
  "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
6614
- "hover:bg-[var(--color-dropdown-item-hover)]",
6615
- value === opt && "bg-[var(--color-dropdown-item-hover)]"
6652
+ "hover:bg-dropdown-item-hover",
6653
+ value === opt && "bg-dropdown-item-hover"
6616
6654
  ),
6617
- children: /* @__PURE__ */ jsx47("span", { className: "text-sm font-regular leading-sm text-[var(--color-foreground)]", children: opt })
6655
+ children: /* @__PURE__ */ jsx47("span", { className: "text-sm font-regular leading-sm text-foreground", children: opt })
6618
6656
  },
6619
6657
  opt
6620
6658
  ))
@@ -6636,7 +6674,7 @@ var MultiSelectValueInput = ({
6636
6674
  const next = selected.includes(v) ? selected.filter((s) => s !== v) : [...selected, v];
6637
6675
  onChange(next);
6638
6676
  };
6639
- return /* @__PURE__ */ jsxs42("div", { className: cn("flex flex-col gap-xs p-base", className), children: [
6677
+ return /* @__PURE__ */ jsxs42("div", { className: cn("flex flex-col gap-xs p-xs", className), children: [
6640
6678
  /* @__PURE__ */ jsxs42("div", { className: "flex flex-col max-h-[240px] overflow-y-auto", children: [
6641
6679
  dynamicOptions?.map((opt) => /* @__PURE__ */ jsx47(
6642
6680
  DynamicOptionRow,
@@ -6657,7 +6695,7 @@ var MultiSelectValueInput = ({
6657
6695
  onClick: () => toggle(opt),
6658
6696
  className: cn(
6659
6697
  "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
6660
- "hover:bg-[var(--color-dropdown-item-hover)]"
6698
+ "hover:bg-dropdown-item-hover"
6661
6699
  ),
6662
6700
  children: [
6663
6701
  /* @__PURE__ */ jsx47(
@@ -6665,7 +6703,7 @@ var MultiSelectValueInput = ({
6665
6703
  {
6666
6704
  className: cn(
6667
6705
  "flex items-center justify-center size-4 rounded-xs border transition-colors",
6668
- isSelected ? "bg-[var(--color-primary)] border-[var(--color-primary)]" : "border-[var(--color-input)] bg-[var(--color-background)]"
6706
+ isSelected ? "bg-primary border-primary" : "border-input bg-background"
6669
6707
  ),
6670
6708
  children: isSelected && /* @__PURE__ */ jsx47("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ jsx47(
6671
6709
  "path",
@@ -6679,14 +6717,14 @@ var MultiSelectValueInput = ({
6679
6717
  ) })
6680
6718
  }
6681
6719
  ),
6682
- /* @__PURE__ */ jsx47("span", { className: "text-sm font-regular leading-sm text-[var(--color-foreground)]", children: opt })
6720
+ /* @__PURE__ */ jsx47("span", { className: "text-sm font-regular leading-sm text-foreground", children: opt })
6683
6721
  ]
6684
6722
  },
6685
6723
  opt
6686
6724
  );
6687
6725
  })
6688
6726
  ] }),
6689
- /* @__PURE__ */ jsx47("button", { type: "button", onClick: onSubmit, className: applyBtnClasses, children: "Apply" })
6727
+ /* @__PURE__ */ jsx47(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
6690
6728
  ] });
6691
6729
  };
6692
6730
  MultiSelectValueInput.displayName = "MultiSelectValueInput";
@@ -6702,7 +6740,7 @@ var RelationValueInput = ({
6702
6740
  const handleKeyDown = (e) => {
6703
6741
  if (e.key === "Enter") onSubmit?.();
6704
6742
  };
6705
- return /* @__PURE__ */ jsxs43("div", { className: cn("flex flex-col gap-base p-base", className), children: [
6743
+ return /* @__PURE__ */ jsxs43("div", { className: cn("flex flex-col gap-base p-xs", className), children: [
6706
6744
  /* @__PURE__ */ jsx48(
6707
6745
  "input",
6708
6746
  {
@@ -6715,7 +6753,7 @@ var RelationValueInput = ({
6715
6753
  className: inputClasses
6716
6754
  }
6717
6755
  ),
6718
- /* @__PURE__ */ jsx48("button", { type: "button", onClick: onSubmit, className: applyBtnClasses, children: "Apply" })
6756
+ /* @__PURE__ */ jsx48(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
6719
6757
  ] });
6720
6758
  };
6721
6759
  RelationValueInput.displayName = "RelationValueInput";
@@ -6796,27 +6834,27 @@ import {
6796
6834
  faMagnifyingGlassOutline,
6797
6835
  faFilterOutline as faFilterOutline3
6798
6836
  } from "@l3mpire/icons";
6799
- import { Fragment as Fragment4, jsx as jsx50, jsxs as jsxs44 } from "react/jsx-runtime";
6800
- var AdvancedFilterFooter = ({ onClick, count }) => /* @__PURE__ */ jsxs44(Fragment4, { children: [
6801
- /* @__PURE__ */ jsx50("div", { className: "h-px bg-[var(--color-dropdown-border)] mx-xs" }),
6837
+ import { jsx as jsx50, jsxs as jsxs44 } from "react/jsx-runtime";
6838
+ var AdvancedFilterFooter = ({ onClick, count }) => /* @__PURE__ */ jsxs44("div", { className: "shrink-0 flex flex-col", children: [
6839
+ /* @__PURE__ */ jsx50("div", { className: "h-px bg-dropdown-border mx-xs" }),
6802
6840
  /* @__PURE__ */ jsxs44(
6803
6841
  "button",
6804
6842
  {
6805
6843
  type: "button",
6806
6844
  onPointerDown: (e) => e.preventDefault(),
6807
6845
  onClick,
6808
- className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-[var(--color-dropdown-item-hover)]",
6846
+ className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
6809
6847
  children: [
6810
6848
  /* @__PURE__ */ jsx50(
6811
6849
  Icon28,
6812
6850
  {
6813
6851
  icon: faFilterOutline3,
6814
6852
  size: "sm",
6815
- className: "shrink-0 text-[var(--color-dropdown-item-icon)]"
6853
+ className: "shrink-0 text-dropdown-item-icon"
6816
6854
  }
6817
6855
  ),
6818
- /* @__PURE__ */ jsx50("span", { className: "flex-1 text-sm font-regular leading-sm text-[var(--color-dropdown-item-text)] text-left truncate", children: "Advanced filter" }),
6819
- count > 0 && /* @__PURE__ */ jsxs44("span", { className: "text-xs font-regular leading-xs text-[var(--color-muted-foreground)]", children: [
6856
+ /* @__PURE__ */ jsx50("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: "Advanced filter" }),
6857
+ count > 0 && /* @__PURE__ */ jsxs44("span", { className: "text-xs font-regular leading-xs text-muted-foreground", children: [
6820
6858
  count,
6821
6859
  " ",
6822
6860
  count === 1 ? "rule" : "rules"
@@ -6848,9 +6886,21 @@ var PropertySelector = ({
6848
6886
  setSearch("");
6849
6887
  }
6850
6888
  }, [open]);
6889
+ const pinnedGroupIds = React44.useMemo(() => {
6890
+ const set = /* @__PURE__ */ new Set();
6891
+ for (const p of properties) {
6892
+ if (p.groupPinned) set.add(p.group);
6893
+ }
6894
+ return set;
6895
+ }, [properties]);
6896
+ const pinnedProperties = React44.useMemo(
6897
+ () => properties.filter((p) => pinnedGroupIds.has(p.group)),
6898
+ [properties, pinnedGroupIds]
6899
+ );
6851
6900
  const groups = React44.useMemo(() => {
6852
6901
  const map = /* @__PURE__ */ new Map();
6853
6902
  for (const prop of properties) {
6903
+ if (pinnedGroupIds.has(prop.group)) continue;
6854
6904
  const existing = map.get(prop.group);
6855
6905
  if (existing) {
6856
6906
  existing.count++;
@@ -6864,12 +6914,14 @@ var PropertySelector = ({
6864
6914
  }
6865
6915
  }
6866
6916
  return Array.from(map.values());
6867
- }, [properties]);
6868
- const globalSearchResults = React44.useMemo(() => {
6869
- if (!search || activeGroup) return [];
6917
+ }, [properties, pinnedGroupIds]);
6918
+ const filteredPinnedProperties = React44.useMemo(() => {
6919
+ if (!search || activeGroup) return pinnedProperties;
6870
6920
  const lower = search.toLowerCase();
6871
- return properties.filter((p) => p.label.toLowerCase().includes(lower));
6872
- }, [properties, search, activeGroup]);
6921
+ return pinnedProperties.filter(
6922
+ (p) => p.label.toLowerCase().includes(lower)
6923
+ );
6924
+ }, [pinnedProperties, search, activeGroup]);
6873
6925
  const filteredGroups = React44.useMemo(() => {
6874
6926
  if (!search || activeGroup) return groups;
6875
6927
  const lower = search.toLowerCase();
@@ -6887,7 +6939,13 @@ var PropertySelector = ({
6887
6939
  return groupProps.filter((p) => p.label.toLowerCase().includes(lower));
6888
6940
  }, [properties, activeGroup, search]);
6889
6941
  const activeGroupInfo = groups.find((g) => g.group === activeGroup);
6890
- const showGlobalResults = search.length > 0 && !activeGroup && globalSearchResults.length > 0;
6942
+ const nonPinnedSearchResults = React44.useMemo(() => {
6943
+ if (!search || activeGroup) return [];
6944
+ const lower = search.toLowerCase();
6945
+ return properties.filter(
6946
+ (p) => !pinnedGroupIds.has(p.group) && p.label.toLowerCase().includes(lower)
6947
+ );
6948
+ }, [properties, search, activeGroup, pinnedGroupIds]);
6891
6949
  return /* @__PURE__ */ jsxs44(PopoverPrimitive6.Root, { open, onOpenChange, children: [
6892
6950
  /* @__PURE__ */ jsx50(PopoverPrimitive6.Trigger, { asChild: true, children }),
6893
6951
  /* @__PURE__ */ jsx50(PopoverPrimitive6.Portal, { children: /* @__PURE__ */ jsxs44(
@@ -6897,24 +6955,24 @@ var PropertySelector = ({
6897
6955
  align: "start",
6898
6956
  onCloseAutoFocus: (e) => e.preventDefault(),
6899
6957
  className: cn(
6900
- "z-50 flex flex-col gap-xs overflow-clip p-xs",
6901
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
6958
+ "z-50 flex flex-col gap-xs overflow-hidden p-xs",
6959
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
6902
6960
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
6903
6961
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
6904
6962
  "data-[side=bottom]:slide-in-from-top-2",
6905
- "min-w-[230px]"
6963
+ "min-w-[230px] max-h-[360px]"
6906
6964
  ),
6907
6965
  children: [
6908
6966
  activeGroup === null ? (
6909
- /* ── Level 1: Search + Categories ───────────────────────── */
6910
- /* @__PURE__ */ jsxs44("div", { className: "flex flex-col gap-xs", children: [
6911
- /* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-base px-md py-base border border-[var(--color-input)] rounded-md", children: [
6967
+ /* ── Level 1: Search + (pinned props) + Categories ──────── */
6968
+ /* @__PURE__ */ jsxs44("div", { className: "flex flex-col gap-xs flex-1 min-h-0", children: [
6969
+ /* @__PURE__ */ jsxs44("div", { className: "shrink-0 flex items-center gap-base px-md py-base border border-input rounded-md", children: [
6912
6970
  /* @__PURE__ */ jsx50(
6913
6971
  Icon28,
6914
6972
  {
6915
6973
  icon: faMagnifyingGlassOutline,
6916
6974
  size: "sm",
6917
- className: "shrink-0 text-[var(--color-muted-foreground)]"
6975
+ className: "shrink-0 text-muted-foreground"
6918
6976
  }
6919
6977
  ),
6920
6978
  /* @__PURE__ */ jsx50(
@@ -6925,13 +6983,12 @@ var PropertySelector = ({
6925
6983
  onChange: (e) => setSearch(e.target.value),
6926
6984
  placeholder: "Search...",
6927
6985
  autoFocus: true,
6928
- className: "flex-1 text-sm font-regular leading-sm text-[var(--color-foreground)] bg-transparent outline-none placeholder:text-[var(--color-muted-foreground)]"
6986
+ className: "flex-1 text-sm font-regular leading-sm text-foreground bg-transparent outline-none placeholder:text-muted-foreground"
6929
6987
  }
6930
6988
  )
6931
6989
  ] }),
6932
- showGlobalResults ? (
6933
- /* ── Global search results (flat property list) ─────── */
6934
- /* @__PURE__ */ jsx50("div", { className: "flex flex-col max-h-[300px] overflow-y-auto", children: globalSearchResults.map((prop) => /* @__PURE__ */ jsxs44(
6990
+ /* @__PURE__ */ jsxs44("div", { className: "flex flex-col flex-1 min-h-0 overflow-y-auto", children: [
6991
+ filteredPinnedProperties.map((prop) => /* @__PURE__ */ jsxs44(
6935
6992
  "button",
6936
6993
  {
6937
6994
  type: "button",
@@ -6939,25 +6996,49 @@ var PropertySelector = ({
6939
6996
  onSelect(prop);
6940
6997
  onOpenChange?.(false);
6941
6998
  },
6942
- className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-[var(--color-dropdown-item-hover)]",
6999
+ className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
6943
7000
  children: [
6944
7001
  /* @__PURE__ */ jsx50(
6945
7002
  Icon28,
6946
7003
  {
6947
7004
  icon: prop.icon,
6948
7005
  size: "sm",
6949
- className: "shrink-0 text-[var(--color-dropdown-item-icon)]"
7006
+ className: "shrink-0 text-dropdown-item-icon"
6950
7007
  }
6951
7008
  ),
6952
- /* @__PURE__ */ jsx50("span", { className: "flex-1 text-sm font-regular leading-sm text-[var(--color-dropdown-item-text)] text-left truncate", children: prop.label }),
6953
- /* @__PURE__ */ jsx50("span", { className: "text-xs font-regular leading-xs text-[var(--color-muted-foreground)]", children: prop.groupLabel })
7009
+ /* @__PURE__ */ jsx50("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: prop.label })
6954
7010
  ]
6955
7011
  },
6956
7012
  prop.id
6957
- )) })
6958
- ) : (
6959
- /* ── Group list ─────────────────────────────────────── */
6960
- /* @__PURE__ */ jsxs44("div", { className: "flex flex-col", children: [
7013
+ )),
7014
+ search ? (
7015
+ /* ── Flat matches across non-pinned groups ────────── */
7016
+ nonPinnedSearchResults.map((prop) => /* @__PURE__ */ jsxs44(
7017
+ "button",
7018
+ {
7019
+ type: "button",
7020
+ onClick: () => {
7021
+ onSelect(prop);
7022
+ onOpenChange?.(false);
7023
+ },
7024
+ className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
7025
+ children: [
7026
+ /* @__PURE__ */ jsx50(
7027
+ Icon28,
7028
+ {
7029
+ icon: prop.icon,
7030
+ size: "sm",
7031
+ className: "shrink-0 text-dropdown-item-icon"
7032
+ }
7033
+ ),
7034
+ /* @__PURE__ */ jsx50("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: prop.label }),
7035
+ /* @__PURE__ */ jsx50("span", { className: "text-xs font-regular leading-xs text-muted-foreground", children: prop.groupLabel })
7036
+ ]
7037
+ },
7038
+ prop.id
7039
+ ))
7040
+ ) : (
7041
+ /* ── Category list ────────────────────────────────── */
6961
7042
  filteredGroups.map((g) => /* @__PURE__ */ jsxs44(
6962
7043
  "button",
6963
7044
  {
@@ -6966,37 +7047,37 @@ var PropertySelector = ({
6966
7047
  setActiveGroup(g.group);
6967
7048
  setSearch("");
6968
7049
  },
6969
- className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-[var(--color-dropdown-item-hover)]",
7050
+ className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
6970
7051
  children: [
6971
7052
  /* @__PURE__ */ jsx50(
6972
7053
  Icon28,
6973
7054
  {
6974
7055
  icon: g.groupIcon,
6975
7056
  size: "sm",
6976
- className: "shrink-0 text-[var(--color-dropdown-item-icon)]"
7057
+ className: "shrink-0 text-dropdown-item-icon"
6977
7058
  }
6978
7059
  ),
6979
- /* @__PURE__ */ jsx50("span", { className: "flex-1 text-sm font-regular leading-sm text-[var(--color-dropdown-item-text)] text-left truncate", children: g.groupLabel }),
6980
- /* @__PURE__ */ jsx50("span", { className: "text-xs font-medium leading-xs text-[var(--color-muted-foreground)]", children: g.count }),
7060
+ /* @__PURE__ */ jsx50("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: g.groupLabel }),
7061
+ /* @__PURE__ */ jsx50("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: g.count }),
6981
7062
  /* @__PURE__ */ jsx50(
6982
7063
  Icon28,
6983
7064
  {
6984
7065
  icon: faChevronRightOutline3,
6985
7066
  size: "xs",
6986
- className: "shrink-0 text-[var(--color-dropdown-item-icon)]"
7067
+ className: "shrink-0 text-dropdown-item-icon"
6987
7068
  }
6988
7069
  )
6989
7070
  ]
6990
7071
  },
6991
7072
  g.group
6992
- )),
6993
- filteredGroups.length === 0 && /* @__PURE__ */ jsx50("span", { className: "p-base text-sm text-[var(--color-muted-foreground)]", children: "No results" })
6994
- ] })
6995
- )
7073
+ ))
7074
+ ),
7075
+ filteredPinnedProperties.length === 0 && (search ? nonPinnedSearchResults.length === 0 : filteredGroups.length === 0) && /* @__PURE__ */ jsx50("span", { className: "p-base text-sm text-muted-foreground", children: "No results" })
7076
+ ] })
6996
7077
  ] })
6997
7078
  ) : (
6998
7079
  /* ── Level 2: Properties ─────────────────────────────────── */
6999
- /* @__PURE__ */ jsxs44("div", { className: "flex flex-col gap-xs", children: [
7080
+ /* @__PURE__ */ jsxs44("div", { className: "flex flex-col gap-xs flex-1 min-h-0", children: [
7000
7081
  /* @__PURE__ */ jsxs44(
7001
7082
  "button",
7002
7083
  {
@@ -7005,27 +7086,27 @@ var PropertySelector = ({
7005
7086
  setActiveGroup(null);
7006
7087
  setSearch("");
7007
7088
  },
7008
- className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-[var(--color-dropdown-item-hover)]",
7089
+ className: "shrink-0 flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
7009
7090
  children: [
7010
7091
  /* @__PURE__ */ jsx50(
7011
7092
  Icon28,
7012
7093
  {
7013
7094
  icon: faChevronLeftOutline3,
7014
7095
  size: "sm",
7015
- className: "shrink-0 text-[var(--color-dropdown-item-icon)]"
7096
+ className: "shrink-0 text-dropdown-item-icon"
7016
7097
  }
7017
7098
  ),
7018
- /* @__PURE__ */ jsx50("span", { className: "flex-1 text-xs font-medium leading-xs text-[var(--color-muted-foreground)] text-left truncate", children: activeGroupInfo?.groupLabel })
7099
+ /* @__PURE__ */ jsx50("span", { className: "flex-1 text-xs font-medium leading-xs text-muted-foreground text-left truncate", children: activeGroupInfo?.groupLabel })
7019
7100
  ]
7020
7101
  }
7021
7102
  ),
7022
- /* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-base px-md py-base border border-[var(--color-input)] rounded-md", children: [
7103
+ /* @__PURE__ */ jsxs44("div", { className: "shrink-0 flex items-center gap-base px-md py-base border border-input rounded-md", children: [
7023
7104
  /* @__PURE__ */ jsx50(
7024
7105
  Icon28,
7025
7106
  {
7026
7107
  icon: faMagnifyingGlassOutline,
7027
7108
  size: "sm",
7028
- className: "shrink-0 text-[var(--color-muted-foreground)]"
7109
+ className: "shrink-0 text-muted-foreground"
7029
7110
  }
7030
7111
  ),
7031
7112
  /* @__PURE__ */ jsx50(
@@ -7036,11 +7117,11 @@ var PropertySelector = ({
7036
7117
  onChange: (e) => setSearch(e.target.value),
7037
7118
  placeholder: "Search...",
7038
7119
  autoFocus: true,
7039
- className: "flex-1 text-sm font-regular leading-sm text-[var(--color-foreground)] bg-transparent outline-none placeholder:text-[var(--color-muted-foreground)]"
7120
+ className: "flex-1 text-sm font-regular leading-sm text-foreground bg-transparent outline-none placeholder:text-muted-foreground"
7040
7121
  }
7041
7122
  )
7042
7123
  ] }),
7043
- /* @__PURE__ */ jsxs44("div", { className: "flex flex-col max-h-[300px] overflow-y-auto", children: [
7124
+ /* @__PURE__ */ jsxs44("div", { className: "flex flex-col flex-1 min-h-0 overflow-y-auto", children: [
7044
7125
  filteredProperties.map((prop) => /* @__PURE__ */ jsxs44(
7045
7126
  "button",
7046
7127
  {
@@ -7049,22 +7130,22 @@ var PropertySelector = ({
7049
7130
  onSelect(prop);
7050
7131
  onOpenChange?.(false);
7051
7132
  },
7052
- className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-[var(--color-dropdown-item-hover)]",
7133
+ className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
7053
7134
  children: [
7054
7135
  /* @__PURE__ */ jsx50(
7055
7136
  Icon28,
7056
7137
  {
7057
7138
  icon: prop.icon,
7058
7139
  size: "sm",
7059
- className: "shrink-0 text-[var(--color-dropdown-item-icon)]"
7140
+ className: "shrink-0 text-dropdown-item-icon"
7060
7141
  }
7061
7142
  ),
7062
- /* @__PURE__ */ jsx50("span", { className: "flex-1 text-sm font-regular leading-sm text-[var(--color-dropdown-item-text)] text-left truncate", children: prop.label })
7143
+ /* @__PURE__ */ jsx50("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: prop.label })
7063
7144
  ]
7064
7145
  },
7065
7146
  prop.id
7066
7147
  )),
7067
- filteredProperties.length === 0 && /* @__PURE__ */ jsx50("span", { className: "p-base text-sm text-[var(--color-muted-foreground)]", children: "No results" })
7148
+ filteredProperties.length === 0 && /* @__PURE__ */ jsx50("span", { className: "p-base text-sm text-muted-foreground", children: "No results" })
7068
7149
  ] })
7069
7150
  ] })
7070
7151
  ),
@@ -7102,7 +7183,7 @@ var KebabMenu = ({
7102
7183
  align: "end",
7103
7184
  className: cn(
7104
7185
  "z-50 flex flex-col p-xs overflow-clip",
7105
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
7186
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
7106
7187
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
7107
7188
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
7108
7189
  "data-[side=bottom]:slide-in-from-top-2",
@@ -7117,21 +7198,21 @@ var KebabMenu = ({
7117
7198
  onConvertToAdvanced();
7118
7199
  onOpenChange?.(false);
7119
7200
  },
7120
- className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-[var(--color-dropdown-item-hover)]",
7201
+ className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
7121
7202
  children: [
7122
7203
  /* @__PURE__ */ jsx51(
7123
7204
  Icon29,
7124
7205
  {
7125
7206
  icon: faArrowRightOutline2,
7126
7207
  size: "sm",
7127
- className: "shrink-0 text-[var(--color-dropdown-item-icon)]"
7208
+ className: "shrink-0 text-dropdown-item-icon"
7128
7209
  }
7129
7210
  ),
7130
- /* @__PURE__ */ jsx51("span", { className: "text-sm font-regular leading-sm text-[var(--color-dropdown-item-text)]", children: hasAdvancedFilters ? "Add to advanced filters" : "Convert to advanced" })
7211
+ /* @__PURE__ */ jsx51("span", { className: "text-sm font-regular leading-sm text-dropdown-item-text", children: hasAdvancedFilters ? "Add to advanced filters" : "Convert to advanced" })
7131
7212
  ]
7132
7213
  }
7133
7214
  ),
7134
- onConvertToAdvanced && onDelete && /* @__PURE__ */ jsx51("div", { className: "h-px mx-base my-xs bg-[var(--color-border)]" }),
7215
+ onConvertToAdvanced && onDelete && /* @__PURE__ */ jsx51("div", { className: "h-px mx-base my-xs bg-border" }),
7135
7216
  onDelete && /* @__PURE__ */ jsxs45(
7136
7217
  "button",
7137
7218
  {
@@ -7140,17 +7221,17 @@ var KebabMenu = ({
7140
7221
  onDelete();
7141
7222
  onOpenChange?.(false);
7142
7223
  },
7143
- className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-[var(--color-dropdown-item-hover)]",
7224
+ className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
7144
7225
  children: [
7145
7226
  /* @__PURE__ */ jsx51(
7146
7227
  Icon29,
7147
7228
  {
7148
7229
  icon: faTrashOutline,
7149
7230
  size: "sm",
7150
- className: "shrink-0 text-[var(--color-destructive)]"
7231
+ className: "shrink-0 text-destructive"
7151
7232
  }
7152
7233
  ),
7153
- /* @__PURE__ */ jsx51("span", { className: "text-sm font-regular leading-sm text-[var(--color-destructive)]", children: "Delete filter" })
7234
+ /* @__PURE__ */ jsx51("span", { className: "text-sm font-regular leading-sm text-destructive", children: "Delete filter" })
7154
7235
  ]
7155
7236
  }
7156
7237
  )
@@ -7218,29 +7299,29 @@ var FilterEditor = ({
7218
7299
  align: "start",
7219
7300
  className: cn(
7220
7301
  "z-50 flex flex-col overflow-clip",
7221
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
7302
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
7222
7303
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
7223
7304
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
7224
7305
  "data-[side=bottom]:slide-in-from-top-2",
7225
7306
  "min-w-[240px]"
7226
7307
  ),
7227
7308
  children: [
7228
- /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-base px-base pt-base pb-xs border-b border-[var(--color-border)]", children: [
7309
+ /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-base px-base pt-base pb-xs border-b border-border", children: [
7229
7310
  /* @__PURE__ */ jsx52(
7230
7311
  Icon30,
7231
7312
  {
7232
7313
  icon: propertyDef.icon,
7233
7314
  size: "sm",
7234
- className: "shrink-0 text-[var(--color-dropdown-item-icon)]"
7315
+ className: "shrink-0 text-dropdown-item-icon"
7235
7316
  }
7236
7317
  ),
7237
- /* @__PURE__ */ jsx52("span", { className: "text-sm font-medium leading-sm text-[var(--color-foreground)]", children: propertyDef.label }),
7318
+ /* @__PURE__ */ jsx52("span", { className: "text-sm font-medium leading-sm text-foreground", children: propertyDef.label }),
7238
7319
  localOperator && view === "value" && /* @__PURE__ */ jsxs46(
7239
7320
  "button",
7240
7321
  {
7241
7322
  type: "button",
7242
7323
  onClick: () => setView("operator"),
7243
- className: "ml-auto text-xs font-regular text-[var(--color-muted-foreground)] hover:text-[var(--color-foreground)] cursor-pointer transition-colors",
7324
+ className: "ml-auto text-xs font-regular text-muted-foreground hover:text-foreground cursor-pointer transition-colors",
7244
7325
  children: [
7245
7326
  localOperator,
7246
7327
  " \u25BE"
@@ -7294,7 +7375,7 @@ var SegmentPopover = ({
7294
7375
  align,
7295
7376
  className: cn(
7296
7377
  "z-50 flex flex-col overflow-clip",
7297
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
7378
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
7298
7379
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
7299
7380
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
7300
7381
  "data-[side=bottom]:slide-in-from-top-2"
@@ -7501,10 +7582,10 @@ import { jsx as jsx54, jsxs as jsxs48 } from "react/jsx-runtime";
7501
7582
  var btnBase = [
7502
7583
  "flex items-center justify-center",
7503
7584
  "min-h-[32px] max-h-[32px]",
7504
- "bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] from-[10%] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)]",
7505
- "border border-[var(--color-btn-outlined-neutral-border-default)] shadow-sm",
7585
+ "bg-gradient-to-t from-btn-outlined-neutral-bg-default from-[10%] to-btn-outlined-neutral-bg-gradient-to-default",
7586
+ "border border-btn-outlined-neutral-border-default shadow-sm",
7506
7587
  "cursor-pointer transition-colors",
7507
- "hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]"
7588
+ "hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover"
7508
7589
  ];
7509
7590
  var AdvancedChip = React47.forwardRef(
7510
7591
  ({ className, count, onClear, onClick, ...props }, ref) => /* @__PURE__ */ jsxs48("div", { className: cn("inline-flex items-center", className), children: [
@@ -7526,10 +7607,10 @@ var AdvancedChip = React47.forwardRef(
7526
7607
  {
7527
7608
  icon: faFilterOutline4,
7528
7609
  size: "sm",
7529
- className: "shrink-0 text-[var(--color-foreground)]"
7610
+ className: "shrink-0 text-foreground"
7530
7611
  }
7531
7612
  ),
7532
- /* @__PURE__ */ jsx54("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-[var(--color-foreground)]", children: "Advanced filters" }),
7613
+ /* @__PURE__ */ jsx54("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-foreground", children: "Advanced filters" }),
7533
7614
  count > 0 && /* @__PURE__ */ jsx54("span", { className: "flex items-center p-2xs rounded-xs bg-filter-chip-badge-bg", children: /* @__PURE__ */ jsx54("span", { className: "text-[10px] font-medium leading-2xs text-filter-chip-badge-text", children: count }) })
7534
7615
  ]
7535
7616
  }
@@ -7548,7 +7629,7 @@ var AdvancedChip = React47.forwardRef(
7548
7629
  "rounded-r-md -ml-px"
7549
7630
  ),
7550
7631
  "aria-label": "Clear all advanced filters",
7551
- children: /* @__PURE__ */ jsx54(Icon31, { icon: faXmarkOutline3, size: "sm", className: "text-[var(--color-foreground)]" })
7632
+ children: /* @__PURE__ */ jsx54(Icon31, { icon: faXmarkOutline3, size: "sm", className: "text-foreground" })
7552
7633
  }
7553
7634
  )
7554
7635
  ] })
@@ -7563,7 +7644,7 @@ import { Icon as Icon35, faPlusOutline as faPlusOutline3, faChevronDownOutline a
7563
7644
  // src/components/ui/filter/advanced-row.tsx
7564
7645
  import * as React49 from "react";
7565
7646
  import * as PopoverPrimitive11 from "@radix-ui/react-popover";
7566
- import * as TooltipPrimitive3 from "@radix-ui/react-tooltip";
7647
+ import * as TooltipPrimitive4 from "@radix-ui/react-tooltip";
7567
7648
  import { Icon as Icon33, faChevronDownOutline as faChevronDownOutline2 } from "@l3mpire/icons";
7568
7649
 
7569
7650
  // src/components/ui/filter/filter-node-actions.tsx
@@ -7608,14 +7689,14 @@ var FilterNodeActions = ({
7608
7689
  "button",
7609
7690
  {
7610
7691
  type: "button",
7611
- className: "shrink-0 flex items-center justify-center p-sm rounded-md cursor-pointer transition-colors hover:bg-[var(--color-accent)]",
7692
+ className: "shrink-0 flex items-center justify-center p-sm rounded-md cursor-pointer transition-colors hover:bg-accent",
7612
7693
  "aria-label": "More actions",
7613
7694
  children: /* @__PURE__ */ jsx55(
7614
7695
  Icon32,
7615
7696
  {
7616
7697
  icon: faEllipsisOutline2,
7617
7698
  size: "sm",
7618
- className: "text-[var(--color-foreground)]"
7699
+ className: "text-foreground"
7619
7700
  }
7620
7701
  )
7621
7702
  }
@@ -7627,7 +7708,7 @@ var FilterNodeActions = ({
7627
7708
  align: "end",
7628
7709
  className: cn(
7629
7710
  "z-50 flex flex-col p-xs overflow-clip",
7630
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
7711
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
7631
7712
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
7632
7713
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
7633
7714
  "min-w-[180px]"
@@ -7642,8 +7723,8 @@ var FilterNodeActions = ({
7642
7723
  },
7643
7724
  className: cn(
7644
7725
  "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
7645
- "hover:bg-[var(--color-dropdown-item-hover)]",
7646
- item.destructive && "text-[var(--color-destructive,#ef4444)]"
7726
+ "hover:bg-dropdown-item-hover",
7727
+ item.destructive && "text-destructive"
7647
7728
  ),
7648
7729
  children: [
7649
7730
  /* @__PURE__ */ jsx55(
@@ -7653,7 +7734,7 @@ var FilterNodeActions = ({
7653
7734
  size: "sm",
7654
7735
  className: cn(
7655
7736
  "shrink-0",
7656
- item.destructive ? "text-[var(--color-destructive,#ef4444)]" : "text-[var(--color-dropdown-item-icon)]"
7737
+ item.destructive ? "text-destructive" : "text-dropdown-item-icon"
7657
7738
  )
7658
7739
  }
7659
7740
  ),
@@ -7662,7 +7743,7 @@ var FilterNodeActions = ({
7662
7743
  {
7663
7744
  className: cn(
7664
7745
  "text-sm font-regular leading-sm",
7665
- item.destructive ? "text-[var(--color-destructive,#ef4444)]" : "text-[var(--color-dropdown-item-text)]"
7746
+ item.destructive ? "text-destructive" : "text-dropdown-item-text"
7666
7747
  ),
7667
7748
  children: item.label
7668
7749
  }
@@ -7682,10 +7763,10 @@ import { jsx as jsx56, jsxs as jsxs50 } from "react/jsx-runtime";
7682
7763
  var selectBtnStyle = [
7683
7764
  "flex items-center gap-base",
7684
7765
  "px-base py-sm",
7685
- "bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)]",
7686
- "border border-[var(--color-btn-outlined-neutral-border-default)] rounded-md shadow-sm",
7766
+ "bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
7767
+ "border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
7687
7768
  "cursor-pointer transition-colors",
7688
- "hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]"
7769
+ "hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover"
7689
7770
  ];
7690
7771
  var AdvancedRow = ({
7691
7772
  connector,
@@ -7702,6 +7783,19 @@ var AdvancedRow = ({
7702
7783
  const [operatorOpen, setOperatorOpen] = React49.useState(false);
7703
7784
  const [propertyOpen, setPropertyOpen] = React49.useState(false);
7704
7785
  const [valueOpen, setValueOpen] = React49.useState(false);
7786
+ const { pinnedProperties, unpinnedProperties } = React49.useMemo(() => {
7787
+ const pinnedGroups = /* @__PURE__ */ new Set();
7788
+ for (const p of properties) {
7789
+ if (p.groupPinned) pinnedGroups.add(p.group);
7790
+ }
7791
+ const pinned = [];
7792
+ const unpinned = [];
7793
+ for (const p of properties) {
7794
+ if (pinnedGroups.has(p.group)) pinned.push(p);
7795
+ else unpinned.push(p);
7796
+ }
7797
+ return { pinnedProperties: pinned, unpinnedProperties: unpinned };
7798
+ }, [properties]);
7705
7799
  const handleOperatorSelect = (op) => {
7706
7800
  if (isNoValueOperator(op)) {
7707
7801
  onUpdate({ ...condition, operator: op, value: null });
@@ -7718,65 +7812,88 @@ var AdvancedRow = ({
7718
7812
  const badgeCount = getBadgeCount(condition.value);
7719
7813
  const hasValue = displayValue != null;
7720
7814
  return /* @__PURE__ */ jsxs50("div", { className: "flex items-center gap-base w-full min-w-0", children: [
7721
- connector === "Where" ? /* @__PURE__ */ jsx56("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ jsx56("span", { className: "text-xs font-medium leading-xs text-[var(--color-muted-foreground)]", children: "Where" }) }) : /* @__PURE__ */ jsx56("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ jsx56(TooltipPrimitive3.Provider, { delayDuration: 200, children: /* @__PURE__ */ jsxs50(TooltipPrimitive3.Root, { children: [
7722
- /* @__PURE__ */ jsx56(TooltipPrimitive3.Trigger, { asChild: true, children: /* @__PURE__ */ jsx56("span", { className: "text-xs font-medium leading-xs text-[var(--color-muted-foreground)] cursor-default", children: connector }) }),
7723
- /* @__PURE__ */ jsx56(TooltipPrimitive3.Portal, { children: /* @__PURE__ */ jsxs50(
7724
- TooltipPrimitive3.Content,
7815
+ connector === "Where" ? /* @__PURE__ */ jsx56("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ jsx56("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: "Where" }) }) : /* @__PURE__ */ jsx56("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ jsx56(TooltipPrimitive4.Provider, { delayDuration: 200, children: /* @__PURE__ */ jsxs50(TooltipPrimitive4.Root, { children: [
7816
+ /* @__PURE__ */ jsx56(TooltipPrimitive4.Trigger, { asChild: true, children: /* @__PURE__ */ jsx56("span", { className: "text-xs font-medium leading-xs text-muted-foreground cursor-default", children: connector }) }),
7817
+ /* @__PURE__ */ jsx56(TooltipPrimitive4.Portal, { children: /* @__PURE__ */ jsxs50(
7818
+ TooltipPrimitive4.Content,
7725
7819
  {
7726
7820
  sideOffset: 4,
7727
7821
  className: "z-50 px-base py-sm rounded-md shadow-lg bg-tooltip-default-bg text-tooltip-default-text text-sm font-regular leading-sm data-[state=delayed-open]:animate-[tooltip-in_150ms_ease-out] data-[state=closed]:animate-[tooltip-out_100ms_ease-in]",
7728
7822
  children: [
7729
7823
  '"Or" operator coming soon',
7730
- /* @__PURE__ */ jsx56(TooltipPrimitive3.Arrow, { className: "fill-tooltip-default-bg" })
7824
+ /* @__PURE__ */ jsx56(TooltipPrimitive4.Arrow, { className: "fill-tooltip-default-bg" })
7731
7825
  ]
7732
7826
  }
7733
7827
  ) })
7734
7828
  ] }) }) }),
7735
7829
  /* @__PURE__ */ jsxs50(PopoverPrimitive11.Root, { open: propertyOpen, onOpenChange: setPropertyOpen, children: [
7736
7830
  /* @__PURE__ */ jsx56(PopoverPrimitive11.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs50("button", { type: "button", className: cn(selectBtnStyle, "min-w-0"), children: [
7737
- /* @__PURE__ */ jsx56(Icon33, { icon: propertyDef.icon, size: "sm", className: "shrink-0 text-[var(--color-muted-foreground)]" }),
7738
- /* @__PURE__ */ jsx56("span", { className: "text-sm font-regular leading-sm text-[var(--color-foreground)] whitespace-nowrap truncate", children: propertyDef.label }),
7739
- /* @__PURE__ */ jsx56(Icon33, { icon: faChevronDownOutline2, size: "xs", className: "shrink-0 text-[var(--color-foreground)]" })
7831
+ /* @__PURE__ */ jsx56(Icon33, { icon: propertyDef.icon, size: "sm", className: "shrink-0 text-muted-foreground" }),
7832
+ /* @__PURE__ */ jsx56("span", { className: "text-sm font-regular leading-sm text-foreground whitespace-nowrap truncate", children: propertyDef.label }),
7833
+ /* @__PURE__ */ jsx56(Icon33, { icon: faChevronDownOutline2, size: "xs", className: "shrink-0 text-foreground" })
7740
7834
  ] }) }),
7741
- /* @__PURE__ */ jsx56(PopoverPrimitive11.Portal, { children: /* @__PURE__ */ jsx56(
7835
+ /* @__PURE__ */ jsx56(PopoverPrimitive11.Portal, { children: /* @__PURE__ */ jsxs50(
7742
7836
  PopoverPrimitive11.Content,
7743
7837
  {
7744
7838
  sideOffset: 4,
7745
7839
  align: "start",
7746
7840
  className: cn(
7747
7841
  "z-50 flex flex-col p-xs overflow-clip max-h-[300px] overflow-y-auto",
7748
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
7842
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
7749
7843
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
7750
7844
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
7751
7845
  "min-w-[200px]"
7752
7846
  ),
7753
- children: properties.map((p) => /* @__PURE__ */ jsxs50(
7754
- "button",
7755
- {
7756
- type: "button",
7757
- onClick: () => {
7758
- onPropertyChange(p);
7759
- setPropertyOpen(false);
7847
+ children: [
7848
+ pinnedProperties.map((p) => /* @__PURE__ */ jsxs50(
7849
+ "button",
7850
+ {
7851
+ type: "button",
7852
+ onClick: () => {
7853
+ onPropertyChange(p);
7854
+ setPropertyOpen(false);
7855
+ },
7856
+ className: cn(
7857
+ "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
7858
+ "hover:bg-dropdown-item-hover",
7859
+ p.id === condition.propertyId && "bg-dropdown-item-hover"
7860
+ ),
7861
+ children: [
7862
+ /* @__PURE__ */ jsx56(Icon33, { icon: p.icon, size: "sm", className: "shrink-0 text-dropdown-item-icon" }),
7863
+ /* @__PURE__ */ jsx56("span", { className: "text-sm font-regular leading-sm text-dropdown-item-text truncate", children: p.label })
7864
+ ]
7760
7865
  },
7761
- className: cn(
7762
- "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
7763
- "hover:bg-[var(--color-dropdown-item-hover)]",
7764
- p.id === condition.propertyId && "bg-[var(--color-dropdown-item-hover)]"
7765
- ),
7766
- children: [
7767
- /* @__PURE__ */ jsx56(Icon33, { icon: p.icon, size: "sm", className: "shrink-0 text-[var(--color-dropdown-item-icon)]" }),
7768
- /* @__PURE__ */ jsx56("span", { className: "text-sm font-regular leading-sm text-[var(--color-dropdown-item-text)] truncate", children: p.label })
7769
- ]
7770
- },
7771
- p.id
7772
- ))
7866
+ p.id
7867
+ )),
7868
+ unpinnedProperties.map((p) => /* @__PURE__ */ jsxs50(
7869
+ "button",
7870
+ {
7871
+ type: "button",
7872
+ onClick: () => {
7873
+ onPropertyChange(p);
7874
+ setPropertyOpen(false);
7875
+ },
7876
+ className: cn(
7877
+ "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
7878
+ "hover:bg-dropdown-item-hover",
7879
+ p.id === condition.propertyId && "bg-dropdown-item-hover"
7880
+ ),
7881
+ children: [
7882
+ /* @__PURE__ */ jsx56(Icon33, { icon: p.icon, size: "sm", className: "shrink-0 text-dropdown-item-icon" }),
7883
+ /* @__PURE__ */ jsx56("span", { className: "text-sm font-regular leading-sm text-dropdown-item-text truncate", children: p.label }),
7884
+ /* @__PURE__ */ jsx56("span", { className: "ml-auto text-xs font-regular leading-xs text-muted-foreground", children: p.groupLabel })
7885
+ ]
7886
+ },
7887
+ p.id
7888
+ ))
7889
+ ]
7773
7890
  }
7774
7891
  ) })
7775
7892
  ] }),
7776
7893
  /* @__PURE__ */ jsxs50(PopoverPrimitive11.Root, { open: operatorOpen, onOpenChange: setOperatorOpen, children: [
7777
7894
  /* @__PURE__ */ jsx56(PopoverPrimitive11.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs50("button", { type: "button", className: cn(selectBtnStyle, "min-w-0"), children: [
7778
- /* @__PURE__ */ jsx56("span", { className: "text-sm font-regular leading-sm text-[var(--color-foreground)] whitespace-nowrap truncate text-left", children: condition.operator ?? "Select" }),
7779
- /* @__PURE__ */ jsx56(Icon33, { icon: faChevronDownOutline2, size: "xs", className: "shrink-0 text-[var(--color-foreground)]" })
7895
+ /* @__PURE__ */ jsx56("span", { className: "text-sm font-regular leading-sm text-foreground whitespace-nowrap truncate text-left", children: condition.operator ?? "Select" }),
7896
+ /* @__PURE__ */ jsx56(Icon33, { icon: faChevronDownOutline2, size: "xs", className: "shrink-0 text-foreground" })
7780
7897
  ] }) }),
7781
7898
  /* @__PURE__ */ jsx56(PopoverPrimitive11.Portal, { children: /* @__PURE__ */ jsx56(
7782
7899
  PopoverPrimitive11.Content,
@@ -7785,7 +7902,7 @@ var AdvancedRow = ({
7785
7902
  align: "start",
7786
7903
  className: cn(
7787
7904
  "z-50 flex flex-col p-xs overflow-clip",
7788
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
7905
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
7789
7906
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
7790
7907
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
7791
7908
  "min-w-[160px]"
@@ -7816,10 +7933,10 @@ var AdvancedRow = ({
7816
7933
  placeholder: "Enter value...",
7817
7934
  className: cn(
7818
7935
  "flex-1 min-w-[80px] px-base py-sm",
7819
- "bg-[var(--color-background)] border border-[var(--color-input)] rounded-base",
7820
- "text-sm font-regular leading-sm text-[var(--color-foreground)]",
7821
- "placeholder:text-[var(--color-muted-foreground)]",
7822
- "focus:outline-none focus:ring-2 focus:ring-[var(--color-ring)] focus:ring-offset-0"
7936
+ "bg-background border border-input rounded-base",
7937
+ "text-sm font-regular leading-sm text-foreground",
7938
+ "placeholder:text-muted-foreground",
7939
+ "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-0"
7823
7940
  )
7824
7941
  }
7825
7942
  );
@@ -7842,7 +7959,7 @@ var AdvancedRow = ({
7842
7959
  {
7843
7960
  className: cn(
7844
7961
  "text-sm font-regular leading-sm whitespace-nowrap truncate text-left",
7845
- hasValue ? "text-[var(--color-foreground)]" : "text-[var(--color-muted-foreground)]"
7962
+ hasValue ? "text-foreground" : "text-muted-foreground"
7846
7963
  ),
7847
7964
  title: hasValue ? displayValue : void 0,
7848
7965
  children: hasValue ? displayValue : "Select a value"
@@ -7853,7 +7970,7 @@ var AdvancedRow = ({
7853
7970
  {
7854
7971
  icon: faChevronDownOutline2,
7855
7972
  size: "xs",
7856
- className: "shrink-0 text-[var(--color-foreground)]"
7973
+ className: "shrink-0 text-foreground"
7857
7974
  }
7858
7975
  )
7859
7976
  ]
@@ -7866,7 +7983,7 @@ var AdvancedRow = ({
7866
7983
  align: "start",
7867
7984
  className: cn(
7868
7985
  "z-50 flex flex-col overflow-clip",
7869
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
7986
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
7870
7987
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
7871
7988
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
7872
7989
  ),
@@ -7956,19 +8073,19 @@ function ValueTagRow({ tags }) {
7956
8073
  ),
7957
8074
  /* @__PURE__ */ jsxs50("div", { ref: containerRef, className: "flex flex-1 items-center gap-xs overflow-hidden", children: [
7958
8075
  tags.slice(0, visibleCount).map((t) => /* @__PURE__ */ jsx56("span", { className: tagChip, children: t }, t)),
7959
- overflowCount > 0 && /* @__PURE__ */ jsx56(TooltipPrimitive3.Provider, { delayDuration: 200, children: /* @__PURE__ */ jsxs50(TooltipPrimitive3.Root, { children: [
7960
- /* @__PURE__ */ jsx56(TooltipPrimitive3.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs50("span", { className: cn(tagChip, "cursor-default bg-filter-chip-badge-bg text-filter-chip-badge-text"), children: [
8076
+ overflowCount > 0 && /* @__PURE__ */ jsx56(TooltipPrimitive4.Provider, { delayDuration: 200, children: /* @__PURE__ */ jsxs50(TooltipPrimitive4.Root, { children: [
8077
+ /* @__PURE__ */ jsx56(TooltipPrimitive4.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs50("span", { className: cn(tagChip, "cursor-default bg-filter-chip-badge-bg text-filter-chip-badge-text"), children: [
7961
8078
  "+",
7962
8079
  overflowCount
7963
8080
  ] }) }),
7964
- /* @__PURE__ */ jsx56(TooltipPrimitive3.Portal, { children: /* @__PURE__ */ jsxs50(
7965
- TooltipPrimitive3.Content,
8081
+ /* @__PURE__ */ jsx56(TooltipPrimitive4.Portal, { children: /* @__PURE__ */ jsxs50(
8082
+ TooltipPrimitive4.Content,
7966
8083
  {
7967
8084
  sideOffset: 4,
7968
8085
  className: "z-50 px-base py-sm rounded-md shadow-lg bg-tooltip-default-bg text-tooltip-default-text text-xs font-regular leading-xs flex flex-col gap-xs data-[state=delayed-open]:animate-[tooltip-in_150ms_ease-out] data-[state=closed]:animate-[tooltip-out_100ms_ease-in]",
7969
8086
  children: [
7970
8087
  overflowTags.map((t) => /* @__PURE__ */ jsx56("span", { children: t }, t)),
7971
- /* @__PURE__ */ jsx56(TooltipPrimitive3.Arrow, { className: "fill-tooltip-default-bg" })
8088
+ /* @__PURE__ */ jsx56(TooltipPrimitive4.Arrow, { className: "fill-tooltip-default-bg" })
7972
8089
  ]
7973
8090
  }
7974
8091
  ) })
@@ -7979,7 +8096,7 @@ function ValueTagRow({ tags }) {
7979
8096
 
7980
8097
  // src/components/ui/filter/advanced-group.tsx
7981
8098
  import * as React50 from "react";
7982
- import * as TooltipPrimitive4 from "@radix-ui/react-tooltip";
8099
+ import * as TooltipPrimitive5 from "@radix-ui/react-tooltip";
7983
8100
  import { Icon as Icon34, faPlusOutline as faPlusOutline2 } from "@l3mpire/icons";
7984
8101
  import { jsx as jsx57, jsxs as jsxs51 } from "react/jsx-runtime";
7985
8102
  var AdvancedGroup = ({
@@ -7994,21 +8111,21 @@ var AdvancedGroup = ({
7994
8111
  }) => {
7995
8112
  const [addOpen, setAddOpen] = React50.useState(false);
7996
8113
  return /* @__PURE__ */ jsxs51("div", { className: "flex items-start gap-base w-full min-w-0", children: [
7997
- connector === "Where" ? /* @__PURE__ */ jsx57("div", { className: "shrink-0 w-[64px] flex items-center justify-end pt-base", children: /* @__PURE__ */ jsx57("span", { className: "text-xs font-medium leading-xs text-[var(--color-muted-foreground)]", children: "Where" }) }) : /* @__PURE__ */ jsx57("div", { className: "shrink-0 w-[64px] flex items-center justify-end pt-base", children: /* @__PURE__ */ jsx57(TooltipPrimitive4.Provider, { delayDuration: 200, children: /* @__PURE__ */ jsxs51(TooltipPrimitive4.Root, { children: [
7998
- /* @__PURE__ */ jsx57(TooltipPrimitive4.Trigger, { asChild: true, children: /* @__PURE__ */ jsx57("span", { className: "text-xs font-medium leading-xs text-[var(--color-muted-foreground)] cursor-default", children: connector }) }),
7999
- /* @__PURE__ */ jsx57(TooltipPrimitive4.Portal, { children: /* @__PURE__ */ jsxs51(
8000
- TooltipPrimitive4.Content,
8114
+ connector === "Where" ? /* @__PURE__ */ jsx57("div", { className: "shrink-0 w-[64px] flex items-center justify-end pt-base", children: /* @__PURE__ */ jsx57("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: "Where" }) }) : /* @__PURE__ */ jsx57("div", { className: "shrink-0 w-[64px] flex items-center justify-end pt-base", children: /* @__PURE__ */ jsx57(TooltipPrimitive5.Provider, { delayDuration: 200, children: /* @__PURE__ */ jsxs51(TooltipPrimitive5.Root, { children: [
8115
+ /* @__PURE__ */ jsx57(TooltipPrimitive5.Trigger, { asChild: true, children: /* @__PURE__ */ jsx57("span", { className: "text-xs font-medium leading-xs text-muted-foreground cursor-default", children: connector }) }),
8116
+ /* @__PURE__ */ jsx57(TooltipPrimitive5.Portal, { children: /* @__PURE__ */ jsxs51(
8117
+ TooltipPrimitive5.Content,
8001
8118
  {
8002
8119
  sideOffset: 4,
8003
8120
  className: "z-50 px-base py-sm rounded-md shadow-lg bg-tooltip-default-bg text-tooltip-default-text text-sm font-regular leading-sm data-[state=delayed-open]:animate-[tooltip-in_150ms_ease-out] data-[state=closed]:animate-[tooltip-out_100ms_ease-in]",
8004
8121
  children: [
8005
8122
  '"Or" operator coming soon',
8006
- /* @__PURE__ */ jsx57(TooltipPrimitive4.Arrow, { className: "fill-tooltip-default-bg" })
8123
+ /* @__PURE__ */ jsx57(TooltipPrimitive5.Arrow, { className: "fill-tooltip-default-bg" })
8007
8124
  ]
8008
8125
  }
8009
8126
  ) })
8010
8127
  ] }) }) }),
8011
- /* @__PURE__ */ jsxs51("div", { className: "flex-1 min-w-0 flex flex-col gap-base p-base border border-[var(--color-border)] rounded-md bg-[var(--color-secondary,var(--color-accent))]", children: [
8128
+ /* @__PURE__ */ jsxs51("div", { className: "flex-1 min-w-0 flex flex-col gap-base p-base border border-border rounded-md bg-secondary", children: [
8012
8129
  children,
8013
8130
  onAddFilter && properties && /* @__PURE__ */ jsx57(
8014
8131
  PropertySelector,
@@ -8024,7 +8141,7 @@ var AdvancedGroup = ({
8024
8141
  "button",
8025
8142
  {
8026
8143
  type: "button",
8027
- className: "flex items-center gap-sm px-base py-sm text-sm font-medium leading-sm text-[var(--color-muted-foreground)] cursor-pointer transition-colors rounded-md hover:bg-[var(--color-accent)] hover:text-[var(--color-foreground)] w-fit",
8144
+ className: "flex items-center gap-sm px-base py-sm text-sm font-medium leading-sm text-muted-foreground cursor-pointer transition-colors rounded-md hover:bg-accent hover:text-foreground w-fit",
8028
8145
  children: [
8029
8146
  /* @__PURE__ */ jsx57(Icon34, { icon: faPlusOutline2, size: "sm" }),
8030
8147
  "Add filter"
@@ -8053,7 +8170,7 @@ var ghostBtn = [
8053
8170
  "flex items-center gap-sm px-base py-sm",
8054
8171
  "min-h-[32px]",
8055
8172
  "cursor-pointer transition-colors text-sm font-medium leading-sm",
8056
- "rounded-md hover:bg-[var(--color-accent)]"
8173
+ "rounded-md hover:bg-accent"
8057
8174
  ];
8058
8175
  var AdvancedPopover = ({
8059
8176
  filters,
@@ -8217,7 +8334,7 @@ var AdvancedPopover = ({
8217
8334
  onOpenAutoFocus: (e) => e.preventDefault(),
8218
8335
  className: cn(
8219
8336
  "z-50 flex flex-col",
8220
- "bg-[var(--color-background)] rounded-md shadow-lg",
8337
+ "bg-background rounded-md shadow-lg",
8221
8338
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
8222
8339
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
8223
8340
  "data-[side=bottom]:slide-in-from-top-2",
@@ -8233,7 +8350,7 @@ var AdvancedPopover = ({
8233
8350
  onOpenChange: setDraftPickerOpen
8234
8351
  }
8235
8352
  ) }),
8236
- /* @__PURE__ */ jsxs52("div", { className: "flex items-center justify-between p-base border-t border-[var(--color-border)]", children: [
8353
+ /* @__PURE__ */ jsxs52("div", { className: "flex items-center justify-between p-base border-t border-border", children: [
8237
8354
  /* @__PURE__ */ jsxs52("div", { className: "flex items-center gap-sm", children: [
8238
8355
  /* @__PURE__ */ jsx58(
8239
8356
  PropertySelector,
@@ -8242,8 +8359,8 @@ var AdvancedPopover = ({
8242
8359
  onSelect: handleAddFilter,
8243
8360
  open: addSelectorOpen,
8244
8361
  onOpenChange: setAddSelectorOpen,
8245
- children: /* @__PURE__ */ jsxs52("button", { type: "button", className: cn(ghostBtn, "text-[var(--color-foreground)]"), children: [
8246
- /* @__PURE__ */ jsx58(Icon35, { icon: faPlusOutline3, size: "sm", className: "text-[var(--color-foreground)]" }),
8362
+ children: /* @__PURE__ */ jsxs52("button", { type: "button", className: cn(ghostBtn, "text-foreground"), children: [
8363
+ /* @__PURE__ */ jsx58(Icon35, { icon: faPlusOutline3, size: "sm", className: "text-foreground" }),
8247
8364
  "Add filter"
8248
8365
  ] })
8249
8366
  }
@@ -8253,9 +8370,9 @@ var AdvancedPopover = ({
8253
8370
  {
8254
8371
  type: "button",
8255
8372
  onClick: handleAddGroup,
8256
- className: cn(ghostBtn, "text-[var(--color-foreground)]"),
8373
+ className: cn(ghostBtn, "text-foreground"),
8257
8374
  children: [
8258
- /* @__PURE__ */ jsx58(Icon35, { icon: faPlusOutline3, size: "sm", className: "text-[var(--color-foreground)]" }),
8375
+ /* @__PURE__ */ jsx58(Icon35, { icon: faPlusOutline3, size: "sm", className: "text-foreground" }),
8259
8376
  "Add filters group"
8260
8377
  ]
8261
8378
  }
@@ -8266,9 +8383,9 @@ var AdvancedPopover = ({
8266
8383
  {
8267
8384
  type: "button",
8268
8385
  onClick: handleClearAll,
8269
- className: cn(ghostBtn, "text-[var(--color-destructive,#ef4444)]"),
8386
+ className: cn(ghostBtn, "text-destructive"),
8270
8387
  children: [
8271
- /* @__PURE__ */ jsx58(Icon35, { icon: faXmarkOutline4, size: "sm", className: "text-[var(--color-destructive,#ef4444)]" }),
8388
+ /* @__PURE__ */ jsx58(Icon35, { icon: faXmarkOutline4, size: "sm", className: "text-destructive" }),
8272
8389
  "Clear filters"
8273
8390
  ]
8274
8391
  }
@@ -8294,7 +8411,7 @@ var DraftRow = ({
8294
8411
  onOpenChange?.(v);
8295
8412
  };
8296
8413
  return /* @__PURE__ */ jsxs52("div", { className: "flex items-center gap-base w-full min-w-0", children: [
8297
- /* @__PURE__ */ jsx58("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ jsx58("span", { className: "text-xs font-medium leading-xs text-[var(--color-muted-foreground)]", children: "Where" }) }),
8414
+ /* @__PURE__ */ jsx58("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ jsx58("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: "Where" }) }),
8298
8415
  /* @__PURE__ */ jsx58(
8299
8416
  PropertySelector,
8300
8417
  {
@@ -8311,19 +8428,19 @@ var DraftRow = ({
8311
8428
  type: "button",
8312
8429
  className: cn(
8313
8430
  "flex items-center gap-base px-base py-sm min-w-0",
8314
- "bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)]",
8315
- "border border-[var(--color-btn-outlined-neutral-border-default)] rounded-md shadow-sm",
8431
+ "bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
8432
+ "border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
8316
8433
  "cursor-pointer transition-colors",
8317
- "hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]"
8434
+ "hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover"
8318
8435
  ),
8319
8436
  children: [
8320
- /* @__PURE__ */ jsx58("span", { className: "text-sm font-regular leading-sm text-[var(--color-muted-foreground)] whitespace-nowrap", children: "Select property" }),
8437
+ /* @__PURE__ */ jsx58("span", { className: "text-sm font-regular leading-sm text-muted-foreground whitespace-nowrap", children: "Select property" }),
8321
8438
  /* @__PURE__ */ jsx58(
8322
8439
  Icon35,
8323
8440
  {
8324
8441
  icon: faChevronDownOutline3,
8325
8442
  size: "xs",
8326
- className: "shrink-0 text-[var(--color-foreground)]"
8443
+ className: "shrink-0 text-foreground"
8327
8444
  }
8328
8445
  )
8329
8446
  ]
@@ -8337,14 +8454,14 @@ var DraftRow = ({
8337
8454
  // src/components/ui/filter/summary-chip.tsx
8338
8455
  import * as React52 from "react";
8339
8456
  import * as PopoverPrimitive13 from "@radix-ui/react-popover";
8340
- import * as TooltipPrimitive5 from "@radix-ui/react-tooltip";
8457
+ import * as TooltipPrimitive6 from "@radix-ui/react-tooltip";
8341
8458
  import { Icon as Icon36, faFilterOutline as faFilterOutline6, faPlusOutline as faPlusOutline4, faChevronDownOutline as faChevronDownOutline4, faXmarkOutline as faXmarkOutline5 } from "@l3mpire/icons";
8342
8459
  import { jsx as jsx59, jsxs as jsxs53 } from "react/jsx-runtime";
8343
8460
  var ghostBtn2 = [
8344
8461
  "flex items-center gap-sm px-base py-sm",
8345
8462
  "min-h-[32px]",
8346
8463
  "cursor-pointer transition-colors text-sm font-medium leading-sm",
8347
- "rounded-md hover:bg-[var(--color-accent)]"
8464
+ "rounded-md hover:bg-accent"
8348
8465
  ];
8349
8466
  var SummaryChip = ({
8350
8467
  count,
@@ -8505,30 +8622,30 @@ var SummaryChip = ({
8505
8622
  className: cn(
8506
8623
  "inline-flex items-center gap-sm px-base py-sm",
8507
8624
  "min-h-[32px] max-h-[32px]",
8508
- "bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] from-[10%] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)]",
8509
- "border border-[var(--color-btn-outlined-neutral-border-default)] rounded-md shadow-sm",
8625
+ "bg-gradient-to-t from-btn-outlined-neutral-bg-default from-[10%] to-btn-outlined-neutral-bg-gradient-to-default",
8626
+ "border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
8510
8627
  "cursor-pointer transition-colors",
8511
- "hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]",
8628
+ "hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover",
8512
8629
  className
8513
8630
  ),
8514
8631
  children: [
8515
- /* @__PURE__ */ jsx59(Icon36, { icon: faFilterOutline6, size: "sm", className: "shrink-0 text-[var(--color-foreground)]" }),
8516
- /* @__PURE__ */ jsx59("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-[var(--color-foreground)]", children: "Filters" }),
8632
+ /* @__PURE__ */ jsx59(Icon36, { icon: faFilterOutline6, size: "sm", className: "shrink-0 text-foreground" }),
8633
+ /* @__PURE__ */ jsx59("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-foreground", children: "Filters" }),
8517
8634
  count > 0 && /* @__PURE__ */ jsx59("span", { className: "flex items-center p-2xs rounded-xs bg-filter-chip-badge-bg", children: /* @__PURE__ */ jsx59("span", { className: "text-[10px] font-medium leading-2xs text-filter-chip-badge-text", children: count }) })
8518
8635
  ]
8519
8636
  }
8520
8637
  );
8521
8638
  const hasTooltip = tooltipContent && !open;
8522
- return /* @__PURE__ */ jsx59(TooltipPrimitive5.Provider, { delayDuration: 300, children: /* @__PURE__ */ jsx59(TooltipPrimitive5.Root, { open: hasTooltip ? void 0 : false, children: /* @__PURE__ */ jsxs53(PopoverPrimitive13.Root, { open, onOpenChange: setOpen, children: [
8523
- /* @__PURE__ */ jsx59(TooltipPrimitive5.Trigger, { asChild: true, children: /* @__PURE__ */ jsx59(PopoverPrimitive13.Trigger, { asChild: true, children: trigger }) }),
8524
- hasTooltip && /* @__PURE__ */ jsx59(TooltipPrimitive5.Portal, { children: /* @__PURE__ */ jsxs53(
8525
- TooltipPrimitive5.Content,
8639
+ return /* @__PURE__ */ jsx59(TooltipPrimitive6.Provider, { delayDuration: 300, children: /* @__PURE__ */ jsx59(TooltipPrimitive6.Root, { open: hasTooltip ? void 0 : false, children: /* @__PURE__ */ jsxs53(PopoverPrimitive13.Root, { open, onOpenChange: setOpen, children: [
8640
+ /* @__PURE__ */ jsx59(TooltipPrimitive6.Trigger, { asChild: true, children: /* @__PURE__ */ jsx59(PopoverPrimitive13.Trigger, { asChild: true, children: trigger }) }),
8641
+ hasTooltip && /* @__PURE__ */ jsx59(TooltipPrimitive6.Portal, { children: /* @__PURE__ */ jsxs53(
8642
+ TooltipPrimitive6.Content,
8526
8643
  {
8527
8644
  sideOffset: 4,
8528
8645
  className: "z-50 px-base py-sm rounded-md shadow-lg bg-tooltip-default-bg text-tooltip-default-text text-sm font-regular leading-sm max-w-[320px] data-[state=delayed-open]:animate-[tooltip-in_150ms_ease-out] data-[state=closed]:animate-[tooltip-out_100ms_ease-in]",
8529
8646
  children: [
8530
8647
  tooltipContent,
8531
- /* @__PURE__ */ jsx59(TooltipPrimitive5.Arrow, { className: "fill-tooltip-default-bg" })
8648
+ /* @__PURE__ */ jsx59(TooltipPrimitive6.Arrow, { className: "fill-tooltip-default-bg" })
8532
8649
  ]
8533
8650
  }
8534
8651
  ) }),
@@ -8542,7 +8659,7 @@ var SummaryChip = ({
8542
8659
  onOpenAutoFocus: (e) => e.preventDefault(),
8543
8660
  className: cn(
8544
8661
  "z-50 flex flex-col overflow-clip",
8545
- "bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
8662
+ "bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
8546
8663
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
8547
8664
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
8548
8665
  "data-[side=bottom]:slide-in-from-top-2",
@@ -8558,7 +8675,7 @@ var SummaryChip = ({
8558
8675
  onOpenChange: setDraftPickerOpen
8559
8676
  }
8560
8677
  ) }),
8561
- /* @__PURE__ */ jsxs53("div", { className: "flex items-center justify-between p-base border-t border-[var(--color-border)]", children: [
8678
+ /* @__PURE__ */ jsxs53("div", { className: "flex items-center justify-between p-base border-t border-border", children: [
8562
8679
  /* @__PURE__ */ jsxs53("div", { className: "flex items-center gap-sm", children: [
8563
8680
  /* @__PURE__ */ jsx59(
8564
8681
  PropertySelector,
@@ -8567,14 +8684,14 @@ var SummaryChip = ({
8567
8684
  onSelect: handleAddFilter,
8568
8685
  open: addSelectorOpen,
8569
8686
  onOpenChange: setAddSelectorOpen,
8570
- children: /* @__PURE__ */ jsxs53("button", { type: "button", className: cn(ghostBtn2, "text-[var(--color-foreground)]"), children: [
8571
- /* @__PURE__ */ jsx59(Icon36, { icon: faPlusOutline4, size: "sm", className: "text-[var(--color-foreground)]" }),
8687
+ children: /* @__PURE__ */ jsxs53("button", { type: "button", className: cn(ghostBtn2, "text-foreground"), children: [
8688
+ /* @__PURE__ */ jsx59(Icon36, { icon: faPlusOutline4, size: "sm", className: "text-foreground" }),
8572
8689
  "Add filter"
8573
8690
  ] })
8574
8691
  }
8575
8692
  ),
8576
- /* @__PURE__ */ jsxs53("button", { type: "button", onClick: handleAddGroup, className: cn(ghostBtn2, "text-[var(--color-foreground)]"), children: [
8577
- /* @__PURE__ */ jsx59(Icon36, { icon: faPlusOutline4, size: "sm", className: "text-[var(--color-foreground)]" }),
8693
+ /* @__PURE__ */ jsxs53("button", { type: "button", onClick: handleAddGroup, className: cn(ghostBtn2, "text-foreground"), children: [
8694
+ /* @__PURE__ */ jsx59(Icon36, { icon: faPlusOutline4, size: "sm", className: "text-foreground" }),
8578
8695
  "Add filters group"
8579
8696
  ] })
8580
8697
  ] }),
@@ -8586,9 +8703,9 @@ var SummaryChip = ({
8586
8703
  onClearAll();
8587
8704
  setOpen(false);
8588
8705
  },
8589
- className: cn(ghostBtn2, "text-[var(--color-destructive,#ef4444)]"),
8706
+ className: cn(ghostBtn2, "text-destructive"),
8590
8707
  children: [
8591
- /* @__PURE__ */ jsx59(Icon36, { icon: faXmarkOutline5, size: "sm", className: "text-[var(--color-destructive,#ef4444)]" }),
8708
+ /* @__PURE__ */ jsx59(Icon36, { icon: faXmarkOutline5, size: "sm", className: "text-destructive" }),
8592
8709
  "Clear filters"
8593
8710
  ]
8594
8711
  }
@@ -8609,7 +8726,7 @@ var DraftRow2 = ({ properties, onSelect, open: openProp, onOpenChange }) => {
8609
8726
  onOpenChange?.(v);
8610
8727
  };
8611
8728
  return /* @__PURE__ */ jsxs53("div", { className: "flex items-center gap-base w-full min-w-0", children: [
8612
- /* @__PURE__ */ jsx59("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ jsx59("span", { className: "text-xs font-medium leading-xs text-[var(--color-muted-foreground)]", children: "Where" }) }),
8729
+ /* @__PURE__ */ jsx59("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ jsx59("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: "Where" }) }),
8613
8730
  /* @__PURE__ */ jsx59(PropertySelector, { properties, onSelect: (p) => {
8614
8731
  onSelect(p);
8615
8732
  setOpen(false);
@@ -8619,13 +8736,13 @@ var DraftRow2 = ({ properties, onSelect, open: openProp, onOpenChange }) => {
8619
8736
  type: "button",
8620
8737
  className: cn(
8621
8738
  "flex items-center gap-base px-base py-sm min-w-0",
8622
- "bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)]",
8623
- "border border-[var(--color-btn-outlined-neutral-border-default)] rounded-md shadow-sm cursor-pointer transition-colors",
8624
- "hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]"
8739
+ "bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
8740
+ "border border-btn-outlined-neutral-border-default rounded-md shadow-sm cursor-pointer transition-colors",
8741
+ "hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover"
8625
8742
  ),
8626
8743
  children: [
8627
- /* @__PURE__ */ jsx59("span", { className: "text-sm font-regular leading-sm text-[var(--color-muted-foreground)] whitespace-nowrap", children: "Select property" }),
8628
- /* @__PURE__ */ jsx59(Icon36, { icon: faChevronDownOutline4, size: "xs", className: "shrink-0 text-[var(--color-foreground)]" })
8744
+ /* @__PURE__ */ jsx59("span", { className: "text-sm font-regular leading-sm text-muted-foreground whitespace-nowrap", children: "Select property" }),
8745
+ /* @__PURE__ */ jsx59(Icon36, { icon: faChevronDownOutline4, size: "xs", className: "shrink-0 text-foreground" })
8629
8746
  ]
8630
8747
  }
8631
8748
  ) })
@@ -8652,7 +8769,7 @@ function useFilterBarMode(ref, override, breakpoint = DEFAULT_BREAKPOINT) {
8652
8769
  }
8653
8770
 
8654
8771
  // src/components/ui/filter/filter-system.tsx
8655
- import { Fragment as Fragment5, jsx as jsx60, jsxs as jsxs54 } from "react/jsx-runtime";
8772
+ import { Fragment as Fragment4, jsx as jsx60, jsxs as jsxs54 } from "react/jsx-runtime";
8656
8773
  var FilterSystem = ({
8657
8774
  properties,
8658
8775
  filterState,
@@ -8771,7 +8888,7 @@ var FilterSystem = ({
8771
8888
  iconOnly: isMinimal
8772
8889
  }
8773
8890
  ),
8774
- isMinimal ? /* @__PURE__ */ jsx60(Fragment5, { children: /* @__PURE__ */ jsx60(
8891
+ isMinimal ? /* @__PURE__ */ jsx60(Fragment4, { children: /* @__PURE__ */ jsx60(
8775
8892
  SummaryChip,
8776
8893
  {
8777
8894
  count: totalCount,
@@ -8799,7 +8916,7 @@ var FilterSystem = ({
8799
8916
  }
8800
8917
  ) }) : (
8801
8918
  /* ── DEFAULT MODE ────────────────────────────────────── */
8802
- /* @__PURE__ */ jsxs54(Fragment5, { children: [
8919
+ /* @__PURE__ */ jsxs54(Fragment4, { children: [
8803
8920
  showAdvancedChip && /* @__PURE__ */ jsx60(
8804
8921
  AdvancedPopover,
8805
8922
  {
@@ -8852,8 +8969,8 @@ var FilterSystem = ({
8852
8969
  "button",
8853
8970
  {
8854
8971
  type: "button",
8855
- className: "shrink-0 inline-flex items-center justify-center size-8 rounded-md border border-[var(--color-btn-outlined-neutral-border-default)] bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] from-[10%] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)] shadow-sm cursor-pointer transition-colors hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]",
8856
- children: /* @__PURE__ */ jsx60(Icon37, { icon: faPlusOutline5, size: "sm", className: "text-[var(--color-foreground)]" })
8972
+ className: "shrink-0 inline-flex items-center justify-center size-8 rounded-md border border-btn-outlined-neutral-border-default bg-gradient-to-t from-btn-outlined-neutral-bg-default from-[10%] to-btn-outlined-neutral-bg-gradient-to-default shadow-sm cursor-pointer transition-colors hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover",
8973
+ children: /* @__PURE__ */ jsx60(Icon37, { icon: faPlusOutline5, size: "sm", className: "text-foreground" })
8857
8974
  }
8858
8975
  ) : /* @__PURE__ */ jsx60(FilterBarButton, {})
8859
8976
  }