@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.js
CHANGED
|
@@ -850,7 +850,7 @@ var containerStyle = [
|
|
|
850
850
|
"bg-dropdown-bg",
|
|
851
851
|
"border border-dropdown-border",
|
|
852
852
|
"rounded-md",
|
|
853
|
-
"p-
|
|
853
|
+
"p-xs",
|
|
854
854
|
"shadow-lg"
|
|
855
855
|
];
|
|
856
856
|
var DropdownMenu = React4.forwardRef(
|
|
@@ -4088,7 +4088,7 @@ var StatusCell = ({
|
|
|
4088
4088
|
label,
|
|
4089
4089
|
variant = "light",
|
|
4090
4090
|
type = "primary",
|
|
4091
|
-
size = "
|
|
4091
|
+
size = "md",
|
|
4092
4092
|
className
|
|
4093
4093
|
}) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: cn("flex items-center", className), children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Badge, { variant, type, size, children: label }) });
|
|
4094
4094
|
StatusCell.displayName = "StatusCell";
|
|
@@ -5103,6 +5103,7 @@ SidePanelContent.displayName = "SidePanelContent";
|
|
|
5103
5103
|
|
|
5104
5104
|
// src/components/ui/filter/filter-chip-segment.tsx
|
|
5105
5105
|
var React36 = __toESM(require("react"));
|
|
5106
|
+
var TooltipPrimitive3 = __toESM(require("@radix-ui/react-tooltip"));
|
|
5106
5107
|
var import_class_variance_authority19 = require("class-variance-authority");
|
|
5107
5108
|
var import_icons23 = require("@l3mpire/icons");
|
|
5108
5109
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
@@ -5128,6 +5129,43 @@ var filterChipSegmentVariants = (0, import_class_variance_authority19.cva)(
|
|
|
5128
5129
|
}
|
|
5129
5130
|
}
|
|
5130
5131
|
);
|
|
5132
|
+
function TruncatedLabel({
|
|
5133
|
+
label,
|
|
5134
|
+
truncate,
|
|
5135
|
+
className
|
|
5136
|
+
}) {
|
|
5137
|
+
const textRef = React36.useRef(null);
|
|
5138
|
+
const [isTruncated, setIsTruncated] = React36.useState(false);
|
|
5139
|
+
React36.useEffect(() => {
|
|
5140
|
+
const el = textRef.current;
|
|
5141
|
+
if (el && truncate) {
|
|
5142
|
+
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
5143
|
+
}
|
|
5144
|
+
}, [label, truncate]);
|
|
5145
|
+
const span = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
5146
|
+
"span",
|
|
5147
|
+
{
|
|
5148
|
+
ref: textRef,
|
|
5149
|
+
className: cn(className, truncate && "max-w-[160px] truncate"),
|
|
5150
|
+
children: label
|
|
5151
|
+
}
|
|
5152
|
+
);
|
|
5153
|
+
if (!isTruncated) return span;
|
|
5154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(TooltipPrimitive3.Provider, { delayDuration: 300, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(TooltipPrimitive3.Root, { children: [
|
|
5155
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(TooltipPrimitive3.Trigger, { asChild: true, children: span }),
|
|
5156
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(TooltipPrimitive3.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
5157
|
+
TooltipPrimitive3.Content,
|
|
5158
|
+
{
|
|
5159
|
+
sideOffset: 4,
|
|
5160
|
+
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]",
|
|
5161
|
+
children: [
|
|
5162
|
+
label,
|
|
5163
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(TooltipPrimitive3.Arrow, { className: "fill-tooltip-default-bg" })
|
|
5164
|
+
]
|
|
5165
|
+
}
|
|
5166
|
+
) })
|
|
5167
|
+
] }) });
|
|
5168
|
+
}
|
|
5131
5169
|
var FilterChipSegment = React36.forwardRef(
|
|
5132
5170
|
({
|
|
5133
5171
|
className,
|
|
@@ -5189,13 +5227,14 @@ var FilterChipSegment = React36.forwardRef(
|
|
|
5189
5227
|
}
|
|
5190
5228
|
),
|
|
5191
5229
|
label && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
5192
|
-
|
|
5230
|
+
TruncatedLabel,
|
|
5193
5231
|
{
|
|
5232
|
+
label,
|
|
5233
|
+
truncate: segmentType === "value",
|
|
5194
5234
|
className: cn(
|
|
5195
5235
|
"text-sm font-medium leading-sm whitespace-nowrap",
|
|
5196
5236
|
segmentType === "placeholder" ? "text-filter-chip-segment-placeholder" : "text-filter-chip-segment-text"
|
|
5197
|
-
)
|
|
5198
|
-
children: label
|
|
5237
|
+
)
|
|
5199
5238
|
}
|
|
5200
5239
|
),
|
|
5201
5240
|
badgeCount != null && badgeCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "flex items-center gap-2xs p-2xs rounded-xs bg-filter-chip-badge-bg", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-[10px] font-medium leading-2xs text-filter-chip-badge-text", children: badgeCount }) }),
|
|
@@ -5583,10 +5622,10 @@ var SortButton = ({
|
|
|
5583
5622
|
className: cn(
|
|
5584
5623
|
"flex items-center gap-xs",
|
|
5585
5624
|
"min-h-[32px] max-h-[32px]",
|
|
5586
|
-
"bg-gradient-to-t from-
|
|
5587
|
-
"border border-
|
|
5625
|
+
"bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
|
|
5626
|
+
"border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
|
|
5588
5627
|
"cursor-pointer transition-colors",
|
|
5589
|
-
"hover:from-
|
|
5628
|
+
"hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover",
|
|
5590
5629
|
iconOnly ? "size-8 justify-center p-0" : "px-md py-sm min-w-[80px]",
|
|
5591
5630
|
className
|
|
5592
5631
|
),
|
|
@@ -5596,15 +5635,15 @@ var SortButton = ({
|
|
|
5596
5635
|
{
|
|
5597
5636
|
icon: direction === "asc" ? import_icons25.faArrowUpSmallBigOutline : import_icons25.faArrowDownBigSmallOutline,
|
|
5598
5637
|
size: "sm",
|
|
5599
|
-
className: "shrink-0 text-
|
|
5638
|
+
className: "shrink-0 text-foreground"
|
|
5600
5639
|
}
|
|
5601
5640
|
),
|
|
5602
5641
|
!iconOnly && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "text-sm font-medium leading-sm whitespace-nowrap", children: [
|
|
5603
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "text-
|
|
5642
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "text-muted-foreground", children: [
|
|
5604
5643
|
"Sort by",
|
|
5605
5644
|
" "
|
|
5606
5645
|
] }),
|
|
5607
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-
|
|
5646
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-foreground", children: activeLabel })
|
|
5608
5647
|
] })
|
|
5609
5648
|
]
|
|
5610
5649
|
}
|
|
@@ -5616,7 +5655,7 @@ var SortButton = ({
|
|
|
5616
5655
|
align: "start",
|
|
5617
5656
|
className: cn(
|
|
5618
5657
|
"z-50 flex flex-col gap-xs overflow-clip p-xs",
|
|
5619
|
-
"bg-
|
|
5658
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
5620
5659
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
5621
5660
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
5622
5661
|
"data-[side=bottom]:slide-in-from-top-2",
|
|
@@ -5633,8 +5672,8 @@ var SortButton = ({
|
|
|
5633
5672
|
},
|
|
5634
5673
|
className: cn(
|
|
5635
5674
|
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors",
|
|
5636
|
-
"hover:bg-
|
|
5637
|
-
field.id === activeField ? "bg-
|
|
5675
|
+
"hover:bg-dropdown-item-hover",
|
|
5676
|
+
field.id === activeField ? "bg-dropdown-item-hover" : ""
|
|
5638
5677
|
),
|
|
5639
5678
|
children: [
|
|
5640
5679
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
@@ -5644,7 +5683,7 @@ var SortButton = ({
|
|
|
5644
5683
|
size: "sm",
|
|
5645
5684
|
className: cn(
|
|
5646
5685
|
"shrink-0",
|
|
5647
|
-
field.id === activeField ? "text-
|
|
5686
|
+
field.id === activeField ? "text-foreground" : "text-dropdown-item-icon"
|
|
5648
5687
|
)
|
|
5649
5688
|
}
|
|
5650
5689
|
),
|
|
@@ -5653,7 +5692,7 @@ var SortButton = ({
|
|
|
5653
5692
|
{
|
|
5654
5693
|
className: cn(
|
|
5655
5694
|
"flex-1 text-sm font-regular leading-sm text-left truncate",
|
|
5656
|
-
field.id === activeField ? "text-
|
|
5695
|
+
field.id === activeField ? "text-foreground" : "text-dropdown-item-icon"
|
|
5657
5696
|
),
|
|
5658
5697
|
children: field.label
|
|
5659
5698
|
}
|
|
@@ -5662,7 +5701,7 @@ var SortButton = ({
|
|
|
5662
5701
|
},
|
|
5663
5702
|
field.id
|
|
5664
5703
|
)) }),
|
|
5665
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "h-px bg-
|
|
5704
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "h-px bg-border" }),
|
|
5666
5705
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col", children: [
|
|
5667
5706
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
5668
5707
|
"button",
|
|
@@ -5674,8 +5713,8 @@ var SortButton = ({
|
|
|
5674
5713
|
},
|
|
5675
5714
|
className: cn(
|
|
5676
5715
|
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors",
|
|
5677
|
-
"hover:bg-
|
|
5678
|
-
direction === "asc" ? "bg-
|
|
5716
|
+
"hover:bg-dropdown-item-hover",
|
|
5717
|
+
direction === "asc" ? "bg-dropdown-item-hover" : ""
|
|
5679
5718
|
),
|
|
5680
5719
|
children: [
|
|
5681
5720
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
@@ -5685,7 +5724,7 @@ var SortButton = ({
|
|
|
5685
5724
|
size: "sm",
|
|
5686
5725
|
className: cn(
|
|
5687
5726
|
"shrink-0",
|
|
5688
|
-
direction === "asc" ? "text-
|
|
5727
|
+
direction === "asc" ? "text-foreground" : "text-dropdown-item-icon"
|
|
5689
5728
|
)
|
|
5690
5729
|
}
|
|
5691
5730
|
),
|
|
@@ -5694,7 +5733,7 @@ var SortButton = ({
|
|
|
5694
5733
|
{
|
|
5695
5734
|
className: cn(
|
|
5696
5735
|
"flex-1 text-sm font-regular leading-sm text-left",
|
|
5697
|
-
direction === "asc" ? "text-
|
|
5736
|
+
direction === "asc" ? "text-foreground" : "text-dropdown-item-icon"
|
|
5698
5737
|
),
|
|
5699
5738
|
children: "Ascending"
|
|
5700
5739
|
}
|
|
@@ -5712,8 +5751,8 @@ var SortButton = ({
|
|
|
5712
5751
|
},
|
|
5713
5752
|
className: cn(
|
|
5714
5753
|
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors",
|
|
5715
|
-
"hover:bg-
|
|
5716
|
-
direction === "desc" ? "bg-
|
|
5754
|
+
"hover:bg-dropdown-item-hover",
|
|
5755
|
+
direction === "desc" ? "bg-dropdown-item-hover" : ""
|
|
5717
5756
|
),
|
|
5718
5757
|
children: [
|
|
5719
5758
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
@@ -5723,7 +5762,7 @@ var SortButton = ({
|
|
|
5723
5762
|
size: "sm",
|
|
5724
5763
|
className: cn(
|
|
5725
5764
|
"shrink-0",
|
|
5726
|
-
direction === "desc" ? "text-
|
|
5765
|
+
direction === "desc" ? "text-foreground" : "text-dropdown-item-icon"
|
|
5727
5766
|
)
|
|
5728
5767
|
}
|
|
5729
5768
|
),
|
|
@@ -5732,7 +5771,7 @@ var SortButton = ({
|
|
|
5732
5771
|
{
|
|
5733
5772
|
className: cn(
|
|
5734
5773
|
"flex-1 text-sm font-regular leading-sm text-left",
|
|
5735
|
-
direction === "desc" ? "text-
|
|
5774
|
+
direction === "desc" ? "text-foreground" : "text-dropdown-item-icon"
|
|
5736
5775
|
),
|
|
5737
5776
|
children: "Descending"
|
|
5738
5777
|
}
|
|
@@ -5760,10 +5799,10 @@ var FilterBarButton = React40.forwardRef(({ className, count, iconOnly = false,
|
|
|
5760
5799
|
className: cn(
|
|
5761
5800
|
"shrink-0 flex items-center gap-sm overflow-hidden",
|
|
5762
5801
|
"min-h-[32px] max-h-[32px]",
|
|
5763
|
-
"bg-gradient-to-t from-
|
|
5764
|
-
"border border-
|
|
5802
|
+
"bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
|
|
5803
|
+
"border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
|
|
5765
5804
|
"cursor-pointer transition-colors",
|
|
5766
|
-
"hover:from-
|
|
5805
|
+
"hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover",
|
|
5767
5806
|
iconOnly ? count ? "px-sm justify-center" : "size-8 justify-center p-0" : "px-base py-sm min-w-[80px]",
|
|
5768
5807
|
className
|
|
5769
5808
|
),
|
|
@@ -5774,10 +5813,10 @@ var FilterBarButton = React40.forwardRef(({ className, count, iconOnly = false,
|
|
|
5774
5813
|
{
|
|
5775
5814
|
icon: import_icons26.faFilterOutline,
|
|
5776
5815
|
size: "sm",
|
|
5777
|
-
className: "shrink-0 text-
|
|
5816
|
+
className: "shrink-0 text-foreground"
|
|
5778
5817
|
}
|
|
5779
5818
|
),
|
|
5780
|
-
!iconOnly && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-
|
|
5819
|
+
!iconOnly && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-foreground", children: children ?? "Filters" }),
|
|
5781
5820
|
count != null && count > 0 && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "flex items-center p-2xs rounded-xs bg-filter-chip-badge-bg", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "text-[10px] font-medium leading-2xs text-filter-chip-badge-text", children: count }) })
|
|
5782
5821
|
]
|
|
5783
5822
|
}
|
|
@@ -5793,10 +5832,10 @@ var SaveViewButton = React41.forwardRef(
|
|
|
5793
5832
|
const sharedStyle = [
|
|
5794
5833
|
"relative flex items-center justify-center",
|
|
5795
5834
|
"min-h-[32px] max-h-[32px]",
|
|
5796
|
-
"bg-gradient-to-t from-
|
|
5797
|
-
"border border-
|
|
5835
|
+
"bg-gradient-to-t from-btn-solid-brand-bg-default from-[10%] to-btn-solid-brand-bg-gradient-to-default",
|
|
5836
|
+
"border border-btn-solid-brand-border-default",
|
|
5798
5837
|
"shadow-sm cursor-pointer transition-colors",
|
|
5799
|
-
"hover:from-
|
|
5838
|
+
"hover:from-btn-solid-brand-bg-hover hover:to-btn-solid-brand-bg-gradient-to-hover"
|
|
5800
5839
|
];
|
|
5801
5840
|
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
5802
5841
|
"div",
|
|
@@ -5816,8 +5855,8 @@ var SaveViewButton = React41.forwardRef(
|
|
|
5816
5855
|
"rounded-l-md -mr-px"
|
|
5817
5856
|
),
|
|
5818
5857
|
children: [
|
|
5819
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-
|
|
5820
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "absolute inset-0 rounded-l-[11px] border border-
|
|
5858
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-btn-solid-brand-text-default", children: label }),
|
|
5859
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "absolute inset-0 rounded-l-[11px] border border-btn-solid-brand-inner-border-default shadow-sm pointer-events-none" })
|
|
5821
5860
|
]
|
|
5822
5861
|
}
|
|
5823
5862
|
),
|
|
@@ -5837,10 +5876,10 @@ var SaveViewButton = React41.forwardRef(
|
|
|
5837
5876
|
{
|
|
5838
5877
|
icon: import_icons27.faChevronDownOutline,
|
|
5839
5878
|
size: "sm",
|
|
5840
|
-
className: "text-
|
|
5879
|
+
className: "text-btn-solid-brand-text-default"
|
|
5841
5880
|
}
|
|
5842
5881
|
),
|
|
5843
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "absolute inset-0 rounded-r-[11px] border border-
|
|
5882
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "absolute inset-0 rounded-r-[11px] border border-btn-solid-brand-inner-border-default shadow-sm pointer-events-none" })
|
|
5844
5883
|
]
|
|
5845
5884
|
}
|
|
5846
5885
|
)
|
|
@@ -5872,7 +5911,7 @@ var OperatorSelector = ({
|
|
|
5872
5911
|
align: "start",
|
|
5873
5912
|
className: cn(
|
|
5874
5913
|
"z-50 flex flex-col p-xs overflow-clip",
|
|
5875
|
-
"bg-
|
|
5914
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
5876
5915
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
5877
5916
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
5878
5917
|
"data-[side=bottom]:slide-in-from-top-2",
|
|
@@ -5885,8 +5924,8 @@ var OperatorSelector = ({
|
|
|
5885
5924
|
onClick: () => onSelect(op),
|
|
5886
5925
|
className: cn(
|
|
5887
5926
|
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
|
|
5888
|
-
"hover:bg-
|
|
5889
|
-
op === activeOperator && "bg-
|
|
5927
|
+
"hover:bg-dropdown-item-hover",
|
|
5928
|
+
op === activeOperator && "bg-dropdown-item-hover"
|
|
5890
5929
|
),
|
|
5891
5930
|
children: [
|
|
5892
5931
|
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
@@ -5894,12 +5933,12 @@ var OperatorSelector = ({
|
|
|
5894
5933
|
{
|
|
5895
5934
|
className: cn(
|
|
5896
5935
|
"text-sm font-regular leading-sm",
|
|
5897
|
-
op === activeOperator ? "text-
|
|
5936
|
+
op === activeOperator ? "text-foreground font-medium" : "text-dropdown-item-text"
|
|
5898
5937
|
),
|
|
5899
5938
|
children: op
|
|
5900
5939
|
}
|
|
5901
5940
|
),
|
|
5902
|
-
isNoValueOperator(op) && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "ml-auto text-xs text-
|
|
5941
|
+
isNoValueOperator(op) && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "ml-auto text-xs text-muted-foreground", children: "instant" })
|
|
5903
5942
|
]
|
|
5904
5943
|
},
|
|
5905
5944
|
op
|
|
@@ -5922,15 +5961,15 @@ var OperatorList = ({
|
|
|
5922
5961
|
onClick: () => onSelect(op),
|
|
5923
5962
|
className: cn(
|
|
5924
5963
|
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
|
|
5925
|
-
"hover:bg-
|
|
5926
|
-
op === activeOperator && "bg-
|
|
5964
|
+
"hover:bg-dropdown-item-hover",
|
|
5965
|
+
op === activeOperator && "bg-dropdown-item-hover"
|
|
5927
5966
|
),
|
|
5928
5967
|
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
5929
5968
|
"span",
|
|
5930
5969
|
{
|
|
5931
5970
|
className: cn(
|
|
5932
5971
|
"text-sm font-regular leading-sm",
|
|
5933
|
-
op === activeOperator ? "text-
|
|
5972
|
+
op === activeOperator ? "text-foreground font-medium" : "text-dropdown-item-text"
|
|
5934
5973
|
),
|
|
5935
5974
|
children: op
|
|
5936
5975
|
}
|
|
@@ -5943,17 +5982,16 @@ OperatorList.displayName = "OperatorList";
|
|
|
5943
5982
|
|
|
5944
5983
|
// src/components/ui/filter/value-inputs/shared.ts
|
|
5945
5984
|
var inputClasses = [
|
|
5946
|
-
"w-full px-base py-sm rounded-base border border-
|
|
5947
|
-
"bg-
|
|
5948
|
-
"placeholder:text-
|
|
5949
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
5985
|
+
"w-full px-base py-sm rounded-base border border-input",
|
|
5986
|
+
"bg-background text-sm font-regular leading-sm text-foreground",
|
|
5987
|
+
"placeholder:text-muted-foreground",
|
|
5988
|
+
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-0"
|
|
5950
5989
|
].join(" ");
|
|
5951
5990
|
var halfInputClasses = [
|
|
5952
|
-
"flex-1 px-base py-sm rounded-base border border-
|
|
5953
|
-
"bg-
|
|
5954
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
5991
|
+
"flex-1 px-base py-sm rounded-base border border-input",
|
|
5992
|
+
"bg-background text-sm font-regular leading-sm text-foreground",
|
|
5993
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
5955
5994
|
].join(" ");
|
|
5956
|
-
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";
|
|
5957
5995
|
|
|
5958
5996
|
// src/components/ui/filter/value-inputs/text-value-input.tsx
|
|
5959
5997
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
@@ -5966,7 +6004,7 @@ var TextValueInput = ({
|
|
|
5966
6004
|
const handleKeyDown = (e) => {
|
|
5967
6005
|
if (e.key === "Enter") onSubmit?.();
|
|
5968
6006
|
};
|
|
5969
|
-
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: cn("flex flex-col gap-base p-
|
|
6007
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: cn("flex flex-col gap-base p-xs", className), children: [
|
|
5970
6008
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5971
6009
|
"input",
|
|
5972
6010
|
{
|
|
@@ -5979,7 +6017,7 @@ var TextValueInput = ({
|
|
|
5979
6017
|
className: inputClasses
|
|
5980
6018
|
}
|
|
5981
6019
|
),
|
|
5982
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
6020
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
|
|
5983
6021
|
] });
|
|
5984
6022
|
};
|
|
5985
6023
|
TextValueInput.displayName = "TextValueInput";
|
|
@@ -5995,7 +6033,7 @@ var NumberValueInput = ({
|
|
|
5995
6033
|
const handleKeyDown = (e) => {
|
|
5996
6034
|
if (e.key === "Enter") onSubmit?.();
|
|
5997
6035
|
};
|
|
5998
|
-
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: cn("flex flex-col gap-base p-
|
|
6036
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: cn("flex flex-col gap-base p-xs", className), children: [
|
|
5999
6037
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6000
6038
|
"input",
|
|
6001
6039
|
{
|
|
@@ -6008,7 +6046,7 @@ var NumberValueInput = ({
|
|
|
6008
6046
|
className: inputClasses
|
|
6009
6047
|
}
|
|
6010
6048
|
),
|
|
6011
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6049
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
|
|
6012
6050
|
] });
|
|
6013
6051
|
};
|
|
6014
6052
|
NumberValueInput.displayName = "NumberValueInput";
|
|
@@ -6019,7 +6057,7 @@ var NumberRangeValueInput = ({
|
|
|
6019
6057
|
className
|
|
6020
6058
|
}) => {
|
|
6021
6059
|
const rangeVal = value ?? [0, 0];
|
|
6022
|
-
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: cn("flex flex-col gap-base p-
|
|
6060
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: cn("flex flex-col gap-base p-xs", className), children: [
|
|
6023
6061
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-center gap-base", children: [
|
|
6024
6062
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6025
6063
|
"input",
|
|
@@ -6032,7 +6070,7 @@ var NumberRangeValueInput = ({
|
|
|
6032
6070
|
className: halfInputClasses
|
|
6033
6071
|
}
|
|
6034
6072
|
),
|
|
6035
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "text-sm text-
|
|
6073
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "text-sm text-muted-foreground", children: "and" }),
|
|
6036
6074
|
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6037
6075
|
"input",
|
|
6038
6076
|
{
|
|
@@ -6044,7 +6082,7 @@ var NumberRangeValueInput = ({
|
|
|
6044
6082
|
}
|
|
6045
6083
|
)
|
|
6046
6084
|
] }),
|
|
6047
|
-
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6085
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
|
|
6048
6086
|
] });
|
|
6049
6087
|
};
|
|
6050
6088
|
NumberRangeValueInput.displayName = "NumberRangeValueInput";
|
|
@@ -6600,7 +6638,7 @@ var DateCalendarValueInput = ({
|
|
|
6600
6638
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DatePickerCalendar, {}),
|
|
6601
6639
|
isRange && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(DatePickerFooter, { children: [
|
|
6602
6640
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", {}),
|
|
6603
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
6641
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Button, { appearance: "solid", intent: "brand", size: "sm", onClick: onSubmit, children: "Apply" })
|
|
6604
6642
|
] })
|
|
6605
6643
|
]
|
|
6606
6644
|
}
|
|
@@ -6612,8 +6650,8 @@ var PresetTagsValueInput = ({
|
|
|
6612
6650
|
onChange,
|
|
6613
6651
|
onSubmit,
|
|
6614
6652
|
className
|
|
6615
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: cn("flex flex-col gap-base p-
|
|
6616
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "text-xs font-medium leading-xs text-
|
|
6653
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: cn("flex flex-col gap-base p-xs max-w-[280px]", className), children: RELATIVE_DATE_PRESETS.map((group) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex flex-col gap-xs", children: [
|
|
6654
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "text-xs font-medium leading-xs text-muted-foreground uppercase px-xs", children: group.group }),
|
|
6617
6655
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex flex-wrap gap-xs", children: group.options.map((preset) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
6618
6656
|
"button",
|
|
6619
6657
|
{
|
|
@@ -6624,7 +6662,7 @@ var PresetTagsValueInput = ({
|
|
|
6624
6662
|
},
|
|
6625
6663
|
className: cn(
|
|
6626
6664
|
"px-base py-2xs rounded-base border cursor-pointer transition-colors text-sm font-regular leading-sm",
|
|
6627
|
-
value === preset ? "border-
|
|
6665
|
+
value === preset ? "border-ring bg-primary text-primary-foreground" : "border-input bg-background text-foreground hover:bg-accent"
|
|
6628
6666
|
),
|
|
6629
6667
|
children: preset
|
|
6630
6668
|
},
|
|
@@ -6647,8 +6685,8 @@ var DynamicOptionRow = ({
|
|
|
6647
6685
|
onClick,
|
|
6648
6686
|
className: cn(
|
|
6649
6687
|
"flex items-start gap-base p-base rounded-base cursor-pointer transition-colors text-left",
|
|
6650
|
-
"hover:bg-
|
|
6651
|
-
selected && "bg-
|
|
6688
|
+
"hover:bg-dropdown-item-hover",
|
|
6689
|
+
selected && "bg-dropdown-item-hover"
|
|
6652
6690
|
),
|
|
6653
6691
|
children: [
|
|
6654
6692
|
multi && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -6656,7 +6694,7 @@ var DynamicOptionRow = ({
|
|
|
6656
6694
|
{
|
|
6657
6695
|
className: cn(
|
|
6658
6696
|
"mt-[2px] flex items-center justify-center size-4 rounded-xs border transition-colors shrink-0",
|
|
6659
|
-
selected ? "bg-
|
|
6697
|
+
selected ? "bg-primary border-primary" : "border-input bg-background"
|
|
6660
6698
|
),
|
|
6661
6699
|
children: selected && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6662
6700
|
"path",
|
|
@@ -6671,8 +6709,8 @@ var DynamicOptionRow = ({
|
|
|
6671
6709
|
}
|
|
6672
6710
|
),
|
|
6673
6711
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "flex-1 flex flex-col gap-2xs min-w-0", children: [
|
|
6674
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-sm font-regular leading-sm text-
|
|
6675
|
-
option.description && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-xs font-regular leading-xs text-
|
|
6712
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-sm font-regular leading-sm text-foreground truncate", children: option.label }),
|
|
6713
|
+
option.description && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-xs font-regular leading-xs text-muted-foreground", children: option.description })
|
|
6676
6714
|
] })
|
|
6677
6715
|
]
|
|
6678
6716
|
}
|
|
@@ -6693,7 +6731,7 @@ var SingleSelectValueInput = ({
|
|
|
6693
6731
|
"div",
|
|
6694
6732
|
{
|
|
6695
6733
|
className: cn(
|
|
6696
|
-
"flex flex-col gap-xs p-
|
|
6734
|
+
"flex flex-col gap-xs p-xs max-h-[280px] overflow-y-auto",
|
|
6697
6735
|
className
|
|
6698
6736
|
),
|
|
6699
6737
|
children: [
|
|
@@ -6714,10 +6752,10 @@ var SingleSelectValueInput = ({
|
|
|
6714
6752
|
onClick: () => pick(opt),
|
|
6715
6753
|
className: cn(
|
|
6716
6754
|
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
|
|
6717
|
-
"hover:bg-
|
|
6718
|
-
value === opt && "bg-
|
|
6755
|
+
"hover:bg-dropdown-item-hover",
|
|
6756
|
+
value === opt && "bg-dropdown-item-hover"
|
|
6719
6757
|
),
|
|
6720
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-sm font-regular leading-sm text-
|
|
6758
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-sm font-regular leading-sm text-foreground", children: opt })
|
|
6721
6759
|
},
|
|
6722
6760
|
opt
|
|
6723
6761
|
))
|
|
@@ -6739,7 +6777,7 @@ var MultiSelectValueInput = ({
|
|
|
6739
6777
|
const next = selected.includes(v) ? selected.filter((s) => s !== v) : [...selected, v];
|
|
6740
6778
|
onChange(next);
|
|
6741
6779
|
};
|
|
6742
|
-
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: cn("flex flex-col gap-xs p-
|
|
6780
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: cn("flex flex-col gap-xs p-xs", className), children: [
|
|
6743
6781
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex flex-col max-h-[240px] overflow-y-auto", children: [
|
|
6744
6782
|
dynamicOptions?.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6745
6783
|
DynamicOptionRow,
|
|
@@ -6760,7 +6798,7 @@ var MultiSelectValueInput = ({
|
|
|
6760
6798
|
onClick: () => toggle(opt),
|
|
6761
6799
|
className: cn(
|
|
6762
6800
|
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
|
|
6763
|
-
"hover:bg-
|
|
6801
|
+
"hover:bg-dropdown-item-hover"
|
|
6764
6802
|
),
|
|
6765
6803
|
children: [
|
|
6766
6804
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -6768,7 +6806,7 @@ var MultiSelectValueInput = ({
|
|
|
6768
6806
|
{
|
|
6769
6807
|
className: cn(
|
|
6770
6808
|
"flex items-center justify-center size-4 rounded-xs border transition-colors",
|
|
6771
|
-
isSelected ? "bg-
|
|
6809
|
+
isSelected ? "bg-primary border-primary" : "border-input bg-background"
|
|
6772
6810
|
),
|
|
6773
6811
|
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6774
6812
|
"path",
|
|
@@ -6782,14 +6820,14 @@ var MultiSelectValueInput = ({
|
|
|
6782
6820
|
) })
|
|
6783
6821
|
}
|
|
6784
6822
|
),
|
|
6785
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-sm font-regular leading-sm text-
|
|
6823
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-sm font-regular leading-sm text-foreground", children: opt })
|
|
6786
6824
|
]
|
|
6787
6825
|
},
|
|
6788
6826
|
opt
|
|
6789
6827
|
);
|
|
6790
6828
|
})
|
|
6791
6829
|
] }),
|
|
6792
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6830
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
|
|
6793
6831
|
] });
|
|
6794
6832
|
};
|
|
6795
6833
|
MultiSelectValueInput.displayName = "MultiSelectValueInput";
|
|
@@ -6805,7 +6843,7 @@ var RelationValueInput = ({
|
|
|
6805
6843
|
const handleKeyDown = (e) => {
|
|
6806
6844
|
if (e.key === "Enter") onSubmit?.();
|
|
6807
6845
|
};
|
|
6808
|
-
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: cn("flex flex-col gap-base p-
|
|
6846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: cn("flex flex-col gap-base p-xs", className), children: [
|
|
6809
6847
|
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6810
6848
|
"input",
|
|
6811
6849
|
{
|
|
@@ -6818,7 +6856,7 @@ var RelationValueInput = ({
|
|
|
6818
6856
|
className: inputClasses
|
|
6819
6857
|
}
|
|
6820
6858
|
),
|
|
6821
|
-
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6859
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Button, { appearance: "solid", intent: "brand", size: "sm", className: "self-end", onClick: onSubmit, children: "Apply" })
|
|
6822
6860
|
] });
|
|
6823
6861
|
};
|
|
6824
6862
|
RelationValueInput.displayName = "RelationValueInput";
|
|
@@ -6894,26 +6932,26 @@ var React44 = __toESM(require("react"));
|
|
|
6894
6932
|
var PopoverPrimitive6 = __toESM(require("@radix-ui/react-popover"));
|
|
6895
6933
|
var import_icons29 = require("@l3mpire/icons");
|
|
6896
6934
|
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
6897
|
-
var AdvancedFilterFooter = ({ onClick, count }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
6898
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "h-px bg-
|
|
6935
|
+
var AdvancedFilterFooter = ({ onClick, count }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "shrink-0 flex flex-col", children: [
|
|
6936
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "h-px bg-dropdown-border mx-xs" }),
|
|
6899
6937
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
6900
6938
|
"button",
|
|
6901
6939
|
{
|
|
6902
6940
|
type: "button",
|
|
6903
6941
|
onPointerDown: (e) => e.preventDefault(),
|
|
6904
6942
|
onClick,
|
|
6905
|
-
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-
|
|
6943
|
+
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
|
|
6906
6944
|
children: [
|
|
6907
6945
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6908
6946
|
import_icons29.Icon,
|
|
6909
6947
|
{
|
|
6910
6948
|
icon: import_icons29.faFilterOutline,
|
|
6911
6949
|
size: "sm",
|
|
6912
|
-
className: "shrink-0 text-
|
|
6950
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
6913
6951
|
}
|
|
6914
6952
|
),
|
|
6915
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-sm font-regular leading-sm text-
|
|
6916
|
-
count > 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("span", { className: "text-xs font-regular leading-xs text-
|
|
6953
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: "Advanced filter" }),
|
|
6954
|
+
count > 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("span", { className: "text-xs font-regular leading-xs text-muted-foreground", children: [
|
|
6917
6955
|
count,
|
|
6918
6956
|
" ",
|
|
6919
6957
|
count === 1 ? "rule" : "rules"
|
|
@@ -6945,9 +6983,21 @@ var PropertySelector = ({
|
|
|
6945
6983
|
setSearch("");
|
|
6946
6984
|
}
|
|
6947
6985
|
}, [open]);
|
|
6986
|
+
const pinnedGroupIds = React44.useMemo(() => {
|
|
6987
|
+
const set = /* @__PURE__ */ new Set();
|
|
6988
|
+
for (const p of properties) {
|
|
6989
|
+
if (p.groupPinned) set.add(p.group);
|
|
6990
|
+
}
|
|
6991
|
+
return set;
|
|
6992
|
+
}, [properties]);
|
|
6993
|
+
const pinnedProperties = React44.useMemo(
|
|
6994
|
+
() => properties.filter((p) => pinnedGroupIds.has(p.group)),
|
|
6995
|
+
[properties, pinnedGroupIds]
|
|
6996
|
+
);
|
|
6948
6997
|
const groups = React44.useMemo(() => {
|
|
6949
6998
|
const map = /* @__PURE__ */ new Map();
|
|
6950
6999
|
for (const prop of properties) {
|
|
7000
|
+
if (pinnedGroupIds.has(prop.group)) continue;
|
|
6951
7001
|
const existing = map.get(prop.group);
|
|
6952
7002
|
if (existing) {
|
|
6953
7003
|
existing.count++;
|
|
@@ -6961,12 +7011,14 @@ var PropertySelector = ({
|
|
|
6961
7011
|
}
|
|
6962
7012
|
}
|
|
6963
7013
|
return Array.from(map.values());
|
|
6964
|
-
}, [properties]);
|
|
6965
|
-
const
|
|
6966
|
-
if (!search || activeGroup) return
|
|
7014
|
+
}, [properties, pinnedGroupIds]);
|
|
7015
|
+
const filteredPinnedProperties = React44.useMemo(() => {
|
|
7016
|
+
if (!search || activeGroup) return pinnedProperties;
|
|
6967
7017
|
const lower = search.toLowerCase();
|
|
6968
|
-
return
|
|
6969
|
-
|
|
7018
|
+
return pinnedProperties.filter(
|
|
7019
|
+
(p) => p.label.toLowerCase().includes(lower)
|
|
7020
|
+
);
|
|
7021
|
+
}, [pinnedProperties, search, activeGroup]);
|
|
6970
7022
|
const filteredGroups = React44.useMemo(() => {
|
|
6971
7023
|
if (!search || activeGroup) return groups;
|
|
6972
7024
|
const lower = search.toLowerCase();
|
|
@@ -6984,7 +7036,13 @@ var PropertySelector = ({
|
|
|
6984
7036
|
return groupProps.filter((p) => p.label.toLowerCase().includes(lower));
|
|
6985
7037
|
}, [properties, activeGroup, search]);
|
|
6986
7038
|
const activeGroupInfo = groups.find((g) => g.group === activeGroup);
|
|
6987
|
-
const
|
|
7039
|
+
const nonPinnedSearchResults = React44.useMemo(() => {
|
|
7040
|
+
if (!search || activeGroup) return [];
|
|
7041
|
+
const lower = search.toLowerCase();
|
|
7042
|
+
return properties.filter(
|
|
7043
|
+
(p) => !pinnedGroupIds.has(p.group) && p.label.toLowerCase().includes(lower)
|
|
7044
|
+
);
|
|
7045
|
+
}, [properties, search, activeGroup, pinnedGroupIds]);
|
|
6988
7046
|
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(PopoverPrimitive6.Root, { open, onOpenChange, children: [
|
|
6989
7047
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(PopoverPrimitive6.Trigger, { asChild: true, children }),
|
|
6990
7048
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(PopoverPrimitive6.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
@@ -6994,24 +7052,24 @@ var PropertySelector = ({
|
|
|
6994
7052
|
align: "start",
|
|
6995
7053
|
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
6996
7054
|
className: cn(
|
|
6997
|
-
"z-50 flex flex-col gap-xs overflow-
|
|
6998
|
-
"bg-
|
|
7055
|
+
"z-50 flex flex-col gap-xs overflow-hidden p-xs",
|
|
7056
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
6999
7057
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
7000
7058
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
7001
7059
|
"data-[side=bottom]:slide-in-from-top-2",
|
|
7002
|
-
"min-w-[230px]"
|
|
7060
|
+
"min-w-[230px] max-h-[360px]"
|
|
7003
7061
|
),
|
|
7004
7062
|
children: [
|
|
7005
7063
|
activeGroup === null ? (
|
|
7006
|
-
/* ── Level 1: Search + Categories
|
|
7007
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-col gap-xs", children: [
|
|
7008
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-base px-md py-base border border-
|
|
7064
|
+
/* ── Level 1: Search + (pinned props) + Categories ──────── */
|
|
7065
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-col gap-xs flex-1 min-h-0", children: [
|
|
7066
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "shrink-0 flex items-center gap-base px-md py-base border border-input rounded-md", children: [
|
|
7009
7067
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7010
7068
|
import_icons29.Icon,
|
|
7011
7069
|
{
|
|
7012
7070
|
icon: import_icons29.faMagnifyingGlassOutline,
|
|
7013
7071
|
size: "sm",
|
|
7014
|
-
className: "shrink-0 text-
|
|
7072
|
+
className: "shrink-0 text-muted-foreground"
|
|
7015
7073
|
}
|
|
7016
7074
|
),
|
|
7017
7075
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
@@ -7022,13 +7080,12 @@ var PropertySelector = ({
|
|
|
7022
7080
|
onChange: (e) => setSearch(e.target.value),
|
|
7023
7081
|
placeholder: "Search...",
|
|
7024
7082
|
autoFocus: true,
|
|
7025
|
-
className: "flex-1 text-sm font-regular leading-sm text-
|
|
7083
|
+
className: "flex-1 text-sm font-regular leading-sm text-foreground bg-transparent outline-none placeholder:text-muted-foreground"
|
|
7026
7084
|
}
|
|
7027
7085
|
)
|
|
7028
7086
|
] }),
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex flex-col max-h-[300px] overflow-y-auto", children: globalSearchResults.map((prop) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
7087
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-col flex-1 min-h-0 overflow-y-auto", children: [
|
|
7088
|
+
filteredPinnedProperties.map((prop) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
7032
7089
|
"button",
|
|
7033
7090
|
{
|
|
7034
7091
|
type: "button",
|
|
@@ -7036,25 +7093,49 @@ var PropertySelector = ({
|
|
|
7036
7093
|
onSelect(prop);
|
|
7037
7094
|
onOpenChange?.(false);
|
|
7038
7095
|
},
|
|
7039
|
-
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-
|
|
7096
|
+
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
|
|
7040
7097
|
children: [
|
|
7041
7098
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7042
7099
|
import_icons29.Icon,
|
|
7043
7100
|
{
|
|
7044
7101
|
icon: prop.icon,
|
|
7045
7102
|
size: "sm",
|
|
7046
|
-
className: "shrink-0 text-
|
|
7103
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7047
7104
|
}
|
|
7048
7105
|
),
|
|
7049
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-sm font-regular leading-sm text-
|
|
7050
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-xs font-regular leading-xs text-[var(--color-muted-foreground)]", children: prop.groupLabel })
|
|
7106
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: prop.label })
|
|
7051
7107
|
]
|
|
7052
7108
|
},
|
|
7053
7109
|
prop.id
|
|
7054
|
-
))
|
|
7055
|
-
|
|
7056
|
-
|
|
7057
|
-
|
|
7110
|
+
)),
|
|
7111
|
+
search ? (
|
|
7112
|
+
/* ── Flat matches across non-pinned groups ────────── */
|
|
7113
|
+
nonPinnedSearchResults.map((prop) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
7114
|
+
"button",
|
|
7115
|
+
{
|
|
7116
|
+
type: "button",
|
|
7117
|
+
onClick: () => {
|
|
7118
|
+
onSelect(prop);
|
|
7119
|
+
onOpenChange?.(false);
|
|
7120
|
+
},
|
|
7121
|
+
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
|
|
7122
|
+
children: [
|
|
7123
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7124
|
+
import_icons29.Icon,
|
|
7125
|
+
{
|
|
7126
|
+
icon: prop.icon,
|
|
7127
|
+
size: "sm",
|
|
7128
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7129
|
+
}
|
|
7130
|
+
),
|
|
7131
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: prop.label }),
|
|
7132
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-xs font-regular leading-xs text-muted-foreground", children: prop.groupLabel })
|
|
7133
|
+
]
|
|
7134
|
+
},
|
|
7135
|
+
prop.id
|
|
7136
|
+
))
|
|
7137
|
+
) : (
|
|
7138
|
+
/* ── Category list ────────────────────────────────── */
|
|
7058
7139
|
filteredGroups.map((g) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
7059
7140
|
"button",
|
|
7060
7141
|
{
|
|
@@ -7063,37 +7144,37 @@ var PropertySelector = ({
|
|
|
7063
7144
|
setActiveGroup(g.group);
|
|
7064
7145
|
setSearch("");
|
|
7065
7146
|
},
|
|
7066
|
-
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-
|
|
7147
|
+
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
|
|
7067
7148
|
children: [
|
|
7068
7149
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7069
7150
|
import_icons29.Icon,
|
|
7070
7151
|
{
|
|
7071
7152
|
icon: g.groupIcon,
|
|
7072
7153
|
size: "sm",
|
|
7073
|
-
className: "shrink-0 text-
|
|
7154
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7074
7155
|
}
|
|
7075
7156
|
),
|
|
7076
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-sm font-regular leading-sm text-
|
|
7077
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-xs font-medium leading-xs text-
|
|
7157
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: g.groupLabel }),
|
|
7158
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: g.count }),
|
|
7078
7159
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7079
7160
|
import_icons29.Icon,
|
|
7080
7161
|
{
|
|
7081
7162
|
icon: import_icons29.faChevronRightOutline,
|
|
7082
7163
|
size: "xs",
|
|
7083
|
-
className: "shrink-0 text-
|
|
7164
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7084
7165
|
}
|
|
7085
7166
|
)
|
|
7086
7167
|
]
|
|
7087
7168
|
},
|
|
7088
7169
|
g.group
|
|
7089
|
-
))
|
|
7090
|
-
|
|
7091
|
-
|
|
7092
|
-
)
|
|
7170
|
+
))
|
|
7171
|
+
),
|
|
7172
|
+
filteredPinnedProperties.length === 0 && (search ? nonPinnedSearchResults.length === 0 : filteredGroups.length === 0) && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "p-base text-sm text-muted-foreground", children: "No results" })
|
|
7173
|
+
] })
|
|
7093
7174
|
] })
|
|
7094
7175
|
) : (
|
|
7095
7176
|
/* ── Level 2: Properties ─────────────────────────────────── */
|
|
7096
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-col gap-xs", children: [
|
|
7177
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-col gap-xs flex-1 min-h-0", children: [
|
|
7097
7178
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
7098
7179
|
"button",
|
|
7099
7180
|
{
|
|
@@ -7102,27 +7183,27 @@ var PropertySelector = ({
|
|
|
7102
7183
|
setActiveGroup(null);
|
|
7103
7184
|
setSearch("");
|
|
7104
7185
|
},
|
|
7105
|
-
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-
|
|
7186
|
+
className: "shrink-0 flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
|
|
7106
7187
|
children: [
|
|
7107
7188
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7108
7189
|
import_icons29.Icon,
|
|
7109
7190
|
{
|
|
7110
7191
|
icon: import_icons29.faChevronLeftOutline,
|
|
7111
7192
|
size: "sm",
|
|
7112
|
-
className: "shrink-0 text-
|
|
7193
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7113
7194
|
}
|
|
7114
7195
|
),
|
|
7115
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-xs font-medium leading-xs text-
|
|
7196
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-xs font-medium leading-xs text-muted-foreground text-left truncate", children: activeGroupInfo?.groupLabel })
|
|
7116
7197
|
]
|
|
7117
7198
|
}
|
|
7118
7199
|
),
|
|
7119
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-base px-md py-base border border-
|
|
7200
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "shrink-0 flex items-center gap-base px-md py-base border border-input rounded-md", children: [
|
|
7120
7201
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7121
7202
|
import_icons29.Icon,
|
|
7122
7203
|
{
|
|
7123
7204
|
icon: import_icons29.faMagnifyingGlassOutline,
|
|
7124
7205
|
size: "sm",
|
|
7125
|
-
className: "shrink-0 text-
|
|
7206
|
+
className: "shrink-0 text-muted-foreground"
|
|
7126
7207
|
}
|
|
7127
7208
|
),
|
|
7128
7209
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
@@ -7133,11 +7214,11 @@ var PropertySelector = ({
|
|
|
7133
7214
|
onChange: (e) => setSearch(e.target.value),
|
|
7134
7215
|
placeholder: "Search...",
|
|
7135
7216
|
autoFocus: true,
|
|
7136
|
-
className: "flex-1 text-sm font-regular leading-sm text-
|
|
7217
|
+
className: "flex-1 text-sm font-regular leading-sm text-foreground bg-transparent outline-none placeholder:text-muted-foreground"
|
|
7137
7218
|
}
|
|
7138
7219
|
)
|
|
7139
7220
|
] }),
|
|
7140
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-col
|
|
7221
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-col flex-1 min-h-0 overflow-y-auto", children: [
|
|
7141
7222
|
filteredProperties.map((prop) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
7142
7223
|
"button",
|
|
7143
7224
|
{
|
|
@@ -7146,22 +7227,22 @@ var PropertySelector = ({
|
|
|
7146
7227
|
onSelect(prop);
|
|
7147
7228
|
onOpenChange?.(false);
|
|
7148
7229
|
},
|
|
7149
|
-
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-
|
|
7230
|
+
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
|
|
7150
7231
|
children: [
|
|
7151
7232
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7152
7233
|
import_icons29.Icon,
|
|
7153
7234
|
{
|
|
7154
7235
|
icon: prop.icon,
|
|
7155
7236
|
size: "sm",
|
|
7156
|
-
className: "shrink-0 text-
|
|
7237
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7157
7238
|
}
|
|
7158
7239
|
),
|
|
7159
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-sm font-regular leading-sm text-
|
|
7240
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "flex-1 text-sm font-regular leading-sm text-dropdown-item-text text-left truncate", children: prop.label })
|
|
7160
7241
|
]
|
|
7161
7242
|
},
|
|
7162
7243
|
prop.id
|
|
7163
7244
|
)),
|
|
7164
|
-
filteredProperties.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "p-base text-sm text-
|
|
7245
|
+
filteredProperties.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "p-base text-sm text-muted-foreground", children: "No results" })
|
|
7165
7246
|
] })
|
|
7166
7247
|
] })
|
|
7167
7248
|
),
|
|
@@ -7199,7 +7280,7 @@ var KebabMenu = ({
|
|
|
7199
7280
|
align: "end",
|
|
7200
7281
|
className: cn(
|
|
7201
7282
|
"z-50 flex flex-col p-xs overflow-clip",
|
|
7202
|
-
"bg-
|
|
7283
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
7203
7284
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
7204
7285
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
7205
7286
|
"data-[side=bottom]:slide-in-from-top-2",
|
|
@@ -7214,21 +7295,21 @@ var KebabMenu = ({
|
|
|
7214
7295
|
onConvertToAdvanced();
|
|
7215
7296
|
onOpenChange?.(false);
|
|
7216
7297
|
},
|
|
7217
|
-
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-
|
|
7298
|
+
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
|
|
7218
7299
|
children: [
|
|
7219
7300
|
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7220
7301
|
import_icons30.Icon,
|
|
7221
7302
|
{
|
|
7222
7303
|
icon: import_icons30.faArrowRightOutline,
|
|
7223
7304
|
size: "sm",
|
|
7224
|
-
className: "shrink-0 text-
|
|
7305
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7225
7306
|
}
|
|
7226
7307
|
),
|
|
7227
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-regular leading-sm text-
|
|
7308
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-regular leading-sm text-dropdown-item-text", children: hasAdvancedFilters ? "Add to advanced filters" : "Convert to advanced" })
|
|
7228
7309
|
]
|
|
7229
7310
|
}
|
|
7230
7311
|
),
|
|
7231
|
-
onConvertToAdvanced && onDelete && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "h-px mx-base my-xs bg-
|
|
7312
|
+
onConvertToAdvanced && onDelete && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "h-px mx-base my-xs bg-border" }),
|
|
7232
7313
|
onDelete && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
7233
7314
|
"button",
|
|
7234
7315
|
{
|
|
@@ -7237,17 +7318,17 @@ var KebabMenu = ({
|
|
|
7237
7318
|
onDelete();
|
|
7238
7319
|
onOpenChange?.(false);
|
|
7239
7320
|
},
|
|
7240
|
-
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-
|
|
7321
|
+
className: "flex items-center gap-base p-base rounded-base cursor-pointer transition-colors hover:bg-dropdown-item-hover",
|
|
7241
7322
|
children: [
|
|
7242
7323
|
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7243
7324
|
import_icons30.Icon,
|
|
7244
7325
|
{
|
|
7245
7326
|
icon: import_icons30.faTrashOutline,
|
|
7246
7327
|
size: "sm",
|
|
7247
|
-
className: "shrink-0 text-
|
|
7328
|
+
className: "shrink-0 text-destructive"
|
|
7248
7329
|
}
|
|
7249
7330
|
),
|
|
7250
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-regular leading-sm text-
|
|
7331
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-regular leading-sm text-destructive", children: "Delete filter" })
|
|
7251
7332
|
]
|
|
7252
7333
|
}
|
|
7253
7334
|
)
|
|
@@ -7315,29 +7396,29 @@ var FilterEditor = ({
|
|
|
7315
7396
|
align: "start",
|
|
7316
7397
|
className: cn(
|
|
7317
7398
|
"z-50 flex flex-col overflow-clip",
|
|
7318
|
-
"bg-
|
|
7399
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
7319
7400
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
7320
7401
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
7321
7402
|
"data-[side=bottom]:slide-in-from-top-2",
|
|
7322
7403
|
"min-w-[240px]"
|
|
7323
7404
|
),
|
|
7324
7405
|
children: [
|
|
7325
|
-
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-base px-base pt-base pb-xs border-b border-
|
|
7406
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-base px-base pt-base pb-xs border-b border-border", children: [
|
|
7326
7407
|
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7327
7408
|
import_icons31.Icon,
|
|
7328
7409
|
{
|
|
7329
7410
|
icon: propertyDef.icon,
|
|
7330
7411
|
size: "sm",
|
|
7331
|
-
className: "shrink-0 text-
|
|
7412
|
+
className: "shrink-0 text-dropdown-item-icon"
|
|
7332
7413
|
}
|
|
7333
7414
|
),
|
|
7334
|
-
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-sm font-medium leading-sm text-
|
|
7415
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-sm font-medium leading-sm text-foreground", children: propertyDef.label }),
|
|
7335
7416
|
localOperator && view === "value" && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
7336
7417
|
"button",
|
|
7337
7418
|
{
|
|
7338
7419
|
type: "button",
|
|
7339
7420
|
onClick: () => setView("operator"),
|
|
7340
|
-
className: "ml-auto text-xs font-regular text-
|
|
7421
|
+
className: "ml-auto text-xs font-regular text-muted-foreground hover:text-foreground cursor-pointer transition-colors",
|
|
7341
7422
|
children: [
|
|
7342
7423
|
localOperator,
|
|
7343
7424
|
" \u25BE"
|
|
@@ -7391,7 +7472,7 @@ var SegmentPopover = ({
|
|
|
7391
7472
|
align,
|
|
7392
7473
|
className: cn(
|
|
7393
7474
|
"z-50 flex flex-col overflow-clip",
|
|
7394
|
-
"bg-
|
|
7475
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
7395
7476
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
7396
7477
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
7397
7478
|
"data-[side=bottom]:slide-in-from-top-2"
|
|
@@ -7598,10 +7679,10 @@ var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
|
7598
7679
|
var btnBase = [
|
|
7599
7680
|
"flex items-center justify-center",
|
|
7600
7681
|
"min-h-[32px] max-h-[32px]",
|
|
7601
|
-
"bg-gradient-to-t from-
|
|
7602
|
-
"border border-
|
|
7682
|
+
"bg-gradient-to-t from-btn-outlined-neutral-bg-default from-[10%] to-btn-outlined-neutral-bg-gradient-to-default",
|
|
7683
|
+
"border border-btn-outlined-neutral-border-default shadow-sm",
|
|
7603
7684
|
"cursor-pointer transition-colors",
|
|
7604
|
-
"hover:from-
|
|
7685
|
+
"hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover"
|
|
7605
7686
|
];
|
|
7606
7687
|
var AdvancedChip = React47.forwardRef(
|
|
7607
7688
|
({ className, count, onClear, onClick, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: cn("inline-flex items-center", className), children: [
|
|
@@ -7623,10 +7704,10 @@ var AdvancedChip = React47.forwardRef(
|
|
|
7623
7704
|
{
|
|
7624
7705
|
icon: import_icons32.faFilterOutline,
|
|
7625
7706
|
size: "sm",
|
|
7626
|
-
className: "shrink-0 text-
|
|
7707
|
+
className: "shrink-0 text-foreground"
|
|
7627
7708
|
}
|
|
7628
7709
|
),
|
|
7629
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-
|
|
7710
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-foreground", children: "Advanced filters" }),
|
|
7630
7711
|
count > 0 && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "flex items-center p-2xs rounded-xs bg-filter-chip-badge-bg", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-[10px] font-medium leading-2xs text-filter-chip-badge-text", children: count }) })
|
|
7631
7712
|
]
|
|
7632
7713
|
}
|
|
@@ -7645,7 +7726,7 @@ var AdvancedChip = React47.forwardRef(
|
|
|
7645
7726
|
"rounded-r-md -ml-px"
|
|
7646
7727
|
),
|
|
7647
7728
|
"aria-label": "Clear all advanced filters",
|
|
7648
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_icons32.Icon, { icon: import_icons32.faXmarkOutline, size: "sm", className: "text-
|
|
7729
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_icons32.Icon, { icon: import_icons32.faXmarkOutline, size: "sm", className: "text-foreground" })
|
|
7649
7730
|
}
|
|
7650
7731
|
)
|
|
7651
7732
|
] })
|
|
@@ -7660,7 +7741,7 @@ var import_icons36 = require("@l3mpire/icons");
|
|
|
7660
7741
|
// src/components/ui/filter/advanced-row.tsx
|
|
7661
7742
|
var React49 = __toESM(require("react"));
|
|
7662
7743
|
var PopoverPrimitive11 = __toESM(require("@radix-ui/react-popover"));
|
|
7663
|
-
var
|
|
7744
|
+
var TooltipPrimitive4 = __toESM(require("@radix-ui/react-tooltip"));
|
|
7664
7745
|
var import_icons34 = require("@l3mpire/icons");
|
|
7665
7746
|
|
|
7666
7747
|
// src/components/ui/filter/filter-node-actions.tsx
|
|
@@ -7698,14 +7779,14 @@ var FilterNodeActions = ({
|
|
|
7698
7779
|
"button",
|
|
7699
7780
|
{
|
|
7700
7781
|
type: "button",
|
|
7701
|
-
className: "shrink-0 flex items-center justify-center p-sm rounded-md cursor-pointer transition-colors hover:bg-
|
|
7782
|
+
className: "shrink-0 flex items-center justify-center p-sm rounded-md cursor-pointer transition-colors hover:bg-accent",
|
|
7702
7783
|
"aria-label": "More actions",
|
|
7703
7784
|
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7704
7785
|
import_icons33.Icon,
|
|
7705
7786
|
{
|
|
7706
7787
|
icon: import_icons33.faEllipsisOutline,
|
|
7707
7788
|
size: "sm",
|
|
7708
|
-
className: "text-
|
|
7789
|
+
className: "text-foreground"
|
|
7709
7790
|
}
|
|
7710
7791
|
)
|
|
7711
7792
|
}
|
|
@@ -7717,7 +7798,7 @@ var FilterNodeActions = ({
|
|
|
7717
7798
|
align: "end",
|
|
7718
7799
|
className: cn(
|
|
7719
7800
|
"z-50 flex flex-col p-xs overflow-clip",
|
|
7720
|
-
"bg-
|
|
7801
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
7721
7802
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
7722
7803
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
7723
7804
|
"min-w-[180px]"
|
|
@@ -7732,8 +7813,8 @@ var FilterNodeActions = ({
|
|
|
7732
7813
|
},
|
|
7733
7814
|
className: cn(
|
|
7734
7815
|
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
|
|
7735
|
-
"hover:bg-
|
|
7736
|
-
item.destructive && "text-
|
|
7816
|
+
"hover:bg-dropdown-item-hover",
|
|
7817
|
+
item.destructive && "text-destructive"
|
|
7737
7818
|
),
|
|
7738
7819
|
children: [
|
|
7739
7820
|
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
@@ -7743,7 +7824,7 @@ var FilterNodeActions = ({
|
|
|
7743
7824
|
size: "sm",
|
|
7744
7825
|
className: cn(
|
|
7745
7826
|
"shrink-0",
|
|
7746
|
-
item.destructive ? "text-
|
|
7827
|
+
item.destructive ? "text-destructive" : "text-dropdown-item-icon"
|
|
7747
7828
|
)
|
|
7748
7829
|
}
|
|
7749
7830
|
),
|
|
@@ -7752,7 +7833,7 @@ var FilterNodeActions = ({
|
|
|
7752
7833
|
{
|
|
7753
7834
|
className: cn(
|
|
7754
7835
|
"text-sm font-regular leading-sm",
|
|
7755
|
-
item.destructive ? "text-
|
|
7836
|
+
item.destructive ? "text-destructive" : "text-dropdown-item-text"
|
|
7756
7837
|
),
|
|
7757
7838
|
children: item.label
|
|
7758
7839
|
}
|
|
@@ -7772,10 +7853,10 @@ var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
|
7772
7853
|
var selectBtnStyle = [
|
|
7773
7854
|
"flex items-center gap-base",
|
|
7774
7855
|
"px-base py-sm",
|
|
7775
|
-
"bg-gradient-to-t from-
|
|
7776
|
-
"border border-
|
|
7856
|
+
"bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
|
|
7857
|
+
"border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
|
|
7777
7858
|
"cursor-pointer transition-colors",
|
|
7778
|
-
"hover:from-
|
|
7859
|
+
"hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover"
|
|
7779
7860
|
];
|
|
7780
7861
|
var AdvancedRow = ({
|
|
7781
7862
|
connector,
|
|
@@ -7792,6 +7873,19 @@ var AdvancedRow = ({
|
|
|
7792
7873
|
const [operatorOpen, setOperatorOpen] = React49.useState(false);
|
|
7793
7874
|
const [propertyOpen, setPropertyOpen] = React49.useState(false);
|
|
7794
7875
|
const [valueOpen, setValueOpen] = React49.useState(false);
|
|
7876
|
+
const { pinnedProperties, unpinnedProperties } = React49.useMemo(() => {
|
|
7877
|
+
const pinnedGroups = /* @__PURE__ */ new Set();
|
|
7878
|
+
for (const p of properties) {
|
|
7879
|
+
if (p.groupPinned) pinnedGroups.add(p.group);
|
|
7880
|
+
}
|
|
7881
|
+
const pinned = [];
|
|
7882
|
+
const unpinned = [];
|
|
7883
|
+
for (const p of properties) {
|
|
7884
|
+
if (pinnedGroups.has(p.group)) pinned.push(p);
|
|
7885
|
+
else unpinned.push(p);
|
|
7886
|
+
}
|
|
7887
|
+
return { pinnedProperties: pinned, unpinnedProperties: unpinned };
|
|
7888
|
+
}, [properties]);
|
|
7795
7889
|
const handleOperatorSelect = (op) => {
|
|
7796
7890
|
if (isNoValueOperator(op)) {
|
|
7797
7891
|
onUpdate({ ...condition, operator: op, value: null });
|
|
@@ -7808,65 +7902,88 @@ var AdvancedRow = ({
|
|
|
7808
7902
|
const badgeCount = getBadgeCount(condition.value);
|
|
7809
7903
|
const hasValue = displayValue != null;
|
|
7810
7904
|
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-base w-full min-w-0", children: [
|
|
7811
|
-
connector === "Where" ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xs font-medium leading-xs text-
|
|
7812
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
7813
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
7814
|
-
|
|
7905
|
+
connector === "Where" ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: "Where" }) }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TooltipPrimitive4.Provider, { delayDuration: 200, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(TooltipPrimitive4.Root, { children: [
|
|
7906
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TooltipPrimitive4.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-xs font-medium leading-xs text-muted-foreground cursor-default", children: connector }) }),
|
|
7907
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TooltipPrimitive4.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
7908
|
+
TooltipPrimitive4.Content,
|
|
7815
7909
|
{
|
|
7816
7910
|
sideOffset: 4,
|
|
7817
7911
|
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]",
|
|
7818
7912
|
children: [
|
|
7819
7913
|
'"Or" operator coming soon',
|
|
7820
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
7914
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TooltipPrimitive4.Arrow, { className: "fill-tooltip-default-bg" })
|
|
7821
7915
|
]
|
|
7822
7916
|
}
|
|
7823
7917
|
) })
|
|
7824
7918
|
] }) }) }),
|
|
7825
7919
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(PopoverPrimitive11.Root, { open: propertyOpen, onOpenChange: setPropertyOpen, children: [
|
|
7826
7920
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverPrimitive11.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("button", { type: "button", className: cn(selectBtnStyle, "min-w-0"), children: [
|
|
7827
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons34.Icon, { icon: propertyDef.icon, size: "sm", className: "shrink-0 text-
|
|
7828
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm font-regular leading-sm text-
|
|
7829
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons34.Icon, { icon: import_icons34.faChevronDownOutline, size: "xs", className: "shrink-0 text-
|
|
7921
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons34.Icon, { icon: propertyDef.icon, size: "sm", className: "shrink-0 text-muted-foreground" }),
|
|
7922
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm font-regular leading-sm text-foreground whitespace-nowrap truncate", children: propertyDef.label }),
|
|
7923
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons34.Icon, { icon: import_icons34.faChevronDownOutline, size: "xs", className: "shrink-0 text-foreground" })
|
|
7830
7924
|
] }) }),
|
|
7831
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverPrimitive11.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime56.
|
|
7925
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverPrimitive11.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
7832
7926
|
PopoverPrimitive11.Content,
|
|
7833
7927
|
{
|
|
7834
7928
|
sideOffset: 4,
|
|
7835
7929
|
align: "start",
|
|
7836
7930
|
className: cn(
|
|
7837
7931
|
"z-50 flex flex-col p-xs overflow-clip max-h-[300px] overflow-y-auto",
|
|
7838
|
-
"bg-
|
|
7932
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
7839
7933
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
7840
7934
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
|
|
7841
7935
|
"min-w-[200px]"
|
|
7842
7936
|
),
|
|
7843
|
-
children:
|
|
7844
|
-
|
|
7845
|
-
|
|
7846
|
-
|
|
7847
|
-
|
|
7848
|
-
|
|
7849
|
-
|
|
7937
|
+
children: [
|
|
7938
|
+
pinnedProperties.map((p) => /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
7939
|
+
"button",
|
|
7940
|
+
{
|
|
7941
|
+
type: "button",
|
|
7942
|
+
onClick: () => {
|
|
7943
|
+
onPropertyChange(p);
|
|
7944
|
+
setPropertyOpen(false);
|
|
7945
|
+
},
|
|
7946
|
+
className: cn(
|
|
7947
|
+
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
|
|
7948
|
+
"hover:bg-dropdown-item-hover",
|
|
7949
|
+
p.id === condition.propertyId && "bg-dropdown-item-hover"
|
|
7950
|
+
),
|
|
7951
|
+
children: [
|
|
7952
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons34.Icon, { icon: p.icon, size: "sm", className: "shrink-0 text-dropdown-item-icon" }),
|
|
7953
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm font-regular leading-sm text-dropdown-item-text truncate", children: p.label })
|
|
7954
|
+
]
|
|
7850
7955
|
},
|
|
7851
|
-
|
|
7852
|
-
|
|
7853
|
-
|
|
7854
|
-
|
|
7855
|
-
|
|
7856
|
-
|
|
7857
|
-
|
|
7858
|
-
|
|
7859
|
-
|
|
7860
|
-
|
|
7861
|
-
|
|
7862
|
-
|
|
7956
|
+
p.id
|
|
7957
|
+
)),
|
|
7958
|
+
unpinnedProperties.map((p) => /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
7959
|
+
"button",
|
|
7960
|
+
{
|
|
7961
|
+
type: "button",
|
|
7962
|
+
onClick: () => {
|
|
7963
|
+
onPropertyChange(p);
|
|
7964
|
+
setPropertyOpen(false);
|
|
7965
|
+
},
|
|
7966
|
+
className: cn(
|
|
7967
|
+
"flex items-center gap-base p-base rounded-base cursor-pointer transition-colors text-left",
|
|
7968
|
+
"hover:bg-dropdown-item-hover",
|
|
7969
|
+
p.id === condition.propertyId && "bg-dropdown-item-hover"
|
|
7970
|
+
),
|
|
7971
|
+
children: [
|
|
7972
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons34.Icon, { icon: p.icon, size: "sm", className: "shrink-0 text-dropdown-item-icon" }),
|
|
7973
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm font-regular leading-sm text-dropdown-item-text truncate", children: p.label }),
|
|
7974
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "ml-auto text-xs font-regular leading-xs text-muted-foreground", children: p.groupLabel })
|
|
7975
|
+
]
|
|
7976
|
+
},
|
|
7977
|
+
p.id
|
|
7978
|
+
))
|
|
7979
|
+
]
|
|
7863
7980
|
}
|
|
7864
7981
|
) })
|
|
7865
7982
|
] }),
|
|
7866
7983
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(PopoverPrimitive11.Root, { open: operatorOpen, onOpenChange: setOperatorOpen, children: [
|
|
7867
7984
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverPrimitive11.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("button", { type: "button", className: cn(selectBtnStyle, "min-w-0"), children: [
|
|
7868
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm font-regular leading-sm text-
|
|
7869
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons34.Icon, { icon: import_icons34.faChevronDownOutline, size: "xs", className: "shrink-0 text-
|
|
7985
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-sm font-regular leading-sm text-foreground whitespace-nowrap truncate text-left", children: condition.operator ?? "Select" }),
|
|
7986
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons34.Icon, { icon: import_icons34.faChevronDownOutline, size: "xs", className: "shrink-0 text-foreground" })
|
|
7870
7987
|
] }) }),
|
|
7871
7988
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverPrimitive11.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
7872
7989
|
PopoverPrimitive11.Content,
|
|
@@ -7875,7 +7992,7 @@ var AdvancedRow = ({
|
|
|
7875
7992
|
align: "start",
|
|
7876
7993
|
className: cn(
|
|
7877
7994
|
"z-50 flex flex-col p-xs overflow-clip",
|
|
7878
|
-
"bg-
|
|
7995
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
7879
7996
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
7880
7997
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
|
|
7881
7998
|
"min-w-[160px]"
|
|
@@ -7906,10 +8023,10 @@ var AdvancedRow = ({
|
|
|
7906
8023
|
placeholder: "Enter value...",
|
|
7907
8024
|
className: cn(
|
|
7908
8025
|
"flex-1 min-w-[80px] px-base py-sm",
|
|
7909
|
-
"bg-
|
|
7910
|
-
"text-sm font-regular leading-sm text-
|
|
7911
|
-
"placeholder:text-
|
|
7912
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
8026
|
+
"bg-background border border-input rounded-base",
|
|
8027
|
+
"text-sm font-regular leading-sm text-foreground",
|
|
8028
|
+
"placeholder:text-muted-foreground",
|
|
8029
|
+
"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-0"
|
|
7913
8030
|
)
|
|
7914
8031
|
}
|
|
7915
8032
|
);
|
|
@@ -7932,7 +8049,7 @@ var AdvancedRow = ({
|
|
|
7932
8049
|
{
|
|
7933
8050
|
className: cn(
|
|
7934
8051
|
"text-sm font-regular leading-sm whitespace-nowrap truncate text-left",
|
|
7935
|
-
hasValue ? "text-
|
|
8052
|
+
hasValue ? "text-foreground" : "text-muted-foreground"
|
|
7936
8053
|
),
|
|
7937
8054
|
title: hasValue ? displayValue : void 0,
|
|
7938
8055
|
children: hasValue ? displayValue : "Select a value"
|
|
@@ -7943,7 +8060,7 @@ var AdvancedRow = ({
|
|
|
7943
8060
|
{
|
|
7944
8061
|
icon: import_icons34.faChevronDownOutline,
|
|
7945
8062
|
size: "xs",
|
|
7946
|
-
className: "shrink-0 text-
|
|
8063
|
+
className: "shrink-0 text-foreground"
|
|
7947
8064
|
}
|
|
7948
8065
|
)
|
|
7949
8066
|
]
|
|
@@ -7956,7 +8073,7 @@ var AdvancedRow = ({
|
|
|
7956
8073
|
align: "start",
|
|
7957
8074
|
className: cn(
|
|
7958
8075
|
"z-50 flex flex-col overflow-clip",
|
|
7959
|
-
"bg-
|
|
8076
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
7960
8077
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
7961
8078
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
|
|
7962
8079
|
),
|
|
@@ -8046,19 +8163,19 @@ function ValueTagRow({ tags }) {
|
|
|
8046
8163
|
),
|
|
8047
8164
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { ref: containerRef, className: "flex flex-1 items-center gap-xs overflow-hidden", children: [
|
|
8048
8165
|
tags.slice(0, visibleCount).map((t) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: tagChip, children: t }, t)),
|
|
8049
|
-
overflowCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
8050
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
8166
|
+
overflowCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TooltipPrimitive4.Provider, { delayDuration: 200, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(TooltipPrimitive4.Root, { children: [
|
|
8167
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TooltipPrimitive4.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { className: cn(tagChip, "cursor-default bg-filter-chip-badge-bg text-filter-chip-badge-text"), children: [
|
|
8051
8168
|
"+",
|
|
8052
8169
|
overflowCount
|
|
8053
8170
|
] }) }),
|
|
8054
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
8055
|
-
|
|
8171
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TooltipPrimitive4.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
8172
|
+
TooltipPrimitive4.Content,
|
|
8056
8173
|
{
|
|
8057
8174
|
sideOffset: 4,
|
|
8058
8175
|
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]",
|
|
8059
8176
|
children: [
|
|
8060
8177
|
overflowTags.map((t) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: t }, t)),
|
|
8061
|
-
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
8178
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TooltipPrimitive4.Arrow, { className: "fill-tooltip-default-bg" })
|
|
8062
8179
|
]
|
|
8063
8180
|
}
|
|
8064
8181
|
) })
|
|
@@ -8069,7 +8186,7 @@ function ValueTagRow({ tags }) {
|
|
|
8069
8186
|
|
|
8070
8187
|
// src/components/ui/filter/advanced-group.tsx
|
|
8071
8188
|
var React50 = __toESM(require("react"));
|
|
8072
|
-
var
|
|
8189
|
+
var TooltipPrimitive5 = __toESM(require("@radix-ui/react-tooltip"));
|
|
8073
8190
|
var import_icons35 = require("@l3mpire/icons");
|
|
8074
8191
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
8075
8192
|
var AdvancedGroup = ({
|
|
@@ -8084,21 +8201,21 @@ var AdvancedGroup = ({
|
|
|
8084
8201
|
}) => {
|
|
8085
8202
|
const [addOpen, setAddOpen] = React50.useState(false);
|
|
8086
8203
|
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-start gap-base w-full min-w-0", children: [
|
|
8087
|
-
connector === "Where" ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end pt-base", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs font-medium leading-xs text-
|
|
8088
|
-
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8089
|
-
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8090
|
-
|
|
8204
|
+
connector === "Where" ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end pt-base", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: "Where" }) }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end pt-base", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipPrimitive5.Provider, { delayDuration: 200, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(TooltipPrimitive5.Root, { children: [
|
|
8205
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipPrimitive5.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-xs font-medium leading-xs text-muted-foreground cursor-default", children: connector }) }),
|
|
8206
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipPrimitive5.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
8207
|
+
TooltipPrimitive5.Content,
|
|
8091
8208
|
{
|
|
8092
8209
|
sideOffset: 4,
|
|
8093
8210
|
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]",
|
|
8094
8211
|
children: [
|
|
8095
8212
|
'"Or" operator coming soon',
|
|
8096
|
-
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8213
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipPrimitive5.Arrow, { className: "fill-tooltip-default-bg" })
|
|
8097
8214
|
]
|
|
8098
8215
|
}
|
|
8099
8216
|
) })
|
|
8100
8217
|
] }) }) }),
|
|
8101
|
-
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex-1 min-w-0 flex flex-col gap-base p-base border border-
|
|
8218
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex-1 min-w-0 flex flex-col gap-base p-base border border-border rounded-md bg-secondary", children: [
|
|
8102
8219
|
children,
|
|
8103
8220
|
onAddFilter && properties && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8104
8221
|
PropertySelector,
|
|
@@ -8114,7 +8231,7 @@ var AdvancedGroup = ({
|
|
|
8114
8231
|
"button",
|
|
8115
8232
|
{
|
|
8116
8233
|
type: "button",
|
|
8117
|
-
className: "flex items-center gap-sm px-base py-sm text-sm font-medium leading-sm text-
|
|
8234
|
+
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",
|
|
8118
8235
|
children: [
|
|
8119
8236
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_icons35.Icon, { icon: import_icons35.faPlusOutline, size: "sm" }),
|
|
8120
8237
|
"Add filter"
|
|
@@ -8146,7 +8263,7 @@ var ghostBtn = [
|
|
|
8146
8263
|
"flex items-center gap-sm px-base py-sm",
|
|
8147
8264
|
"min-h-[32px]",
|
|
8148
8265
|
"cursor-pointer transition-colors text-sm font-medium leading-sm",
|
|
8149
|
-
"rounded-md hover:bg-
|
|
8266
|
+
"rounded-md hover:bg-accent"
|
|
8150
8267
|
];
|
|
8151
8268
|
var AdvancedPopover = ({
|
|
8152
8269
|
filters,
|
|
@@ -8307,7 +8424,7 @@ var AdvancedPopover = ({
|
|
|
8307
8424
|
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
8308
8425
|
className: cn(
|
|
8309
8426
|
"z-50 flex flex-col",
|
|
8310
|
-
"bg-
|
|
8427
|
+
"bg-background rounded-md shadow-lg",
|
|
8311
8428
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
8312
8429
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
8313
8430
|
"data-[side=bottom]:slide-in-from-top-2",
|
|
@@ -8323,7 +8440,7 @@ var AdvancedPopover = ({
|
|
|
8323
8440
|
onOpenChange: setDraftPickerOpen
|
|
8324
8441
|
}
|
|
8325
8442
|
) }),
|
|
8326
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center justify-between p-base border-t border-
|
|
8443
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center justify-between p-base border-t border-border", children: [
|
|
8327
8444
|
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-sm", children: [
|
|
8328
8445
|
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8329
8446
|
PropertySelector,
|
|
@@ -8332,8 +8449,8 @@ var AdvancedPopover = ({
|
|
|
8332
8449
|
onSelect: handleAddFilter,
|
|
8333
8450
|
open: addSelectorOpen,
|
|
8334
8451
|
onOpenChange: setAddSelectorOpen,
|
|
8335
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("button", { type: "button", className: cn(ghostBtn, "text-
|
|
8336
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_icons36.Icon, { icon: import_icons36.faPlusOutline, size: "sm", className: "text-
|
|
8452
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("button", { type: "button", className: cn(ghostBtn, "text-foreground"), children: [
|
|
8453
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_icons36.Icon, { icon: import_icons36.faPlusOutline, size: "sm", className: "text-foreground" }),
|
|
8337
8454
|
"Add filter"
|
|
8338
8455
|
] })
|
|
8339
8456
|
}
|
|
@@ -8343,9 +8460,9 @@ var AdvancedPopover = ({
|
|
|
8343
8460
|
{
|
|
8344
8461
|
type: "button",
|
|
8345
8462
|
onClick: handleAddGroup,
|
|
8346
|
-
className: cn(ghostBtn, "text-
|
|
8463
|
+
className: cn(ghostBtn, "text-foreground"),
|
|
8347
8464
|
children: [
|
|
8348
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_icons36.Icon, { icon: import_icons36.faPlusOutline, size: "sm", className: "text-
|
|
8465
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_icons36.Icon, { icon: import_icons36.faPlusOutline, size: "sm", className: "text-foreground" }),
|
|
8349
8466
|
"Add filters group"
|
|
8350
8467
|
]
|
|
8351
8468
|
}
|
|
@@ -8356,9 +8473,9 @@ var AdvancedPopover = ({
|
|
|
8356
8473
|
{
|
|
8357
8474
|
type: "button",
|
|
8358
8475
|
onClick: handleClearAll,
|
|
8359
|
-
className: cn(ghostBtn, "text-
|
|
8476
|
+
className: cn(ghostBtn, "text-destructive"),
|
|
8360
8477
|
children: [
|
|
8361
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_icons36.Icon, { icon: import_icons36.faXmarkOutline, size: "sm", className: "text-
|
|
8478
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_icons36.Icon, { icon: import_icons36.faXmarkOutline, size: "sm", className: "text-destructive" }),
|
|
8362
8479
|
"Clear filters"
|
|
8363
8480
|
]
|
|
8364
8481
|
}
|
|
@@ -8384,7 +8501,7 @@ var DraftRow = ({
|
|
|
8384
8501
|
onOpenChange?.(v);
|
|
8385
8502
|
};
|
|
8386
8503
|
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-base w-full min-w-0", children: [
|
|
8387
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xs font-medium leading-xs text-
|
|
8504
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: "Where" }) }),
|
|
8388
8505
|
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8389
8506
|
PropertySelector,
|
|
8390
8507
|
{
|
|
@@ -8401,19 +8518,19 @@ var DraftRow = ({
|
|
|
8401
8518
|
type: "button",
|
|
8402
8519
|
className: cn(
|
|
8403
8520
|
"flex items-center gap-base px-base py-sm min-w-0",
|
|
8404
|
-
"bg-gradient-to-t from-
|
|
8405
|
-
"border border-
|
|
8521
|
+
"bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
|
|
8522
|
+
"border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
|
|
8406
8523
|
"cursor-pointer transition-colors",
|
|
8407
|
-
"hover:from-
|
|
8524
|
+
"hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover"
|
|
8408
8525
|
),
|
|
8409
8526
|
children: [
|
|
8410
|
-
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-sm font-regular leading-sm text-
|
|
8527
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-sm font-regular leading-sm text-muted-foreground whitespace-nowrap", children: "Select property" }),
|
|
8411
8528
|
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8412
8529
|
import_icons36.Icon,
|
|
8413
8530
|
{
|
|
8414
8531
|
icon: import_icons36.faChevronDownOutline,
|
|
8415
8532
|
size: "xs",
|
|
8416
|
-
className: "shrink-0 text-
|
|
8533
|
+
className: "shrink-0 text-foreground"
|
|
8417
8534
|
}
|
|
8418
8535
|
)
|
|
8419
8536
|
]
|
|
@@ -8427,14 +8544,14 @@ var DraftRow = ({
|
|
|
8427
8544
|
// src/components/ui/filter/summary-chip.tsx
|
|
8428
8545
|
var React52 = __toESM(require("react"));
|
|
8429
8546
|
var PopoverPrimitive13 = __toESM(require("@radix-ui/react-popover"));
|
|
8430
|
-
var
|
|
8547
|
+
var TooltipPrimitive6 = __toESM(require("@radix-ui/react-tooltip"));
|
|
8431
8548
|
var import_icons37 = require("@l3mpire/icons");
|
|
8432
8549
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
8433
8550
|
var ghostBtn2 = [
|
|
8434
8551
|
"flex items-center gap-sm px-base py-sm",
|
|
8435
8552
|
"min-h-[32px]",
|
|
8436
8553
|
"cursor-pointer transition-colors text-sm font-medium leading-sm",
|
|
8437
|
-
"rounded-md hover:bg-
|
|
8554
|
+
"rounded-md hover:bg-accent"
|
|
8438
8555
|
];
|
|
8439
8556
|
var SummaryChip = ({
|
|
8440
8557
|
count,
|
|
@@ -8595,30 +8712,30 @@ var SummaryChip = ({
|
|
|
8595
8712
|
className: cn(
|
|
8596
8713
|
"inline-flex items-center gap-sm px-base py-sm",
|
|
8597
8714
|
"min-h-[32px] max-h-[32px]",
|
|
8598
|
-
"bg-gradient-to-t from-
|
|
8599
|
-
"border border-
|
|
8715
|
+
"bg-gradient-to-t from-btn-outlined-neutral-bg-default from-[10%] to-btn-outlined-neutral-bg-gradient-to-default",
|
|
8716
|
+
"border border-btn-outlined-neutral-border-default rounded-md shadow-sm",
|
|
8600
8717
|
"cursor-pointer transition-colors",
|
|
8601
|
-
"hover:from-
|
|
8718
|
+
"hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover",
|
|
8602
8719
|
className
|
|
8603
8720
|
),
|
|
8604
8721
|
children: [
|
|
8605
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faFilterOutline, size: "sm", className: "shrink-0 text-
|
|
8606
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-
|
|
8722
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faFilterOutline, size: "sm", className: "shrink-0 text-foreground" }),
|
|
8723
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-foreground", children: "Filters" }),
|
|
8607
8724
|
count > 0 && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "flex items-center p-2xs rounded-xs bg-filter-chip-badge-bg", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-[10px] font-medium leading-2xs text-filter-chip-badge-text", children: count }) })
|
|
8608
8725
|
]
|
|
8609
8726
|
}
|
|
8610
8727
|
);
|
|
8611
8728
|
const hasTooltip = tooltipContent && !open;
|
|
8612
|
-
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
8613
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
8614
|
-
hasTooltip && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
8615
|
-
|
|
8729
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(TooltipPrimitive6.Provider, { delayDuration: 300, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(TooltipPrimitive6.Root, { open: hasTooltip ? void 0 : false, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(PopoverPrimitive13.Root, { open, onOpenChange: setOpen, children: [
|
|
8730
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(TooltipPrimitive6.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(PopoverPrimitive13.Trigger, { asChild: true, children: trigger }) }),
|
|
8731
|
+
hasTooltip && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(TooltipPrimitive6.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
|
|
8732
|
+
TooltipPrimitive6.Content,
|
|
8616
8733
|
{
|
|
8617
8734
|
sideOffset: 4,
|
|
8618
8735
|
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]",
|
|
8619
8736
|
children: [
|
|
8620
8737
|
tooltipContent,
|
|
8621
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
8738
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(TooltipPrimitive6.Arrow, { className: "fill-tooltip-default-bg" })
|
|
8622
8739
|
]
|
|
8623
8740
|
}
|
|
8624
8741
|
) }),
|
|
@@ -8632,7 +8749,7 @@ var SummaryChip = ({
|
|
|
8632
8749
|
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
8633
8750
|
className: cn(
|
|
8634
8751
|
"z-50 flex flex-col overflow-clip",
|
|
8635
|
-
"bg-
|
|
8752
|
+
"bg-dropdown-bg border border-dropdown-border rounded-md shadow-lg",
|
|
8636
8753
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
8637
8754
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
8638
8755
|
"data-[side=bottom]:slide-in-from-top-2",
|
|
@@ -8648,7 +8765,7 @@ var SummaryChip = ({
|
|
|
8648
8765
|
onOpenChange: setDraftPickerOpen
|
|
8649
8766
|
}
|
|
8650
8767
|
) }),
|
|
8651
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center justify-between p-base border-t border-
|
|
8768
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center justify-between p-base border-t border-border", children: [
|
|
8652
8769
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-sm", children: [
|
|
8653
8770
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
8654
8771
|
PropertySelector,
|
|
@@ -8657,14 +8774,14 @@ var SummaryChip = ({
|
|
|
8657
8774
|
onSelect: handleAddFilter,
|
|
8658
8775
|
open: addSelectorOpen,
|
|
8659
8776
|
onOpenChange: setAddSelectorOpen,
|
|
8660
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("button", { type: "button", className: cn(ghostBtn2, "text-
|
|
8661
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faPlusOutline, size: "sm", className: "text-
|
|
8777
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("button", { type: "button", className: cn(ghostBtn2, "text-foreground"), children: [
|
|
8778
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faPlusOutline, size: "sm", className: "text-foreground" }),
|
|
8662
8779
|
"Add filter"
|
|
8663
8780
|
] })
|
|
8664
8781
|
}
|
|
8665
8782
|
),
|
|
8666
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("button", { type: "button", onClick: handleAddGroup, className: cn(ghostBtn2, "text-
|
|
8667
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faPlusOutline, size: "sm", className: "text-
|
|
8783
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("button", { type: "button", onClick: handleAddGroup, className: cn(ghostBtn2, "text-foreground"), children: [
|
|
8784
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faPlusOutline, size: "sm", className: "text-foreground" }),
|
|
8668
8785
|
"Add filters group"
|
|
8669
8786
|
] })
|
|
8670
8787
|
] }),
|
|
@@ -8676,9 +8793,9 @@ var SummaryChip = ({
|
|
|
8676
8793
|
onClearAll();
|
|
8677
8794
|
setOpen(false);
|
|
8678
8795
|
},
|
|
8679
|
-
className: cn(ghostBtn2, "text-
|
|
8796
|
+
className: cn(ghostBtn2, "text-destructive"),
|
|
8680
8797
|
children: [
|
|
8681
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faXmarkOutline, size: "sm", className: "text-
|
|
8798
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faXmarkOutline, size: "sm", className: "text-destructive" }),
|
|
8682
8799
|
"Clear filters"
|
|
8683
8800
|
]
|
|
8684
8801
|
}
|
|
@@ -8699,7 +8816,7 @@ var DraftRow2 = ({ properties, onSelect, open: openProp, onOpenChange }) => {
|
|
|
8699
8816
|
onOpenChange?.(v);
|
|
8700
8817
|
};
|
|
8701
8818
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-base w-full min-w-0", children: [
|
|
8702
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-xs font-medium leading-xs text-
|
|
8819
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "shrink-0 w-[64px] flex items-center justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-xs font-medium leading-xs text-muted-foreground", children: "Where" }) }),
|
|
8703
8820
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(PropertySelector, { properties, onSelect: (p) => {
|
|
8704
8821
|
onSelect(p);
|
|
8705
8822
|
setOpen(false);
|
|
@@ -8709,13 +8826,13 @@ var DraftRow2 = ({ properties, onSelect, open: openProp, onOpenChange }) => {
|
|
|
8709
8826
|
type: "button",
|
|
8710
8827
|
className: cn(
|
|
8711
8828
|
"flex items-center gap-base px-base py-sm min-w-0",
|
|
8712
|
-
"bg-gradient-to-t from-
|
|
8713
|
-
"border border-
|
|
8714
|
-
"hover:from-
|
|
8829
|
+
"bg-gradient-to-t from-btn-outlined-neutral-bg-default to-btn-outlined-neutral-bg-gradient-to-default",
|
|
8830
|
+
"border border-btn-outlined-neutral-border-default rounded-md shadow-sm cursor-pointer transition-colors",
|
|
8831
|
+
"hover:from-btn-outlined-neutral-bg-hover hover:to-btn-outlined-neutral-bg-gradient-to-hover"
|
|
8715
8832
|
),
|
|
8716
8833
|
children: [
|
|
8717
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-sm font-regular leading-sm text-
|
|
8718
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faChevronDownOutline, size: "xs", className: "shrink-0 text-
|
|
8834
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-sm font-regular leading-sm text-muted-foreground whitespace-nowrap", children: "Select property" }),
|
|
8835
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_icons37.Icon, { icon: import_icons37.faChevronDownOutline, size: "xs", className: "shrink-0 text-foreground" })
|
|
8719
8836
|
]
|
|
8720
8837
|
}
|
|
8721
8838
|
) })
|
|
@@ -8942,8 +9059,8 @@ var FilterSystem = ({
|
|
|
8942
9059
|
"button",
|
|
8943
9060
|
{
|
|
8944
9061
|
type: "button",
|
|
8945
|
-
className: "shrink-0 inline-flex items-center justify-center size-8 rounded-md border border-
|
|
8946
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_icons38.Icon, { icon: import_icons38.faPlusOutline, size: "sm", className: "text-
|
|
9062
|
+
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",
|
|
9063
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_icons38.Icon, { icon: import_icons38.faPlusOutline, size: "sm", className: "text-foreground" })
|
|
8947
9064
|
}
|
|
8948
9065
|
) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(FilterBarButton, {})
|
|
8949
9066
|
}
|