@mieweb/ui 0.6.0 → 0.6.1-dev.121

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.
@@ -201,5 +201,5 @@ function SortIcon({ direction }) {
201
201
  }
202
202
 
203
203
  export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
204
- //# sourceMappingURL=chunk-DNPRRYPQ.js.map
205
- //# sourceMappingURL=chunk-DNPRRYPQ.js.map
204
+ //# sourceMappingURL=chunk-KL2S36FM.js.map
205
+ //# sourceMappingURL=chunk-KL2S36FM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Table/Table.tsx"],"names":[],"mappings":"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","file":"chunk-KL2S36FM.js","sourcesContent":["import * as React from 'react';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Table Root\n// ============================================================================\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n /** Whether to make the table responsive with horizontal scroll */\n responsive?: boolean;\n}\n\n/**\n * An accessible table component.\n *\n * Prefer DataVis NITRO in most cases -- it is designed to be simple out of the box while\n * exposing power-user features for click-curious users. Use `Table` only in lightweight\n * situations where that overhead is genuinely unneeded.\n *\n * @example\n * ```tsx\n * <Table>\n * <TableHeader>\n * <TableRow>\n * <TableHead>Name</TableHead>\n * <TableHead>Email</TableHead>\n * </TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow>\n * <TableCell>John Doe</TableCell>\n * <TableCell>john@example.com</TableCell>\n * </TableRow>\n * </TableBody>\n * </Table>\n * ```\n */\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\n ({ className, responsive = true, children, ...props }, ref) => {\n const table = (\n <table\n ref={ref}\n data-slot=\"table\"\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n >\n {children}\n </table>\n );\n\n if (responsive) {\n return <div className=\"relative w-full overflow-auto\">{table}</div>;\n }\n\n return table;\n }\n);\n\nTable.displayName = 'Table';\n\n// ============================================================================\n// Table Header\n// ============================================================================\n\nexport type TableHeaderProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, ...props }, ref) => (\n <thead\n ref={ref}\n data-slot=\"table-header\"\n className={cn('[&_tr]:border-b', className)}\n {...props}\n />\n )\n);\n\nTableHeader.displayName = 'TableHeader';\n\n// ============================================================================\n// Table Body\n// ============================================================================\n\nexport type TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n data-slot=\"table-body\"\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n )\n);\n\nTableBody.displayName = 'TableBody';\n\n// ============================================================================\n// Table Footer\n// ============================================================================\n\nexport type TableFooterProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, TableFooterProps>(\n ({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n data-slot=\"table-footer\"\n className={cn(\n 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n )\n);\n\nTableFooter.displayName = 'TableFooter';\n\n// ============================================================================\n// Table Row\n// ============================================================================\n\nexport interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {\n /** Whether the row is selected */\n selected?: boolean;\n}\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, selected, ...props }, ref) => (\n <tr\n ref={ref}\n data-slot=\"table-row\"\n data-selected={selected}\n className={cn(\n 'border-border border-b transition-colors',\n 'hover:bg-muted/50',\n 'data-[selected=true]:bg-muted',\n className\n )}\n {...props}\n />\n )\n);\n\nTableRow.displayName = 'TableRow';\n\n// ============================================================================\n// Table Head\n// ============================================================================\n\nexport interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {\n /** Sortable column configuration */\n sortable?: boolean;\n /** Current sort direction */\n sortDirection?: 'asc' | 'desc' | null;\n /** Callback when sort is triggered */\n onSort?: () => void;\n}\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, sortable, sortDirection, onSort, children, ...props }, ref) => {\n const content = sortable ? (\n <button\n type=\"button\"\n onClick={onSort}\n className={cn(\n 'hover:text-foreground flex items-center gap-1 transition-colors',\n 'focus-visible:ring-ring rounded focus-visible:ring-2 focus-visible:outline-none'\n )}\n aria-label={`Sort column ${sortDirection === 'asc' ? 'descending' : 'ascending'}`}\n >\n {children}\n <SortIcon direction={sortDirection} />\n </button>\n ) : (\n children\n );\n\n return (\n <th\n ref={ref}\n data-slot=\"table-head\"\n aria-sort={\n sortable\n ? sortDirection === 'asc'\n ? 'ascending'\n : sortDirection === 'desc'\n ? 'descending'\n : 'none'\n : undefined\n }\n className={cn(\n 'text-muted-foreground h-12 px-4 text-left align-middle font-medium',\n '[&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n >\n {content}\n </th>\n );\n }\n);\n\nTableHead.displayName = 'TableHead';\n\n// ============================================================================\n// Table Cell\n// ============================================================================\n\nexport type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, ...props }, ref) => (\n <td\n ref={ref}\n data-slot=\"table-cell\"\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n )\n);\n\nTableCell.displayName = 'TableCell';\n\n// ============================================================================\n// Table Caption\n// ============================================================================\n\nexport type TableCaptionProps = React.HTMLAttributes<HTMLTableCaptionElement>;\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n TableCaptionProps\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n data-slot=\"table-caption\"\n className={cn('text-muted-foreground mt-4 text-sm', className)}\n {...props}\n />\n));\n\nTableCaption.displayName = 'TableCaption';\n\n// ============================================================================\n// Sort Icon\n// ============================================================================\n\nfunction SortIcon({ direction }: { direction?: 'asc' | 'desc' | null }) {\n if (direction === 'asc') {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"shrink-0\"\n >\n <path d=\"m5 12 7-7 7 7\" />\n </svg>\n );\n }\n\n if (direction === 'desc') {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"shrink-0\"\n >\n <path d=\"m19 12-7 7-7-7\" />\n </svg>\n );\n }\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"shrink-0 opacity-50\"\n >\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </svg>\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableRow,\n TableHead,\n TableCell,\n TableCaption,\n};\n"]}
@@ -230,5 +230,5 @@ exports.TableFooter = TableFooter;
230
230
  exports.TableHead = TableHead;
231
231
  exports.TableHeader = TableHeader;
232
232
  exports.TableRow = TableRow;
233
- //# sourceMappingURL=chunk-OYKS2JBB.cjs.map
234
- //# sourceMappingURL=chunk-OYKS2JBB.cjs.map
233
+ //# sourceMappingURL=chunk-TN33E2VN.cjs.map
234
+ //# sourceMappingURL=chunk-TN33E2VN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Table/Table.tsx"],"names":["React","jsx","cn","jsxs"],"mappings":"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","file":"chunk-TN33E2VN.cjs","sourcesContent":["import * as React from 'react';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Table Root\n// ============================================================================\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n /** Whether to make the table responsive with horizontal scroll */\n responsive?: boolean;\n}\n\n/**\n * An accessible table component.\n *\n * Prefer DataVis NITRO in most cases -- it is designed to be simple out of the box while\n * exposing power-user features for click-curious users. Use `Table` only in lightweight\n * situations where that overhead is genuinely unneeded.\n *\n * @example\n * ```tsx\n * <Table>\n * <TableHeader>\n * <TableRow>\n * <TableHead>Name</TableHead>\n * <TableHead>Email</TableHead>\n * </TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow>\n * <TableCell>John Doe</TableCell>\n * <TableCell>john@example.com</TableCell>\n * </TableRow>\n * </TableBody>\n * </Table>\n * ```\n */\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\n ({ className, responsive = true, children, ...props }, ref) => {\n const table = (\n <table\n ref={ref}\n data-slot=\"table\"\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n >\n {children}\n </table>\n );\n\n if (responsive) {\n return <div className=\"relative w-full overflow-auto\">{table}</div>;\n }\n\n return table;\n }\n);\n\nTable.displayName = 'Table';\n\n// ============================================================================\n// Table Header\n// ============================================================================\n\nexport type TableHeaderProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, ...props }, ref) => (\n <thead\n ref={ref}\n data-slot=\"table-header\"\n className={cn('[&_tr]:border-b', className)}\n {...props}\n />\n )\n);\n\nTableHeader.displayName = 'TableHeader';\n\n// ============================================================================\n// Table Body\n// ============================================================================\n\nexport type TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n data-slot=\"table-body\"\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n )\n);\n\nTableBody.displayName = 'TableBody';\n\n// ============================================================================\n// Table Footer\n// ============================================================================\n\nexport type TableFooterProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, TableFooterProps>(\n ({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n data-slot=\"table-footer\"\n className={cn(\n 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n )\n);\n\nTableFooter.displayName = 'TableFooter';\n\n// ============================================================================\n// Table Row\n// ============================================================================\n\nexport interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {\n /** Whether the row is selected */\n selected?: boolean;\n}\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, selected, ...props }, ref) => (\n <tr\n ref={ref}\n data-slot=\"table-row\"\n data-selected={selected}\n className={cn(\n 'border-border border-b transition-colors',\n 'hover:bg-muted/50',\n 'data-[selected=true]:bg-muted',\n className\n )}\n {...props}\n />\n )\n);\n\nTableRow.displayName = 'TableRow';\n\n// ============================================================================\n// Table Head\n// ============================================================================\n\nexport interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElement> {\n /** Sortable column configuration */\n sortable?: boolean;\n /** Current sort direction */\n sortDirection?: 'asc' | 'desc' | null;\n /** Callback when sort is triggered */\n onSort?: () => void;\n}\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, sortable, sortDirection, onSort, children, ...props }, ref) => {\n const content = sortable ? (\n <button\n type=\"button\"\n onClick={onSort}\n className={cn(\n 'hover:text-foreground flex items-center gap-1 transition-colors',\n 'focus-visible:ring-ring rounded focus-visible:ring-2 focus-visible:outline-none'\n )}\n aria-label={`Sort column ${sortDirection === 'asc' ? 'descending' : 'ascending'}`}\n >\n {children}\n <SortIcon direction={sortDirection} />\n </button>\n ) : (\n children\n );\n\n return (\n <th\n ref={ref}\n data-slot=\"table-head\"\n aria-sort={\n sortable\n ? sortDirection === 'asc'\n ? 'ascending'\n : sortDirection === 'desc'\n ? 'descending'\n : 'none'\n : undefined\n }\n className={cn(\n 'text-muted-foreground h-12 px-4 text-left align-middle font-medium',\n '[&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n >\n {content}\n </th>\n );\n }\n);\n\nTableHead.displayName = 'TableHead';\n\n// ============================================================================\n// Table Cell\n// ============================================================================\n\nexport type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, ...props }, ref) => (\n <td\n ref={ref}\n data-slot=\"table-cell\"\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n )\n);\n\nTableCell.displayName = 'TableCell';\n\n// ============================================================================\n// Table Caption\n// ============================================================================\n\nexport type TableCaptionProps = React.HTMLAttributes<HTMLTableCaptionElement>;\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n TableCaptionProps\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n data-slot=\"table-caption\"\n className={cn('text-muted-foreground mt-4 text-sm', className)}\n {...props}\n />\n));\n\nTableCaption.displayName = 'TableCaption';\n\n// ============================================================================\n// Sort Icon\n// ============================================================================\n\nfunction SortIcon({ direction }: { direction?: 'asc' | 'desc' | null }) {\n if (direction === 'asc') {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"shrink-0\"\n >\n <path d=\"m5 12 7-7 7 7\" />\n </svg>\n );\n }\n\n if (direction === 'desc') {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"shrink-0\"\n >\n <path d=\"m19 12-7 7-7-7\" />\n </svg>\n );\n }\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className=\"shrink-0 opacity-50\"\n >\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </svg>\n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableRow,\n TableHead,\n TableCell,\n TableCaption,\n};\n"]}
@@ -1,41 +1,41 @@
1
1
  'use strict';
2
2
 
3
- var chunkOYKS2JBB_cjs = require('../../chunk-OYKS2JBB.cjs');
3
+ var chunkTN33E2VN_cjs = require('../../chunk-TN33E2VN.cjs');
4
4
  require('../../chunk-OR5DRJCW.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Table", {
9
9
  enumerable: true,
10
- get: function () { return chunkOYKS2JBB_cjs.Table; }
10
+ get: function () { return chunkTN33E2VN_cjs.Table; }
11
11
  });
12
12
  Object.defineProperty(exports, "TableBody", {
13
13
  enumerable: true,
14
- get: function () { return chunkOYKS2JBB_cjs.TableBody; }
14
+ get: function () { return chunkTN33E2VN_cjs.TableBody; }
15
15
  });
16
16
  Object.defineProperty(exports, "TableCaption", {
17
17
  enumerable: true,
18
- get: function () { return chunkOYKS2JBB_cjs.TableCaption; }
18
+ get: function () { return chunkTN33E2VN_cjs.TableCaption; }
19
19
  });
20
20
  Object.defineProperty(exports, "TableCell", {
21
21
  enumerable: true,
22
- get: function () { return chunkOYKS2JBB_cjs.TableCell; }
22
+ get: function () { return chunkTN33E2VN_cjs.TableCell; }
23
23
  });
24
24
  Object.defineProperty(exports, "TableFooter", {
25
25
  enumerable: true,
26
- get: function () { return chunkOYKS2JBB_cjs.TableFooter; }
26
+ get: function () { return chunkTN33E2VN_cjs.TableFooter; }
27
27
  });
28
28
  Object.defineProperty(exports, "TableHead", {
29
29
  enumerable: true,
30
- get: function () { return chunkOYKS2JBB_cjs.TableHead; }
30
+ get: function () { return chunkTN33E2VN_cjs.TableHead; }
31
31
  });
32
32
  Object.defineProperty(exports, "TableHeader", {
33
33
  enumerable: true,
34
- get: function () { return chunkOYKS2JBB_cjs.TableHeader; }
34
+ get: function () { return chunkTN33E2VN_cjs.TableHeader; }
35
35
  });
36
36
  Object.defineProperty(exports, "TableRow", {
37
37
  enumerable: true,
38
- get: function () { return chunkOYKS2JBB_cjs.TableRow; }
38
+ get: function () { return chunkTN33E2VN_cjs.TableRow; }
39
39
  });
40
40
  //# sourceMappingURL=index.cjs.map
41
41
  //# sourceMappingURL=index.cjs.map
@@ -7,6 +7,10 @@ interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {
7
7
  /**
8
8
  * An accessible table component.
9
9
  *
10
+ * Prefer DataVis NITRO in most cases -- it is designed to be simple out of the box while
11
+ * exposing power-user features for click-curious users. Use `Table` only in lightweight
12
+ * situations where that overhead is genuinely unneeded.
13
+ *
10
14
  * @example
11
15
  * ```tsx
12
16
  * <Table>
@@ -7,6 +7,10 @@ interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {
7
7
  /**
8
8
  * An accessible table component.
9
9
  *
10
+ * Prefer DataVis NITRO in most cases -- it is designed to be simple out of the box while
11
+ * exposing power-user features for click-curious users. Use `Table` only in lightweight
12
+ * situations where that overhead is genuinely unneeded.
13
+ *
10
14
  * @example
11
15
  * ```tsx
12
16
  * <Table>
@@ -1,4 +1,4 @@
1
- export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '../../chunk-DNPRRYPQ.js';
1
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '../../chunk-KL2S36FM.js';
2
2
  import '../../chunk-F3SOEIN2.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.cjs CHANGED
@@ -13,7 +13,7 @@ var chunkX7S76WB7_cjs = require('./chunk-X7S76WB7.cjs');
13
13
  var chunkP52GA3GJ_cjs = require('./chunk-P52GA3GJ.cjs');
14
14
  var chunkDEZ7XSTG_cjs = require('./chunk-DEZ7XSTG.cjs');
15
15
  var chunkNVHAQOHH_cjs = require('./chunk-NVHAQOHH.cjs');
16
- var chunkOYKS2JBB_cjs = require('./chunk-OYKS2JBB.cjs');
16
+ var chunkTN33E2VN_cjs = require('./chunk-TN33E2VN.cjs');
17
17
  var chunkQASIWBXU_cjs = require('./chunk-QASIWBXU.cjs');
18
18
  var chunkPJAQDAMZ_cjs = require('./chunk-PJAQDAMZ.cjs');
19
19
  var chunkU3ABLVYH_cjs = require('./chunk-U3ABLVYH.cjs');
@@ -3869,7 +3869,7 @@ var MessageBubble = React48__namespace.forwardRef(
3869
3869
  "div",
3870
3870
  {
3871
3871
  className: chunkOR5DRJCW_cjs.cn(
3872
- "flex flex-1 flex-col min-w-0",
3872
+ "flex min-w-0 flex-1 flex-col",
3873
3873
  isOutgoing ? "items-end" : "items-start"
3874
3874
  ),
3875
3875
  children: [
@@ -8648,11 +8648,17 @@ function CommandPalette({
8648
8648
  placeholder = "Search...",
8649
8649
  isLoading = false,
8650
8650
  onSelect,
8651
+ onQueryChange,
8652
+ pinnedItems,
8653
+ pinnedCategoryLabel = "Actions",
8654
+ recentItems,
8655
+ recentCategoryLabel = "Recent",
8651
8656
  emptyState,
8652
8657
  renderItem,
8653
8658
  footer,
8654
8659
  className,
8655
- "data-testid": testId = "command-palette"
8660
+ "data-testid": testId = "command-palette",
8661
+ serverFiltered = false
8656
8662
  }) {
8657
8663
  const {
8658
8664
  isOpen,
@@ -8669,29 +8675,47 @@ function CommandPalette({
8669
8675
  const inputRef = React48.useRef(null);
8670
8676
  const containerRef = React48.useRef(null);
8671
8677
  const listRef = React48.useRef(null);
8678
+ React48.useEffect(() => {
8679
+ if (!isOpen) return;
8680
+ onQueryChange?.(query);
8681
+ }, [query, isOpen, onQueryChange]);
8682
+ const PINNED_CATEGORY_ID = "__palette_pinned__";
8683
+ const RECENT_CATEGORY_ID = "__palette_recent__";
8672
8684
  const filteredItems = React48.useMemo(() => {
8673
8685
  let result = items;
8674
8686
  if (activeCategory) {
8675
8687
  result = result.filter((item) => item.category === activeCategory);
8676
8688
  }
8677
- if (query.trim()) {
8689
+ if (query.trim() && !serverFiltered) {
8678
8690
  const lowerQuery = query.toLowerCase();
8679
8691
  result = result.filter(
8680
8692
  (item) => item.label.toLowerCase().includes(lowerQuery) || item.subtitle?.toLowerCase().includes(lowerQuery) || item.description?.toLowerCase().includes(lowerQuery)
8681
8693
  );
8682
8694
  }
8683
8695
  return result;
8684
- }, [items, query, activeCategory]);
8696
+ }, [items, query, activeCategory, serverFiltered]);
8697
+ const effectiveItems = React48.useMemo(() => {
8698
+ const pinned = !activeCategory && pinnedItems?.length ? pinnedItems.map((it) => ({
8699
+ ...it,
8700
+ category: it.category ?? PINNED_CATEGORY_ID
8701
+ })) : [];
8702
+ const showRecents = !activeCategory && !query.trim() && filteredItems.length === 0 && !!recentItems?.length;
8703
+ const recents = showRecents ? recentItems.map((it) => ({
8704
+ ...it,
8705
+ category: it.category ?? RECENT_CATEGORY_ID
8706
+ })) : [];
8707
+ return [...pinned, ...filteredItems, ...recents];
8708
+ }, [pinnedItems, recentItems, filteredItems, activeCategory, query]);
8685
8709
  const groupedItems = React48.useMemo(() => {
8686
8710
  const groups = /* @__PURE__ */ new Map();
8687
- filteredItems.forEach((item) => {
8711
+ effectiveItems.forEach((item) => {
8688
8712
  const category = item.category ?? "Other";
8689
8713
  const group = groups.get(category) ?? [];
8690
8714
  group.push(item);
8691
8715
  groups.set(category, group);
8692
8716
  });
8693
8717
  return groups;
8694
- }, [filteredItems]);
8718
+ }, [effectiveItems]);
8695
8719
  chunkFHY3K6PL_cjs.useEscapeKey(close, isOpen);
8696
8720
  chunkIKMR2ADM_cjs.useClickOutside(containerRef, close);
8697
8721
  React48.useEffect(() => {
@@ -8700,8 +8724,8 @@ function CommandPalette({
8700
8724
  }
8701
8725
  }, [isOpen]);
8702
8726
  React48.useEffect(() => {
8703
- setSelectedIndex(filteredItems.length > 0 ? 0 : -1);
8704
- }, [filteredItems.length, setSelectedIndex]);
8727
+ setSelectedIndex(effectiveItems.length > 0 ? 0 : -1);
8728
+ }, [effectiveItems.length, setSelectedIndex]);
8705
8729
  React48.useEffect(() => {
8706
8730
  if (selectedIndex >= 0 && listRef.current) {
8707
8731
  const selectedElement = listRef.current.querySelector(
@@ -8716,7 +8740,7 @@ function CommandPalette({
8716
8740
  case "ArrowDown":
8717
8741
  e.preventDefault();
8718
8742
  setSelectedIndex(
8719
- Math.min(selectedIndex + 1, filteredItems.length - 1)
8743
+ Math.min(selectedIndex + 1, effectiveItems.length - 1)
8720
8744
  );
8721
8745
  break;
8722
8746
  case "ArrowUp":
@@ -8725,8 +8749,8 @@ function CommandPalette({
8725
8749
  break;
8726
8750
  case "Enter":
8727
8751
  e.preventDefault();
8728
- if (selectedIndex >= 0 && filteredItems[selectedIndex]) {
8729
- const item = filteredItems[selectedIndex];
8752
+ if (selectedIndex >= 0 && effectiveItems[selectedIndex]) {
8753
+ const item = effectiveItems[selectedIndex];
8730
8754
  if (!item.disabled) {
8731
8755
  onSelect?.(item);
8732
8756
  close();
@@ -8744,7 +8768,7 @@ function CommandPalette({
8744
8768
  }
8745
8769
  },
8746
8770
  [
8747
- filteredItems,
8771
+ effectiveItems,
8748
8772
  selectedIndex,
8749
8773
  setSelectedIndex,
8750
8774
  onSelect,
@@ -8765,9 +8789,15 @@ function CommandPalette({
8765
8789
  );
8766
8790
  const getCategoryInfo = React48.useCallback(
8767
8791
  (categoryId) => {
8792
+ if (categoryId === PINNED_CATEGORY_ID) {
8793
+ return { id: PINNED_CATEGORY_ID, label: pinnedCategoryLabel };
8794
+ }
8795
+ if (categoryId === RECENT_CATEGORY_ID) {
8796
+ return { id: RECENT_CATEGORY_ID, label: recentCategoryLabel };
8797
+ }
8768
8798
  return categories.find((c) => c.id === categoryId);
8769
8799
  },
8770
- [categories]
8800
+ [categories, pinnedCategoryLabel, recentCategoryLabel]
8771
8801
  );
8772
8802
  if (!isOpen) return null;
8773
8803
  let globalIndex = -1;
@@ -8873,14 +8903,14 @@ function CommandPalette({
8873
8903
  ref: listRef,
8874
8904
  "data-slot": "command-palette-results",
8875
8905
  className: "max-h-[60vh] overflow-y-auto",
8876
- children: filteredItems.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
8906
+ children: effectiveItems.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
8877
8907
  "div",
8878
8908
  {
8879
8909
  "data-slot": "command-palette-empty",
8880
8910
  className: "text-muted-foreground p-8 text-center",
8881
8911
  children: emptyState ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
8882
8912
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mb-2 h-8 w-8 opacity-50", children: /* @__PURE__ */ jsxRuntime.jsx(SearchIcon2, {}) }),
8883
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm", children: query.trim() ? `No results for "${query}"` : "Start typing to search..." })
8913
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm", children: isLoading && query.trim() ? `Searching for "${query}"\u2026` : query.trim() ? `No results for "${query}"` : "Start typing to search..." })
8884
8914
  ] })
8885
8915
  }
8886
8916
  ) : Array.from(groupedItems.entries()).map(
@@ -9013,7 +9043,7 @@ function CommandPalette({
9013
9043
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: "close" })
9014
9044
  ] }),
9015
9045
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
9016
- filteredItems.length,
9046
+ effectiveItems.length,
9017
9047
  " results"
9018
9048
  ] })
9019
9049
  ]
@@ -11190,10 +11220,10 @@ function DashboardWidgetTableInner({
11190
11220
  "data-slot": "dashboard-widget-table",
11191
11221
  className: chunkOR5DRJCW_cjs.cn("-mx-4", className),
11192
11222
  ...props,
11193
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.Table, { responsive: true, children: [
11194
- showHeader && /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.TableRow, { children: [
11223
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.Table, { responsive: true, children: [
11224
+ showHeader && /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.TableRow, { children: [
11195
11225
  columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx(
11196
- chunkOYKS2JBB_cjs.TableHead,
11226
+ chunkTN33E2VN_cjs.TableHead,
11197
11227
  {
11198
11228
  className: chunkOR5DRJCW_cjs.cn(
11199
11229
  "px-4 text-xs",
@@ -11205,10 +11235,10 @@ function DashboardWidgetTableInner({
11205
11235
  },
11206
11236
  col.key
11207
11237
  )),
11208
- actions && actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { className: "w-0 px-4", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
11238
+ actions && actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { className: "w-0 px-4", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
11209
11239
  ] }) }),
11210
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableBody, { children: data.map((row, rowIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
11211
- chunkOYKS2JBB_cjs.TableRow,
11240
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableBody, { children: data.map((row, rowIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
11241
+ chunkTN33E2VN_cjs.TableRow,
11212
11242
  {
11213
11243
  className: chunkOR5DRJCW_cjs.cn(
11214
11244
  onRowClick && "hover:bg-muted/50 cursor-pointer transition-colors"
@@ -11216,7 +11246,7 @@ function DashboardWidgetTableInner({
11216
11246
  onClick: onRowClick ? () => onRowClick(row, rowIndex) : void 0,
11217
11247
  children: [
11218
11248
  columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx(
11219
- chunkOYKS2JBB_cjs.TableCell,
11249
+ chunkTN33E2VN_cjs.TableCell,
11220
11250
  {
11221
11251
  className: chunkOR5DRJCW_cjs.cn(
11222
11252
  "px-4 py-2 text-sm",
@@ -11228,7 +11258,7 @@ function DashboardWidgetTableInner({
11228
11258
  },
11229
11259
  col.key
11230
11260
  )),
11231
- actions && actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { className: "w-0 px-2 py-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
11261
+ actions && actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { className: "w-0 px-2 py-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
11232
11262
  WidgetRowActionMenu,
11233
11263
  {
11234
11264
  row,
@@ -11612,6 +11642,7 @@ function DateRangePicker({
11612
11642
  activePreset,
11613
11643
  placeholder = "Pick a date range",
11614
11644
  className,
11645
+ align = "auto",
11615
11646
  showPresets = true,
11616
11647
  variant = "desktop",
11617
11648
  labels = {}
@@ -11634,6 +11665,9 @@ function DateRangePicker({
11634
11665
  const [hoverDate, setHoverDate] = React48__namespace.useState(null);
11635
11666
  const calendarRef = React48__namespace.useRef(null);
11636
11667
  const triggerRef = React48__namespace.useRef(null);
11668
+ const [resolvedAlign, setResolvedAlign] = React48__namespace.useState(
11669
+ align === "end" ? "end" : "start"
11670
+ );
11637
11671
  const isMobileVariant = variant === "mobile";
11638
11672
  const isResponsive = variant === "responsive";
11639
11673
  const focusTrapRef = chunkNNEFAUHV_cjs.useFocusTrap(
@@ -11672,6 +11706,22 @@ function DateRangePicker({
11672
11706
  };
11673
11707
  }
11674
11708
  }, [isMobileVariant, isCalendarOpen]);
11709
+ React48__namespace.useLayoutEffect(() => {
11710
+ if (isMobileVariant || !isCalendarOpen) return;
11711
+ if (align === "start" || align === "end") {
11712
+ setResolvedAlign(align);
11713
+ return;
11714
+ }
11715
+ if (typeof window === "undefined") return;
11716
+ const trigger = triggerRef.current;
11717
+ if (!trigger) return;
11718
+ const rect = trigger.getBoundingClientRect();
11719
+ const estimatedPopupWidth = showPresets ? 840 : 640;
11720
+ const margin = 8;
11721
+ const overflowsRight = rect.left + estimatedPopupWidth > window.innerWidth - margin;
11722
+ const fitsLeftAligned = rect.right - estimatedPopupWidth >= margin;
11723
+ setResolvedAlign(overflowsRight && fitsLeftAligned ? "end" : "start");
11724
+ }, [align, isCalendarOpen, isMobileVariant, showPresets]);
11675
11725
  const handlePresetSelect = (presetKey) => {
11676
11726
  const range = calculateDateRange(presetKey);
11677
11727
  setRangeStart(range.start);
@@ -12011,7 +12061,8 @@ function DateRangePicker({
12011
12061
  {
12012
12062
  ref: calendarRef,
12013
12063
  className: chunkOR5DRJCW_cjs.cn(
12014
- "absolute top-full left-0 z-50 mt-1",
12064
+ "absolute top-full z-50 mt-1",
12065
+ resolvedAlign === "end" ? "right-0" : "left-0",
12015
12066
  "bg-background border-border rounded-lg border shadow-lg"
12016
12067
  ),
12017
12068
  role: "dialog",
@@ -17821,22 +17872,22 @@ function FileManager({
17821
17872
  ] })
17822
17873
  }
17823
17874
  ),
17824
- /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "file-manager-table", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.Table, { responsive: true, children: [
17825
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.TableRow, { children: [
17826
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { children: "Filename" }),
17827
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { className: "text-center", children: "Extension" }),
17828
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { className: "text-center", children: "Size" }),
17829
- hasActions && /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { className: "w-10", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
17875
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "file-manager-table", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.Table, { responsive: true, children: [
17876
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.TableRow, { children: [
17877
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { children: "Filename" }),
17878
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { className: "text-center", children: "Extension" }),
17879
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { className: "text-center", children: "Size" }),
17880
+ hasActions && /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { className: "w-10", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
17830
17881
  ] }) }),
17831
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableBody, { children: files.length > 0 ? files.map((file) => /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.TableRow, { "data-slot": "file-manager-row", children: [
17832
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
17882
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableBody, { children: files.length > 0 ? files.map((file) => /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.TableRow, { "data-slot": "file-manager-row", children: [
17883
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
17833
17884
  getFileIcon(file.fileExtension),
17834
17885
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-xs truncate text-sm text-gray-900 dark:text-white", children: file.filename })
17835
17886
  ] }) }),
17836
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-xs uppercase", children: file.fileExtension.replace(".", "") }) }),
17837
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-sm", children: formatFileSize4(file.fileSize) }) }),
17887
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-xs uppercase", children: file.fileExtension.replace(".", "") }) }),
17888
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-sm", children: formatFileSize4(file.fileSize) }) }),
17838
17889
  hasActions && /* @__PURE__ */ jsxRuntime.jsx(
17839
- chunkOYKS2JBB_cjs.TableCell,
17890
+ chunkTN33E2VN_cjs.TableCell,
17840
17891
  {
17841
17892
  "data-slot": "file-manager-actions",
17842
17893
  className: "text-right",
@@ -17852,7 +17903,7 @@ function FileManager({
17852
17903
  )
17853
17904
  }
17854
17905
  )
17855
- ] }, file.id)) : /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableRow, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { colSpan: hasActions ? 4 : 3, className: "py-8", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "file-manager-empty", className: "text-center", children: [
17906
+ ] }, file.id)) : /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableRow, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { colSpan: hasActions ? 4 : 3, className: "py-8", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "file-manager-empty", className: "text-center", children: [
17856
17907
  /* @__PURE__ */ jsxRuntime.jsx(
17857
17908
  "svg",
17858
17909
  {
@@ -30449,19 +30500,19 @@ function ProviderUsersTable({
30449
30500
  {
30450
30501
  "data-slot": "provider-users-table",
30451
30502
  className: `overflow-x-auto ${className}`,
30452
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.Table, { children: [
30453
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.TableRow, { children: [
30454
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { children: "User" }),
30455
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { children: "Role" }),
30456
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { children: "Status" }),
30457
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { children: "Last Active" }),
30458
- showActions && /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { className: "w-10", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
30503
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.Table, { children: [
30504
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.TableRow, { children: [
30505
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { children: "User" }),
30506
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { children: "Role" }),
30507
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { children: "Status" }),
30508
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { children: "Last Active" }),
30509
+ showActions && /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { className: "w-10", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
30459
30510
  ] }) }),
30460
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableBody, { children: users.map((user) => {
30511
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableBody, { children: users.map((user) => {
30461
30512
  const isCurrentUser = currentUserId === user.id;
30462
30513
  const isPending = user.status === "pending";
30463
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.TableRow, { children: [
30464
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
30514
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.TableRow, { children: [
30515
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
30465
30516
  /* @__PURE__ */ jsxRuntime.jsx(chunkFQ3UCZUX_cjs.Avatar, { src: user.avatarUrl, name: user.name, size: "sm" }),
30466
30517
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
30467
30518
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-medium text-gray-900 dark:text-white", children: [
@@ -30471,10 +30522,10 @@ function ProviderUsersTable({
30471
30522
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-sm", children: user.email })
30472
30523
  ] })
30473
30524
  ] }) }),
30474
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: user.role }) }),
30475
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk4FALCEJI_cjs.Badge, { variant: getStatusVariant(user.status), children: user.status || "active" }) }),
30476
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-sm", children: isPending ? `Invited ${formatDate4(user.invitedAt)}` : formatDate4(user.lastActive) }) }),
30477
- showActions && /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
30525
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: user.role }) }),
30526
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk4FALCEJI_cjs.Badge, { variant: getStatusVariant(user.status), children: user.status || "active" }) }),
30527
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-sm", children: isPending ? `Invited ${formatDate4(user.invitedAt)}` : formatDate4(user.lastActive) }) }),
30528
+ showActions && /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { className: "text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
30478
30529
  RowActionsMenu,
30479
30530
  {
30480
30531
  user,
@@ -38954,18 +39005,18 @@ function WebChartReportViewer({
38954
39005
  ) : Array.isArray(reportResult.data) && reportResult.data.length > 0 ? (() => {
38955
39006
  const rows = reportResult.data;
38956
39007
  const columns = Object.keys(rows[0]);
38957
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.Table, { children: [
38958
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableRow, { children: columns.map((key) => /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableHead, { children: key }, key)) }) }),
38959
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableBody, { children: rows.map((row) => {
39008
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.Table, { children: [
39009
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableRow, { children: columns.map((key) => /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableHead, { children: key }, key)) }) }),
39010
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableBody, { children: rows.map((row) => {
38960
39011
  const rowKey = columns.map((key) => String(row[key])).join("|") || JSON.stringify(row);
38961
- return /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableRow, { children: columns.map((key) => /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { children: columnRenderers?.[key] ? columnRenderers[key](row[key], row) : row[key] == null ? "" : String(row[key]) }, key)) }, rowKey);
39012
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableRow, { children: columns.map((key) => /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { children: columnRenderers?.[key] ? columnRenderers[key](row[key], row) : row[key] == null ? "" : String(row[key]) }, key)) }, rowKey);
38962
39013
  }) })
38963
39014
  ] });
38964
- })() : /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.Table, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableBody, { children: Object.entries(
39015
+ })() : /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.Table, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableBody, { children: Object.entries(
38965
39016
  reportResult.data
38966
- ).map(([key, val]) => /* @__PURE__ */ jsxRuntime.jsxs(chunkOYKS2JBB_cjs.TableRow, { children: [
38967
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { className: "text-muted-foreground font-medium", children: key }),
38968
- /* @__PURE__ */ jsxRuntime.jsx(chunkOYKS2JBB_cjs.TableCell, { children: val == null ? "" : String(val) })
39017
+ ).map(([key, val]) => /* @__PURE__ */ jsxRuntime.jsxs(chunkTN33E2VN_cjs.TableRow, { children: [
39018
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { className: "text-muted-foreground font-medium", children: key }),
39019
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTN33E2VN_cjs.TableCell, { children: val == null ? "" : String(val) })
38969
39020
  ] }, key)) }) }) : /* @__PURE__ */ jsxRuntime.jsx(
38970
39021
  "div",
38971
39022
  {
@@ -39420,35 +39471,35 @@ Object.defineProperty(exports, "switchTrackVariants", {
39420
39471
  });
39421
39472
  Object.defineProperty(exports, "Table", {
39422
39473
  enumerable: true,
39423
- get: function () { return chunkOYKS2JBB_cjs.Table; }
39474
+ get: function () { return chunkTN33E2VN_cjs.Table; }
39424
39475
  });
39425
39476
  Object.defineProperty(exports, "TableBody", {
39426
39477
  enumerable: true,
39427
- get: function () { return chunkOYKS2JBB_cjs.TableBody; }
39478
+ get: function () { return chunkTN33E2VN_cjs.TableBody; }
39428
39479
  });
39429
39480
  Object.defineProperty(exports, "TableCaption", {
39430
39481
  enumerable: true,
39431
- get: function () { return chunkOYKS2JBB_cjs.TableCaption; }
39482
+ get: function () { return chunkTN33E2VN_cjs.TableCaption; }
39432
39483
  });
39433
39484
  Object.defineProperty(exports, "TableCell", {
39434
39485
  enumerable: true,
39435
- get: function () { return chunkOYKS2JBB_cjs.TableCell; }
39486
+ get: function () { return chunkTN33E2VN_cjs.TableCell; }
39436
39487
  });
39437
39488
  Object.defineProperty(exports, "TableFooter", {
39438
39489
  enumerable: true,
39439
- get: function () { return chunkOYKS2JBB_cjs.TableFooter; }
39490
+ get: function () { return chunkTN33E2VN_cjs.TableFooter; }
39440
39491
  });
39441
39492
  Object.defineProperty(exports, "TableHead", {
39442
39493
  enumerable: true,
39443
- get: function () { return chunkOYKS2JBB_cjs.TableHead; }
39494
+ get: function () { return chunkTN33E2VN_cjs.TableHead; }
39444
39495
  });
39445
39496
  Object.defineProperty(exports, "TableHeader", {
39446
39497
  enumerable: true,
39447
- get: function () { return chunkOYKS2JBB_cjs.TableHeader; }
39498
+ get: function () { return chunkTN33E2VN_cjs.TableHeader; }
39448
39499
  });
39449
39500
  Object.defineProperty(exports, "TableRow", {
39450
39501
  enumerable: true,
39451
- get: function () { return chunkOYKS2JBB_cjs.TableRow; }
39502
+ get: function () { return chunkTN33E2VN_cjs.TableRow; }
39452
39503
  });
39453
39504
  Object.defineProperty(exports, "Tabs", {
39454
39505
  enumerable: true,