@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/USAGE.md +11 -1
- package/dist/index.d.mts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +375 -258
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +379 -262
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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-
|
|
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 = "
|
|
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
|
-
|
|
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-
|
|
5478
|
-
"border border-
|
|
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-
|
|
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-
|
|
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-
|
|
5533
|
+
/* @__PURE__ */ jsxs34("span", { className: "text-muted-foreground", children: [
|
|
5495
5534
|
"Sort by",
|
|
5496
5535
|
" "
|
|
5497
5536
|
] }),
|
|
5498
|
-
/* @__PURE__ */ jsx39("span", { className: "text-
|
|
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-
|
|
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-
|
|
5528
|
-
field.id === activeField ? "bg-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
5569
|
-
direction === "asc" ? "bg-
|
|
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-
|
|
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-
|
|
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-
|
|
5607
|
-
direction === "desc" ? "bg-
|
|
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-
|
|
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-
|
|
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-
|
|
5655
|
-
"border border-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
5688
|
-
"border border-
|
|
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-
|
|
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-
|
|
5711
|
-
/* @__PURE__ */ jsx41("span", { className: "absolute inset-0 rounded-l-[11px] border border-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
5780
|
-
op === activeOperator && "bg-
|
|
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-
|
|
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-
|
|
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-
|
|
5817
|
-
op === activeOperator && "bg-
|
|
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-
|
|
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-
|
|
5838
|
-
"bg-
|
|
5839
|
-
"placeholder:text-
|
|
5840
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
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-
|
|
5844
|
-
"bg-
|
|
5845
|
-
"focus:outline-none focus:ring-2 focus: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-
|
|
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(
|
|
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-
|
|
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(
|
|
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-
|
|
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-
|
|
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(
|
|
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(
|
|
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-
|
|
6513
|
-
/* @__PURE__ */ jsx46("span", { className: "text-xs font-medium leading-xs text-
|
|
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-
|
|
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-
|
|
6548
|
-
selected && "bg-
|
|
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-
|
|
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-
|
|
6572
|
-
option.description && /* @__PURE__ */ jsx47("span", { className: "text-xs font-regular leading-xs text-
|
|
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-
|
|
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-
|
|
6615
|
-
value === opt && "bg-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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(
|
|
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-
|
|
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(
|
|
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 {
|
|
6800
|
-
var AdvancedFilterFooter = ({ onClick, count }) => /* @__PURE__ */ jsxs44(
|
|
6801
|
-
/* @__PURE__ */ jsx50("div", { className: "h-px bg-
|
|
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-
|
|
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-
|
|
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-
|
|
6819
|
-
count > 0 && /* @__PURE__ */ jsxs44("span", { className: "text-xs font-regular leading-xs text-
|
|
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
|
|
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
|
|
6872
|
-
|
|
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
|
|
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-
|
|
6901
|
-
"bg-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
6933
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
6960
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
6980
|
-
/* @__PURE__ */ jsx50("span", { className: "text-xs font-medium leading-xs text-
|
|
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-
|
|
7067
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
6987
7068
|
}
|
|
6988
7069
|
)
|
|
6989
7070
|
]
|
|
6990
7071
|
},
|
|
6991
7072
|
g.group
|
|
6992
|
-
))
|
|
6993
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
7208
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7128
7209
|
}
|
|
7129
7210
|
),
|
|
7130
|
-
/* @__PURE__ */ jsx51("span", { className: "text-sm font-regular leading-sm text-
|
|
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-
|
|
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-
|
|
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-
|
|
7231
|
+
className: "shrink-0 text-destructive"
|
|
7151
7232
|
}
|
|
7152
7233
|
),
|
|
7153
|
-
/* @__PURE__ */ jsx51("span", { className: "text-sm font-regular leading-sm text-
|
|
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-
|
|
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-
|
|
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-
|
|
7315
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7235
7316
|
}
|
|
7236
7317
|
),
|
|
7237
|
-
/* @__PURE__ */ jsx52("span", { className: "text-sm font-medium leading-sm text-
|
|
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-
|
|
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-
|
|
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-
|
|
7505
|
-
"border border-
|
|
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-
|
|
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-
|
|
7610
|
+
className: "shrink-0 text-foreground"
|
|
7530
7611
|
}
|
|
7531
7612
|
),
|
|
7532
|
-
/* @__PURE__ */ jsx54("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-
|
|
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-
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
7646
|
-
item.destructive && "text-
|
|
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-
|
|
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-
|
|
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-
|
|
7686
|
-
"border border-
|
|
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-
|
|
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-
|
|
7722
|
-
/* @__PURE__ */ jsx56(
|
|
7723
|
-
/* @__PURE__ */ jsx56(
|
|
7724
|
-
|
|
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(
|
|
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-
|
|
7738
|
-
/* @__PURE__ */ jsx56("span", { className: "text-sm font-regular leading-sm text-
|
|
7739
|
-
/* @__PURE__ */ jsx56(Icon33, { icon: faChevronDownOutline2, size: "xs", className: "shrink-0 text-
|
|
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__ */
|
|
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-
|
|
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:
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
|
|
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
|
-
|
|
7762
|
-
|
|
7763
|
-
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
|
-
|
|
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-
|
|
7779
|
-
/* @__PURE__ */ jsx56(Icon33, { icon: faChevronDownOutline2, size: "xs", className: "shrink-0 text-
|
|
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-
|
|
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-
|
|
7820
|
-
"text-sm font-regular leading-sm text-
|
|
7821
|
-
"placeholder:text-
|
|
7822
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
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-
|
|
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-
|
|
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-
|
|
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(
|
|
7960
|
-
/* @__PURE__ */ jsx56(
|
|
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(
|
|
7965
|
-
|
|
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(
|
|
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
|
|
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-
|
|
7998
|
-
/* @__PURE__ */ jsx57(
|
|
7999
|
-
/* @__PURE__ */ jsx57(
|
|
8000
|
-
|
|
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(
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
8246
|
-
/* @__PURE__ */ jsx58(Icon35, { icon: faPlusOutline3, size: "sm", className: "text-
|
|
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-
|
|
8373
|
+
className: cn(ghostBtn, "text-foreground"),
|
|
8257
8374
|
children: [
|
|
8258
|
-
/* @__PURE__ */ jsx58(Icon35, { icon: faPlusOutline3, size: "sm", className: "text-
|
|
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-
|
|
8386
|
+
className: cn(ghostBtn, "text-destructive"),
|
|
8270
8387
|
children: [
|
|
8271
|
-
/* @__PURE__ */ jsx58(Icon35, { icon: faXmarkOutline4, size: "sm", className: "text-
|
|
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-
|
|
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-
|
|
8315
|
-
"border border-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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-
|
|
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-
|
|
8509
|
-
"border border-
|
|
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-
|
|
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-
|
|
8516
|
-
/* @__PURE__ */ jsx59("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-
|
|
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(
|
|
8523
|
-
/* @__PURE__ */ jsx59(
|
|
8524
|
-
hasTooltip && /* @__PURE__ */ jsx59(
|
|
8525
|
-
|
|
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(
|
|
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-
|
|
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-
|
|
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-
|
|
8571
|
-
/* @__PURE__ */ jsx59(Icon36, { icon: faPlusOutline4, size: "sm", className: "text-
|
|
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-
|
|
8577
|
-
/* @__PURE__ */ jsx59(Icon36, { icon: faPlusOutline4, size: "sm", className: "text-
|
|
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-
|
|
8706
|
+
className: cn(ghostBtn2, "text-destructive"),
|
|
8590
8707
|
children: [
|
|
8591
|
-
/* @__PURE__ */ jsx59(Icon36, { icon: faXmarkOutline5, size: "sm", className: "text-
|
|
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-
|
|
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-
|
|
8623
|
-
"border border-
|
|
8624
|
-
"hover:from-
|
|
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-
|
|
8628
|
-
/* @__PURE__ */ jsx59(Icon36, { icon: faChevronDownOutline4, size: "xs", className: "shrink-0 text-
|
|
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
|
|
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(
|
|
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(
|
|
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-
|
|
8856
|
-
children: /* @__PURE__ */ jsx60(Icon37, { icon: faPlusOutline5, size: "sm", className: "text-
|
|
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
|
}
|