@rebasepro/ui 0.0.1-canary.892f711 → 0.0.1-canary.a6becfb

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.
@@ -0,0 +1,42 @@
1
+ import React from "react";
2
+ export interface FilterChipProps {
3
+ /**
4
+ * The text label displayed on the chip.
5
+ */
6
+ children: React.ReactNode;
7
+ /**
8
+ * Whether the chip is currently in an active/selected state.
9
+ */
10
+ active?: boolean;
11
+ /**
12
+ * Callback when the chip is clicked.
13
+ */
14
+ onClick?: () => void;
15
+ /**
16
+ * Optional icon rendered before the label.
17
+ */
18
+ icon?: React.ReactNode;
19
+ /**
20
+ * Size variant.
21
+ * @default "medium"
22
+ */
23
+ size?: "small" | "medium";
24
+ /**
25
+ * Additional class names.
26
+ */
27
+ className?: string;
28
+ /**
29
+ * Whether the chip is disabled.
30
+ */
31
+ disabled?: boolean;
32
+ }
33
+ /**
34
+ * A toggle chip used for filter presets and similar multi-select controls.
35
+ *
36
+ * Uses an inset box-shadow for the active ring instead of `border` so the
37
+ * chip size stays stable across states and the ring cannot be clipped by
38
+ * parent `overflow-hidden` containers.
39
+ *
40
+ * @group Interactive components
41
+ */
42
+ export declare function FilterChip({ children, active, onClick, icon, size, className, disabled }: FilterChipProps): import("react/jsx-runtime").JSX.Element;
@@ -17,6 +17,10 @@ interface SearchBarProps {
17
17
  disabled?: boolean;
18
18
  loading?: boolean;
19
19
  inputRef?: React.Ref<HTMLInputElement>;
20
+ /**
21
+ * Optional initial value for the search input, e.g. from URL params.
22
+ */
23
+ initialValue?: string;
20
24
  }
21
- export declare function SearchBar({ onClick, onTextSearch, placeholder, expandable, size, innerClassName, className, autoFocus, disabled, loading, inputRef }: SearchBarProps): import("react/jsx-runtime").JSX.Element;
25
+ export declare function SearchBar({ onClick, onTextSearch, placeholder, expandable, size, innerClassName, className, autoFocus, disabled, loading, inputRef, initialValue }: SearchBarProps): import("react/jsx-runtime").JSX.Element;
22
26
  export {};
@@ -22,6 +22,7 @@ export * from "./DialogContent";
22
22
  export * from "./DialogTitle";
23
23
  export * from "./ExpandablePanel";
24
24
  export * from "./FileUpload";
25
+ export * from "./FilterChip";
25
26
  export * from "./IconButton";
26
27
  export * from "./InputLabel";
27
28
  export * from "./InfoLabel";
package/dist/index.css CHANGED
@@ -50,8 +50,8 @@
50
50
  --color-surface-accent-600: #475569;
51
51
  --color-surface-accent-700: #334155;
52
52
  --color-surface-accent-800: #1e293b;
53
- --color-surface-accent-900: #0f172a;
54
- --color-surface-accent-950: #020617;
53
+ --color-surface-accent-900: #172033;
54
+ --color-surface-accent-950: #0f172a;
55
55
  }
56
56
 
57
57
  /* Chrome, Safari and Opera */
package/dist/index.es.js CHANGED
@@ -964,18 +964,18 @@ const ButtonInner = React__default.memo(React__default.forwardRef((t0, ref) => {
964
964
  "border border-primary bg-primary focus:ring-primary shadow-sm hover:shadow-md hover:brightness-110 text-white hover:text-white": t8,
965
965
  "border border-secondary bg-secondary focus:ring-secondary shadow-sm hover:shadow-md hover:brightness-110 text-white hover:text-white": t9,
966
966
  "border border-red-500 bg-red-500 hover:bg-red-600 focus:ring-red-500 shadow-sm hover:shadow-md text-white hover:text-white": t10,
967
- "border border-surface-accent-200 bg-surface-accent-200 hover:bg-surface-accent-300 focus:ring-surface-accent-400 shadow-sm hover:shadow-md text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark": t11,
968
- "border border-transparent bg-surface-100 hover:bg-surface-accent-200 text-text-primary dark:bg-surface-700 dark:hover:bg-surface-accent-600 dark:text-text-primary-dark hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark": t12,
967
+ "border border-surface-accent-200 bg-surface-accent-200 hover:bg-surface-accent-300 focus:ring-surface-accent-400 shadow-sm hover:shadow-md text-text-primary hover:text-text-primary dark:border-surface-accent-700 dark:bg-surface-accent-700 dark:hover:bg-surface-accent-600 dark:text-text-primary-dark hover:dark:text-text-primary-dark": t11,
968
+ "border border-transparent bg-surface-100 hover:bg-surface-accent-200 text-text-primary dark:bg-surface-700 dark:hover:bg-surface-accent-700 dark:text-text-primary-dark hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark": t12,
969
969
  "border border-transparent text-primary hover:text-primary hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800": t13,
970
970
  "border border-transparent text-secondary hover:text-secondary hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800": t14,
971
971
  "border border-transparent text-red-500 hover:text-red-500 hover:bg-red-500 hover:bg-opacity-10 hover:bg-red-500/10": t15,
972
- "border border-transparent text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark hover:bg-surface-accent-200 hover:dark:bg-surface-700": t16,
973
- "border border-transparent text-text-primary hover:text-text-primary hover:bg-surface-accent-200 dark:text-text-primary-dark dark:hover:text-text-primary-dark dark:hover:bg-surface-accent-700": t17,
972
+ "border border-transparent text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800": t16,
973
+ "border border-transparent text-text-primary hover:text-text-primary hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:text-text-primary-dark dark:hover:text-text-primary-dark dark:hover:bg-surface-accent-800": t17,
974
974
  "border border-primary text-primary hover:text-primary hover:bg-primary-bg hover:bg-primary/10": t18,
975
975
  "border border-secondary text-secondary hover:text-secondary hover:bg-secondary-bg": t19,
976
976
  "border border-red-500 text-red-500 hover:text-red-500 hover:bg-red-500 hover:text-white": t20,
977
- "border border-surface-accent-400 text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:bg-surface-accent-200": t21,
978
- "border border-surface-300 text-text-primary hover:bg-surface-accent-200 dark:border-surface-600 dark:text-text-primary-dark dark:hover:bg-surface-accent-700": t22,
977
+ "border border-surface-accent-400 text-text-primary hover:text-text-primary dark:text-text-primary-dark dark:border-surface-accent-600 hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800": t21,
978
+ "border border-surface-300 text-text-primary hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:border-surface-600 dark:text-text-primary-dark dark:hover:bg-surface-accent-800": t22,
979
979
  "text-text-disabled dark:text-text-disabled-dark": disabled,
980
980
  "border border-transparent opacity-50": t23,
981
981
  "border border-surface-500 opacity-50": t24,
@@ -1573,7 +1573,7 @@ class ErrorBoundary extends React__default.Component {
1573
1573
  return this.props.children;
1574
1574
  }
1575
1575
  }
1576
- const sizeClasses$1 = {
1576
+ const sizeClasses$2 = {
1577
1577
  large: "w-6 h-6 rounded flex items-center justify-center",
1578
1578
  medium: "w-5 h-5 rounded flex items-center justify-center",
1579
1579
  small: "w-4 h-4 rounded flex items-center justify-center",
@@ -1632,7 +1632,7 @@ const Checkbox = React__default.memo((t0) => {
1632
1632
  } else {
1633
1633
  t12 = $[4];
1634
1634
  }
1635
- const t13 = sizeClasses$1[size];
1635
+ const t13 = sizeClasses$2[size];
1636
1636
  const t14 = disabled ? indeterminate || isChecked ? "bg-surface-accent-400 dark:bg-surface-accent-600" : "bg-surface-accent-400 dark:bg-surface-accent-600" : indeterminate || isChecked ? colorClasses$2[color] : "bg-white dark:bg-surface-900";
1637
1637
  const t15 = indeterminate || isChecked ? "text-surface-accent-100 dark:text-surface-accent-900" : "";
1638
1638
  const t16 = disabled ? "border-transparent" : indeterminate || isChecked ? "border-transparent" : "border-surface-accent-800 dark:border-surface-accent-500";
@@ -1776,7 +1776,7 @@ function Chip(t0) {
1776
1776
  return t11;
1777
1777
  }
1778
1778
  const Tooltip = (t0) => {
1779
- const $ = c(28);
1779
+ const $ = c(30);
1780
1780
  const {
1781
1781
  open,
1782
1782
  defaultOpen,
@@ -1824,61 +1824,72 @@ const Tooltip = (t0) => {
1824
1824
  }
1825
1825
  const trigger = t4;
1826
1826
  let t5;
1827
- if ($[7] !== tooltipClassName) {
1828
- t5 = cls("TooltipContent", "max-w-lg leading-relaxed", "z-50 rounded px-3 py-2 text-xs leading-none bg-surface-accent-700 dark:bg-surface-accent-800 bg-opacity-90 bg-surface-accent-700/90 dark:bg-surface-accent-800/90 font-medium text-surface-accent-50 shadow-2xl select-none duration-400 ease-in transform opacity-100", tooltipClassName);
1829
- $[7] = tooltipClassName;
1830
- $[8] = t5;
1827
+ if ($[7] !== onOpenChange || $[8] !== open) {
1828
+ t5 = open !== void 0 ? {
1829
+ open,
1830
+ onOpenChange
1831
+ } : {};
1832
+ $[7] = onOpenChange;
1833
+ $[8] = open;
1834
+ $[9] = t5;
1831
1835
  } else {
1832
- t5 = $[8];
1836
+ t5 = $[9];
1833
1837
  }
1834
- const t6 = sideOffset === void 0 ? 4 : sideOffset;
1835
- let t7;
1836
- if ($[9] !== align || $[10] !== side || $[11] !== t5 || $[12] !== t6 || $[13] !== title || $[14] !== tooltipStyle) {
1837
- t7 = /* @__PURE__ */ jsx(TooltipPrimitive.Content, { className: t5, style: tooltipStyle, sideOffset: t6, align, side, children: title });
1838
- $[9] = align;
1839
- $[10] = side;
1840
- $[11] = t5;
1841
- $[12] = t6;
1842
- $[13] = title;
1843
- $[14] = tooltipStyle;
1844
- $[15] = t7;
1838
+ let t6;
1839
+ if ($[10] !== tooltipClassName) {
1840
+ t6 = cls("TooltipContent", "max-w-lg leading-relaxed", "z-50 rounded px-3 py-2 text-xs leading-none bg-surface-accent-700 dark:bg-surface-accent-800 bg-opacity-90 bg-surface-accent-700/90 dark:bg-surface-accent-800/90 font-medium text-surface-accent-50 shadow-2xl select-none duration-400 ease-in transform opacity-100", tooltipClassName);
1841
+ $[10] = tooltipClassName;
1842
+ $[11] = t6;
1845
1843
  } else {
1846
- t7 = $[15];
1844
+ t6 = $[11];
1847
1845
  }
1846
+ const t7 = sideOffset === void 0 ? 4 : sideOffset;
1848
1847
  let t8;
1849
- if ($[16] !== finalContainer || $[17] !== t7) {
1850
- t8 = /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { container: finalContainer, children: t7 });
1851
- $[16] = finalContainer;
1852
- $[17] = t7;
1848
+ if ($[12] !== align || $[13] !== side || $[14] !== t6 || $[15] !== t7 || $[16] !== title || $[17] !== tooltipStyle) {
1849
+ t8 = /* @__PURE__ */ jsx(TooltipPrimitive.Content, { className: t6, style: tooltipStyle, sideOffset: t7, align, side, children: title });
1850
+ $[12] = align;
1851
+ $[13] = side;
1852
+ $[14] = t6;
1853
+ $[15] = t7;
1854
+ $[16] = title;
1855
+ $[17] = tooltipStyle;
1853
1856
  $[18] = t8;
1854
1857
  } else {
1855
1858
  t8 = $[18];
1856
1859
  }
1857
1860
  let t9;
1858
- if ($[19] !== defaultOpen || $[20] !== onOpenChange || $[21] !== open || $[22] !== t8 || $[23] !== trigger) {
1859
- t9 = /* @__PURE__ */ jsxs(TooltipPrimitive.Root, { open, onOpenChange, defaultOpen, children: [
1861
+ if ($[19] !== finalContainer || $[20] !== t8) {
1862
+ t9 = /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { container: finalContainer, children: t8 });
1863
+ $[19] = finalContainer;
1864
+ $[20] = t8;
1865
+ $[21] = t9;
1866
+ } else {
1867
+ t9 = $[21];
1868
+ }
1869
+ let t10;
1870
+ if ($[22] !== defaultOpen || $[23] !== t5 || $[24] !== t9 || $[25] !== trigger) {
1871
+ t10 = /* @__PURE__ */ jsxs(TooltipPrimitive.Root, { ...t5, defaultOpen, children: [
1860
1872
  trigger,
1861
- t8
1873
+ t9
1862
1874
  ] });
1863
- $[19] = defaultOpen;
1864
- $[20] = onOpenChange;
1865
- $[21] = open;
1866
- $[22] = t8;
1867
- $[23] = trigger;
1875
+ $[22] = defaultOpen;
1876
+ $[23] = t5;
1868
1877
  $[24] = t9;
1878
+ $[25] = trigger;
1879
+ $[26] = t10;
1869
1880
  } else {
1870
- t9 = $[24];
1881
+ t10 = $[26];
1871
1882
  }
1872
- let t10;
1873
- if ($[25] !== delayDuration || $[26] !== t9) {
1874
- t10 = /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration, children: t9 });
1875
- $[25] = delayDuration;
1876
- $[26] = t9;
1877
- $[27] = t10;
1883
+ let t11;
1884
+ if ($[27] !== delayDuration || $[28] !== t10) {
1885
+ t11 = /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration, children: t10 });
1886
+ $[27] = delayDuration;
1887
+ $[28] = t10;
1888
+ $[29] = t11;
1878
1889
  } else {
1879
- t10 = $[27];
1890
+ t11 = $[29];
1880
1891
  }
1881
- return t10;
1892
+ return t11;
1882
1893
  };
1883
1894
  const styles$2 = `
1884
1895
 
@@ -2026,7 +2037,7 @@ function ColorPicker(t0) {
2026
2037
  const buttonClasses = "hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800 hover:scale-[1.04] active:scale-95 transition-transform";
2027
2038
  const baseClasses = "inline-flex items-center justify-center p-2 text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150";
2028
2039
  const colorClasses$1 = "text-surface-accent-500 visited:text-surface-accent-500 dark:text-surface-accent-300 dark:visited:text-surface-300";
2029
- const sizeClasses = {
2040
+ const sizeClasses$1 = {
2030
2041
  medium: "w-10 !h-10 min-w-10 min-h-10",
2031
2042
  small: "w-8 !h-8 min-w-8 min-h-8",
2032
2043
  smallest: "w-6 !h-6 min-w-6 min-h-6",
@@ -2093,7 +2104,7 @@ const IconButtonInner = (t0, ref) => {
2093
2104
  const t8 = disabled ? "opacity-50 pointer-events-none" : "cursor-pointer";
2094
2105
  const t9 = toggled ? "outline outline-2 outline-primary" : "";
2095
2106
  const t10 = shapeClasses[shape];
2096
- const t11 = sizeClasses[size];
2107
+ const t11 = sizeClasses$1[size];
2097
2108
  let t12;
2098
2109
  if ($[10] !== bgClasses || $[11] !== className || $[12] !== t10 || $[13] !== t11 || $[14] !== t8 || $[15] !== t9) {
2099
2110
  t12 = cls(t8, t9, "text-inherit dark:text-inherit", colorClasses$1, bgClasses, baseClasses, buttonClasses, t10, t11, className);
@@ -2334,7 +2345,7 @@ const DateTimeField = ({
2334
2345
  /* @__PURE__ */ jsx(IconButton, { onClick: (e_2) => {
2335
2346
  e_2.stopPropagation();
2336
2347
  inputRef.current?.showPicker();
2337
- }, className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-surface-accent-500!", children: /* @__PURE__ */ jsx(CalendarIcon, { color: "disabled" }) }),
2348
+ }, className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-surface-accent-500!", children: /* @__PURE__ */ jsx(CalendarIcon, {}) }),
2338
2349
  clearable && value && /* @__PURE__ */ jsx(IconButton, { onClick: handleClear, className: "absolute right-14 top-1/2 transform -translate-y-1/2 text-surface-accent-400 ", children: /* @__PURE__ */ jsx(XIcon, {}) })
2339
2350
  ] }),
2340
2351
  invalidValue && /* @__PURE__ */ jsxs("div", { className: "flex items-center m-2", children: [
@@ -3054,6 +3065,53 @@ function FileUpload(t0) {
3054
3065
  }
3055
3066
  return t16;
3056
3067
  }
3068
+ const sizeClasses = {
3069
+ small: "px-2 py-0.5 text-xs",
3070
+ medium: "px-2.5 py-1 text-xs"
3071
+ };
3072
+ function FilterChip(t0) {
3073
+ const $ = c(11);
3074
+ const {
3075
+ children,
3076
+ active: t1,
3077
+ onClick,
3078
+ icon,
3079
+ size: t2,
3080
+ className,
3081
+ disabled: t3
3082
+ } = t0;
3083
+ const active = t1 === void 0 ? false : t1;
3084
+ const size = t2 === void 0 ? "medium" : t2;
3085
+ const disabled = t3 === void 0 ? false : t3;
3086
+ const t4 = sizeClasses[size];
3087
+ let t5;
3088
+ if ($[0] !== active || $[1] !== className || $[2] !== disabled || $[3] !== t4) {
3089
+ t5 = cls("inline-flex items-center gap-1 rounded-full", "font-medium whitespace-nowrap select-none shrink-0", "transition-all duration-150", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", t4, active ? "bg-primary/12 text-primary dark:bg-primary/20 dark:text-primary shadow-[inset_0_0_0_1.5px_var(--color-primary)]" : cls("bg-surface-accent-100 text-text-secondary dark:bg-surface-accent-800 dark:text-text-secondary-dark", !disabled && "cursor-pointer hover:bg-surface-accent-200 dark:hover:bg-surface-accent-700"), disabled && "opacity-50 cursor-not-allowed", className);
3090
+ $[0] = active;
3091
+ $[1] = className;
3092
+ $[2] = disabled;
3093
+ $[3] = t4;
3094
+ $[4] = t5;
3095
+ } else {
3096
+ t5 = $[4];
3097
+ }
3098
+ let t6;
3099
+ if ($[5] !== children || $[6] !== disabled || $[7] !== icon || $[8] !== onClick || $[9] !== t5) {
3100
+ t6 = /* @__PURE__ */ jsxs("button", { type: "button", onClick, disabled, className: t5, children: [
3101
+ icon,
3102
+ children
3103
+ ] });
3104
+ $[5] = children;
3105
+ $[6] = disabled;
3106
+ $[7] = icon;
3107
+ $[8] = onClick;
3108
+ $[9] = t5;
3109
+ $[10] = t6;
3110
+ } else {
3111
+ t6 = $[10];
3112
+ }
3113
+ return t6;
3114
+ }
3057
3115
  const colorClasses = {
3058
3116
  info: "bg-sky-200 dark:bg-teal-900",
3059
3117
  warn: "bg-orange-200 dark:bg-yellow-950"
@@ -5046,12 +5104,13 @@ function SearchBar(t0) {
5046
5104
  autoFocus,
5047
5105
  disabled,
5048
5106
  loading,
5049
- inputRef
5107
+ inputRef,
5108
+ initialValue
5050
5109
  } = t0;
5051
5110
  const placeholder = t1 === void 0 ? "Search" : t1;
5052
5111
  const expandable = t2 === void 0 ? false : t2;
5053
5112
  const size = t3 === void 0 ? "medium" : t3;
5054
- const [searchText, setSearchText] = useState("");
5113
+ const [searchText, setSearchText] = useState(initialValue ?? "");
5055
5114
  const [active, setActive] = useState(false);
5056
5115
  const deferredValues = useDebounceValue(searchText, 200);
5057
5116
  let t4;
@@ -7405,7 +7464,7 @@ const VirtualTableHeader = React__default.memo(function VirtualTableHeader2(t0)
7405
7464
  const thisColumnIsResizing = isResizingIndex === columnIndex;
7406
7465
  const anotherColumnIsResizing = isResizingIndex !== columnIndex && isResizingIndex > 0;
7407
7466
  const hovered = !anotherColumnIsResizing && (onHover || thisColumnIsResizing);
7408
- const t3 = isDragging ? "bg-primary-bg dark:bg-primary-bg-dark" : "bg-surface-50 dark:bg-surface-800";
7467
+ const t3 = isDragging ? "bg-primary-bg dark:bg-primary-bg-dark" : "bg-surface-50 dark:bg-surface-900";
7409
7468
  const t4 = !isDragging && "hover:bg-surface-100 dark:hover:bg-surface-900 hover:bg-opacity-50 hover:bg-surface-100/50 dark:hover:bg-opacity-50 dark:hover:bg-surface-900/50";
7410
7469
  const t5 = column.frozen ? "sticky left-0 z-10" : "relative z-0";
7411
7470
  const t6 = isDraggable && "cursor-grab";
@@ -7496,7 +7555,7 @@ const VirtualTableHeader = React__default.memo(function VirtualTableHeader2(t0)
7496
7555
  }
7497
7556
  let t18;
7498
7557
  if ($[28] !== column.key || $[29] !== column.sortable || $[30] !== hovered || $[31] !== onColumnSort || $[32] !== onHover || $[33] !== openFilter || $[34] !== sort) {
7499
- t18 = column.sortable && (sort || hovered || openFilter) && /* @__PURE__ */ jsx(Badge, { color: "secondary", invisible: !sort, children: /* @__PURE__ */ jsxs(IconButton, { size: "small", className: onHover || openFilter ? "bg-white dark:bg-surface-800" : void 0, onClick: () => {
7558
+ t18 = column.sortable && (sort || hovered || openFilter) && /* @__PURE__ */ jsx(Badge, { color: "secondary", invisible: !sort, children: /* @__PURE__ */ jsxs(IconButton, { size: "small", className: onHover || openFilter ? "bg-white dark:bg-surface-900" : void 0, onClick: () => {
7500
7559
  onColumnSort(column.key);
7501
7560
  }, children: [
7502
7561
  !sort && /* @__PURE__ */ jsx(ArrowUpIcon, {}),
@@ -7528,7 +7587,7 @@ const VirtualTableHeader = React__default.memo(function VirtualTableHeader2(t0)
7528
7587
  }
7529
7588
  let t20;
7530
7589
  if ($[39] !== column || $[40] !== createFilterField || $[41] !== filter || $[42] !== hidden || $[43] !== onHover || $[44] !== openFilter || $[45] !== update) {
7531
- t20 = column.filter && createFilterField && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Badge, { color: "secondary", invisible: !filter, children: /* @__PURE__ */ jsx(Popover, { open: openFilter, onOpenChange: setOpenFilter, className: hidden ? "hidden" : void 0, modal: true, trigger: /* @__PURE__ */ jsx(IconButton, { className: onHover || openFilter ? "bg-white dark:bg-surface-800" : void 0, size: "small", onClick: handleSettingsClick, children: /* @__PURE__ */ jsx(FilterIcon, { size: iconSize.small }) }), children: /* @__PURE__ */ jsx(FilterForm, { column, filter, onHover, onFilterUpdate: update, createFilterField, hidden, setHidden }) }) }) });
7590
+ t20 = column.filter && createFilterField && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Badge, { color: "secondary", invisible: !filter, children: /* @__PURE__ */ jsx(Popover, { open: openFilter, onOpenChange: setOpenFilter, className: hidden ? "hidden" : void 0, modal: true, trigger: /* @__PURE__ */ jsx(IconButton, { className: onHover || openFilter ? "bg-white dark:bg-surface-900" : void 0, size: "small", onClick: handleSettingsClick, children: /* @__PURE__ */ jsx(FilterIcon, { size: iconSize.small }) }), children: /* @__PURE__ */ jsx(FilterForm, { column, filter, onHover, onFilterUpdate: update, createFilterField, hidden, setHidden }) }) }) });
7532
7591
  $[39] = column;
7533
7592
  $[40] = createFilterField;
7534
7593
  $[41] = filter;
@@ -7957,7 +8016,7 @@ const VirtualTableHeaderRow = ({
7957
8016
  setIsResizing(index_0);
7958
8017
  setCursorDocument(true);
7959
8018
  }, [setCursorDocument]);
7960
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cls(defaultBorderMixin, "z-20 sticky min-w-full flex w-fit flex-row top-0 left-0 border-b bg-surface-50 dark:bg-surface-800"), style: {
8019
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: cls(defaultBorderMixin, "z-20 sticky min-w-full flex w-fit flex-row top-0 left-0 border-b bg-surface-50 dark:bg-surface-900"), style: {
7961
8020
  height: headerHeight
7962
8021
  }, children: [
7963
8022
  columns.map((column_0, columnIndex) => {
@@ -8002,7 +8061,7 @@ const VirtualTableRow = React__default.memo(function VirtualTableRow2(t0) {
8002
8061
  const onClick = t1;
8003
8062
  let t2;
8004
8063
  if ($[4] !== hoverRow || $[5] !== onRowClick || $[6] !== rowClassName || $[7] !== rowData) {
8005
- t2 = cls("flex min-w-full text-sm border-b border-surface-200/60 dark:border-surface-700/60 dark:bg-surface-900", rowClassName ? rowClassName(rowData) : "", {
8064
+ t2 = cls("flex min-w-full text-sm border-b border-surface-200/60 dark:border-surface-700/60 dark:bg-surface-800", rowClassName ? rowClassName(rowData) : "", {
8006
8065
  "hover:!bg-surface-50/75 dark:hover:!bg-surface-800/75": hoverRow,
8007
8066
  "cursor-pointer ": onRowClick
8008
8067
  });
@@ -8098,7 +8157,7 @@ const innerElementType = forwardRef((t0, ref) => {
8098
8157
  /* @__PURE__ */ jsx("div", { style: {
8099
8158
  position: "sticky",
8100
8159
  top: 0,
8101
- zIndex: 10
8160
+ zIndex: 20
8102
8161
  }, children: /* @__PURE__ */ jsx(VirtualTableHeaderRow, { ...virtualTableProps }) }),
8103
8162
  !customView && children
8104
8163
  ] }) }),
@@ -8291,7 +8350,7 @@ const VirtualTable = React__default.memo(function VirtualTable2({
8291
8350
  const customView = error ? /* @__PURE__ */ jsxs(CenteredView, { maxWidth: "2xl", className: "flex flex-col gap-2", children: [
8292
8351
  /* @__PURE__ */ jsx(Typography, { variant: "h6", children: "Error" }),
8293
8352
  error?.message && /* @__PURE__ */ jsx(SafeLinkRenderer, { text: error.message })
8294
- ] }) : empty ? loading ? /* @__PURE__ */ jsx(CircularProgressCenter, {}) : /* @__PURE__ */ jsx("div", { className: "flex flex-col overflow-auto items-center justify-center p-8 h-full", children: emptyComponent }) : void 0;
8353
+ ] }) : empty ? loading ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center py-12 px-8", children: /* @__PURE__ */ jsx(CircularProgress, { size: "small" }) }) : /* @__PURE__ */ jsx("div", { className: "flex flex-col overflow-auto items-center justify-center py-12 px-8", children: emptyComponent }) : void 0;
8295
8354
  const virtualListController = useMemo(() => ({
8296
8355
  data,
8297
8356
  rowHeight,
@@ -8386,7 +8445,7 @@ const SortableCellWrapper = (t0) => {
8386
8445
  t5 = $[8];
8387
8446
  }
8388
8447
  const style = t5;
8389
- const t6 = frozen && "sticky left-0 z-10 bg-white dark:bg-surface-800";
8448
+ const t6 = frozen && "sticky left-0 z-10 bg-white dark:bg-surface-900";
8390
8449
  let t7;
8391
8450
  if ($[9] !== t6) {
8392
8451
  t7 = cls("flex-shrink-0", t6);
@@ -8467,7 +8526,7 @@ function MemoizedList({
8467
8526
  columnIndex,
8468
8527
  extraData
8469
8528
  }
8470
- ) }, `cell_wrapper_${column.key}`) : /* @__PURE__ */ jsx("div", { className: cls("flex-shrink-0 relative", column.frozen && "sticky left-0 z-10 bg-white dark:bg-surface-800"), style: {
8529
+ ) }, `cell_wrapper_${column.key}`) : /* @__PURE__ */ jsx("div", { className: cls("flex-shrink-0 relative", column.frozen && "sticky left-0 z-10 bg-white dark:bg-surface-900"), style: {
8471
8530
  minWidth: column.width,
8472
8531
  maxWidth: column.width,
8473
8532
  width: column.width
@@ -8608,6 +8667,7 @@ export {
8608
8667
  ErrorBoundary,
8609
8668
  ExpandablePanel,
8610
8669
  FileUpload,
8670
+ FilterChip,
8611
8671
  GitHubIcon,
8612
8672
  HandleIcon,
8613
8673
  IconButton,