@cognite/aura 1.47681.0 → 1.47782.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ import type { FilterFn } from "@tanstack/react-table";
2
+ type DataGridColumnFilterValue = string | number | boolean;
3
+ declare const dataGridArrHasFilterFn: FilterFn<any>;
4
+ export { dataGridArrHasFilterFn, type DataGridColumnFilterValue };
@@ -0,0 +1,13 @@
1
+ // Copy of TanStack v9 `filterFn_arrHas`; v8 has no exact "value is in the list" filter.
2
+ // Replace it with `filterFn_arrHas` when Aura moves to TanStack v9.
3
+ // Initial and controlled state skip `autoRemove`, so a non-list or empty value passes every row instead of throwing.
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches TanStack's built-in FilterFn typing
5
+ const dataGridArrHasFilterFn = (row, columnId, filterValue)=>{
6
+ if (!Array.isArray(filterValue) || filterValue.length === 0) return true;
7
+ const cellValue = row.getValue(columnId);
8
+ return filterValue.some((value)=>value === cellValue);
9
+ };
10
+ dataGridArrHasFilterFn.autoRemove = (value)=>!Array.isArray(value) || value.length === 0;
11
+ export { dataGridArrHasFilterFn };
12
+
13
+ //# sourceMappingURL=data-grid-column-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid-column-filter.ts"],"sourcesContent":["import type { FilterFn } from '@tanstack/react-table';\n\ntype DataGridColumnFilterValue = string | number | boolean;\n\n// Copy of TanStack v9 `filterFn_arrHas`; v8 has no exact \"value is in the list\" filter.\n// Replace it with `filterFn_arrHas` when Aura moves to TanStack v9.\n// Initial and controlled state skip `autoRemove`, so a non-list or empty value passes every row instead of throwing.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches TanStack's built-in FilterFn typing\nconst dataGridArrHasFilterFn: FilterFn<any> = (\n row,\n columnId,\n filterValue: unknown\n) => {\n if (!Array.isArray(filterValue) || filterValue.length === 0) return true;\n const cellValue = row.getValue(columnId);\n return filterValue.some((value: unknown) => value === cellValue);\n};\ndataGridArrHasFilterFn.autoRemove = (value: unknown) =>\n !Array.isArray(value) || value.length === 0;\n\nexport { dataGridArrHasFilterFn, type DataGridColumnFilterValue };\n"],"names":["dataGridArrHasFilterFn","row","columnId","filterValue","Array","isArray","length","cellValue","getValue","some","value","autoRemove"],"mappings":"AAIA,wFAAwF;AACxF,oEAAoE;AACpE,qHAAqH;AACrH,6GAA6G;AAC7G,MAAMA,yBAAwC,CAC5CC,KACAC,UACAC;IAEA,IAAI,CAACC,MAAMC,OAAO,CAACF,gBAAgBA,YAAYG,MAAM,KAAK,GAAG,OAAO;IACpE,MAAMC,YAAYN,IAAIO,QAAQ,CAACN;IAC/B,OAAOC,YAAYM,IAAI,CAAC,CAACC,QAAmBA,UAAUH;AACxD;AACAP,uBAAuBW,UAAU,GAAG,CAACD,QACnC,CAACN,MAAMC,OAAO,CAACK,UAAUA,MAAMJ,MAAM,KAAK;AAE5C,SAASN,sBAAsB,GAAmC"}
@@ -1,5 +1,5 @@
1
1
  import { type ComponentProps, type ComponentRef, type ForwardRefExoticComponent, type ReactElement, type ReactNode, type RefAttributes, type RefObject } from "react";
2
- import { type ColumnDef, type ColumnSizingState, type ExpandedState, type FilterFnOption, type PaginationState, type Row, type RowSelectionState, type Table, type SortingState } from "@tanstack/react-table";
2
+ import { type ColumnDef, type ColumnFiltersState, type ColumnSizingState, type ExpandedState, type FilterFnOption, type PaginationState, type Row, type RowSelectionState, type Table, type SortingState } from "@tanstack/react-table";
3
3
  import { Button } from "../button/button";
4
4
  import { Search } from "../search/search";
5
5
  import type { DataGridSelectionActions } from "./data-grid-selection.types";
@@ -60,6 +60,9 @@ type DataGridBaseProps<TData> = {
60
60
  sorting?: SortingState;
61
61
  defaultSorting?: SortingState;
62
62
  onSortingChange?: (value: SortingState) => void;
63
+ columnFilters?: ColumnFiltersState;
64
+ defaultColumnFilters?: ColumnFiltersState;
65
+ onColumnFiltersChange?: (value: ColumnFiltersState) => void;
63
66
  pagination?: PaginationState;
64
67
  defaultPagination?: PaginationState;
65
68
  onPaginationChange?: (value: PaginationState) => void;
@@ -101,7 +104,7 @@ type DataGridAccessibleNameProps = {
101
104
  "aria-label"?: string;
102
105
  };
103
106
  type DataGridProps<TData> = DataGridBaseProps<TData> & DataGridAccessibleNameProps;
104
- declare function DataGrid<TData>({ data, columns, getRowId, rowCount, globalFilterFn, enableRowSelection, enableSorting, enableColumnResizing, columnGrow, columnSizing, defaultColumnSizing, onColumnSizingChange, manualPagination, manualSorting, rowSelection, defaultRowSelection, onRowSelectionChange, selectionActions, sorting, defaultSorting, onSortingChange, pagination, defaultPagination, onPaginationChange, getSubRows, expanded, defaultExpanded, onExpandedChange, getRowCanExpand, maxDepth, pinnedColumns, gridRef, size, children, className, onRowClick, searchValue, defaultSearchValue, onSearchValueChange, queryMode, loading, loadingVariant, loadingRowCount, renderLoadingCell, emptyState, noResultsState, filteredResultCount, totalResultCount, onClearSearch, onClearFilters, labels: labelOverrides, rowHeight, headerHeight, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy }: DataGridProps<TData>): ReactElement;
107
+ declare function DataGrid<TData>({ data, columns, getRowId, rowCount, globalFilterFn, enableRowSelection, enableSorting, enableColumnResizing, columnGrow, columnSizing, defaultColumnSizing, onColumnSizingChange, manualPagination, manualSorting, rowSelection, defaultRowSelection, onRowSelectionChange, selectionActions, sorting, defaultSorting, onSortingChange, columnFilters, defaultColumnFilters, onColumnFiltersChange, pagination, defaultPagination, onPaginationChange, getSubRows, expanded, defaultExpanded, onExpandedChange, getRowCanExpand, maxDepth, pinnedColumns, gridRef, size, children, className, onRowClick, searchValue, defaultSearchValue, onSearchValueChange, queryMode, loading, loadingVariant, loadingRowCount, renderLoadingCell, emptyState, noResultsState, filteredResultCount, totalResultCount, onClearSearch, onClearFilters, labels: labelOverrides, rowHeight, headerHeight, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy }: DataGridProps<TData>): ReactElement;
105
108
  declare function DataGridCheckboxHeader<TData>({ table }: {
106
109
  table: Table<TData>;
107
110
  }): ReactElement;
@@ -44,7 +44,7 @@ const HEADER_HEIGHT_MAP = {
44
44
  default: 36,
45
45
  compact: 32
46
46
  };
47
- function DataGrid({ data, columns, getRowId, rowCount, globalFilterFn = 'auto', enableRowSelection = false, enableSorting = false, enableColumnResizing = false, columnGrow = false, columnSizing, defaultColumnSizing, onColumnSizingChange, manualPagination = false, manualSorting = false, rowSelection, defaultRowSelection, onRowSelectionChange, selectionActions, sorting, defaultSorting, onSortingChange, pagination, defaultPagination, onPaginationChange, getSubRows, expanded, defaultExpanded, onExpandedChange, getRowCanExpand, maxDepth = 5, pinnedColumns = EMPTY_PINNED_COLUMNS, gridRef, size = 'default', children, className, onRowClick, searchValue, defaultSearchValue, onSearchValueChange, queryMode = 'client', loading = false, loadingVariant = 'skeleton', loadingRowCount, renderLoadingCell, emptyState, noResultsState, filteredResultCount, totalResultCount, onClearSearch, onClearFilters, labels: labelOverrides, rowHeight, headerHeight, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy }) {
47
+ function DataGrid({ data, columns, getRowId, rowCount, globalFilterFn = 'auto', enableRowSelection = false, enableSorting = false, enableColumnResizing = false, columnGrow = false, columnSizing, defaultColumnSizing, onColumnSizingChange, manualPagination = false, manualSorting = false, rowSelection, defaultRowSelection, onRowSelectionChange, selectionActions, sorting, defaultSorting, onSortingChange, columnFilters, defaultColumnFilters, onColumnFiltersChange, pagination, defaultPagination, onPaginationChange, getSubRows, expanded, defaultExpanded, onExpandedChange, getRowCanExpand, maxDepth = 5, pinnedColumns = EMPTY_PINNED_COLUMNS, gridRef, size = 'default', children, className, onRowClick, searchValue, defaultSearchValue, onSearchValueChange, queryMode = 'client', loading = false, loadingVariant = 'skeleton', loadingRowCount, renderLoadingCell, emptyState, noResultsState, filteredResultCount, totalResultCount, onClearSearch, onClearFilters, labels: labelOverrides, rowHeight, headerHeight, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy }) {
48
48
  const scrollContainerRef = useRef(null);
49
49
  const labels = {
50
50
  ...defaultDataGridLabels,
@@ -60,6 +60,11 @@ function DataGrid({ data, columns, getRowId, rowCount, globalFilterFn = 'auto',
60
60
  defaultProp: defaultSorting ?? [],
61
61
  onChange: onSortingChange
62
62
  });
63
+ const [resolvedColumnFilters, setResolvedColumnFilters] = useControllableState({
64
+ prop: columnFilters,
65
+ defaultProp: defaultColumnFilters ?? [],
66
+ onChange: onColumnFiltersChange
67
+ });
63
68
  const [resolvedRowSelection, setResolvedRowSelection] = useControllableState({
64
69
  prop: rowSelection,
65
70
  defaultProp: defaultRowSelection ?? {},
@@ -105,6 +110,7 @@ function DataGrid({ data, columns, getRowId, rowCount, globalFilterFn = 'auto',
105
110
  columnPinning,
106
111
  globalFilter: resolvedSearchValue,
107
112
  sorting: resolvedSorting,
113
+ columnFilters: resolvedColumnFilters,
108
114
  rowSelection: resolvedRowSelection,
109
115
  columnSizing: resolvedColumnSizing,
110
116
  ...hasPagination ? {
@@ -115,6 +121,7 @@ function DataGrid({ data, columns, getRowId, rowCount, globalFilterFn = 'auto',
115
121
  } : {}
116
122
  },
117
123
  onSortingChange: setResolvedSorting,
124
+ onColumnFiltersChange: setResolvedColumnFilters,
118
125
  onRowSelectionChange: setResolvedRowSelection,
119
126
  onColumnSizingChange: setResolvedColumnSizing,
120
127
  ...hasPagination ? {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid.tsx"],"sourcesContent":["import {\n type ComponentProps,\n type ComponentRef,\n type CSSProperties,\n type ForwardRefExoticComponent,\n type ReactElement,\n type ReactNode,\n type Ref,\n type RefAttributes,\n type RefObject,\n createContext,\n forwardRef,\n useContext,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react';\n\nimport { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\nimport { IconCheck, IconFilter, IconMinus } from '@tabler/icons-react';\nimport {\n type CellContext,\n type ColumnDef,\n type ColumnPinningState,\n type ColumnSizingState,\n type ExpandedState,\n type FilterFnOption,\n type PaginationState,\n type Row,\n type RowSelectionState,\n type Table,\n type SortingState,\n getCoreRowModel,\n getExpandedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport { useVirtualizer } from '@tanstack/react-virtual';\n\nimport { useControllableState } from '../../../../lib/use-controllable-state';\nimport { cn, focusState } from '../../../../lib/utils';\nimport { Button } from '../button/button';\nimport {\n EmptyState,\n EmptyStateActions,\n EmptyStateDescription,\n EmptyStateIcon,\n EmptyStateTitle,\n} from '../empty-state/empty-state';\nimport type { EmptyStateType } from '../empty-state/empty-state.context';\nimport { Search } from '../search/search';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { StatusText } from '../status-text/status-text';\n\nimport { DataGridCell } from './data-grid-cell';\nimport { DataGridHeaderRow } from './data-grid-header-row';\nimport { DataGridRow } from './data-grid-row';\nimport {\n countSelectedRowIds,\n getDataGridCheckboxState,\n selectDataGridRowTree,\n} from './data-grid-selection-state';\nimport { DataGridSelectionToolbar } from './data-grid-selection-toolbar';\nimport type { DataGridSelectionActions } from './data-grid-selection.types';\nimport { PINNED_COLUMN_Z_INDEX, getTextValue } from './data-grid.utils';\n\nconst EMPTY_PINNED_COLUMNS: string[] = [];\n\nfunction defaultDataGridCell<TData>({\n renderValue,\n}: CellContext<TData, unknown>): ReactNode {\n const text = getTextValue(renderValue());\n if (text === undefined) return null;\n\n return (\n <span className=\"block min-w-0 truncate\" title={text}>\n {text}\n </span>\n );\n}\n\nconst DEFAULT_COLUMN = {\n cell: defaultDataGridCell,\n size: undefined,\n};\n\ntype DataGridContextValue = {\n searchValue: string;\n setSearchValue: (value: string) => void;\n filteredCount?: number;\n totalCount?: number;\n};\n\nconst DataGridContext = createContext<DataGridContextValue | undefined>(\n undefined\n);\n\ntype DataGridSize = 'default' | 'compact';\ntype DataGridQueryMode = 'client' | 'server';\ntype DataGridLoadingVariant = 'skeleton' | 'none';\n\ntype DataGridStateCopyFields = {\n title: string;\n description: string;\n action: ReactNode;\n};\n\ntype AtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends keyof T\n ? Pick<Required<T>, Keys> & Partial<Omit<T, Keys>>\n : never;\n\ntype DataGridStateCopy = AtLeastOne<DataGridStateCopyFields>;\n\ntype DataGridLabels = {\n clearSearch: string;\n clearFilters: string;\n};\n\nconst defaultDataGridLabels: DataGridLabels = {\n clearSearch: 'Clear search',\n clearFilters: 'Clear filters',\n};\n\ntype DataGridLoadingCellContext = {\n rowIndex: number;\n columnId: string;\n columnIndex: number;\n size: DataGridSize;\n};\n\nconst ROW_HEIGHT_MAP: Record<DataGridSize, number> = {\n default: 36,\n compact: 32,\n};\n\nconst HEADER_HEIGHT_MAP: Record<DataGridSize, number> = {\n default: 36,\n compact: 32,\n};\n\ntype DataGridHandle = {\n scrollToRow: (index: number) => void;\n resetSorting: () => void;\n resetSelection: () => void;\n resetSearch: () => void;\n};\n\ntype DataGridBaseProps<TData> = {\n data: TData[];\n columns: ColumnDef<TData>[];\n getRowId?: (originalRow: TData, index: number) => string;\n rowCount?: number;\n globalFilterFn?: FilterFnOption<TData>;\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean);\n enableSorting?: boolean;\n enableColumnResizing?: boolean;\n columnGrow?: boolean;\n columnSizing?: ColumnSizingState;\n defaultColumnSizing?: ColumnSizingState;\n onColumnSizingChange?: (value: ColumnSizingState) => void;\n manualPagination?: boolean;\n manualSorting?: boolean;\n rowSelection?: RowSelectionState;\n defaultRowSelection?: RowSelectionState;\n onRowSelectionChange?: (value: RowSelectionState) => void;\n selectionActions?: DataGridSelectionActions;\n sorting?: SortingState;\n defaultSorting?: SortingState;\n onSortingChange?: (value: SortingState) => void;\n pagination?: PaginationState;\n defaultPagination?: PaginationState;\n onPaginationChange?: (value: PaginationState) => void;\n getSubRows?: (row: TData, index: number) => TData[] | undefined;\n expanded?: ExpandedState;\n defaultExpanded?: ExpandedState;\n onExpandedChange?: (value: ExpandedState) => void;\n getRowCanExpand?: (row: Row<TData>) => boolean;\n maxDepth?: number;\n pinnedColumns?: string[];\n // forwardRef cannot preserve the `TData` generic, so the imperative handle\n // is exposed via a ref-object prop instead of `forwardRef` + `useImperativeHandle`.\n // See https://github.com/facebook/react/issues/22018.\n gridRef?: RefObject<DataGridHandle | null>;\n size?: DataGridSize;\n children?: ReactNode;\n className?: string;\n onRowClick?: (row: Row<TData>) => void;\n searchValue?: string;\n defaultSearchValue?: string;\n onSearchValueChange?: (value: string) => void;\n queryMode?: DataGridQueryMode;\n loading?: boolean;\n loadingVariant?: DataGridLoadingVariant;\n loadingRowCount?: number;\n renderLoadingCell?: (ctx: DataGridLoadingCellContext) => ReactNode;\n emptyState?: ReactNode | DataGridStateCopy;\n noResultsState?: ReactNode | DataGridStateCopy;\n onClearSearch?: () => void;\n onClearFilters?: () => void;\n labels?: Partial<DataGridLabels>;\n filteredResultCount?: number;\n totalResultCount?: number;\n rowHeight?: number;\n headerHeight?: number;\n};\n\n// The grid renders with `role=\"table\"`, which requires an accessible name for\n// screen readers. It is bad practice to omit one, so the type requires at least\n// one of `aria-label` / `aria-labelledby` rather than leaving both optional.\ntype DataGridAccessibleNameProps =\n | { 'aria-label': string; 'aria-labelledby'?: string }\n | { 'aria-labelledby': string; 'aria-label'?: string };\n\ntype DataGridProps<TData> = DataGridBaseProps<TData> &\n DataGridAccessibleNameProps;\n\nfunction DataGrid<TData>({\n data,\n columns,\n getRowId,\n rowCount,\n globalFilterFn = 'auto',\n enableRowSelection = false,\n enableSorting = false,\n enableColumnResizing = false,\n columnGrow = false,\n columnSizing,\n defaultColumnSizing,\n onColumnSizingChange,\n manualPagination = false,\n manualSorting = false,\n rowSelection,\n defaultRowSelection,\n onRowSelectionChange,\n selectionActions,\n sorting,\n defaultSorting,\n onSortingChange,\n pagination,\n defaultPagination,\n onPaginationChange,\n getSubRows,\n expanded,\n defaultExpanded,\n onExpandedChange,\n getRowCanExpand,\n maxDepth = 5,\n pinnedColumns = EMPTY_PINNED_COLUMNS,\n gridRef,\n size = 'default',\n children,\n className,\n onRowClick,\n searchValue,\n defaultSearchValue,\n onSearchValueChange,\n queryMode = 'client',\n loading = false,\n loadingVariant = 'skeleton',\n loadingRowCount,\n renderLoadingCell,\n emptyState,\n noResultsState,\n filteredResultCount,\n totalResultCount,\n onClearSearch,\n onClearFilters,\n labels: labelOverrides,\n rowHeight,\n headerHeight,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n}: DataGridProps<TData>): ReactElement {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const labels = { ...defaultDataGridLabels, ...labelOverrides };\n\n const [resolvedSearchValue, setResolvedSearchValue] = useControllableState({\n prop: searchValue,\n defaultProp: defaultSearchValue ?? '',\n onChange: onSearchValueChange,\n });\n\n const [resolvedSorting, setResolvedSorting] =\n useControllableState<SortingState>({\n prop: sorting,\n defaultProp: defaultSorting ?? [],\n onChange: onSortingChange,\n });\n\n const [resolvedRowSelection, setResolvedRowSelection] =\n useControllableState<RowSelectionState>({\n prop: rowSelection,\n defaultProp: defaultRowSelection ?? {},\n onChange: onRowSelectionChange,\n });\n\n const hasPagination =\n pagination !== undefined || defaultPagination !== undefined;\n\n const [resolvedPagination, setResolvedPagination] =\n useControllableState<PaginationState>({\n prop: pagination,\n defaultProp: defaultPagination ?? { pageIndex: 0, pageSize: 10 },\n onChange: onPaginationChange,\n });\n\n const hasExpanding = getSubRows !== undefined;\n\n const [resolvedExpanded, setResolvedExpanded] =\n useControllableState<ExpandedState>({\n prop: expanded,\n defaultProp: defaultExpanded ?? {},\n onChange: onExpandedChange,\n });\n\n const [resolvedColumnSizing, setResolvedColumnSizing] =\n useControllableState<ColumnSizingState>({\n prop: columnSizing,\n defaultProp: defaultColumnSizing ?? {},\n onChange: onColumnSizingChange,\n });\n\n const isClientSorting = enableSorting && !manualSorting;\n const isClientPagination = hasPagination && !manualPagination;\n\n const columnPinning: ColumnPinningState = useMemo(\n () => ({ left: pinnedColumns, right: [] }),\n [pinnedColumns]\n );\n\n const pinnedColumnIds = useMemo(\n () => new Set(pinnedColumns),\n [pinnedColumns]\n );\n const lastPinnedColumnId = pinnedColumns[pinnedColumns.length - 1];\n // eslint-disable-next-line react-hooks/incompatible-library -- useReactTable in the DataGrid component is intentional and stable.\n const table = useReactTable({\n data,\n columns,\n state: {\n columnPinning,\n globalFilter: resolvedSearchValue,\n sorting: resolvedSorting,\n rowSelection: resolvedRowSelection,\n columnSizing: resolvedColumnSizing,\n ...(hasPagination ? { pagination: resolvedPagination } : {}),\n ...(hasExpanding ? { expanded: resolvedExpanded } : {}),\n },\n onSortingChange: setResolvedSorting,\n onRowSelectionChange: setResolvedRowSelection,\n onColumnSizingChange: setResolvedColumnSizing,\n ...(hasPagination ? { onPaginationChange: setResolvedPagination } : {}),\n ...(hasExpanding ? { onExpandedChange: setResolvedExpanded } : {}),\n // Preserve expanded rows across `data` changes (e.g. refetches) so the user\n // doesn't lose their place. Consumers fetching server-paged data should\n // ensure stable `getRowId` values; otherwise expanded keys can stick to\n // rows that no longer logically exist.\n autoResetExpanded: false,\n enableRowSelection,\n // Selecting a parent selects every descendant, including while it is collapsed.\n enableSubRowSelection: true,\n enableSorting,\n enableColumnResizing,\n columnResizeMode: 'onChange',\n defaultColumn: DEFAULT_COLUMN,\n manualPagination,\n manualSorting,\n manualFiltering: queryMode === 'server',\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n globalFilterFn,\n ...(isClientSorting ? { getSortedRowModel: getSortedRowModel() } : {}),\n ...(isClientPagination\n ? { getPaginationRowModel: getPaginationRowModel() }\n : {}),\n ...(hasExpanding ? { getExpandedRowModel: getExpandedRowModel() } : {}),\n getRowId,\n getSubRows,\n getRowCanExpand,\n });\n\n const { rows } = table.getRowModel();\n const headerGroups = table.getHeaderGroups();\n const visibleColumns = table.getVisibleFlatColumns();\n\n const resolvedRowHeight = rowHeight ?? ROW_HEIGHT_MAP[size];\n const resolvedHeaderHeight = headerHeight ?? HEADER_HEIGHT_MAP[size];\n const resolvedLoadingRowCount = loadingRowCount ?? 6;\n const shouldRenderSkeleton = loading && loadingVariant === 'skeleton';\n const hideRowsForLoading = loading && loadingVariant !== 'none';\n const hasActiveServerSearch =\n queryMode === 'server' && resolvedSearchValue !== '';\n const hasNoRows = !loading && data.length === 0 && !hasActiveServerSearch;\n const hasNoResults =\n !loading &&\n (hasActiveServerSearch\n ? data.length === 0\n : data.length > 0 && table.getFilteredRowModel().rows.length === 0);\n\n const virtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => scrollContainerRef.current,\n estimateSize: () => resolvedRowHeight,\n overscan: 10,\n });\n const bodyHeight = shouldRenderSkeleton\n ? resolvedLoadingRowCount * resolvedRowHeight\n : virtualizer.getTotalSize();\n const bodyStyle: CSSProperties & {\n '--data-grid-body-height': string;\n '--data-grid-body-min-height': string;\n } = {\n '--data-grid-body-height': `${bodyHeight}px`,\n '--data-grid-body-min-height': `${resolvedRowHeight * 4}px`,\n };\n\n useImperativeHandle(gridRef, () => ({\n scrollToRow: (index: number) => virtualizer.scrollToIndex(index),\n resetSorting: () => setResolvedSorting([]),\n resetSelection: () => setResolvedRowSelection({}),\n resetSearch: () => setResolvedSearchValue(''),\n }));\n\n const hasFlexibleColumn =\n !enableColumnResizing &&\n !columnGrow &&\n visibleColumns.some(\n (column) =>\n column.columnDef.size === undefined && !pinnedColumnIds.has(column.id)\n );\n const gridTemplateColumns = visibleColumns\n .map((column, index) => {\n const columnSize = column.getSize();\n if (enableColumnResizing || pinnedColumnIds.has(column.id)) {\n return `${columnSize}px`;\n }\n if (columnGrow) {\n return `minmax(${columnSize}px, ${columnSize}fr)`;\n }\n const isLastColumn = index === visibleColumns.length - 1;\n if (column.columnDef.size !== undefined) {\n if (!hasFlexibleColumn && isLastColumn) {\n return `minmax(${columnSize}px, 1fr)`;\n }\n return `${columnSize}px`;\n }\n return `minmax(${columnSize}px, 1fr)`;\n })\n .join(' ');\n\n const scrollContainerStyle: CSSProperties & {\n '--data-grid-template-columns': string;\n } = {\n '--data-grid-template-columns': gridTemplateColumns,\n };\n\n const isResizingColumn = Boolean(\n table.getState().columnSizingInfo.isResizingColumn\n );\n const clientFilteredCount = table.getFilteredRowModel().rows.length;\n const clientTotalCount = table.getCoreRowModel().rows.length;\n\n const contextValue = useMemo<DataGridContextValue>(\n () => ({\n searchValue: resolvedSearchValue,\n setSearchValue: setResolvedSearchValue,\n filteredCount:\n queryMode === 'client' ? clientFilteredCount : filteredResultCount,\n totalCount: queryMode === 'client' ? clientTotalCount : totalResultCount,\n }),\n [\n resolvedSearchValue,\n setResolvedSearchValue,\n queryMode,\n clientFilteredCount,\n filteredResultCount,\n clientTotalCount,\n totalResultCount,\n ]\n );\n\n const selectedRowCount = countSelectedRowIds(resolvedRowSelection);\n\n return (\n <DataGridContext.Provider value={contextValue}>\n <div\n data-slot=\"data-grid\"\n data-query-mode={queryMode}\n data-filtered-result-count={filteredResultCount}\n data-total-result-count={totalResultCount}\n className={cn(\n 'relative flex min-h-0 w-full flex-col overflow-clip rounded-xl text-sm',\n className\n )}\n >\n {children}\n <div\n ref={scrollContainerRef}\n data-slot=\"data-grid-scroll-container\"\n className=\"relative order-2 min-h-0 w-full flex-1 overflow-auto\"\n style={scrollContainerStyle}\n role=\"table\"\n aria-rowcount={\n hideRowsForLoading\n ? headerGroups.length\n : (rowCount ?? rows.length) + headerGroups.length\n }\n aria-colcount={visibleColumns.length}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div\n className={cn(\n 'min-w-fit w-full',\n enableRowSelection !== false && selectedRowCount > 0 && 'pb-24'\n )}\n >\n <div\n role=\"rowgroup\"\n data-slot=\"data-grid-header-group\"\n className=\"contents\"\n >\n {headerGroups.map((headerGroup, headerRowIndex) => (\n <DataGridHeaderRow\n key={headerGroup.id}\n headerGroup={headerGroup}\n headerRowIndex={headerRowIndex}\n resolvedHeaderHeight={resolvedHeaderHeight}\n pinnedColumnIds={pinnedColumnIds}\n lastPinnedColumnId={lastPinnedColumnId}\n isResizingColumn={isResizingColumn}\n />\n ))}\n </div>\n\n <div\n role=\"rowgroup\"\n data-slot=\"data-grid-body\"\n className={cn(\n 'relative min-h-(--data-grid-body-min-height)',\n !hasNoRows && !hasNoResults && 'h-(--data-grid-body-height)'\n )}\n style={bodyStyle}\n >\n {shouldRenderSkeleton &&\n Array.from(\n { length: resolvedLoadingRowCount },\n (_, rowIndex) => (\n <div\n key={`skeleton-row-${rowIndex}`}\n data-slot=\"data-grid-row-loading\"\n aria-hidden=\"true\"\n className=\"absolute left-0 right-0 grid border-b bg-background\"\n style={{\n gridTemplateColumns:\n 'var(--data-grid-template-columns)',\n height: resolvedRowHeight,\n transform: `translateY(${rowIndex * resolvedRowHeight}px)`,\n }}\n >\n {visibleColumns.map((column, colIndex) => {\n const isPinned = pinnedColumnIds.has(column.id);\n const isLastPinned =\n isPinned && lastPinnedColumnId === column.id;\n return (\n <DataGridCell\n key={column.id}\n isPinned={isPinned}\n isLastPinned={isLastPinned}\n colIndex={colIndex + 1}\n style={\n isPinned\n ? {\n position: 'sticky',\n left: column.getStart('left'),\n zIndex: PINNED_COLUMN_Z_INDEX,\n }\n : undefined\n }\n >\n {renderLoadingCell?.({\n rowIndex,\n columnId: column.id,\n columnIndex: colIndex,\n size,\n }) ??\n (column.id === 'select' ? (\n <Skeleton className=\"h-4 w-4 rounded\" />\n ) : (\n <Skeleton\n className={cn(\n 'h-4 max-w-full',\n colIndex === 0 ? 'w-3/4' : 'w-2/3'\n )}\n />\n ))}\n </DataGridCell>\n );\n })}\n </div>\n )\n )}\n\n {!hideRowsForLoading &&\n !hasNoRows &&\n !hasNoResults &&\n virtualizer\n .getVirtualItems()\n .map((virtualRow) => (\n <DataGridRow\n key={rows[virtualRow.index].id}\n row={rows[virtualRow.index]}\n virtualRow={virtualRow}\n headerGroupCount={headerGroups.length}\n pinnedColumnIds={pinnedColumnIds}\n lastPinnedColumnId={lastPinnedColumnId}\n maxDepth={maxDepth}\n hasExpanding={hasExpanding}\n onRowClick={onRowClick}\n />\n ))}\n\n {!loading && hasNoRows && emptyState != null && (\n <div className=\"pt-2\">\n <div className=\"flex items-center justify-center rounded-lg bg-medium-background\">\n {renderDataGridState(emptyState, {\n type: 'new-object',\n title: 'No rows yet',\n description: 'Add data to populate this table.',\n })}\n </div>\n </div>\n )}\n\n {!loading && hasNoResults && (\n <div className=\"pt-2\">\n <div className=\"flex items-center justify-center bg-background\">\n {renderDataGridState(noResultsState, {\n type: 'no-results',\n title: 'No results found',\n description:\n queryMode === 'server'\n ? 'Apply a different query or clear filters.'\n : 'Try a different search term or clear filters.',\n action:\n onClearSearch || onClearFilters ? (\n <div className=\"mt-2 flex items-center justify-center gap-2\">\n {onClearSearch ? (\n <Button\n size=\"sm\"\n variant=\"secondary\"\n onClick={onClearSearch}\n >\n {labels.clearSearch}\n </Button>\n ) : null}\n {onClearFilters ? (\n <Button\n size=\"sm\"\n variant=\"secondary\"\n onClick={onClearFilters}\n >\n {labels.clearFilters}\n </Button>\n ) : null}\n </div>\n ) : undefined,\n })}\n </div>\n </div>\n )}\n </div>\n </div>\n {enableRowSelection !== false ? (\n <DataGridSelectionToolbar\n // The count includes every selected id.\n // That covers parents and their children, rows on other pages, and rows hidden by search.\n selectedCount={selectedRowCount}\n rowSelection={resolvedRowSelection}\n selectionActions={selectionActions}\n onClear={() => setResolvedRowSelection({})}\n />\n ) : null}\n </div>\n </div>\n </DataGridContext.Provider>\n );\n}\n\ntype DataGridCheckboxProps = {\n checked: boolean | 'indeterminate';\n onCheckedChange: (checked: boolean | 'indeterminate') => void;\n disabled?: boolean;\n 'aria-label'?: string;\n};\n\nfunction DataGridCheckbox({\n checked,\n onCheckedChange,\n disabled,\n 'aria-label': checkboxAriaLabel,\n}: DataGridCheckboxProps): ReactElement {\n const isIndeterminate = checked === 'indeterminate';\n const isChecked = checked === true;\n\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n checked={isIndeterminate ? false : isChecked}\n indeterminate={isIndeterminate}\n disabled={disabled}\n onCheckedChange={(next) => onCheckedChange(next)}\n aria-label={checkboxAriaLabel}\n className={cn(\n 'peer relative size-4 shrink-0 rounded-sm border-[1.5px] border-muted-foreground bg-transparent text-foreground-on-primary outline-none transition-colors',\n '[&:is([data-checked],[data-indeterminate]):not([data-disabled])]:border-transparent [&:is([data-checked],[data-indeterminate]):not([data-disabled])]:bg-primary-background',\n 'hover:data-unchecked:not-data-disabled:border-muted-foreground-hover',\n 'data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:border-transparent data-disabled:bg-disabled-background data-disabled:text-disabled-foreground data-disabled:data-unchecked:border-border',\n '[&[data-checked]_[data-slot=checkbox-check]]:block [&[data-indeterminate]_[data-slot=checkbox-dash]]:block',\n focusState\n )}\n >\n <CheckboxPrimitive.Indicator className=\"grid size-full place-content-center text-current transition-none\">\n <IconCheck\n aria-hidden=\"true\"\n data-slot=\"checkbox-check\"\n className=\"hidden size-3\"\n stroke={3}\n />\n <IconMinus\n aria-hidden=\"true\"\n data-slot=\"checkbox-dash\"\n className=\"hidden size-3\"\n stroke={3.5}\n />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nfunction DataGridCheckboxHeader<TData>({\n table,\n}: {\n table: Table<TData>;\n}): ReactElement {\n const allSelected = table.getIsAllPageRowsSelected();\n const someSelected = table.getIsSomePageRowsSelected();\n const checked = allSelected ? true : someSelected ? 'indeterminate' : false;\n\n return (\n <DataGridCheckbox\n checked={checked}\n onCheckedChange={() => table.toggleAllPageRowsSelected(!allSelected)}\n aria-label=\"Select all rows\"\n />\n );\n}\n\nfunction DataGridCheckboxCell<TData>({\n row,\n}: {\n row: Row<TData>;\n}): ReactElement {\n return (\n <DataGridCheckbox\n checked={getDataGridCheckboxState(row)}\n disabled={!row.getCanSelect()}\n onCheckedChange={(next) => {\n if (next === true) {\n selectDataGridRowTree(row);\n return;\n }\n row.toggleSelected(false);\n }}\n aria-label=\"Select row\"\n />\n );\n}\n\ntype DataGridSearchProps = Omit<\n ComponentProps<typeof Search>,\n 'value' | 'onChange' | 'onClear'\n>;\n\nconst DataGridSearch: ForwardRefExoticComponent<\n DataGridSearchProps & RefAttributes<ComponentRef<typeof Search>>\n> = forwardRef<ComponentRef<typeof Search>, DataGridSearchProps>(\n function DataGridSearch(\n { className, placeholder = 'Search', ...props },\n ref\n ) {\n const { searchValue, setSearchValue } = useDataGridContext();\n\n return (\n <Search\n ref={ref}\n value={searchValue}\n onChange={(event) => setSearchValue(event.target.value)}\n onClear={() => setSearchValue('')}\n placeholder={placeholder}\n className={cn('py-4', className)}\n {...props}\n />\n );\n }\n);\nDataGridSearch.displayName = 'DataGridSearch';\n\ntype DataGridResultCountProps = Omit<ComponentProps<'output'>, 'children'> & {\n formatLabel?: (filteredCount: number, totalCount?: number) => ReactNode;\n};\n\nfunction defaultFormatResultCount(\n filteredCount: number,\n totalCount?: number\n): string {\n const noun = (totalCount ?? filteredCount) === 1 ? 'result' : 'results';\n return totalCount === undefined\n ? `Showing ${filteredCount.toLocaleString('en')} ${noun}`\n : `Showing ${filteredCount.toLocaleString('en')} of ${totalCount.toLocaleString('en')} ${noun}`;\n}\n\nconst DataGridResultCount: ForwardRefExoticComponent<\n DataGridResultCountProps & RefAttributes<HTMLOutputElement>\n> = forwardRef<ComponentRef<'output'>, DataGridResultCountProps>(\n function DataGridResultCount(\n { formatLabel = defaultFormatResultCount, ...props },\n ref\n ) {\n const { filteredCount, totalCount } = useDataGridContext();\n\n // Nothing to say until the grid has counted.\n if (filteredCount === undefined) return null;\n\n const content = formatLabel(filteredCount, totalCount);\n\n if (content == null) return null;\n\n return (\n // Not live by default: it changes on every search keystroke, which screen readers would read out.\n <StatusText\n ref={ref}\n data-slot=\"data-grid-result-count\"\n aria-live=\"off\"\n {...props}\n >\n {content}\n </StatusText>\n );\n }\n);\nDataGridResultCount.displayName = 'DataGridResultCount';\n\nfunction renderDataGridState(\n state: ReactNode | DataGridStateCopy | undefined,\n fallback: { type: EmptyStateType } & Pick<\n DataGridStateCopyFields,\n 'title' | 'description'\n > &\n Partial<Pick<DataGridStateCopyFields, 'action'>>\n): ReactNode {\n if (isDataGridStateCopy(state)) {\n return (\n <DataGridState\n type={fallback.type}\n title={state.title ?? fallback.title}\n description={state.description ?? fallback.description}\n action={state.action !== undefined ? state.action : fallback.action}\n />\n );\n }\n\n if (state !== undefined) return state;\n\n return (\n <DataGridState\n type={fallback.type}\n title={fallback.title}\n description={fallback.description}\n action={fallback.action}\n />\n );\n}\n\nfunction isDataGridStateCopy(value: unknown): value is DataGridStateCopy {\n return (\n typeof value === 'object' &&\n value !== null &&\n !('type' in value) &&\n ('title' in value || 'description' in value || 'action' in value)\n );\n}\n\nfunction DataGridState({\n type,\n title,\n description,\n action,\n}: { type: EmptyStateType } & Pick<\n DataGridStateCopyFields,\n 'title' | 'description'\n> &\n Partial<Pick<DataGridStateCopyFields, 'action'>>): ReactElement {\n return (\n <EmptyState type={type} className=\"p-10\">\n <EmptyStateIcon />\n <EmptyStateTitle as=\"p\">{title}</EmptyStateTitle>\n <EmptyStateDescription>{description}</EmptyStateDescription>\n {action ? <EmptyStateActions>{action}</EmptyStateActions> : null}\n </EmptyState>\n );\n}\n\ntype DataGridFilterTriggerProps = ComponentProps<typeof Button> & {\n activeCount?: number;\n label?: string;\n};\n\nconst DataGridFilterTrigger: ForwardRefExoticComponent<\n DataGridFilterTriggerProps & RefAttributes<ComponentRef<typeof Button>>\n> = forwardRef<ComponentRef<typeof Button>, DataGridFilterTriggerProps>(\n function DataGridFilterTrigger(\n {\n activeCount = 0,\n label = 'Filters',\n className,\n children,\n ...props\n }: DataGridFilterTriggerProps,\n ref: Ref<ComponentRef<typeof Button>>\n ) {\n const hasActiveFilters = activeCount > 0;\n\n return (\n <Button\n ref={ref}\n data-slot=\"data-grid-filter-trigger\"\n data-active-count={activeCount}\n size=\"default\"\n variant={hasActiveFilters ? 'secondary' : 'ghost'}\n className={cn('min-w-0', className)}\n aria-label={children != null ? label : undefined}\n {...props}\n >\n {children ?? (\n <>\n <IconFilter className=\"size-4 shrink-0\" aria-hidden=\"true\" />\n <span>{label}</span>\n </>\n )}\n </Button>\n );\n }\n);\nDataGridFilterTrigger.displayName = 'DataGridFilterTrigger';\n\nfunction useDataGridContext(): DataGridContextValue {\n const context = useContext(DataGridContext);\n if (!context) {\n throw new Error('useDataGridContext must be used within a DataGrid');\n }\n return context;\n}\nexport {\n DataGrid,\n DataGridCheckboxCell,\n DataGridCheckboxHeader,\n DataGridResultCount,\n DataGridFilterTrigger,\n DataGridSearch,\n useDataGridContext,\n type DataGridContextValue,\n type DataGridHandle,\n type DataGridLabels,\n};\nexport {\n DataGridFilterPanel,\n type DataGridFilterColumn,\n type DataGridFilterPanelLabels,\n} from './data-grid-filter-panel';\nexport {\n DataGridFooter,\n DataGridFooterEnd,\n DataGridFooterStart,\n} from './data-grid-footer';\nexport {\n DataGridHeader,\n DataGridHeaderActions,\n DataGridHeaderEnd,\n DataGridHeaderStart,\n DataGridSubtitle,\n DataGridTitle,\n} from './data-grid-header';\n"],"names":["createContext","forwardRef","useContext","useImperativeHandle","useMemo","useRef","Checkbox","CheckboxPrimitive","IconCheck","IconFilter","IconMinus","getCoreRowModel","getExpandedRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","useReactTable","useVirtualizer","useControllableState","cn","focusState","Button","EmptyState","EmptyStateActions","EmptyStateDescription","EmptyStateIcon","EmptyStateTitle","Search","Skeleton","StatusText","DataGridCell","DataGridHeaderRow","DataGridRow","countSelectedRowIds","getDataGridCheckboxState","selectDataGridRowTree","DataGridSelectionToolbar","PINNED_COLUMN_Z_INDEX","getTextValue","EMPTY_PINNED_COLUMNS","defaultDataGridCell","renderValue","text","undefined","span","className","title","DEFAULT_COLUMN","cell","size","DataGridContext","defaultDataGridLabels","clearSearch","clearFilters","ROW_HEIGHT_MAP","default","compact","HEADER_HEIGHT_MAP","DataGrid","data","columns","getRowId","rowCount","globalFilterFn","enableRowSelection","enableSorting","enableColumnResizing","columnGrow","columnSizing","defaultColumnSizing","onColumnSizingChange","manualPagination","manualSorting","rowSelection","defaultRowSelection","onRowSelectionChange","selectionActions","sorting","defaultSorting","onSortingChange","pagination","defaultPagination","onPaginationChange","getSubRows","expanded","defaultExpanded","onExpandedChange","getRowCanExpand","maxDepth","pinnedColumns","gridRef","children","onRowClick","searchValue","defaultSearchValue","onSearchValueChange","queryMode","loading","loadingVariant","loadingRowCount","renderLoadingCell","emptyState","noResultsState","filteredResultCount","totalResultCount","onClearSearch","onClearFilters","labels","labelOverrides","rowHeight","headerHeight","ariaLabel","ariaLabelledBy","scrollContainerRef","resolvedSearchValue","setResolvedSearchValue","prop","defaultProp","onChange","resolvedSorting","setResolvedSorting","resolvedRowSelection","setResolvedRowSelection","hasPagination","resolvedPagination","setResolvedPagination","pageIndex","pageSize","hasExpanding","resolvedExpanded","setResolvedExpanded","resolvedColumnSizing","setResolvedColumnSizing","isClientSorting","isClientPagination","columnPinning","left","right","pinnedColumnIds","Set","lastPinnedColumnId","length","table","state","globalFilter","autoResetExpanded","enableSubRowSelection","columnResizeMode","defaultColumn","manualFiltering","rows","getRowModel","headerGroups","getHeaderGroups","visibleColumns","getVisibleFlatColumns","resolvedRowHeight","resolvedHeaderHeight","resolvedLoadingRowCount","shouldRenderSkeleton","hideRowsForLoading","hasActiveServerSearch","hasNoRows","hasNoResults","virtualizer","count","getScrollElement","current","estimateSize","overscan","bodyHeight","getTotalSize","bodyStyle","scrollToRow","index","scrollToIndex","resetSorting","resetSelection","resetSearch","hasFlexibleColumn","some","column","columnDef","has","id","gridTemplateColumns","map","columnSize","getSize","isLastColumn","join","scrollContainerStyle","isResizingColumn","Boolean","getState","columnSizingInfo","clientFilteredCount","clientTotalCount","contextValue","setSearchValue","filteredCount","totalCount","selectedRowCount","Provider","value","div","data-slot","data-query-mode","data-filtered-result-count","data-total-result-count","ref","style","role","aria-rowcount","aria-colcount","aria-label","aria-labelledby","headerGroup","headerRowIndex","Array","from","_","rowIndex","aria-hidden","height","transform","colIndex","isPinned","isLastPinned","position","getStart","zIndex","columnId","columnIndex","getVirtualItems","virtualRow","row","headerGroupCount","renderDataGridState","type","description","action","variant","onClick","selectedCount","onClear","DataGridCheckbox","checked","onCheckedChange","disabled","checkboxAriaLabel","isIndeterminate","isChecked","Root","indeterminate","next","Indicator","stroke","DataGridCheckboxHeader","allSelected","getIsAllPageRowsSelected","someSelected","getIsSomePageRowsSelected","toggleAllPageRowsSelected","DataGridCheckboxCell","getCanSelect","toggleSelected","DataGridSearch","placeholder","props","useDataGridContext","event","target","displayName","defaultFormatResultCount","noun","toLocaleString","DataGridResultCount","formatLabel","content","aria-live","fallback","isDataGridStateCopy","DataGridState","as","DataGridFilterTrigger","activeCount","label","hasActiveFilters","data-active-count","context","Error","DataGridFilterPanel","DataGridFooter","DataGridFooterEnd","DataGridFooterStart","DataGridHeader","DataGridHeaderActions","DataGridHeaderEnd","DataGridHeaderStart","DataGridSubtitle","DataGridTitle"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid.tsx"],"sourcesContent":["import {\n type ComponentProps,\n type ComponentRef,\n type CSSProperties,\n type ForwardRefExoticComponent,\n type ReactElement,\n type ReactNode,\n type Ref,\n type RefAttributes,\n type RefObject,\n createContext,\n forwardRef,\n useContext,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react';\n\nimport { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\nimport { IconCheck, IconFilter, IconMinus } from '@tabler/icons-react';\nimport {\n type CellContext,\n type ColumnDef,\n type ColumnFiltersState,\n type ColumnPinningState,\n type ColumnSizingState,\n type ExpandedState,\n type FilterFnOption,\n type PaginationState,\n type Row,\n type RowSelectionState,\n type Table,\n type SortingState,\n getCoreRowModel,\n getExpandedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport { useVirtualizer } from '@tanstack/react-virtual';\n\nimport { useControllableState } from '../../../../lib/use-controllable-state';\nimport { cn, focusState } from '../../../../lib/utils';\nimport { Button } from '../button/button';\nimport {\n EmptyState,\n EmptyStateActions,\n EmptyStateDescription,\n EmptyStateIcon,\n EmptyStateTitle,\n} from '../empty-state/empty-state';\nimport type { EmptyStateType } from '../empty-state/empty-state.context';\nimport { Search } from '../search/search';\nimport { Skeleton } from '../skeleton/skeleton';\nimport { StatusText } from '../status-text/status-text';\n\nimport { DataGridCell } from './data-grid-cell';\nimport { DataGridHeaderRow } from './data-grid-header-row';\nimport { DataGridRow } from './data-grid-row';\nimport {\n countSelectedRowIds,\n getDataGridCheckboxState,\n selectDataGridRowTree,\n} from './data-grid-selection-state';\nimport { DataGridSelectionToolbar } from './data-grid-selection-toolbar';\nimport type { DataGridSelectionActions } from './data-grid-selection.types';\nimport { PINNED_COLUMN_Z_INDEX, getTextValue } from './data-grid.utils';\n\nconst EMPTY_PINNED_COLUMNS: string[] = [];\n\nfunction defaultDataGridCell<TData>({\n renderValue,\n}: CellContext<TData, unknown>): ReactNode {\n const text = getTextValue(renderValue());\n if (text === undefined) return null;\n\n return (\n <span className=\"block min-w-0 truncate\" title={text}>\n {text}\n </span>\n );\n}\n\nconst DEFAULT_COLUMN = {\n cell: defaultDataGridCell,\n size: undefined,\n};\n\ntype DataGridContextValue = {\n searchValue: string;\n setSearchValue: (value: string) => void;\n filteredCount?: number;\n totalCount?: number;\n};\n\nconst DataGridContext = createContext<DataGridContextValue | undefined>(\n undefined\n);\n\ntype DataGridSize = 'default' | 'compact';\ntype DataGridQueryMode = 'client' | 'server';\ntype DataGridLoadingVariant = 'skeleton' | 'none';\n\ntype DataGridStateCopyFields = {\n title: string;\n description: string;\n action: ReactNode;\n};\n\ntype AtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends keyof T\n ? Pick<Required<T>, Keys> & Partial<Omit<T, Keys>>\n : never;\n\ntype DataGridStateCopy = AtLeastOne<DataGridStateCopyFields>;\n\ntype DataGridLabels = {\n clearSearch: string;\n clearFilters: string;\n};\n\nconst defaultDataGridLabels: DataGridLabels = {\n clearSearch: 'Clear search',\n clearFilters: 'Clear filters',\n};\n\ntype DataGridLoadingCellContext = {\n rowIndex: number;\n columnId: string;\n columnIndex: number;\n size: DataGridSize;\n};\n\nconst ROW_HEIGHT_MAP: Record<DataGridSize, number> = {\n default: 36,\n compact: 32,\n};\n\nconst HEADER_HEIGHT_MAP: Record<DataGridSize, number> = {\n default: 36,\n compact: 32,\n};\n\ntype DataGridHandle = {\n scrollToRow: (index: number) => void;\n resetSorting: () => void;\n resetSelection: () => void;\n resetSearch: () => void;\n};\n\ntype DataGridBaseProps<TData> = {\n data: TData[];\n columns: ColumnDef<TData>[];\n getRowId?: (originalRow: TData, index: number) => string;\n rowCount?: number;\n globalFilterFn?: FilterFnOption<TData>;\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean);\n enableSorting?: boolean;\n enableColumnResizing?: boolean;\n columnGrow?: boolean;\n columnSizing?: ColumnSizingState;\n defaultColumnSizing?: ColumnSizingState;\n onColumnSizingChange?: (value: ColumnSizingState) => void;\n manualPagination?: boolean;\n manualSorting?: boolean;\n rowSelection?: RowSelectionState;\n defaultRowSelection?: RowSelectionState;\n onRowSelectionChange?: (value: RowSelectionState) => void;\n selectionActions?: DataGridSelectionActions;\n sorting?: SortingState;\n defaultSorting?: SortingState;\n onSortingChange?: (value: SortingState) => void;\n columnFilters?: ColumnFiltersState;\n defaultColumnFilters?: ColumnFiltersState;\n onColumnFiltersChange?: (value: ColumnFiltersState) => void;\n pagination?: PaginationState;\n defaultPagination?: PaginationState;\n onPaginationChange?: (value: PaginationState) => void;\n getSubRows?: (row: TData, index: number) => TData[] | undefined;\n expanded?: ExpandedState;\n defaultExpanded?: ExpandedState;\n onExpandedChange?: (value: ExpandedState) => void;\n getRowCanExpand?: (row: Row<TData>) => boolean;\n maxDepth?: number;\n pinnedColumns?: string[];\n // forwardRef cannot preserve the `TData` generic, so the imperative handle\n // is exposed via a ref-object prop instead of `forwardRef` + `useImperativeHandle`.\n // See https://github.com/facebook/react/issues/22018.\n gridRef?: RefObject<DataGridHandle | null>;\n size?: DataGridSize;\n children?: ReactNode;\n className?: string;\n onRowClick?: (row: Row<TData>) => void;\n searchValue?: string;\n defaultSearchValue?: string;\n onSearchValueChange?: (value: string) => void;\n queryMode?: DataGridQueryMode;\n loading?: boolean;\n loadingVariant?: DataGridLoadingVariant;\n loadingRowCount?: number;\n renderLoadingCell?: (ctx: DataGridLoadingCellContext) => ReactNode;\n emptyState?: ReactNode | DataGridStateCopy;\n noResultsState?: ReactNode | DataGridStateCopy;\n onClearSearch?: () => void;\n onClearFilters?: () => void;\n labels?: Partial<DataGridLabels>;\n filteredResultCount?: number;\n totalResultCount?: number;\n rowHeight?: number;\n headerHeight?: number;\n};\n\n// The grid renders with `role=\"table\"`, which requires an accessible name for\n// screen readers. It is bad practice to omit one, so the type requires at least\n// one of `aria-label` / `aria-labelledby` rather than leaving both optional.\ntype DataGridAccessibleNameProps =\n | { 'aria-label': string; 'aria-labelledby'?: string }\n | { 'aria-labelledby': string; 'aria-label'?: string };\n\ntype DataGridProps<TData> = DataGridBaseProps<TData> &\n DataGridAccessibleNameProps;\n\nfunction DataGrid<TData>({\n data,\n columns,\n getRowId,\n rowCount,\n globalFilterFn = 'auto',\n enableRowSelection = false,\n enableSorting = false,\n enableColumnResizing = false,\n columnGrow = false,\n columnSizing,\n defaultColumnSizing,\n onColumnSizingChange,\n manualPagination = false,\n manualSorting = false,\n rowSelection,\n defaultRowSelection,\n onRowSelectionChange,\n selectionActions,\n sorting,\n defaultSorting,\n onSortingChange,\n columnFilters,\n defaultColumnFilters,\n onColumnFiltersChange,\n pagination,\n defaultPagination,\n onPaginationChange,\n getSubRows,\n expanded,\n defaultExpanded,\n onExpandedChange,\n getRowCanExpand,\n maxDepth = 5,\n pinnedColumns = EMPTY_PINNED_COLUMNS,\n gridRef,\n size = 'default',\n children,\n className,\n onRowClick,\n searchValue,\n defaultSearchValue,\n onSearchValueChange,\n queryMode = 'client',\n loading = false,\n loadingVariant = 'skeleton',\n loadingRowCount,\n renderLoadingCell,\n emptyState,\n noResultsState,\n filteredResultCount,\n totalResultCount,\n onClearSearch,\n onClearFilters,\n labels: labelOverrides,\n rowHeight,\n headerHeight,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n}: DataGridProps<TData>): ReactElement {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const labels = { ...defaultDataGridLabels, ...labelOverrides };\n\n const [resolvedSearchValue, setResolvedSearchValue] = useControllableState({\n prop: searchValue,\n defaultProp: defaultSearchValue ?? '',\n onChange: onSearchValueChange,\n });\n\n const [resolvedSorting, setResolvedSorting] =\n useControllableState<SortingState>({\n prop: sorting,\n defaultProp: defaultSorting ?? [],\n onChange: onSortingChange,\n });\n\n const [resolvedColumnFilters, setResolvedColumnFilters] =\n useControllableState<ColumnFiltersState>({\n prop: columnFilters,\n defaultProp: defaultColumnFilters ?? [],\n onChange: onColumnFiltersChange,\n });\n\n const [resolvedRowSelection, setResolvedRowSelection] =\n useControllableState<RowSelectionState>({\n prop: rowSelection,\n defaultProp: defaultRowSelection ?? {},\n onChange: onRowSelectionChange,\n });\n\n const hasPagination =\n pagination !== undefined || defaultPagination !== undefined;\n\n const [resolvedPagination, setResolvedPagination] =\n useControllableState<PaginationState>({\n prop: pagination,\n defaultProp: defaultPagination ?? { pageIndex: 0, pageSize: 10 },\n onChange: onPaginationChange,\n });\n\n const hasExpanding = getSubRows !== undefined;\n\n const [resolvedExpanded, setResolvedExpanded] =\n useControllableState<ExpandedState>({\n prop: expanded,\n defaultProp: defaultExpanded ?? {},\n onChange: onExpandedChange,\n });\n\n const [resolvedColumnSizing, setResolvedColumnSizing] =\n useControllableState<ColumnSizingState>({\n prop: columnSizing,\n defaultProp: defaultColumnSizing ?? {},\n onChange: onColumnSizingChange,\n });\n\n const isClientSorting = enableSorting && !manualSorting;\n const isClientPagination = hasPagination && !manualPagination;\n\n const columnPinning: ColumnPinningState = useMemo(\n () => ({ left: pinnedColumns, right: [] }),\n [pinnedColumns]\n );\n\n const pinnedColumnIds = useMemo(\n () => new Set(pinnedColumns),\n [pinnedColumns]\n );\n const lastPinnedColumnId = pinnedColumns[pinnedColumns.length - 1];\n // eslint-disable-next-line react-hooks/incompatible-library -- useReactTable in the DataGrid component is intentional and stable.\n const table = useReactTable({\n data,\n columns,\n state: {\n columnPinning,\n globalFilter: resolvedSearchValue,\n sorting: resolvedSorting,\n columnFilters: resolvedColumnFilters,\n rowSelection: resolvedRowSelection,\n columnSizing: resolvedColumnSizing,\n ...(hasPagination ? { pagination: resolvedPagination } : {}),\n ...(hasExpanding ? { expanded: resolvedExpanded } : {}),\n },\n onSortingChange: setResolvedSorting,\n onColumnFiltersChange: setResolvedColumnFilters,\n onRowSelectionChange: setResolvedRowSelection,\n onColumnSizingChange: setResolvedColumnSizing,\n ...(hasPagination ? { onPaginationChange: setResolvedPagination } : {}),\n ...(hasExpanding ? { onExpandedChange: setResolvedExpanded } : {}),\n // Preserve expanded rows across `data` changes (e.g. refetches) so the user\n // doesn't lose their place. Consumers fetching server-paged data should\n // ensure stable `getRowId` values; otherwise expanded keys can stick to\n // rows that no longer logically exist.\n autoResetExpanded: false,\n enableRowSelection,\n // Selecting a parent selects every descendant, including while it is collapsed.\n enableSubRowSelection: true,\n enableSorting,\n enableColumnResizing,\n columnResizeMode: 'onChange',\n defaultColumn: DEFAULT_COLUMN,\n manualPagination,\n manualSorting,\n manualFiltering: queryMode === 'server',\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n globalFilterFn,\n ...(isClientSorting ? { getSortedRowModel: getSortedRowModel() } : {}),\n ...(isClientPagination\n ? { getPaginationRowModel: getPaginationRowModel() }\n : {}),\n ...(hasExpanding ? { getExpandedRowModel: getExpandedRowModel() } : {}),\n getRowId,\n getSubRows,\n getRowCanExpand,\n });\n\n const { rows } = table.getRowModel();\n const headerGroups = table.getHeaderGroups();\n const visibleColumns = table.getVisibleFlatColumns();\n\n const resolvedRowHeight = rowHeight ?? ROW_HEIGHT_MAP[size];\n const resolvedHeaderHeight = headerHeight ?? HEADER_HEIGHT_MAP[size];\n const resolvedLoadingRowCount = loadingRowCount ?? 6;\n const shouldRenderSkeleton = loading && loadingVariant === 'skeleton';\n const hideRowsForLoading = loading && loadingVariant !== 'none';\n const hasActiveServerSearch =\n queryMode === 'server' && resolvedSearchValue !== '';\n const hasNoRows = !loading && data.length === 0 && !hasActiveServerSearch;\n const hasNoResults =\n !loading &&\n (hasActiveServerSearch\n ? data.length === 0\n : data.length > 0 && table.getFilteredRowModel().rows.length === 0);\n\n const virtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => scrollContainerRef.current,\n estimateSize: () => resolvedRowHeight,\n overscan: 10,\n });\n const bodyHeight = shouldRenderSkeleton\n ? resolvedLoadingRowCount * resolvedRowHeight\n : virtualizer.getTotalSize();\n const bodyStyle: CSSProperties & {\n '--data-grid-body-height': string;\n '--data-grid-body-min-height': string;\n } = {\n '--data-grid-body-height': `${bodyHeight}px`,\n '--data-grid-body-min-height': `${resolvedRowHeight * 4}px`,\n };\n\n useImperativeHandle(gridRef, () => ({\n scrollToRow: (index: number) => virtualizer.scrollToIndex(index),\n resetSorting: () => setResolvedSorting([]),\n resetSelection: () => setResolvedRowSelection({}),\n resetSearch: () => setResolvedSearchValue(''),\n }));\n\n const hasFlexibleColumn =\n !enableColumnResizing &&\n !columnGrow &&\n visibleColumns.some(\n (column) =>\n column.columnDef.size === undefined && !pinnedColumnIds.has(column.id)\n );\n const gridTemplateColumns = visibleColumns\n .map((column, index) => {\n const columnSize = column.getSize();\n if (enableColumnResizing || pinnedColumnIds.has(column.id)) {\n return `${columnSize}px`;\n }\n if (columnGrow) {\n return `minmax(${columnSize}px, ${columnSize}fr)`;\n }\n const isLastColumn = index === visibleColumns.length - 1;\n if (column.columnDef.size !== undefined) {\n if (!hasFlexibleColumn && isLastColumn) {\n return `minmax(${columnSize}px, 1fr)`;\n }\n return `${columnSize}px`;\n }\n return `minmax(${columnSize}px, 1fr)`;\n })\n .join(' ');\n\n const scrollContainerStyle: CSSProperties & {\n '--data-grid-template-columns': string;\n } = {\n '--data-grid-template-columns': gridTemplateColumns,\n };\n\n const isResizingColumn = Boolean(\n table.getState().columnSizingInfo.isResizingColumn\n );\n const clientFilteredCount = table.getFilteredRowModel().rows.length;\n const clientTotalCount = table.getCoreRowModel().rows.length;\n\n const contextValue = useMemo<DataGridContextValue>(\n () => ({\n searchValue: resolvedSearchValue,\n setSearchValue: setResolvedSearchValue,\n filteredCount:\n queryMode === 'client' ? clientFilteredCount : filteredResultCount,\n totalCount: queryMode === 'client' ? clientTotalCount : totalResultCount,\n }),\n [\n resolvedSearchValue,\n setResolvedSearchValue,\n queryMode,\n clientFilteredCount,\n filteredResultCount,\n clientTotalCount,\n totalResultCount,\n ]\n );\n\n const selectedRowCount = countSelectedRowIds(resolvedRowSelection);\n\n return (\n <DataGridContext.Provider value={contextValue}>\n <div\n data-slot=\"data-grid\"\n data-query-mode={queryMode}\n data-filtered-result-count={filteredResultCount}\n data-total-result-count={totalResultCount}\n className={cn(\n 'relative flex min-h-0 w-full flex-col overflow-clip rounded-xl text-sm',\n className\n )}\n >\n {children}\n <div\n ref={scrollContainerRef}\n data-slot=\"data-grid-scroll-container\"\n className=\"relative order-2 min-h-0 w-full flex-1 overflow-auto\"\n style={scrollContainerStyle}\n role=\"table\"\n aria-rowcount={\n hideRowsForLoading\n ? headerGroups.length\n : (rowCount ?? rows.length) + headerGroups.length\n }\n aria-colcount={visibleColumns.length}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div\n className={cn(\n 'min-w-fit w-full',\n enableRowSelection !== false && selectedRowCount > 0 && 'pb-24'\n )}\n >\n <div\n role=\"rowgroup\"\n data-slot=\"data-grid-header-group\"\n className=\"contents\"\n >\n {headerGroups.map((headerGroup, headerRowIndex) => (\n <DataGridHeaderRow\n key={headerGroup.id}\n headerGroup={headerGroup}\n headerRowIndex={headerRowIndex}\n resolvedHeaderHeight={resolvedHeaderHeight}\n pinnedColumnIds={pinnedColumnIds}\n lastPinnedColumnId={lastPinnedColumnId}\n isResizingColumn={isResizingColumn}\n />\n ))}\n </div>\n\n <div\n role=\"rowgroup\"\n data-slot=\"data-grid-body\"\n className={cn(\n 'relative min-h-(--data-grid-body-min-height)',\n !hasNoRows && !hasNoResults && 'h-(--data-grid-body-height)'\n )}\n style={bodyStyle}\n >\n {shouldRenderSkeleton &&\n Array.from(\n { length: resolvedLoadingRowCount },\n (_, rowIndex) => (\n <div\n key={`skeleton-row-${rowIndex}`}\n data-slot=\"data-grid-row-loading\"\n aria-hidden=\"true\"\n className=\"absolute left-0 right-0 grid border-b bg-background\"\n style={{\n gridTemplateColumns:\n 'var(--data-grid-template-columns)',\n height: resolvedRowHeight,\n transform: `translateY(${rowIndex * resolvedRowHeight}px)`,\n }}\n >\n {visibleColumns.map((column, colIndex) => {\n const isPinned = pinnedColumnIds.has(column.id);\n const isLastPinned =\n isPinned && lastPinnedColumnId === column.id;\n return (\n <DataGridCell\n key={column.id}\n isPinned={isPinned}\n isLastPinned={isLastPinned}\n colIndex={colIndex + 1}\n style={\n isPinned\n ? {\n position: 'sticky',\n left: column.getStart('left'),\n zIndex: PINNED_COLUMN_Z_INDEX,\n }\n : undefined\n }\n >\n {renderLoadingCell?.({\n rowIndex,\n columnId: column.id,\n columnIndex: colIndex,\n size,\n }) ??\n (column.id === 'select' ? (\n <Skeleton className=\"h-4 w-4 rounded\" />\n ) : (\n <Skeleton\n className={cn(\n 'h-4 max-w-full',\n colIndex === 0 ? 'w-3/4' : 'w-2/3'\n )}\n />\n ))}\n </DataGridCell>\n );\n })}\n </div>\n )\n )}\n\n {!hideRowsForLoading &&\n !hasNoRows &&\n !hasNoResults &&\n virtualizer\n .getVirtualItems()\n .map((virtualRow) => (\n <DataGridRow\n key={rows[virtualRow.index].id}\n row={rows[virtualRow.index]}\n virtualRow={virtualRow}\n headerGroupCount={headerGroups.length}\n pinnedColumnIds={pinnedColumnIds}\n lastPinnedColumnId={lastPinnedColumnId}\n maxDepth={maxDepth}\n hasExpanding={hasExpanding}\n onRowClick={onRowClick}\n />\n ))}\n\n {!loading && hasNoRows && emptyState != null && (\n <div className=\"pt-2\">\n <div className=\"flex items-center justify-center rounded-lg bg-medium-background\">\n {renderDataGridState(emptyState, {\n type: 'new-object',\n title: 'No rows yet',\n description: 'Add data to populate this table.',\n })}\n </div>\n </div>\n )}\n\n {!loading && hasNoResults && (\n <div className=\"pt-2\">\n <div className=\"flex items-center justify-center bg-background\">\n {renderDataGridState(noResultsState, {\n type: 'no-results',\n title: 'No results found',\n description:\n queryMode === 'server'\n ? 'Apply a different query or clear filters.'\n : 'Try a different search term or clear filters.',\n action:\n onClearSearch || onClearFilters ? (\n <div className=\"mt-2 flex items-center justify-center gap-2\">\n {onClearSearch ? (\n <Button\n size=\"sm\"\n variant=\"secondary\"\n onClick={onClearSearch}\n >\n {labels.clearSearch}\n </Button>\n ) : null}\n {onClearFilters ? (\n <Button\n size=\"sm\"\n variant=\"secondary\"\n onClick={onClearFilters}\n >\n {labels.clearFilters}\n </Button>\n ) : null}\n </div>\n ) : undefined,\n })}\n </div>\n </div>\n )}\n </div>\n </div>\n {enableRowSelection !== false ? (\n <DataGridSelectionToolbar\n // The count includes every selected id.\n // That covers parents and their children, rows on other pages, and rows hidden by search.\n selectedCount={selectedRowCount}\n rowSelection={resolvedRowSelection}\n selectionActions={selectionActions}\n onClear={() => setResolvedRowSelection({})}\n />\n ) : null}\n </div>\n </div>\n </DataGridContext.Provider>\n );\n}\n\ntype DataGridCheckboxProps = {\n checked: boolean | 'indeterminate';\n onCheckedChange: (checked: boolean | 'indeterminate') => void;\n disabled?: boolean;\n 'aria-label'?: string;\n};\n\nfunction DataGridCheckbox({\n checked,\n onCheckedChange,\n disabled,\n 'aria-label': checkboxAriaLabel,\n}: DataGridCheckboxProps): ReactElement {\n const isIndeterminate = checked === 'indeterminate';\n const isChecked = checked === true;\n\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n checked={isIndeterminate ? false : isChecked}\n indeterminate={isIndeterminate}\n disabled={disabled}\n onCheckedChange={(next) => onCheckedChange(next)}\n aria-label={checkboxAriaLabel}\n className={cn(\n 'peer relative size-4 shrink-0 rounded-sm border-[1.5px] border-muted-foreground bg-transparent text-foreground-on-primary outline-none transition-colors',\n '[&:is([data-checked],[data-indeterminate]):not([data-disabled])]:border-transparent [&:is([data-checked],[data-indeterminate]):not([data-disabled])]:bg-primary-background',\n 'hover:data-unchecked:not-data-disabled:border-muted-foreground-hover',\n 'data-disabled:pointer-events-none data-disabled:cursor-not-allowed data-disabled:border-transparent data-disabled:bg-disabled-background data-disabled:text-disabled-foreground data-disabled:data-unchecked:border-border',\n '[&[data-checked]_[data-slot=checkbox-check]]:block [&[data-indeterminate]_[data-slot=checkbox-dash]]:block',\n focusState\n )}\n >\n <CheckboxPrimitive.Indicator className=\"grid size-full place-content-center text-current transition-none\">\n <IconCheck\n aria-hidden=\"true\"\n data-slot=\"checkbox-check\"\n className=\"hidden size-3\"\n stroke={3}\n />\n <IconMinus\n aria-hidden=\"true\"\n data-slot=\"checkbox-dash\"\n className=\"hidden size-3\"\n stroke={3.5}\n />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nfunction DataGridCheckboxHeader<TData>({\n table,\n}: {\n table: Table<TData>;\n}): ReactElement {\n const allSelected = table.getIsAllPageRowsSelected();\n const someSelected = table.getIsSomePageRowsSelected();\n const checked = allSelected ? true : someSelected ? 'indeterminate' : false;\n\n return (\n <DataGridCheckbox\n checked={checked}\n onCheckedChange={() => table.toggleAllPageRowsSelected(!allSelected)}\n aria-label=\"Select all rows\"\n />\n );\n}\n\nfunction DataGridCheckboxCell<TData>({\n row,\n}: {\n row: Row<TData>;\n}): ReactElement {\n return (\n <DataGridCheckbox\n checked={getDataGridCheckboxState(row)}\n disabled={!row.getCanSelect()}\n onCheckedChange={(next) => {\n if (next === true) {\n selectDataGridRowTree(row);\n return;\n }\n row.toggleSelected(false);\n }}\n aria-label=\"Select row\"\n />\n );\n}\n\ntype DataGridSearchProps = Omit<\n ComponentProps<typeof Search>,\n 'value' | 'onChange' | 'onClear'\n>;\n\nconst DataGridSearch: ForwardRefExoticComponent<\n DataGridSearchProps & RefAttributes<ComponentRef<typeof Search>>\n> = forwardRef<ComponentRef<typeof Search>, DataGridSearchProps>(\n function DataGridSearch(\n { className, placeholder = 'Search', ...props },\n ref\n ) {\n const { searchValue, setSearchValue } = useDataGridContext();\n\n return (\n <Search\n ref={ref}\n value={searchValue}\n onChange={(event) => setSearchValue(event.target.value)}\n onClear={() => setSearchValue('')}\n placeholder={placeholder}\n className={cn('py-4', className)}\n {...props}\n />\n );\n }\n);\nDataGridSearch.displayName = 'DataGridSearch';\n\ntype DataGridResultCountProps = Omit<ComponentProps<'output'>, 'children'> & {\n formatLabel?: (filteredCount: number, totalCount?: number) => ReactNode;\n};\n\nfunction defaultFormatResultCount(\n filteredCount: number,\n totalCount?: number\n): string {\n const noun = (totalCount ?? filteredCount) === 1 ? 'result' : 'results';\n return totalCount === undefined\n ? `Showing ${filteredCount.toLocaleString('en')} ${noun}`\n : `Showing ${filteredCount.toLocaleString('en')} of ${totalCount.toLocaleString('en')} ${noun}`;\n}\n\nconst DataGridResultCount: ForwardRefExoticComponent<\n DataGridResultCountProps & RefAttributes<HTMLOutputElement>\n> = forwardRef<ComponentRef<'output'>, DataGridResultCountProps>(\n function DataGridResultCount(\n { formatLabel = defaultFormatResultCount, ...props },\n ref\n ) {\n const { filteredCount, totalCount } = useDataGridContext();\n\n // Nothing to say until the grid has counted.\n if (filteredCount === undefined) return null;\n\n const content = formatLabel(filteredCount, totalCount);\n\n if (content == null) return null;\n\n return (\n // Not live by default: it changes on every search keystroke, which screen readers would read out.\n <StatusText\n ref={ref}\n data-slot=\"data-grid-result-count\"\n aria-live=\"off\"\n {...props}\n >\n {content}\n </StatusText>\n );\n }\n);\nDataGridResultCount.displayName = 'DataGridResultCount';\n\nfunction renderDataGridState(\n state: ReactNode | DataGridStateCopy | undefined,\n fallback: { type: EmptyStateType } & Pick<\n DataGridStateCopyFields,\n 'title' | 'description'\n > &\n Partial<Pick<DataGridStateCopyFields, 'action'>>\n): ReactNode {\n if (isDataGridStateCopy(state)) {\n return (\n <DataGridState\n type={fallback.type}\n title={state.title ?? fallback.title}\n description={state.description ?? fallback.description}\n action={state.action !== undefined ? state.action : fallback.action}\n />\n );\n }\n\n if (state !== undefined) return state;\n\n return (\n <DataGridState\n type={fallback.type}\n title={fallback.title}\n description={fallback.description}\n action={fallback.action}\n />\n );\n}\n\nfunction isDataGridStateCopy(value: unknown): value is DataGridStateCopy {\n return (\n typeof value === 'object' &&\n value !== null &&\n !('type' in value) &&\n ('title' in value || 'description' in value || 'action' in value)\n );\n}\n\nfunction DataGridState({\n type,\n title,\n description,\n action,\n}: { type: EmptyStateType } & Pick<\n DataGridStateCopyFields,\n 'title' | 'description'\n> &\n Partial<Pick<DataGridStateCopyFields, 'action'>>): ReactElement {\n return (\n <EmptyState type={type} className=\"p-10\">\n <EmptyStateIcon />\n <EmptyStateTitle as=\"p\">{title}</EmptyStateTitle>\n <EmptyStateDescription>{description}</EmptyStateDescription>\n {action ? <EmptyStateActions>{action}</EmptyStateActions> : null}\n </EmptyState>\n );\n}\n\ntype DataGridFilterTriggerProps = ComponentProps<typeof Button> & {\n activeCount?: number;\n label?: string;\n};\n\nconst DataGridFilterTrigger: ForwardRefExoticComponent<\n DataGridFilterTriggerProps & RefAttributes<ComponentRef<typeof Button>>\n> = forwardRef<ComponentRef<typeof Button>, DataGridFilterTriggerProps>(\n function DataGridFilterTrigger(\n {\n activeCount = 0,\n label = 'Filters',\n className,\n children,\n ...props\n }: DataGridFilterTriggerProps,\n ref: Ref<ComponentRef<typeof Button>>\n ) {\n const hasActiveFilters = activeCount > 0;\n\n return (\n <Button\n ref={ref}\n data-slot=\"data-grid-filter-trigger\"\n data-active-count={activeCount}\n size=\"default\"\n variant={hasActiveFilters ? 'secondary' : 'ghost'}\n className={cn('min-w-0', className)}\n aria-label={children != null ? label : undefined}\n {...props}\n >\n {children ?? (\n <>\n <IconFilter className=\"size-4 shrink-0\" aria-hidden=\"true\" />\n <span>{label}</span>\n </>\n )}\n </Button>\n );\n }\n);\nDataGridFilterTrigger.displayName = 'DataGridFilterTrigger';\n\nfunction useDataGridContext(): DataGridContextValue {\n const context = useContext(DataGridContext);\n if (!context) {\n throw new Error('useDataGridContext must be used within a DataGrid');\n }\n return context;\n}\nexport {\n DataGrid,\n DataGridCheckboxCell,\n DataGridCheckboxHeader,\n DataGridResultCount,\n DataGridFilterTrigger,\n DataGridSearch,\n useDataGridContext,\n type DataGridContextValue,\n type DataGridHandle,\n type DataGridLabels,\n};\nexport {\n DataGridFilterPanel,\n type DataGridFilterColumn,\n type DataGridFilterPanelLabels,\n} from './data-grid-filter-panel';\nexport {\n DataGridFooter,\n DataGridFooterEnd,\n DataGridFooterStart,\n} from './data-grid-footer';\nexport {\n DataGridHeader,\n DataGridHeaderActions,\n DataGridHeaderEnd,\n DataGridHeaderStart,\n DataGridSubtitle,\n DataGridTitle,\n} from './data-grid-header';\n"],"names":["createContext","forwardRef","useContext","useImperativeHandle","useMemo","useRef","Checkbox","CheckboxPrimitive","IconCheck","IconFilter","IconMinus","getCoreRowModel","getExpandedRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","useReactTable","useVirtualizer","useControllableState","cn","focusState","Button","EmptyState","EmptyStateActions","EmptyStateDescription","EmptyStateIcon","EmptyStateTitle","Search","Skeleton","StatusText","DataGridCell","DataGridHeaderRow","DataGridRow","countSelectedRowIds","getDataGridCheckboxState","selectDataGridRowTree","DataGridSelectionToolbar","PINNED_COLUMN_Z_INDEX","getTextValue","EMPTY_PINNED_COLUMNS","defaultDataGridCell","renderValue","text","undefined","span","className","title","DEFAULT_COLUMN","cell","size","DataGridContext","defaultDataGridLabels","clearSearch","clearFilters","ROW_HEIGHT_MAP","default","compact","HEADER_HEIGHT_MAP","DataGrid","data","columns","getRowId","rowCount","globalFilterFn","enableRowSelection","enableSorting","enableColumnResizing","columnGrow","columnSizing","defaultColumnSizing","onColumnSizingChange","manualPagination","manualSorting","rowSelection","defaultRowSelection","onRowSelectionChange","selectionActions","sorting","defaultSorting","onSortingChange","columnFilters","defaultColumnFilters","onColumnFiltersChange","pagination","defaultPagination","onPaginationChange","getSubRows","expanded","defaultExpanded","onExpandedChange","getRowCanExpand","maxDepth","pinnedColumns","gridRef","children","onRowClick","searchValue","defaultSearchValue","onSearchValueChange","queryMode","loading","loadingVariant","loadingRowCount","renderLoadingCell","emptyState","noResultsState","filteredResultCount","totalResultCount","onClearSearch","onClearFilters","labels","labelOverrides","rowHeight","headerHeight","ariaLabel","ariaLabelledBy","scrollContainerRef","resolvedSearchValue","setResolvedSearchValue","prop","defaultProp","onChange","resolvedSorting","setResolvedSorting","resolvedColumnFilters","setResolvedColumnFilters","resolvedRowSelection","setResolvedRowSelection","hasPagination","resolvedPagination","setResolvedPagination","pageIndex","pageSize","hasExpanding","resolvedExpanded","setResolvedExpanded","resolvedColumnSizing","setResolvedColumnSizing","isClientSorting","isClientPagination","columnPinning","left","right","pinnedColumnIds","Set","lastPinnedColumnId","length","table","state","globalFilter","autoResetExpanded","enableSubRowSelection","columnResizeMode","defaultColumn","manualFiltering","rows","getRowModel","headerGroups","getHeaderGroups","visibleColumns","getVisibleFlatColumns","resolvedRowHeight","resolvedHeaderHeight","resolvedLoadingRowCount","shouldRenderSkeleton","hideRowsForLoading","hasActiveServerSearch","hasNoRows","hasNoResults","virtualizer","count","getScrollElement","current","estimateSize","overscan","bodyHeight","getTotalSize","bodyStyle","scrollToRow","index","scrollToIndex","resetSorting","resetSelection","resetSearch","hasFlexibleColumn","some","column","columnDef","has","id","gridTemplateColumns","map","columnSize","getSize","isLastColumn","join","scrollContainerStyle","isResizingColumn","Boolean","getState","columnSizingInfo","clientFilteredCount","clientTotalCount","contextValue","setSearchValue","filteredCount","totalCount","selectedRowCount","Provider","value","div","data-slot","data-query-mode","data-filtered-result-count","data-total-result-count","ref","style","role","aria-rowcount","aria-colcount","aria-label","aria-labelledby","headerGroup","headerRowIndex","Array","from","_","rowIndex","aria-hidden","height","transform","colIndex","isPinned","isLastPinned","position","getStart","zIndex","columnId","columnIndex","getVirtualItems","virtualRow","row","headerGroupCount","renderDataGridState","type","description","action","variant","onClick","selectedCount","onClear","DataGridCheckbox","checked","onCheckedChange","disabled","checkboxAriaLabel","isIndeterminate","isChecked","Root","indeterminate","next","Indicator","stroke","DataGridCheckboxHeader","allSelected","getIsAllPageRowsSelected","someSelected","getIsSomePageRowsSelected","toggleAllPageRowsSelected","DataGridCheckboxCell","getCanSelect","toggleSelected","DataGridSearch","placeholder","props","useDataGridContext","event","target","displayName","defaultFormatResultCount","noun","toLocaleString","DataGridResultCount","formatLabel","content","aria-live","fallback","isDataGridStateCopy","DataGridState","as","DataGridFilterTrigger","activeCount","label","hasActiveFilters","data-active-count","context","Error","DataGridFilterPanel","DataGridFooter","DataGridFooterEnd","DataGridFooterStart","DataGridHeader","DataGridHeaderActions","DataGridHeaderEnd","DataGridHeaderStart","DataGridSubtitle","DataGridTitle"],"mappings":";AAAA,SAUEA,aAAa,EACbC,UAAU,EACVC,UAAU,EACVC,mBAAmB,EACnBC,OAAO,EACPC,MAAM,QACD,QAAQ;AAEf,SAASC,YAAYC,iBAAiB,QAAQ,0BAA0B;AACxE,SAASC,SAAS,EAAEC,UAAU,EAAEC,SAAS,QAAQ,sBAAsB;AACvE,SAaEC,eAAe,EACfC,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,EACrBC,iBAAiB,EACjBC,aAAa,QACR,wBAAwB;AAC/B,SAASC,cAAc,QAAQ,0BAA0B;AAEzD,SAASC,oBAAoB,QAAQ,4CAAyC;AAC9E,SAASC,EAAE,EAAEC,UAAU,QAAQ,2BAAwB;AACvD,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SACEC,UAAU,EACVC,iBAAiB,EACjBC,qBAAqB,EACrBC,cAAc,EACdC,eAAe,QACV,gCAA6B;AAEpC,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SAASC,QAAQ,QAAQ,0BAAuB;AAChD,SAASC,UAAU,QAAQ,gCAA6B;AAExD,SAASC,YAAY,QAAQ,sBAAmB;AAChD,SAASC,iBAAiB,QAAQ,4BAAyB;AAC3D,SAASC,WAAW,QAAQ,qBAAkB;AAC9C,SACEC,mBAAmB,EACnBC,wBAAwB,EACxBC,qBAAqB,QAChB,iCAA8B;AACrC,SAASC,wBAAwB,QAAQ,mCAAgC;AAEzE,SAASC,qBAAqB,EAAEC,YAAY,QAAQ,uBAAoB;AAExE,MAAMC,uBAAiC,EAAE;AAEzC,SAASC,oBAA2B,EAClCC,WAAW,EACiB;IAC5B,MAAMC,OAAOJ,aAAaG;IAC1B,IAAIC,SAASC,WAAW,OAAO;IAE/B,qBACE,KAACC;QAAKC,WAAU;QAAyBC,OAAOJ;kBAC7CA;;AAGP;AAEA,MAAMK,iBAAiB;IACrBC,MAAMR;IACNS,MAAMN;AACR;AASA,MAAMO,gCAAkBlD,cACtB2C;AAwBF,MAAMQ,wBAAwC;IAC5CC,aAAa;IACbC,cAAc;AAChB;AASA,MAAMC,iBAA+C;IACnDC,SAAS;IACTC,SAAS;AACX;AAEA,MAAMC,oBAAkD;IACtDF,SAAS;IACTC,SAAS;AACX;AAiFA,SAASE,SAAgB,EACvBC,IAAI,EACJC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,iBAAiB,MAAM,EACvBC,qBAAqB,KAAK,EAC1BC,gBAAgB,KAAK,EACrBC,uBAAuB,KAAK,EAC5BC,aAAa,KAAK,EAClBC,YAAY,EACZC,mBAAmB,EACnBC,oBAAoB,EACpBC,mBAAmB,KAAK,EACxBC,gBAAgB,KAAK,EACrBC,YAAY,EACZC,mBAAmB,EACnBC,oBAAoB,EACpBC,gBAAgB,EAChBC,OAAO,EACPC,cAAc,EACdC,eAAe,EACfC,aAAa,EACbC,oBAAoB,EACpBC,qBAAqB,EACrBC,UAAU,EACVC,iBAAiB,EACjBC,kBAAkB,EAClBC,UAAU,EACVC,QAAQ,EACRC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,CAAC,EACZC,gBAAgBrD,oBAAoB,EACpCsD,OAAO,EACP5C,OAAO,SAAS,EAChB6C,QAAQ,EACRjD,SAAS,EACTkD,UAAU,EACVC,WAAW,EACXC,kBAAkB,EAClBC,mBAAmB,EACnBC,YAAY,QAAQ,EACpBC,UAAU,KAAK,EACfC,iBAAiB,UAAU,EAC3BC,eAAe,EACfC,iBAAiB,EACjBC,UAAU,EACVC,cAAc,EACdC,mBAAmB,EACnBC,gBAAgB,EAChBC,aAAa,EACbC,cAAc,EACdC,QAAQC,cAAc,EACtBC,SAAS,EACTC,YAAY,EACZ,cAAcC,SAAS,EACvB,mBAAmBC,cAAc,EACZ;IACrB,MAAMC,qBAAqB/G,OAAuB;IAClD,MAAMyG,SAAS;QAAE,GAAG3D,qBAAqB;QAAE,GAAG4D,cAAc;IAAC;IAE7D,MAAM,CAACM,qBAAqBC,uBAAuB,GAAGpG,qBAAqB;QACzEqG,MAAMvB;QACNwB,aAAavB,sBAAsB;QACnCwB,UAAUvB;IACZ;IAEA,MAAM,CAACwB,iBAAiBC,mBAAmB,GACzCzG,qBAAmC;QACjCqG,MAAM1C;QACN2C,aAAa1C,kBAAkB,EAAE;QACjC2C,UAAU1C;IACZ;IAEF,MAAM,CAAC6C,uBAAuBC,yBAAyB,GACrD3G,qBAAyC;QACvCqG,MAAMvC;QACNwC,aAAavC,wBAAwB,EAAE;QACvCwC,UAAUvC;IACZ;IAEF,MAAM,CAAC4C,sBAAsBC,wBAAwB,GACnD7G,qBAAwC;QACtCqG,MAAM9C;QACN+C,aAAa9C,uBAAuB,CAAC;QACrC+C,UAAU9C;IACZ;IAEF,MAAMqD,gBACJ7C,eAAexC,aAAayC,sBAAsBzC;IAEpD,MAAM,CAACsF,oBAAoBC,sBAAsB,GAC/ChH,qBAAsC;QACpCqG,MAAMpC;QACNqC,aAAapC,qBAAqB;YAAE+C,WAAW;YAAGC,UAAU;QAAG;QAC/DX,UAAUpC;IACZ;IAEF,MAAMgD,eAAe/C,eAAe3C;IAEpC,MAAM,CAAC2F,kBAAkBC,oBAAoB,GAC3CrH,qBAAoC;QAClCqG,MAAMhC;QACNiC,aAAahC,mBAAmB,CAAC;QACjCiC,UAAUhC;IACZ;IAEF,MAAM,CAAC+C,sBAAsBC,wBAAwB,GACnDvH,qBAAwC;QACtCqG,MAAMnD;QACNoD,aAAanD,uBAAuB,CAAC;QACrCoD,UAAUnD;IACZ;IAEF,MAAMoE,kBAAkBzE,iBAAiB,CAACO;IAC1C,MAAMmE,qBAAqBX,iBAAiB,CAACzD;IAE7C,MAAMqE,gBAAoCxI,QACxC,IAAO,CAAA;YAAEyI,MAAMjD;YAAekD,OAAO,EAAE;QAAC,CAAA,GACxC;QAAClD;KAAc;IAGjB,MAAMmD,kBAAkB3I,QACtB,IAAM,IAAI4I,IAAIpD,gBACd;QAACA;KAAc;IAEjB,MAAMqD,qBAAqBrD,aAAa,CAACA,cAAcsD,MAAM,GAAG,EAAE;IAClE,kIAAkI;IAClI,MAAMC,QAAQnI,cAAc;QAC1B2C;QACAC;QACAwF,OAAO;YACLR;YACAS,cAAchC;YACdxC,SAAS6C;YACT1C,eAAe4C;YACfnD,cAAcqD;YACd1D,cAAcoE;YACd,GAAIR,gBAAgB;gBAAE7C,YAAY8C;YAAmB,IAAI,CAAC,CAAC;YAC3D,GAAII,eAAe;gBAAE9C,UAAU+C;YAAiB,IAAI,CAAC,CAAC;QACxD;QACAvD,iBAAiB4C;QACjBzC,uBAAuB2C;QACvBlD,sBAAsBoD;QACtBzD,sBAAsBmE;QACtB,GAAIT,gBAAgB;YAAE3C,oBAAoB6C;QAAsB,IAAI,CAAC,CAAC;QACtE,GAAIG,eAAe;YAAE5C,kBAAkB8C;QAAoB,IAAI,CAAC,CAAC;QACjE,4EAA4E;QAC5E,wEAAwE;QACxE,wEAAwE;QACxE,uCAAuC;QACvCe,mBAAmB;QACnBtF;QACA,gFAAgF;QAChFuF,uBAAuB;QACvBtF;QACAC;QACAsF,kBAAkB;QAClBC,eAAe1G;QACfwB;QACAC;QACAkF,iBAAiBvD,cAAc;QAC/BxF,iBAAiBA;QACjBE,qBAAqBA;QACrBkD;QACA,GAAI2E,kBAAkB;YAAE3H,mBAAmBA;QAAoB,IAAI,CAAC,CAAC;QACrE,GAAI4H,qBACA;YAAE7H,uBAAuBA;QAAwB,IACjD,CAAC,CAAC;QACN,GAAIuH,eAAe;YAAEzH,qBAAqBA;QAAsB,IAAI,CAAC,CAAC;QACtEiD;QACAyB;QACAI;IACF;IAEA,MAAM,EAAEiE,IAAI,EAAE,GAAGR,MAAMS,WAAW;IAClC,MAAMC,eAAeV,MAAMW,eAAe;IAC1C,MAAMC,iBAAiBZ,MAAMa,qBAAqB;IAElD,MAAMC,oBAAoBjD,aAAa1D,cAAc,CAACL,KAAK;IAC3D,MAAMiH,uBAAuBjD,gBAAgBxD,iBAAiB,CAACR,KAAK;IACpE,MAAMkH,0BAA0B7D,mBAAmB;IACnD,MAAM8D,uBAAuBhE,WAAWC,mBAAmB;IAC3D,MAAMgE,qBAAqBjE,WAAWC,mBAAmB;IACzD,MAAMiE,wBACJnE,cAAc,YAAYkB,wBAAwB;IACpD,MAAMkD,YAAY,CAACnE,WAAWzC,KAAKuF,MAAM,KAAK,KAAK,CAACoB;IACpD,MAAME,eACJ,CAACpE,WACAkE,CAAAA,wBACG3G,KAAKuF,MAAM,KAAK,IAChBvF,KAAKuF,MAAM,GAAG,KAAKC,MAAMtI,mBAAmB,GAAG8I,IAAI,CAACT,MAAM,KAAK,CAAA;IAErE,MAAMuB,cAAcxJ,eAAe;QACjCyJ,OAAOf,KAAKT,MAAM;QAClByB,kBAAkB,IAAMvD,mBAAmBwD,OAAO;QAClDC,cAAc,IAAMZ;QACpBa,UAAU;IACZ;IACA,MAAMC,aAAaX,uBACfD,0BAA0BF,oBAC1BQ,YAAYO,YAAY;IAC5B,MAAMC,YAGF;QACF,2BAA2B,GAAGF,WAAW,EAAE,CAAC;QAC5C,+BAA+B,GAAGd,oBAAoB,EAAE,EAAE,CAAC;IAC7D;IAEA9J,oBAAoB0F,SAAS,IAAO,CAAA;YAClCqF,aAAa,CAACC,QAAkBV,YAAYW,aAAa,CAACD;YAC1DE,cAAc,IAAM1D,mBAAmB,EAAE;YACzC2D,gBAAgB,IAAMvD,wBAAwB,CAAC;YAC/CwD,aAAa,IAAMjE,uBAAuB;QAC5C,CAAA;IAEA,MAAMkE,oBACJ,CAACtH,wBACD,CAACC,cACD4F,eAAe0B,IAAI,CACjB,CAACC,SACCA,OAAOC,SAAS,CAAC1I,IAAI,KAAKN,aAAa,CAACoG,gBAAgB6C,GAAG,CAACF,OAAOG,EAAE;IAE3E,MAAMC,sBAAsB/B,eACzBgC,GAAG,CAAC,CAACL,QAAQP;QACZ,MAAMa,aAAaN,OAAOO,OAAO;QACjC,IAAI/H,wBAAwB6E,gBAAgB6C,GAAG,CAACF,OAAOG,EAAE,GAAG;YAC1D,OAAO,GAAGG,WAAW,EAAE,CAAC;QAC1B;QACA,IAAI7H,YAAY;YACd,OAAO,CAAC,OAAO,EAAE6H,WAAW,IAAI,EAAEA,WAAW,GAAG,CAAC;QACnD;QACA,MAAME,eAAef,UAAUpB,eAAeb,MAAM,GAAG;QACvD,IAAIwC,OAAOC,SAAS,CAAC1I,IAAI,KAAKN,WAAW;YACvC,IAAI,CAAC6I,qBAAqBU,cAAc;gBACtC,OAAO,CAAC,OAAO,EAAEF,WAAW,QAAQ,CAAC;YACvC;YACA,OAAO,GAAGA,WAAW,EAAE,CAAC;QAC1B;QACA,OAAO,CAAC,OAAO,EAAEA,WAAW,QAAQ,CAAC;IACvC,GACCG,IAAI,CAAC;IAER,MAAMC,uBAEF;QACF,gCAAgCN;IAClC;IAEA,MAAMO,mBAAmBC,QACvBnD,MAAMoD,QAAQ,GAAGC,gBAAgB,CAACH,gBAAgB;IAEpD,MAAMI,sBAAsBtD,MAAMtI,mBAAmB,GAAG8I,IAAI,CAACT,MAAM;IACnE,MAAMwD,mBAAmBvD,MAAMxI,eAAe,GAAGgJ,IAAI,CAACT,MAAM;IAE5D,MAAMyD,eAAevM,QACnB,IAAO,CAAA;YACL4F,aAAaqB;YACbuF,gBAAgBtF;YAChBuF,eACE1G,cAAc,WAAWsG,sBAAsB/F;YACjDoG,YAAY3G,cAAc,WAAWuG,mBAAmB/F;QAC1D,CAAA,GACA;QACEU;QACAC;QACAnB;QACAsG;QACA/F;QACAgG;QACA/F;KACD;IAGH,MAAMoG,mBAAmB9K,oBAAoB6F;IAE7C,qBACE,KAAC5E,gBAAgB8J,QAAQ;QAACC,OAAON;kBAC/B,cAAA,MAACO;YACCC,aAAU;YACVC,mBAAiBjH;YACjBkH,8BAA4B3G;YAC5B4G,2BAAyB3G;YACzB9D,WAAW1B,GACT,0EACA0B;;gBAGDiD;8BACD,MAACoH;oBACCK,KAAKnG;oBACL+F,aAAU;oBACVtK,WAAU;oBACV2K,OAAOpB;oBACPqB,MAAK;oBACLC,iBACErD,qBACIR,aAAaX,MAAM,GACnB,AAACpF,CAAAA,YAAY6F,KAAKT,MAAM,AAAD,IAAKW,aAAaX,MAAM;oBAErDyE,iBAAe5D,eAAeb,MAAM;oBACpC0E,cAAY1G;oBACZ2G,mBAAiB1G;;sCAEjB,MAAC+F;4BACCrK,WAAW1B,GACT,oBACA6C,uBAAuB,SAAS+I,mBAAmB,KAAK;;8CAG1D,KAACG;oCACCO,MAAK;oCACLN,aAAU;oCACVtK,WAAU;8CAETgH,aAAakC,GAAG,CAAC,CAAC+B,aAAaC,+BAC9B,KAAChM;4CAEC+L,aAAaA;4CACbC,gBAAgBA;4CAChB7D,sBAAsBA;4CACtBnB,iBAAiBA;4CACjBE,oBAAoBA;4CACpBoD,kBAAkBA;2CANbyB,YAAYjC,EAAE;;8CAWzB,MAACqB;oCACCO,MAAK;oCACLN,aAAU;oCACVtK,WAAW1B,GACT,gDACA,CAACoJ,aAAa,CAACC,gBAAgB;oCAEjCgD,OAAOvC;;wCAENb,wBACC4D,MAAMC,IAAI,CACR;4CAAE/E,QAAQiB;wCAAwB,GAClC,CAAC+D,GAAGC,yBACF,KAACjB;gDAECC,aAAU;gDACViB,eAAY;gDACZvL,WAAU;gDACV2K,OAAO;oDACL1B,qBACE;oDACFuC,QAAQpE;oDACRqE,WAAW,CAAC,WAAW,EAAEH,WAAWlE,kBAAkB,GAAG,CAAC;gDAC5D;0DAECF,eAAegC,GAAG,CAAC,CAACL,QAAQ6C;oDAC3B,MAAMC,WAAWzF,gBAAgB6C,GAAG,CAACF,OAAOG,EAAE;oDAC9C,MAAM4C,eACJD,YAAYvF,uBAAuByC,OAAOG,EAAE;oDAC9C,qBACE,KAAC/J;wDAEC0M,UAAUA;wDACVC,cAAcA;wDACdF,UAAUA,WAAW;wDACrBf,OACEgB,WACI;4DACEE,UAAU;4DACV7F,MAAM6C,OAAOiD,QAAQ,CAAC;4DACtBC,QAAQvM;wDACV,IACAM;kEAGL4D,oBAAoB;4DACnB4H;4DACAU,UAAUnD,OAAOG,EAAE;4DACnBiD,aAAaP;4DACbtL;wDACF,MACGyI,CAAAA,OAAOG,EAAE,KAAK,yBACb,KAACjK;4DAASiB,WAAU;2EAEpB,KAACjB;4DACCiB,WAAW1B,GACT,kBACAoN,aAAa,IAAI,UAAU;0DAGjC;uDA7BG7C,OAAOG,EAAE;gDAgCpB;+CAjDK,CAAC,aAAa,EAAEsC,UAAU;wCAsDtC,CAAC9D,sBACA,CAACE,aACD,CAACC,gBACDC,YACGsE,eAAe,GACfhD,GAAG,CAAC,CAACiD,2BACJ,KAAChN;gDAECiN,KAAKtF,IAAI,CAACqF,WAAW7D,KAAK,CAAC;gDAC3B6D,YAAYA;gDACZE,kBAAkBrF,aAAaX,MAAM;gDACrCH,iBAAiBA;gDACjBE,oBAAoBA;gDACpBtD,UAAUA;gDACV0C,cAAcA;gDACdtC,YAAYA;+CARP4D,IAAI,CAACqF,WAAW7D,KAAK,CAAC,CAACU,EAAE;wCAYrC,CAACzF,WAAWmE,aAAa/D,cAAc,sBACtC,KAAC0G;4CAAIrK,WAAU;sDACb,cAAA,KAACqK;gDAAIrK,WAAU;0DACZsM,oBAAoB3I,YAAY;oDAC/B4I,MAAM;oDACNtM,OAAO;oDACPuM,aAAa;gDACf;;;wCAKL,CAACjJ,WAAWoE,8BACX,KAAC0C;4CAAIrK,WAAU;sDACb,cAAA,KAACqK;gDAAIrK,WAAU;0DACZsM,oBAAoB1I,gBAAgB;oDACnC2I,MAAM;oDACNtM,OAAO;oDACPuM,aACElJ,cAAc,WACV,8CACA;oDACNmJ,QACE1I,iBAAiBC,+BACf,MAACqG;wDAAIrK,WAAU;;4DACZ+D,8BACC,KAACvF;gEACC4B,MAAK;gEACLsM,SAAQ;gEACRC,SAAS5I;0EAERE,OAAO1D,WAAW;iEAEnB;4DACHyD,+BACC,KAACxF;gEACC4B,MAAK;gEACLsM,SAAQ;gEACRC,SAAS3I;0EAERC,OAAOzD,YAAY;iEAEpB;;yDAEJV;gDACR;;;;;;;wBAMTqB,uBAAuB,sBACtB,KAAC5B;4BACC,wCAAwC;4BACxC,0FAA0F;4BAC1FqN,eAAe1C;4BACftI,cAAcqD;4BACdlD,kBAAkBA;4BAClB8K,SAAS,IAAM3H,wBAAwB,CAAC;6BAExC;;;;;;AAKd;AASA,SAAS4H,iBAAiB,EACxBC,OAAO,EACPC,eAAe,EACfC,QAAQ,EACR,cAAcC,iBAAiB,EACT;IACtB,MAAMC,kBAAkBJ,YAAY;IACpC,MAAMK,YAAYL,YAAY;IAE9B,qBACE,KAACrP,kBAAkB2P,IAAI;QACrB/C,aAAU;QACVyC,SAASI,kBAAkB,QAAQC;QACnCE,eAAeH;QACfF,UAAUA;QACVD,iBAAiB,CAACO,OAASP,gBAAgBO;QAC3CxC,cAAYmC;QACZlN,WAAW1B,GACT,4JACA,8KACA,wEACA,8NACA,8GACAC;kBAGF,cAAA,MAACb,kBAAkB8P,SAAS;YAACxN,WAAU;;8BACrC,KAACrC;oBACC4N,eAAY;oBACZjB,aAAU;oBACVtK,WAAU;oBACVyN,QAAQ;;8BAEV,KAAC5P;oBACC0N,eAAY;oBACZjB,aAAU;oBACVtK,WAAU;oBACVyN,QAAQ;;;;;AAKlB;AAEA,SAASC,uBAA8B,EACrCpH,KAAK,EAGN;IACC,MAAMqH,cAAcrH,MAAMsH,wBAAwB;IAClD,MAAMC,eAAevH,MAAMwH,yBAAyB;IACpD,MAAMf,UAAUY,cAAc,OAAOE,eAAe,kBAAkB;IAEtE,qBACE,KAACf;QACCC,SAASA;QACTC,iBAAiB,IAAM1G,MAAMyH,yBAAyB,CAAC,CAACJ;QACxD5C,cAAW;;AAGjB;AAEA,SAASiD,qBAA4B,EACnC5B,GAAG,EAGJ;IACC,qBACE,KAACU;QACCC,SAAS1N,yBAAyB+M;QAClCa,UAAU,CAACb,IAAI6B,YAAY;QAC3BjB,iBAAiB,CAACO;YAChB,IAAIA,SAAS,MAAM;gBACjBjO,sBAAsB8M;gBACtB;YACF;YACAA,IAAI8B,cAAc,CAAC;QACrB;QACAnD,cAAW;;AAGjB;AAOA,MAAMoD,+BAEF/Q,WACF,SAAS+Q,eACP,EAAEnO,SAAS,EAAEoO,cAAc,QAAQ,EAAE,GAAGC,OAAO,EAC/C3D,GAAG;IAEH,MAAM,EAAEvH,WAAW,EAAE4G,cAAc,EAAE,GAAGuE;IAExC,qBACE,KAACxP;QACC4L,KAAKA;QACLN,OAAOjH;QACPyB,UAAU,CAAC2J,QAAUxE,eAAewE,MAAMC,MAAM,CAACpE,KAAK;QACtDyC,SAAS,IAAM9C,eAAe;QAC9BqE,aAAaA;QACbpO,WAAW1B,GAAG,QAAQ0B;QACrB,GAAGqO,KAAK;;AAGf;AAEFF,eAAeM,WAAW,GAAG;AAM7B,SAASC,yBACP1E,aAAqB,EACrBC,UAAmB;IAEnB,MAAM0E,OAAO,AAAC1E,CAAAA,cAAcD,aAAY,MAAO,IAAI,WAAW;IAC9D,OAAOC,eAAenK,YAClB,CAAC,QAAQ,EAAEkK,cAAc4E,cAAc,CAAC,MAAM,CAAC,EAAED,MAAM,GACvD,CAAC,QAAQ,EAAE3E,cAAc4E,cAAc,CAAC,MAAM,IAAI,EAAE3E,WAAW2E,cAAc,CAAC,MAAM,CAAC,EAAED,MAAM;AACnG;AAEA,MAAME,oCAEFzR,WACF,SAASyR,oBACP,EAAEC,cAAcJ,wBAAwB,EAAE,GAAGL,OAAO,EACpD3D,GAAG;IAEH,MAAM,EAAEV,aAAa,EAAEC,UAAU,EAAE,GAAGqE;IAEtC,6CAA6C;IAC7C,IAAItE,kBAAkBlK,WAAW,OAAO;IAExC,MAAMiP,UAAUD,YAAY9E,eAAeC;IAE3C,IAAI8E,WAAW,MAAM,OAAO;IAE5B,OACE,kGAAkG;kBAClG,KAAC/P;QACC0L,KAAKA;QACLJ,aAAU;QACV0E,aAAU;QACT,GAAGX,KAAK;kBAERU;;AAGP;AAEFF,oBAAoBJ,WAAW,GAAG;AAElC,SAASnC,oBACP/F,KAAgD,EAChD0I,QAIkD;IAElD,IAAIC,oBAAoB3I,QAAQ;QAC9B,qBACE,KAAC4I;YACC5C,MAAM0C,SAAS1C,IAAI;YACnBtM,OAAOsG,MAAMtG,KAAK,IAAIgP,SAAShP,KAAK;YACpCuM,aAAajG,MAAMiG,WAAW,IAAIyC,SAASzC,WAAW;YACtDC,QAAQlG,MAAMkG,MAAM,KAAK3M,YAAYyG,MAAMkG,MAAM,GAAGwC,SAASxC,MAAM;;IAGzE;IAEA,IAAIlG,UAAUzG,WAAW,OAAOyG;IAEhC,qBACE,KAAC4I;QACC5C,MAAM0C,SAAS1C,IAAI;QACnBtM,OAAOgP,SAAShP,KAAK;QACrBuM,aAAayC,SAASzC,WAAW;QACjCC,QAAQwC,SAASxC,MAAM;;AAG7B;AAEA,SAASyC,oBAAoB9E,KAAc;IACzC,OACE,OAAOA,UAAU,YACjBA,UAAU,QACV,CAAE,CAAA,UAAUA,KAAI,KACf,CAAA,WAAWA,SAAS,iBAAiBA,SAAS,YAAYA,KAAI;AAEnE;AAEA,SAAS+E,cAAc,EACrB5C,IAAI,EACJtM,KAAK,EACLuM,WAAW,EACXC,MAAM,EAK0C;IAChD,qBACE,MAAChO;QAAW8N,MAAMA;QAAMvM,WAAU;;0BAChC,KAACpB;0BACD,KAACC;gBAAgBuQ,IAAG;0BAAKnP;;0BACzB,KAACtB;0BAAuB6N;;YACvBC,uBAAS,KAAC/N;0BAAmB+N;iBAA8B;;;AAGlE;AAOA,MAAM4C,sCAEFjS,WACF,SAASiS,sBACP,EACEC,cAAc,CAAC,EACfC,QAAQ,SAAS,EACjBvP,SAAS,EACTiD,QAAQ,EACR,GAAGoL,OACwB,EAC7B3D,GAAqC;IAErC,MAAM8E,mBAAmBF,cAAc;IAEvC,qBACE,KAAC9Q;QACCkM,KAAKA;QACLJ,aAAU;QACVmF,qBAAmBH;QACnBlP,MAAK;QACLsM,SAAS8C,mBAAmB,cAAc;QAC1CxP,WAAW1B,GAAG,WAAW0B;QACzB+K,cAAY9H,YAAY,OAAOsM,QAAQzP;QACtC,GAAGuO,KAAK;kBAERpL,0BACC;;8BACE,KAACrF;oBAAWoC,WAAU;oBAAkBuL,eAAY;;8BACpD,KAACxL;8BAAMwP;;;;;AAKjB;AAEFF,sBAAsBZ,WAAW,GAAG;AAEpC,SAASH;IACP,MAAMoB,UAAUrS,WAAWgD;IAC3B,IAAI,CAACqP,SAAS;QACZ,MAAM,IAAIC,MAAM;IAClB;IACA,OAAOD;AACT;AACA,SACE7O,QAAQ,EACRmN,oBAAoB,EACpBN,sBAAsB,EACtBmB,mBAAmB,EACnBQ,qBAAqB,EACrBlB,cAAc,EACdG,kBAAkB,GAIlB;AACF,SACEsB,mBAAmB,QAGd,8BAA2B;AAClC,SACEC,cAAc,EACdC,iBAAiB,EACjBC,mBAAmB,QACd,wBAAqB;AAC5B,SACEC,cAAc,EACdC,qBAAqB,EACrBC,iBAAiB,EACjBC,mBAAmB,EACnBC,gBAAgB,EAChBC,aAAa,QACR,wBAAqB"}
@@ -1,5 +1,6 @@
1
- export type { ColumnDef, PaginationState } from "@tanstack/react-table";
1
+ export type { ColumnDef, ColumnFiltersState, PaginationState } from "@tanstack/react-table";
2
2
  export { DataGrid, DataGridFilterTrigger, DataGridFooter, DataGridFooterEnd, DataGridFooterStart, DataGridHeader, DataGridHeaderActions, DataGridHeaderEnd, DataGridHeaderStart, DataGridResultCount, DataGridSearch, DataGridSubtitle, DataGridTitle, useDataGridContext, type DataGridContextValue, type DataGridHandle, type DataGridLabels } from "./data-grid";
3
3
  export type { DataGridSecondaryAction, DataGridSelectionAction, DataGridSelectionActions } from "./data-grid-selection.types";
4
+ export { dataGridArrHasFilterFn, type DataGridColumnFilterValue } from "./data-grid-column-filter";
4
5
  export { applyDataGridFilterClauses, matchesDataGridFilterClause, type DataGridFilterClause, type DataGridFilterJoin, type DataGridFilterOperator } from "./data-grid-filter-clauses";
5
6
  export { DataGridFilterPanel, type DataGridFilterColumn, type DataGridFilterPanelLabels } from "./data-grid-filter-panel";
@@ -1,4 +1,5 @@
1
1
  export { DataGrid, DataGridFilterTrigger, DataGridFooter, DataGridFooterEnd, DataGridFooterStart, DataGridHeader, DataGridHeaderActions, DataGridHeaderEnd, DataGridHeaderStart, DataGridResultCount, DataGridSearch, DataGridSubtitle, DataGridTitle, useDataGridContext } from "./data-grid.js";
2
+ export { dataGridArrHasFilterFn } from "./data-grid-column-filter.js";
2
3
  export { applyDataGridFilterClauses, matchesDataGridFilterClause } from "./data-grid-filter-clauses.js";
3
4
  export { DataGridFilterPanel } from "./data-grid-filter-panel.js";
4
5
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ui/core/data-grid/index.ts"],"sourcesContent":["export type { ColumnDef, PaginationState } from '@tanstack/react-table';\nexport {\n DataGrid,\n DataGridFilterTrigger,\n DataGridFooter,\n DataGridFooterEnd,\n DataGridFooterStart,\n DataGridHeader,\n DataGridHeaderActions,\n DataGridHeaderEnd,\n DataGridHeaderStart,\n DataGridResultCount,\n DataGridSearch,\n DataGridSubtitle,\n DataGridTitle,\n useDataGridContext,\n type DataGridContextValue,\n type DataGridHandle,\n type DataGridLabels,\n} from './data-grid';\nexport type {\n DataGridSecondaryAction,\n DataGridSelectionAction,\n DataGridSelectionActions,\n} from './data-grid-selection.types';\nexport {\n applyDataGridFilterClauses,\n matchesDataGridFilterClause,\n type DataGridFilterClause,\n type DataGridFilterJoin,\n type DataGridFilterOperator,\n} from './data-grid-filter-clauses';\nexport {\n DataGridFilterPanel,\n type DataGridFilterColumn,\n type DataGridFilterPanelLabels,\n} from './data-grid-filter-panel';\n"],"names":["DataGrid","DataGridFilterTrigger","DataGridFooter","DataGridFooterEnd","DataGridFooterStart","DataGridHeader","DataGridHeaderActions","DataGridHeaderEnd","DataGridHeaderStart","DataGridResultCount","DataGridSearch","DataGridSubtitle","DataGridTitle","useDataGridContext","applyDataGridFilterClauses","matchesDataGridFilterClause","DataGridFilterPanel"],"mappings":"AACA,SACEA,QAAQ,EACRC,qBAAqB,EACrBC,cAAc,EACdC,iBAAiB,EACjBC,mBAAmB,EACnBC,cAAc,EACdC,qBAAqB,EACrBC,iBAAiB,EACjBC,mBAAmB,EACnBC,mBAAmB,EACnBC,cAAc,EACdC,gBAAgB,EAChBC,aAAa,EACbC,kBAAkB,QAIb,iBAAc;AAMrB,SACEC,0BAA0B,EAC1BC,2BAA2B,QAItB,gCAA6B;AACpC,SACEC,mBAAmB,QAGd,8BAA2B"}
1
+ {"version":3,"sources":["../../../../../src/components/ui/core/data-grid/index.ts"],"sourcesContent":["export type {\n ColumnDef,\n ColumnFiltersState,\n PaginationState,\n} from '@tanstack/react-table';\nexport {\n DataGrid,\n DataGridFilterTrigger,\n DataGridFooter,\n DataGridFooterEnd,\n DataGridFooterStart,\n DataGridHeader,\n DataGridHeaderActions,\n DataGridHeaderEnd,\n DataGridHeaderStart,\n DataGridResultCount,\n DataGridSearch,\n DataGridSubtitle,\n DataGridTitle,\n useDataGridContext,\n type DataGridContextValue,\n type DataGridHandle,\n type DataGridLabels,\n} from './data-grid';\nexport type {\n DataGridSecondaryAction,\n DataGridSelectionAction,\n DataGridSelectionActions,\n} from './data-grid-selection.types';\nexport {\n dataGridArrHasFilterFn,\n type DataGridColumnFilterValue,\n} from './data-grid-column-filter';\nexport {\n applyDataGridFilterClauses,\n matchesDataGridFilterClause,\n type DataGridFilterClause,\n type DataGridFilterJoin,\n type DataGridFilterOperator,\n} from './data-grid-filter-clauses';\nexport {\n DataGridFilterPanel,\n type DataGridFilterColumn,\n type DataGridFilterPanelLabels,\n} from './data-grid-filter-panel';\n"],"names":["DataGrid","DataGridFilterTrigger","DataGridFooter","DataGridFooterEnd","DataGridFooterStart","DataGridHeader","DataGridHeaderActions","DataGridHeaderEnd","DataGridHeaderStart","DataGridResultCount","DataGridSearch","DataGridSubtitle","DataGridTitle","useDataGridContext","dataGridArrHasFilterFn","applyDataGridFilterClauses","matchesDataGridFilterClause","DataGridFilterPanel"],"mappings":"AAKA,SACEA,QAAQ,EACRC,qBAAqB,EACrBC,cAAc,EACdC,iBAAiB,EACjBC,mBAAmB,EACnBC,cAAc,EACdC,qBAAqB,EACrBC,iBAAiB,EACjBC,mBAAmB,EACnBC,mBAAmB,EACnBC,cAAc,EACdC,gBAAgB,EAChBC,aAAa,EACbC,kBAAkB,QAIb,iBAAc;AAMrB,SACEC,sBAAsB,QAEjB,+BAA4B;AACnC,SACEC,0BAA0B,EAC1BC,2BAA2B,QAItB,gCAA6B;AACpC,SACEC,mBAAmB,QAGd,8BAA2B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cognite/aura",
3
- "version": "1.47681.0",
3
+ "version": "1.47782.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -312,7 +312,7 @@
312
312
  "devDependencies": {
313
313
  "@chromatic-com/storybook": "^5.1.2",
314
314
  "@storybook/addon-docs": "10.3.5",
315
- "@storybook/addon-vitest": "10.3.5",
315
+ "@storybook/addon-vitest": "10.6.2",
316
316
  "@storybook/react-vite": "10.3.5",
317
317
  "@swc-node/register": "1.11.1",
318
318
  "@tailwindcss/vite": "^4.3.1",