@l3mpire/ui 2.7.1 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +25 -5
- package/dist/index.d.ts +25 -5
- package/dist/index.js +337 -133
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +334 -132
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -4857,7 +4857,7 @@ var FilterChip = React35.forwardRef(
|
|
|
4857
4857
|
ref,
|
|
4858
4858
|
className: cn(
|
|
4859
4859
|
"flex items-center overflow-clip",
|
|
4860
|
-
"bg-filter-chip-bg border border-filter-chip-border rounded-md",
|
|
4860
|
+
"bg-filter-chip-bg border border-filter-chip-border rounded-md shadow-sm",
|
|
4861
4861
|
className
|
|
4862
4862
|
),
|
|
4863
4863
|
...props,
|
|
@@ -5046,6 +5046,7 @@ var SortButton = ({
|
|
|
5046
5046
|
activeField,
|
|
5047
5047
|
direction,
|
|
5048
5048
|
onChange,
|
|
5049
|
+
iconOnly = false,
|
|
5049
5050
|
...props
|
|
5050
5051
|
}) => {
|
|
5051
5052
|
const [open, setOpen] = React37.useState(false);
|
|
@@ -5057,12 +5058,13 @@ var SortButton = ({
|
|
|
5057
5058
|
{
|
|
5058
5059
|
type: "button",
|
|
5059
5060
|
className: cn(
|
|
5060
|
-
"flex items-center gap-xs
|
|
5061
|
-
"min-h-[32px] max-h-[32px]
|
|
5061
|
+
"flex items-center gap-xs",
|
|
5062
|
+
"min-h-[32px] max-h-[32px]",
|
|
5062
5063
|
"bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)]",
|
|
5063
5064
|
"border border-[var(--color-btn-outlined-neutral-border-default)] rounded-md shadow-sm",
|
|
5064
5065
|
"cursor-pointer transition-colors",
|
|
5065
5066
|
"hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]",
|
|
5067
|
+
iconOnly ? "size-8 justify-center p-0" : "px-md py-sm min-w-[80px]",
|
|
5066
5068
|
className
|
|
5067
5069
|
),
|
|
5068
5070
|
children: [
|
|
@@ -5074,7 +5076,7 @@ var SortButton = ({
|
|
|
5074
5076
|
className: "shrink-0 text-[var(--color-foreground)]"
|
|
5075
5077
|
}
|
|
5076
5078
|
),
|
|
5077
|
-
/* @__PURE__ */ jsxs32("span", { className: "text-sm font-medium leading-sm whitespace-nowrap", children: [
|
|
5079
|
+
!iconOnly && /* @__PURE__ */ jsxs32("span", { className: "text-sm font-medium leading-sm whitespace-nowrap", children: [
|
|
5078
5080
|
/* @__PURE__ */ jsxs32("span", { className: "text-[var(--color-muted-foreground)]", children: [
|
|
5079
5081
|
"Sort by",
|
|
5080
5082
|
" "
|
|
@@ -5227,18 +5229,19 @@ SortButton.displayName = "SortButton";
|
|
|
5227
5229
|
import * as React38 from "react";
|
|
5228
5230
|
import { Icon as Icon24, faSlidersOutline } from "@l3mpire/icons";
|
|
5229
5231
|
import { jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
5230
|
-
var FilterBarButton = React38.forwardRef(({ className, count, children, ...props }, ref) => /* @__PURE__ */ jsxs33(
|
|
5232
|
+
var FilterBarButton = React38.forwardRef(({ className, count, iconOnly = false, children, ...props }, ref) => /* @__PURE__ */ jsxs33(
|
|
5231
5233
|
"button",
|
|
5232
5234
|
{
|
|
5233
5235
|
ref,
|
|
5234
5236
|
type: "button",
|
|
5235
5237
|
className: cn(
|
|
5236
|
-
"flex items-center gap-sm
|
|
5237
|
-
"min-h-[32px] max-h-[32px]
|
|
5238
|
+
"flex items-center gap-sm",
|
|
5239
|
+
"min-h-[32px] max-h-[32px]",
|
|
5238
5240
|
"bg-gradient-to-t from-[var(--color-btn-outlined-neutral-bg-default)] to-[var(--color-btn-outlined-neutral-bg-gradient-to-default)]",
|
|
5239
5241
|
"border border-[var(--color-btn-outlined-neutral-border-default)] rounded-md shadow-sm",
|
|
5240
5242
|
"cursor-pointer transition-colors",
|
|
5241
5243
|
"hover:from-[var(--color-btn-outlined-neutral-bg-hover)] hover:to-[var(--color-btn-outlined-neutral-bg-gradient-to-hover)]",
|
|
5244
|
+
iconOnly ? count ? "px-sm justify-center" : "size-8 justify-center p-0" : "px-base py-sm min-w-[80px]",
|
|
5242
5245
|
className
|
|
5243
5246
|
),
|
|
5244
5247
|
...props,
|
|
@@ -5251,7 +5254,7 @@ var FilterBarButton = React38.forwardRef(({ className, count, children, ...props
|
|
|
5251
5254
|
className: "shrink-0 text-[var(--color-foreground)]"
|
|
5252
5255
|
}
|
|
5253
5256
|
),
|
|
5254
|
-
/* @__PURE__ */ jsx38("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-[var(--color-foreground)]", children: children ?? "Filters" }),
|
|
5257
|
+
!iconOnly && /* @__PURE__ */ jsx38("span", { className: "text-sm font-medium leading-sm whitespace-nowrap text-[var(--color-foreground)]", children: children ?? "Filters" }),
|
|
5255
5258
|
count != null && count > 0 && /* @__PURE__ */ jsx38("span", { className: "flex items-center p-2xs rounded-xs bg-filter-chip-badge-bg", children: /* @__PURE__ */ jsx38("span", { className: "text-[10px] font-medium leading-2xs text-filter-chip-badge-text", children: count }) })
|
|
5256
5259
|
]
|
|
5257
5260
|
}
|
|
@@ -6192,7 +6195,7 @@ var InteractiveFilterChip = ({
|
|
|
6192
6195
|
{
|
|
6193
6196
|
className: cn(
|
|
6194
6197
|
"inline-flex items-center overflow-clip",
|
|
6195
|
-
"bg-filter-chip-bg border border-filter-chip-border rounded-md",
|
|
6198
|
+
"bg-filter-chip-bg border border-filter-chip-border rounded-md shadow-sm",
|
|
6196
6199
|
className
|
|
6197
6200
|
),
|
|
6198
6201
|
children: [
|
|
@@ -6314,7 +6317,7 @@ var InteractiveFilterChip = ({
|
|
|
6314
6317
|
InteractiveFilterChip.displayName = "InteractiveFilterChip";
|
|
6315
6318
|
|
|
6316
6319
|
// src/components/ui/filter/filter-system.tsx
|
|
6317
|
-
import * as
|
|
6320
|
+
import * as React48 from "react";
|
|
6318
6321
|
|
|
6319
6322
|
// src/components/ui/filter/advanced-chip.tsx
|
|
6320
6323
|
import * as React43 from "react";
|
|
@@ -6643,20 +6646,182 @@ var AdvancedPopover = ({
|
|
|
6643
6646
|
};
|
|
6644
6647
|
AdvancedPopover.displayName = "AdvancedPopover";
|
|
6645
6648
|
|
|
6646
|
-
// src/components/ui/filter/
|
|
6649
|
+
// src/components/ui/filter/summary-chip.tsx
|
|
6650
|
+
import * as React46 from "react";
|
|
6651
|
+
import * as PopoverPrimitive11 from "@radix-ui/react-popover";
|
|
6652
|
+
import { Icon as Icon31, faFilterOutline as faFilterOutline2, faPlusOutline as faPlusOutline2 } from "@l3mpire/icons";
|
|
6647
6653
|
import { jsx as jsx49, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
6654
|
+
var SummaryChip = ({
|
|
6655
|
+
count,
|
|
6656
|
+
filters,
|
|
6657
|
+
properties,
|
|
6658
|
+
onFiltersChange,
|
|
6659
|
+
onClearAll,
|
|
6660
|
+
className
|
|
6661
|
+
}) => {
|
|
6662
|
+
const [open, setOpen] = React46.useState(false);
|
|
6663
|
+
const [addSelectorOpen, setAddSelectorOpen] = React46.useState(false);
|
|
6664
|
+
const getPropertyDef = (propertyId) => properties.find((p) => p.id === propertyId);
|
|
6665
|
+
const handleUpdateFilter = (updated) => {
|
|
6666
|
+
onFiltersChange(filters.map((f) => f.id === updated.id ? updated : f));
|
|
6667
|
+
};
|
|
6668
|
+
const handleDeleteFilter = (id) => {
|
|
6669
|
+
const next = filters.filter((f) => f.id !== id);
|
|
6670
|
+
onFiltersChange(next);
|
|
6671
|
+
if (next.length === 0) setOpen(false);
|
|
6672
|
+
};
|
|
6673
|
+
const handlePropertyChange = (filterId, newProp) => {
|
|
6674
|
+
const newCondition = createFilterWithDefaults(newProp.id, newProp.type);
|
|
6675
|
+
onFiltersChange(
|
|
6676
|
+
filters.map((f) => f.id === filterId ? { ...newCondition, id: filterId } : f)
|
|
6677
|
+
);
|
|
6678
|
+
};
|
|
6679
|
+
const handleAddFilter = (property) => {
|
|
6680
|
+
const newFilter = createFilterWithDefaults(property.id, property.type);
|
|
6681
|
+
onFiltersChange([...filters, newFilter]);
|
|
6682
|
+
setAddSelectorOpen(false);
|
|
6683
|
+
};
|
|
6684
|
+
return /* @__PURE__ */ jsxs44(PopoverPrimitive11.Root, { open, onOpenChange: setOpen, children: [
|
|
6685
|
+
/* @__PURE__ */ jsx49(PopoverPrimitive11.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs44(
|
|
6686
|
+
"button",
|
|
6687
|
+
{
|
|
6688
|
+
type: "button",
|
|
6689
|
+
className: cn(
|
|
6690
|
+
"inline-flex items-center gap-sm px-base py-sm",
|
|
6691
|
+
"min-h-[32px] max-h-[32px]",
|
|
6692
|
+
count > 0 ? "bg-[var(--color-primary)]/5 border border-[var(--color-primary)]/30 text-[var(--color-primary)]" : "bg-filter-chip-bg border border-filter-chip-border text-[var(--color-foreground)]",
|
|
6693
|
+
"rounded-md text-sm font-medium leading-sm",
|
|
6694
|
+
"cursor-pointer transition-colors hover:opacity-80",
|
|
6695
|
+
className
|
|
6696
|
+
),
|
|
6697
|
+
children: [
|
|
6698
|
+
/* @__PURE__ */ jsx49(
|
|
6699
|
+
Icon31,
|
|
6700
|
+
{
|
|
6701
|
+
icon: faFilterOutline2,
|
|
6702
|
+
size: "sm",
|
|
6703
|
+
className: count > 0 ? "text-[var(--color-primary)]" : "text-[var(--color-muted-foreground)]"
|
|
6704
|
+
}
|
|
6705
|
+
),
|
|
6706
|
+
/* @__PURE__ */ jsxs44("span", { className: "whitespace-nowrap", children: [
|
|
6707
|
+
"Filters",
|
|
6708
|
+
count > 0 && ` (${count})`
|
|
6709
|
+
] })
|
|
6710
|
+
]
|
|
6711
|
+
}
|
|
6712
|
+
) }),
|
|
6713
|
+
/* @__PURE__ */ jsx49(PopoverPrimitive11.Portal, { children: /* @__PURE__ */ jsxs44(
|
|
6714
|
+
PopoverPrimitive11.Content,
|
|
6715
|
+
{
|
|
6716
|
+
sideOffset: 4,
|
|
6717
|
+
align: "start",
|
|
6718
|
+
className: cn(
|
|
6719
|
+
"z-50 flex flex-col overflow-clip",
|
|
6720
|
+
"bg-[var(--color-dropdown-bg)] border border-[var(--color-dropdown-border)] rounded-md shadow-lg",
|
|
6721
|
+
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
6722
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
6723
|
+
"data-[side=bottom]:slide-in-from-top-2",
|
|
6724
|
+
"min-w-[420px] max-w-[90vw]"
|
|
6725
|
+
),
|
|
6726
|
+
children: [
|
|
6727
|
+
/* @__PURE__ */ jsxs44("div", { className: "flex flex-col px-base pt-base", children: [
|
|
6728
|
+
filters.map((filter, i) => {
|
|
6729
|
+
const propDef = getPropertyDef(filter.propertyId);
|
|
6730
|
+
if (!propDef) return null;
|
|
6731
|
+
return /* @__PURE__ */ jsx49(
|
|
6732
|
+
AdvancedRow,
|
|
6733
|
+
{
|
|
6734
|
+
connector: i === 0 ? "Where" : "And",
|
|
6735
|
+
propertyDef: propDef,
|
|
6736
|
+
condition: filter,
|
|
6737
|
+
properties,
|
|
6738
|
+
onUpdate: handleUpdateFilter,
|
|
6739
|
+
onPropertyChange: (p) => handlePropertyChange(filter.id, p),
|
|
6740
|
+
onDelete: () => handleDeleteFilter(filter.id)
|
|
6741
|
+
},
|
|
6742
|
+
filter.id
|
|
6743
|
+
);
|
|
6744
|
+
}),
|
|
6745
|
+
filters.length === 0 && /* @__PURE__ */ jsx49("p", { className: "py-base text-sm text-[var(--color-muted-foreground)]", children: "No active filters." })
|
|
6746
|
+
] }),
|
|
6747
|
+
/* @__PURE__ */ jsxs44("div", { className: "flex items-center justify-between px-base py-base border-t border-[var(--color-border)]", children: [
|
|
6748
|
+
/* @__PURE__ */ jsx49(
|
|
6749
|
+
PropertySelector,
|
|
6750
|
+
{
|
|
6751
|
+
properties,
|
|
6752
|
+
onSelect: handleAddFilter,
|
|
6753
|
+
open: addSelectorOpen,
|
|
6754
|
+
onOpenChange: setAddSelectorOpen,
|
|
6755
|
+
children: /* @__PURE__ */ jsxs44(
|
|
6756
|
+
"button",
|
|
6757
|
+
{
|
|
6758
|
+
type: "button",
|
|
6759
|
+
className: "flex items-center gap-xs text-sm font-regular leading-sm text-[var(--color-muted-foreground)] hover:text-[var(--color-foreground)] cursor-pointer transition-colors",
|
|
6760
|
+
children: [
|
|
6761
|
+
/* @__PURE__ */ jsx49(Icon31, { icon: faPlusOutline2, size: "xs" }),
|
|
6762
|
+
"Add filter"
|
|
6763
|
+
]
|
|
6764
|
+
}
|
|
6765
|
+
)
|
|
6766
|
+
}
|
|
6767
|
+
),
|
|
6768
|
+
filters.length > 0 && /* @__PURE__ */ jsx49(
|
|
6769
|
+
"button",
|
|
6770
|
+
{
|
|
6771
|
+
type: "button",
|
|
6772
|
+
onClick: () => {
|
|
6773
|
+
onClearAll();
|
|
6774
|
+
setOpen(false);
|
|
6775
|
+
},
|
|
6776
|
+
className: "text-sm font-regular leading-sm text-[var(--color-muted-foreground)] hover:text-[var(--color-foreground)] cursor-pointer transition-colors",
|
|
6777
|
+
children: "Clear all filters"
|
|
6778
|
+
}
|
|
6779
|
+
)
|
|
6780
|
+
] })
|
|
6781
|
+
]
|
|
6782
|
+
}
|
|
6783
|
+
) })
|
|
6784
|
+
] });
|
|
6785
|
+
};
|
|
6786
|
+
SummaryChip.displayName = "SummaryChip";
|
|
6787
|
+
|
|
6788
|
+
// src/components/ui/filter/use-filter-bar-mode.ts
|
|
6789
|
+
import * as React47 from "react";
|
|
6790
|
+
function useFilterBarMode(ref, override) {
|
|
6791
|
+
const [mode, setMode] = React47.useState("default");
|
|
6792
|
+
React47.useEffect(() => {
|
|
6793
|
+
if (override) return;
|
|
6794
|
+
const el = ref.current;
|
|
6795
|
+
if (!el) return;
|
|
6796
|
+
const observer = new ResizeObserver((entries) => {
|
|
6797
|
+
const width = entries[0]?.contentRect.width ?? 0;
|
|
6798
|
+
setMode(width > 600 ? "default" : "minimal");
|
|
6799
|
+
});
|
|
6800
|
+
observer.observe(el);
|
|
6801
|
+
return () => observer.disconnect();
|
|
6802
|
+
}, [ref, override]);
|
|
6803
|
+
return override ?? mode;
|
|
6804
|
+
}
|
|
6805
|
+
|
|
6806
|
+
// src/components/ui/filter/filter-system.tsx
|
|
6807
|
+
import { Fragment as Fragment5, jsx as jsx50, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
6648
6808
|
var FilterSystem = ({
|
|
6649
6809
|
properties,
|
|
6650
6810
|
filterState,
|
|
6651
6811
|
onFilterStateChange,
|
|
6652
6812
|
sortFields,
|
|
6813
|
+
mode: modeOverride,
|
|
6653
6814
|
children,
|
|
6654
6815
|
actions,
|
|
6655
6816
|
className
|
|
6656
6817
|
}) => {
|
|
6657
|
-
const
|
|
6658
|
-
const
|
|
6659
|
-
const [
|
|
6818
|
+
const containerRef = React48.useRef(null);
|
|
6819
|
+
const mode = useFilterBarMode(containerRef, modeOverride);
|
|
6820
|
+
const [propertySelectorOpen, setPropertySelectorOpen] = React48.useState(false);
|
|
6821
|
+
const [advancedOpen, setAdvancedOpen] = React48.useState(false);
|
|
6822
|
+
const [pendingFilterId, setPendingFilterId] = React48.useState(null);
|
|
6823
|
+
const allFilters = [...filterState.basicFilters, ...filterState.advancedFilters];
|
|
6824
|
+
const totalCount = allFilters.length;
|
|
6660
6825
|
const handleAddFilter = (property) => {
|
|
6661
6826
|
const newFilter = createFilterWithDefaults(property.id, property.type);
|
|
6662
6827
|
if (newFilter.operator && isNoValueOperator(newFilter.operator)) {
|
|
@@ -6711,106 +6876,141 @@ var FilterSystem = ({
|
|
|
6711
6876
|
});
|
|
6712
6877
|
};
|
|
6713
6878
|
const handleAdvancedFiltersChange = (filters) => {
|
|
6714
|
-
onFilterStateChange({
|
|
6715
|
-
...filterState,
|
|
6716
|
-
advancedFilters: filters
|
|
6717
|
-
});
|
|
6879
|
+
onFilterStateChange({ ...filterState, advancedFilters: filters });
|
|
6718
6880
|
};
|
|
6719
6881
|
const handleClearAdvanced = () => {
|
|
6882
|
+
onFilterStateChange({ ...filterState, advancedFilters: [] });
|
|
6883
|
+
};
|
|
6884
|
+
const handleClearAll = () => {
|
|
6720
6885
|
onFilterStateChange({
|
|
6721
6886
|
...filterState,
|
|
6887
|
+
basicFilters: [],
|
|
6722
6888
|
advancedFilters: []
|
|
6723
6889
|
});
|
|
6724
6890
|
};
|
|
6725
6891
|
const handleSortChange = (field, direction) => {
|
|
6726
|
-
onFilterStateChange({
|
|
6727
|
-
...filterState,
|
|
6728
|
-
sort: { field, direction }
|
|
6729
|
-
});
|
|
6892
|
+
onFilterStateChange({ ...filterState, sort: { field, direction } });
|
|
6730
6893
|
};
|
|
6731
6894
|
const getPropertyDef = (propertyId) => properties.find((p) => p.id === propertyId);
|
|
6732
6895
|
const hasAdvanced = filterState.advancedFilters.length > 0;
|
|
6733
|
-
|
|
6734
|
-
|
|
6896
|
+
const isMinimal = mode === "minimal";
|
|
6897
|
+
return /* @__PURE__ */ jsxs45(FilterBar, { ref: containerRef, className, children: [
|
|
6898
|
+
/* @__PURE__ */ jsxs45(FilterBarLeft, { children: [
|
|
6735
6899
|
children,
|
|
6736
|
-
sortFields && filterState.sort && /* @__PURE__ */
|
|
6900
|
+
sortFields && filterState.sort && /* @__PURE__ */ jsx50(
|
|
6737
6901
|
SortButton,
|
|
6738
6902
|
{
|
|
6739
6903
|
fields: sortFields,
|
|
6740
6904
|
activeField: filterState.sort.field,
|
|
6741
6905
|
direction: filterState.sort.direction,
|
|
6742
|
-
onChange: handleSortChange
|
|
6743
|
-
|
|
6744
|
-
),
|
|
6745
|
-
hasAdvanced && /* @__PURE__ */ jsx49(
|
|
6746
|
-
AdvancedPopover,
|
|
6747
|
-
{
|
|
6748
|
-
filters: filterState.advancedFilters,
|
|
6749
|
-
properties,
|
|
6750
|
-
onFiltersChange: handleAdvancedFiltersChange,
|
|
6751
|
-
open: advancedOpen,
|
|
6752
|
-
onOpenChange: setAdvancedOpen,
|
|
6753
|
-
children: /* @__PURE__ */ jsx49(
|
|
6754
|
-
AdvancedChip,
|
|
6755
|
-
{
|
|
6756
|
-
count: filterState.advancedFilters.length,
|
|
6757
|
-
onClick: () => setAdvancedOpen(true),
|
|
6758
|
-
onClear: handleClearAdvanced
|
|
6759
|
-
}
|
|
6760
|
-
)
|
|
6906
|
+
onChange: handleSortChange,
|
|
6907
|
+
iconOnly: isMinimal
|
|
6761
6908
|
}
|
|
6762
6909
|
),
|
|
6763
|
-
|
|
6764
|
-
|
|
6765
|
-
|
|
6766
|
-
|
|
6767
|
-
InteractiveFilterChip,
|
|
6910
|
+
isMinimal ? totalCount > 0 ? (
|
|
6911
|
+
/* Has filters → SummaryChip (interactive popover) */
|
|
6912
|
+
/* @__PURE__ */ jsx50(
|
|
6913
|
+
SummaryChip,
|
|
6768
6914
|
{
|
|
6769
|
-
|
|
6770
|
-
|
|
6915
|
+
count: totalCount,
|
|
6916
|
+
filters: allFilters,
|
|
6771
6917
|
properties,
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
|
|
6776
|
-
|
|
6777
|
-
|
|
6778
|
-
|
|
6779
|
-
|
|
6780
|
-
|
|
6781
|
-
|
|
6782
|
-
|
|
6783
|
-
|
|
6784
|
-
|
|
6785
|
-
|
|
6786
|
-
|
|
6787
|
-
|
|
6788
|
-
|
|
6789
|
-
|
|
6790
|
-
|
|
6918
|
+
onFiltersChange: (filters) => {
|
|
6919
|
+
onFilterStateChange({
|
|
6920
|
+
...filterState,
|
|
6921
|
+
basicFilters: filters,
|
|
6922
|
+
advancedFilters: []
|
|
6923
|
+
});
|
|
6924
|
+
},
|
|
6925
|
+
onClearAll: handleClearAll
|
|
6926
|
+
}
|
|
6927
|
+
)
|
|
6928
|
+
) : (
|
|
6929
|
+
/* No filters → same FilterBarButton as default, icon-only */
|
|
6930
|
+
/* @__PURE__ */ jsx50(
|
|
6931
|
+
PropertySelector,
|
|
6932
|
+
{
|
|
6933
|
+
properties,
|
|
6934
|
+
onSelect: handleAddFilter,
|
|
6935
|
+
open: propertySelectorOpen,
|
|
6936
|
+
onOpenChange: setPropertySelectorOpen,
|
|
6937
|
+
children: /* @__PURE__ */ jsx50(FilterBarButton, { iconOnly: true })
|
|
6938
|
+
}
|
|
6939
|
+
)
|
|
6940
|
+
) : (
|
|
6941
|
+
/* ── DEFAULT MODE ────────────────────────────────────── */
|
|
6942
|
+
/* @__PURE__ */ jsxs45(Fragment5, { children: [
|
|
6943
|
+
hasAdvanced && /* @__PURE__ */ jsx50(
|
|
6944
|
+
AdvancedPopover,
|
|
6791
6945
|
{
|
|
6792
|
-
|
|
6946
|
+
filters: filterState.advancedFilters,
|
|
6947
|
+
properties,
|
|
6948
|
+
onFiltersChange: handleAdvancedFiltersChange,
|
|
6949
|
+
open: advancedOpen,
|
|
6950
|
+
onOpenChange: setAdvancedOpen,
|
|
6951
|
+
children: /* @__PURE__ */ jsx50(
|
|
6952
|
+
AdvancedChip,
|
|
6953
|
+
{
|
|
6954
|
+
count: filterState.advancedFilters.length,
|
|
6955
|
+
onClick: () => setAdvancedOpen(true),
|
|
6956
|
+
onClear: handleClearAdvanced
|
|
6957
|
+
}
|
|
6958
|
+
)
|
|
6959
|
+
}
|
|
6960
|
+
),
|
|
6961
|
+
filterState.basicFilters.map((filter) => {
|
|
6962
|
+
const propDef = getPropertyDef(filter.propertyId);
|
|
6963
|
+
if (!propDef) return null;
|
|
6964
|
+
return /* @__PURE__ */ jsx50(
|
|
6965
|
+
InteractiveFilterChip,
|
|
6966
|
+
{
|
|
6967
|
+
propertyDef: propDef,
|
|
6968
|
+
condition: filter,
|
|
6969
|
+
properties,
|
|
6970
|
+
mode: pendingFilterId === filter.id ? "add" : "edit",
|
|
6971
|
+
autoOpen: pendingFilterId === filter.id,
|
|
6972
|
+
onUpdate: handleUpdateFilter,
|
|
6973
|
+
onPropertyChange: (newProp) => handlePropertyChange(filter.id, newProp),
|
|
6974
|
+
onDelete: () => handleDeleteFilter(filter.id),
|
|
6975
|
+
onConvertToAdvanced: () => handleConvertToAdvanced(filter.id)
|
|
6976
|
+
},
|
|
6977
|
+
filter.id
|
|
6978
|
+
);
|
|
6979
|
+
}),
|
|
6980
|
+
/* @__PURE__ */ jsx50(
|
|
6981
|
+
PropertySelector,
|
|
6982
|
+
{
|
|
6983
|
+
properties,
|
|
6984
|
+
onSelect: handleAddFilter,
|
|
6985
|
+
open: propertySelectorOpen,
|
|
6986
|
+
onOpenChange: setPropertySelectorOpen,
|
|
6987
|
+
children: /* @__PURE__ */ jsx50(
|
|
6988
|
+
FilterBarButton,
|
|
6989
|
+
{
|
|
6990
|
+
count: totalCount || void 0
|
|
6991
|
+
}
|
|
6992
|
+
)
|
|
6793
6993
|
}
|
|
6794
6994
|
)
|
|
6795
|
-
}
|
|
6995
|
+
] })
|
|
6796
6996
|
)
|
|
6797
6997
|
] }),
|
|
6798
|
-
actions && /* @__PURE__ */
|
|
6998
|
+
actions && /* @__PURE__ */ jsx50(FilterBarRight, { children: actions })
|
|
6799
6999
|
] });
|
|
6800
7000
|
};
|
|
6801
7001
|
FilterSystem.displayName = "FilterSystem";
|
|
6802
7002
|
|
|
6803
7003
|
// src/components/ui/date-picker.tsx
|
|
6804
|
-
import * as
|
|
6805
|
-
import * as
|
|
7004
|
+
import * as React49 from "react";
|
|
7005
|
+
import * as PopoverPrimitive12 from "@radix-ui/react-popover";
|
|
6806
7006
|
import {
|
|
6807
|
-
Icon as
|
|
7007
|
+
Icon as Icon32,
|
|
6808
7008
|
faChevronLeftOutline as faChevronLeftOutline3,
|
|
6809
7009
|
faChevronRightOutline as faChevronRightOutline3,
|
|
6810
7010
|
faArrowRightOutline as faArrowRightOutline2,
|
|
6811
7011
|
faCalendarOutline
|
|
6812
7012
|
} from "@l3mpire/icons";
|
|
6813
|
-
import { jsx as
|
|
7013
|
+
import { jsx as jsx51, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
6814
7014
|
function getDaysInMonth(year, month) {
|
|
6815
7015
|
return new Date(year, month + 1, 0).getDate();
|
|
6816
7016
|
}
|
|
@@ -6842,16 +7042,16 @@ var MONTH_NAMES = [
|
|
|
6842
7042
|
"November",
|
|
6843
7043
|
"December"
|
|
6844
7044
|
];
|
|
6845
|
-
var DatePickerContext =
|
|
7045
|
+
var DatePickerContext = React49.createContext(
|
|
6846
7046
|
null
|
|
6847
7047
|
);
|
|
6848
7048
|
function useDatePickerContext() {
|
|
6849
|
-
const ctx =
|
|
7049
|
+
const ctx = React49.useContext(DatePickerContext);
|
|
6850
7050
|
if (!ctx)
|
|
6851
7051
|
throw new Error("DatePicker compound components must be used within <DatePicker>");
|
|
6852
7052
|
return ctx;
|
|
6853
7053
|
}
|
|
6854
|
-
var DatePicker =
|
|
7054
|
+
var DatePicker = React49.forwardRef(
|
|
6855
7055
|
({
|
|
6856
7056
|
className,
|
|
6857
7057
|
mode = "single",
|
|
@@ -6862,22 +7062,22 @@ var DatePicker = React47.forwardRef(
|
|
|
6862
7062
|
children,
|
|
6863
7063
|
...props
|
|
6864
7064
|
}, ref) => {
|
|
6865
|
-
const today =
|
|
6866
|
-
const initialDate =
|
|
7065
|
+
const today = React49.useMemo(() => startOfDay(/* @__PURE__ */ new Date()), []);
|
|
7066
|
+
const initialDate = React49.useMemo(() => {
|
|
6867
7067
|
if (value) {
|
|
6868
7068
|
if (value instanceof Date) return value;
|
|
6869
7069
|
return value.from;
|
|
6870
7070
|
}
|
|
6871
7071
|
return today;
|
|
6872
7072
|
}, []);
|
|
6873
|
-
const [month, setMonth] =
|
|
7073
|
+
const [month, setMonth] = React49.useState(
|
|
6874
7074
|
defaultMonth ?? initialDate.getMonth()
|
|
6875
7075
|
);
|
|
6876
|
-
const [year, setYear] =
|
|
7076
|
+
const [year, setYear] = React49.useState(
|
|
6877
7077
|
defaultYear ?? initialDate.getFullYear()
|
|
6878
7078
|
);
|
|
6879
|
-
const [hoveredDate, setHoveredDate] =
|
|
6880
|
-
const goToPrevMonth =
|
|
7079
|
+
const [hoveredDate, setHoveredDate] = React49.useState();
|
|
7080
|
+
const goToPrevMonth = React49.useCallback(() => {
|
|
6881
7081
|
setMonth((m) => {
|
|
6882
7082
|
if (m === 0) {
|
|
6883
7083
|
setYear((y) => y - 1);
|
|
@@ -6886,7 +7086,7 @@ var DatePicker = React47.forwardRef(
|
|
|
6886
7086
|
return m - 1;
|
|
6887
7087
|
});
|
|
6888
7088
|
}, []);
|
|
6889
|
-
const goToNextMonth =
|
|
7089
|
+
const goToNextMonth = React49.useCallback(() => {
|
|
6890
7090
|
setMonth((m) => {
|
|
6891
7091
|
if (m === 11) {
|
|
6892
7092
|
setYear((y) => y + 1);
|
|
@@ -6895,7 +7095,7 @@ var DatePicker = React47.forwardRef(
|
|
|
6895
7095
|
return m + 1;
|
|
6896
7096
|
});
|
|
6897
7097
|
}, []);
|
|
6898
|
-
const onSelect =
|
|
7098
|
+
const onSelect = React49.useCallback(
|
|
6899
7099
|
(date) => {
|
|
6900
7100
|
if (mode === "single") {
|
|
6901
7101
|
onValueChange?.(date);
|
|
@@ -6914,7 +7114,7 @@ var DatePicker = React47.forwardRef(
|
|
|
6914
7114
|
},
|
|
6915
7115
|
[mode, value, onValueChange]
|
|
6916
7116
|
);
|
|
6917
|
-
const ctxValue =
|
|
7117
|
+
const ctxValue = React49.useMemo(
|
|
6918
7118
|
() => ({
|
|
6919
7119
|
mode,
|
|
6920
7120
|
selected: value,
|
|
@@ -6941,7 +7141,7 @@ var DatePicker = React47.forwardRef(
|
|
|
6941
7141
|
hoveredDate
|
|
6942
7142
|
]
|
|
6943
7143
|
);
|
|
6944
|
-
return /* @__PURE__ */
|
|
7144
|
+
return /* @__PURE__ */ jsx51(DatePickerContext.Provider, { value: ctxValue, children: /* @__PURE__ */ jsx51(
|
|
6945
7145
|
"div",
|
|
6946
7146
|
{
|
|
6947
7147
|
ref,
|
|
@@ -6964,32 +7164,32 @@ function defaultFormatDate(date) {
|
|
|
6964
7164
|
year: "numeric"
|
|
6965
7165
|
});
|
|
6966
7166
|
}
|
|
6967
|
-
var DatePickerSelects =
|
|
7167
|
+
var DatePickerSelects = React49.forwardRef(({ className, formatDate = defaultFormatDate, ...props }, ref) => {
|
|
6968
7168
|
const { selected } = useDatePickerContext();
|
|
6969
7169
|
const fromDate = selected instanceof Date ? selected : selected?.from;
|
|
6970
7170
|
const toDate = selected instanceof Date ? void 0 : selected?.to;
|
|
6971
|
-
return /* @__PURE__ */
|
|
7171
|
+
return /* @__PURE__ */ jsx51(
|
|
6972
7172
|
"div",
|
|
6973
7173
|
{
|
|
6974
7174
|
ref,
|
|
6975
7175
|
className: cn("flex flex-col items-start pt-lg px-lg", className),
|
|
6976
7176
|
...props,
|
|
6977
|
-
children: /* @__PURE__ */
|
|
6978
|
-
/* @__PURE__ */
|
|
6979
|
-
/* @__PURE__ */
|
|
6980
|
-
/* @__PURE__ */
|
|
7177
|
+
children: /* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-base w-full", children: [
|
|
7178
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex-1 flex items-center gap-base min-w-0 px-base py-sm bg-gradient-to-t from-[var(--color-select-bg-default)] to-[var(--color-select-bg-gradient-to)] border border-[var(--color-select-border-default)] rounded-base shadow-sm", children: [
|
|
7179
|
+
/* @__PURE__ */ jsx51("span", { className: "flex-1 text-sm font-regular leading-sm text-datepicker-header-text truncate", children: fromDate ? formatDate(fromDate) : "Start date" }),
|
|
7180
|
+
/* @__PURE__ */ jsx51(Icon32, { icon: faCalendarOutline, size: "sm", className: "shrink-0 text-datepicker-header-text" })
|
|
6981
7181
|
] }),
|
|
6982
|
-
/* @__PURE__ */
|
|
6983
|
-
|
|
7182
|
+
/* @__PURE__ */ jsx51(
|
|
7183
|
+
Icon32,
|
|
6984
7184
|
{
|
|
6985
7185
|
icon: faArrowRightOutline2,
|
|
6986
7186
|
size: "sm",
|
|
6987
7187
|
className: "shrink-0 text-datepicker-header-weekday"
|
|
6988
7188
|
}
|
|
6989
7189
|
),
|
|
6990
|
-
/* @__PURE__ */
|
|
6991
|
-
/* @__PURE__ */
|
|
6992
|
-
/* @__PURE__ */
|
|
7190
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex-1 flex items-center gap-base min-w-0 px-base py-sm bg-gradient-to-t from-[var(--color-select-bg-default)] to-[var(--color-select-bg-gradient-to)] border border-[var(--color-select-border-default)] rounded-base shadow-sm", children: [
|
|
7191
|
+
/* @__PURE__ */ jsx51("span", { className: "flex-1 text-sm font-regular leading-sm text-datepicker-header-text truncate", children: toDate ? formatDate(toDate) : "End date" }),
|
|
7192
|
+
/* @__PURE__ */ jsx51(Icon32, { icon: faCalendarOutline, size: "sm", className: "shrink-0 text-datepicker-header-text" })
|
|
6993
7193
|
] })
|
|
6994
7194
|
] })
|
|
6995
7195
|
}
|
|
@@ -7005,7 +7205,7 @@ var DatePickerDay = ({ date, isOutside }) => {
|
|
|
7005
7205
|
const inRange = mode === "range" && selected && !(selected instanceof Date) && selected.from && selected.to && !isSelected && isInRange(date, selected.from, selected.to);
|
|
7006
7206
|
const inPreviewRange = mode === "range" && selected && !(selected instanceof Date) && selected.from && !selected.to && hoveredDate && !isSelected && hoveredDate.getTime() > selected.from.getTime() && isInRange(date, selected.from, hoveredDate);
|
|
7007
7207
|
const isInRangeOrPreview = inRange || inPreviewRange;
|
|
7008
|
-
return /* @__PURE__ */
|
|
7208
|
+
return /* @__PURE__ */ jsxs46(
|
|
7009
7209
|
"button",
|
|
7010
7210
|
{
|
|
7011
7211
|
type: "button",
|
|
@@ -7029,14 +7229,14 @@ var DatePickerDay = ({ date, isOutside }) => {
|
|
|
7029
7229
|
),
|
|
7030
7230
|
children: [
|
|
7031
7231
|
date.getDate(),
|
|
7032
|
-
isToday && !isOutside && /* @__PURE__ */
|
|
7232
|
+
isToday && !isOutside && /* @__PURE__ */ jsx51("span", { className: "absolute bottom-0.5 left-1/2 -translate-x-1/2 size-1.5 rounded-full bg-datepicker-day-today" })
|
|
7033
7233
|
]
|
|
7034
7234
|
}
|
|
7035
7235
|
);
|
|
7036
7236
|
};
|
|
7037
|
-
var DatePickerCalendar =
|
|
7237
|
+
var DatePickerCalendar = React49.forwardRef(({ className, header, ...props }, ref) => {
|
|
7038
7238
|
const { month, year, goToPrevMonth, goToNextMonth } = useDatePickerContext();
|
|
7039
|
-
const weeks =
|
|
7239
|
+
const weeks = React49.useMemo(() => {
|
|
7040
7240
|
const firstDay = new Date(year, month, 1);
|
|
7041
7241
|
const startOffset = getWeekdayIndex(firstDay);
|
|
7042
7242
|
const daysInMonth = getDaysInMonth(year, month);
|
|
@@ -7076,7 +7276,7 @@ var DatePickerCalendar = React47.forwardRef(({ className, header, ...props }, re
|
|
|
7076
7276
|
}
|
|
7077
7277
|
return result;
|
|
7078
7278
|
}, [month, year]);
|
|
7079
|
-
return /* @__PURE__ */
|
|
7279
|
+
return /* @__PURE__ */ jsxs46(
|
|
7080
7280
|
"div",
|
|
7081
7281
|
{
|
|
7082
7282
|
ref,
|
|
@@ -7084,38 +7284,38 @@ var DatePickerCalendar = React47.forwardRef(({ className, header, ...props }, re
|
|
|
7084
7284
|
...props,
|
|
7085
7285
|
children: [
|
|
7086
7286
|
header,
|
|
7087
|
-
/* @__PURE__ */
|
|
7088
|
-
/* @__PURE__ */
|
|
7089
|
-
/* @__PURE__ */
|
|
7287
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex flex-col gap-lg p-lg", children: [
|
|
7288
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex items-center justify-between", children: [
|
|
7289
|
+
/* @__PURE__ */ jsxs46("span", { className: "text-base font-medium leading-base text-datepicker-header-text", children: [
|
|
7090
7290
|
MONTH_NAMES[month],
|
|
7091
7291
|
" ",
|
|
7092
7292
|
year
|
|
7093
7293
|
] }),
|
|
7094
|
-
/* @__PURE__ */
|
|
7095
|
-
/* @__PURE__ */
|
|
7294
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex items-center gap-xs", children: [
|
|
7295
|
+
/* @__PURE__ */ jsx51(
|
|
7096
7296
|
"button",
|
|
7097
7297
|
{
|
|
7098
7298
|
type: "button",
|
|
7099
7299
|
onClick: goToPrevMonth,
|
|
7100
7300
|
className: "flex items-center justify-center p-xs rounded-base hover:bg-datepicker-day-bg-hover transition-colors cursor-pointer",
|
|
7101
7301
|
"aria-label": "Previous month",
|
|
7102
|
-
children: /* @__PURE__ */
|
|
7302
|
+
children: /* @__PURE__ */ jsx51(Icon32, { icon: faChevronLeftOutline3, size: "xs", className: "text-datepicker-header-nav" })
|
|
7103
7303
|
}
|
|
7104
7304
|
),
|
|
7105
|
-
/* @__PURE__ */
|
|
7305
|
+
/* @__PURE__ */ jsx51(
|
|
7106
7306
|
"button",
|
|
7107
7307
|
{
|
|
7108
7308
|
type: "button",
|
|
7109
7309
|
onClick: goToNextMonth,
|
|
7110
7310
|
className: "flex items-center justify-center p-xs rounded-base hover:bg-datepicker-day-bg-hover transition-colors cursor-pointer",
|
|
7111
7311
|
"aria-label": "Next month",
|
|
7112
|
-
children: /* @__PURE__ */
|
|
7312
|
+
children: /* @__PURE__ */ jsx51(Icon32, { icon: faChevronRightOutline3, size: "xs", className: "text-datepicker-header-nav" })
|
|
7113
7313
|
}
|
|
7114
7314
|
)
|
|
7115
7315
|
] })
|
|
7116
7316
|
] }),
|
|
7117
|
-
/* @__PURE__ */
|
|
7118
|
-
/* @__PURE__ */
|
|
7317
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex flex-col", children: [
|
|
7318
|
+
/* @__PURE__ */ jsx51("div", { className: "grid grid-cols-7 gap-base py-sm", children: WEEKDAYS.map((day) => /* @__PURE__ */ jsx51(
|
|
7119
7319
|
"span",
|
|
7120
7320
|
{
|
|
7121
7321
|
className: "w-9 text-center text-xs font-regular leading-xs text-datepicker-header-weekday",
|
|
@@ -7123,7 +7323,7 @@ var DatePickerCalendar = React47.forwardRef(({ className, header, ...props }, re
|
|
|
7123
7323
|
},
|
|
7124
7324
|
day
|
|
7125
7325
|
)) }),
|
|
7126
|
-
/* @__PURE__ */
|
|
7326
|
+
/* @__PURE__ */ jsx51("div", { className: "flex flex-col", children: weeks.map((week, wi) => /* @__PURE__ */ jsx51("div", { className: "grid grid-cols-7 gap-base", children: week.map((day, di) => /* @__PURE__ */ jsx51(
|
|
7127
7327
|
DatePickerDay,
|
|
7128
7328
|
{
|
|
7129
7329
|
date: day.date,
|
|
@@ -7138,10 +7338,10 @@ var DatePickerCalendar = React47.forwardRef(({ className, header, ...props }, re
|
|
|
7138
7338
|
);
|
|
7139
7339
|
});
|
|
7140
7340
|
DatePickerCalendar.displayName = "DatePickerCalendar";
|
|
7141
|
-
var DatePickerSuggestions =
|
|
7341
|
+
var DatePickerSuggestions = React49.forwardRef(
|
|
7142
7342
|
({ className, suggestions, formatDate = defaultFormatDate, ...props }, ref) => {
|
|
7143
7343
|
const { onSelect, mode } = useDatePickerContext();
|
|
7144
|
-
const onValueChange =
|
|
7344
|
+
const onValueChange = React49.useContext(DatePickerContext) ? void 0 : void 0;
|
|
7145
7345
|
const ctx = useDatePickerContext();
|
|
7146
7346
|
const handleClick = (suggestion) => {
|
|
7147
7347
|
const val = suggestion.getValue();
|
|
@@ -7163,7 +7363,7 @@ var DatePickerSuggestions = React47.forwardRef(
|
|
|
7163
7363
|
const to = val.to ? formatDate(val.to) : "";
|
|
7164
7364
|
return to ? `${from} - ${to}` : from;
|
|
7165
7365
|
};
|
|
7166
|
-
return /* @__PURE__ */
|
|
7366
|
+
return /* @__PURE__ */ jsxs46(
|
|
7167
7367
|
"div",
|
|
7168
7368
|
{
|
|
7169
7369
|
ref,
|
|
@@ -7173,16 +7373,16 @@ var DatePickerSuggestions = React47.forwardRef(
|
|
|
7173
7373
|
),
|
|
7174
7374
|
...props,
|
|
7175
7375
|
children: [
|
|
7176
|
-
/* @__PURE__ */
|
|
7177
|
-
/* @__PURE__ */
|
|
7376
|
+
/* @__PURE__ */ jsx51("div", { className: "pt-lg px-base", children: /* @__PURE__ */ jsx51("div", { className: "flex items-center p-base rounded-base", children: /* @__PURE__ */ jsx51("span", { className: "flex-1 text-xs font-medium leading-xs text-datepicker-suggestion-heading uppercase truncate", children: "Suggestions" }) }) }),
|
|
7377
|
+
/* @__PURE__ */ jsx51("div", { className: "flex flex-1 flex-col p-base min-w-[222px]", children: suggestions.map((suggestion, i) => /* @__PURE__ */ jsxs46(
|
|
7178
7378
|
"button",
|
|
7179
7379
|
{
|
|
7180
7380
|
type: "button",
|
|
7181
7381
|
onClick: () => handleClick(suggestion),
|
|
7182
7382
|
className: "flex items-center gap-sm p-base rounded-base hover:bg-datepicker-suggestion-hover transition-colors cursor-pointer text-left",
|
|
7183
7383
|
children: [
|
|
7184
|
-
/* @__PURE__ */
|
|
7185
|
-
/* @__PURE__ */
|
|
7384
|
+
/* @__PURE__ */ jsx51("span", { className: "text-sm font-regular leading-sm text-datepicker-suggestion-text truncate shrink-0", children: suggestion.label }),
|
|
7385
|
+
/* @__PURE__ */ jsx51("span", { className: "text-xs font-regular leading-xs text-datepicker-suggestion-date truncate", children: formatSuggestionDate(suggestion) })
|
|
7186
7386
|
]
|
|
7187
7387
|
},
|
|
7188
7388
|
i
|
|
@@ -7193,8 +7393,8 @@ var DatePickerSuggestions = React47.forwardRef(
|
|
|
7193
7393
|
}
|
|
7194
7394
|
);
|
|
7195
7395
|
DatePickerSuggestions.displayName = "DatePickerSuggestions";
|
|
7196
|
-
var DatePickerFooter =
|
|
7197
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
7396
|
+
var DatePickerFooter = React49.forwardRef(
|
|
7397
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx51(
|
|
7198
7398
|
"div",
|
|
7199
7399
|
{
|
|
7200
7400
|
ref,
|
|
@@ -7210,8 +7410,8 @@ var DatePickerFooter = React47.forwardRef(
|
|
|
7210
7410
|
)
|
|
7211
7411
|
);
|
|
7212
7412
|
DatePickerFooter.displayName = "DatePickerFooter";
|
|
7213
|
-
var DatePickerPanel =
|
|
7214
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
7413
|
+
var DatePickerPanel = React49.forwardRef(
|
|
7414
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx51(
|
|
7215
7415
|
"div",
|
|
7216
7416
|
{
|
|
7217
7417
|
ref,
|
|
@@ -7222,10 +7422,10 @@ var DatePickerPanel = React47.forwardRef(
|
|
|
7222
7422
|
)
|
|
7223
7423
|
);
|
|
7224
7424
|
DatePickerPanel.displayName = "DatePickerPanel";
|
|
7225
|
-
var DatePickerRoot =
|
|
7226
|
-
var DatePickerTrigger =
|
|
7227
|
-
var DatePickerPopover =
|
|
7228
|
-
|
|
7425
|
+
var DatePickerRoot = PopoverPrimitive12.Root;
|
|
7426
|
+
var DatePickerTrigger = PopoverPrimitive12.Trigger;
|
|
7427
|
+
var DatePickerPopover = React49.forwardRef(({ className, sideOffset = 4, align = "start", children, ...props }, ref) => /* @__PURE__ */ jsx51(PopoverPrimitive12.Portal, { children: /* @__PURE__ */ jsx51(
|
|
7428
|
+
PopoverPrimitive12.Content,
|
|
7229
7429
|
{
|
|
7230
7430
|
ref,
|
|
7231
7431
|
sideOffset,
|
|
@@ -7384,6 +7584,7 @@ export {
|
|
|
7384
7584
|
SidebarSection,
|
|
7385
7585
|
SortButton,
|
|
7386
7586
|
StatusCell,
|
|
7587
|
+
SummaryChip,
|
|
7387
7588
|
Switch,
|
|
7388
7589
|
TabContent,
|
|
7389
7590
|
TabList,
|
|
@@ -7438,6 +7639,7 @@ export {
|
|
|
7438
7639
|
toastVariants,
|
|
7439
7640
|
tooltipContentVariants,
|
|
7440
7641
|
typographyVariants,
|
|
7642
|
+
useFilterBarMode,
|
|
7441
7643
|
useSidebarContext
|
|
7442
7644
|
};
|
|
7443
7645
|
//# sourceMappingURL=index.mjs.map
|