@l3mpire/ui 2.17.0 → 2.18.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 +11 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +18 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +18 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -899,6 +899,8 @@ declare const PropertySelector: React.FC<PropertySelectorProps>;
|
|
|
899
899
|
|
|
900
900
|
interface KebabMenuProps {
|
|
901
901
|
onConvertToAdvanced?: () => void;
|
|
902
|
+
/** When true, label reads "Add to advanced filters" instead of "Convert to advanced". */
|
|
903
|
+
hasAdvancedFilters?: boolean;
|
|
902
904
|
onDelete?: () => void;
|
|
903
905
|
open?: boolean;
|
|
904
906
|
onOpenChange?: (open: boolean) => void;
|
|
@@ -931,6 +933,7 @@ interface InteractiveFilterChipProps {
|
|
|
931
933
|
onPropertyChange?: (property: PropertyDefinition) => void;
|
|
932
934
|
onDelete: () => void;
|
|
933
935
|
onConvertToAdvanced?: () => void;
|
|
936
|
+
hasAdvancedFilters?: boolean;
|
|
934
937
|
className?: string;
|
|
935
938
|
}
|
|
936
939
|
declare const InteractiveFilterChip: React.FC<InteractiveFilterChipProps>;
|
|
@@ -952,6 +955,12 @@ interface FilterSystemProps {
|
|
|
952
955
|
mode?: FilterBarMode;
|
|
953
956
|
/** Width breakpoint (px) for switching to minimal mode. Default: 600. */
|
|
954
957
|
breakpoint?: number;
|
|
958
|
+
/**
|
|
959
|
+
* Constrain popovers to stay within the container bounds. Use this when
|
|
960
|
+
* FilterSystem lives inside an iframe or a fixed-width panel where content
|
|
961
|
+
* must not overflow.
|
|
962
|
+
*/
|
|
963
|
+
bounded?: boolean;
|
|
955
964
|
children?: React.ReactNode;
|
|
956
965
|
actions?: React.ReactNode;
|
|
957
966
|
className?: string;
|
|
@@ -989,6 +998,7 @@ interface AdvancedPopoverProps {
|
|
|
989
998
|
open?: boolean;
|
|
990
999
|
onOpenChange?: (open: boolean) => void;
|
|
991
1000
|
children?: React.ReactNode;
|
|
1001
|
+
collisionBoundary?: Element | null;
|
|
992
1002
|
}
|
|
993
1003
|
declare const AdvancedPopover: React.FC<AdvancedPopoverProps>;
|
|
994
1004
|
|
|
@@ -1002,6 +1012,7 @@ interface SummaryChipProps {
|
|
|
1002
1012
|
className?: string;
|
|
1003
1013
|
open?: boolean;
|
|
1004
1014
|
onOpenChange?: (open: boolean) => void;
|
|
1015
|
+
collisionBoundary?: Element | null;
|
|
1005
1016
|
}
|
|
1006
1017
|
declare const SummaryChip: React.FC<SummaryChipProps>;
|
|
1007
1018
|
|
package/dist/index.d.ts
CHANGED
|
@@ -899,6 +899,8 @@ declare const PropertySelector: React.FC<PropertySelectorProps>;
|
|
|
899
899
|
|
|
900
900
|
interface KebabMenuProps {
|
|
901
901
|
onConvertToAdvanced?: () => void;
|
|
902
|
+
/** When true, label reads "Add to advanced filters" instead of "Convert to advanced". */
|
|
903
|
+
hasAdvancedFilters?: boolean;
|
|
902
904
|
onDelete?: () => void;
|
|
903
905
|
open?: boolean;
|
|
904
906
|
onOpenChange?: (open: boolean) => void;
|
|
@@ -931,6 +933,7 @@ interface InteractiveFilterChipProps {
|
|
|
931
933
|
onPropertyChange?: (property: PropertyDefinition) => void;
|
|
932
934
|
onDelete: () => void;
|
|
933
935
|
onConvertToAdvanced?: () => void;
|
|
936
|
+
hasAdvancedFilters?: boolean;
|
|
934
937
|
className?: string;
|
|
935
938
|
}
|
|
936
939
|
declare const InteractiveFilterChip: React.FC<InteractiveFilterChipProps>;
|
|
@@ -952,6 +955,12 @@ interface FilterSystemProps {
|
|
|
952
955
|
mode?: FilterBarMode;
|
|
953
956
|
/** Width breakpoint (px) for switching to minimal mode. Default: 600. */
|
|
954
957
|
breakpoint?: number;
|
|
958
|
+
/**
|
|
959
|
+
* Constrain popovers to stay within the container bounds. Use this when
|
|
960
|
+
* FilterSystem lives inside an iframe or a fixed-width panel where content
|
|
961
|
+
* must not overflow.
|
|
962
|
+
*/
|
|
963
|
+
bounded?: boolean;
|
|
955
964
|
children?: React.ReactNode;
|
|
956
965
|
actions?: React.ReactNode;
|
|
957
966
|
className?: string;
|
|
@@ -989,6 +998,7 @@ interface AdvancedPopoverProps {
|
|
|
989
998
|
open?: boolean;
|
|
990
999
|
onOpenChange?: (open: boolean) => void;
|
|
991
1000
|
children?: React.ReactNode;
|
|
1001
|
+
collisionBoundary?: Element | null;
|
|
992
1002
|
}
|
|
993
1003
|
declare const AdvancedPopover: React.FC<AdvancedPopoverProps>;
|
|
994
1004
|
|
|
@@ -1002,6 +1012,7 @@ interface SummaryChipProps {
|
|
|
1002
1012
|
className?: string;
|
|
1003
1013
|
open?: boolean;
|
|
1004
1014
|
onOpenChange?: (open: boolean) => void;
|
|
1015
|
+
collisionBoundary?: Element | null;
|
|
1005
1016
|
}
|
|
1006
1017
|
declare const SummaryChip: React.FC<SummaryChipProps>;
|
|
1007
1018
|
|
package/dist/index.js
CHANGED
|
@@ -7183,6 +7183,7 @@ var import_icons30 = require("@l3mpire/icons");
|
|
|
7183
7183
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
7184
7184
|
var KebabMenu = ({
|
|
7185
7185
|
onConvertToAdvanced,
|
|
7186
|
+
hasAdvancedFilters = false,
|
|
7186
7187
|
onDelete,
|
|
7187
7188
|
open,
|
|
7188
7189
|
onOpenChange,
|
|
@@ -7221,7 +7222,7 @@ var KebabMenu = ({
|
|
|
7221
7222
|
className: "shrink-0 text-[var(--color-dropdown-item-icon)]"
|
|
7222
7223
|
}
|
|
7223
7224
|
),
|
|
7224
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-regular leading-sm text-[var(--color-dropdown-item-text)]", children: "Convert to advanced" })
|
|
7225
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-regular leading-sm text-[var(--color-dropdown-item-text)]", children: hasAdvancedFilters ? "Add to advanced filters" : "Convert to advanced" })
|
|
7225
7226
|
]
|
|
7226
7227
|
}
|
|
7227
7228
|
),
|
|
@@ -7408,6 +7409,7 @@ var InteractiveFilterChip = ({
|
|
|
7408
7409
|
onPropertyChange,
|
|
7409
7410
|
onDelete,
|
|
7410
7411
|
onConvertToAdvanced,
|
|
7412
|
+
hasAdvancedFilters = false,
|
|
7411
7413
|
className
|
|
7412
7414
|
}) => {
|
|
7413
7415
|
const [operatorOpen, setOperatorOpen] = React46.useState(false);
|
|
@@ -7563,6 +7565,7 @@ var InteractiveFilterChip = ({
|
|
|
7563
7565
|
open: kebabOpen,
|
|
7564
7566
|
onOpenChange: setKebabOpen,
|
|
7565
7567
|
onConvertToAdvanced,
|
|
7568
|
+
hasAdvancedFilters,
|
|
7566
7569
|
onDelete,
|
|
7567
7570
|
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7568
7571
|
FilterChipSegment,
|
|
@@ -8061,7 +8064,8 @@ var AdvancedPopover = ({
|
|
|
8061
8064
|
onFiltersChange,
|
|
8062
8065
|
open,
|
|
8063
8066
|
onOpenChange,
|
|
8064
|
-
children
|
|
8067
|
+
children,
|
|
8068
|
+
collisionBoundary
|
|
8065
8069
|
}) => {
|
|
8066
8070
|
const [addSelectorOpen, setAddSelectorOpen] = React51.useState(false);
|
|
8067
8071
|
const [draftPickerOpen, setDraftPickerOpen] = React51.useState(false);
|
|
@@ -8209,6 +8213,7 @@ var AdvancedPopover = ({
|
|
|
8209
8213
|
sideOffset: 4,
|
|
8210
8214
|
align: "start",
|
|
8211
8215
|
collisionPadding: 16,
|
|
8216
|
+
collisionBoundary: collisionBoundary ?? void 0,
|
|
8212
8217
|
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
8213
8218
|
className: cn(
|
|
8214
8219
|
"z-50 flex flex-col",
|
|
@@ -8216,7 +8221,7 @@ var AdvancedPopover = ({
|
|
|
8216
8221
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
8217
8222
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
8218
8223
|
"data-[side=bottom]:slide-in-from-top-2",
|
|
8219
|
-
"w-[min(640px,calc(100vw-32px))] min-w-[360px]"
|
|
8224
|
+
collisionBoundary ? "w-[min(640px,var(--radix-popover-content-available-width))] min-w-0" : "w-[min(640px,calc(100vw-32px))] min-w-[360px]"
|
|
8220
8225
|
),
|
|
8221
8226
|
children: [
|
|
8222
8227
|
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex flex-col gap-base p-base", children: filters.length > 0 ? filters.map((node, i) => renderNode(node, i)) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
@@ -8349,7 +8354,8 @@ var SummaryChip = ({
|
|
|
8349
8354
|
children,
|
|
8350
8355
|
className,
|
|
8351
8356
|
open: openProp,
|
|
8352
|
-
onOpenChange
|
|
8357
|
+
onOpenChange,
|
|
8358
|
+
collisionBoundary
|
|
8353
8359
|
}) => {
|
|
8354
8360
|
const [uncontrolledOpen, setUncontrolledOpen] = React52.useState(false);
|
|
8355
8361
|
const isControlled = openProp !== void 0;
|
|
@@ -8517,6 +8523,7 @@ var SummaryChip = ({
|
|
|
8517
8523
|
sideOffset: 4,
|
|
8518
8524
|
align: "start",
|
|
8519
8525
|
collisionPadding: 16,
|
|
8526
|
+
collisionBoundary: collisionBoundary ?? void 0,
|
|
8520
8527
|
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
8521
8528
|
className: cn(
|
|
8522
8529
|
"z-50 flex flex-col overflow-clip",
|
|
@@ -8524,7 +8531,7 @@ var SummaryChip = ({
|
|
|
8524
8531
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
8525
8532
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
8526
8533
|
"data-[side=bottom]:slide-in-from-top-2",
|
|
8527
|
-
"w-[min(640px,calc(100vw-32px))]"
|
|
8534
|
+
collisionBoundary ? "w-[min(640px,var(--radix-popover-content-available-width))]" : "w-[min(640px,calc(100vw-32px))]"
|
|
8528
8535
|
),
|
|
8529
8536
|
children: [
|
|
8530
8537
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "flex flex-col gap-base p-base", children: filters.length > 0 ? filters.map((node, i) => renderNode(node, i)) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
@@ -8638,12 +8645,14 @@ var FilterSystem = ({
|
|
|
8638
8645
|
sortFields,
|
|
8639
8646
|
mode: modeOverride,
|
|
8640
8647
|
breakpoint,
|
|
8648
|
+
bounded = false,
|
|
8641
8649
|
children,
|
|
8642
8650
|
actions,
|
|
8643
8651
|
className
|
|
8644
8652
|
}) => {
|
|
8645
8653
|
const containerRef = React54.useRef(null);
|
|
8646
8654
|
const mode = useFilterBarMode(containerRef, modeOverride, breakpoint);
|
|
8655
|
+
const collisionBoundary = bounded ? containerRef.current : void 0;
|
|
8647
8656
|
const [propertySelectorOpen, setPropertySelectorOpen] = React54.useState(false);
|
|
8648
8657
|
const [advancedOpen, setAdvancedOpen] = React54.useState(false);
|
|
8649
8658
|
const [summaryOpen, setSummaryOpen] = React54.useState(false);
|
|
@@ -8763,6 +8772,7 @@ var FilterSystem = ({
|
|
|
8763
8772
|
onClearAll: handleClearAll,
|
|
8764
8773
|
open: summaryOpen,
|
|
8765
8774
|
onOpenChange: setSummaryOpen,
|
|
8775
|
+
collisionBoundary,
|
|
8766
8776
|
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8767
8777
|
FilterBarButton,
|
|
8768
8778
|
{
|
|
@@ -8783,6 +8793,7 @@ var FilterSystem = ({
|
|
|
8783
8793
|
onFiltersChange: handleAdvancedFiltersChange,
|
|
8784
8794
|
open: advancedOpen,
|
|
8785
8795
|
onOpenChange: setAdvancedOpen,
|
|
8796
|
+
collisionBoundary,
|
|
8786
8797
|
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8787
8798
|
AdvancedChip,
|
|
8788
8799
|
{
|
|
@@ -8807,7 +8818,8 @@ var FilterSystem = ({
|
|
|
8807
8818
|
onUpdate: handleUpdateFilter,
|
|
8808
8819
|
onPropertyChange: (newProp) => handlePropertyChange(filter.id, newProp),
|
|
8809
8820
|
onDelete: () => handleDeleteFilter(filter.id),
|
|
8810
|
-
onConvertToAdvanced: () => handleConvertToAdvanced(filter.id)
|
|
8821
|
+
onConvertToAdvanced: () => handleConvertToAdvanced(filter.id),
|
|
8822
|
+
hasAdvancedFilters: hasAdvanced
|
|
8811
8823
|
},
|
|
8812
8824
|
filter.id
|
|
8813
8825
|
);
|