baaz-custom-components 5.0.25 → 5.0.27

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.mjs CHANGED
@@ -1949,7 +1949,7 @@ function exportExcel(rows, name) {
1949
1949
  }
1950
1950
 
1951
1951
  // src/components/custom/grid/gridHeader.tsx
1952
- import { useEffect as useEffect5, useRef, useState as useState6 } from "react";
1952
+ import { useEffect as useEffect5, useRef, useState as useState6, useMemo as useMemo3 } from "react";
1953
1953
  import {
1954
1954
  FileText,
1955
1955
  FileSpreadsheet,
@@ -1958,7 +1958,8 @@ import {
1958
1958
  Ellipsis,
1959
1959
  X as X2,
1960
1960
  Plus,
1961
- Trash2
1961
+ Trash2,
1962
+ Check
1962
1963
  } from "lucide-react";
1963
1964
  import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
1964
1965
  var GridHeader = ({
@@ -1971,7 +1972,8 @@ var GridHeader = ({
1971
1972
  searchValue,
1972
1973
  searchkey = "",
1973
1974
  filterList,
1974
- onFilterChange
1975
+ onFilterChange,
1976
+ initialFilters = []
1975
1977
  }) => {
1976
1978
  const [downloadMenu, setDownloadMenu] = useState6(false);
1977
1979
  const [filterMenu, setFilterMenu] = useState6(false);
@@ -1980,17 +1982,29 @@ var GridHeader = ({
1980
1982
  const downloadRef = useRef(null);
1981
1983
  const filterRef = useRef(null);
1982
1984
  const filterDropdownRef = useRef(null);
1985
+ useEffect5(() => {
1986
+ if (initialFilters && initialFilters.length > 0) {
1987
+ const initialConditions = initialFilters.map(
1988
+ (filter, index) => ({
1989
+ id: crypto.randomUUID(),
1990
+ column: filter.column,
1991
+ operator: filter.operator,
1992
+ value: filter.value,
1993
+ logic: index === 0 ? "WHERE" : filter.logic || "AND"
1994
+ })
1995
+ );
1996
+ setConditions(initialConditions);
1997
+ }
1998
+ }, []);
1983
1999
  useEffect5(() => {
1984
2000
  if (!filterMenu || !filterDropdownRef.current) return;
1985
2001
  const dropdown = filterDropdownRef.current;
1986
2002
  const rect = dropdown.getBoundingClientRect();
1987
- const overflowRight = rect.right > window.innerWidth;
1988
- const overflowBottom = rect.bottom > window.innerHeight;
1989
- if (overflowRight) {
2003
+ if (rect.right > window.innerWidth) {
1990
2004
  dropdown.style.left = "auto";
1991
2005
  dropdown.style.right = "0";
1992
2006
  }
1993
- if (overflowBottom) {
2007
+ if (rect.bottom > window.innerHeight) {
1994
2008
  dropdown.style.top = "auto";
1995
2009
  dropdown.style.bottom = "100%";
1996
2010
  dropdown.style.marginBottom = "8px";
@@ -2008,17 +2022,44 @@ var GridHeader = ({
2008
2022
  document.addEventListener("mousedown", handleClickOutside);
2009
2023
  return () => document.removeEventListener("mousedown", handleClickOutside);
2010
2024
  }, []);
2011
- useEffect5(() => {
2012
- onFilterChange == null ? void 0 : onFilterChange({
2013
- conditions
2014
- });
2025
+ const isValidFilter = (condition) => {
2026
+ if (!condition.column || !condition.operator) return false;
2027
+ if (condition.operator === "date-range") {
2028
+ const rangeValue = condition.value;
2029
+ return !!((rangeValue == null ? void 0 : rangeValue.start) && (rangeValue == null ? void 0 : rangeValue.end));
2030
+ }
2031
+ return condition.value !== void 0 && condition.value !== "";
2032
+ };
2033
+ const allFiltersValid = useMemo3(() => {
2034
+ if (conditions.length === 0) return false;
2035
+ return conditions.every(isValidFilter);
2015
2036
  }, [conditions]);
2037
+ const activeFilterCount = (initialFilters == null ? void 0 : initialFilters.length) || 0;
2038
+ const formatFiltersForApi = (conditions2) => {
2039
+ return conditions2.filter(isValidFilter).map(({ column, operator, value, logic }, index) => ({
2040
+ column,
2041
+ operator,
2042
+ value,
2043
+ logic: index === 0 ? "WHERE" : logic != null ? logic : "AND"
2044
+ }));
2045
+ };
2046
+ const hasChangesFromInitial = useMemo3(() => {
2047
+ if (conditions.length === 0 && activeFilterCount === 0) return false;
2048
+ if (conditions.length !== activeFilterCount) return true;
2049
+ const formatted = formatFiltersForApi(conditions);
2050
+ const initialFormatted = initialFilters || [];
2051
+ if (formatted.length !== initialFormatted.length) return true;
2052
+ return JSON.stringify(formatted) !== JSON.stringify(initialFormatted);
2053
+ }, [conditions, initialFilters, activeFilterCount]);
2054
+ const canApply = useMemo3(() => {
2055
+ return allFiltersValid && hasChangesFromInitial;
2056
+ }, [allFiltersValid, hasChangesFromInitial]);
2016
2057
  const addCondition = () => {
2017
2058
  setConditions((prev) => [
2018
2059
  ...prev,
2019
2060
  {
2020
2061
  id: crypto.randomUUID(),
2021
- logic: prev.length === 0 ? void 0 : "AND"
2062
+ logic: prev.length === 0 ? "WHERE" : "AND"
2022
2063
  }
2023
2064
  ]);
2024
2065
  };
@@ -2028,22 +2069,48 @@ var GridHeader = ({
2028
2069
  );
2029
2070
  };
2030
2071
  const deleteCondition = (id) => {
2031
- setConditions((prev) => prev.filter((c) => c.id !== id));
2072
+ const updatedConditions = conditions.filter((c) => c.id !== id);
2073
+ setConditions(updatedConditions);
2074
+ if (updatedConditions.length === 0) {
2075
+ setFilterMenu(false);
2076
+ onFilterChange == null ? void 0 : onFilterChange({
2077
+ conditions: [],
2078
+ formatted: [],
2079
+ action: "clear"
2080
+ });
2081
+ }
2082
+ };
2083
+ const applyFilters = () => {
2084
+ if (!canApply) return;
2085
+ const formatted = formatFiltersForApi(conditions);
2086
+ onFilterChange == null ? void 0 : onFilterChange({
2087
+ conditions: conditions.filter(isValidFilter),
2088
+ formatted,
2089
+ action: "apply"
2090
+ });
2091
+ setFilterMenu(false);
2032
2092
  };
2033
2093
  const clearFilters = () => {
2034
2094
  setConditions([]);
2095
+ setFilterMenu(false);
2096
+ onFilterChange == null ? void 0 : onFilterChange({
2097
+ conditions: [],
2098
+ formatted: [],
2099
+ action: "clear"
2100
+ });
2035
2101
  };
2036
- return /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between bg-card py-2 px-4", children: [
2102
+ return /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between bg-card py-2 px-4 rounded-tl-md rounded-tr-md", children: [
2037
2103
  /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-3", children: [
2038
2104
  filterList.length > 0 && /* @__PURE__ */ jsxs17("div", { className: "relative", ref: filterRef, children: [
2039
2105
  /* @__PURE__ */ jsxs17(
2040
2106
  "button",
2041
2107
  {
2042
2108
  onClick: () => setFilterMenu((p) => !p),
2043
- className: "flex items-center gap-2 px-3 py-2 rounded-md hover:bg-input text-sm",
2109
+ className: "flex items-center gap-2 px-3 py-2 rounded-md hover:bg-input text-sm cursor-pointer",
2044
2110
  children: [
2045
2111
  /* @__PURE__ */ jsx23(ListFilter, { size: 16 }),
2046
- "Filters"
2112
+ "Filters",
2113
+ activeFilterCount > 0 && /* @__PURE__ */ jsx23("span", { className: "ml-1 px-1.5 py-0.5 text-xs bg-primary text-primary-foreground rounded-full font-medium", children: activeFilterCount })
2047
2114
  ]
2048
2115
  }
2049
2116
  ),
@@ -2051,7 +2118,7 @@ var GridHeader = ({
2051
2118
  "div",
2052
2119
  {
2053
2120
  ref: filterDropdownRef,
2054
- className: "absolute top-full left-0 mt-2 w-[650px] max-w-[95vw] p-4 rounded-md border bg-background shadow-lg z-50 space-y-4",
2121
+ className: "absolute top-full left-0 mt-2 w-[650px] max-w-[95vw] p-4 rounded-md border !bg-background shadow-lg z-50 space-y-4",
2055
2122
  children: [
2056
2123
  /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between", children: [
2057
2124
  /* @__PURE__ */ jsx23("span", { className: "text-sm font-medium", children: "In this view, show records" }),
@@ -2059,16 +2126,20 @@ var GridHeader = ({
2059
2126
  "button",
2060
2127
  {
2061
2128
  onClick: clearFilters,
2062
- className: "p-2 rounded-md hover:bg-destructive/30",
2129
+ className: "p-2 rounded-md hover:bg-destructive/30 cursor-pointer",
2130
+ title: "Clear all filters",
2063
2131
  children: /* @__PURE__ */ jsx23(X2, { size: 16 })
2064
2132
  }
2065
2133
  )
2066
2134
  ] }),
2067
2135
  /* @__PURE__ */ jsx23("div", { className: "space-y-3", children: conditions.map((condition, index) => {
2068
- var _a, _b, _c, _d;
2136
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
2069
2137
  const selectedColumn = filterList.find(
2070
2138
  (f) => f.columnName.value === condition.column
2071
2139
  );
2140
+ const selectedOperator = selectedColumn == null ? void 0 : selectedColumn.operators.find(
2141
+ (op) => op.value === condition.operator
2142
+ );
2072
2143
  return /* @__PURE__ */ jsxs17(
2073
2144
  "div",
2074
2145
  {
@@ -2083,8 +2154,8 @@ var GridHeader = ({
2083
2154
  }),
2084
2155
  className: "w-full px-2 py-2 rounded-md bg-input text-sm",
2085
2156
  children: [
2086
- /* @__PURE__ */ jsx23("option", { value: "AND", children: "and" }),
2087
- /* @__PURE__ */ jsx23("option", { value: "OR", children: "or" })
2157
+ /* @__PURE__ */ jsx23("option", { value: "AND", children: "AND" }),
2158
+ /* @__PURE__ */ jsx23("option", { value: "OR", children: "OR" })
2088
2159
  ]
2089
2160
  }
2090
2161
  ) }),
@@ -2099,7 +2170,7 @@ var GridHeader = ({
2099
2170
  }),
2100
2171
  className: "flex-1 min-w-0 px-3 py-2 rounded-md bg-input text-sm",
2101
2172
  children: [
2102
- /* @__PURE__ */ jsx23("option", { value: "", children: "Column" }),
2173
+ /* @__PURE__ */ jsx23("option", { value: "", disabled: true, children: "Column" }),
2103
2174
  filterList.map((f) => /* @__PURE__ */ jsx23(
2104
2175
  "option",
2105
2176
  {
@@ -2120,29 +2191,91 @@ var GridHeader = ({
2120
2191
  operator: e.target.value,
2121
2192
  value: void 0
2122
2193
  }),
2123
- className: "flex-1 min-w-0 px-3 py-2 rounded-md bg-input text-sm",
2194
+ className: "flex-1 min-w-0 px-3 py-2 rounded-md bg-input text-sm disabled:opacity-50 disabled:cursor-not-allowed",
2124
2195
  children: [
2125
- /* @__PURE__ */ jsx23("option", { value: "", children: "Operator" }),
2126
- selectedColumn == null ? void 0 : selectedColumn.operators.map((op) => /* @__PURE__ */ jsx23("option", { value: op.label, children: op.label }, op.label))
2196
+ /* @__PURE__ */ jsx23("option", { value: "", disabled: true, children: "Operator" }),
2197
+ selectedColumn == null ? void 0 : selectedColumn.operators.map((op) => {
2198
+ var _a2;
2199
+ return /* @__PURE__ */ jsx23("option", { value: (_a2 = op.value) != null ? _a2 : "", children: op.label }, op.value);
2200
+ })
2127
2201
  ]
2128
2202
  }
2129
2203
  ),
2130
- /* @__PURE__ */ jsx23(
2131
- "input",
2132
- {
2133
- value: (_d = condition.value) != null ? _d : "",
2134
- onChange: (e) => updateCondition(condition.id, {
2135
- value: e.target.value
2136
- }),
2137
- placeholder: "Enter value",
2138
- className: "flex-1 min-w-0 px-3 py-2 rounded-md bg-input text-sm"
2139
- }
2140
- ),
2204
+ /* @__PURE__ */ jsxs17("div", { className: "flex-1 min-w-0", children: [
2205
+ (selectedOperator == null ? void 0 : selectedOperator.value) === "input" && /* @__PURE__ */ jsx23(
2206
+ "input",
2207
+ {
2208
+ value: (_d = condition.value) != null ? _d : "",
2209
+ onChange: (e) => updateCondition(condition.id, {
2210
+ value: e.target.value
2211
+ }),
2212
+ placeholder: "Enter value",
2213
+ className: "w-full px-3 py-2 rounded-md bg-input text-sm"
2214
+ }
2215
+ ),
2216
+ (selectedOperator == null ? void 0 : selectedOperator.value) === "select" && /* @__PURE__ */ jsxs17(
2217
+ "select",
2218
+ {
2219
+ value: (_e = condition.value) != null ? _e : "",
2220
+ onChange: (e) => updateCondition(condition.id, {
2221
+ value: e.target.value
2222
+ }),
2223
+ className: "w-full px-3 py-2 rounded-md bg-input text-sm",
2224
+ children: [
2225
+ /* @__PURE__ */ jsx23("option", { value: "", disabled: true, children: "Select value" }),
2226
+ (_f = selectedOperator.options) == null ? void 0 : _f.map((opt) => /* @__PURE__ */ jsx23("option", { value: opt.value, children: opt.label }, opt.value))
2227
+ ]
2228
+ }
2229
+ ),
2230
+ (selectedOperator == null ? void 0 : selectedOperator.value) === "date" && /* @__PURE__ */ jsx23(
2231
+ "input",
2232
+ {
2233
+ type: "date",
2234
+ value: (_g = condition.value) != null ? _g : "",
2235
+ onChange: (e) => updateCondition(condition.id, {
2236
+ value: e.target.value
2237
+ }),
2238
+ className: "w-full px-3 py-2 rounded-md bg-input text-sm"
2239
+ }
2240
+ ),
2241
+ (selectedOperator == null ? void 0 : selectedOperator.value) === "date-range" && /* @__PURE__ */ jsxs17("div", { className: "flex gap-2", children: [
2242
+ /* @__PURE__ */ jsx23(
2243
+ "input",
2244
+ {
2245
+ type: "date",
2246
+ value: (_i = (_h = condition.value) == null ? void 0 : _h.start) != null ? _i : "",
2247
+ onChange: (e) => updateCondition(condition.id, {
2248
+ value: __spreadProps(__spreadValues({}, condition.value), {
2249
+ start: e.target.value
2250
+ })
2251
+ }),
2252
+ placeholder: "Start date",
2253
+ className: "w-full px-3 py-2 rounded-md bg-input text-sm"
2254
+ }
2255
+ ),
2256
+ /* @__PURE__ */ jsx23(
2257
+ "input",
2258
+ {
2259
+ type: "date",
2260
+ value: (_k = (_j = condition.value) == null ? void 0 : _j.end) != null ? _k : "",
2261
+ onChange: (e) => updateCondition(condition.id, {
2262
+ value: __spreadProps(__spreadValues({}, condition.value), {
2263
+ end: e.target.value
2264
+ })
2265
+ }),
2266
+ placeholder: "End date",
2267
+ className: "w-full px-3 py-2 rounded-md bg-input text-sm"
2268
+ }
2269
+ )
2270
+ ] }),
2271
+ !selectedOperator && /* @__PURE__ */ jsx23("div", { className: "w-full px-3 py-2 rounded-md bg-input/50 text-sm text-muted-foreground", children: "Select operator" })
2272
+ ] }),
2141
2273
  /* @__PURE__ */ jsx23("div", { className: "w-[40px] flex justify-center shrink-0", children: /* @__PURE__ */ jsx23(
2142
2274
  "button",
2143
2275
  {
2144
2276
  onClick: () => deleteCondition(condition.id),
2145
- className: "p-2 rounded-md hover:bg-destructive/30",
2277
+ className: "p-2 rounded-md hover:bg-destructive/30 cursor-pointer",
2278
+ title: "Delete condition",
2146
2279
  children: /* @__PURE__ */ jsx23(Trash2, { size: 16 })
2147
2280
  }
2148
2281
  ) })
@@ -2151,17 +2284,38 @@ var GridHeader = ({
2151
2284
  condition.id
2152
2285
  );
2153
2286
  }) }),
2154
- /* @__PURE__ */ jsxs17(
2155
- "button",
2156
- {
2157
- onClick: addCondition,
2158
- className: "flex items-center gap-2 text-sm text-primary",
2159
- children: [
2160
- /* @__PURE__ */ jsx23(Plus, { size: 14 }),
2161
- "Add condition"
2162
- ]
2163
- }
2164
- )
2287
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between pt-2 border-t", children: [
2288
+ /* @__PURE__ */ jsxs17(
2289
+ "button",
2290
+ {
2291
+ onClick: addCondition,
2292
+ className: "flex items-center gap-2 text-sm text-primary hover:text-primary/80 cursor-pointer",
2293
+ children: [
2294
+ /* @__PURE__ */ jsx23(Plus, { size: 14 }),
2295
+ "Add condition"
2296
+ ]
2297
+ }
2298
+ ),
2299
+ /* @__PURE__ */ jsxs17(
2300
+ "button",
2301
+ {
2302
+ onClick: applyFilters,
2303
+ disabled: !canApply,
2304
+ className: "flex items-center gap-2 px-4 py-2 rounded-md bg-primary text-primary-foreground text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed hover:bg-primary/90 transition-colors cursor-pointer",
2305
+ children: [
2306
+ /* @__PURE__ */ jsx23(Check, { size: 16 }),
2307
+ "Apply",
2308
+ hasChangesFromInitial && canApply && /* @__PURE__ */ jsx23(
2309
+ "span",
2310
+ {
2311
+ className: "ml-1 w-2 h-2 bg-yellow-400 rounded-full",
2312
+ title: "Unapplied changes"
2313
+ }
2314
+ )
2315
+ ]
2316
+ }
2317
+ )
2318
+ ] })
2165
2319
  ]
2166
2320
  }
2167
2321
  )
@@ -2171,11 +2325,11 @@ var GridHeader = ({
2171
2325
  "button",
2172
2326
  {
2173
2327
  onClick: () => setDownloadMenu((p) => !p),
2174
- className: "p-2 rounded-md hover:bg-input",
2328
+ className: "p-2 rounded-md hover:bg-input cursor-pointer",
2175
2329
  children: /* @__PURE__ */ jsx23(Ellipsis, { size: 16 })
2176
2330
  }
2177
2331
  ),
2178
- downloadMenu && /* @__PURE__ */ jsxs17("div", { className: "absolute top-full right-0 mt-2 w-32 rounded-md border bg-background shadow-lg z-50", children: [
2332
+ downloadMenu && /* @__PURE__ */ jsxs17("div", { className: "absolute top-full right-0 mt-2 w-32 rounded-md border !bg-background shadow-lg z-50 overflow-hidden", children: [
2179
2333
  /* @__PURE__ */ jsxs17(
2180
2334
  "button",
2181
2335
  {
@@ -2183,7 +2337,7 @@ var GridHeader = ({
2183
2337
  onPdf == null ? void 0 : onPdf();
2184
2338
  setDownloadMenu(false);
2185
2339
  },
2186
- className: "flex items-center gap-2 w-full px-3 py-2 text-sm hover:bg-muted",
2340
+ className: "flex items-center gap-2 w-full px-3 py-2 text-sm hover:bg-muted cursor-pointer",
2187
2341
  children: [
2188
2342
  /* @__PURE__ */ jsx23(FileText, { size: 14 }),
2189
2343
  "PDF"
@@ -2197,7 +2351,7 @@ var GridHeader = ({
2197
2351
  onExcel == null ? void 0 : onExcel();
2198
2352
  setDownloadMenu(false);
2199
2353
  },
2200
- className: "flex items-center gap-2 w-full px-3 py-2 text-sm hover:bg-muted",
2354
+ className: "flex items-center gap-2 w-full px-3 py-2 text-sm hover:bg-muted cursor-pointer",
2201
2355
  children: [
2202
2356
  /* @__PURE__ */ jsx23(FileSpreadsheet, { size: 14 }),
2203
2357
  "Excel"
@@ -2215,7 +2369,7 @@ var GridHeader = ({
2215
2369
  "button",
2216
2370
  {
2217
2371
  onClick: () => setSearchOpen(true),
2218
- className: "w-[40px] h-[40px] flex items-center justify-center rounded-md hover:bg-input",
2372
+ className: "w-[40px] h-[40px] flex items-center justify-center rounded-md hover:bg-input cursor-pointer",
2219
2373
  children: /* @__PURE__ */ jsx23(Search, { size: 18 })
2220
2374
  }
2221
2375
  ) : /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2 w-full h-full px-3 rounded-md border border-input bg-background", children: [
@@ -2230,7 +2384,14 @@ var GridHeader = ({
2230
2384
  value: searchValue
2231
2385
  }
2232
2386
  ),
2233
- /* @__PURE__ */ jsx23("button", { onClick: () => setSearchOpen(false), children: /* @__PURE__ */ jsx23(X2, { size: 16 }) })
2387
+ /* @__PURE__ */ jsx23(
2388
+ "button",
2389
+ {
2390
+ onClick: () => setSearchOpen(false),
2391
+ className: "cursor-pointer",
2392
+ children: /* @__PURE__ */ jsx23(X2, { size: 16 })
2393
+ }
2394
+ )
2234
2395
  ] })
2235
2396
  }
2236
2397
  ) })
@@ -2253,7 +2414,8 @@ var Grid = forwardRef(
2253
2414
  downloadable = true,
2254
2415
  fileName,
2255
2416
  fonts,
2256
- onFilterChange
2417
+ onFilterChange,
2418
+ initialFilters
2257
2419
  } = _b, rest = __objRest(_b, [
2258
2420
  "data",
2259
2421
  "columns",
@@ -2265,7 +2427,8 @@ var Grid = forwardRef(
2265
2427
  "downloadable",
2266
2428
  "fileName",
2267
2429
  "fonts",
2268
- "onFilterChange"
2430
+ "onFilterChange",
2431
+ "initialFilters"
2269
2432
  ]);
2270
2433
  const apiRef = useRef2(null);
2271
2434
  const containerRef = useRef2(null);
@@ -2351,7 +2514,8 @@ var Grid = forwardRef(
2351
2514
  onSearch: rest.onSearch,
2352
2515
  searchValue: rest.searchValue,
2353
2516
  filterList: rest.filterList,
2354
- onFilterChange
2517
+ onFilterChange,
2518
+ initialFilters
2355
2519
  }
2356
2520
  ),
2357
2521
  /* @__PURE__ */ jsx24("div", { className: "flex-1 w-full overflow-hidden", ref: containerRef, children: /* @__PURE__ */ jsx24(WillowDark, { fonts, children: /* @__PURE__ */ jsx24("div", { className: "w-full h-full relative", children: rest.loading ? /* @__PURE__ */ jsx24("div", { className: "absolute inset-0 bg-background/60 backdrop-blur-sm flex items-center justify-center z-10", children: /* @__PURE__ */ jsx24("div", { className: "animate-spin rounded-full h-8 w-8 border-2 border-primary border-t-transparent" }) }) : /* @__PURE__ */ jsx24(
@@ -2454,7 +2618,7 @@ function Pagination({
2454
2618
  const handlePageSizeChange = (size) => {
2455
2619
  onPageSizeChange == null ? void 0 : onPageSizeChange(size);
2456
2620
  };
2457
- return /* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between bg-card px-3 py-2", children: [
2621
+ return /* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between bg-card px-3 py-2 rounded-br-md rounded-bl-md", children: [
2458
2622
  /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-3 text-xs text-muted-foreground tracking-wider font-medium", children: [
2459
2623
  /* @__PURE__ */ jsxs20("span", { children: [
2460
2624
  "Showing ",