diff --git a/CHANGELOG.md b/CHANGELOG.md index 4db92e5..736bd67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,45 @@ No changes yet. +## 4.5.0 - 2026-08-11 + +Version 4.5.0 improves fixed-region scrolling and fill-layout sizing without +removing or renaming any public prop, type, or package entrypoint. + +### Features + +- Added `scrollbarVisibility` for controlling automatic, persistent, + scroll-only, or hover-only data-table and card scrollbars. Use `"always"` + for data tables that must keep both scrollbars visible. + +### Fixes + +- Fixed the horizontal and vertical scrollbars and their corner to stack above + fixed left/right columns and top/bottom-pinned rows when both axes overflow. +- Fixed `layoutMode="fill"` to preserve every currently visible fixed-width + data column and place an internal inert flexible spacer before right-pinned + actions. Spacer presence now follows controlled and responsive + column-visibility changes, including grouped columns. +- Preserved horizontal overflow when visible fixed-width columns exceed the + viewport instead of compressing those columns, in both standard and virtual + table adapters. + +### Compatibility + +- Consumers do not need to define, order, pin, render, export, or navigate an + `__spacer__` column. The reserved column is created and managed internally. +- A genuine flexible visible data column continues to consume unused width and + prevents the internal spacer from being added. + +### Validation + +- 317 unit/integration tests across the shadcn, HeroUI, The Gridcn, and virtual + adapters +- lint, package/demo typechecks, deterministic package/demo builds, public API + snapshot, packed-consumer build, bundle budgets, and dependency audit +- browser regressions for dual-axis scrollbar stacking, fixed left/right + columns, a bottom-pinned row, fill-space allocation, and overflow retention + ## 4.4.0 - 2026-08-09 Version 4.4.0 completes the core Phase 2–4 modernization work with additive, diff --git a/README.md b/README.md index 03e444d..d2086e2 100644 --- a/README.md +++ b/README.md @@ -47,12 +47,15 @@ integrations. See - toolbar search now filters client-side tables by default; disable with `manualFiltering` or `enableToolbarQueryFiltering={false}` - column filters, CSV export, row expansion, density, column pinning/reordering, selection policies, labels, and column preference persistence were added -## 4.0.0 Compatibility +## 4.5.0 Compatibility -Version 4.0.0 removes no public prop, type, or package entrypoint. It is a -compatibility-first major that releases the accumulated state, persistence, -quality, dependency, accessibility, and package-splitting work after 3.0.9. -The previously planned API cleanup is deferred to a future 5.0 release. +Version 4.5.0 adds optional scrollbar visibility control and corrects +fixed-width `layoutMode="fill"` tables without removing any public API. Set +`scrollbarVisibility="always"` when persistent horizontal and vertical +scrollbars are required. When every currently visible data column has a fixed +width, fill layout now keeps those widths and automatically places a +transparent flexible spacer before a right-pinned actions column. Consumers +must not create or reference the reserved `__spacer__` column. ## 4.4.0 Compatibility @@ -62,14 +65,21 @@ cell ranges, clipboard/paste, enhanced data operations, auto page sizing, print/fullscreen controls, and error overlays are individually opt-in. No public prop, type, or entrypoint was removed. +## 4.0.0 Compatibility + +Version 4.0.0 removes no public prop, type, or package entrypoint. It is a +compatibility-first major that releases the accumulated state, persistence, +quality, dependency, accessibility, and package-splitting work after 3.0.9. +The previously planned API cleanup is deferred to a future 5.0 release. + ## Installation ```bash -pnpm add github:Dastari/data-table-pro#v4.4.0 +pnpm add github:Dastari/data-table-pro#v4.5.0 ``` This package is installed from GitHub refs. It is not published to npm. -Release tags such as `v4.4.0` include committed `dist/` output, so consumers +Release tags such as `v4.5.0` include committed `dist/` output, so consumers do not need to allow package build scripts during install. Peer dependencies: diff --git a/api-snapshots/public-api.md b/api-snapshots/public-api.md index 229dc93..d1e34d6 100644 --- a/api-snapshots/public-api.md +++ b/api-snapshots/public-api.md @@ -68,10 +68,10 @@ This file is generated by `pnpm api:update`. Review changes to it as public API ```ts import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; ``` @@ -81,10 +81,10 @@ export { DataTable, DataTableProps }; ```ts import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; ``` @@ -94,10 +94,10 @@ export { DataTable, DataTableProps }; ```ts import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; ``` @@ -107,10 +107,10 @@ export { DataTable, DataTableProps }; ```ts import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; ``` @@ -120,10 +120,10 @@ export { DataTable, DataTableProps }; ```ts import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; ``` @@ -133,10 +133,10 @@ export { DataTable, DataTableProps }; ```ts import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; ``` @@ -222,7 +222,7 @@ import * as React from 'react'; import * as _tanstack_react_table from '@tanstack/react-table'; import { ExpandedState, Row, OnChangeFn, ColumnSizingState, Column, RowPinningPosition, Cell, Table, PaginationState, SortingState, Header, Updater, ColumnDef, ColumnFiltersState, ColumnOrderState, ColumnPinningState, RowPinningState, GroupingState, VisibilityState, FilterFnOption } from '@tanstack/react-table'; import { DataTableProps, DataTableLabels, DataTableColumnDef, DataTableDensity, DataTableRowLoadingState, DataTableCellSelection, DataTableSavedView, DataTableEditableRowsConfig, DataTableRowAction, DataTableDetailPanel } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDragAndDropConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowClassNameContext, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDragAndDropConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowClassNameContext, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import { D as DataTableUiKit, a as DataTableUiClassNames } from './ui-kit-C6Z8X6oi.js'; type DataTableCardPanelProps = { @@ -252,6 +252,7 @@ type DataTableCardPanelProps = { resolvedLoadingRowCount: number; rowActions: DataTableProps["rowActions"]; ScrollArea: DataTableUiKit["ScrollArea"]; + scrollbarVisibility: DataTableProps["scrollbarVisibility"]; sentinelRef: React.RefObject; setCurrentRowSelection: (rowSelection: Record) => void; setCurrentDetailExpanded: OnChangeFn; @@ -404,6 +405,7 @@ type DataTableTablePanelProps = { }>; ScrollArea: DataTableUiKit["ScrollArea"]; ScrollBar: DataTableUiKit["ScrollBar"]; + scrollbarVisibility: DataTableProps["scrollbarVisibility"]; sentinelRef: React.RefObject; setDraftValues: React.Dispatch>>; shouldRenderInitialLoading: boolean; @@ -432,7 +434,7 @@ type DataTableTablePanelProps = { visibleLeafColumnCount: number; visibleLeafColumns: Array>; }; -declare function DataTableTablePanel({ ariaDescribedBy, ariaLabelledBy, bodyRowComponents, cellSelection, cellSelectionEnabled, columnLayouts, columnGroupHeaderHeight, currentDensity, currentDetailExpanded, currentSorting, dir, DataTableEmptyState, dragAndDrop, draggedColumnIdRef, draftValues, editingRowId, editingContext, emptyNode, enableColumnReordering, enableColumnResizing, explicitCustomCellColumnIds, fillMinWidth, flexGrow, gridMode, gridPageSize, gridRowOffset, onGridActiveRowIndexChange, onCellSelectionChange, getColumnLayout, getRowClassName, getRowLoadingState, infiniteScroll, layoutMode, localSearchValue, onRowClick, primeColumnForResize, renderedRows, detailPanel, topPinnedRows, bottomPinnedRows, reorderColumn, resetColumnSize, resolvedLabels, rowsToRender, ScrollArea, ScrollBar, sentinelRef, setDraftValues, shouldRenderInitialLoading, stateOverlayNode, stickyHeader, stripedRows, summaryRows, table, tableClassName, tableContainerClassName, Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, tableScrollContainerRef, tableScrollElement, totalRowCount, uiClassNames, virtualPaddingBottom, virtualPaddingTop, visibleLeafColumnCount, visibleLeafColumns, }: DataTableTablePanelProps): React.JSX.Element; +declare function DataTableTablePanel({ ariaDescribedBy, ariaLabelledBy, bodyRowComponents, cellSelection, cellSelectionEnabled, columnLayouts, columnGroupHeaderHeight, currentDensity, currentDetailExpanded, currentSorting, dir, DataTableEmptyState, dragAndDrop, draggedColumnIdRef, draftValues, editingRowId, editingContext, emptyNode, enableColumnReordering, enableColumnResizing, explicitCustomCellColumnIds, fillMinWidth, flexGrow, gridMode, gridPageSize, gridRowOffset, onGridActiveRowIndexChange, onCellSelectionChange, getColumnLayout, getRowClassName, getRowLoadingState, infiniteScroll, layoutMode, localSearchValue, onRowClick, primeColumnForResize, renderedRows, detailPanel, topPinnedRows, bottomPinnedRows, reorderColumn, resetColumnSize, resolvedLabels, rowsToRender, ScrollArea, ScrollBar, scrollbarVisibility, sentinelRef, setDraftValues, shouldRenderInitialLoading, stateOverlayNode, stickyHeader, stripedRows, summaryRows, table, tableClassName, tableContainerClassName, Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, tableScrollContainerRef, tableScrollElement, totalRowCount, uiClassNames, virtualPaddingBottom, virtualPaddingTop, visibleLeafColumnCount, visibleLeafColumns, }: DataTableTablePanelProps): React.JSX.Element; type DataTableFooterSectionProps = { children?: React.ReactNode; @@ -543,7 +545,7 @@ type DataTableRowActionsComponentProps = { pin: (position: RowPinningPosition) => void; }; }; -declare function useDataTableColumns({ Button, Checkbox, DataTableRowActions, Tooltip, TooltipContent, TooltipTrigger, cancelEditing, columns, editableRows, editingRowId, editErrors, enableRowSelection, enableRowPinning, hasTreeExpansion, isSavingEdit, isEditDirty, labels, lastSelectedRowIdRef, detailPanel, detailExpanded, onDetailExpandedChange, rowSelectionSelectAllScope, rowActions, saveEdit, startEditingRow, tableRef, }: { +declare function useDataTableColumns({ Button, Checkbox, DataTableRowActions, Tooltip, TooltipContent, TooltipTrigger, cancelEditing, columns, editableRows, editingRowId, editErrors, enableRowSelection, enableRowPinning, hasTreeExpansion, isSavingEdit, isEditDirty, includeFillSpacer, labels, lastSelectedRowIdRef, detailPanel, detailExpanded, onDetailExpandedChange, rowSelectionSelectAllScope, rowActions, saveEdit, startEditingRow, tableRef, }: { Button: DataTableUiKit["Button"]; Checkbox: DataTableUiKit["Checkbox"]; DataTableRowActions: React.ComponentType>; @@ -560,6 +562,7 @@ declare function useDataTableColumns({ Button, Checkbox, DataTableRowActi hasTreeExpansion: boolean; isSavingEdit: boolean; isEditDirty: boolean; + includeFillSpacer?: boolean; labels: DataTableLabels; lastSelectedRowIdRef: React.MutableRefObject; detailPanel: DataTableDetailPanel | undefined; @@ -807,7 +810,7 @@ import { D as DataTableUiKit } from './ui-kit-C6Z8X6oi.js'; export { a as DataTableUiClassNames } from './ui-kit-C6Z8X6oi.js'; import '@tanstack/react-table'; -declare function createDataTable(ui: DataTableUiKit): ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare function createDataTable(ui: DataTableUiKit): ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; declare const primitiveUiKit: DataTableUiKit; @@ -823,7 +826,7 @@ import { D as DataTableUiKit } from './ui-kit-C6Z8X6oi.js'; export { a as DataTableUiClassNames } from './ui-kit-C6Z8X6oi.js'; import '@tanstack/react-table'; -declare function createVirtualDataTable(ui: DataTableUiKit): ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare function createVirtualDataTable(ui: DataTableUiKit): ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTableUiKit, createVirtualDataTable }; ``` @@ -1440,6 +1443,7 @@ type DataTableRowClassNameContext = { isSelected: boolean; pinnedPosition: false | "top" | "bottom"; }; +type DataTableScrollbarVisibility = "auto" | "always" | "scroll" | "hover"; type DataTableProps = { columns: Array>; data: Array; @@ -1580,6 +1584,8 @@ type DataTableProps = { columnResizeMode?: "onChange" | "onEnd"; layoutMode?: "fill" | "fit"; stickyHeader?: boolean; + /** Controls when scrollbars are visible. Defaults to `"hover"`. */ + scrollbarVisibility?: DataTableScrollbarVisibility; showFooter?: boolean; showToolbar?: boolean; dir?: "ltr" | "rtl"; @@ -1617,5 +1623,5 @@ declare function hideOnClassName(hideOn: DataTableContainerBreakpoint | Array | undefined, containerWidth: number): boolean; declare function rowSelectionStateFromRows(rows: Array>): TData[]; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, type DataTableAccessibilityOptions, type DataTableActionErrorContext, type DataTableActionErrorSource, type DataTableAlign, type DataTableApi, type DataTableAutoPageSizeConfig, type DataTableCardRendererProps, type DataTableCardSizing, type DataTableCardVirtualizationConfig, type DataTableCellCoordinate, type DataTableCellEditRenderProps, type DataTableCellOverflow, type DataTableCellSelection, type DataTableClipboardConfig, type DataTableClipboardCopyOptions, type DataTableClipboardCopyScope, type DataTableClipboardPasteContext, type DataTableColumnDef, type DataTableColumnFilterConfig, type DataTableColumnFilterOperator, type DataTableColumnFilterOption, type DataTableColumnFilterRangeValue, type DataTableColumnFilterType, type DataTableColumnFixed, type DataTableColumnGroupDef, type DataTableColumnMeta, type DataTableColumnPrefs, type DataTableColumnType, type DataTableColumnVisibilityOption, type DataTableContainerBreakpoint, type DataTableCsvExportOptions, type DataTableCsvExportScope, type DataTableDensity, type DataTableDetailPanel, type DataTableDragAndDropConfig, type DataTableEditableRowsConfig, type DataTableEmptyStateContext, type DataTableExpandedRowProps, type DataTableFacetedFilterOptions, type DataTableFileUploadConfig, type DataTableGridCommandContext, type DataTableGridCommands, type DataTableHiddenRowsConfig, type DataTableInfiniteScroll, type DataTableInitialState, type DataTableInteractiveGridOptions, type DataTableLabels, type DataTableLoadingState, type DataTablePersistenceConfig, type DataTablePersistenceOperation, type DataTablePersistencePayload, type DataTablePersistenceSlice, type DataTablePersistenceStorage, type DataTableProps, type DataTableResetOptions, type DataTableRowAction, type DataTableRowClassNameContext, type DataTableRowLoadingState, type DataTableSavedView, type DataTableSavedViewSlice, type DataTableSavedViewsChangeOperation, type DataTableSavedViewsConfig, type DataTableSavedViewsPayload, type DataTableSelectionAction, type DataTableSelectionActionContext, type DataTableState, type DataTableStateOverlay, type DataTableStateOverlayContext, type DataTableSummaryRow, type DataTableToolbarAction, type DataTableToolbarDataOperations, type DataTableToolbarVisibility, type DataTableViewMode, type DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows }; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, type DataTableAccessibilityOptions, type DataTableActionErrorContext, type DataTableActionErrorSource, type DataTableAlign, type DataTableApi, type DataTableAutoPageSizeConfig, type DataTableCardRendererProps, type DataTableCardSizing, type DataTableCardVirtualizationConfig, type DataTableCellCoordinate, type DataTableCellEditRenderProps, type DataTableCellOverflow, type DataTableCellSelection, type DataTableClipboardConfig, type DataTableClipboardCopyOptions, type DataTableClipboardCopyScope, type DataTableClipboardPasteContext, type DataTableColumnDef, type DataTableColumnFilterConfig, type DataTableColumnFilterOperator, type DataTableColumnFilterOption, type DataTableColumnFilterRangeValue, type DataTableColumnFilterType, type DataTableColumnFixed, type DataTableColumnGroupDef, type DataTableColumnMeta, type DataTableColumnPrefs, type DataTableColumnType, type DataTableColumnVisibilityOption, type DataTableContainerBreakpoint, type DataTableCsvExportOptions, type DataTableCsvExportScope, type DataTableDensity, type DataTableDetailPanel, type DataTableDragAndDropConfig, type DataTableEditableRowsConfig, type DataTableEmptyStateContext, type DataTableExpandedRowProps, type DataTableFacetedFilterOptions, type DataTableFileUploadConfig, type DataTableGridCommandContext, type DataTableGridCommands, type DataTableHiddenRowsConfig, type DataTableInfiniteScroll, type DataTableInitialState, type DataTableInteractiveGridOptions, type DataTableLabels, type DataTableLoadingState, type DataTablePersistenceConfig, type DataTablePersistenceOperation, type DataTablePersistencePayload, type DataTablePersistenceSlice, type DataTablePersistenceStorage, type DataTableProps, type DataTableResetOptions, type DataTableRowAction, type DataTableRowClassNameContext, type DataTableRowLoadingState, type DataTableSavedView, type DataTableSavedViewSlice, type DataTableSavedViewsChangeOperation, type DataTableSavedViewsConfig, type DataTableSavedViewsPayload, type DataTableScrollbarVisibility, type DataTableSelectionAction, type DataTableSelectionActionContext, type DataTableState, type DataTableStateOverlay, type DataTableStateOverlayContext, type DataTableSummaryRow, type DataTableToolbarAction, type DataTableToolbarDataOperations, type DataTableToolbarVisibility, type DataTableViewMode, type DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows }; ``` diff --git a/browser-tests/data-table.spec.ts b/browser-tests/data-table.spec.ts index 30dbe17..d33d347 100644 --- a/browser-tests/data-table.spec.ts +++ b/browser-tests/data-table.spec.ts @@ -193,6 +193,76 @@ test("responsive behavior follows table container boundaries", async ({ await expect(header("location")).toHaveCount(0); }); +test("fill layout gives spare width to the internal spacer and preserves overflow", async ({ + page, +}) => { + await page.setViewportSize({ width: 1700, height: 900 }); + await page.goto("/"); + await hideContentSizedCards(page); + + const table = page.locator('[data-dtp-slot="data-table-root"]').first(); + await table.evaluate((element) => { + element.style.flex = "none"; + element.style.width = "1500px"; + element.style.height = "520px"; + }); + + const readLayout = () => + table.evaluate((element) => { + const scrollArea = element.querySelector( + '[data-slot="scroll-area"]', + ); + const viewport = element.querySelector( + '[data-slot="scroll-area-viewport"]', + ); + const headers = Array.from( + element.querySelectorAll( + "thead tr:last-child [data-column-id]", + ), + ); + const name = headers.find( + (header) => header.dataset.columnId === "name", + ); + const spacer = headers.find( + (header) => header.dataset.columnId === "__spacer__", + ); + const actions = headers.find( + (header) => header.dataset.columnId === "__actions__", + ); + if (!scrollArea || !viewport || !name || !spacer || !actions) { + throw new Error("Expected the fill-layout regression columns"); + } + return { + actionIndex: headers.indexOf(actions), + clientWidth: viewport.clientWidth, + nameWidth: name.getBoundingClientRect().width, + scrollWidth: viewport.scrollWidth, + spacerIndex: headers.indexOf(spacer), + spacerWidth: spacer.getBoundingClientRect().width, + width: scrollArea.getBoundingClientRect().width, + }; + }); + + await expect.poll(async () => (await readLayout()).spacerWidth).toBeGreaterThan(0); + const wideLayout = await readLayout(); + expect(wideLayout.nameWidth).toBeCloseTo(220, 0); + expect(wideLayout.spacerIndex).toBe(wideLayout.actionIndex - 1); + expect(wideLayout.scrollWidth).toBeLessThanOrEqual( + wideLayout.clientWidth + 1, + ); + + await table.evaluate((element) => { + element.style.width = "720px"; + }); + await expect(table).toHaveCSS("width", "720px"); + await expect.poll(async () => (await readLayout()).scrollWidth).toBeGreaterThan(720); + + const narrowLayout = await readLayout(); + expect(narrowLayout.nameWidth).toBeCloseTo(220, 0); + expect(narrowLayout.spacerIndex).toBe(narrowLayout.actionIndex - 1); + expect(narrowLayout.scrollWidth).toBeGreaterThan(narrowLayout.clientWidth); +}); + test("interactive grid navigation follows the rendered cell geometry", async ({ page, }) => { @@ -242,3 +312,120 @@ test("interactive grid selects a pointer-dragged cell range", async ({ page }) = await expect(firstCell).toHaveAttribute("aria-selected", "true"); await expect(fourthCell).toHaveAttribute("aria-selected", "true"); }); + +test("persistent scrollbars stack above fixed columns and a bottom-pinned row", async ({ + page, +}) => { + await page.goto("/?scrollbar-regression=1"); + await hideContentSizedCards(page); + + const table = page.locator('[data-dtp-slot="data-table-root"]').first(); + await table.evaluate((element) => { + element.style.flex = "none"; + element.style.width = "720px"; + element.style.height = "520px"; + }); + + const scrollArea = table.locator('[data-slot="scroll-area"]').first(); + const viewport = scrollArea.locator('[data-slot="scroll-area-viewport"]'); + const horizontalScrollbar = scrollArea.locator( + '[data-slot="scroll-area-scrollbar"][data-orientation="horizontal"]', + ); + const verticalScrollbar = scrollArea.locator( + '[data-slot="scroll-area-scrollbar"][data-orientation="vertical"]', + ); + const corner = scrollArea.locator('[data-slot="scroll-area-corner"]'); + const fixedLeftHeader = table.locator( + 'thead [data-column-id="name"]', + ); + const fixedActionsHeader = table.locator( + 'thead [data-column-id="__actions__"]', + ); + const bottomPinnedRow = table.locator( + '[data-dtp-slot="data-table-pinned-row"][data-row-pinned="bottom"]', + ); + + await expect(fixedLeftHeader).toBeVisible(); + await expect(fixedActionsHeader).toBeVisible(); + await expect(bottomPinnedRow).toBeVisible(); + await expect(horizontalScrollbar).toBeVisible(); + await expect(verticalScrollbar).toBeVisible(); + await expect(corner).toBeVisible(); + + const geometry = await viewport.evaluate((element) => ({ + clientHeight: element.clientHeight, + clientWidth: element.clientWidth, + scrollHeight: element.scrollHeight, + scrollWidth: element.scrollWidth, + })); + expect(geometry.scrollWidth).toBeGreaterThan(geometry.clientWidth); + expect(geometry.scrollHeight).toBeGreaterThan(geometry.clientHeight); + + await viewport.evaluate((element) => { + element.scrollTop = element.scrollHeight; + }); + + const stacking = await scrollArea.evaluate((element) => { + const horizontal = element.querySelector( + '[data-slot="scroll-area-scrollbar"][data-orientation="horizontal"]', + ); + const vertical = element.querySelector( + '[data-slot="scroll-area-scrollbar"][data-orientation="vertical"]', + ); + const cornerElement = element.querySelector( + '[data-slot="scroll-area-corner"]', + ); + if (!horizontal || !vertical || !cornerElement) { + throw new Error("Expected both scrollbars and their corner"); + } + + const topSlotAt = (x: number, y: number) => + document + .elementFromPoint(x, y) + ?.closest( + '[data-slot="scroll-area-scrollbar"], [data-slot="scroll-area-corner"]', + ) + ?.dataset.slot; + const horizontalRect = horizontal.getBoundingClientRect(); + const verticalRect = vertical.getBoundingClientRect(); + const cornerRect = cornerElement.getBoundingClientRect(); + const fixedLeftRect = element + .querySelector('thead [data-column-id="name"]') + ?.getBoundingClientRect(); + const bottomPinnedRect = element + .querySelector( + '[data-dtp-slot="data-table-pinned-row"][data-row-pinned="bottom"]', + ) + ?.getBoundingClientRect(); + if (!fixedLeftRect || !bottomPinnedRect) { + throw new Error("Expected fixed and pinned regression regions"); + } + + return { + horizontalZIndex: getComputedStyle(horizontal).zIndex, + verticalZIndex: getComputedStyle(vertical).zIndex, + cornerZIndex: getComputedStyle(cornerElement).zIndex, + overFixedLeft: topSlotAt( + fixedLeftRect.left + fixedLeftRect.width / 2, + horizontalRect.top + horizontalRect.height / 2, + ), + overFixedActions: topSlotAt( + verticalRect.left + verticalRect.width / 2, + bottomPinnedRect.top + bottomPinnedRect.height / 2, + ), + atCorner: topSlotAt( + cornerRect.left + cornerRect.width / 2, + cornerRect.top + cornerRect.height / 2, + ), + }; + }); + + expect(stacking).toEqual({ + horizontalZIndex: "100", + verticalZIndex: "100", + cornerZIndex: "100", + overFixedLeft: "scroll-area-scrollbar", + overFixedActions: "scroll-area-scrollbar", + atCorner: "scroll-area-corner", + }); +}); diff --git a/demo/src/DemoApp.tsx b/demo/src/DemoApp.tsx index 47f1640..0d0de2f 100644 --- a/demo/src/DemoApp.tsx +++ b/demo/src/DemoApp.tsx @@ -114,6 +114,9 @@ const statuses: Array = [ const priorities: Array = ["low", "medium", "high"]; export function DemoApp() { + const [scrollbarRegressionFixture] = React.useState(() => + new URLSearchParams(window.location.search).has("scrollbar-regression"), + ); const [adapter, setAdapter] = React.useState("shadcn"); const [theme, setTheme] = React.useState("light"); const [rows, setRows] = React.useState(() => generateEmployees(96)); @@ -521,6 +524,14 @@ export function DemoApp() { enableDensityToggle enableColumnPinning enableColumnReordering + rowPinning={ + scrollbarRegressionFixture + ? { top: [], bottom: ["emp-001"] } + : undefined + } + scrollbarVisibility={ + scrollbarRegressionFixture ? "always" : undefined + } columnPrefsKey={`demo-${adapter}`} labels={{ exportCsv: "Download CSV", diff --git a/dist/adapter-virtual.d.ts b/dist/adapter-virtual.d.ts index bef68b8..8574681 100644 --- a/dist/adapter-virtual.d.ts +++ b/dist/adapter-virtual.d.ts @@ -4,6 +4,6 @@ import { D as DataTableUiKit } from './ui-kit-C6Z8X6oi.js'; export { a as DataTableUiClassNames } from './ui-kit-C6Z8X6oi.js'; import '@tanstack/react-table'; -declare function createVirtualDataTable(ui: DataTableUiKit): ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare function createVirtualDataTable(ui: DataTableUiKit): ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTableUiKit, createVirtualDataTable }; diff --git a/dist/adapter-virtual.js b/dist/adapter-virtual.js index 7d4d93c..ebf8719 100644 --- a/dist/adapter-virtual.js +++ b/dist/adapter-virtual.js @@ -1,2 +1,2 @@ -export{a as createVirtualDataTable}from'./chunk-QFLMV3CT.js';import'./chunk-K7SNDVV2.js';import'./chunk-YPKN2W27.js';import'./chunk-JNI3CH7M.js';import'./chunk-EJHT5JBZ.js';import'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=adapter-virtual.js.map +export{a as createVirtualDataTable}from'./chunk-VGMTY7KM.js';import'./chunk-B6JTUAWE.js';import'./chunk-W7VNQT7O.js';import'./chunk-I3CW6DTA.js';import'./chunk-EJHT5JBZ.js';import'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=adapter-virtual.js.map //# sourceMappingURL=adapter-virtual.js.map \ No newline at end of file diff --git a/dist/adapter.d.ts b/dist/adapter.d.ts index 3dc49bd..e1c5d49 100644 --- a/dist/adapter.d.ts +++ b/dist/adapter.d.ts @@ -4,7 +4,7 @@ import { D as DataTableUiKit } from './ui-kit-C6Z8X6oi.js'; export { a as DataTableUiClassNames } from './ui-kit-C6Z8X6oi.js'; import '@tanstack/react-table'; -declare function createDataTable(ui: DataTableUiKit): ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare function createDataTable(ui: DataTableUiKit): ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; declare const primitiveUiKit: DataTableUiKit; diff --git a/dist/adapter.js b/dist/adapter.js index e6282d3..3f35426 100644 --- a/dist/adapter.js +++ b/dist/adapter.js @@ -1,2 +1,2 @@ -export{X as primitiveUiKit}from'./chunk-7FUCHMMB.js';export{i as createDataTable}from'./chunk-JNI3CH7M.js';import'./chunk-EJHT5JBZ.js';import'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=adapter.js.map +export{X as primitiveUiKit}from'./chunk-VSIOOKCO.js';export{i as createDataTable}from'./chunk-I3CW6DTA.js';import'./chunk-EJHT5JBZ.js';import'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=adapter.js.map //# sourceMappingURL=adapter.js.map \ No newline at end of file diff --git a/dist/advanced.d.ts b/dist/advanced.d.ts index 1bc5f8e..ae6ed6d 100644 --- a/dist/advanced.d.ts +++ b/dist/advanced.d.ts @@ -3,7 +3,7 @@ import * as React from 'react'; import * as _tanstack_react_table from '@tanstack/react-table'; import { ExpandedState, Row, OnChangeFn, ColumnSizingState, Column, RowPinningPosition, Cell, Table, PaginationState, SortingState, Header, Updater, ColumnDef, ColumnFiltersState, ColumnOrderState, ColumnPinningState, RowPinningState, GroupingState, VisibilityState, FilterFnOption } from '@tanstack/react-table'; import { DataTableProps, DataTableLabels, DataTableColumnDef, DataTableDensity, DataTableRowLoadingState, DataTableCellSelection, DataTableSavedView, DataTableEditableRowsConfig, DataTableRowAction, DataTableDetailPanel } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDragAndDropConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowClassNameContext, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDragAndDropConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowClassNameContext, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import { D as DataTableUiKit, a as DataTableUiClassNames } from './ui-kit-C6Z8X6oi.js'; type DataTableCardPanelProps = { @@ -33,6 +33,7 @@ type DataTableCardPanelProps = { resolvedLoadingRowCount: number; rowActions: DataTableProps["rowActions"]; ScrollArea: DataTableUiKit["ScrollArea"]; + scrollbarVisibility: DataTableProps["scrollbarVisibility"]; sentinelRef: React.RefObject; setCurrentRowSelection: (rowSelection: Record) => void; setCurrentDetailExpanded: OnChangeFn; @@ -185,6 +186,7 @@ type DataTableTablePanelProps = { }>; ScrollArea: DataTableUiKit["ScrollArea"]; ScrollBar: DataTableUiKit["ScrollBar"]; + scrollbarVisibility: DataTableProps["scrollbarVisibility"]; sentinelRef: React.RefObject; setDraftValues: React.Dispatch>>; shouldRenderInitialLoading: boolean; @@ -213,7 +215,7 @@ type DataTableTablePanelProps = { visibleLeafColumnCount: number; visibleLeafColumns: Array>; }; -declare function DataTableTablePanel({ ariaDescribedBy, ariaLabelledBy, bodyRowComponents, cellSelection, cellSelectionEnabled, columnLayouts, columnGroupHeaderHeight, currentDensity, currentDetailExpanded, currentSorting, dir, DataTableEmptyState, dragAndDrop, draggedColumnIdRef, draftValues, editingRowId, editingContext, emptyNode, enableColumnReordering, enableColumnResizing, explicitCustomCellColumnIds, fillMinWidth, flexGrow, gridMode, gridPageSize, gridRowOffset, onGridActiveRowIndexChange, onCellSelectionChange, getColumnLayout, getRowClassName, getRowLoadingState, infiniteScroll, layoutMode, localSearchValue, onRowClick, primeColumnForResize, renderedRows, detailPanel, topPinnedRows, bottomPinnedRows, reorderColumn, resetColumnSize, resolvedLabels, rowsToRender, ScrollArea, ScrollBar, sentinelRef, setDraftValues, shouldRenderInitialLoading, stateOverlayNode, stickyHeader, stripedRows, summaryRows, table, tableClassName, tableContainerClassName, Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, tableScrollContainerRef, tableScrollElement, totalRowCount, uiClassNames, virtualPaddingBottom, virtualPaddingTop, visibleLeafColumnCount, visibleLeafColumns, }: DataTableTablePanelProps): React.JSX.Element; +declare function DataTableTablePanel({ ariaDescribedBy, ariaLabelledBy, bodyRowComponents, cellSelection, cellSelectionEnabled, columnLayouts, columnGroupHeaderHeight, currentDensity, currentDetailExpanded, currentSorting, dir, DataTableEmptyState, dragAndDrop, draggedColumnIdRef, draftValues, editingRowId, editingContext, emptyNode, enableColumnReordering, enableColumnResizing, explicitCustomCellColumnIds, fillMinWidth, flexGrow, gridMode, gridPageSize, gridRowOffset, onGridActiveRowIndexChange, onCellSelectionChange, getColumnLayout, getRowClassName, getRowLoadingState, infiniteScroll, layoutMode, localSearchValue, onRowClick, primeColumnForResize, renderedRows, detailPanel, topPinnedRows, bottomPinnedRows, reorderColumn, resetColumnSize, resolvedLabels, rowsToRender, ScrollArea, ScrollBar, scrollbarVisibility, sentinelRef, setDraftValues, shouldRenderInitialLoading, stateOverlayNode, stickyHeader, stripedRows, summaryRows, table, tableClassName, tableContainerClassName, Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, tableScrollContainerRef, tableScrollElement, totalRowCount, uiClassNames, virtualPaddingBottom, virtualPaddingTop, visibleLeafColumnCount, visibleLeafColumns, }: DataTableTablePanelProps): React.JSX.Element; type DataTableFooterSectionProps = { children?: React.ReactNode; @@ -324,7 +326,7 @@ type DataTableRowActionsComponentProps = { pin: (position: RowPinningPosition) => void; }; }; -declare function useDataTableColumns({ Button, Checkbox, DataTableRowActions, Tooltip, TooltipContent, TooltipTrigger, cancelEditing, columns, editableRows, editingRowId, editErrors, enableRowSelection, enableRowPinning, hasTreeExpansion, isSavingEdit, isEditDirty, labels, lastSelectedRowIdRef, detailPanel, detailExpanded, onDetailExpandedChange, rowSelectionSelectAllScope, rowActions, saveEdit, startEditingRow, tableRef, }: { +declare function useDataTableColumns({ Button, Checkbox, DataTableRowActions, Tooltip, TooltipContent, TooltipTrigger, cancelEditing, columns, editableRows, editingRowId, editErrors, enableRowSelection, enableRowPinning, hasTreeExpansion, isSavingEdit, isEditDirty, includeFillSpacer, labels, lastSelectedRowIdRef, detailPanel, detailExpanded, onDetailExpandedChange, rowSelectionSelectAllScope, rowActions, saveEdit, startEditingRow, tableRef, }: { Button: DataTableUiKit["Button"]; Checkbox: DataTableUiKit["Checkbox"]; DataTableRowActions: React.ComponentType>; @@ -341,6 +343,7 @@ declare function useDataTableColumns({ Button, Checkbox, DataTableRowActi hasTreeExpansion: boolean; isSavingEdit: boolean; isEditDirty: boolean; + includeFillSpacer?: boolean; labels: DataTableLabels; lastSelectedRowIdRef: React.MutableRefObject; detailPanel: DataTableDetailPanel | undefined; diff --git a/dist/advanced.js b/dist/advanced.js index 2627400..48c0b4d 100644 --- a/dist/advanced.js +++ b/dist/advanced.js @@ -1,2 +1,2 @@ -export{X as primitiveUiKit}from'./chunk-7FUCHMMB.js';export{a as DataTableCardPanel,b as DataTableFooterSection,c as DataTableToolbarSection,i as createDataTable,h as useColumnLayout,e as useControllableState,d as useDataTableColumns,f as useDataTableInstance,g as useDataTableState}from'./chunk-JNI3CH7M.js';import'./chunk-EJHT5JBZ.js';export{c as DataTableBodyRow,d as DataTableHeaderCell,e as DataTableTablePanel,a as useRowEditing}from'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';import*as e from'react';function R(a){let t=e.useRef(a);return e.useLayoutEffect(()=>{t.current=a;}),e.useCallback((...o)=>t.current?.(...o),[])}export{R as useStableCallback};//# sourceMappingURL=advanced.js.map +export{X as primitiveUiKit}from'./chunk-VSIOOKCO.js';export{a as DataTableCardPanel,b as DataTableFooterSection,c as DataTableToolbarSection,i as createDataTable,h as useColumnLayout,e as useControllableState,d as useDataTableColumns,f as useDataTableInstance,g as useDataTableState}from'./chunk-I3CW6DTA.js';import'./chunk-EJHT5JBZ.js';export{c as DataTableBodyRow,d as DataTableHeaderCell,e as DataTableTablePanel,a as useRowEditing}from'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';import*as e from'react';function R(a){let t=e.useRef(a);return e.useLayoutEffect(()=>{t.current=a;}),e.useCallback((...o)=>t.current?.(...o),[])}export{R as useStableCallback};//# sourceMappingURL=advanced.js.map //# sourceMappingURL=advanced.js.map \ No newline at end of file diff --git a/dist/chunk-S4J2MG4T.js b/dist/chunk-2JHOYUSH.js similarity index 98% rename from dist/chunk-S4J2MG4T.js rename to dist/chunk-2JHOYUSH.js index 5c46825..070222c 100644 --- a/dist/chunk-S4J2MG4T.js +++ b/dist/chunk-2JHOYUSH.js @@ -1,2 +1,2 @@ -import {X as X$1,a as a$1,c,d,f,h,i,j as j$1,k,l,m,n,p,o,q as q$1,s,t,u,z,w,B,G,H,I,J as J$1,L,b,N,O as O$1,P,Q as Q$1,R,T,S,U,V as V$1,W as W$1}from'./chunk-7FUCHMMB.js';import {a}from'./chunk-XTVBESM5.js';import'react';import {jsx}from'react/jsx-runtime';function e(N,z){return function({className:F,...K}){return jsx(N,{className:a(z,F),...K})}}var $=e(a$1,"rounded-md border border-cyan-400/45 bg-black/75 font-mono text-[0.8rem] tracking-[0.045em] text-cyan-50 uppercase shadow-[0_0_0_1px_rgba(34,211,238,0.12),0_0_18px_rgba(34,211,238,0.1)] data-[variant=default]:bg-cyan-300 data-[variant=default]:text-slate-950 data-[variant=outline]:bg-black/55 data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:hover:bg-cyan-400/10 data-[variant=secondary]:bg-cyan-400/12 data-[variant=destructive]:border-rose-400/50 data-[variant=destructive]:bg-rose-500/15 data-[variant=destructive]:text-rose-200"),O=e(c,"rounded-md border border-cyan-400/35 bg-[linear-gradient(180deg,rgba(0,229,255,0.055),transparent_58%),rgba(1,8,11,0.9)] font-mono text-cyan-50 shadow-[inset_0_1px_0_rgba(125,211,252,0.08),0_0_0_1px_rgba(34,211,238,0.12),0_0_28px_rgba(34,211,238,0.08)] ring-0"),V=e(d,"px-5 pt-5 pb-3"),W=e(f,"px-5 pb-5"),q=e(h,"rounded-sm border-cyan-400/55 bg-black/65 ring-cyan-300/70 data-checked:bg-cyan-300 data-checked:text-slate-950 data-checked:ring-cyan-300"),J=e(i,"rounded-md border border-cyan-400/35 bg-black/92 font-mono text-cyan-50 shadow-[0_0_26px_rgba(34,211,238,0.16)] ring-0 before:hidden **:data-[slot$=-item]:focus:bg-cyan-400/12 **:data-[slot$=-item]:data-highlighted:bg-cyan-400/12 **:data-[slot$=-separator]:bg-cyan-400/18 **:data-[slot$=-trigger]:focus:bg-cyan-400/12"),Q=e(j$1,"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50 data-[variant=destructive]:text-rose-200 data-[variant=destructive]:focus:bg-rose-500/15"),X=e(k,"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50"),Y=e(l,"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50"),Z=e(m,"font-mono text-[0.68rem] tracking-[0.16em] text-cyan-200/70 uppercase"),j=e(n,"bg-cyan-400/20"),ee=e(p,"rounded-md border border-cyan-400/35 bg-black/92 font-mono text-cyan-50 shadow-[0_0_26px_rgba(34,211,238,0.16)] ring-0 before:hidden"),te=e(o,"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50 data-open:bg-cyan-400/12 data-open:text-cyan-50"),ae=e(q$1,"rounded-md border-cyan-400/35 bg-black/80 font-mono text-cyan-50"),re=e(s,"[&[data-variant=icon]]:rounded-xl [&[data-variant=icon]]:bg-cyan-400/12 [&[data-variant=icon]]:text-cyan-200"),ne=e(t,"text-cyan-50"),oe=e(u,"text-cyan-100/70"),de=e(z,"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 placeholder:text-cyan-100/45 focus-visible:ring-cyan-300/70"),ie=e(w,"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 shadow-[0_0_18px_rgba(34,211,238,0.06)]"),ce=e(B,"rounded-md border-cyan-400/35 bg-black/55 font-mono text-cyan-50 hover:bg-cyan-400/12 data-[active=true]:bg-cyan-300 data-[active=true]:text-slate-950"),be=e(G,"rounded-md border border-cyan-400/35 bg-black/72 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_26px_rgba(34,211,238,0.08)]"),se=e(H,"[&>[data-slot=scroll-area-thumb]]:bg-cyan-300/65"),le=e(I,"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 focus-visible:ring-cyan-300/70"),pe=e(J$1,"rounded-md border border-cyan-400/35 bg-black/95 font-mono text-cyan-50 ring-0 shadow-[0_0_26px_rgba(34,211,238,0.16)] before:hidden"),ge=e(L,"rounded-sm focus:bg-cyan-400/12 focus:text-cyan-50"),me=e(b,"bg-cyan-400/20"),ye=e(N,"rounded-md bg-cyan-400/12"),ue=e(O$1,"border-separate border-spacing-0 border border-cyan-400/45 bg-black/72 font-mono text-[0.84rem] text-cyan-50 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_24px_rgba(34,211,238,0.08)]"),xe=e(P,"[&_tr]:border-cyan-400/45"),ve=e(Q$1,"[&_tr:last-child]:border-b"),_e=e(R,"border-cyan-400/40 bg-cyan-400/10 font-mono"),Te=e(T,"h-12 border-b border-cyan-400/45 bg-cyan-950/20 px-3 font-mono text-[0.68rem] font-bold tracking-[0.18em] text-cyan-300 uppercase"),Ce=e(S,"border-cyan-400/25 hover:bg-cyan-400/10 data-[state=selected]:bg-cyan-400/15"),fe=e(U,"border-b border-cyan-400/16 px-3 py-3 font-mono text-cyan-50"),ke=e(V$1,"font-mono text-cyan-100/65"),we=e(W$1,"rounded-md bg-black text-cyan-50 ring-1 ring-cyan-400/35 shadow-[0_0_22px_rgba(34,211,238,0.18)] [&>svg]:bg-black [&>svg]:fill-black"),Me={...X$1,rootClassName:"dtp-thegridcn",classNames:{card:"hover:bg-cyan-400/10 data-[state=selected]:bg-cyan-400/15",cardGrid:"bg-transparent",cardItem:"min-w-0",cardOverlay:"from-black/95 via-black/75 to-transparent",cardScrollArea:"bg-transparent",cardSelected:"bg-cyan-400/15 ring-cyan-300/70",cardUnselected:"border-cyan-400/35",cardViewport:"bg-transparent",cellBorder:"border-cyan-400/16",cellSelected:"!bg-cyan-400/15 ring-1 ring-inset ring-cyan-300/60",columnGroupHeader:"bg-cyan-400/10 text-cyan-200",dragActive:"rounded-md border-dashed border-cyan-300",emptyState:"border-cyan-400/35 bg-black/80",footer:"border-cyan-400/40 bg-black/80 text-cyan-50",headerSortIcon:"text-cyan-100/65",mutedText:"text-cyan-100/70",paginationSelectTrigger:"border-cyan-400/45 bg-black/70 text-cyan-50",paginationTotal:"text-cyan-100/70",pinnedColumn:"border-cyan-400/25",pinnedUtilityColumn:"bg-black/80",resizeHandle:"after:bg-cyan-400/20 hover:after:bg-cyan-300",resizeHandleActive:"after:bg-cyan-300",row:"hover:bg-cyan-400/10 data-[state=selected]:!bg-cyan-400/15",rowSelected:"!bg-cyan-400/15",tableContainer:"border-cyan-400/35 bg-black/72 text-cyan-50 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_26px_rgba(34,211,238,0.08)]",tableScrollArea:"bg-black/72",tableStickyHeader:"sticky top-0 z-30 bg-black/90 backdrop-blur [&_th]:border-cyan-400/45 [&_th]:bg-black/90",toolbarCompactIconButton:"size-7",toolbarIconButton:"text-cyan-100/70 hover:text-cyan-50",toolbarInputButton:"border-cyan-400/45 bg-black/70 text-cyan-50"},Button:$,Card:O,CardContent:W,CardHeader:V,Checkbox:q,DropdownMenuCheckboxItem:X,DropdownMenuContent:J,DropdownMenuItem:Q,DropdownMenuLabel:Z,DropdownMenuRadioItem:Y,DropdownMenuSeparator:j,DropdownMenuSubContent:ee,DropdownMenuSubTrigger:te,Empty:ae,EmptyDescription:oe,EmptyMedia:re,EmptyTitle:ne,Input:de,InputGroup:ie,PaginationLink:ce,ScrollArea:be,ScrollBar:se,SelectContent:pe,SelectItem:ge,SelectTrigger:le,Separator:me,Skeleton:ye,Table:ue,TableBody:ve,TableCaption:ke,TableCell:fe,TableFooter:_e,TableHead:Te,TableHeader:xe,TableRow:Ce,TooltipContent:we};export{Me as a};//# sourceMappingURL=chunk-S4J2MG4T.js.map -//# sourceMappingURL=chunk-S4J2MG4T.js.map \ No newline at end of file +import {X as X$1,a as a$1,c,d,f,h,i,j as j$1,k,l,m,n,p,o,q as q$1,s,t,u,z,w,B,G,H,I,J as J$1,L,b,N,O as O$1,P,Q as Q$1,R,T,S,U,V as V$1,W as W$1}from'./chunk-VSIOOKCO.js';import {a}from'./chunk-XTVBESM5.js';import'react';import {jsx}from'react/jsx-runtime';function e(N,z){return function({className:F,...K}){return jsx(N,{className:a(z,F),...K})}}var $=e(a$1,"rounded-md border border-cyan-400/45 bg-black/75 font-mono text-[0.8rem] tracking-[0.045em] text-cyan-50 uppercase shadow-[0_0_0_1px_rgba(34,211,238,0.12),0_0_18px_rgba(34,211,238,0.1)] data-[variant=default]:bg-cyan-300 data-[variant=default]:text-slate-950 data-[variant=outline]:bg-black/55 data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:hover:bg-cyan-400/10 data-[variant=secondary]:bg-cyan-400/12 data-[variant=destructive]:border-rose-400/50 data-[variant=destructive]:bg-rose-500/15 data-[variant=destructive]:text-rose-200"),O=e(c,"rounded-md border border-cyan-400/35 bg-[linear-gradient(180deg,rgba(0,229,255,0.055),transparent_58%),rgba(1,8,11,0.9)] font-mono text-cyan-50 shadow-[inset_0_1px_0_rgba(125,211,252,0.08),0_0_0_1px_rgba(34,211,238,0.12),0_0_28px_rgba(34,211,238,0.08)] ring-0"),V=e(d,"px-5 pt-5 pb-3"),W=e(f,"px-5 pb-5"),q=e(h,"rounded-sm border-cyan-400/55 bg-black/65 ring-cyan-300/70 data-checked:bg-cyan-300 data-checked:text-slate-950 data-checked:ring-cyan-300"),J=e(i,"rounded-md border border-cyan-400/35 bg-black/92 font-mono text-cyan-50 shadow-[0_0_26px_rgba(34,211,238,0.16)] ring-0 before:hidden **:data-[slot$=-item]:focus:bg-cyan-400/12 **:data-[slot$=-item]:data-highlighted:bg-cyan-400/12 **:data-[slot$=-separator]:bg-cyan-400/18 **:data-[slot$=-trigger]:focus:bg-cyan-400/12"),Q=e(j$1,"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50 data-[variant=destructive]:text-rose-200 data-[variant=destructive]:focus:bg-rose-500/15"),X=e(k,"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50"),Y=e(l,"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50"),Z=e(m,"font-mono text-[0.68rem] tracking-[0.16em] text-cyan-200/70 uppercase"),j=e(n,"bg-cyan-400/20"),ee=e(p,"rounded-md border border-cyan-400/35 bg-black/92 font-mono text-cyan-50 shadow-[0_0_26px_rgba(34,211,238,0.16)] ring-0 before:hidden"),te=e(o,"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50 data-open:bg-cyan-400/12 data-open:text-cyan-50"),ae=e(q$1,"rounded-md border-cyan-400/35 bg-black/80 font-mono text-cyan-50"),re=e(s,"[&[data-variant=icon]]:rounded-xl [&[data-variant=icon]]:bg-cyan-400/12 [&[data-variant=icon]]:text-cyan-200"),ne=e(t,"text-cyan-50"),oe=e(u,"text-cyan-100/70"),de=e(z,"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 placeholder:text-cyan-100/45 focus-visible:ring-cyan-300/70"),ie=e(w,"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 shadow-[0_0_18px_rgba(34,211,238,0.06)]"),ce=e(B,"rounded-md border-cyan-400/35 bg-black/55 font-mono text-cyan-50 hover:bg-cyan-400/12 data-[active=true]:bg-cyan-300 data-[active=true]:text-slate-950"),be=e(G,"rounded-md border border-cyan-400/35 bg-black/72 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_26px_rgba(34,211,238,0.08)]"),se=e(H,"[&>[data-slot=scroll-area-thumb]]:bg-cyan-300/65"),le=e(I,"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 focus-visible:ring-cyan-300/70"),pe=e(J$1,"rounded-md border border-cyan-400/35 bg-black/95 font-mono text-cyan-50 ring-0 shadow-[0_0_26px_rgba(34,211,238,0.16)] before:hidden"),ge=e(L,"rounded-sm focus:bg-cyan-400/12 focus:text-cyan-50"),me=e(b,"bg-cyan-400/20"),ye=e(N,"rounded-md bg-cyan-400/12"),ue=e(O$1,"border-separate border-spacing-0 border border-cyan-400/45 bg-black/72 font-mono text-[0.84rem] text-cyan-50 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_24px_rgba(34,211,238,0.08)]"),xe=e(P,"[&_tr]:border-cyan-400/45"),ve=e(Q$1,"[&_tr:last-child]:border-b"),_e=e(R,"border-cyan-400/40 bg-cyan-400/10 font-mono"),Te=e(T,"h-12 border-b border-cyan-400/45 bg-cyan-950/20 px-3 font-mono text-[0.68rem] font-bold tracking-[0.18em] text-cyan-300 uppercase"),Ce=e(S,"border-cyan-400/25 hover:bg-cyan-400/10 data-[state=selected]:bg-cyan-400/15"),fe=e(U,"border-b border-cyan-400/16 px-3 py-3 font-mono text-cyan-50"),ke=e(V$1,"font-mono text-cyan-100/65"),we=e(W$1,"rounded-md bg-black text-cyan-50 ring-1 ring-cyan-400/35 shadow-[0_0_22px_rgba(34,211,238,0.18)] [&>svg]:bg-black [&>svg]:fill-black"),Me={...X$1,rootClassName:"dtp-thegridcn",classNames:{card:"hover:bg-cyan-400/10 data-[state=selected]:bg-cyan-400/15",cardGrid:"bg-transparent",cardItem:"min-w-0",cardOverlay:"from-black/95 via-black/75 to-transparent",cardScrollArea:"bg-transparent",cardSelected:"bg-cyan-400/15 ring-cyan-300/70",cardUnselected:"border-cyan-400/35",cardViewport:"bg-transparent",cellBorder:"border-cyan-400/16",cellSelected:"!bg-cyan-400/15 ring-1 ring-inset ring-cyan-300/60",columnGroupHeader:"bg-cyan-400/10 text-cyan-200",dragActive:"rounded-md border-dashed border-cyan-300",emptyState:"border-cyan-400/35 bg-black/80",footer:"border-cyan-400/40 bg-black/80 text-cyan-50",headerSortIcon:"text-cyan-100/65",mutedText:"text-cyan-100/70",paginationSelectTrigger:"border-cyan-400/45 bg-black/70 text-cyan-50",paginationTotal:"text-cyan-100/70",pinnedColumn:"border-cyan-400/25",pinnedUtilityColumn:"bg-black/80",resizeHandle:"after:bg-cyan-400/20 hover:after:bg-cyan-300",resizeHandleActive:"after:bg-cyan-300",row:"hover:bg-cyan-400/10 data-[state=selected]:!bg-cyan-400/15",rowSelected:"!bg-cyan-400/15",tableContainer:"border-cyan-400/35 bg-black/72 text-cyan-50 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_26px_rgba(34,211,238,0.08)]",tableScrollArea:"bg-black/72",tableStickyHeader:"sticky top-0 z-30 bg-black/90 backdrop-blur [&_th]:border-cyan-400/45 [&_th]:bg-black/90",toolbarCompactIconButton:"size-7",toolbarIconButton:"text-cyan-100/70 hover:text-cyan-50",toolbarInputButton:"border-cyan-400/45 bg-black/70 text-cyan-50"},Button:$,Card:O,CardContent:W,CardHeader:V,Checkbox:q,DropdownMenuCheckboxItem:X,DropdownMenuContent:J,DropdownMenuItem:Q,DropdownMenuLabel:Z,DropdownMenuRadioItem:Y,DropdownMenuSeparator:j,DropdownMenuSubContent:ee,DropdownMenuSubTrigger:te,Empty:ae,EmptyDescription:oe,EmptyMedia:re,EmptyTitle:ne,Input:de,InputGroup:ie,PaginationLink:ce,ScrollArea:be,ScrollBar:se,SelectContent:pe,SelectItem:ge,SelectTrigger:le,Separator:me,Skeleton:ye,Table:ue,TableBody:ve,TableCaption:ke,TableCell:fe,TableFooter:_e,TableHead:Te,TableHeader:xe,TableRow:Ce,TooltipContent:we};export{Me as a};//# sourceMappingURL=chunk-2JHOYUSH.js.map +//# sourceMappingURL=chunk-2JHOYUSH.js.map \ No newline at end of file diff --git a/dist/chunk-S4J2MG4T.js.map b/dist/chunk-2JHOYUSH.js.map similarity index 99% rename from dist/chunk-S4J2MG4T.js.map rename to dist/chunk-2JHOYUSH.js.map index 0700658..d774ea1 100644 --- a/dist/chunk-S4J2MG4T.js.map +++ b/dist/chunk-2JHOYUSH.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/adapters/thegridcn/index.tsx"],"names":["withClassName","Component","defaultClassName","className","props","jsx","cn","GridButton","Button","GridCard","Card","GridCardHeader","CardHeader","GridCardContent","CardContent","GridCheckbox","Checkbox","GridDropdownMenuContent","DropdownMenuContent","GridDropdownMenuItem","DropdownMenuItem","GridDropdownMenuCheckboxItem","DropdownMenuCheckboxItem","GridDropdownMenuRadioItem","DropdownMenuRadioItem","GridDropdownMenuLabel","DropdownMenuLabel","GridDropdownMenuSeparator","DropdownMenuSeparator","GridDropdownMenuSubContent","DropdownMenuSubContent","GridDropdownMenuSubTrigger","DropdownMenuSubTrigger","GridEmpty","Empty","GridEmptyMedia","EmptyMedia","GridEmptyTitle","EmptyTitle","GridEmptyDescription","EmptyDescription","GridInput","Input","GridInputGroup","InputGroup","GridPaginationLink","PaginationLink","GridScrollArea","ScrollArea","GridScrollBar","ScrollBar","GridSelectTrigger","SelectTrigger","GridSelectContent","SelectContent","GridSelectItem","SelectItem","GridSeparator","Separator","GridSkeleton","Skeleton","GridTable","Table","GridTableHeader","TableHeader","GridTableBody","TableBody","GridTableFooter","TableFooter","GridTableHead","TableHead","GridTableRow","TableRow","GridTableCell","TableCell","GridTableCaption","TableCaption","GridTooltipContent","TooltipContent","theGridcnUiKit","primitiveUiKit"],"mappings":"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","file":"chunk-S4J2MG4T.js","sourcesContent":["import * as React from \"react\";\nimport type { DataTableUiKit } from \"../../core/ui-kit\";\nimport {\n Button as PrimitiveButton,\n Card as PrimitiveCard,\n CardContent as PrimitiveCardContent,\n CardHeader as PrimitiveCardHeader,\n Checkbox as PrimitiveCheckbox,\n DropdownMenuCheckboxItem as PrimitiveDropdownMenuCheckboxItem,\n DropdownMenuContent as PrimitiveDropdownMenuContent,\n DropdownMenuItem as PrimitiveDropdownMenuItem,\n DropdownMenuLabel as PrimitiveDropdownMenuLabel,\n DropdownMenuRadioItem as PrimitiveDropdownMenuRadioItem,\n DropdownMenuSeparator as PrimitiveDropdownMenuSeparator,\n DropdownMenuSubContent as PrimitiveDropdownMenuSubContent,\n DropdownMenuSubTrigger as PrimitiveDropdownMenuSubTrigger,\n Empty as PrimitiveEmpty,\n EmptyDescription as PrimitiveEmptyDescription,\n EmptyMedia as PrimitiveEmptyMedia,\n EmptyTitle as PrimitiveEmptyTitle,\n Input as PrimitiveInput,\n InputGroup as PrimitiveInputGroup,\n PaginationLink as PrimitivePaginationLink,\n ScrollArea as PrimitiveScrollArea,\n ScrollBar as PrimitiveScrollBar,\n SelectContent as PrimitiveSelectContent,\n SelectItem as PrimitiveSelectItem,\n SelectTrigger as PrimitiveSelectTrigger,\n Separator as PrimitiveSeparator,\n Skeleton as PrimitiveSkeleton,\n Table as PrimitiveTable,\n TableBody as PrimitiveTableBody,\n TableCaption as PrimitiveTableCaption,\n TableCell as PrimitiveTableCell,\n TableFooter as PrimitiveTableFooter,\n TableHead as PrimitiveTableHead,\n TableHeader as PrimitiveTableHeader,\n TableRow as PrimitiveTableRow,\n TooltipContent as PrimitiveTooltipContent,\n primitiveUiKit,\n} from \"../../core/primitive-ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nfunction withClassName(\n Component: React.ComponentType,\n defaultClassName: string,\n) {\n return function Wrapped({ className, ...props }: TProps) {\n return (\n \n );\n };\n}\n\nconst GridButton = withClassName(\n PrimitiveButton,\n \"rounded-md border border-cyan-400/45 bg-black/75 font-mono text-[0.8rem] tracking-[0.045em] text-cyan-50 uppercase shadow-[0_0_0_1px_rgba(34,211,238,0.12),0_0_18px_rgba(34,211,238,0.1)] data-[variant=default]:bg-cyan-300 data-[variant=default]:text-slate-950 data-[variant=outline]:bg-black/55 data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:hover:bg-cyan-400/10 data-[variant=secondary]:bg-cyan-400/12 data-[variant=destructive]:border-rose-400/50 data-[variant=destructive]:bg-rose-500/15 data-[variant=destructive]:text-rose-200\",\n);\nconst GridCard = withClassName(\n PrimitiveCard,\n \"rounded-md border border-cyan-400/35 bg-[linear-gradient(180deg,rgba(0,229,255,0.055),transparent_58%),rgba(1,8,11,0.9)] font-mono text-cyan-50 shadow-[inset_0_1px_0_rgba(125,211,252,0.08),0_0_0_1px_rgba(34,211,238,0.12),0_0_28px_rgba(34,211,238,0.08)] ring-0\",\n);\nconst GridCardHeader = withClassName(PrimitiveCardHeader, \"px-5 pt-5 pb-3\");\nconst GridCardContent = withClassName(PrimitiveCardContent, \"px-5 pb-5\");\nconst GridCheckbox = withClassName(\n PrimitiveCheckbox,\n \"rounded-sm border-cyan-400/55 bg-black/65 ring-cyan-300/70 data-checked:bg-cyan-300 data-checked:text-slate-950 data-checked:ring-cyan-300\",\n);\nconst GridDropdownMenuContent = withClassName(\n PrimitiveDropdownMenuContent,\n \"rounded-md border border-cyan-400/35 bg-black/92 font-mono text-cyan-50 shadow-[0_0_26px_rgba(34,211,238,0.16)] ring-0 before:hidden **:data-[slot$=-item]:focus:bg-cyan-400/12 **:data-[slot$=-item]:data-highlighted:bg-cyan-400/12 **:data-[slot$=-separator]:bg-cyan-400/18 **:data-[slot$=-trigger]:focus:bg-cyan-400/12\",\n);\nconst GridDropdownMenuItem = withClassName(\n PrimitiveDropdownMenuItem,\n \"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50 data-[variant=destructive]:text-rose-200 data-[variant=destructive]:focus:bg-rose-500/15\",\n);\nconst GridDropdownMenuCheckboxItem = withClassName(\n PrimitiveDropdownMenuCheckboxItem,\n \"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50\",\n);\nconst GridDropdownMenuRadioItem = withClassName(\n PrimitiveDropdownMenuRadioItem,\n \"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50\",\n);\nconst GridDropdownMenuLabel = withClassName(\n PrimitiveDropdownMenuLabel,\n \"font-mono text-[0.68rem] tracking-[0.16em] text-cyan-200/70 uppercase\",\n);\nconst GridDropdownMenuSeparator = withClassName(\n PrimitiveDropdownMenuSeparator,\n \"bg-cyan-400/20\",\n);\nconst GridDropdownMenuSubContent = withClassName(\n PrimitiveDropdownMenuSubContent,\n \"rounded-md border border-cyan-400/35 bg-black/92 font-mono text-cyan-50 shadow-[0_0_26px_rgba(34,211,238,0.16)] ring-0 before:hidden\",\n);\nconst GridDropdownMenuSubTrigger = withClassName(\n PrimitiveDropdownMenuSubTrigger,\n \"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50 data-open:bg-cyan-400/12 data-open:text-cyan-50\",\n);\nconst GridEmpty = withClassName(\n PrimitiveEmpty,\n \"rounded-md border-cyan-400/35 bg-black/80 font-mono text-cyan-50\",\n);\nconst GridEmptyMedia = withClassName(\n PrimitiveEmptyMedia,\n \"[&[data-variant=icon]]:rounded-xl [&[data-variant=icon]]:bg-cyan-400/12 [&[data-variant=icon]]:text-cyan-200\",\n);\nconst GridEmptyTitle = withClassName(PrimitiveEmptyTitle, \"text-cyan-50\");\nconst GridEmptyDescription = withClassName(\n PrimitiveEmptyDescription,\n \"text-cyan-100/70\",\n);\nconst GridInput = withClassName(\n PrimitiveInput,\n \"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 placeholder:text-cyan-100/45 focus-visible:ring-cyan-300/70\",\n);\nconst GridInputGroup = withClassName(\n PrimitiveInputGroup,\n \"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 shadow-[0_0_18px_rgba(34,211,238,0.06)]\",\n);\nconst GridPaginationLink = withClassName(\n PrimitivePaginationLink,\n \"rounded-md border-cyan-400/35 bg-black/55 font-mono text-cyan-50 hover:bg-cyan-400/12 data-[active=true]:bg-cyan-300 data-[active=true]:text-slate-950\",\n);\nconst GridScrollArea = withClassName(\n PrimitiveScrollArea,\n \"rounded-md border border-cyan-400/35 bg-black/72 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_26px_rgba(34,211,238,0.08)]\",\n);\nconst GridScrollBar = withClassName(\n PrimitiveScrollBar,\n \"[&>[data-slot=scroll-area-thumb]]:bg-cyan-300/65\",\n);\nconst GridSelectTrigger = withClassName(\n PrimitiveSelectTrigger,\n \"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 focus-visible:ring-cyan-300/70\",\n);\nconst GridSelectContent = withClassName(\n PrimitiveSelectContent,\n \"rounded-md border border-cyan-400/35 bg-black/95 font-mono text-cyan-50 ring-0 shadow-[0_0_26px_rgba(34,211,238,0.16)] before:hidden\",\n);\nconst GridSelectItem = withClassName(\n PrimitiveSelectItem,\n \"rounded-sm focus:bg-cyan-400/12 focus:text-cyan-50\",\n);\nconst GridSeparator = withClassName(PrimitiveSeparator, \"bg-cyan-400/20\");\nconst GridSkeleton = withClassName(\n PrimitiveSkeleton,\n \"rounded-md bg-cyan-400/12\",\n);\nconst GridTable = withClassName(\n PrimitiveTable,\n \"border-separate border-spacing-0 border border-cyan-400/45 bg-black/72 font-mono text-[0.84rem] text-cyan-50 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_24px_rgba(34,211,238,0.08)]\",\n);\nconst GridTableHeader = withClassName(\n PrimitiveTableHeader,\n \"[&_tr]:border-cyan-400/45\",\n);\nconst GridTableBody = withClassName(\n PrimitiveTableBody,\n \"[&_tr:last-child]:border-b\",\n);\nconst GridTableFooter = withClassName(\n PrimitiveTableFooter,\n \"border-cyan-400/40 bg-cyan-400/10 font-mono\",\n);\nconst GridTableHead = withClassName(\n PrimitiveTableHead,\n \"h-12 border-b border-cyan-400/45 bg-cyan-950/20 px-3 font-mono text-[0.68rem] font-bold tracking-[0.18em] text-cyan-300 uppercase\",\n);\nconst GridTableRow = withClassName(\n PrimitiveTableRow,\n \"border-cyan-400/25 hover:bg-cyan-400/10 data-[state=selected]:bg-cyan-400/15\",\n);\nconst GridTableCell = withClassName(\n PrimitiveTableCell,\n \"border-b border-cyan-400/16 px-3 py-3 font-mono text-cyan-50\",\n);\nconst GridTableCaption = withClassName(\n PrimitiveTableCaption,\n \"font-mono text-cyan-100/65\",\n);\nconst GridTooltipContent = withClassName(\n PrimitiveTooltipContent,\n \"rounded-md bg-black text-cyan-50 ring-1 ring-cyan-400/35 shadow-[0_0_22px_rgba(34,211,238,0.18)] [&>svg]:bg-black [&>svg]:fill-black\",\n);\n\nexport const theGridcnUiKit: DataTableUiKit = {\n ...primitiveUiKit,\n rootClassName: \"dtp-thegridcn\",\n classNames: {\n card: \"hover:bg-cyan-400/10 data-[state=selected]:bg-cyan-400/15\",\n cardGrid: \"bg-transparent\",\n cardItem: \"min-w-0\",\n cardOverlay: \"from-black/95 via-black/75 to-transparent\",\n cardScrollArea: \"bg-transparent\",\n cardSelected: \"bg-cyan-400/15 ring-cyan-300/70\",\n cardUnselected: \"border-cyan-400/35\",\n cardViewport: \"bg-transparent\",\n cellBorder: \"border-cyan-400/16\",\n cellSelected: \"!bg-cyan-400/15 ring-1 ring-inset ring-cyan-300/60\",\n columnGroupHeader: \"bg-cyan-400/10 text-cyan-200\",\n dragActive: \"rounded-md border-dashed border-cyan-300\",\n emptyState: \"border-cyan-400/35 bg-black/80\",\n footer: \"border-cyan-400/40 bg-black/80 text-cyan-50\",\n headerSortIcon: \"text-cyan-100/65\",\n mutedText: \"text-cyan-100/70\",\n paginationSelectTrigger: \"border-cyan-400/45 bg-black/70 text-cyan-50\",\n paginationTotal: \"text-cyan-100/70\",\n pinnedColumn: \"border-cyan-400/25\",\n pinnedUtilityColumn: \"bg-black/80\",\n resizeHandle: \"after:bg-cyan-400/20 hover:after:bg-cyan-300\",\n resizeHandleActive: \"after:bg-cyan-300\",\n row: \"hover:bg-cyan-400/10 data-[state=selected]:!bg-cyan-400/15\",\n rowSelected: \"!bg-cyan-400/15\",\n tableContainer:\n \"border-cyan-400/35 bg-black/72 text-cyan-50 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_26px_rgba(34,211,238,0.08)]\",\n tableScrollArea: \"bg-black/72\",\n tableStickyHeader:\n \"sticky top-0 z-30 bg-black/90 backdrop-blur [&_th]:border-cyan-400/45 [&_th]:bg-black/90\",\n toolbarCompactIconButton: \"size-7\",\n toolbarIconButton: \"text-cyan-100/70 hover:text-cyan-50\",\n toolbarInputButton: \"border-cyan-400/45 bg-black/70 text-cyan-50\",\n },\n Button: GridButton,\n Card: GridCard,\n CardContent: GridCardContent,\n CardHeader: GridCardHeader,\n Checkbox: GridCheckbox,\n DropdownMenuCheckboxItem: GridDropdownMenuCheckboxItem,\n DropdownMenuContent: GridDropdownMenuContent,\n DropdownMenuItem: GridDropdownMenuItem,\n DropdownMenuLabel: GridDropdownMenuLabel,\n DropdownMenuRadioItem: GridDropdownMenuRadioItem,\n DropdownMenuSeparator: GridDropdownMenuSeparator,\n DropdownMenuSubContent: GridDropdownMenuSubContent,\n DropdownMenuSubTrigger: GridDropdownMenuSubTrigger,\n Empty: GridEmpty,\n EmptyDescription: GridEmptyDescription,\n EmptyMedia: GridEmptyMedia,\n EmptyTitle: GridEmptyTitle,\n Input: GridInput,\n InputGroup: GridInputGroup,\n PaginationLink: GridPaginationLink,\n ScrollArea: GridScrollArea,\n ScrollBar: GridScrollBar,\n SelectContent: GridSelectContent,\n SelectItem: GridSelectItem,\n SelectTrigger: GridSelectTrigger,\n Separator: GridSeparator,\n Skeleton: GridSkeleton,\n Table: GridTable,\n TableBody: GridTableBody,\n TableCaption: GridTableCaption,\n TableCell: GridTableCell,\n TableFooter: GridTableFooter,\n TableHead: GridTableHead,\n TableHeader: GridTableHeader,\n TableRow: GridTableRow,\n TooltipContent: GridTooltipContent,\n};\n"]} \ No newline at end of file +{"version":3,"sources":["../src/adapters/thegridcn/index.tsx"],"names":["withClassName","Component","defaultClassName","className","props","jsx","cn","GridButton","Button","GridCard","Card","GridCardHeader","CardHeader","GridCardContent","CardContent","GridCheckbox","Checkbox","GridDropdownMenuContent","DropdownMenuContent","GridDropdownMenuItem","DropdownMenuItem","GridDropdownMenuCheckboxItem","DropdownMenuCheckboxItem","GridDropdownMenuRadioItem","DropdownMenuRadioItem","GridDropdownMenuLabel","DropdownMenuLabel","GridDropdownMenuSeparator","DropdownMenuSeparator","GridDropdownMenuSubContent","DropdownMenuSubContent","GridDropdownMenuSubTrigger","DropdownMenuSubTrigger","GridEmpty","Empty","GridEmptyMedia","EmptyMedia","GridEmptyTitle","EmptyTitle","GridEmptyDescription","EmptyDescription","GridInput","Input","GridInputGroup","InputGroup","GridPaginationLink","PaginationLink","GridScrollArea","ScrollArea","GridScrollBar","ScrollBar","GridSelectTrigger","SelectTrigger","GridSelectContent","SelectContent","GridSelectItem","SelectItem","GridSeparator","Separator","GridSkeleton","Skeleton","GridTable","Table","GridTableHeader","TableHeader","GridTableBody","TableBody","GridTableFooter","TableFooter","GridTableHead","TableHead","GridTableRow","TableRow","GridTableCell","TableCell","GridTableCaption","TableCaption","GridTooltipContent","TooltipContent","theGridcnUiKit","primitiveUiKit"],"mappings":"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","file":"chunk-2JHOYUSH.js","sourcesContent":["import * as React from \"react\";\nimport type { DataTableUiKit } from \"../../core/ui-kit\";\nimport {\n Button as PrimitiveButton,\n Card as PrimitiveCard,\n CardContent as PrimitiveCardContent,\n CardHeader as PrimitiveCardHeader,\n Checkbox as PrimitiveCheckbox,\n DropdownMenuCheckboxItem as PrimitiveDropdownMenuCheckboxItem,\n DropdownMenuContent as PrimitiveDropdownMenuContent,\n DropdownMenuItem as PrimitiveDropdownMenuItem,\n DropdownMenuLabel as PrimitiveDropdownMenuLabel,\n DropdownMenuRadioItem as PrimitiveDropdownMenuRadioItem,\n DropdownMenuSeparator as PrimitiveDropdownMenuSeparator,\n DropdownMenuSubContent as PrimitiveDropdownMenuSubContent,\n DropdownMenuSubTrigger as PrimitiveDropdownMenuSubTrigger,\n Empty as PrimitiveEmpty,\n EmptyDescription as PrimitiveEmptyDescription,\n EmptyMedia as PrimitiveEmptyMedia,\n EmptyTitle as PrimitiveEmptyTitle,\n Input as PrimitiveInput,\n InputGroup as PrimitiveInputGroup,\n PaginationLink as PrimitivePaginationLink,\n ScrollArea as PrimitiveScrollArea,\n ScrollBar as PrimitiveScrollBar,\n SelectContent as PrimitiveSelectContent,\n SelectItem as PrimitiveSelectItem,\n SelectTrigger as PrimitiveSelectTrigger,\n Separator as PrimitiveSeparator,\n Skeleton as PrimitiveSkeleton,\n Table as PrimitiveTable,\n TableBody as PrimitiveTableBody,\n TableCaption as PrimitiveTableCaption,\n TableCell as PrimitiveTableCell,\n TableFooter as PrimitiveTableFooter,\n TableHead as PrimitiveTableHead,\n TableHeader as PrimitiveTableHeader,\n TableRow as PrimitiveTableRow,\n TooltipContent as PrimitiveTooltipContent,\n primitiveUiKit,\n} from \"../../core/primitive-ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nfunction withClassName(\n Component: React.ComponentType,\n defaultClassName: string,\n) {\n return function Wrapped({ className, ...props }: TProps) {\n return (\n \n );\n };\n}\n\nconst GridButton = withClassName(\n PrimitiveButton,\n \"rounded-md border border-cyan-400/45 bg-black/75 font-mono text-[0.8rem] tracking-[0.045em] text-cyan-50 uppercase shadow-[0_0_0_1px_rgba(34,211,238,0.12),0_0_18px_rgba(34,211,238,0.1)] data-[variant=default]:bg-cyan-300 data-[variant=default]:text-slate-950 data-[variant=outline]:bg-black/55 data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:hover:bg-cyan-400/10 data-[variant=secondary]:bg-cyan-400/12 data-[variant=destructive]:border-rose-400/50 data-[variant=destructive]:bg-rose-500/15 data-[variant=destructive]:text-rose-200\",\n);\nconst GridCard = withClassName(\n PrimitiveCard,\n \"rounded-md border border-cyan-400/35 bg-[linear-gradient(180deg,rgba(0,229,255,0.055),transparent_58%),rgba(1,8,11,0.9)] font-mono text-cyan-50 shadow-[inset_0_1px_0_rgba(125,211,252,0.08),0_0_0_1px_rgba(34,211,238,0.12),0_0_28px_rgba(34,211,238,0.08)] ring-0\",\n);\nconst GridCardHeader = withClassName(PrimitiveCardHeader, \"px-5 pt-5 pb-3\");\nconst GridCardContent = withClassName(PrimitiveCardContent, \"px-5 pb-5\");\nconst GridCheckbox = withClassName(\n PrimitiveCheckbox,\n \"rounded-sm border-cyan-400/55 bg-black/65 ring-cyan-300/70 data-checked:bg-cyan-300 data-checked:text-slate-950 data-checked:ring-cyan-300\",\n);\nconst GridDropdownMenuContent = withClassName(\n PrimitiveDropdownMenuContent,\n \"rounded-md border border-cyan-400/35 bg-black/92 font-mono text-cyan-50 shadow-[0_0_26px_rgba(34,211,238,0.16)] ring-0 before:hidden **:data-[slot$=-item]:focus:bg-cyan-400/12 **:data-[slot$=-item]:data-highlighted:bg-cyan-400/12 **:data-[slot$=-separator]:bg-cyan-400/18 **:data-[slot$=-trigger]:focus:bg-cyan-400/12\",\n);\nconst GridDropdownMenuItem = withClassName(\n PrimitiveDropdownMenuItem,\n \"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50 data-[variant=destructive]:text-rose-200 data-[variant=destructive]:focus:bg-rose-500/15\",\n);\nconst GridDropdownMenuCheckboxItem = withClassName(\n PrimitiveDropdownMenuCheckboxItem,\n \"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50\",\n);\nconst GridDropdownMenuRadioItem = withClassName(\n PrimitiveDropdownMenuRadioItem,\n \"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50\",\n);\nconst GridDropdownMenuLabel = withClassName(\n PrimitiveDropdownMenuLabel,\n \"font-mono text-[0.68rem] tracking-[0.16em] text-cyan-200/70 uppercase\",\n);\nconst GridDropdownMenuSeparator = withClassName(\n PrimitiveDropdownMenuSeparator,\n \"bg-cyan-400/20\",\n);\nconst GridDropdownMenuSubContent = withClassName(\n PrimitiveDropdownMenuSubContent,\n \"rounded-md border border-cyan-400/35 bg-black/92 font-mono text-cyan-50 shadow-[0_0_26px_rgba(34,211,238,0.16)] ring-0 before:hidden\",\n);\nconst GridDropdownMenuSubTrigger = withClassName(\n PrimitiveDropdownMenuSubTrigger,\n \"rounded-sm font-mono text-cyan-50 focus:bg-cyan-400/12 focus:text-cyan-50 data-open:bg-cyan-400/12 data-open:text-cyan-50\",\n);\nconst GridEmpty = withClassName(\n PrimitiveEmpty,\n \"rounded-md border-cyan-400/35 bg-black/80 font-mono text-cyan-50\",\n);\nconst GridEmptyMedia = withClassName(\n PrimitiveEmptyMedia,\n \"[&[data-variant=icon]]:rounded-xl [&[data-variant=icon]]:bg-cyan-400/12 [&[data-variant=icon]]:text-cyan-200\",\n);\nconst GridEmptyTitle = withClassName(PrimitiveEmptyTitle, \"text-cyan-50\");\nconst GridEmptyDescription = withClassName(\n PrimitiveEmptyDescription,\n \"text-cyan-100/70\",\n);\nconst GridInput = withClassName(\n PrimitiveInput,\n \"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 placeholder:text-cyan-100/45 focus-visible:ring-cyan-300/70\",\n);\nconst GridInputGroup = withClassName(\n PrimitiveInputGroup,\n \"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 shadow-[0_0_18px_rgba(34,211,238,0.06)]\",\n);\nconst GridPaginationLink = withClassName(\n PrimitivePaginationLink,\n \"rounded-md border-cyan-400/35 bg-black/55 font-mono text-cyan-50 hover:bg-cyan-400/12 data-[active=true]:bg-cyan-300 data-[active=true]:text-slate-950\",\n);\nconst GridScrollArea = withClassName(\n PrimitiveScrollArea,\n \"rounded-md border border-cyan-400/35 bg-black/72 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_26px_rgba(34,211,238,0.08)]\",\n);\nconst GridScrollBar = withClassName(\n PrimitiveScrollBar,\n \"[&>[data-slot=scroll-area-thumb]]:bg-cyan-300/65\",\n);\nconst GridSelectTrigger = withClassName(\n PrimitiveSelectTrigger,\n \"rounded-md border-cyan-400/45 bg-black/70 font-mono text-cyan-50 focus-visible:ring-cyan-300/70\",\n);\nconst GridSelectContent = withClassName(\n PrimitiveSelectContent,\n \"rounded-md border border-cyan-400/35 bg-black/95 font-mono text-cyan-50 ring-0 shadow-[0_0_26px_rgba(34,211,238,0.16)] before:hidden\",\n);\nconst GridSelectItem = withClassName(\n PrimitiveSelectItem,\n \"rounded-sm focus:bg-cyan-400/12 focus:text-cyan-50\",\n);\nconst GridSeparator = withClassName(PrimitiveSeparator, \"bg-cyan-400/20\");\nconst GridSkeleton = withClassName(\n PrimitiveSkeleton,\n \"rounded-md bg-cyan-400/12\",\n);\nconst GridTable = withClassName(\n PrimitiveTable,\n \"border-separate border-spacing-0 border border-cyan-400/45 bg-black/72 font-mono text-[0.84rem] text-cyan-50 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_24px_rgba(34,211,238,0.08)]\",\n);\nconst GridTableHeader = withClassName(\n PrimitiveTableHeader,\n \"[&_tr]:border-cyan-400/45\",\n);\nconst GridTableBody = withClassName(\n PrimitiveTableBody,\n \"[&_tr:last-child]:border-b\",\n);\nconst GridTableFooter = withClassName(\n PrimitiveTableFooter,\n \"border-cyan-400/40 bg-cyan-400/10 font-mono\",\n);\nconst GridTableHead = withClassName(\n PrimitiveTableHead,\n \"h-12 border-b border-cyan-400/45 bg-cyan-950/20 px-3 font-mono text-[0.68rem] font-bold tracking-[0.18em] text-cyan-300 uppercase\",\n);\nconst GridTableRow = withClassName(\n PrimitiveTableRow,\n \"border-cyan-400/25 hover:bg-cyan-400/10 data-[state=selected]:bg-cyan-400/15\",\n);\nconst GridTableCell = withClassName(\n PrimitiveTableCell,\n \"border-b border-cyan-400/16 px-3 py-3 font-mono text-cyan-50\",\n);\nconst GridTableCaption = withClassName(\n PrimitiveTableCaption,\n \"font-mono text-cyan-100/65\",\n);\nconst GridTooltipContent = withClassName(\n PrimitiveTooltipContent,\n \"rounded-md bg-black text-cyan-50 ring-1 ring-cyan-400/35 shadow-[0_0_22px_rgba(34,211,238,0.18)] [&>svg]:bg-black [&>svg]:fill-black\",\n);\n\nexport const theGridcnUiKit: DataTableUiKit = {\n ...primitiveUiKit,\n rootClassName: \"dtp-thegridcn\",\n classNames: {\n card: \"hover:bg-cyan-400/10 data-[state=selected]:bg-cyan-400/15\",\n cardGrid: \"bg-transparent\",\n cardItem: \"min-w-0\",\n cardOverlay: \"from-black/95 via-black/75 to-transparent\",\n cardScrollArea: \"bg-transparent\",\n cardSelected: \"bg-cyan-400/15 ring-cyan-300/70\",\n cardUnselected: \"border-cyan-400/35\",\n cardViewport: \"bg-transparent\",\n cellBorder: \"border-cyan-400/16\",\n cellSelected: \"!bg-cyan-400/15 ring-1 ring-inset ring-cyan-300/60\",\n columnGroupHeader: \"bg-cyan-400/10 text-cyan-200\",\n dragActive: \"rounded-md border-dashed border-cyan-300\",\n emptyState: \"border-cyan-400/35 bg-black/80\",\n footer: \"border-cyan-400/40 bg-black/80 text-cyan-50\",\n headerSortIcon: \"text-cyan-100/65\",\n mutedText: \"text-cyan-100/70\",\n paginationSelectTrigger: \"border-cyan-400/45 bg-black/70 text-cyan-50\",\n paginationTotal: \"text-cyan-100/70\",\n pinnedColumn: \"border-cyan-400/25\",\n pinnedUtilityColumn: \"bg-black/80\",\n resizeHandle: \"after:bg-cyan-400/20 hover:after:bg-cyan-300\",\n resizeHandleActive: \"after:bg-cyan-300\",\n row: \"hover:bg-cyan-400/10 data-[state=selected]:!bg-cyan-400/15\",\n rowSelected: \"!bg-cyan-400/15\",\n tableContainer:\n \"border-cyan-400/35 bg-black/72 text-cyan-50 shadow-[0_0_0_1px_rgba(34,211,238,0.08),0_0_26px_rgba(34,211,238,0.08)]\",\n tableScrollArea: \"bg-black/72\",\n tableStickyHeader:\n \"sticky top-0 z-30 bg-black/90 backdrop-blur [&_th]:border-cyan-400/45 [&_th]:bg-black/90\",\n toolbarCompactIconButton: \"size-7\",\n toolbarIconButton: \"text-cyan-100/70 hover:text-cyan-50\",\n toolbarInputButton: \"border-cyan-400/45 bg-black/70 text-cyan-50\",\n },\n Button: GridButton,\n Card: GridCard,\n CardContent: GridCardContent,\n CardHeader: GridCardHeader,\n Checkbox: GridCheckbox,\n DropdownMenuCheckboxItem: GridDropdownMenuCheckboxItem,\n DropdownMenuContent: GridDropdownMenuContent,\n DropdownMenuItem: GridDropdownMenuItem,\n DropdownMenuLabel: GridDropdownMenuLabel,\n DropdownMenuRadioItem: GridDropdownMenuRadioItem,\n DropdownMenuSeparator: GridDropdownMenuSeparator,\n DropdownMenuSubContent: GridDropdownMenuSubContent,\n DropdownMenuSubTrigger: GridDropdownMenuSubTrigger,\n Empty: GridEmpty,\n EmptyDescription: GridEmptyDescription,\n EmptyMedia: GridEmptyMedia,\n EmptyTitle: GridEmptyTitle,\n Input: GridInput,\n InputGroup: GridInputGroup,\n PaginationLink: GridPaginationLink,\n ScrollArea: GridScrollArea,\n ScrollBar: GridScrollBar,\n SelectContent: GridSelectContent,\n SelectItem: GridSelectItem,\n SelectTrigger: GridSelectTrigger,\n Separator: GridSeparator,\n Skeleton: GridSkeleton,\n Table: GridTable,\n TableBody: GridTableBody,\n TableCaption: GridTableCaption,\n TableCell: GridTableCell,\n TableFooter: GridTableFooter,\n TableHead: GridTableHead,\n TableHeader: GridTableHeader,\n TableRow: GridTableRow,\n TooltipContent: GridTooltipContent,\n};\n"]} \ No newline at end of file diff --git a/dist/chunk-4P45F2OY.js b/dist/chunk-4P45F2OY.js deleted file mode 100644 index 47dba7a..0000000 --- a/dist/chunk-4P45F2OY.js +++ /dev/null @@ -1,3 +0,0 @@ -import {a}from'./chunk-XTVBESM5.js';var _=Symbol("data-table-loading-row"),F=50;function U(e,t,n){if(e===true)return Object.fromEntries(n.flatMap(a=>a===t?[]:[[a,true]]));let r={...e};return r[t]?delete r[t]:r[t]=true,r}function z(e){return Array.from({length:e},(t,n)=>({[_]:true,index:n}))}function j(e){return !!(e&&typeof e=="object"&&_ in e)}function G(e){return `__loading__${e}`}function V(e){if(typeof e.meta?.minWidth=="number")return e.meta.minWidth;if(Object.prototype.hasOwnProperty.call(e,"minSize")){let t=e.minSize;if(typeof t=="number")return t}}function A(e){if("columns"in e&&Array.isArray(e.columns))return {...e,columns:e.columns.map(n=>A(n))};let t=e.meta?.filter;return !t||e.filterFn?e:{...e,filterFn:(n,r,a)=>{if(!x(a))return true;let o=n.getValue(r),i=t.getOptionValue?.(o,n.original)??g(o);if(t.type==="multi"||t.type==="faceted")return Array.isArray(a)?a.map(String).includes(i):true;if(t.type==="select"||t.type==="boolean")return i===String(a);if(t.type==="numberRange"){let u=C(a),c=Number(i),p=u.from===""?void 0:Number(u.from),d=u.to===""?void 0:Number(u.to);return Number.isNaN(c)?false:(p===void 0||Number.isNaN(p)||c>=p)&&(d===void 0||Number.isNaN(d)||c<=d)}if(t.type==="dateRange"){let u=C(a),c=k(i);return c?(!u.from||c>=String(u.from))&&(!u.to||c<=String(u.to)):false}let l=i.toLowerCase(),f=String(a).toLowerCase();switch(t.operator??"contains"){case "equals":return l===f;case "startsWith":return l.startsWith(f);case "endsWith":return l.endsWith(f);default:return l.includes(f)}}}}function M(e){let t=new Map,n=(r,a)=>{r.forEach((o,i)=>{if("columns"in o&&o.columns?.length){let l=o;n(o.columns,[...a,{id:D(o),freeReordering:l.freeReordering===true}]);return}t.set(D(o),a);});};return n(e,[]),t}function W(e,t,n){let r=n.get(e)??[],a=n.get(t)??[],o=0;for(;oi.freeReordering)}function S(e){let t=[],n=r=>{r.forEach((a,o)=>{if("columns"in a&&a.columns?.length){n(a.columns);return}t.push({column:a,index:o});});};return n(e),t}function B(e){return e.map(t=>typeof t=="string"?{label:h(t),value:t}:t)}function g(e){if(e==null)return "";if(e instanceof Date)return e.toISOString();if(typeof e=="object")try{return JSON.stringify(e)}catch{return ""}return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"||typeof e=="symbol"?String(e):""}function x(e){return Array.isArray(e)?e.length>0:e&&typeof e=="object"?"from"in e||"to"in e?Object.values(e).some(x):true:e!=null&&e!==""}function C(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t=e;return {...typeof t.from=="string"||typeof t.from=="number"?{from:t.from}:{},...typeof t.to=="string"||typeof t.to=="number"?{to:t.to}:{}}}function k(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.toISOString().slice(0,10);let t=g(e);if(/^\d{4}-\d{2}-\d{2}/.test(t))return t.slice(0,10);let n=Date.parse(t);return Number.isNaN(n)?"":new Date(n).toISOString().slice(0,10)}function $(e){return g(e).trim().toLowerCase()}async function K({csvExport:e,table:t}){if(e===false)return;let n=e===true?{}:e,r=n.filename??"data-table.csv",a=n.scope??"filtered",o=n.columns?new Set(n.columns):void 0,i=t.getVisibleLeafColumns().filter(s=>!O(s.id)&&s.id!=="__spacer__"&&(!o||o.has(s.id))),l=R(t,a),f=[];(n.includeHeaders??true)&&f.push(i.map(s=>typeof s.columnDef.header=="string"?s.columnDef.header:h(s.id)));for(let s of l)f.push(i.map(m=>{let y=s.getValue(m.id);return n.getCellValue?n.getCellValue({row:s.original,rowId:s.id,columnId:m.id,value:y}):y}));let u=n.lineEnding??`\r -`,c=n.escapeFormulaValues??true,p=f.map(s=>s.map(m=>E(m,c)).join(",")).join(u);if(n.onExport){await n.onExport({csv:p,filename:r,rows:l.map(s=>s.original),scope:a});return}if(typeof window>"u")return;let d=new Blob([p],{type:"text/csv;charset=utf-8"}),T=window.URL.createObjectURL(d),b=window.document.createElement("a");b.href=T,b.download=r,b.click(),window.URL.revokeObjectURL(T);}function R(e,t){switch(t){case "page":return e.getRowModel().rows;case "selected":return e.getPrePaginationRowModel().rows.filter(n=>n.getIsSelected());case "all":return e.getCoreRowModel().rows;default:return e.getPrePaginationRowModel().rows}}function E(e,t){let n=g(e);return t&&typeof e=="string"&&/^[\t\r ]*[=+\-@]/.test(e)&&(n=`'${n}`),/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function q(e){let t=[],n=[];for(let{column:r,index:a}of S(e)){let o=D(r);r.meta?.fixed==="left"&&t.push(o),r.meta?.fixed==="right"&&n.push(o);}return {left:t,right:n}}function D(e,t){if(e.id)return e.id;let n=N(e);if(n)return n.replace(/\./g,"_");if(typeof e.header=="string")return e.header;throw new Error("Data table columns using an accessor function or non-string header must define a unique id.")}var L=new Set(["__select__","__expand__","__actions__","__spacer__"]);function H(e){let t=new Set,n=r=>{r.forEach((a,o)=>{let i=D(a);if(L.has(i))throw new Error(`Data table column id "${i}" is reserved for an internal column.`);if(t.has(i))throw new Error(`Duplicate data table column id "${i}".`);t.add(i),"columns"in a&&a.columns?.length&&n(a.columns);});};n(e);}function N(e){if("accessorKey"in e&&typeof e.accessorKey=="string")return e.accessorKey}function Q(e){let t=e.getIsPinned();return t||(e.id==="__select__"||e.id==="__expand__"?"left":e.id==="__actions__"?"right":e.columnDef.meta?.fixed)}function Z(e,t,n){let r=n?.isUtilityColumn??false;return a("sticky backdrop-blur box-border",t.pinnedColumn,!r&&"border-dotted",r?t.pinnedUtilityColumn:void 0,e==="left"?"border-r-1":"border-l")}function O(e){return e==="__select__"||e==="__expand__"||e==="__actions__"}var P=["[data-row-click-ignore='true']","a[href]","button","input","select","summary","textarea","[contenteditable='true']","[role='button']","[role='link']"].join(",");function J(e,t){if(!(e instanceof Element))return false;let n=e.closest(P);return !!(n&&n!==t&&t.contains(n))}function Y(e){switch(e){case "compact":return "h-8 py-1";case "spacious":return "h-14 py-4";default:return}}function X(e){switch(e){case "compact":return "py-1.5";case "spacious":return "py-4";default:return}}function v(e,t,n){let r=e.includes(t)?e.slice():[...e,t],a=r.indexOf(t),o=r.indexOf(n);if(a<0||o<0||a===o)return r;let[i]=r.splice(a,1);return r.splice(o,0,i),r}function h(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,t=>t.toUpperCase())}export{v as A,h as B,F as a,U as b,z as c,j as d,G as e,V as f,A as g,M as h,W as i,S as j,B as k,g as l,x as m,$ as n,K as o,R as p,q,D as r,H as s,N as t,Q as u,Z as v,O as w,J as x,Y as y,X as z};//# sourceMappingURL=chunk-4P45F2OY.js.map -//# sourceMappingURL=chunk-4P45F2OY.js.map \ No newline at end of file diff --git a/dist/chunk-4P45F2OY.js.map b/dist/chunk-4P45F2OY.js.map deleted file mode 100644 index 8f9bc06..0000000 --- a/dist/chunk-4P45F2OY.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/core/data-table/data-table-utils.ts"],"names":["DATA_TABLE_LOADING_ROW","UTILITY_COLUMN_SIZE","toggleDataTableExpandedState","current","rowId","loadedRowIds","loadedRowId","next","createDataTableLoadingRows","count","_","index","isDataTableLoadingRow","row","getDataTableLoadingRowId","getConfiguredColumnMinWidth","column","minSize","decorateFilterableColumn","childColumn","filter","columnId","filterValue","hasFilterValue","value","optionValue","normalizeFilterValue","range","normalizeRangeFilterValue","numericValue","from","to","dateValue","normalizeDateFilterValue","normalizedValue","normalizedQuery","getDataTableColumnGroupPaths","columns","paths","visit","currentColumns","parentPath","group","getColumnId","canReorderDataTableColumn","sourceColumnId","targetColumnId","groupPaths","sourcePath","targetPath","commonLength","getDataTableLeafColumns","leaves","normalizeColumnFilterOptions","options","option","startCase","normalized","timestamp","normalizeDataTableSearchText","exportDataTableCsv","csvExport","table","filename","scope","exportColumnIds","isUtilityColumnId","rows","getDataTableExportRows","csvRows","lineEnding","escapeFormulaValues","csv","escapeCsvCell","blob","url","anchor","text","getInitialColumnPinning","left","right","_index","accessorKey","getAccessorKey","RESERVED_DATA_TABLE_COLUMN_IDS","validateDataTableColumnIds","ids","id","getFixedSide","pinnedSide","getPinnedColumnClassName","side","uiClassNames","isUtilityColumn","cn","DATA_TABLE_INTERACTIVE_TARGET_SELECTOR","isDataTableInteractiveTarget","target","boundary","interactiveTarget","getDensityHeaderClassName","density","getDensityCellClassName","moveColumnInOrder","currentOrder","order","sourceIndex","targetIndex","source","character"],"mappings":"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","file":"chunk-4P45F2OY.js","sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnPinningState,\n ExpandedState,\n Row,\n Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableColumnFilterOption,\n DataTableCsvExportOptions,\n DataTableCsvExportScope,\n DataTableDensity,\n DataTableLabels,\n} from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nconst DATA_TABLE_LOADING_ROW = Symbol(\"data-table-loading-row\");\n\nexport const UTILITY_COLUMN_SIZE = 50;\n\nexport function toggleDataTableExpandedState(\n current: ExpandedState,\n rowId: string,\n loadedRowIds: Array,\n): ExpandedState {\n if (current === true) {\n return Object.fromEntries(\n loadedRowIds.flatMap((loadedRowId) =>\n loadedRowId === rowId ? [] : [[loadedRowId, true]],\n ),\n );\n }\n\n const next = { ...current };\n if (next[rowId]) {\n delete next[rowId];\n } else {\n next[rowId] = true;\n }\n return next;\n}\n\ntype DataTableLoadingRow = {\n [DATA_TABLE_LOADING_ROW]: true;\n index: number;\n};\n\nexport function createDataTableLoadingRows(count: number) {\n return Array.from({ length: count }, (_, index) => {\n return {\n [DATA_TABLE_LOADING_ROW]: true,\n index,\n } as DataTableLoadingRow as TData;\n });\n}\n\nexport function isDataTableLoadingRow(\n row: unknown,\n): row is DataTableLoadingRow {\n return Boolean(\n row &&\n typeof row === \"object\" &&\n DATA_TABLE_LOADING_ROW in (row as Record),\n );\n}\n\nexport function getDataTableLoadingRowId(index: number) {\n return `__loading__${index}`;\n}\n\nexport function getConfiguredColumnMinWidth(\n column: DataTableColumnDef,\n) {\n if (typeof column.meta?.minWidth === \"number\") {\n return column.meta.minWidth;\n }\n\n if (Object.prototype.hasOwnProperty.call(column, \"minSize\")) {\n const minSize = (column as { minSize?: unknown }).minSize;\n\n if (typeof minSize === \"number\") {\n return minSize;\n }\n }\n\n return undefined;\n}\n\nexport function decorateFilterableColumn(\n column: DataTableColumnDef,\n): ColumnDef {\n if (\"columns\" in column && Array.isArray(column.columns)) {\n return {\n ...column,\n columns: column.columns.map((childColumn) =>\n decorateFilterableColumn(\n childColumn as DataTableColumnDef,\n ),\n ),\n };\n }\n\n const filter = column.meta?.filter;\n if (!filter || column.filterFn) {\n return column;\n }\n\n return {\n ...column,\n filterFn: (row, columnId, filterValue) => {\n if (!hasFilterValue(filterValue)) {\n return true;\n }\n\n const value = row.getValue(columnId);\n const optionValue =\n filter.getOptionValue?.(value, row.original) ??\n normalizeFilterValue(value);\n\n if (filter.type === \"multi\" || filter.type === \"faceted\") {\n return Array.isArray(filterValue)\n ? filterValue.map(String).includes(optionValue)\n : true;\n }\n\n if (filter.type === \"select\") {\n return optionValue === String(filterValue);\n }\n\n if (filter.type === \"boolean\") {\n return optionValue === String(filterValue);\n }\n\n if (filter.type === \"numberRange\") {\n const range = normalizeRangeFilterValue(filterValue);\n const numericValue = Number(optionValue);\n const from = range.from === \"\" ? undefined : Number(range.from);\n const to = range.to === \"\" ? undefined : Number(range.to);\n\n if (Number.isNaN(numericValue)) {\n return false;\n }\n\n return (\n (from === undefined || Number.isNaN(from) || numericValue >= from) &&\n (to === undefined || Number.isNaN(to) || numericValue <= to)\n );\n }\n\n if (filter.type === \"dateRange\") {\n const range = normalizeRangeFilterValue(filterValue);\n const dateValue = normalizeDateFilterValue(optionValue);\n\n if (!dateValue) {\n return false;\n }\n\n return (\n (!range.from || dateValue >= String(range.from)) &&\n (!range.to || dateValue <= String(range.to))\n );\n }\n\n const normalizedValue = optionValue.toLowerCase();\n const normalizedQuery = String(filterValue).toLowerCase();\n\n switch (filter.operator ?? \"contains\") {\n case \"equals\":\n return normalizedValue === normalizedQuery;\n case \"startsWith\":\n return normalizedValue.startsWith(normalizedQuery);\n case \"endsWith\":\n return normalizedValue.endsWith(normalizedQuery);\n default:\n return normalizedValue.includes(normalizedQuery);\n }\n },\n };\n}\n\nexport type DataTableLeafColumn = {\n column: DataTableColumnDef;\n index: number;\n};\n\nexport type DataTableColumnGroupPathSegment = {\n id: string;\n freeReordering: boolean;\n};\n\nexport type DataTableColumnGroupPaths = ReadonlyMap<\n string,\n ReadonlyArray\n>;\n\n/**\n * Returns the nested shared-header path for every leaf. The path deliberately\n * uses stable column ids rather than header text so it also works with custom\n * header render functions.\n */\nexport function getDataTableColumnGroupPaths(\n columns: Array>,\n): DataTableColumnGroupPaths {\n const paths = new Map<\n string,\n ReadonlyArray\n >();\n\n const visit = (\n currentColumns: Array>,\n parentPath: ReadonlyArray,\n ) => {\n currentColumns.forEach((column, index) => {\n if (\"columns\" in column && column.columns?.length) {\n const group = column as DataTableColumnDef & {\n freeReordering?: boolean;\n };\n visit(column.columns, [\n ...parentPath,\n {\n id: getColumnId(column, index),\n freeReordering: group.freeReordering === true,\n },\n ]);\n return;\n }\n\n paths.set(getColumnId(column, index), parentPath);\n });\n };\n\n visit(columns, []);\n return paths;\n}\n\n/**\n * Locked groups preserve their shared heading by default. Reordering within a\n * common group path is always allowed; leaving or entering a group requires\n * each crossed group to explicitly opt into `freeReordering`.\n */\nexport function canReorderDataTableColumn(\n sourceColumnId: string,\n targetColumnId: string,\n groupPaths: DataTableColumnGroupPaths,\n) {\n const sourcePath = groupPaths.get(sourceColumnId) ?? [];\n const targetPath = groupPaths.get(targetColumnId) ?? [];\n let commonLength = 0;\n\n while (\n commonLength < sourcePath.length &&\n commonLength < targetPath.length &&\n sourcePath[commonLength]?.id === targetPath[commonLength]?.id\n ) {\n commonLength += 1;\n }\n\n return [\n ...sourcePath.slice(commonLength),\n ...targetPath.slice(commonLength),\n ].every((group) => group.freeReordering);\n}\n\nexport function getDataTableLeafColumns(\n columns: Array>,\n) {\n const leaves: Array> = [];\n\n const visit = (currentColumns: Array>) => {\n currentColumns.forEach((column, index) => {\n if (\"columns\" in column && column.columns?.length) {\n visit(column.columns);\n return;\n }\n\n leaves.push({ column, index });\n });\n };\n\n visit(columns);\n return leaves;\n}\n\nexport function normalizeColumnFilterOptions(\n options: Array,\n) {\n return options.map((option) =>\n typeof option === \"string\"\n ? { label: startCase(option), value: option }\n : option,\n );\n}\n\nexport function normalizeFilterValue(value: unknown) {\n if (value == null) {\n return \"\";\n }\n\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (typeof value === \"object\") {\n try {\n return JSON.stringify(value);\n } catch {\n return \"\";\n }\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\" ||\n typeof value === \"symbol\"\n ) {\n return String(value);\n }\n\n return \"\";\n}\n\nexport function hasFilterValue(value: unknown) {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n\n if (value && typeof value === \"object\") {\n if (\"from\" in value || \"to\" in value) {\n return Object.values(value).some(hasFilterValue);\n }\n\n return true;\n }\n\n return value !== undefined && value !== null && value !== \"\";\n}\n\nfunction normalizeRangeFilterValue(value: unknown): {\n from?: string | number;\n to?: string | number;\n} {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return {};\n }\n\n const range = value as { from?: unknown; to?: unknown };\n return {\n ...(typeof range.from === \"string\" || typeof range.from === \"number\"\n ? { from: range.from }\n : {}),\n ...(typeof range.to === \"string\" || typeof range.to === \"number\"\n ? { to: range.to }\n : {}),\n };\n}\n\nfunction normalizeDateFilterValue(value: unknown) {\n if (value instanceof Date && !Number.isNaN(value.getTime())) {\n return value.toISOString().slice(0, 10);\n }\n\n const normalized = normalizeFilterValue(value);\n if (/^\\d{4}-\\d{2}-\\d{2}/.test(normalized)) {\n return normalized.slice(0, 10);\n }\n\n const timestamp = Date.parse(normalized);\n return Number.isNaN(timestamp)\n ? \"\"\n : new Date(timestamp).toISOString().slice(0, 10);\n}\n\nexport function dataTableGlobalFilterFn(\n row: Row,\n columnId: string,\n filterValue: unknown,\n) {\n const normalizedQuery = normalizeFilterValue(filterValue)\n .trim()\n .toLowerCase();\n\n if (!normalizedQuery) {\n return true;\n }\n\n return normalizeFilterValue(row.getValue(columnId))\n .toLowerCase()\n .includes(normalizedQuery);\n}\n\nexport function normalizeDataTableSearchText(value: unknown) {\n return normalizeFilterValue(value).trim().toLowerCase();\n}\n\nexport async function exportDataTableCsv({\n csvExport,\n table,\n}: {\n csvExport: boolean | DataTableCsvExportOptions;\n table: TanStackTable;\n labels: DataTableLabels;\n}) {\n if (csvExport === false) {\n return;\n }\n\n const options: DataTableCsvExportOptions =\n csvExport === true ? {} : csvExport;\n const filename = options.filename ?? \"data-table.csv\";\n const scope = options.scope ?? \"filtered\";\n const exportColumnIds = options.columns\n ? new Set(options.columns)\n : undefined;\n const columns = table\n .getVisibleLeafColumns()\n .filter(\n (column) =>\n !isUtilityColumnId(column.id) &&\n column.id !== \"__spacer__\" &&\n (!exportColumnIds || exportColumnIds.has(column.id)),\n );\n const rows = getDataTableExportRows(table, scope);\n const csvRows: Array> = [];\n\n if (options.includeHeaders ?? true) {\n csvRows.push(\n columns.map((column) =>\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : startCase(column.id),\n ),\n );\n }\n\n for (const row of rows) {\n csvRows.push(\n columns.map((column) => {\n const value = row.getValue(column.id);\n return options.getCellValue\n ? options.getCellValue({\n row: row.original,\n rowId: row.id,\n columnId: column.id,\n value,\n })\n : value;\n }),\n );\n }\n\n const lineEnding = options.lineEnding ?? \"\\r\\n\";\n const escapeFormulaValues = options.escapeFormulaValues ?? true;\n const csv = csvRows\n .map((row) =>\n row\n .map((value) => escapeCsvCell(value, escapeFormulaValues))\n .join(\",\"),\n )\n .join(lineEnding);\n\n if (options.onExport) {\n await options.onExport({\n csv,\n filename,\n rows: rows.map((row) => row.original),\n scope,\n });\n return;\n }\n\n if (typeof window === \"undefined\") {\n return;\n }\n\n const blob = new Blob([csv], { type: \"text/csv;charset=utf-8\" });\n const url = window.URL.createObjectURL(blob);\n const anchor = window.document.createElement(\"a\");\n anchor.href = url;\n anchor.download = filename;\n anchor.click();\n window.URL.revokeObjectURL(url);\n}\n\nexport function getDataTableExportRows(\n table: TanStackTable,\n scope: DataTableCsvExportScope,\n) {\n switch (scope) {\n case \"page\":\n return table.getRowModel().rows;\n case \"selected\":\n return table\n .getPrePaginationRowModel()\n .rows.filter((row) => row.getIsSelected());\n case \"all\":\n return table.getCoreRowModel().rows;\n default:\n return table.getPrePaginationRowModel().rows;\n }\n}\n\nfunction escapeCsvCell(value: unknown, escapeFormulaValues: boolean) {\n let text = normalizeFilterValue(value);\n if (\n escapeFormulaValues &&\n typeof value === \"string\" &&\n /^[\\t\\r ]*[=+\\-@]/.test(value)\n ) {\n text = `'${text}`;\n }\n if (/[\",\\n\\r]/.test(text)) {\n return `\"${text.replace(/\"/g, '\"\"')}\"`;\n }\n return text;\n}\n\nexport function getInitialColumnPinning(\n columns: Array>,\n): ColumnPinningState {\n const left: Array = [];\n const right: Array = [];\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n const columnId = getColumnId(column, index);\n if (column.meta?.fixed === \"left\") {\n left.push(columnId);\n }\n if (column.meta?.fixed === \"right\") {\n right.push(columnId);\n }\n }\n\n return { left, right };\n}\n\nexport function getColumnId(\n column: DataTableColumnDef,\n _index?: number,\n) {\n if (column.id) {\n return column.id;\n }\n\n const accessorKey = getAccessorKey(column);\n if (accessorKey) {\n return accessorKey.replace(/\\./g, \"_\");\n }\n\n if (typeof column.header === \"string\") {\n return column.header;\n }\n\n throw new Error(\n \"Data table columns using an accessor function or non-string header must define a unique id.\",\n );\n}\n\nconst RESERVED_DATA_TABLE_COLUMN_IDS = new Set([\n \"__select__\",\n \"__expand__\",\n \"__actions__\",\n \"__spacer__\",\n]);\n\nexport function validateDataTableColumnIds(\n columns: Array>,\n) {\n const ids = new Set();\n\n const visit = (currentColumns: Array>) => {\n currentColumns.forEach((column, index) => {\n const id = getColumnId(column, index);\n if (RESERVED_DATA_TABLE_COLUMN_IDS.has(id)) {\n throw new Error(\n `Data table column id \"${id}\" is reserved for an internal column.`,\n );\n }\n if (ids.has(id)) {\n throw new Error(`Duplicate data table column id \"${id}\".`);\n }\n ids.add(id);\n\n if (\"columns\" in column && column.columns?.length) {\n visit(column.columns);\n }\n });\n };\n\n visit(columns);\n}\n\nexport function getAccessorKey(\n column: DataTableColumnDef,\n) {\n if (\"accessorKey\" in column && typeof column.accessorKey === \"string\") {\n return column.accessorKey;\n }\n\n return undefined;\n}\n\nexport function getFixedSide(column: Column) {\n const pinnedSide = column.getIsPinned();\n if (pinnedSide) {\n return pinnedSide;\n }\n\n if (column.id === \"__select__\") {\n return \"left\" as const;\n }\n\n if (column.id === \"__expand__\") {\n return \"left\" as const;\n }\n\n if (column.id === \"__actions__\") {\n return \"right\" as const;\n }\n\n const meta = (column.columnDef as DataTableColumnDef).meta;\n return meta?.fixed;\n}\n\nexport function getPinnedColumnClassName(\n side: \"left\" | \"right\",\n uiClassNames: DataTableUiClassNames,\n options?: { isUtilityColumn?: boolean },\n) {\n const isUtilityColumn = options?.isUtilityColumn ?? false;\n return cn(\n \"sticky backdrop-blur box-border\",\n uiClassNames.pinnedColumn,\n !isUtilityColumn && \"border-dotted\",\n isUtilityColumn ? uiClassNames.pinnedUtilityColumn : undefined,\n side === \"left\" ? \"border-r-1\" : \"border-l\",\n );\n}\n\nexport function isUtilityColumnId(columnId: string) {\n return (\n columnId === \"__select__\" ||\n columnId === \"__expand__\" ||\n columnId === \"__actions__\"\n );\n}\n\nconst DATA_TABLE_INTERACTIVE_TARGET_SELECTOR = [\n \"[data-row-click-ignore='true']\",\n \"a[href]\",\n \"button\",\n \"input\",\n \"select\",\n \"summary\",\n \"textarea\",\n \"[contenteditable='true']\",\n \"[role='button']\",\n \"[role='link']\",\n].join(\",\");\n\nexport function isDataTableInteractiveTarget(\n target: EventTarget | null,\n boundary: Element,\n) {\n if (!(target instanceof Element)) {\n return false;\n }\n\n const interactiveTarget = target.closest(\n DATA_TABLE_INTERACTIVE_TARGET_SELECTOR,\n );\n return Boolean(\n interactiveTarget &&\n interactiveTarget !== boundary &&\n boundary.contains(interactiveTarget),\n );\n}\n\nexport function getDensityHeaderClassName(density: DataTableDensity) {\n switch (density) {\n case \"compact\":\n return \"h-8 py-1\";\n case \"spacious\":\n return \"h-14 py-4\";\n case \"comfortable\":\n default:\n return undefined;\n }\n}\n\nexport function getDensityCellClassName(density: DataTableDensity) {\n switch (density) {\n case \"compact\":\n return \"py-1.5\";\n case \"spacious\":\n return \"py-4\";\n case \"comfortable\":\n default:\n return undefined;\n }\n}\n\nexport function moveColumnInOrder(\n currentOrder: Array,\n sourceColumnId: string,\n targetColumnId: string,\n) {\n const order = currentOrder.includes(sourceColumnId)\n ? currentOrder.slice()\n : [...currentOrder, sourceColumnId];\n const sourceIndex = order.indexOf(sourceColumnId);\n const targetIndex = order.indexOf(targetColumnId);\n\n if (sourceIndex < 0 || targetIndex < 0 || sourceIndex === targetIndex) {\n return order;\n }\n\n const [source] = order.splice(sourceIndex, 1);\n order.splice(targetIndex, 0, source);\n return order;\n}\n\nexport function startCase(value: string) {\n return value\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]+/g, \" \")\n .replace(/\\s+/g, \" \")\n .trim()\n .replace(/\\b\\w/g, (character) => character.toUpperCase());\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-7FUCHMMB.js.map b/dist/chunk-7FUCHMMB.js.map deleted file mode 100644 index 254125f..0000000 --- a/dist/chunk-7FUCHMMB.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/components/ui/button.tsx","../src/components/ui/separator.tsx","../src/components/ui/button-group.tsx","../src/components/ui/card.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/empty.tsx","../src/components/ui/input-base.ts","../src/components/ui/input-group.tsx","../src/components/ui/input.tsx","../src/components/ui/pagination.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/select.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/table.tsx","../src/components/ui/tooltip.tsx","../src/core/primitive-ui-kit.ts"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn","Separator","orientation","decorative","SeparatorPrimitive","buttonGroupVariants","ButtonGroup","ButtonGroupText","ButtonGroupSeparator","Card","CardHeader","CardTitle","CardDescription","CardAction","CardContent","CardFooter","Checkbox","CheckboxPrimitive","IconCheck","DropdownMenu","DropdownMenuPrimitive","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","align","sideOffset","DropdownMenuGroup","DropdownMenuItem","inset","DropdownMenuCheckboxItem","children","checked","jsxs","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","DropdownMenuSubTrigger","IconChevronRight","DropdownMenuSubContent","Empty","EmptyHeader","emptyMediaVariants","EmptyMedia","EmptyTitle","EmptyDescription","EmptyContent","inputClassName","InputGroup","InputGroupInput","Tt","ref","InputGroupAddon","InputGroupText","Input","passwordToggle","type","showPassword","setShowPassword","event","current","IconEyeOff","IconEye","Pagination","PaginationContent","PaginationItem","PaginationLink","isActive","disabled","PaginationPrevious","showText","text","IconChevronLeft","PaginationFirst","IconChevronsLeft","PaginationNext","PaginationLast","IconChevronsRight","PaginationEllipsis","IconDots","ScrollArea","ScrollAreaPrimitive","ScrollBar","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","IconSelector","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectLabel","SelectItem","SelectSeparator","IconChevronUp","IconChevronDown","Skeleton","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","TooltipProvider","delayDuration","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","primitiveUiKit"],"mappings":"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","file":"chunk-7FUCHMMB.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:outline-none active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"\",\n outline: \"\",\n secondary: \"\",\n ghost: \"\",\n destructive: \"\",\n link: \"underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n \n );\n}\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport { Separator };\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Separator } from \"./separator\";\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n },\n);\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps) {\n return (\n \n );\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : \"div\";\n\n return (\n \n );\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n","import * as React from \"react\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\nimport { IconCheck } from \"../../core/icons\";\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n svg]:size-3.5\"\n >\n \n \n \n );\n}\n\nexport { Checkbox };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\nimport { IconCheck, IconChevronRight } from \"../../core/icons\";\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuContent({\n className,\n align = \"start\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n \n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n}) {\n return (\n \n \n \n \n \n \n {children}\n \n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n}) {\n return (\n \n \n \n \n \n \n {children}\n \n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n}) {\n return (\n \n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n \n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n}) {\n return (\n \n {children}\n \n \n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n","import { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"flex size-8 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps) {\n return (\n \n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n};\n","export const inputClassName =\n \"h-8 w-full min-w-0 rounded-lg border px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-70 focus-visible:outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 @min-[768px]/data-table:text-sm\";\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { inputClassName } from \"./input-base\";\n\ntype InputGroupAddonAlign =\n | \"inline-start\"\n | \"inline-end\"\n | \"block-start\"\n | \"block-end\";\n\nfunction InputGroup({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n [data-slot=input-group-addon][data-align=block-start]]:flex-col has-[>[data-slot=input-group-addon][data-align=block-end]]:flex-col has-[>[data-slot=input-group-control]:disabled]:cursor-not-allowed has-[>[data-slot=input-group-control]:disabled]:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst InputGroupInput = React.forwardRef<\n HTMLInputElement,\n React.ComponentProps<\"input\">\n>(function InputGroupInput({ className, ...props }, ref) {\n return (\n \n );\n});\n\ntype InputGroupAddonProps = React.ComponentProps<\"div\"> & {\n align?: InputGroupAddonAlign;\n};\n\nfunction InputGroupAddon({\n align = \"inline-start\",\n className,\n ...props\n}: InputGroupAddonProps) {\n return (\n \n );\n}\n\nfunction InputGroupText({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n \n );\n}\n\nInputGroupInput.displayName = \"InputGroupInput\";\n\nexport { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText };\n","import * as React from \"react\";\nimport { IconEye, IconEyeOff } from \"../../core/icons\";\n\nimport { Button } from \"./button\";\nimport { inputClassName } from \"./input-base\";\nimport { InputGroup, InputGroupAddon, InputGroupInput } from \"./input-group\";\nimport { cn } from \"../../lib/utils\";\n\ntype InputProps = React.ComponentProps<\"input\"> & {\n passwordToggle?: boolean;\n};\n\nconst Input = React.forwardRef(function Input(\n { className, passwordToggle = false, type, ...props },\n ref,\n) {\n const [showPassword, setShowPassword] = React.useState(false);\n const canTogglePassword = passwordToggle && type === \"password\";\n\n if (!canTogglePassword) {\n return (\n \n );\n }\n\n return (\n \n \n \n event.preventDefault()}\n onClick={() => setShowPassword((current) => !current)}\n >\n {showPassword ? (\n \n ) : (\n \n )}\n \n \n \n );\n});\n\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"./button\";\nimport {\n IconChevronsLeft,\n IconChevronsRight,\n IconChevronLeft,\n IconChevronRight,\n IconDots,\n} from \"../../core/icons\";\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n \n );\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n \n );\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return
  • ;\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n disabled?: boolean;\n variant?: React.ComponentProps[\"variant\"];\n} & Pick, \"size\"> &\n React.ComponentProps<\"a\">;\n\nfunction PaginationLink({\n className,\n isActive,\n disabled = false,\n variant,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n \n \n \n );\n}\n\nfunction PaginationPrevious({\n className,\n disabled,\n showText = true,\n size = \"default\",\n text = \"Previous\",\n ...props\n}: React.ComponentProps & {\n showText?: boolean;\n text?: string;\n}) {\n return (\n \n \n {showText ? (\n {text}\n ) : null}\n \n );\n}\n\nfunction PaginationFirst({\n className,\n disabled,\n showText = true,\n size = \"default\",\n text = \"First\",\n ...props\n}: React.ComponentProps & {\n showText?: boolean;\n text?: string;\n}) {\n return (\n \n \n {showText ? (\n {text}\n ) : null}\n \n );\n}\n\nfunction PaginationNext({\n className,\n disabled,\n showText = true,\n size = \"default\",\n text = \"Next\",\n ...props\n}: React.ComponentProps & {\n showText?: boolean;\n text?: string;\n}) {\n return (\n \n {showText ? (\n {text}\n ) : null}\n \n \n );\n}\n\nfunction PaginationLast({\n className,\n disabled,\n showText = true,\n size = \"default\",\n text = \"Last\",\n ...props\n}: React.ComponentProps & {\n showText?: boolean;\n text?: string;\n}) {\n return (\n \n {showText ? (\n {text}\n ) : null}\n \n \n );\n}\n\nfunction PaginationEllipsis({\n className,\n text = \"More pages\",\n ...props\n}: React.ComponentProps<\"span\"> & { text?: string }) {\n return (\n \n \n {text}\n \n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n};\n","import * as React from \"react\";\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n \n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n );\n}\n\nexport { ScrollArea, ScrollBar };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\nimport {\n IconSelector,\n IconCheck,\n IconChevronUp,\n IconChevronDown,\n} from \"../../core/icons\";\n\nfunction Select({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction SelectGroup({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n \n {children}\n \n \n \n \n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n {children}\n \n \n \n \n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","import { cn } from \"../../lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nexport { Skeleton };\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n \n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n \n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n \n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n \n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n \n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n \n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n \n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n","import type { DataTableUiKit } from \"./ui-kit\";\nimport { Button } from \"../components/ui/button\";\nimport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n} from \"../components/ui/button-group\";\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"../components/ui/card\";\nimport { Checkbox } from \"../components/ui/checkbox\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../components/ui/dropdown-menu\";\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"../components/ui/empty\";\nimport { Input } from \"../components/ui/input\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n InputGroupText,\n} from \"../components/ui/input-group\";\nimport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"../components/ui/pagination\";\nimport { ScrollArea, ScrollBar } from \"../components/ui/scroll-area\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n} from \"../components/ui/select\";\nimport { Separator } from \"../components/ui/separator\";\nimport { Skeleton } from \"../components/ui/skeleton\";\nimport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../components/ui/table\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../components/ui/tooltip\";\n\nexport const primitiveUiKit: DataTableUiKit = {\n Button,\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n Checkbox,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n InputGroupText,\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n ScrollArea,\n ScrollBar,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n Separator,\n Skeleton,\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n};\n\nexport {\n Button,\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n Checkbox,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n InputGroupText,\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n ScrollArea,\n ScrollBar,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n Separator,\n Skeleton,\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n};\n"]} \ No newline at end of file diff --git a/dist/chunk-B6JTUAWE.js b/dist/chunk-B6JTUAWE.js new file mode 100644 index 0000000..560a56c --- /dev/null +++ b/dist/chunk-B6JTUAWE.js @@ -0,0 +1,2 @@ +import {a}from'./chunk-EJHT5JBZ.js';import {a as a$2}from'./chunk-O6MUTKGE.js';import {a as a$1}from'./chunk-XTVBESM5.js';import*as f from'react';import {useVirtualizer}from'@tanstack/react-virtual';import {jsxs,jsx}from'react/jsx-runtime';function ct({cardClassName:r,cardGridClassName:o,cardSizing:E,cardRenderer:N,containerWidth:V,currentRowSelection:z,currentDetailExpanded:M,DataTableCardView:k,DataTableEmptyState:A,dragAndDrop:c,editableRows:P,editingRowId:I,emptyNode:H,enableRowSelection:_,flexGrow:g,getRowClassName:B,hasCardTitle:K,infiniteScroll:O,localSearchValue:h,onRowClick:j,renderedRows:e,detailPanel:U,resolvedLabels:n,resolvedLoadingRowCount:Y,rowActions:$=[],ScrollArea:q,scrollbarVisibility:F,sentinelRef:J,setCurrentDetailExpanded:Q,setCurrentRowSelection:X,setEditingRowId:Z,shouldRenderInitialLoading:m,stateOverlayNode:G,tableContainerClassName:L,uiClassNames:p,virtualization:R}){let v=m||e.length>0,x=f.useRef(null),{viewportElement:D,viewportHeight:W}=a(x,v),l=typeof R=="object"?R.card:void 0,T=!m&&e.length>0&&l?.enabled===true,i=nt(l?.lanes,V),tt=Math.ceil(e.length/i),b=T&&!!D&&W>0,at=f.useCallback(t=>e[t*i]?.id??t,[i,e]),w=useVirtualizer({count:T?tt:0,enabled:b,estimateSize:()=>l?.estimateCardHeight??280,getItemKey:at,getScrollElement:()=>D,overscan:l?.overscan??4}),et=b?w.getVirtualItems():[],C=(t,s)=>jsx(k,{rows:t,cardRenderer:N,cardGridClassName:o,cardClassName:r,cardSizing:E,rowActions:$,editableRows:P,detailPanel:U,detailExpanded:M,onDetailExpandedChange:Q,hasCardTitle:K,rowSelection:z,onRowSelectionChange:X,enableRowSelection:_,editingRowId:I,onEditingRowIdChange:Z,getRowClassName:B,onRowClick:j,getRowDraggable:c?.getRowDraggable,onRowDragStart:c?.onRowDragStart,onRowDragEnd:c?.onRowDragEnd,isLoading:s?.isLoading,loadingRowCount:s?.loadingRowCount,labels:n});return jsxs("div",{ref:x,"data-dtp-slot":"data-table-card-shell",className:a$1("relative box-border border-2 border-transparent transition-colors",g?"flex min-h-0 flex-1 flex-col":"h-full",c?.isDragging&&(p.dragActive??"rounded-md border-dashed")),children:[jsx(q,{type:F,className:a$1(g?"min-h-0 flex-1":"h-full",p.cardScrollArea,L),children:jsxs("div",{"data-dtp-slot":"data-table-card-viewport",className:a$1("flex min-h-full min-w-0 flex-col",g&&"min-h-0 flex-1",p.cardViewport),children:[v?m?C([],{isLoading:true,loadingRowCount:Y}):b?jsx("div",{"data-dtp-slot":"data-table-card-virtualizer",style:{height:w.getTotalSize(),position:"relative",width:"100%"},children:et.map(t=>{let s=t.index*i,ot=e.slice(s,s+i);return jsx("div",{"data-index":t.index,ref:w.measureElement,style:{left:0,position:"absolute",top:0,transform:`translateY(${t.start}px)`,width:"100%"},children:C(ot)},t.key)})}):C(e.slice(0,Math.max(1,Math.floor(l?.fallbackCardCount??12)))):jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center p-4",children:H??jsx(A,{title:h?n.noMatchingRowsTitle:n.noRowsTitle,description:h?n.noMatchingRowsDescription:n.noRowsDescription})}),O?.enabled&&!m?jsx("div",{className:"shrink-0 px-4 pb-4",children:jsx("div",{ref:J,className:"h-4 w-full"})}):null]})}),G]})}function nt(r,o){return typeof r=="number"?Math.max(1,Math.floor(r)):r!=="auto"?1:o>=a$2["2xl"]?5:o>=a$2.xl?4:o>=a$2.lg?3:o>=a$2.sm?2:1}export{ct as a};//# sourceMappingURL=chunk-B6JTUAWE.js.map +//# sourceMappingURL=chunk-B6JTUAWE.js.map \ No newline at end of file diff --git a/dist/chunk-B6JTUAWE.js.map b/dist/chunk-B6JTUAWE.js.map new file mode 100644 index 0000000..80e7203 --- /dev/null +++ b/dist/chunk-B6JTUAWE.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/core/data-table/data-table-virtual-card-panel.tsx"],"names":["DataTableVirtualCardPanel","cardClassName","cardGridClassName","cardSizing","cardRenderer","containerWidth","currentRowSelection","currentDetailExpanded","DataTableCardView","DataTableEmptyState","dragAndDrop","editableRows","editingRowId","emptyNode","enableRowSelection","flexGrow","getRowClassName","hasCardTitle","infiniteScroll","localSearchValue","onRowClick","renderedRows","detailPanel","resolvedLabels","resolvedLoadingRowCount","rowActions","ScrollArea","scrollbarVisibility","sentinelRef","setCurrentDetailExpanded","setCurrentRowSelection","setEditingRowId","shouldRenderInitialLoading","stateOverlayNode","tableContainerClassName","uiClassNames","virtualization","shouldRenderCards","cardScrollContainerRef","viewportElement","viewportHeight","useDataTableScrollViewport","virtualizationConfig","enableCardVirtualization","lanes","resolveCardVirtualizationLanes","virtualRowCount","shouldUseVirtualCardRows","getItemKey","index","cardVirtualizer","useVirtualizer","virtualCardRows","renderCardView","rows","options","jsx","jsxs","cn","virtualRow","startIndex","configuredLanes","DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS"],"mappings":"gPAQO,SAASA,EAAAA,CAAiC,CAC/C,aAAA,CAAAC,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,mBAAA,CAAAC,CAAAA,CACA,qBAAA,CAAAC,CAAAA,CACA,kBAAAC,CAAAA,CACA,mBAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,kBAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,EACA,eAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,eAAAC,CAAAA,CACA,uBAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CAAa,EAAC,CACd,UAAA,CAAAC,CAAAA,CACA,mBAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,wBAAA,CAAAC,EACA,sBAAA,CAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,0BAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,uBAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CACF,EAAmC,CACjC,IAAMC,CAAAA,CAAoBL,CAAAA,EAA8BX,CAAAA,CAAa,MAAA,CAAS,CAAA,CACxEiB,CAAAA,CAA+B,CAAA,CAAA,MAAA,CAA8B,IAAI,CAAA,CACjE,CAAE,eAAA,CAAAC,CAAAA,CAAiB,eAAAC,CAAe,CAAA,CAAIC,CAAAA,CAC1CH,CAAAA,CACAD,CACF,CAAA,CACMK,CAAAA,CACJ,OAAON,CAAAA,EAAmB,QAAA,CAAWA,CAAAA,CAAe,IAAA,CAAO,MAAA,CACvDO,CAAAA,CACJ,CAACX,CAAAA,EACDX,CAAAA,CAAa,MAAA,CAAS,CAAA,EACtBqB,CAAAA,EAAsB,OAAA,GAAY,IAAA,CAC9BE,CAAAA,CAAQC,EAAAA,CACZH,CAAAA,EAAsB,KAAA,CACtBrC,CACF,CAAA,CACMyC,EAAAA,CAAkB,KAAK,IAAA,CAAKzB,CAAAA,CAAa,MAAA,CAASuB,CAAK,CAAA,CACvDG,CAAAA,CACJJ,CAAAA,EAA4B,CAAA,CAAQJ,CAAAA,EAAoBC,CAAAA,CAAiB,CAAA,CACrEQ,EAAAA,CAAmB,CAAA,CAAA,WAAA,CACtBC,CAAAA,EAAkB5B,EAAa4B,CAAAA,CAAQL,CAAK,CAAA,EAAG,EAAA,EAAMK,CAAAA,CACtD,CAACL,CAAAA,CAAOvB,CAAY,CACtB,CAAA,CAEM6B,CAAAA,CAAkBC,cAAAA,CAAe,CACrC,KAAA,CAAOR,EAA2BG,EAAAA,CAAkB,CAAA,CACpD,OAAA,CAASC,CAAAA,CACT,YAAA,CAAc,IAAML,CAAAA,EAAsB,kBAAA,EAAsB,GAAA,CAChE,UAAA,CAAAM,EAAAA,CACA,gBAAA,CAAkB,IAAMT,CAAAA,CACxB,SAAUG,CAAAA,EAAsB,QAAA,EAAY,CAC9C,CAAC,CAAA,CACKU,EAAAA,CAAkBL,CAAAA,CACpBG,CAAAA,CAAgB,eAAA,EAAgB,CAChC,EAAC,CAECG,CAAAA,CAAiB,CACrBC,EACAC,CAAAA,GAKAC,GAAAA,CAAChD,CAAAA,CAAA,CACC,IAAA,CAAM8C,CAAAA,CACN,YAAA,CAAclD,CAAAA,CACd,iBAAA,CAAmBF,CAAAA,CACnB,aAAA,CAAeD,CAAAA,CACf,UAAA,CAAYE,CAAAA,CACZ,WAAYsB,CAAAA,CACZ,YAAA,CAAcd,CAAAA,CACd,WAAA,CAAaW,CAAAA,CACb,cAAA,CAAgBf,CAAAA,CAChB,sBAAA,CAAwBsB,CAAAA,CACxB,YAAA,CAAcZ,CAAAA,CACd,YAAA,CAAcX,CAAAA,CACd,oBAAA,CAAsBwB,CAAAA,CACtB,kBAAA,CAAoBhB,CAAAA,CACpB,YAAA,CAAcF,CAAAA,CACd,oBAAA,CAAsBmB,CAAAA,CACtB,eAAA,CAAiBf,CAAAA,CACjB,UAAA,CAAYI,CAAAA,CACZ,eAAA,CAAiBV,CAAAA,EAAa,eAAA,CAC9B,cAAA,CAAgBA,CAAAA,EAAa,eAC7B,YAAA,CAAcA,CAAAA,EAAa,YAAA,CAC3B,SAAA,CAAW6C,CAAAA,EAAS,SAAA,CACpB,eAAA,CAAiBA,CAAAA,EAAS,eAAA,CAC1B,MAAA,CAAQhC,CAAAA,CACV,CAAA,CAGF,OACEkC,IAAAA,CAAC,OACC,GAAA,CAAKnB,CAAAA,CACL,eAAA,CAAc,uBAAA,CACd,SAAA,CAAWoB,GAAAA,CACT,mEAAA,CACA3C,CAAAA,CAAW,8BAAA,CAAiC,QAAA,CAC5CL,CAAAA,EAAa,UAAA,GACVyB,CAAAA,CAAa,UAAA,EAAc,2BAChC,CAAA,CAEA,QAAA,CAAA,CAAAqB,GAAAA,CAAC9B,CAAAA,CAAA,CACC,IAAA,CAAMC,CAAAA,CACN,SAAA,CAAW+B,GAAAA,CACT3C,CAAAA,CAAW,gBAAA,CAAmB,QAAA,CAC9BoB,CAAAA,CAAa,cAAA,CACbD,CACF,CAAA,CAEA,QAAA,CAAAuB,IAAAA,CAAC,KAAA,CAAA,CACC,eAAA,CAAc,0BAAA,CACd,SAAA,CAAWC,GAAAA,CACT,kCAAA,CACA3C,CAAAA,EAAY,gBAAA,CACZoB,CAAAA,CAAa,YACf,CAAA,CAEC,UAAAE,CAAAA,CACCL,CAAAA,CACEqB,CAAAA,CAAe,EAAC,CAAG,CACjB,SAAA,CAAW,IAAA,CACX,eAAA,CAAiB7B,CACnB,CAAC,CAAA,CACCuB,CAAAA,CACFS,GAAAA,CAAC,OACC,eAAA,CAAc,6BAAA,CACd,KAAA,CAAO,CACL,MAAA,CAAQN,CAAAA,CAAgB,YAAA,EAAa,CACrC,QAAA,CAAU,UAAA,CACV,KAAA,CAAO,MACT,CAAA,CAEC,QAAA,CAAAE,GAAgB,GAAA,CAAKO,CAAAA,EAAe,CACnC,IAAMC,CAAAA,CAAaD,CAAAA,CAAW,KAAA,CAAQf,CAAAA,CAChCU,EAAAA,CAAOjC,CAAAA,CAAa,KAAA,CACxBuC,CAAAA,CACAA,CAAAA,CAAahB,CACf,CAAA,CAEA,OACEY,GAAAA,CAAC,KAAA,CAAA,CAEC,YAAA,CAAYG,CAAAA,CAAW,KAAA,CACvB,GAAA,CAAKT,CAAAA,CAAgB,cAAA,CACrB,KAAA,CAAO,CACL,IAAA,CAAM,CAAA,CACN,QAAA,CAAU,UAAA,CACV,IAAK,CAAA,CACL,SAAA,CAAW,CAAA,WAAA,EAAcS,CAAAA,CAAW,KAAK,CAAA,GAAA,CAAA,CACzC,KAAA,CAAO,MACT,CAAA,CAEC,QAAA,CAAAN,CAAAA,CAAeC,EAAI,CAAA,CAAA,CAXfK,CAAAA,CAAW,GAYlB,CAEJ,CAAC,CAAA,CACH,CAAA,CAEAN,CAAAA,CACEhC,CAAAA,CAAa,KAAA,CACX,CAAA,CACA,IAAA,CAAK,GAAA,CACH,CAAA,CACA,IAAA,CAAK,KAAA,CACHqB,CAAAA,EAAsB,mBAAqB,EAC7C,CACF,CACF,CACF,CAAA,CAGFc,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,qDAAA,CACZ,QAAA,CAAA3C,CAAAA,EACC2C,GAAAA,CAAC/C,CAAAA,CAAA,CACC,MACEU,CAAAA,CACII,CAAAA,CAAe,mBAAA,CACfA,CAAAA,CAAe,WAAA,CAErB,WAAA,CACEJ,CAAAA,CACII,CAAAA,CAAe,yBAAA,CACfA,CAAAA,CAAe,iBAAA,CAEvB,CAAA,CAEJ,CAAA,CAGDL,CAAAA,EAAgB,SAAW,CAACc,CAAAA,CAC3BwB,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,oBAAA,CACb,QAAA,CAAAA,GAAAA,CAAC,KAAA,CAAA,CAAI,GAAA,CAAK5B,CAAAA,CAAa,SAAA,CAAU,YAAA,CAAa,CAAA,CAChD,EACE,IAAA,CAAA,CACN,CAAA,CACF,CAAA,CACCK,CAAAA,CAAAA,CACH,CAEJ,CAEA,SAASY,EAAAA,CACPgB,CAAAA,CACAxD,CAAAA,CACA,CACA,OAAI,OAAOwD,CAAAA,EAAoB,SACtB,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAMA,CAAe,CAAC,CAAA,CAG5CA,CAAAA,GAAoB,MAAA,CACf,CAAA,CAGLxD,CAAAA,EAAkByD,GAAAA,CAAuC,KAAK,CAAA,CACzD,CAAA,CAELzD,CAAAA,EAAkByD,GAAAA,CAAuC,EAAA,CACpD,CAAA,CAELzD,CAAAA,EAAkByD,GAAAA,CAAuC,EAAA,CACpD,CAAA,CAELzD,CAAAA,EAAkByD,GAAAA,CAAuC,EAAA,CACpD,CAAA,CAEF,CACT","file":"chunk-B6JTUAWE.js","sourcesContent":["import * as React from \"react\";\nimport type { Row } from \"@tanstack/react-table\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { cn } from \"../../lib/utils\";\nimport { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS } from \"../types\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\nimport { useDataTableScrollViewport } from \"./use-data-table-scroll-viewport\";\n\nexport function DataTableVirtualCardPanel({\n cardClassName,\n cardGridClassName,\n cardSizing,\n cardRenderer,\n containerWidth,\n currentRowSelection,\n currentDetailExpanded,\n DataTableCardView,\n DataTableEmptyState,\n dragAndDrop,\n editableRows,\n editingRowId,\n emptyNode,\n enableRowSelection,\n flexGrow,\n getRowClassName,\n hasCardTitle,\n infiniteScroll,\n localSearchValue,\n onRowClick,\n renderedRows,\n detailPanel,\n resolvedLabels,\n resolvedLoadingRowCount,\n rowActions = [],\n ScrollArea,\n scrollbarVisibility,\n sentinelRef,\n setCurrentDetailExpanded,\n setCurrentRowSelection,\n setEditingRowId,\n shouldRenderInitialLoading,\n stateOverlayNode,\n tableContainerClassName,\n uiClassNames,\n virtualization,\n}: DataTableCardPanelProps) {\n const shouldRenderCards = shouldRenderInitialLoading || renderedRows.length > 0;\n const cardScrollContainerRef = React.useRef(null);\n const { viewportElement, viewportHeight } = useDataTableScrollViewport(\n cardScrollContainerRef,\n shouldRenderCards,\n );\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization.card : undefined;\n const enableCardVirtualization =\n !shouldRenderInitialLoading &&\n renderedRows.length > 0 &&\n virtualizationConfig?.enabled === true;\n const lanes = resolveCardVirtualizationLanes(\n virtualizationConfig?.lanes,\n containerWidth,\n );\n const virtualRowCount = Math.ceil(renderedRows.length / lanes);\n const shouldUseVirtualCardRows =\n enableCardVirtualization && Boolean(viewportElement) && viewportHeight > 0;\n const getItemKey = React.useCallback(\n (index: number) => renderedRows[index * lanes]?.id ?? index,\n [lanes, renderedRows],\n );\n // eslint-disable-next-line react-hooks/incompatible-library -- TanStack Virtual owns its instance functions.\n const cardVirtualizer = useVirtualizer({\n count: enableCardVirtualization ? virtualRowCount : 0,\n enabled: shouldUseVirtualCardRows,\n estimateSize: () => virtualizationConfig?.estimateCardHeight ?? 280,\n getItemKey,\n getScrollElement: () => viewportElement,\n overscan: virtualizationConfig?.overscan ?? 4,\n });\n const virtualCardRows = shouldUseVirtualCardRows\n ? cardVirtualizer.getVirtualItems()\n : [];\n\n const renderCardView = (\n rows: Array>,\n options?: {\n isLoading?: boolean;\n loadingRowCount?: number;\n },\n ) => (\n \n );\n\n return (\n \n \n \n {shouldRenderCards ? (\n shouldRenderInitialLoading ? (\n renderCardView([], {\n isLoading: true,\n loadingRowCount: resolvedLoadingRowCount,\n })\n ) : shouldUseVirtualCardRows ? (\n \n {virtualCardRows.map((virtualRow) => {\n const startIndex = virtualRow.index * lanes;\n const rows = renderedRows.slice(\n startIndex,\n startIndex + lanes,\n );\n\n return (\n \n {renderCardView(rows)}\n \n );\n })}\n \n ) : (\n renderCardView(\n renderedRows.slice(\n 0,\n Math.max(\n 1,\n Math.floor(\n virtualizationConfig?.fallbackCardCount ?? 12,\n ),\n ),\n ),\n )\n )\n ) : (\n
    \n {emptyNode ?? (\n \n )}\n
    \n )}\n\n {infiniteScroll?.enabled && !shouldRenderInitialLoading ? (\n
    \n
    \n
    \n ) : null}\n
    \n \n {stateOverlayNode}\n \n );\n}\n\nfunction resolveCardVirtualizationLanes(\n configuredLanes: number | \"auto\" | undefined,\n containerWidth: number,\n) {\n if (typeof configuredLanes === \"number\") {\n return Math.max(1, Math.floor(configuredLanes));\n }\n\n if (configuredLanes !== \"auto\") {\n return 1;\n }\n\n if (containerWidth >= DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS[\"2xl\"]) {\n return 5;\n }\n if (containerWidth >= DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS.xl) {\n return 4;\n }\n if (containerWidth >= DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS.lg) {\n return 3;\n }\n if (containerWidth >= DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS.sm) {\n return 2;\n }\n return 1;\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-F2RBZWQV.js b/dist/chunk-F2RBZWQV.js new file mode 100644 index 0000000..3dfa529 --- /dev/null +++ b/dist/chunk-F2RBZWQV.js @@ -0,0 +1,3 @@ +import {a}from'./chunk-XTVBESM5.js';var _=Symbol("data-table-loading-row"),z=50;function F(e,t,n){if(e===true)return Object.fromEntries(n.flatMap(a=>a===t?[]:[[a,true]]));let r={...e};return r[t]?delete r[t]:r[t]=true,r}function U(e){return Array.from({length:e},(t,n)=>({[_]:true,index:n}))}function j(e){return !!(e&&typeof e=="object"&&_ in e)}function G(e){return `__loading__${e}`}function V(e){if(typeof e.meta?.minWidth=="number")return e.meta.minWidth;if(Object.prototype.hasOwnProperty.call(e,"minSize")){let t=e.minSize;if(typeof t=="number")return t}}function M(e){return Object.prototype.hasOwnProperty.call(e,"size")&&typeof e.size=="number"}function S(e){if("columns"in e&&Array.isArray(e.columns))return {...e,columns:e.columns.map(n=>S(n))};let t=e.meta?.filter;return !t||e.filterFn?e:{...e,filterFn:(n,r,a)=>{if(!x(a))return true;let o=n.getValue(r),i=t.getOptionValue?.(o,n.original)??g(o);if(t.type==="multi"||t.type==="faceted")return Array.isArray(a)?a.map(String).includes(i):true;if(t.type==="select"||t.type==="boolean")return i===String(a);if(t.type==="numberRange"){let u=C(a),c=Number(i),p=u.from===""?void 0:Number(u.from),d=u.to===""?void 0:Number(u.to);return Number.isNaN(c)?false:(p===void 0||Number.isNaN(p)||c>=p)&&(d===void 0||Number.isNaN(d)||c<=d)}if(t.type==="dateRange"){let u=C(a),c=k(i);return c?(!u.from||c>=String(u.from))&&(!u.to||c<=String(u.to)):false}let l=i.toLowerCase(),f=String(a).toLowerCase();switch(t.operator??"contains"){case "equals":return l===f;case "startsWith":return l.startsWith(f);case "endsWith":return l.endsWith(f);default:return l.includes(f)}}}}function W(e){let t=new Map,n=(r,a)=>{r.forEach((o,i)=>{if("columns"in o&&o.columns?.length){let l=o;n(o.columns,[...a,{id:D(o),freeReordering:l.freeReordering===true}]);return}t.set(D(o),a);});};return n(e,[]),t}function B(e,t,n){let r=n.get(e)??[],a=n.get(t)??[],o=0;for(;oi.freeReordering)}function A(e){let t=[],n=r=>{r.forEach((a,o)=>{if("columns"in a&&a.columns?.length){n(a.columns);return}t.push({column:a,index:o});});};return n(e),t}function $(e){return e.map(t=>typeof t=="string"?{label:h(t),value:t}:t)}function g(e){if(e==null)return "";if(e instanceof Date)return e.toISOString();if(typeof e=="object")try{return JSON.stringify(e)}catch{return ""}return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"||typeof e=="symbol"?String(e):""}function x(e){return Array.isArray(e)?e.length>0:e&&typeof e=="object"?"from"in e||"to"in e?Object.values(e).some(x):true:e!=null&&e!==""}function C(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t=e;return {...typeof t.from=="string"||typeof t.from=="number"?{from:t.from}:{},...typeof t.to=="string"||typeof t.to=="number"?{to:t.to}:{}}}function k(e){if(e instanceof Date&&!Number.isNaN(e.getTime()))return e.toISOString().slice(0,10);let t=g(e);if(/^\d{4}-\d{2}-\d{2}/.test(t))return t.slice(0,10);let n=Date.parse(t);return Number.isNaN(n)?"":new Date(n).toISOString().slice(0,10)}function K(e){return g(e).trim().toLowerCase()}async function q({csvExport:e,table:t}){if(e===false)return;let n=e===true?{}:e,r=n.filename??"data-table.csv",a=n.scope??"filtered",o=n.columns?new Set(n.columns):void 0,i=t.getVisibleLeafColumns().filter(s=>!O(s.id)&&s.id!=="__spacer__"&&(!o||o.has(s.id))),l=E(t,a),f=[];(n.includeHeaders??true)&&f.push(i.map(s=>typeof s.columnDef.header=="string"?s.columnDef.header:h(s.id)));for(let s of l)f.push(i.map(m=>{let y=s.getValue(m.id);return n.getCellValue?n.getCellValue({row:s.original,rowId:s.id,columnId:m.id,value:y}):y}));let u=n.lineEnding??`\r +`,c=n.escapeFormulaValues??true,p=f.map(s=>s.map(m=>R(m,c)).join(",")).join(u);if(n.onExport){await n.onExport({csv:p,filename:r,rows:l.map(s=>s.original),scope:a});return}if(typeof window>"u")return;let d=new Blob([p],{type:"text/csv;charset=utf-8"}),T=window.URL.createObjectURL(d),b=window.document.createElement("a");b.href=T,b.download=r,b.click(),window.URL.revokeObjectURL(T);}function E(e,t){switch(t){case "page":return e.getRowModel().rows;case "selected":return e.getPrePaginationRowModel().rows.filter(n=>n.getIsSelected());case "all":return e.getCoreRowModel().rows;default:return e.getPrePaginationRowModel().rows}}function R(e,t){let n=g(e);return t&&typeof e=="string"&&/^[\t\r ]*[=+\-@]/.test(e)&&(n=`'${n}`),/[",\n\r]/.test(n)?`"${n.replace(/"/g,'""')}"`:n}function H(e){let t=[],n=[];for(let{column:r,index:a}of A(e)){let o=D(r);r.meta?.fixed==="left"&&t.push(o),r.meta?.fixed==="right"&&n.push(o);}return {left:t,right:n}}function D(e,t){if(e.id)return e.id;let n=N(e);if(n)return n.replace(/\./g,"_");if(typeof e.header=="string")return e.header;throw new Error("Data table columns using an accessor function or non-string header must define a unique id.")}var L=new Set(["__select__","__expand__","__actions__","__spacer__"]);function Q(e){let t=new Set,n=r=>{r.forEach((a,o)=>{let i=D(a);if(L.has(i))throw new Error(`Data table column id "${i}" is reserved for an internal column.`);if(t.has(i))throw new Error(`Duplicate data table column id "${i}".`);t.add(i),"columns"in a&&a.columns?.length&&n(a.columns);});};n(e);}function N(e){if("accessorKey"in e&&typeof e.accessorKey=="string")return e.accessorKey}function Z(e){let t=e.getIsPinned();return t||(e.id==="__select__"||e.id==="__expand__"?"left":e.id==="__actions__"?"right":e.columnDef.meta?.fixed)}function J(e,t,n){let r=n?.isUtilityColumn??false;return a("sticky backdrop-blur box-border",t.pinnedColumn,!r&&"border-dotted",r?t.pinnedUtilityColumn:void 0,e==="left"?"border-r-1":"border-l")}function O(e){return e==="__select__"||e==="__expand__"||e==="__actions__"}var P=["[data-row-click-ignore='true']","a[href]","button","input","select","summary","textarea","[contenteditable='true']","[role='button']","[role='link']"].join(",");function Y(e,t){if(!(e instanceof Element))return false;let n=e.closest(P);return !!(n&&n!==t&&t.contains(n))}function X(e){switch(e){case "compact":return "h-8 py-1";case "spacious":return "h-14 py-4";default:return}}function v(e){switch(e){case "compact":return "py-1.5";case "spacious":return "py-4";default:return}}function ee(e,t,n){let r=e.includes(t)?e.slice():[...e,t],a=r.indexOf(t),o=r.indexOf(n);if(a<0||o<0||a===o)return r;let[i]=r.splice(a,1);return r.splice(o,0,i),r}function h(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,t=>t.toUpperCase())}export{v as A,ee as B,h as C,z as a,F as b,U as c,j as d,G as e,V as f,M as g,S as h,W as i,B as j,A as k,$ as l,g as m,x as n,K as o,q as p,E as q,H as r,D as s,Q as t,N as u,Z as v,J as w,O as x,Y as y,X as z};//# sourceMappingURL=chunk-F2RBZWQV.js.map +//# sourceMappingURL=chunk-F2RBZWQV.js.map \ No newline at end of file diff --git a/dist/chunk-F2RBZWQV.js.map b/dist/chunk-F2RBZWQV.js.map new file mode 100644 index 0000000..2f1cea8 --- /dev/null +++ b/dist/chunk-F2RBZWQV.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/core/data-table/data-table-utils.ts"],"names":["DATA_TABLE_LOADING_ROW","UTILITY_COLUMN_SIZE","toggleDataTableExpandedState","current","rowId","loadedRowIds","loadedRowId","next","createDataTableLoadingRows","count","_","index","isDataTableLoadingRow","row","getDataTableLoadingRowId","getConfiguredColumnMinWidth","column","minSize","hasExplicitDataTableColumnSize","decorateFilterableColumn","childColumn","filter","columnId","filterValue","hasFilterValue","value","optionValue","normalizeFilterValue","range","normalizeRangeFilterValue","numericValue","from","to","dateValue","normalizeDateFilterValue","normalizedValue","normalizedQuery","getDataTableColumnGroupPaths","columns","paths","visit","currentColumns","parentPath","group","getColumnId","canReorderDataTableColumn","sourceColumnId","targetColumnId","groupPaths","sourcePath","targetPath","commonLength","getDataTableLeafColumns","leaves","normalizeColumnFilterOptions","options","option","startCase","normalized","timestamp","normalizeDataTableSearchText","exportDataTableCsv","csvExport","table","filename","scope","exportColumnIds","isUtilityColumnId","rows","getDataTableExportRows","csvRows","lineEnding","escapeFormulaValues","csv","escapeCsvCell","blob","url","anchor","text","getInitialColumnPinning","left","right","_index","accessorKey","getAccessorKey","RESERVED_DATA_TABLE_COLUMN_IDS","validateDataTableColumnIds","ids","id","getFixedSide","pinnedSide","getPinnedColumnClassName","side","uiClassNames","isUtilityColumn","cn","DATA_TABLE_INTERACTIVE_TARGET_SELECTOR","isDataTableInteractiveTarget","target","boundary","interactiveTarget","getDensityHeaderClassName","density","getDensityCellClassName","moveColumnInOrder","currentOrder","order","sourceIndex","targetIndex","source","character"],"mappings":"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","file":"chunk-F2RBZWQV.js","sourcesContent":["import type {\n Column,\n ColumnDef,\n ColumnPinningState,\n ExpandedState,\n Row,\n Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableColumnFilterOption,\n DataTableCsvExportOptions,\n DataTableCsvExportScope,\n DataTableDensity,\n DataTableLabels,\n} from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nconst DATA_TABLE_LOADING_ROW = Symbol(\"data-table-loading-row\");\n\nexport const UTILITY_COLUMN_SIZE = 50;\n\nexport function toggleDataTableExpandedState(\n current: ExpandedState,\n rowId: string,\n loadedRowIds: Array,\n): ExpandedState {\n if (current === true) {\n return Object.fromEntries(\n loadedRowIds.flatMap((loadedRowId) =>\n loadedRowId === rowId ? [] : [[loadedRowId, true]],\n ),\n );\n }\n\n const next = { ...current };\n if (next[rowId]) {\n delete next[rowId];\n } else {\n next[rowId] = true;\n }\n return next;\n}\n\ntype DataTableLoadingRow = {\n [DATA_TABLE_LOADING_ROW]: true;\n index: number;\n};\n\nexport function createDataTableLoadingRows(count: number) {\n return Array.from({ length: count }, (_, index) => {\n return {\n [DATA_TABLE_LOADING_ROW]: true,\n index,\n } as DataTableLoadingRow as TData;\n });\n}\n\nexport function isDataTableLoadingRow(\n row: unknown,\n): row is DataTableLoadingRow {\n return Boolean(\n row &&\n typeof row === \"object\" &&\n DATA_TABLE_LOADING_ROW in (row as Record),\n );\n}\n\nexport function getDataTableLoadingRowId(index: number) {\n return `__loading__${index}`;\n}\n\nexport function getConfiguredColumnMinWidth(\n column: DataTableColumnDef,\n) {\n if (typeof column.meta?.minWidth === \"number\") {\n return column.meta.minWidth;\n }\n\n if (Object.prototype.hasOwnProperty.call(column, \"minSize\")) {\n const minSize = (column as { minSize?: unknown }).minSize;\n\n if (typeof minSize === \"number\") {\n return minSize;\n }\n }\n\n return undefined;\n}\n\nexport function hasExplicitDataTableColumnSize(\n column: DataTableColumnDef,\n) {\n return (\n Object.prototype.hasOwnProperty.call(column, \"size\") &&\n typeof column.size === \"number\"\n );\n}\n\nexport function decorateFilterableColumn(\n column: DataTableColumnDef,\n): ColumnDef {\n if (\"columns\" in column && Array.isArray(column.columns)) {\n return {\n ...column,\n columns: column.columns.map((childColumn) =>\n decorateFilterableColumn(\n childColumn as DataTableColumnDef,\n ),\n ),\n };\n }\n\n const filter = column.meta?.filter;\n if (!filter || column.filterFn) {\n return column;\n }\n\n return {\n ...column,\n filterFn: (row, columnId, filterValue) => {\n if (!hasFilterValue(filterValue)) {\n return true;\n }\n\n const value = row.getValue(columnId);\n const optionValue =\n filter.getOptionValue?.(value, row.original) ??\n normalizeFilterValue(value);\n\n if (filter.type === \"multi\" || filter.type === \"faceted\") {\n return Array.isArray(filterValue)\n ? filterValue.map(String).includes(optionValue)\n : true;\n }\n\n if (filter.type === \"select\") {\n return optionValue === String(filterValue);\n }\n\n if (filter.type === \"boolean\") {\n return optionValue === String(filterValue);\n }\n\n if (filter.type === \"numberRange\") {\n const range = normalizeRangeFilterValue(filterValue);\n const numericValue = Number(optionValue);\n const from = range.from === \"\" ? undefined : Number(range.from);\n const to = range.to === \"\" ? undefined : Number(range.to);\n\n if (Number.isNaN(numericValue)) {\n return false;\n }\n\n return (\n (from === undefined || Number.isNaN(from) || numericValue >= from) &&\n (to === undefined || Number.isNaN(to) || numericValue <= to)\n );\n }\n\n if (filter.type === \"dateRange\") {\n const range = normalizeRangeFilterValue(filterValue);\n const dateValue = normalizeDateFilterValue(optionValue);\n\n if (!dateValue) {\n return false;\n }\n\n return (\n (!range.from || dateValue >= String(range.from)) &&\n (!range.to || dateValue <= String(range.to))\n );\n }\n\n const normalizedValue = optionValue.toLowerCase();\n const normalizedQuery = String(filterValue).toLowerCase();\n\n switch (filter.operator ?? \"contains\") {\n case \"equals\":\n return normalizedValue === normalizedQuery;\n case \"startsWith\":\n return normalizedValue.startsWith(normalizedQuery);\n case \"endsWith\":\n return normalizedValue.endsWith(normalizedQuery);\n default:\n return normalizedValue.includes(normalizedQuery);\n }\n },\n };\n}\n\nexport type DataTableLeafColumn = {\n column: DataTableColumnDef;\n index: number;\n};\n\nexport type DataTableColumnGroupPathSegment = {\n id: string;\n freeReordering: boolean;\n};\n\nexport type DataTableColumnGroupPaths = ReadonlyMap<\n string,\n ReadonlyArray\n>;\n\n/**\n * Returns the nested shared-header path for every leaf. The path deliberately\n * uses stable column ids rather than header text so it also works with custom\n * header render functions.\n */\nexport function getDataTableColumnGroupPaths(\n columns: Array>,\n): DataTableColumnGroupPaths {\n const paths = new Map<\n string,\n ReadonlyArray\n >();\n\n const visit = (\n currentColumns: Array>,\n parentPath: ReadonlyArray,\n ) => {\n currentColumns.forEach((column, index) => {\n if (\"columns\" in column && column.columns?.length) {\n const group = column as DataTableColumnDef & {\n freeReordering?: boolean;\n };\n visit(column.columns, [\n ...parentPath,\n {\n id: getColumnId(column, index),\n freeReordering: group.freeReordering === true,\n },\n ]);\n return;\n }\n\n paths.set(getColumnId(column, index), parentPath);\n });\n };\n\n visit(columns, []);\n return paths;\n}\n\n/**\n * Locked groups preserve their shared heading by default. Reordering within a\n * common group path is always allowed; leaving or entering a group requires\n * each crossed group to explicitly opt into `freeReordering`.\n */\nexport function canReorderDataTableColumn(\n sourceColumnId: string,\n targetColumnId: string,\n groupPaths: DataTableColumnGroupPaths,\n) {\n const sourcePath = groupPaths.get(sourceColumnId) ?? [];\n const targetPath = groupPaths.get(targetColumnId) ?? [];\n let commonLength = 0;\n\n while (\n commonLength < sourcePath.length &&\n commonLength < targetPath.length &&\n sourcePath[commonLength]?.id === targetPath[commonLength]?.id\n ) {\n commonLength += 1;\n }\n\n return [\n ...sourcePath.slice(commonLength),\n ...targetPath.slice(commonLength),\n ].every((group) => group.freeReordering);\n}\n\nexport function getDataTableLeafColumns(\n columns: Array>,\n) {\n const leaves: Array> = [];\n\n const visit = (currentColumns: Array>) => {\n currentColumns.forEach((column, index) => {\n if (\"columns\" in column && column.columns?.length) {\n visit(column.columns);\n return;\n }\n\n leaves.push({ column, index });\n });\n };\n\n visit(columns);\n return leaves;\n}\n\nexport function normalizeColumnFilterOptions(\n options: Array,\n) {\n return options.map((option) =>\n typeof option === \"string\"\n ? { label: startCase(option), value: option }\n : option,\n );\n}\n\nexport function normalizeFilterValue(value: unknown) {\n if (value == null) {\n return \"\";\n }\n\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (typeof value === \"object\") {\n try {\n return JSON.stringify(value);\n } catch {\n return \"\";\n }\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\" ||\n typeof value === \"symbol\"\n ) {\n return String(value);\n }\n\n return \"\";\n}\n\nexport function hasFilterValue(value: unknown) {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n\n if (value && typeof value === \"object\") {\n if (\"from\" in value || \"to\" in value) {\n return Object.values(value).some(hasFilterValue);\n }\n\n return true;\n }\n\n return value !== undefined && value !== null && value !== \"\";\n}\n\nfunction normalizeRangeFilterValue(value: unknown): {\n from?: string | number;\n to?: string | number;\n} {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return {};\n }\n\n const range = value as { from?: unknown; to?: unknown };\n return {\n ...(typeof range.from === \"string\" || typeof range.from === \"number\"\n ? { from: range.from }\n : {}),\n ...(typeof range.to === \"string\" || typeof range.to === \"number\"\n ? { to: range.to }\n : {}),\n };\n}\n\nfunction normalizeDateFilterValue(value: unknown) {\n if (value instanceof Date && !Number.isNaN(value.getTime())) {\n return value.toISOString().slice(0, 10);\n }\n\n const normalized = normalizeFilterValue(value);\n if (/^\\d{4}-\\d{2}-\\d{2}/.test(normalized)) {\n return normalized.slice(0, 10);\n }\n\n const timestamp = Date.parse(normalized);\n return Number.isNaN(timestamp)\n ? \"\"\n : new Date(timestamp).toISOString().slice(0, 10);\n}\n\nexport function dataTableGlobalFilterFn(\n row: Row,\n columnId: string,\n filterValue: unknown,\n) {\n const normalizedQuery = normalizeFilterValue(filterValue)\n .trim()\n .toLowerCase();\n\n if (!normalizedQuery) {\n return true;\n }\n\n return normalizeFilterValue(row.getValue(columnId))\n .toLowerCase()\n .includes(normalizedQuery);\n}\n\nexport function normalizeDataTableSearchText(value: unknown) {\n return normalizeFilterValue(value).trim().toLowerCase();\n}\n\nexport async function exportDataTableCsv({\n csvExport,\n table,\n}: {\n csvExport: boolean | DataTableCsvExportOptions;\n table: TanStackTable;\n labels: DataTableLabels;\n}) {\n if (csvExport === false) {\n return;\n }\n\n const options: DataTableCsvExportOptions =\n csvExport === true ? {} : csvExport;\n const filename = options.filename ?? \"data-table.csv\";\n const scope = options.scope ?? \"filtered\";\n const exportColumnIds = options.columns\n ? new Set(options.columns)\n : undefined;\n const columns = table\n .getVisibleLeafColumns()\n .filter(\n (column) =>\n !isUtilityColumnId(column.id) &&\n column.id !== \"__spacer__\" &&\n (!exportColumnIds || exportColumnIds.has(column.id)),\n );\n const rows = getDataTableExportRows(table, scope);\n const csvRows: Array> = [];\n\n if (options.includeHeaders ?? true) {\n csvRows.push(\n columns.map((column) =>\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : startCase(column.id),\n ),\n );\n }\n\n for (const row of rows) {\n csvRows.push(\n columns.map((column) => {\n const value = row.getValue(column.id);\n return options.getCellValue\n ? options.getCellValue({\n row: row.original,\n rowId: row.id,\n columnId: column.id,\n value,\n })\n : value;\n }),\n );\n }\n\n const lineEnding = options.lineEnding ?? \"\\r\\n\";\n const escapeFormulaValues = options.escapeFormulaValues ?? true;\n const csv = csvRows\n .map((row) =>\n row\n .map((value) => escapeCsvCell(value, escapeFormulaValues))\n .join(\",\"),\n )\n .join(lineEnding);\n\n if (options.onExport) {\n await options.onExport({\n csv,\n filename,\n rows: rows.map((row) => row.original),\n scope,\n });\n return;\n }\n\n if (typeof window === \"undefined\") {\n return;\n }\n\n const blob = new Blob([csv], { type: \"text/csv;charset=utf-8\" });\n const url = window.URL.createObjectURL(blob);\n const anchor = window.document.createElement(\"a\");\n anchor.href = url;\n anchor.download = filename;\n anchor.click();\n window.URL.revokeObjectURL(url);\n}\n\nexport function getDataTableExportRows(\n table: TanStackTable,\n scope: DataTableCsvExportScope,\n) {\n switch (scope) {\n case \"page\":\n return table.getRowModel().rows;\n case \"selected\":\n return table\n .getPrePaginationRowModel()\n .rows.filter((row) => row.getIsSelected());\n case \"all\":\n return table.getCoreRowModel().rows;\n default:\n return table.getPrePaginationRowModel().rows;\n }\n}\n\nfunction escapeCsvCell(value: unknown, escapeFormulaValues: boolean) {\n let text = normalizeFilterValue(value);\n if (\n escapeFormulaValues &&\n typeof value === \"string\" &&\n /^[\\t\\r ]*[=+\\-@]/.test(value)\n ) {\n text = `'${text}`;\n }\n if (/[\",\\n\\r]/.test(text)) {\n return `\"${text.replace(/\"/g, '\"\"')}\"`;\n }\n return text;\n}\n\nexport function getInitialColumnPinning(\n columns: Array>,\n): ColumnPinningState {\n const left: Array = [];\n const right: Array = [];\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n const columnId = getColumnId(column, index);\n if (column.meta?.fixed === \"left\") {\n left.push(columnId);\n }\n if (column.meta?.fixed === \"right\") {\n right.push(columnId);\n }\n }\n\n return { left, right };\n}\n\nexport function getColumnId(\n column: DataTableColumnDef,\n _index?: number,\n) {\n if (column.id) {\n return column.id;\n }\n\n const accessorKey = getAccessorKey(column);\n if (accessorKey) {\n return accessorKey.replace(/\\./g, \"_\");\n }\n\n if (typeof column.header === \"string\") {\n return column.header;\n }\n\n throw new Error(\n \"Data table columns using an accessor function or non-string header must define a unique id.\",\n );\n}\n\nconst RESERVED_DATA_TABLE_COLUMN_IDS = new Set([\n \"__select__\",\n \"__expand__\",\n \"__actions__\",\n \"__spacer__\",\n]);\n\nexport function validateDataTableColumnIds(\n columns: Array>,\n) {\n const ids = new Set();\n\n const visit = (currentColumns: Array>) => {\n currentColumns.forEach((column, index) => {\n const id = getColumnId(column, index);\n if (RESERVED_DATA_TABLE_COLUMN_IDS.has(id)) {\n throw new Error(\n `Data table column id \"${id}\" is reserved for an internal column.`,\n );\n }\n if (ids.has(id)) {\n throw new Error(`Duplicate data table column id \"${id}\".`);\n }\n ids.add(id);\n\n if (\"columns\" in column && column.columns?.length) {\n visit(column.columns);\n }\n });\n };\n\n visit(columns);\n}\n\nexport function getAccessorKey(\n column: DataTableColumnDef,\n) {\n if (\"accessorKey\" in column && typeof column.accessorKey === \"string\") {\n return column.accessorKey;\n }\n\n return undefined;\n}\n\nexport function getFixedSide(column: Column) {\n const pinnedSide = column.getIsPinned();\n if (pinnedSide) {\n return pinnedSide;\n }\n\n if (column.id === \"__select__\") {\n return \"left\" as const;\n }\n\n if (column.id === \"__expand__\") {\n return \"left\" as const;\n }\n\n if (column.id === \"__actions__\") {\n return \"right\" as const;\n }\n\n const meta = (column.columnDef as DataTableColumnDef).meta;\n return meta?.fixed;\n}\n\nexport function getPinnedColumnClassName(\n side: \"left\" | \"right\",\n uiClassNames: DataTableUiClassNames,\n options?: { isUtilityColumn?: boolean },\n) {\n const isUtilityColumn = options?.isUtilityColumn ?? false;\n return cn(\n \"sticky backdrop-blur box-border\",\n uiClassNames.pinnedColumn,\n !isUtilityColumn && \"border-dotted\",\n isUtilityColumn ? uiClassNames.pinnedUtilityColumn : undefined,\n side === \"left\" ? \"border-r-1\" : \"border-l\",\n );\n}\n\nexport function isUtilityColumnId(columnId: string) {\n return (\n columnId === \"__select__\" ||\n columnId === \"__expand__\" ||\n columnId === \"__actions__\"\n );\n}\n\nconst DATA_TABLE_INTERACTIVE_TARGET_SELECTOR = [\n \"[data-row-click-ignore='true']\",\n \"a[href]\",\n \"button\",\n \"input\",\n \"select\",\n \"summary\",\n \"textarea\",\n \"[contenteditable='true']\",\n \"[role='button']\",\n \"[role='link']\",\n].join(\",\");\n\nexport function isDataTableInteractiveTarget(\n target: EventTarget | null,\n boundary: Element,\n) {\n if (!(target instanceof Element)) {\n return false;\n }\n\n const interactiveTarget = target.closest(\n DATA_TABLE_INTERACTIVE_TARGET_SELECTOR,\n );\n return Boolean(\n interactiveTarget &&\n interactiveTarget !== boundary &&\n boundary.contains(interactiveTarget),\n );\n}\n\nexport function getDensityHeaderClassName(density: DataTableDensity) {\n switch (density) {\n case \"compact\":\n return \"h-8 py-1\";\n case \"spacious\":\n return \"h-14 py-4\";\n case \"comfortable\":\n default:\n return undefined;\n }\n}\n\nexport function getDensityCellClassName(density: DataTableDensity) {\n switch (density) {\n case \"compact\":\n return \"py-1.5\";\n case \"spacious\":\n return \"py-4\";\n case \"comfortable\":\n default:\n return undefined;\n }\n}\n\nexport function moveColumnInOrder(\n currentOrder: Array,\n sourceColumnId: string,\n targetColumnId: string,\n) {\n const order = currentOrder.includes(sourceColumnId)\n ? currentOrder.slice()\n : [...currentOrder, sourceColumnId];\n const sourceIndex = order.indexOf(sourceColumnId);\n const targetIndex = order.indexOf(targetColumnId);\n\n if (sourceIndex < 0 || targetIndex < 0 || sourceIndex === targetIndex) {\n return order;\n }\n\n const [source] = order.splice(sourceIndex, 1);\n order.splice(targetIndex, 0, source);\n return order;\n}\n\nexport function startCase(value: string) {\n return value\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]+/g, \" \")\n .replace(/\\s+/g, \" \")\n .trim()\n .replace(/\\b\\w/g, (character) => character.toUpperCase());\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-KA26IREG.js b/dist/chunk-GIX7N3AJ.js similarity index 96% rename from dist/chunk-KA26IREG.js rename to dist/chunk-GIX7N3AJ.js index d81eee0..a97a430 100644 --- a/dist/chunk-KA26IREG.js +++ b/dist/chunk-GIX7N3AJ.js @@ -1,2 +1,2 @@ -import {X as X$1,a as a$1,c,d,f,h,i,j,k,l,m,n,p,o,z,w,y,x,A,B,D,C,E,F,G,H,I,J,L,b,N,O,P,Q,R,T,S,U,W,q,r,s,t,u,v}from'./chunk-7FUCHMMB.js';import {a}from'./chunk-XTVBESM5.js';import'react';import {jsx}from'react/jsx-runtime';function e(j,q){return function({className:J,...Q}){return jsx(j,{className:a(q,J),...Q})}}var X=e(a$1,"rounded-field border-field-border shadow-field data-[variant=default]:bg-accent data-[variant=default]:text-accent-foreground data-[variant=outline]:border-field-border data-[variant=outline]:bg-field data-[variant=outline]:hover:bg-field-hover data-[variant=secondary]:bg-default data-[variant=secondary]:text-default-foreground data-[variant=ghost]:hover:bg-default data-[variant=destructive]:bg-danger-soft data-[variant=destructive]:text-danger"),Y=e(c,"rounded-2xl border border-separator bg-surface text-surface-foreground shadow-surface ring-0"),Z=e(d,"px-5 pt-5 pb-3"),ee=e(f,"px-5 pb-5"),re=e(h,"rounded-field border-field-border bg-field ring-focus/40 data-checked:bg-accent data-checked:text-accent-foreground data-checked:ring-focus"),te=e(i,"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden **:data-[slot$=-item]:focus:bg-default **:data-[slot$=-item]:data-highlighted:bg-default **:data-[slot$=-separator]:bg-separator **:data-[slot$=-trigger]:focus:bg-default"),oe=e(j,"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground data-[variant=destructive]:text-danger data-[variant=destructive]:focus:bg-danger-soft"),ae=e(k,"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground"),ne=e(l,"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground"),de=e(m,"text-muted"),ie=e(n,"bg-separator"),le=e(p,"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden"),se=e(o,"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground data-open:bg-default data-open:text-overlay-foreground"),ue=e(z,"rounded-field border-field-border bg-field text-field-foreground shadow-field placeholder:text-field-placeholder"),ce=e(w,"rounded-field border-field-border bg-field text-field-foreground shadow-field"),be=e(y,"text-muted"),ge=e(x,"bg-transparent"),pe=e(A,"justify-end"),fe=e(B,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover data-[active=true]:bg-accent data-[active=true]:text-accent-foreground"),me=e(D,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover"),ve=e(C,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover"),xe=e(E,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover"),Pe=e(F,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover"),He=e(G,"rounded-2xl"),ye=e(H,"[&>[data-slot=scroll-area-thumb]]:bg-default-500"),he=e(I,"rounded-field border-field-border bg-field text-field-foreground shadow-field"),Ce=e(J,"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden"),Te=e(L,"rounded-xl focus:bg-default"),we=e(b,"bg-separator"),Se=e(N,"rounded-xl bg-default"),Ie=e(O,"rounded-2xl text-foreground"),De=e(P,"[&_tr]:border-separator"),Me=e(Q,""),Ee=e(R,"border-separator bg-surface-secondary"),ke=e(T,"h-11 border-separator text-muted font-semibold"),Be=e(S,"border-separator hover:bg-default data-[state=selected]:bg-accent-soft"),Ge=e(U,"py-2.5"),Ae=e(W,"rounded-xl bg-overlay text-overlay-foreground ring-1 ring-separator shadow-overlay [&>svg]:bg-overlay [&>svg]:fill-overlay"),Le=e(q,"rounded-2xl border-separator bg-surface shadow-surface"),Re=e(r,""),Ne=e(s,"[&[data-variant=icon]]:rounded-2xl [&[data-variant=icon]]:bg-accent-soft [&[data-variant=icon]]:text-accent-soft-foreground"),Fe=e(t,"text-foreground"),Ue=e(u,"text-muted"),ze=e(v,""),We={...X$1,rootClassName:"dtp-heroui",classNames:{card:"hover:bg-default data-[state=selected]:bg-accent-soft",cardGrid:"bg-transparent",cardItem:"min-w-0",cardOverlay:"from-surface/95 via-surface/85 to-transparent",cardScrollArea:"bg-transparent",cardSelected:"bg-accent-soft ring-accent",cardUnselected:"border-separator",cardViewport:"bg-transparent",cellBorder:"border-separator/70",cellSelected:"!bg-accent-soft ring-1 ring-inset ring-accent/50",columnGroupHeader:"bg-default/50 font-semibold",dragActive:"rounded-2xl border-dashed border-accent",emptyState:"border-separator bg-surface",footer:"border-separator bg-surface text-surface-foreground",headerSortIcon:"text-muted",mutedText:"text-muted",paginationSelectTrigger:"border-field-border bg-field",paginationTotal:"text-muted",pinnedColumn:"border-separator",pinnedUtilityColumn:"bg-surface",resizeHandle:"after:bg-separator hover:after:bg-accent",resizeHandleActive:"after:bg-accent",row:"hover:bg-default data-[state=selected]:!bg-accent-soft",rowSelected:"!bg-accent-soft",tableContainer:"border-separator bg-surface text-surface-foreground",tableScrollArea:"bg-surface",tableStickyHeader:"sticky top-0 z-30 bg-surface/95 backdrop-blur [&_th]:border-separator [&_th]:bg-surface/95",toolbarCompactIconButton:"size-7",toolbarIconButton:"text-muted hover:text-foreground",toolbarInputButton:"bg-field"},Button:X,Card:Y,CardContent:ee,CardHeader:Z,Checkbox:re,DropdownMenuCheckboxItem:ae,DropdownMenuContent:te,DropdownMenuItem:oe,DropdownMenuLabel:de,DropdownMenuRadioItem:ne,DropdownMenuSeparator:ie,DropdownMenuSubContent:le,DropdownMenuSubTrigger:se,Empty:Le,EmptyContent:ze,EmptyDescription:Ue,EmptyHeader:Re,EmptyMedia:Ne,EmptyTitle:Fe,Input:ue,InputGroup:ce,InputGroupAddon:be,InputGroupInput:ge,Pagination:pe,PaginationFirst:me,PaginationLast:Pe,PaginationLink:fe,PaginationNext:xe,PaginationPrevious:ve,ScrollArea:He,ScrollBar:ye,SelectContent:Ce,SelectItem:Te,SelectTrigger:he,Separator:we,Skeleton:Se,Table:Ie,TableBody:Me,TableCell:Ge,TableFooter:Ee,TableHead:ke,TableHeader:De,TableRow:Be,TooltipContent:Ae};export{We as a};//# sourceMappingURL=chunk-KA26IREG.js.map -//# sourceMappingURL=chunk-KA26IREG.js.map \ No newline at end of file +import {X as X$1,a as a$1,c,d,f,h,i,j,k,l,m,n,p,o,z,w,y,x,A,B,D,C,E,F,G,H,I,J,L,b,N,O,P,Q,R,T,S,U,W,q,r,s,t,u,v}from'./chunk-VSIOOKCO.js';import {a}from'./chunk-XTVBESM5.js';import'react';import {jsx}from'react/jsx-runtime';function e(j,q){return function({className:J,...Q}){return jsx(j,{className:a(q,J),...Q})}}var X=e(a$1,"rounded-field border-field-border shadow-field data-[variant=default]:bg-accent data-[variant=default]:text-accent-foreground data-[variant=outline]:border-field-border data-[variant=outline]:bg-field data-[variant=outline]:hover:bg-field-hover data-[variant=secondary]:bg-default data-[variant=secondary]:text-default-foreground data-[variant=ghost]:hover:bg-default data-[variant=destructive]:bg-danger-soft data-[variant=destructive]:text-danger"),Y=e(c,"rounded-2xl border border-separator bg-surface text-surface-foreground shadow-surface ring-0"),Z=e(d,"px-5 pt-5 pb-3"),ee=e(f,"px-5 pb-5"),re=e(h,"rounded-field border-field-border bg-field ring-focus/40 data-checked:bg-accent data-checked:text-accent-foreground data-checked:ring-focus"),te=e(i,"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden **:data-[slot$=-item]:focus:bg-default **:data-[slot$=-item]:data-highlighted:bg-default **:data-[slot$=-separator]:bg-separator **:data-[slot$=-trigger]:focus:bg-default"),oe=e(j,"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground data-[variant=destructive]:text-danger data-[variant=destructive]:focus:bg-danger-soft"),ae=e(k,"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground"),ne=e(l,"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground"),de=e(m,"text-muted"),ie=e(n,"bg-separator"),le=e(p,"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden"),se=e(o,"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground data-open:bg-default data-open:text-overlay-foreground"),ue=e(z,"rounded-field border-field-border bg-field text-field-foreground shadow-field placeholder:text-field-placeholder"),ce=e(w,"rounded-field border-field-border bg-field text-field-foreground shadow-field"),be=e(y,"text-muted"),ge=e(x,"bg-transparent"),pe=e(A,"justify-end"),fe=e(B,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover data-[active=true]:bg-accent data-[active=true]:text-accent-foreground"),me=e(D,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover"),ve=e(C,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover"),xe=e(E,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover"),Pe=e(F,"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover"),He=e(G,"rounded-2xl"),ye=e(H,"[&>[data-slot=scroll-area-thumb]]:bg-default-500"),he=e(I,"rounded-field border-field-border bg-field text-field-foreground shadow-field"),Ce=e(J,"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden"),Te=e(L,"rounded-xl focus:bg-default"),we=e(b,"bg-separator"),Se=e(N,"rounded-xl bg-default"),Ie=e(O,"rounded-2xl text-foreground"),De=e(P,"[&_tr]:border-separator"),Me=e(Q,""),Ee=e(R,"border-separator bg-surface-secondary"),ke=e(T,"h-11 border-separator text-muted font-semibold"),Be=e(S,"border-separator hover:bg-default data-[state=selected]:bg-accent-soft"),Ge=e(U,"py-2.5"),Ae=e(W,"rounded-xl bg-overlay text-overlay-foreground ring-1 ring-separator shadow-overlay [&>svg]:bg-overlay [&>svg]:fill-overlay"),Le=e(q,"rounded-2xl border-separator bg-surface shadow-surface"),Re=e(r,""),Ne=e(s,"[&[data-variant=icon]]:rounded-2xl [&[data-variant=icon]]:bg-accent-soft [&[data-variant=icon]]:text-accent-soft-foreground"),Fe=e(t,"text-foreground"),Ue=e(u,"text-muted"),ze=e(v,""),We={...X$1,rootClassName:"dtp-heroui",classNames:{card:"hover:bg-default data-[state=selected]:bg-accent-soft",cardGrid:"bg-transparent",cardItem:"min-w-0",cardOverlay:"from-surface/95 via-surface/85 to-transparent",cardScrollArea:"bg-transparent",cardSelected:"bg-accent-soft ring-accent",cardUnselected:"border-separator",cardViewport:"bg-transparent",cellBorder:"border-separator/70",cellSelected:"!bg-accent-soft ring-1 ring-inset ring-accent/50",columnGroupHeader:"bg-default/50 font-semibold",dragActive:"rounded-2xl border-dashed border-accent",emptyState:"border-separator bg-surface",footer:"border-separator bg-surface text-surface-foreground",headerSortIcon:"text-muted",mutedText:"text-muted",paginationSelectTrigger:"border-field-border bg-field",paginationTotal:"text-muted",pinnedColumn:"border-separator",pinnedUtilityColumn:"bg-surface",resizeHandle:"after:bg-separator hover:after:bg-accent",resizeHandleActive:"after:bg-accent",row:"hover:bg-default data-[state=selected]:!bg-accent-soft",rowSelected:"!bg-accent-soft",tableContainer:"border-separator bg-surface text-surface-foreground",tableScrollArea:"bg-surface",tableStickyHeader:"sticky top-0 z-30 bg-surface/95 backdrop-blur [&_th]:border-separator [&_th]:bg-surface/95",toolbarCompactIconButton:"size-7",toolbarIconButton:"text-muted hover:text-foreground",toolbarInputButton:"bg-field"},Button:X,Card:Y,CardContent:ee,CardHeader:Z,Checkbox:re,DropdownMenuCheckboxItem:ae,DropdownMenuContent:te,DropdownMenuItem:oe,DropdownMenuLabel:de,DropdownMenuRadioItem:ne,DropdownMenuSeparator:ie,DropdownMenuSubContent:le,DropdownMenuSubTrigger:se,Empty:Le,EmptyContent:ze,EmptyDescription:Ue,EmptyHeader:Re,EmptyMedia:Ne,EmptyTitle:Fe,Input:ue,InputGroup:ce,InputGroupAddon:be,InputGroupInput:ge,Pagination:pe,PaginationFirst:me,PaginationLast:Pe,PaginationLink:fe,PaginationNext:xe,PaginationPrevious:ve,ScrollArea:He,ScrollBar:ye,SelectContent:Ce,SelectItem:Te,SelectTrigger:he,Separator:we,Skeleton:Se,Table:Ie,TableBody:Me,TableCell:Ge,TableFooter:Ee,TableHead:ke,TableHeader:De,TableRow:Be,TooltipContent:Ae};export{We as a};//# sourceMappingURL=chunk-GIX7N3AJ.js.map +//# sourceMappingURL=chunk-GIX7N3AJ.js.map \ No newline at end of file diff --git a/dist/chunk-KA26IREG.js.map b/dist/chunk-GIX7N3AJ.js.map similarity index 99% rename from dist/chunk-KA26IREG.js.map rename to dist/chunk-GIX7N3AJ.js.map index c23c643..3061f2f 100644 --- a/dist/chunk-KA26IREG.js.map +++ b/dist/chunk-GIX7N3AJ.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/adapters/heroui/index.tsx"],"names":["withClassName","Component","defaultClassName","className","props","jsx","cn","HeroButton","Button","HeroCard","Card","HeroCardHeader","CardHeader","HeroCardContent","CardContent","HeroCheckbox","Checkbox","HeroDropdownMenuContent","DropdownMenuContent","HeroDropdownMenuItem","DropdownMenuItem","HeroDropdownMenuCheckboxItem","DropdownMenuCheckboxItem","HeroDropdownMenuRadioItem","DropdownMenuRadioItem","HeroDropdownMenuLabel","DropdownMenuLabel","HeroDropdownMenuSeparator","DropdownMenuSeparator","HeroDropdownMenuSubContent","DropdownMenuSubContent","HeroDropdownMenuSubTrigger","DropdownMenuSubTrigger","HeroInput","Input","HeroInputGroup","InputGroup","HeroInputGroupAddon","InputGroupAddon","HeroInputGroupInput","InputGroupInput","HeroPagination","Pagination","HeroPaginationLink","PaginationLink","HeroPaginationFirst","PaginationFirst","HeroPaginationPrevious","PaginationPrevious","HeroPaginationNext","PaginationNext","HeroPaginationLast","PaginationLast","HeroScrollArea","ScrollArea","HeroScrollBar","ScrollBar","HeroSelectTrigger","SelectTrigger","HeroSelectContent","SelectContent","HeroSelectItem","SelectItem","HeroSeparator","Separator","HeroSkeleton","Skeleton","HeroTable","Table","HeroTableHeader","TableHeader","HeroTableBody","TableBody","HeroTableFooter","TableFooter","HeroTableHead","TableHead","HeroTableRow","TableRow","HeroTableCell","TableCell","HeroTooltipContent","TooltipContent","HeroEmpty","Empty","HeroEmptyHeader","EmptyHeader","HeroEmptyMedia","EmptyMedia","HeroEmptyTitle","EmptyTitle","HeroEmptyDescription","EmptyDescription","HeroEmptyContent","EmptyContent","heroUiKit","primitiveUiKit"],"mappings":"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","file":"chunk-KA26IREG.js","sourcesContent":["import * as React from \"react\";\nimport type { DataTableUiKit } from \"../../core/ui-kit\";\nimport {\n Button as PrimitiveButton,\n Card as PrimitiveCard,\n CardContent as PrimitiveCardContent,\n CardHeader as PrimitiveCardHeader,\n Checkbox as PrimitiveCheckbox,\n DropdownMenuCheckboxItem as PrimitiveDropdownMenuCheckboxItem,\n DropdownMenuContent as PrimitiveDropdownMenuContent,\n DropdownMenuItem as PrimitiveDropdownMenuItem,\n DropdownMenuLabel as PrimitiveDropdownMenuLabel,\n DropdownMenuRadioItem as PrimitiveDropdownMenuRadioItem,\n DropdownMenuSeparator as PrimitiveDropdownMenuSeparator,\n DropdownMenuSubContent as PrimitiveDropdownMenuSubContent,\n DropdownMenuSubTrigger as PrimitiveDropdownMenuSubTrigger,\n Empty as PrimitiveEmpty,\n EmptyContent as PrimitiveEmptyContent,\n EmptyDescription as PrimitiveEmptyDescription,\n EmptyHeader as PrimitiveEmptyHeader,\n EmptyMedia as PrimitiveEmptyMedia,\n EmptyTitle as PrimitiveEmptyTitle,\n Input as PrimitiveInput,\n InputGroup as PrimitiveInputGroup,\n InputGroupAddon as PrimitiveInputGroupAddon,\n InputGroupInput as PrimitiveInputGroupInput,\n Pagination as PrimitivePagination,\n PaginationFirst as PrimitivePaginationFirst,\n PaginationLast as PrimitivePaginationLast,\n PaginationLink as PrimitivePaginationLink,\n PaginationNext as PrimitivePaginationNext,\n PaginationPrevious as PrimitivePaginationPrevious,\n ScrollArea as PrimitiveScrollArea,\n ScrollBar as PrimitiveScrollBar,\n SelectContent as PrimitiveSelectContent,\n SelectItem as PrimitiveSelectItem,\n SelectTrigger as PrimitiveSelectTrigger,\n Separator as PrimitiveSeparator,\n Skeleton as PrimitiveSkeleton,\n Table as PrimitiveTable,\n TableBody as PrimitiveTableBody,\n TableCell as PrimitiveTableCell,\n TableFooter as PrimitiveTableFooter,\n TableHead as PrimitiveTableHead,\n TableHeader as PrimitiveTableHeader,\n TableRow as PrimitiveTableRow,\n TooltipContent as PrimitiveTooltipContent,\n primitiveUiKit,\n} from \"../../core/primitive-ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nfunction withClassName(\n Component: React.ComponentType,\n defaultClassName: string,\n) {\n return function Wrapped({ className, ...props }: TProps) {\n return (\n \n );\n };\n}\n\nconst HeroButton = withClassName(\n PrimitiveButton,\n \"rounded-field border-field-border shadow-field data-[variant=default]:bg-accent data-[variant=default]:text-accent-foreground data-[variant=outline]:border-field-border data-[variant=outline]:bg-field data-[variant=outline]:hover:bg-field-hover data-[variant=secondary]:bg-default data-[variant=secondary]:text-default-foreground data-[variant=ghost]:hover:bg-default data-[variant=destructive]:bg-danger-soft data-[variant=destructive]:text-danger\",\n);\nconst HeroCard = withClassName(\n PrimitiveCard,\n \"rounded-2xl border border-separator bg-surface text-surface-foreground shadow-surface ring-0\",\n);\nconst HeroCardHeader = withClassName(PrimitiveCardHeader, \"px-5 pt-5 pb-3\");\nconst HeroCardContent = withClassName(PrimitiveCardContent, \"px-5 pb-5\");\nconst HeroCheckbox = withClassName(\n PrimitiveCheckbox,\n \"rounded-field border-field-border bg-field ring-focus/40 data-checked:bg-accent data-checked:text-accent-foreground data-checked:ring-focus\",\n);\nconst HeroDropdownMenuContent = withClassName(\n PrimitiveDropdownMenuContent,\n \"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden **:data-[slot$=-item]:focus:bg-default **:data-[slot$=-item]:data-highlighted:bg-default **:data-[slot$=-separator]:bg-separator **:data-[slot$=-trigger]:focus:bg-default\",\n);\nconst HeroDropdownMenuItem = withClassName(\n PrimitiveDropdownMenuItem,\n \"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground data-[variant=destructive]:text-danger data-[variant=destructive]:focus:bg-danger-soft\",\n);\nconst HeroDropdownMenuCheckboxItem = withClassName(\n PrimitiveDropdownMenuCheckboxItem,\n \"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground\",\n);\nconst HeroDropdownMenuRadioItem = withClassName(\n PrimitiveDropdownMenuRadioItem,\n \"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground\",\n);\nconst HeroDropdownMenuLabel = withClassName(\n PrimitiveDropdownMenuLabel,\n \"text-muted\",\n);\nconst HeroDropdownMenuSeparator = withClassName(\n PrimitiveDropdownMenuSeparator,\n \"bg-separator\",\n);\nconst HeroDropdownMenuSubContent = withClassName(\n PrimitiveDropdownMenuSubContent,\n \"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden\",\n);\nconst HeroDropdownMenuSubTrigger = withClassName(\n PrimitiveDropdownMenuSubTrigger,\n \"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground data-open:bg-default data-open:text-overlay-foreground\",\n);\nconst HeroInput = withClassName(\n PrimitiveInput,\n \"rounded-field border-field-border bg-field text-field-foreground shadow-field placeholder:text-field-placeholder\",\n);\nconst HeroInputGroup = withClassName(\n PrimitiveInputGroup,\n \"rounded-field border-field-border bg-field text-field-foreground shadow-field\",\n);\nconst HeroInputGroupAddon = withClassName(\n PrimitiveInputGroupAddon,\n \"text-muted\",\n);\nconst HeroInputGroupInput = withClassName(PrimitiveInputGroupInput, \"bg-transparent\");\nconst HeroPagination = withClassName(PrimitivePagination, \"justify-end\");\nconst HeroPaginationLink = withClassName(\n PrimitivePaginationLink,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover data-[active=true]:bg-accent data-[active=true]:text-accent-foreground\",\n);\nconst HeroPaginationFirst = withClassName(\n PrimitivePaginationFirst,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover\",\n);\nconst HeroPaginationPrevious = withClassName(\n PrimitivePaginationPrevious,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover\",\n);\nconst HeroPaginationNext = withClassName(\n PrimitivePaginationNext,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover\",\n);\nconst HeroPaginationLast = withClassName(\n PrimitivePaginationLast,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover\",\n);\nconst HeroScrollArea = withClassName(PrimitiveScrollArea, \"rounded-2xl\");\nconst HeroScrollBar = withClassName(\n PrimitiveScrollBar,\n \"[&>[data-slot=scroll-area-thumb]]:bg-default-500\",\n);\nconst HeroSelectTrigger = withClassName(\n PrimitiveSelectTrigger,\n \"rounded-field border-field-border bg-field text-field-foreground shadow-field\",\n);\nconst HeroSelectContent = withClassName(\n PrimitiveSelectContent,\n \"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden\",\n);\nconst HeroSelectItem = withClassName(\n PrimitiveSelectItem,\n \"rounded-xl focus:bg-default\",\n);\nconst HeroSeparator = withClassName(PrimitiveSeparator, \"bg-separator\");\nconst HeroSkeleton = withClassName(\n PrimitiveSkeleton,\n \"rounded-xl bg-default\",\n);\nconst HeroTable = withClassName(PrimitiveTable, \"rounded-2xl text-foreground\");\nconst HeroTableHeader = withClassName(\n PrimitiveTableHeader,\n \"[&_tr]:border-separator\",\n);\nconst HeroTableBody = withClassName(PrimitiveTableBody, \"\");\nconst HeroTableFooter = withClassName(\n PrimitiveTableFooter,\n \"border-separator bg-surface-secondary\",\n);\nconst HeroTableHead = withClassName(\n PrimitiveTableHead,\n \"h-11 border-separator text-muted font-semibold\",\n);\nconst HeroTableRow = withClassName(\n PrimitiveTableRow,\n \"border-separator hover:bg-default data-[state=selected]:bg-accent-soft\",\n);\nconst HeroTableCell = withClassName(PrimitiveTableCell, \"py-2.5\");\nconst HeroTooltipContent = withClassName(\n PrimitiveTooltipContent,\n \"rounded-xl bg-overlay text-overlay-foreground ring-1 ring-separator shadow-overlay [&>svg]:bg-overlay [&>svg]:fill-overlay\",\n);\nconst HeroEmpty = withClassName(\n PrimitiveEmpty,\n \"rounded-2xl border-separator bg-surface shadow-surface\",\n);\nconst HeroEmptyHeader = withClassName(PrimitiveEmptyHeader, \"\");\nconst HeroEmptyMedia = withClassName(\n PrimitiveEmptyMedia,\n \"[&[data-variant=icon]]:rounded-2xl [&[data-variant=icon]]:bg-accent-soft [&[data-variant=icon]]:text-accent-soft-foreground\",\n);\nconst HeroEmptyTitle = withClassName(PrimitiveEmptyTitle, \"text-foreground\");\nconst HeroEmptyDescription = withClassName(\n PrimitiveEmptyDescription,\n \"text-muted\",\n);\nconst HeroEmptyContent = withClassName(PrimitiveEmptyContent, \"\");\n\nexport const heroUiKit: DataTableUiKit = {\n ...primitiveUiKit,\n rootClassName: \"dtp-heroui\",\n classNames: {\n card: \"hover:bg-default data-[state=selected]:bg-accent-soft\",\n cardGrid: \"bg-transparent\",\n cardItem: \"min-w-0\",\n cardOverlay: \"from-surface/95 via-surface/85 to-transparent\",\n cardScrollArea: \"bg-transparent\",\n cardSelected: \"bg-accent-soft ring-accent\",\n cardUnselected: \"border-separator\",\n cardViewport: \"bg-transparent\",\n cellBorder: \"border-separator/70\",\n cellSelected: \"!bg-accent-soft ring-1 ring-inset ring-accent/50\",\n columnGroupHeader: \"bg-default/50 font-semibold\",\n dragActive: \"rounded-2xl border-dashed border-accent\",\n emptyState: \"border-separator bg-surface\",\n footer: \"border-separator bg-surface text-surface-foreground\",\n headerSortIcon: \"text-muted\",\n mutedText: \"text-muted\",\n paginationSelectTrigger: \"border-field-border bg-field\",\n paginationTotal: \"text-muted\",\n pinnedColumn: \"border-separator\",\n pinnedUtilityColumn: \"bg-surface\",\n resizeHandle: \"after:bg-separator hover:after:bg-accent\",\n resizeHandleActive: \"after:bg-accent\",\n row: \"hover:bg-default data-[state=selected]:!bg-accent-soft\",\n rowSelected: \"!bg-accent-soft\",\n tableContainer: \"border-separator bg-surface text-surface-foreground\",\n tableScrollArea: \"bg-surface\",\n tableStickyHeader:\n \"sticky top-0 z-30 bg-surface/95 backdrop-blur [&_th]:border-separator [&_th]:bg-surface/95\",\n toolbarCompactIconButton: \"size-7\",\n toolbarIconButton: \"text-muted hover:text-foreground\",\n toolbarInputButton: \"bg-field\",\n },\n Button: HeroButton,\n Card: HeroCard,\n CardContent: HeroCardContent,\n CardHeader: HeroCardHeader,\n Checkbox: HeroCheckbox,\n DropdownMenuCheckboxItem: HeroDropdownMenuCheckboxItem,\n DropdownMenuContent: HeroDropdownMenuContent,\n DropdownMenuItem: HeroDropdownMenuItem,\n DropdownMenuLabel: HeroDropdownMenuLabel,\n DropdownMenuRadioItem: HeroDropdownMenuRadioItem,\n DropdownMenuSeparator: HeroDropdownMenuSeparator,\n DropdownMenuSubContent: HeroDropdownMenuSubContent,\n DropdownMenuSubTrigger: HeroDropdownMenuSubTrigger,\n Empty: HeroEmpty,\n EmptyContent: HeroEmptyContent,\n EmptyDescription: HeroEmptyDescription,\n EmptyHeader: HeroEmptyHeader,\n EmptyMedia: HeroEmptyMedia,\n EmptyTitle: HeroEmptyTitle,\n Input: HeroInput,\n InputGroup: HeroInputGroup,\n InputGroupAddon: HeroInputGroupAddon,\n InputGroupInput: HeroInputGroupInput,\n Pagination: HeroPagination,\n PaginationFirst: HeroPaginationFirst,\n PaginationLast: HeroPaginationLast,\n PaginationLink: HeroPaginationLink,\n PaginationNext: HeroPaginationNext,\n PaginationPrevious: HeroPaginationPrevious,\n ScrollArea: HeroScrollArea,\n ScrollBar: HeroScrollBar,\n SelectContent: HeroSelectContent,\n SelectItem: HeroSelectItem,\n SelectTrigger: HeroSelectTrigger,\n Separator: HeroSeparator,\n Skeleton: HeroSkeleton,\n Table: HeroTable,\n TableBody: HeroTableBody,\n TableCell: HeroTableCell,\n TableFooter: HeroTableFooter,\n TableHead: HeroTableHead,\n TableHeader: HeroTableHeader,\n TableRow: HeroTableRow,\n TooltipContent: HeroTooltipContent,\n};\n"]} \ No newline at end of file +{"version":3,"sources":["../src/adapters/heroui/index.tsx"],"names":["withClassName","Component","defaultClassName","className","props","jsx","cn","HeroButton","Button","HeroCard","Card","HeroCardHeader","CardHeader","HeroCardContent","CardContent","HeroCheckbox","Checkbox","HeroDropdownMenuContent","DropdownMenuContent","HeroDropdownMenuItem","DropdownMenuItem","HeroDropdownMenuCheckboxItem","DropdownMenuCheckboxItem","HeroDropdownMenuRadioItem","DropdownMenuRadioItem","HeroDropdownMenuLabel","DropdownMenuLabel","HeroDropdownMenuSeparator","DropdownMenuSeparator","HeroDropdownMenuSubContent","DropdownMenuSubContent","HeroDropdownMenuSubTrigger","DropdownMenuSubTrigger","HeroInput","Input","HeroInputGroup","InputGroup","HeroInputGroupAddon","InputGroupAddon","HeroInputGroupInput","InputGroupInput","HeroPagination","Pagination","HeroPaginationLink","PaginationLink","HeroPaginationFirst","PaginationFirst","HeroPaginationPrevious","PaginationPrevious","HeroPaginationNext","PaginationNext","HeroPaginationLast","PaginationLast","HeroScrollArea","ScrollArea","HeroScrollBar","ScrollBar","HeroSelectTrigger","SelectTrigger","HeroSelectContent","SelectContent","HeroSelectItem","SelectItem","HeroSeparator","Separator","HeroSkeleton","Skeleton","HeroTable","Table","HeroTableHeader","TableHeader","HeroTableBody","TableBody","HeroTableFooter","TableFooter","HeroTableHead","TableHead","HeroTableRow","TableRow","HeroTableCell","TableCell","HeroTooltipContent","TooltipContent","HeroEmpty","Empty","HeroEmptyHeader","EmptyHeader","HeroEmptyMedia","EmptyMedia","HeroEmptyTitle","EmptyTitle","HeroEmptyDescription","EmptyDescription","HeroEmptyContent","EmptyContent","heroUiKit","primitiveUiKit"],"mappings":"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","file":"chunk-GIX7N3AJ.js","sourcesContent":["import * as React from \"react\";\nimport type { DataTableUiKit } from \"../../core/ui-kit\";\nimport {\n Button as PrimitiveButton,\n Card as PrimitiveCard,\n CardContent as PrimitiveCardContent,\n CardHeader as PrimitiveCardHeader,\n Checkbox as PrimitiveCheckbox,\n DropdownMenuCheckboxItem as PrimitiveDropdownMenuCheckboxItem,\n DropdownMenuContent as PrimitiveDropdownMenuContent,\n DropdownMenuItem as PrimitiveDropdownMenuItem,\n DropdownMenuLabel as PrimitiveDropdownMenuLabel,\n DropdownMenuRadioItem as PrimitiveDropdownMenuRadioItem,\n DropdownMenuSeparator as PrimitiveDropdownMenuSeparator,\n DropdownMenuSubContent as PrimitiveDropdownMenuSubContent,\n DropdownMenuSubTrigger as PrimitiveDropdownMenuSubTrigger,\n Empty as PrimitiveEmpty,\n EmptyContent as PrimitiveEmptyContent,\n EmptyDescription as PrimitiveEmptyDescription,\n EmptyHeader as PrimitiveEmptyHeader,\n EmptyMedia as PrimitiveEmptyMedia,\n EmptyTitle as PrimitiveEmptyTitle,\n Input as PrimitiveInput,\n InputGroup as PrimitiveInputGroup,\n InputGroupAddon as PrimitiveInputGroupAddon,\n InputGroupInput as PrimitiveInputGroupInput,\n Pagination as PrimitivePagination,\n PaginationFirst as PrimitivePaginationFirst,\n PaginationLast as PrimitivePaginationLast,\n PaginationLink as PrimitivePaginationLink,\n PaginationNext as PrimitivePaginationNext,\n PaginationPrevious as PrimitivePaginationPrevious,\n ScrollArea as PrimitiveScrollArea,\n ScrollBar as PrimitiveScrollBar,\n SelectContent as PrimitiveSelectContent,\n SelectItem as PrimitiveSelectItem,\n SelectTrigger as PrimitiveSelectTrigger,\n Separator as PrimitiveSeparator,\n Skeleton as PrimitiveSkeleton,\n Table as PrimitiveTable,\n TableBody as PrimitiveTableBody,\n TableCell as PrimitiveTableCell,\n TableFooter as PrimitiveTableFooter,\n TableHead as PrimitiveTableHead,\n TableHeader as PrimitiveTableHeader,\n TableRow as PrimitiveTableRow,\n TooltipContent as PrimitiveTooltipContent,\n primitiveUiKit,\n} from \"../../core/primitive-ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nfunction withClassName(\n Component: React.ComponentType,\n defaultClassName: string,\n) {\n return function Wrapped({ className, ...props }: TProps) {\n return (\n \n );\n };\n}\n\nconst HeroButton = withClassName(\n PrimitiveButton,\n \"rounded-field border-field-border shadow-field data-[variant=default]:bg-accent data-[variant=default]:text-accent-foreground data-[variant=outline]:border-field-border data-[variant=outline]:bg-field data-[variant=outline]:hover:bg-field-hover data-[variant=secondary]:bg-default data-[variant=secondary]:text-default-foreground data-[variant=ghost]:hover:bg-default data-[variant=destructive]:bg-danger-soft data-[variant=destructive]:text-danger\",\n);\nconst HeroCard = withClassName(\n PrimitiveCard,\n \"rounded-2xl border border-separator bg-surface text-surface-foreground shadow-surface ring-0\",\n);\nconst HeroCardHeader = withClassName(PrimitiveCardHeader, \"px-5 pt-5 pb-3\");\nconst HeroCardContent = withClassName(PrimitiveCardContent, \"px-5 pb-5\");\nconst HeroCheckbox = withClassName(\n PrimitiveCheckbox,\n \"rounded-field border-field-border bg-field ring-focus/40 data-checked:bg-accent data-checked:text-accent-foreground data-checked:ring-focus\",\n);\nconst HeroDropdownMenuContent = withClassName(\n PrimitiveDropdownMenuContent,\n \"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden **:data-[slot$=-item]:focus:bg-default **:data-[slot$=-item]:data-highlighted:bg-default **:data-[slot$=-separator]:bg-separator **:data-[slot$=-trigger]:focus:bg-default\",\n);\nconst HeroDropdownMenuItem = withClassName(\n PrimitiveDropdownMenuItem,\n \"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground data-[variant=destructive]:text-danger data-[variant=destructive]:focus:bg-danger-soft\",\n);\nconst HeroDropdownMenuCheckboxItem = withClassName(\n PrimitiveDropdownMenuCheckboxItem,\n \"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground\",\n);\nconst HeroDropdownMenuRadioItem = withClassName(\n PrimitiveDropdownMenuRadioItem,\n \"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground\",\n);\nconst HeroDropdownMenuLabel = withClassName(\n PrimitiveDropdownMenuLabel,\n \"text-muted\",\n);\nconst HeroDropdownMenuSeparator = withClassName(\n PrimitiveDropdownMenuSeparator,\n \"bg-separator\",\n);\nconst HeroDropdownMenuSubContent = withClassName(\n PrimitiveDropdownMenuSubContent,\n \"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden\",\n);\nconst HeroDropdownMenuSubTrigger = withClassName(\n PrimitiveDropdownMenuSubTrigger,\n \"rounded-xl text-overlay-foreground focus:bg-default focus:text-overlay-foreground data-open:bg-default data-open:text-overlay-foreground\",\n);\nconst HeroInput = withClassName(\n PrimitiveInput,\n \"rounded-field border-field-border bg-field text-field-foreground shadow-field placeholder:text-field-placeholder\",\n);\nconst HeroInputGroup = withClassName(\n PrimitiveInputGroup,\n \"rounded-field border-field-border bg-field text-field-foreground shadow-field\",\n);\nconst HeroInputGroupAddon = withClassName(\n PrimitiveInputGroupAddon,\n \"text-muted\",\n);\nconst HeroInputGroupInput = withClassName(PrimitiveInputGroupInput, \"bg-transparent\");\nconst HeroPagination = withClassName(PrimitivePagination, \"justify-end\");\nconst HeroPaginationLink = withClassName(\n PrimitivePaginationLink,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover data-[active=true]:bg-accent data-[active=true]:text-accent-foreground\",\n);\nconst HeroPaginationFirst = withClassName(\n PrimitivePaginationFirst,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover\",\n);\nconst HeroPaginationPrevious = withClassName(\n PrimitivePaginationPrevious,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover\",\n);\nconst HeroPaginationNext = withClassName(\n PrimitivePaginationNext,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover\",\n);\nconst HeroPaginationLast = withClassName(\n PrimitivePaginationLast,\n \"rounded-xl border-field-border bg-field text-field-foreground hover:bg-field-hover\",\n);\nconst HeroScrollArea = withClassName(PrimitiveScrollArea, \"rounded-2xl\");\nconst HeroScrollBar = withClassName(\n PrimitiveScrollBar,\n \"[&>[data-slot=scroll-area-thumb]]:bg-default-500\",\n);\nconst HeroSelectTrigger = withClassName(\n PrimitiveSelectTrigger,\n \"rounded-field border-field-border bg-field text-field-foreground shadow-field\",\n);\nconst HeroSelectContent = withClassName(\n PrimitiveSelectContent,\n \"rounded-2xl border border-separator bg-overlay text-overlay-foreground shadow-overlay ring-0 before:hidden\",\n);\nconst HeroSelectItem = withClassName(\n PrimitiveSelectItem,\n \"rounded-xl focus:bg-default\",\n);\nconst HeroSeparator = withClassName(PrimitiveSeparator, \"bg-separator\");\nconst HeroSkeleton = withClassName(\n PrimitiveSkeleton,\n \"rounded-xl bg-default\",\n);\nconst HeroTable = withClassName(PrimitiveTable, \"rounded-2xl text-foreground\");\nconst HeroTableHeader = withClassName(\n PrimitiveTableHeader,\n \"[&_tr]:border-separator\",\n);\nconst HeroTableBody = withClassName(PrimitiveTableBody, \"\");\nconst HeroTableFooter = withClassName(\n PrimitiveTableFooter,\n \"border-separator bg-surface-secondary\",\n);\nconst HeroTableHead = withClassName(\n PrimitiveTableHead,\n \"h-11 border-separator text-muted font-semibold\",\n);\nconst HeroTableRow = withClassName(\n PrimitiveTableRow,\n \"border-separator hover:bg-default data-[state=selected]:bg-accent-soft\",\n);\nconst HeroTableCell = withClassName(PrimitiveTableCell, \"py-2.5\");\nconst HeroTooltipContent = withClassName(\n PrimitiveTooltipContent,\n \"rounded-xl bg-overlay text-overlay-foreground ring-1 ring-separator shadow-overlay [&>svg]:bg-overlay [&>svg]:fill-overlay\",\n);\nconst HeroEmpty = withClassName(\n PrimitiveEmpty,\n \"rounded-2xl border-separator bg-surface shadow-surface\",\n);\nconst HeroEmptyHeader = withClassName(PrimitiveEmptyHeader, \"\");\nconst HeroEmptyMedia = withClassName(\n PrimitiveEmptyMedia,\n \"[&[data-variant=icon]]:rounded-2xl [&[data-variant=icon]]:bg-accent-soft [&[data-variant=icon]]:text-accent-soft-foreground\",\n);\nconst HeroEmptyTitle = withClassName(PrimitiveEmptyTitle, \"text-foreground\");\nconst HeroEmptyDescription = withClassName(\n PrimitiveEmptyDescription,\n \"text-muted\",\n);\nconst HeroEmptyContent = withClassName(PrimitiveEmptyContent, \"\");\n\nexport const heroUiKit: DataTableUiKit = {\n ...primitiveUiKit,\n rootClassName: \"dtp-heroui\",\n classNames: {\n card: \"hover:bg-default data-[state=selected]:bg-accent-soft\",\n cardGrid: \"bg-transparent\",\n cardItem: \"min-w-0\",\n cardOverlay: \"from-surface/95 via-surface/85 to-transparent\",\n cardScrollArea: \"bg-transparent\",\n cardSelected: \"bg-accent-soft ring-accent\",\n cardUnselected: \"border-separator\",\n cardViewport: \"bg-transparent\",\n cellBorder: \"border-separator/70\",\n cellSelected: \"!bg-accent-soft ring-1 ring-inset ring-accent/50\",\n columnGroupHeader: \"bg-default/50 font-semibold\",\n dragActive: \"rounded-2xl border-dashed border-accent\",\n emptyState: \"border-separator bg-surface\",\n footer: \"border-separator bg-surface text-surface-foreground\",\n headerSortIcon: \"text-muted\",\n mutedText: \"text-muted\",\n paginationSelectTrigger: \"border-field-border bg-field\",\n paginationTotal: \"text-muted\",\n pinnedColumn: \"border-separator\",\n pinnedUtilityColumn: \"bg-surface\",\n resizeHandle: \"after:bg-separator hover:after:bg-accent\",\n resizeHandleActive: \"after:bg-accent\",\n row: \"hover:bg-default data-[state=selected]:!bg-accent-soft\",\n rowSelected: \"!bg-accent-soft\",\n tableContainer: \"border-separator bg-surface text-surface-foreground\",\n tableScrollArea: \"bg-surface\",\n tableStickyHeader:\n \"sticky top-0 z-30 bg-surface/95 backdrop-blur [&_th]:border-separator [&_th]:bg-surface/95\",\n toolbarCompactIconButton: \"size-7\",\n toolbarIconButton: \"text-muted hover:text-foreground\",\n toolbarInputButton: \"bg-field\",\n },\n Button: HeroButton,\n Card: HeroCard,\n CardContent: HeroCardContent,\n CardHeader: HeroCardHeader,\n Checkbox: HeroCheckbox,\n DropdownMenuCheckboxItem: HeroDropdownMenuCheckboxItem,\n DropdownMenuContent: HeroDropdownMenuContent,\n DropdownMenuItem: HeroDropdownMenuItem,\n DropdownMenuLabel: HeroDropdownMenuLabel,\n DropdownMenuRadioItem: HeroDropdownMenuRadioItem,\n DropdownMenuSeparator: HeroDropdownMenuSeparator,\n DropdownMenuSubContent: HeroDropdownMenuSubContent,\n DropdownMenuSubTrigger: HeroDropdownMenuSubTrigger,\n Empty: HeroEmpty,\n EmptyContent: HeroEmptyContent,\n EmptyDescription: HeroEmptyDescription,\n EmptyHeader: HeroEmptyHeader,\n EmptyMedia: HeroEmptyMedia,\n EmptyTitle: HeroEmptyTitle,\n Input: HeroInput,\n InputGroup: HeroInputGroup,\n InputGroupAddon: HeroInputGroupAddon,\n InputGroupInput: HeroInputGroupInput,\n Pagination: HeroPagination,\n PaginationFirst: HeroPaginationFirst,\n PaginationLast: HeroPaginationLast,\n PaginationLink: HeroPaginationLink,\n PaginationNext: HeroPaginationNext,\n PaginationPrevious: HeroPaginationPrevious,\n ScrollArea: HeroScrollArea,\n ScrollBar: HeroScrollBar,\n SelectContent: HeroSelectContent,\n SelectItem: HeroSelectItem,\n SelectTrigger: HeroSelectTrigger,\n Separator: HeroSeparator,\n Skeleton: HeroSkeleton,\n Table: HeroTable,\n TableBody: HeroTableBody,\n TableCell: HeroTableCell,\n TableFooter: HeroTableFooter,\n TableHead: HeroTableHead,\n TableHeader: HeroTableHeader,\n TableRow: HeroTableRow,\n TooltipContent: HeroTooltipContent,\n};\n"]} \ No newline at end of file diff --git a/dist/chunk-I3CW6DTA.js b/dist/chunk-I3CW6DTA.js new file mode 100644 index 0000000..b0a76fd --- /dev/null +++ b/dist/chunk-I3CW6DTA.js @@ -0,0 +1,2 @@ +import {a as a$4}from'./chunk-EJHT5JBZ.js';import {a as a$3,e as e$1}from'./chunk-PRDXFLFB.js';import {d,a as a$1,b,h,k,s,x,j,B,r,c as c$1,e,g,f,v,w,t,i as i$1,p,o,y,u as u$1,C,l,n}from'./chunk-F2RBZWQV.js';import {c,p as p$1,u,k as k$1,m,s as s$1,a as a$5,r as r$1,q,l as l$1,j as j$1}from'./chunk-CVR2ZXHQ.js';import {a,i,b as b$1,d as d$1,e as e$2,c as c$2}from'./chunk-O6MUTKGE.js';import {a as a$2}from'./chunk-XTVBESM5.js';import*as T from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useReactTable,getPaginationRowModel,getExpandedRowModel,getSortedRowModel,getGroupedRowModel,getFacetedMinMaxValues,getFacetedUniqueValues,getFacetedRowModel,getFilteredRowModel,getCoreRowModel}from'@tanstack/react-table';import {flushSync}from'react-dom';function On({cardClassName:e,cardGridClassName:a,cardSizing:n,cardRenderer:i,currentRowSelection:r,currentDetailExpanded:l,DataTableCardView:d,DataTableEmptyState:p,dragAndDrop:u,editableRows:h,editingRowId:E,emptyNode:S,enableRowSelection:I,flexGrow:A,getRowClassName:G,hasCardTitle:J,infiniteScroll:V,localSearchValue:g,onRowClick:f,renderedRows:s,detailPanel:D,resolvedLabels:m,resolvedLoadingRowCount:v,rowActions:L=[],ScrollArea:C,scrollbarVisibility:$,sentinelRef:K,setCurrentDetailExpanded:_,setCurrentRowSelection:U,setEditingRowId:R,shouldRenderInitialLoading:b,stateOverlayNode:x,tableContainerClassName:k,uiClassNames:F}){let Q=b||s.length>0,P=T.useRef(null),q=(B,M)=>jsx(d,{rows:B,cardRenderer:i,cardGridClassName:a,cardClassName:e,cardSizing:n,rowActions:L,editableRows:h,detailPanel:D,detailExpanded:l,onDetailExpandedChange:_,hasCardTitle:J,rowSelection:r,onRowSelectionChange:U,enableRowSelection:I,editingRowId:E,onEditingRowIdChange:R,getRowClassName:G,onRowClick:f,getRowDraggable:u?.getRowDraggable,onRowDragStart:u?.onRowDragStart,onRowDragEnd:u?.onRowDragEnd,isLoading:M?.isLoading,loadingRowCount:M?.loadingRowCount,labels:m});return jsxs("div",{ref:P,"data-dtp-slot":"data-table-card-shell",className:a$2("relative box-border border-2 border-transparent transition-colors",A?"flex min-h-0 flex-1 flex-col":"h-full",u?.isDragging&&(F.dragActive??"rounded-md border-dashed")),children:[jsx(C,{type:$,className:a$2(A?"min-h-0 flex-1":"h-full",F.cardScrollArea,k),children:jsxs("div",{"data-dtp-slot":"data-table-card-viewport",className:a$2("flex min-h-full min-w-0 flex-col",A&&"min-h-0 flex-1",F.cardViewport),children:[Q?b?q([],{isLoading:true,loadingRowCount:v}):q(s):jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center p-4",children:S??jsx(p,{title:g?m.noMatchingRowsTitle:m.noRowsTitle,description:g?m.noMatchingRowsDescription:m.noRowsDescription})}),V?.enabled&&!b?jsx("div",{className:"shrink-0 px-4 pb-4",children:jsx("div",{ref:K,className:"h-4 w-full"})}):null]})}),x]})}var ds=T.lazy(async()=>({default:(await import('./data-table-virtual-card-panel-3PHPB23A.js')).DataTableVirtualCardPanel}));function Ci(e){let a=typeof e.virtualization=="object"?e.virtualization.card:void 0;return a?.enabled!==true?jsx(On,{...e}):jsx(T.Suspense,{fallback:jsx(On,{...e,renderedRows:e.renderedRows.slice(0,Math.max(1,Math.floor(a.fallbackCardCount??12)))}),children:jsx(ds,{...e})})}function Di({children:e,currentPagination:a,DataTableFooter:n,effectivePageCount:i,footerTotalRowCount:r,handleFooterPageIndexChange:l,handleFooterPageSizeChange:d,labels:p,pageCountKnown:u=true,rowsPerPageOptions:h,showFooter:E}){return !E&&!e?null:jsxs("div",{"data-dtp-slot":"data-table-footer",className:"shrink-0",children:[E?jsx(n,{pageIndex:a.pageIndex,pageCount:i,pageCountKnown:u,pageSize:a.pageSize,totalRowCount:r,rowsPerPageOptions:h,onPageIndexChange:l,onPageSizeChange:d,labels:p}):null,e]})}function yi({allRows:e,columnFilters:a,columnVisibilityOptions:n,compactToolbar:i,customToolbar:r,DataTableToolbar:l,description:d,descriptionId:p,effectiveToolbarActions:u,enableColumnPinning:h,enableGrouping:E,enableToolbarColumnChooser:S,enableToolbarFilterChips:I,enableToolbarResetLayout:A,enableToolbarSavedViews:G,enableDensityToggle:J,enableViewToggle:V,hiddenRowsLabel:g,labels:f,onClearColumnFilters:s,onColumnFilterChange:D,onColumnPinningChange:m,onDensityChange:v,onShowHiddenRowsChange:L,onToolbarQueryValueChange:C,reorderColumn:$,onResetColumnLayout:K,onCreateSavedView:_,onApplySavedView:U,onRenameSavedView:R,onDeleteSavedView:b,onViewModeChange:x,openFileDialog:k,selectedRowIds:F,selectedRows:Q,selectionActions:P,savedViews:q,showHiddenRows:B,table:M,title:W,titleId:ne,toolbarQueryPlaceholder:be,toolbarQueryValue:fe,toolbarVisibility:De,density:Se,viewMode:Te}){return jsx("div",{"data-dtp-slot":"data-table-toolbar",className:"shrink-0",children:jsx(l,{title:W,titleId:ne,description:d,descriptionId:p,toolbarQueryValue:fe,toolbarQueryPlaceholder:be,onToolbarQueryValueChange:C,reorderColumn:$,customToolbar:r,compactToolbar:i,viewMode:Te,onViewModeChange:x,enableViewToggle:V,toolbarActions:u,selectionActions:P,selectedRowIds:F,selectedRows:Q,showHiddenRows:B,hiddenRowsLabel:g,onShowHiddenRowsChange:L,allRows:e,columnVisibilityOptions:n,onColumnVisibilityChange:(Ee,Oe)=>{M.getColumn(Ee)?.toggleVisibility(Oe);},enableColumnPinning:h,enableGrouping:E,enableToolbarColumnChooser:S,enableToolbarFilterChips:I,enableToolbarResetLayout:A,enableToolbarSavedViews:G,onColumnPinningChange:m,columnFilters:a,onColumnFilterChange:D,onClearColumnFilters:s,onResetColumnLayout:K,onCreateSavedView:_,onApplySavedView:U,onRenameSavedView:R,onDeleteSavedView:b,density:Se,onDensityChange:v,enableDensityToggle:J,labels:f,toolbarVisibility:De,openFileDialog:k,savedViews:q,table:M})})}var oe={searchPlaceholder:"Search rows...",searchTable:"Search table",clearSearch:"Clear search",noRowsTitle:"No rows yet",noRowsDescription:"Create a record or refresh this view once data exists.",noMatchingRowsTitle:"No matching rows",noMatchingRowsDescription:"Try a different search term or clear filters.",tableOptions:"Show table options",columns:"Columns",filters:"Filters",clearFilters:"Clear filters",filterFrom:"From",filterTo:"To",filterTrue:"Yes",filterFalse:"No",selectedRows:e=>`${e} record${e===1?"":"s"} selected`,showHiddenRows:e=>`Show ${e}`,recordsPerPage:"Records per page",totalRecords:e=>`Total records: ${e}`,pageStatus:(e,a)=>`Page ${e+1} of ${a}`,pageStatusUnknown:e=>`Page ${e+1}`,pagination:"Pagination",morePages:"More pages",firstPage:"First page",previousPage:"Previous page",nextPage:"Next page",lastPage:"Last page",selectAllVisibleRows:"Select all visible rows",selectAllFilteredRows:"Select all filtered rows",selectRow:"Select row",selectCardRow:e=>`Select row ${e}`,switchToTableView:"Switch to table view",switchToCardView:"Switch to card view",tableView:"Table view",cardView:"Card view",allFilterOptions:"All",actions:"Actions",rowActions:"Row actions",editRow:"Edit row",saveEdit:"Save",cancelEdit:"Cancel editing",expandRow:"Expand row",collapseRow:"Collapse row",expandRowDetails:"Expand row details",collapseRowDetails:"Collapse row details",exportCsv:"Export CSV",print:"Print table",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",errorTitle:"Unable to load this table",errorDescription:"Try again or check your connection.",retry:"Retry",density:"Density",compactDensity:"Compact",comfortableDensity:"Comfortable",spaciousDensity:"Spacious",pinLeft:"Pin left",pinRight:"Pin right",unpin:"Unpin",pinRowToTop:"Pin row to top",pinRowToBottom:"Pin row to bottom",unpinRow:"Unpin row",resizeColumn:e=>`Resize ${e}`,grouping:"Grouping",groupBy:e=>`Group by ${e}`,ungroup:e=>`Ungroup ${e}`,removeGrouping:e=>`Remove ${e} grouping`,moveGroupingEarlier:e=>`Move ${e} grouping earlier`,moveGroupingLater:e=>`Move ${e} grouping later`,facetSearch:e=>`Search ${e} options`,searchColumns:"Search columns",showAllColumns:"Show all columns",hideAllColumns:"Hide all columns",moveColumnEarlier:e=>`Move ${e} earlier`,moveColumnLater:e=>`Move ${e} later`,resetColumnLayout:"Reset column layout",savedViews:"Saved views",createSavedView:"Create saved view",savedViewName:"View name",applySavedView:e=>`Apply saved view ${e}`,renameSavedView:e=>`Rename saved view ${e}`,deleteSavedView:e=>`Delete saved view ${e}`,saveSavedView:"Save view"};function Ri(e){return {...oe,...e}}function Si({Button:e,Checkbox:a,DataTableRowActions:n,Tooltip:i,TooltipContent:r,TooltipTrigger:l,cancelEditing:d$1,columns:p,editableRows:u,editingRowId:h$1,editErrors:E,enableRowSelection:S,enableRowPinning:I,hasTreeExpansion:A,isSavingEdit:G,isEditDirty:J,includeFillSpacer:V=false,labels:g,lastSelectedRowIdRef:f,detailPanel:s,detailExpanded:D,onDetailExpandedChange:m,rowSelectionSelectAllScope:v,rowActions:L,saveEdit:C,startEditingRow:$,tableRef:K}){let _=T.useCallback((U,R)=>{let b=K.current;if(!b||!f.current)return;let x=b.getRowModel().rows.filter(q=>!d(q.original)),k=x.findIndex(q=>q.id===f.current),F=x.findIndex(q=>q.id===U);if(k<0||F<0)return;let Q=Math.min(k,F),P=Math.max(k,F);b.setRowSelection(q=>{let B={...q};for(let M of x.slice(Q,P+1).filter(W=>W.getCanSelect()&&W.getCanMultiSelect()))R?B[M.id]=true:delete B[M.id];return B});},[f,K]);return T.useMemo(()=>{let U=[];if(A||s){let R=A&&s?80:a$1;U.push({id:"__expand__",enableResizing:false,enableSorting:false,enableHiding:false,size:R,minSize:R,maxSize:R,header:()=>jsx("span",{className:"sr-only",children:g.expandRow}),cell:({row:b$1,table:x})=>{let k=A&&b$1.getCanExpand(),F=!!(s&&(s.getRowCanExpand?.(b$1.original)??true));if(!k&&!F)return null;let Q=b$1.getIsExpanded(),P=D===true||!!D[b$1.id];return jsxs("div",{className:"flex items-center justify-center gap-1",children:[k?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":Q?g.collapseRow:g.expandRow,"aria-expanded":Q,"data-tree-toggle":"true",onClick:()=>b$1.toggleExpanded(),children:jsx(c,{className:a$2("transition-transform",Q?"rotate-0":"-rotate-90")})}):null,F?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":P?A?g.collapseRowDetails??oe.collapseRowDetails:g.collapseRow:A?g.expandRowDetails??oe.expandRowDetails:g.expandRow,"aria-expanded":P,"data-detail-toggle":"true",onClick:()=>{m(q=>b(q,b$1.id,x.getCoreRowModel().flatRows.map(B=>B.id)));},children:jsx(c,{className:a$2("transition-transform",P?"rotate-0":"-rotate-90")})}):null]})}});}return S&&U.push({id:"__select__",enableResizing:false,enableSorting:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:({table:R})=>{let b=v==="filtered",x=(b?R.getFilteredRowModel().flatRows:R.getRowModel().flatRows).filter(P=>P.getCanSelect()&&P.getCanMultiSelect()),k=x.length>0&&x.every(P=>P.getIsSelected()),F=x.some(P=>P.getIsSelected()),Q=b?g.selectAllFilteredRows??oe.selectAllFilteredRows:g.selectAllVisibleRows??oe.selectAllVisibleRows;return x.length===0?jsx("span",{className:"sr-only",children:Q}):jsx("div",{className:"flex items-center justify-center",children:jsx(a,{className:"my-0.5",checked:k?true:F?"indeterminate":false,onCheckedChange:P=>{R.setRowSelection(q=>{let B={...q};for(let M of x)P===true?B[M.id]=true:delete B[M.id];return B});},"aria-label":Q})})},cell:({row:R})=>jsx("div",{className:"flex items-center justify-center",children:jsx(a,{className:"my-0.5",checked:R.getIsSelected(),disabled:!R.getCanSelect(),onClick:b=>{if(!b.shiftKey||!f.current||!R.getCanMultiSelect()){f.current=R.id;return}b.preventDefault(),b.stopPropagation(),_(R.id,!R.getIsSelected()),f.current=R.id;},onCheckedChange:b=>{f.current=R.id,R.toggleSelected(b===true);},"aria-label":g.selectRow??oe.selectRow})})}),U.push(...p.map(R=>h(R))),V&&U.push({id:"__spacer__",cell:()=>null,header:()=>null,enableColumnFilter:false,enableGlobalFilter:false,enableGrouping:false,enableHiding:false,enablePinning:false,enableResizing:false,enableSorting:false,minSize:0,size:0}),(L.length||u||I)&&U.push({id:"__actions__",enableSorting:false,enableResizing:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:()=>jsx("span",{className:"sr-only",children:g.actions}),cell:({row:R})=>{let b=R.id;return h$1===b?jsxs("div",{className:"flex w-full items-center justify-end gap-2",children:[E._row?jsx("span",{className:"sr-only",role:"alert",children:E._row}):null,jsx(e,{type:"button",size:"sm",disabled:G||!J,onClick:()=>{C(R.original);},children:g.saveEdit}),jsxs(i,{children:[jsx(l,{asChild:true,children:jsxs(e,{type:"button",size:"icon-sm",variant:"ghost",onClick:d$1,children:[jsx(c,{className:"rotate-45"}),jsx("span",{className:"sr-only",children:g.cancelEdit})]})}),jsx(r,{children:g.cancelEdit})]})]}):jsx("div",{className:"flex w-full items-center justify-center",children:jsx(n,{row:R.original,rowActions:L,editableRows:u,isEditing:false,onStartEditing:()=>{$(R.original,R.id);},onCancelEditing:()=>{},labels:g,rowPinning:I?{canPin:R.getCanPin(),position:R.getIsPinned(),pin:k=>R.pin(k)}:void 0})})}}),U},[e,a,n,i,r,l,d$1,p,u,D,s,E,h$1,S,I,A,V,G,J,g,f,m,v,L,C,_,$])}function Re({defaultValue:e,onChange:a,value:n}){let[i,r]=T.useState(e),l=n??i,d=T.useRef(l);T.useEffect(()=>{d.current=l;},[l]);let p=T.useCallback(u=>{let h=typeof u=="function"?u(d.current):u;d.current=h,a?.(h),n===void 0&&r(h);},[a,n]);return [l,p]}function vi({enabled:e,hasMore:a,isLoadingMore:n,onLoadMore:i,onError:r}){let l=T.useRef(null),d=T.useRef(false),p=T.useEffectEvent(i),u=T.useEffectEvent(h=>{r?.(h);});return T.useEffect(()=>{if(!e||!a||n)return;let h=l.current;if(!h)return;let E=new IntersectionObserver(S=>{if(S[0].isIntersecting&&!d.current){d.current=true;let A;try{A=p();}catch(G){d.current=false,u(G);return}Promise.resolve(A).catch(G=>{u(G);}).finally(()=>{d.current=false;});}},{rootMargin:"200px 0px 200px 0px"});return E.observe(h),()=>{E.disconnect();}},[e,a,n]),l}function xi({enabled:e,maxPageIndex:a,onPageIndexChange:n,pageIndex:i,setLocalPageIndex:r}){T.useEffect(()=>{if(!e||i>=0&&i<=a)return;let l=Math.min(Math.max(i,0),a);r(l),n?.(l);},[e,a,n,i,r]);}function ki(){return T.useMemo(()=>{let e=new WeakMap;return (a,n,i)=>{let r=o(i);if(!r)return true;let l=a.original;if(typeof l!="object"||l===null)return o(a.getValue(n)).includes(r);let d=e.get(l);d||(d=new Map,e.set(l,d));let p=d.get(n);if(p===void 0){let u=a.getValue(n);p=o(u),d.set(n,p);}return p.includes(r)}},[])}function Mi({autoResetPageIndex:e,columnGroupPaths:a,columnResizeMode:n,dir:i,currentColumnFilters:r,currentColumnOrder:l,currentColumnPinning:d$1,currentRowPinning:p,currentColumnSizing:u,currentExpanded:h,currentGrouping:E,currentPagination:S,currentRowSelection:I,currentSorting:A,currentViewMode:G,defaultColumn:J,effectiveColumnVisibility:V,enableColumnResizing:g,enableMultiRowSelection:f,enableRowPinning:s$1,enableRowSelection:D,enableSubRowSelection:m,getRowCanSelect:v,getRowCanExpand:L,getSubRows:C,aggregationFns:$,groupedColumnMode:K,globalFilterFn:_,globalFilterValue:U,hasNextPage:R,handleColumnFiltersChange:b,handleColumnOrderChange:x$1,handleColumnPinningChange:k$1,handleRowPinningChange:F,handleColumnVisibilityChange:Q,handleExpandedChange:P,handleGroupingChange:q,infiniteScroll:B$1,keepPinnedRows:M,manualFiltering:W,manualGrouping:ne,manualExpanding:be,manualPagination:fe,manualSorting:De,onActionError:Se,onPageIndexChange:Te,onPageSizeChange:Ee,pageCount:Oe,pageIndex:X,pageSize:he,paginateExpandedRows:z,filterFromLeafRows:we,maxLeafRowFilterDepth:$e,setCurrentRowSelection:na,setCurrentSorting:Ye,setLocalColumnSizing:oa,setLocalPagination:de,shouldRenderInitialLoading:ia,tableColumns:Ae,tableData:pa,tableGetRowId:_e,tableRef:Ra,totalRowCount:ga,virtualization:Je}){let ma=ki(),ye=T.useMemo(()=>k(Ae).map(({column:t,index:w})=>s(t,w)),[Ae]),ra=T.useMemo(()=>{let t=ye,w=t.filter(N=>!x(N)&&N!=="__spacer__"),j=new Set(w),ue=l.filter(N=>j.has(N)),ae=w.filter(N=>!ue.includes(N));return [...t.filter(N=>N==="__expand__"||N==="__select__"),...ue,...ae,...t.filter(N=>N==="__spacer__"),...t.filter(N=>N==="__actions__")]},[l,ye]),He=T.useMemo(()=>{let t=new Set(ye),w=new Set(ye.filter(ae=>!x(ae)&&ae!=="__spacer__")),j=(d$1.left??[]).filter(ae=>w.has(ae)),ue=(d$1.right??[]).filter(ae=>w.has(ae));return {left:[...["__expand__","__select__"].filter(ae=>t.has(ae)),...j],right:[...ue,...["__actions__"].filter(ae=>t.has(ae))]}},[d$1,ye]),la=T.useMemo(()=>{let t=new Set,w=N=>{N.forEach((ea,Oa)=>{if(t.add(_e(ea,Oa)),!d(ea)){let _a=C?.(ea,Oa);_a?.length&&w(_a);}});};w(pa);let j=(p.top??[]).filter(N=>t.has(N)),ue=new Set(j),ae=(p.bottom??[]).filter(N=>t.has(N)&&!ue.has(N));return {top:j,bottom:ae}},[p.bottom,p.top,C,pa,_e]),ve=T.useMemo(()=>({sorting:A,pagination:S,rowSelection:I,columnVisibility:V,columnFilters:r,globalFilter:U,expanded:h,grouping:E,columnOrder:ra,columnPinning:He,rowPinning:la,columnSizing:u}),[r,u,h,E,S,I,A,V,ra,He,la,U]),Be=T.useCallback(t=>{let w=typeof t=="function"?t(S):t;(X===void 0||he===void 0)&&de(j=>({pageIndex:X===void 0?w.pageIndex:j.pageIndex,pageSize:he===void 0?w.pageSize:j.pageSize})),w.pageIndex!==S.pageIndex&&Te?.(w.pageIndex),w.pageSize!==S.pageSize&&Ee?.(w.pageSize);},[S,Te,Ee,X,he,de]),Sa=T.useCallback(t=>{oa(t);},[oa]),Xe=T.useMemo(()=>{let t=false,w=false;for(let{column:j}of k(Ae))t||=j.meta?.filter?.type==="faceted",w||=j.meta?.filter?.type==="numberRange";return {minMaxValues:w,uniqueValues:t}},[Ae]),ce=useReactTable({data:pa,columns:Ae,getCoreRowModel:getCoreRowModel(),getFilteredRowModel:W?void 0:getFilteredRowModel(),getFacetedRowModel:(Xe.uniqueValues||Xe.minMaxValues)&&!W?getFacetedRowModel():void 0,getFacetedUniqueValues:Xe.uniqueValues&&!W?getFacetedUniqueValues():void 0,getFacetedMinMaxValues:Xe.minMaxValues&&!W?getFacetedMinMaxValues():void 0,getGroupedRowModel:E.length&&!ne?getGroupedRowModel():void 0,getSortedRowModel:De?void 0:getSortedRowModel(),getExpandedRowModel:(C||E.length)&&!be?getExpandedRowModel():void 0,getPaginationRowModel:fe||B$1?.enabled?void 0:getPaginationRowModel(),enableRowSelection:v?t=>D&&v(t.original):D,enableRowPinning:typeof s$1=="function"?t=>s$1(t.original):s$1,keepPinnedRows:M,enableMultiRowSelection:typeof f=="function"?t=>f(t.original):f,enableSubRowSelection:typeof m=="function"?t=>m(t.original):m,enableColumnResizing:g,columnResizeMode:n,columnResizeDirection:i,getRowId:_e,getSubRows:C,getRowCanExpand:C?t=>L?.(t.original)??t.subRows.length>0:void 0,globalFilterFn:_??ma,getColumnCanGlobalFilter:t=>t.columnDef.enableGlobalFilter!==false&&typeof t.accessorFn=="function",manualSorting:De,manualGrouping:ne,manualFiltering:W,manualExpanding:be,manualPagination:fe||!!B$1?.enabled,paginateExpandedRows:z,filterFromLeafRows:we,maxLeafRowFilterDepth:$e,defaultColumn:J,autoResetPageIndex:e,state:ve,onSortingChange:Ye,onPaginationChange:Be,onRowSelectionChange:na,onColumnVisibilityChange:Q,onColumnFiltersChange:b,onExpandedChange:P,onGroupingChange:q,onColumnOrderChange:x$1,onColumnPinningChange:k$1,onRowPinningChange:F,onColumnSizingChange:Sa,aggregationFns:$,groupedColumnMode:K});Ra.current=ce;let va=ce.getVisibleLeafColumns(),ba=T.useCallback((t,w)=>{if(t===w||!j(t,w,a))return;let j$1=ce.getAllLeafColumns().map(ae=>ae.id).filter(ae=>!x(ae)&&ae!=="__spacer__"),ue=B(l.length?l:j$1,t,w);x$1(ue);},[a,l,x$1,ce]),fa=ce.getTopRows(),Fe=ce.getBottomRows(),Ue=G==="table"?ce.getCenterRows():ce.getRowModel().rows,Ta=typeof Je=="object"?Je:void 0,Ge=Je===true||Ta?.enabled===true,La=Math.max(1,Math.floor(Ta?.fallbackRowCount??20)),ke=(Ge?Ue.slice(0,La):Ue).map((t,w)=>({row:t,rowIndex:w})),je=fe||!!B$1?.enabled,sa=je?void 0:ce.getFilteredRowModel().rows.length,da=ga??sa,Ze=!je||Oe!==void 0||ga!==void 0,xa=da,Ke=ia?1:Oe??(da!==void 0?Math.max(1,Math.ceil(da/S.pageSize)):je?S.pageIndex+(R?2:1):ce.getPageCount()),wa=Math.max(0,Ke-1),Na=T.useCallback(t=>{X===void 0&&de(w=>w.pageIndex===t?w:{...w,pageIndex:t});},[X,de]);xi({enabled:!ia&&!B$1?.enabled&&Ze,maxPageIndex:wa,onPageIndexChange:Te,pageIndex:S.pageIndex,setLocalPageIndex:Na});let We=T.useCallback(t=>{t!==S.pageIndex&&(Te?.(t),X===void 0&&de(w=>w.pageIndex===t?w:{...w,pageIndex:t}));},[S.pageIndex,Te,X,de]),Ea=T.useCallback(t=>{S.pageIndex!==0&&Te?.(0),t!==S.pageSize&&Ee?.(t),he===void 0&&de({pageIndex:0,pageSize:t});},[S.pageIndex,S.pageSize,Te,Ee,he,de]),ka=vi({enabled:!!B$1?.enabled,hasMore:!!B$1?.hasMore,isLoadingMore:B$1?.isLoadingMore,onLoadMore:()=>B$1?.onLoadMore(),onError:t=>{Se?.({error:t,source:"infiniteScroll"});}});return {effectivePageCount:Ke,footerTotalRowCount:xa,handleFooterPageIndexChange:We,handleFooterPageSizeChange:Ea,isPageCountKnown:Ze,renderedRows:Ue,topPinnedRows:fa,bottomPinnedRows:Fe,reorderColumn:ba,rowsToRender:ke,sentinelRef:ka,table:ce,virtualPaddingBottom:0,virtualPaddingTop:0,visibleLeafColumns:va}}var ys="data-table-pro:column-prefs:",Ai=1,Vi=["visibility","sizing","order","pinning","rowPinning","density"];function Fi(e){let a=_n(e);if(!a)return {};let n=Hn(a);if(!n)return {};let i=Bn(a.key),r;try{r=n.getItem(i);}catch(u){return a.onError?.({error:u,operation:"read"}),{}}if(!r)return {};let l;try{l=(a.deserialize??JSON.parse)(r);}catch(u){return a.onError?.({error:u,operation:"deserialize"}),{}}let d=a.version??Ai,p;if(Rs(l))if(l.version===d)p=l.state;else if(a.migrate)try{p=a.migrate({version:l.version,state:l.state},d);}catch(u){return a.onError?.({error:u,operation:"migrate"}),{}}else return {};else p=l;return Li(Ss(p),a.slices)}function Ii(e){let a=_n(e);if(!a)return false;let n=Hn(a);if(!n)return false;try{return n.removeItem(Bn(a.key)),!0}catch(i){return a.onError?.({error:i,operation:"remove"}),false}}function zi({key:e,persistence:a,prefs:n}){let i=a??_n(e),r=i?Hn(i):void 0,l=i?Bn(i.key):void 0,d=i?.version??Ai,p=Math.max(0,i?.debounceMs??100),u=Li(n,i?.slices),h=T.useMemo(()=>{if(!i)return {value:void 0};try{let S={version:d,state:u};return {value:(i.serialize??JSON.stringify)(S)}}catch(S){return {error:S,value:void 0}}},[i,u,d]),E=T.useEffectEvent((S,I)=>{i?.onError?.({error:S,operation:I});});T.useEffect(()=>{h.error!==void 0&&E(h.error,"serialize");},[h.error]),T.useEffect(()=>{if(!r||!l||h.value===void 0)return;let S=()=>{try{if(r.getItem(l)===h.value)return;r.setItem(l,h.value);}catch(A){E(A,"write");}};if(p===0){S();return}let I=globalThis.setTimeout(S,p);return ()=>{globalThis.clearTimeout(I);}},[p,h.value,r,l]);}function _n(e){if(e)return typeof e=="string"?{key:e}:e}function Hn(e){if(e.storage)return e.storage;if(!(typeof window>"u"))try{return window.localStorage}catch(a){e.onError?.({error:a,operation:"read"});return}}function Bn(e){return `${ys}${e}`}function Rs(e){return nt(e)&&Object.prototype.hasOwnProperty.call(e,"version")&&Object.prototype.hasOwnProperty.call(e,"state")}function Li(e,a){let n=new Set(a??Vi),i={};for(let r of Vi)n.has(r)&&e[r]!==void 0&&Object.assign(i,{[r]:e[r]});return i}function Ss(e){if(!nt(e))return {};let a={},n=vs(e.visibility);n&&(a.visibility=n);let i=Ps(e.sizing);i&&(a.sizing=i);let r=mt(e.order);if(r&&(a.order=r),nt(e.pinning)){let d=mt(e.pinning.left)??[],p=mt(e.pinning.right)??[];a.pinning={left:d,right:p};}let l=xs(e.rowPinning);return l&&(a.rowPinning=l),Es(e.density)&&(a.density=e.density),a}function vs(e){if(nt(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="boolean"))}function Ps(e){if(nt(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="number"&&Number.isFinite(a[1])&&a[1]>=0))}function mt(e){if(Array.isArray(e))return e.filter(a=>typeof a=="string")}function xs(e){if(nt(e))return {top:mt(e.top)??[],bottom:mt(e.bottom)??[]}}function Es(e){return e==="compact"||e==="comfortable"||e==="spacious"}function nt(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var ks=Object.values(a).slice().sort((e,a)=>e-a);function Ni(e){let a=T.useRef(0),[n,i]=T.useState(0);return T.useEffect(()=>{let r=e.current;if(!r)return;let l=(p=r.clientWidth)=>{let u=Ms(p);u!==a.current&&(a.current=u,i(u));};if(l(),typeof ResizeObserver>"u")return;let d=new ResizeObserver(p=>{let u=p[0];l(u?Vs(u):void 0);});return d.observe(r),()=>{d.disconnect();}},[e]),n}function Ms(e){if(e<=0)return 0;let a=1;for(let n of ks){if(ed$1??(l?{key:l}:void 0),[l,d$1]),we=T.useMemo(()=>Fi(z),[z]),[$e,na]=T.useState({pageIndex:f?.pagination?.pageIndex??0,pageSize:f?.pagination?.pageSize??be[0]??20}),[Ye,oa]=Re({value:Se,onChange:Q,defaultValue:()=>f?.sorting??[]}),[de,ia]=Re({value:ne,onChange:k$1,defaultValue:()=>f?.rowSelection??{}}),[Ae,pa]=Re({value:p,onChange:_,defaultValue:()=>f?.columnVisibility??we.visibility??{}}),[_e,Ra]=Re({value:e$1,onChange:v,defaultValue:()=>f?.columnFilters??[]}),[ga,Je]=Re({value:A,onChange:R,defaultValue:()=>f?.expanded??{}}),[ma,ye]=Re({value:a,onChange:L,defaultValue:()=>f?.columnOrder??we.order??[]}),[ra,He]=Re({value:n,onChange:C,defaultValue:()=>f?.columnPinning??we.pinning??r(u)}),[la,ve]=Re({value:i$1,onChange:$,defaultValue:()=>f?.rowPinning??we.rowPinning??{top:[],bottom:[]}}),[Be,Sa]=Re({value:r$1,onChange:K,defaultValue:()=>f?.columnSizing??we.sizing??{}}),[Xe,ce]=Re({value:X,onChange:q,defaultValue:()=>f?.viewMode??"table"}),[va,ba]=Re({value:G,onChange:b,defaultValue:()=>f?.grouping??[]}),[fa,Fe]=Re({value:De,onChange:F,defaultValue:()=>f?.showHiddenRows??false}),[Ue,Ta]=Re({value:E,onChange:U,defaultValue:()=>f?.density??we.density??"comfortable"}),Ge=Oe??f?.globalFilter??"",La=Ee??W.searchPlaceholder,Pa=Te??250,[ke,je]=T.useState(Ge),sa=Ni(he),da=!!P,Ze=T.useRef(Ge),xa=T.useEffectEvent(H=>{Ze.current=H,P?.(H);});T.useEffect(()=>{Ze.current=Ge,je(Ge);},[Ge]),T.useEffect(()=>{if(!da||ke===Ge||ke===Ze.current)return;let H=window.setTimeout(()=>{xa(ke);},Pa);return ()=>{window.clearTimeout(H);}},[da,ke,Pa,Ge]);let Ke=T.useMemo(()=>({pageIndex:B??$e.pageIndex,pageSize:M??$e.pageSize}),[$e.pageIndex,$e.pageSize,B,M]),wa=Math.max(1,D??Math.min(5,Ke.pageSize)),Na=T.useDeferredValue(ke),We=I?m?ke:Na:"",Ea=T.useCallback(H=>{ce(H);},[ce]),ka=T.useCallback(H=>{Fe(H);},[Fe]),t=T.useCallback(H=>{Ta(H);},[Ta]),w=T.useCallback(()=>{x?.(0),B===void 0&&na(H=>H.pageIndex===0?H:{...H,pageIndex:0});},[x,B]),j=T.useRef({columnFilters:_e,globalFilterValue:We});T.useEffect(()=>{let H=j.current,Pe=H.columnFilters!==_e,re=H.globalFilterValue!==We;j.current={columnFilters:_e,globalFilterValue:We},!m&&(!Pe&&!re||w());},[_e,We,m,w]),zi({persistence:z,prefs:{visibility:p?void 0:Ae,sizing:r$1===void 0?Be:void 0,order:a?void 0:ma,pinning:n?void 0:ra,rowPinning:i$1===void 0?la:void 0,density:E?void 0:Ue}});let ue=T.useMemo(()=>k(u).reduce((H,{column:Pe,index:re})=>{let ca=s(Pe,re);return i(Pe.meta?.hideOn,sa)&&(H[ca]=false),H},{}),[u,sa]),ae=T.useMemo(()=>({...Ae,...ue}),[Ae,ue]),N=T.useMemo(()=>h.filter(H=>b$1(H,g,fa)),[fa,h,g]),ea=s$1&&N.length===0,Oa=T.useMemo(()=>c$1(wa),[wa]),_a=ea?Oa:N,Yt=T.useCallback((H,Pe)=>d(H)?e(Pe):V(H,Pe),[V]),Ma=S||(fe?.length??0)>0||Object.values(de).some(Boolean),rt=T.useMemo(()=>{if(!Ma)return new Map;let H=new Map,Pe=re=>{re.forEach((ca,te)=>{H.set(V(ca,te),ca);let pe=J?.(ca,te);pe?.length&&Pe(pe);});};return Pe(N),H},[V,J,Ma,N]),Jt=T.useMemo(()=>Ma?Object.entries(de).filter(([,H])=>H).map(([H])=>rt.get(H)).filter(H=>!!H):[],[de,rt,Ma]),Xt=T.useMemo(()=>Object.entries(de).flatMap(([H,Pe])=>Pe?[H]:[]),[de]);return {containerWidth:sa,currentColumnFilters:_e,currentColumnOrder:ma,currentColumnPinning:ra,currentRowPinning:la,currentColumnSizing:Be,currentColumnVisibility:Ae,currentDensity:Ue,currentExpanded:ga,currentGrouping:va,currentPagination:Ke,currentRowSelection:de,currentShowHiddenRows:fa,currentSorting:Ye,currentViewMode:Xe,effectiveColumnVisibility:ae,globalFilterValue:We,handleDensityChange:t,handleShowHiddenRowsChange:ka,handleViewModeChange:Ea,localSearchValue:ke,resolvedLoadingRowCount:wa,resolvedToolbarQueryPlaceholder:La,selectedRowIds:Xt,selectedRows:Jt,setCurrentColumnFilters:Ra,setCurrentColumnOrder:ye,setCurrentColumnPinning:He,setCurrentRowPinning:ve,setCurrentColumnVisibility:pa,setCurrentExpanded:Je,setCurrentGrouping:ba,setCurrentRowSelection:ia,setCurrentSorting:oa,setLocalColumnSizing:Sa,setLocalPagination:na,setLocalSearchValue:je,shouldRenderInitialLoading:ea,tableData:_a,tableGetRowId:Yt,toolbarFilteredData:N,visibleData:N}}var Fs={cellStyle:void 0,colStyle:void 0,fixedSide:void 0,headerStyle:void 0,isActionsColumn:false,isExpansionColumn:false,isSelectionColumn:false,isSpacerColumn:false,isUtilityColumn:false,pinnedClassName:void 0,utilityClassName:void 0};function Hi({columns:e,columnSizing:a,editableRows:n,enableRowSelection:i,hasRowActions:r,hasRowExpansion:l,layoutMode:d,uiClassNames:p,visibleLeafColumns:u}){let h=T.useMemo(()=>{let V=new Set;for(let{column:g$1,index:f}of k(e))g(g$1)&&V.add(s(g$1,f));return i&&V.add("__select__"),l&&V.add("__expand__"),(r||n)&&V.add("__actions__"),V},[e,n,i,r,l]),E=T.useMemo(()=>{let V=new Map;for(let{column:g,index:f$1}of k(e)){let s$1=f(g);s$1!==void 0&&V.set(s(g,f$1),s$1);}return V},[e]),S=T.useMemo(()=>{let V=new Map,g=new Map,f=0;for(let D of u)v(D)==="left"&&(V.set(D.id,f),f+=_i(D));let s=0;for(let D of [...u].reverse())v(D)==="right"&&(g.set(D.id,s),s+=_i(D));return {left:V,right:g}},[u]),I=T.useMemo(()=>new Set([...h,...Object.keys(a)]),[a,h]),A=T.useMemo(()=>{let V=new Map;for(let g of u){let f=g.id==="__select__",s=g.id==="__expand__",D=g.id==="__actions__",m=f||s||D,v$1=g.id==="__spacer__",C=E.get(g.id),$=!v$1&&(d==="fit"||m||I.has(g.id)),K=$||C!==void 0?{width:$?m?a$1:g.getSize():void 0,minWidth:m?a$1:$?g.getSize():C,maxWidth:$?m?a$1:g.getSize():void 0}:void 0,_=v(g),U=_?{left:_==="left"?S.left.get(g.id):void 0,right:_==="right"?S.right.get(g.id):void 0}:void 0,R=K||U?{...K,...U}:void 0;V.set(g.id,{cellStyle:R,colStyle:K,fixedSide:_,headerStyle:R,isActionsColumn:D,isExpansionColumn:s,isSelectionColumn:f,isSpacerColumn:v$1,isUtilityColumn:m,pinnedClassName:_?w(_,p,{isUtilityColumn:m}):void 0,utilityClassName:m?"w-[50px] max-w-[50px] min-w-[50px] px-0":void 0});}return V},[I,d,E,S,p,u]),G=T.useMemo(()=>u.reduce((V,g)=>{let f=A.get(g.id),s=E.get(g.id);return f?.isUtilityColumn?V+a$1:I.has(g.id)?V+g.getSize():V+(s??0)},0),[A,I,E,u]),J=T.useCallback(V=>A.get(V)??Fs,[A]);return {columnLayouts:A,explicitlySizedColumnIds:h,fillMinWidth:G,getColumnLayout:J}}function _i(e){return x(e.id)?a$1:e.getSize()}function Gi(e,a){let n=e.classNames??{},{Button:i,Card:r,CardContent:l,CardHeader:d,Checkbox:p,Skeleton:u}=e;return function({rows:E,cardRenderer:S,cardSizing:I="fixed",cardGridClassName:A,cardClassName:G,rowActions:J,editableRows:V,detailPanel:g,detailExpanded:f,onDetailExpandedChange:s,hasCardTitle:D,rowSelection:m,onRowSelectionChange:v,enableRowSelection:L,editingRowId:C,onEditingRowIdChange:$,getRowClassName:K,onRowClick:_,getRowDraggable:U,onRowDragStart:R,onRowDragEnd:b$1,isLoading:x=false,loadingRowCount:k=5,labels:F}){let Q=I??"fixed",P=A?a$2("grid",A):Is(Q),q=a$2("min-h-0 w-full gap-4 p-1",n.cardGrid,P),B=M=>a$2("relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0",zs(Q),n.cardItem,G,M);return x?jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:Array.from({length:Math.max(1,k)},(M,W)=>jsxs(r,{role:"listitem","aria-hidden":"true","data-dtp-slot":"data-table-card-item",className:B("min-h-52"),children:[D?jsxs(d,{className:"px-4 pt-4 pb-3",children:[jsx(u,{className:"h-5 w-40 max-w-[70%]"}),jsx(u,{className:"h-4 w-24 max-w-[40%]"})]}):null,jsxs(l,{className:a$2("space-y-3 pb-4",D?"":"pt-4"),children:[jsx(u,{className:"h-4 w-full"}),jsx(u,{className:"h-4 w-[82%]"}),jsx(u,{className:"h-4 w-[68%]"}),jsx(u,{className:"h-24 w-full rounded-xl"})]})]},`loading-card-${W}`))}):jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:q,children:E.map(M=>{let W=M.id,ne=M.original,be=!!m[W],fe=C===W,De=J.length>0||!!V,Se=!!(g&&(g.getRowCanExpand?.(ne)??true)),Te=L||De||D,Ee=L||De||M.getCanExpand()||Se,Oe=()=>{_&&_({row:ne,rowId:W});};return jsxs(r,{role:"listitem","data-row-id":W,"data-tree-depth":M.depth,draggable:U?.(ne)??false,"data-dtp-slot":"data-table-card-item","data-state":be?"selected":void 0,className:B(a$2([K?.(ne,{row:ne,rowId:W,rowIndex:M.index,isEditing:fe,isExpanded:M.getIsExpanded(),isLoading:false,isSelected:be,pinnedPosition:false})].filter(Boolean).join(" "),"transition transition-colors hover:scale-101 data-[state=selected]:scale-101",n.card,be?n.cardSelected:n.cardUnselected)),onDragStart:X=>{R?.({row:ne,rowId:W,event:X});},onDragEnd:X=>{b$1?.({row:ne,rowId:W,event:X});},children:[Te?jsx("div",{"aria-hidden":"true",className:a$2("pointer-events-none absolute inset-x-0 top-0 z-10 h-24 bg-linear-to-b opacity-0 transition-opacity group-hover/card:opacity-100",n.cardOverlay??"from-transparent via-transparent to-transparent")}):null,jsx("div",{"data-dtp-slot":"data-table-card-renderer",role:_?"button":void 0,tabIndex:_?0:void 0,className:a$2("flex min-h-0 max-w-full min-w-0 overflow-hidden rounded-[inherit] [&>*]:min-w-0",Ls(Q),_&&"cursor-pointer focus-visible:outline-none"),onClick:X=>{y(X.target,X.currentTarget)||Oe();},onKeyDown:X=>{y(X.target,X.currentTarget)||(X.key==="Enter"||X.key===" ")&&(X.preventDefault(),Oe());},children:S({row:ne,rowId:W,depth:M.depth,canExpandSubRows:M.getCanExpand(),isSubRowsExpanded:M.getIsExpanded(),toggleSubRowsExpanded:()=>M.toggleExpanded(),isSelected:be,onSelectedChange:X=>{v(Bi(m,W,X,M.getCanSelect(),M.getCanMultiSelect()));},actions:J,isEditing:fe,startEditing:()=>{$(W);},cancelEditing:()=>{$(null);}})}),fe||!g||!(f===true||f[M.id])?null:jsx("div",{"data-dtp-slot":"data-table-card-detail-panel",className:"relative z-20 min-w-0",children:g.render({row:ne,rowId:W,tableRow:M})}),Ee?jsxs(d,{className:"absolute inset-x-0 top-0 z-20 flex flex-row items-center gap-3 space-y-0 px-4 pt-4 pb-8",children:[L?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(p,{checked:be,disabled:!M.getCanSelect(),"aria-label":(F.selectCardRow??oe.selectCardRow)(W),onCheckedChange:X=>{v(Bi(m,W,X===true,M.getCanSelect(),M.getCanMultiSelect()));}})}):null,M.getCanExpand()?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(i,{type:"button",size:"icon-sm",variant:"ghost","aria-label":M.getIsExpanded()?F.collapseRow:F.expandRow,"aria-expanded":M.getIsExpanded(),onClick:()=>M.toggleExpanded(),children:jsx(c,{className:a$2("transition-transform",M.getIsExpanded()?"rotate-0":"-rotate-90")})})}):null,Se?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(i,{type:"button",size:"icon-sm",variant:"ghost","aria-label":f===true||f[M.id]?M.getCanExpand()?F.collapseRowDetails??oe.collapseRowDetails:F.collapseRow:M.getCanExpand()?F.expandRowDetails??oe.expandRowDetails:F.expandRow,"aria-expanded":f===true||!!f[M.id],"data-detail-toggle":"true",onClick:()=>{s(X=>b(X,M.id,E.map(he=>he.id)));},children:jsx(c,{className:a$2("transition-transform",f===true||f[M.id]?"rotate-0":"-rotate-90")})})}):null,jsx("div",{className:"pointer-events-none min-w-0 flex-1"}),De?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(a,{row:ne,rowActions:J,editableRows:V,isEditing:fe,onStartEditing:()=>{$(W);},onCancelEditing:()=>{$(null);},labels:F})}):null]}):null]},W)})})}}function Is(e){switch(e){case "content":return "flex flex-wrap items-start justify-start";case "fluid":return "grid grid-cols-[repeat(auto-fit,minmax(min(18rem,100%),1fr))]";default:return "grid grid-cols-[repeat(auto-fill,minmax(min(18rem,100%),18rem))] justify-start"}}function zs(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full";default:return}}function Ls(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full flex-1 [&>*]:w-full";default:return "flex-1"}}function Bi(e,a,n,i,r){if(!i)return e;if(n)return r?{...e,[a]:true}:{[a]:true};if(!e[a])return e;let l={...e};return delete l[a],l}function Ui(e){let a=e.classNames??{},{Empty:n,EmptyContent:i,EmptyDescription:r,EmptyHeader:l,EmptyMedia:d,EmptyTitle:p}=e;return function({title:h="No rows found",description:E="Adjust your filters or create a new record to populate this table."}){return jsxs(n,{className:`min-h-60 rounded-2xl ${a.emptyState??"border bg-transparent"}`,children:[jsxs(l,{children:[jsx(d,{variant:"icon",children:jsx(p$1,{})}),jsx(p,{children:h}),jsx(r,{children:E})]}),jsx(i,{})]})}}function ji(e){let a=e.classNames??{},{Pagination:n,PaginationContent:i,PaginationEllipsis:r,PaginationFirst:l,PaginationItem:d,PaginationLast:p,PaginationLink:u,PaginationNext:h,PaginationPrevious:E,Select:S,SelectContent:I,SelectGroup:A,SelectItem:G,SelectTrigger:J,SelectValue:V,Tooltip:g,TooltipContent:f,TooltipTrigger:s}=e;function D({pageIndex:v,pageCount:L,pageCountKnown:C,pageSize:$,totalRowCount:K,rowsPerPageOptions:_,onPageIndexChange:U,onPageSizeChange:R,labels:b}){let x=C?Ns(v,Math.max(1,L)):[],k=v>0,F=v+1{R(Number(P));},children:[jsx(J,{"aria-label":b.recordsPerPage,className:`w-22 ${a.paginationSelectTrigger??""}`,children:jsx(V,{})}),jsx(I,{children:jsx(A,{children:_.map(P=>jsx(G,{value:String(P),children:P},P))})})]})]}),K!==void 0?jsx("div",{className:"flex shrink-0 items-center justify-center",children:jsxs("div",{className:`inline-flex items-center gap-2 px-2.5 py-1.5 text-sm ${a.paginationTotal??""}`,"aria-label":b.totalRecords(K),children:[jsx(j$1,{className:"size-4"}),jsx("span",{className:"@min-[768px]/data-table:hidden",children:K}),jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:b.totalRecords(K)})]})}):null,jsxs("div",{className:"flex flex-1 items-center justify-end gap-4",children:[jsx("div",{className:`hidden text-sm @min-[768px]/data-table:inline ${a.mutedText??"opacity-70"}`,children:C?b.pageStatus(v,Math.max(1,L)):(b.pageStatusUnknown??oe.pageStatusUnknown)(v)}),jsx(n,{"aria-label":b.pagination??oe.pagination,className:"mx-0 w-auto justify-end",children:jsxs(i,{children:[jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(l,{"aria-label":b.firstPage,href:"#",size:"icon-sm",showText:false,disabled:!k,onClick:P=>{P.preventDefault(),k&&U(0);},text:b.firstPage})}),jsx(f,{children:b.firstPage})]})}),jsx(d,{children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(E,{"aria-label":b.previousPage,href:"#",size:"icon-sm",showText:false,disabled:!k,onClick:P=>{P.preventDefault(),k&&U(v-1);},text:b.previousPage})}),jsx(f,{children:b.previousPage})]})}),x.map((P,q)=>jsx(d,{className:"hidden @min-[768px]/data-table:block",children:P==="ellipsis"?jsx(r,{text:b.morePages??oe.morePages}):jsx(u,{href:"#",isActive:P===v+1,size:"icon-sm",onClick:B=>{B.preventDefault(),U(P-1);},children:P})},`${P}-${q}`)),jsx(d,{children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(h,{"aria-label":b.nextPage,href:"#",size:"icon-sm",showText:false,disabled:!F,onClick:P=>{P.preventDefault(),F&&U(v+1);},text:b.nextPage})}),jsx(f,{children:b.nextPage})]})}),C?jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(g,{children:[jsx(s,{asChild:true,children:jsx(p,{"aria-label":b.lastPage,href:"#",size:"icon-sm",showText:false,text:b.lastPage,disabled:!F,onClick:P=>{P.preventDefault(),F&&U(Q);}})}),jsx(f,{children:b.lastPage})]})}):null]})})]})]})}function m(v){return jsx("div",{className:`rounded-md border px-2 py-1 ${a.footer??""}`,children:jsx(D,{...v})})}return {DataTableFooter:m,DataTablePagination:D}}function Ns(e,a){let n=e+1,i=new Set([1,a]);for(let d=Math.max(1,n-2);d<=Math.min(a,n+2);d+=1)i.add(d);let r=Array.from(i).sort((d,p)=>d-p),l=[];for(let d=0;d1&&l.push("ellipsis"),l.push(p);}return l}function Wi(e){let{Button:a,DropdownMenu:n,DropdownMenuContent:i,DropdownMenuGroup:r,DropdownMenuItem:l,DropdownMenuSeparator:d,DropdownMenuTrigger:p,Tooltip:u$1,TooltipContent:h,TooltipTrigger:E}=e;return function({row:I,rowActions:A,editableRows:G,isEditing:J,onStartEditing:V,onCancelEditing:g,labels:f,rowPinning:s}){let D=A.filter(C=>d$1(C,I)),m$1=T.useCallback(C=>{C.stopPropagation();},[]);if(J)return jsxs(u$1,{children:[jsx(E,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:m$1,onClick:g,children:[jsx(u,{}),jsx("span",{className:"sr-only",children:f.cancelEdit})]})}),jsx(h,{children:f.cancelEdit})]});let v=e$2(G,I),L=s?.canPin??false;return !D.length&&!v&&!L?null:jsxs(n,{children:[jsxs(u$1,{children:[jsx(E,{asChild:true,children:jsx(p,{asChild:true,children:jsxs(a,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:m$1,onClick:m$1,children:[jsx(k$1,{}),jsx("span",{className:"sr-only",children:f.rowActions})]})})}),jsx(h,{children:f.rowActions})]}),jsxs(i,{align:"end",className:"w-52",children:[v?jsx(r,{children:jsxs(l,{onClick:C=>{C.stopPropagation(),V();},children:[jsx(m,{"data-icon":"inline-start"}),f.editRow]})}):null,v&&(D.length||L)?jsx(d,{}):null,L?jsx(r,{children:s?.position?jsx(l,{onClick:C=>{C.stopPropagation(),s.pin(false);},children:f.unpinRow}):jsxs(Fragment,{children:[jsx(l,{onClick:C=>{C.stopPropagation(),s?.pin("top");},children:f.pinRowToTop}),jsx(l,{onClick:C=>{C.stopPropagation(),s?.pin("bottom");},children:f.pinRowToBottom})]})}):null,L&&D.length?jsx(d,{}):null,D.length?jsx(r,{children:D.map(C=>{let $=C.icon;return jsxs(l,{disabled:C.disabled?.(I),variant:C.variant==="destructive"?"destructive":void 0,onClick:K=>{K.stopPropagation(),C.onClick(I);},children:[$?jsx($,{"data-icon":"inline-start"}):null,c$2(C.label,I)]},C.key)})}):null]})]})}}var _s=T.lazy(()=>import('./data-table-toolbar-operations-IDEGCKBK.js'));function qi(e){let a=e.classNames??{},{Button:n,ButtonGroup:i,DropdownMenu:r,DropdownMenuCheckboxItem:l,DropdownMenuContent:d,DropdownMenuGroup:p,DropdownMenuItem:u$1,DropdownMenuLabel:h,DropdownMenuSeparator:E,DropdownMenuTrigger:S,InputGroup:I,InputGroupAddon:A,InputGroupInput:G,Tooltip:J,TooltipContent:V,TooltipTrigger:g}=e;return function({title:D,titleId:m,description:v,descriptionId:L,toolbarQueryValue:C,toolbarQueryPlaceholder:$,onToolbarQueryValueChange:K,customToolbar:_,compactToolbar:U,viewMode:R,onViewModeChange:b,enableViewToggle:x,toolbarActions:k,selectionActions:F,selectedRows:Q,selectedRowIds:P,showHiddenRows:q$1,hiddenRowsLabel:B,onShowHiddenRowsChange:M,allRows:W,columnVisibilityOptions:ne,onColumnVisibilityChange:be,enableColumnPinning:fe,onColumnPinningChange:De,columnFilters:Se,onColumnFilterChange:Te,onClearColumnFilters:Ee,density:Oe,onDensityChange:X,enableDensityToggle:he,labels:z,toolbarVisibility:we,openFileDialog:$e,enableGrouping:na,enableToolbarColumnChooser:Ye,enableToolbarFilterChips:oa,enableToolbarResetLayout:de,enableToolbarSavedViews:ia,savedViews:Ae,onResetColumnLayout:pa,onCreateSavedView:_e,onApplySavedView:Ra,onRenameSavedView:ga,onDeleteSavedView:Je,reorderColumn:ma,table:ye}){let ra=T.useRef(null),[He,la]=T.useState(false),ve=a.toolbarCompactIconButton??"",Be=k.filter(t=>(t.placement??"primary")==="primary"),Sa=k.filter(t=>t.placement==="trailing"),Xe=we?.title??true,ce=we?.search??true,va=we?.actions??true,ba=we?.trailingActions??true,fa=we?.options??true,Fe=we?.viewToggle??true,Ue=we?.customToolbar??true,Ta=Xe&&!!(D||v),Ge=ce,La=va&&Be.length>0,Pa=P.length>0&&F.length>0,ke=fa&&(ne.some(t=>t.canHide)||!!(M&&B)||fe||he||na||Ye||de||ia),je=Ye||de||ia,sa=Se.filter(t=>Gn(t.value)),da={Button:n,DropdownMenuCheckboxItem:l,DropdownMenuGroup:p,DropdownMenuItem:u$1,DropdownMenuLabel:h,DropdownMenuSeparator:E,InputGroup:I,InputGroupAddon:A,InputGroupInput:G},Ze=t=>jsx(T.Suspense,{fallback:null,children:jsx(_s,{placement:t,ui:da,labels:z,enableColumnChooser:Ye,enableFilterChips:oa,enableResetLayout:de,enableSavedViews:ia,enableColumnPinning:fe,columnVisibilityOptions:ne,onColumnVisibilityChange:be,onColumnPinningChange:De,reorderColumn:ma,table:ye,onResetColumnLayout:pa,savedViews:Ae,onCreateSavedView:_e,onApplySavedView:Ra,onRenameSavedView:ga,onDeleteSavedView:Je,toolbarQueryValue:C,onToolbarQueryValueChange:K,activeColumnFilters:sa,onColumnFilterChange:Te,onClearColumnFilters:Ee})}),xa=ye.getAllLeafColumns().filter(t=>!t.id.startsWith("__")&&t.getCanGroup()),Ke=ye.getState().grouping.flatMap(t=>{let w=ye.getColumn(t);return w?[w]:[]}),wa=Fe&&x&&!!b,Na=ba&&Sa.length>0,We=Ue&&!!_,Ea=Ue&&!!(U??_),ka=z.selectedRows(P.length);return T.useEffect(()=>{He&&ra.current?.focus();},[He]),!Ta&&!Ge&&!La&&!Pa&&!ke&&!wa&&!Na&&!We&&!Ea?null:jsxs("div",{className:"flex flex-col gap-4 pb-0",children:[Xe&&(D||v)?jsxs("div",{className:"flex flex-col gap-1",children:[D?jsx("h2",{id:m,className:"text-lg font-semibold tracking-tight",children:D}):null,v?jsx("p",{id:L,className:`max-w-3xl text-sm ${a.mutedText??"opacity-70"}`,children:v}):null]}):null,jsxs("div",{className:"flex flex-col gap-3",children:[jsxs("div",{"data-dtp-slot":"data-table-toolbar-controls",className:"flex items-center gap-2 overflow-x-auto px-1 @min-[768px]/data-table:gap-3 @min-[768px]/data-table:overflow-visible",children:[ce?jsxs(Fragment,{children:[jsx("div",{className:"hidden min-w-0 grow max-w-md @min-[768px]/data-table:block",children:jsxs(I,{className:"min-w-0",children:[jsx(G,{value:C,onChange:t=>{K(t.target.value);},placeholder:$}),jsx(A,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),C?jsx(A,{align:"inline-end",children:jsx("button",{type:"button",className:`inline-flex size-5 items-center justify-center rounded-md transition-colors focus-visible:outline-none ${a.toolbarIconButton??"opacity-70 hover:opacity-100"}`,onClick:()=>{K("");},"aria-label":z.clearSearch,title:z.clearSearch,children:jsx(u,{})})}):null]})}),jsxs(J,{children:[jsx(g,{asChild:true,children:jsxs(n,{type:"button",variant:He||C?"secondary":"outline",size:"icon-sm","aria-label":z.searchTable,"aria-pressed":He,className:`shrink-0 @min-[768px]/data-table:hidden ${ve} ${a.toolbarInputButton??""}`,onClick:()=>{la(t=>!t);},children:[jsx(s$1,{}),jsx("span",{className:"sr-only",children:z.searchTable})]})}),jsx(V,{children:z.searchTable})]})]}):null,va?jsx("div",{className:"flex shrink-0 items-center gap-2",children:Be.map(t=>{let w=!t.iconOnly&&!!t.icon,j=jsxs(n,{type:"button",className:w?`size-7 shrink-0 px-0 @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit @min-[768px]/data-table:px-2.5 ${ve}`:t.iconOnly?`size-7 shrink-0 @min-[768px]/data-table:size-8 ${ve}`:"size-7 shrink-0 @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit",variant:t.variant??"outline",size:t.iconOnly?"icon":"default",onClick:()=>{t.onClick({rows:W,openFileDialog:$e});},disabled:t.disabled,"aria-label":t.label,title:t.iconOnly?void 0:t.label,children:[t.icon?jsx(t.icon,{}):null,t.iconOnly?jsx("span",{className:"sr-only",children:t.label}):w?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:t.label}):jsx("span",{children:t.label})]},t.key);return t.iconOnly?jsxs(J,{children:[jsx(g,{asChild:true,children:j}),jsx(V,{children:t.label})]},t.key):j})}):null,Ea?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-custom",className:"flex shrink-0 items-center gap-2 @min-[1024px]/data-table:hidden",children:U??_}):null,jsx("div",{className:"grow","aria-hidden":"true"}),jsxs("div",{"data-dtp-slot":"data-table-toolbar-end-controls",className:"flex shrink-0 items-center gap-2",children:[P.length?jsx("div",{className:`hidden text-sm @min-[768px]/data-table:block ${a.mutedText??"opacity-70"}`,children:ka}):null,P.length?F.map(t=>{let w=t.icon,j={rows:Q,rowIds:P},ue=typeof t.disabled=="function"?t.disabled(Q,j):t.disabled;return jsxs(J,{children:[jsx(g,{asChild:true,children:jsxs(n,{type:"button",variant:t.variant??"secondary",size:"icon-sm",className:ve,disabled:ue,onClick:()=>{t.onClick(j);},"aria-label":t.label,children:[w?jsx(w,{}):null,jsx("span",{className:"sr-only",children:t.label})]})}),jsx(V,{children:t.label})]},t.key)}):null,ke?jsxs(r,{children:[jsx(S,{asChild:true,children:jsxs(n,{type:"button",variant:"outline",size:"icon-sm","aria-label":z.tableOptions,className:`${ve} ${a.toolbarInputButton??""}`,title:z.tableOptions,children:[jsx(a$5,{}),jsx("span",{className:"sr-only",children:z.tableOptions})]})}),jsxs(d,{align:"end",className:"w-56",children:[jsx(h,{children:z.tableOptions}),jsx(p,{children:M&&B?jsx(l,{checked:q$1,onCheckedChange:t=>{M(t===true);},children:z.showHiddenRows(B)}):null}),he?jsxs(Fragment,{children:[jsx(E,{}),jsx(h,{children:z.density}),jsx(p,{children:[["compact",z.compactDensity],["comfortable",z.comfortableDensity],["spacious",z.spaciousDensity]].map(([t,w])=>jsx(l,{checked:Oe===t,onCheckedChange:()=>{X(t);},children:w},t))})]}):null,je?Ze("menu"):null,!Ye&&ne.some(t=>t.canHide)?jsxs(Fragment,{children:[jsx(E,{}),jsx(h,{children:z.columns}),jsx(p,{children:ne.filter(t=>t.canHide).map(t=>jsx(l,{checked:t.visible,onCheckedChange:w=>{be?.(t.id,w===true);},children:t.label},t.id))})]}):null,fe&&!Ye?jsxs(Fragment,{children:[jsx(E,{}),jsxs(h,{children:[z.pinLeft," / ",z.pinRight]}),jsx(p,{children:ne.map(t=>jsxs(u$1,{onSelect:w=>{w.preventDefault();},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:t.label}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${z.pinLeft}: ${t.label}`,onClick:w=>{w.stopPropagation(),De(t.id,"left");},children:"L"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${z.pinRight}: ${t.label}`,onClick:w=>{w.stopPropagation(),De(t.id,"right");},children:"R"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${z.unpin}: ${t.label}`,onClick:w=>{w.stopPropagation(),De(t.id,false);},children:"-"})]},`pin-${t.id}`))})]}):null,na&&xa.length?jsxs(Fragment,{children:[jsx(E,{}),jsx(h,{children:z.grouping}),jsx(p,{children:xa.map(t=>{let w=typeof t.columnDef.header=="string"?t.columnDef.header:t.id,j=t.getIsGrouped();return jsx(l,{checked:j,onCheckedChange:()=>{t.toggleGrouping();},children:j?z.ungroup(w):z.groupBy(w)},`group-${t.id}`)})})]}):null]})]}):null,Fe&&x&&b?jsxs(i,{children:[jsxs(J,{children:[jsx(g,{asChild:true,children:jsxs(n,{type:"button",variant:R==="table"?"default":"outline","aria-pressed":R==="table",className:R==="table"?ve:`${ve} ${a.toolbarInputButton??""}`,size:"icon-sm",onClick:()=>{b("table");},children:[jsx(r$1,{}),jsx("span",{className:"sr-only",children:z.switchToTableView??oe.switchToTableView})]})}),jsx(V,{children:z.tableView??oe.tableView})]}),jsxs(J,{children:[jsx(g,{asChild:true,children:jsxs(n,{type:"button",variant:R==="card"?"default":"outline","aria-pressed":R==="card",className:R==="table"?`${ve} ${a.toolbarInputButton??""}`:ve,size:"icon-sm",onClick:()=>{b("card");},children:[jsx(q,{}),jsx("span",{className:"sr-only",children:z.switchToCardView??oe.switchToCardView})]})}),jsx(V,{children:z.cardView??oe.cardView})]})]}):null,ba?Sa.map(t=>{let w=!t.iconOnly&&!!t.icon,j=jsxs(n,{type:"button",variant:t.variant??"outline",size:t.iconOnly?"icon-sm":"default",onClick:()=>{t.onClick({rows:W,openFileDialog:$e});},disabled:t.disabled,"aria-label":t.label,title:t.iconOnly?void 0:t.label,className:`size-7 shrink-0 ${t.iconOnly?"":`${w?"px-0 @min-[768px]/data-table:px-2.5":""} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${t.iconOnly||w?ve:""} ${a.toolbarInputButton??""}`,children:[t.icon?jsx(t.icon,{"data-icon":t.iconOnly?void 0:"inline-start"}):null,t.iconOnly?jsx("span",{className:"sr-only",children:t.label}):w?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:t.label}):jsx("span",{children:t.label})]},t.key);return t.iconOnly?jsxs(J,{children:[jsx(g,{asChild:true,children:j}),jsx(V,{children:t.label})]},t.key):j}):null]})]}),ce&&He?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-search",className:"min-w-0 @min-[768px]/data-table:hidden",children:jsxs(I,{children:[jsx(G,{ref:ra,value:C,onChange:t=>{K(t.target.value);},placeholder:$}),jsx(A,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),C?jsx(A,{align:"inline-end",children:jsx("button",{type:"button",className:`inline-flex size-5 items-center justify-center rounded-md transition-colors focus-visible:outline-none ${a.toolbarIconButton??"opacity-70 hover:opacity-100"}`,onClick:()=>{K("");},"aria-label":z.clearSearch,title:z.clearSearch,children:jsx(u,{})})}):null]})}):null,Se.length?jsxs("div",{"data-dtp-slot":"data-table-toolbar-filters",className:"flex min-w-0 flex-wrap items-center gap-2",children:[Se.map(t=>jsx(f,{filter:t,labels:z,onColumnFilterChange:Te},t.id)),Se.some(t=>Gn(t.value))?jsx(n,{type:"button",variant:"ghost",size:"sm",onClick:Ee,children:z.clearFilters}):null]}):null,oa?Ze("chips"):null,na&&Ke.length?jsxs("div",{"data-dtp-slot":"data-table-grouping-bar","aria-label":z.grouping,className:"flex flex-wrap items-center gap-2",children:[jsxs("span",{className:"text-sm opacity-70",children:[z.grouping,":"]}),Ke.map((t,w)=>{let j=typeof t.columnDef.header=="string"?t.columnDef.header:t.id,ue=ae=>{let N=[...ye.getState().grouping],[ea]=N.splice(w,1);ea!==void 0&&(N.splice(ae,0,ea),ye.setGrouping(N));};return jsxs("div",{className:"inline-flex items-center rounded-md border",children:[jsx(n,{type:"button",variant:"ghost",size:"sm",disabled:w===0,onClick:()=>ue(w-1),"aria-label":z.moveGroupingEarlier(j),children:jsx("span",{"aria-hidden":"true",children:"\u2190"})}),jsxs(n,{type:"button",variant:"secondary",size:"sm",onClick:()=>t.toggleGrouping(),"aria-label":z.removeGrouping(j),children:[j," ",jsx("span",{"aria-hidden":"true",children:"\xD7"})]}),jsx(n,{type:"button",variant:"ghost",size:"sm",disabled:w===Ke.length-1,onClick:()=>ue(w+1),"aria-label":z.moveGroupingLater(j),children:jsx("span",{"aria-hidden":"true",children:"\u2192"})})]},`grouping-bar-${t.id}`)})]}):null]}),Ue&&_?jsx("div",{"data-dtp-slot":"data-table-toolbar-desktop-custom",className:"hidden flex-row items-center gap-3 @min-[1024px]/data-table:flex",children:_}):null]})};function f({filter:s,labels:D,onColumnFilterChange:m}){let[v,L]=T.useState("");if(s.type==="text")return jsxs(I,{className:"min-w-48 max-w-64",children:[jsx(G,{value:typeof s.value=="string"?s.value:"",onChange:k=>{m(s.id,k.target.value);},placeholder:s.placeholder??s.label,"aria-label":`${D.filters}: ${s.label}`}),jsx(A,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]});if(s.type==="numberRange"||s.type==="dateRange"){let k=Hs(s.value),F=s.type==="numberRange"?"number":"date",Q=D.filterFrom??oe.filterFrom,P=D.filterTo??oe.filterTo;return jsxs("div",{role:"group","aria-label":`${D.filters}: ${s.label}`,className:"flex min-w-0 items-center gap-1.5",children:[jsxs(I,{className:"min-w-32 max-w-44",children:[jsx(G,{type:F,inputMode:F==="number"?"decimal":void 0,value:k.from??"",min:s.min,max:s.max,step:F==="number"?s.step:void 0,onChange:q=>{m(s.id,{...k,from:Qi(q.target.value,F)});},"aria-label":`${s.label}: ${Q}`}),jsx(A,{align:"inline-start",children:Q})]}),jsxs(I,{className:"min-w-32 max-w-44",children:[jsx(G,{type:F,inputMode:F==="number"?"decimal":void 0,value:k.to??"",min:s.min,max:s.max,step:F==="number"?s.step:void 0,onChange:q=>{m(s.id,{...k,to:Qi(q.target.value,F)});},"aria-label":`${s.label}: ${P}`}),jsx(A,{align:"inline-start",children:P})]})]})}let C=s.type==="boolean",$=s.type==="faceted",K=[{label:s.trueLabel??D.filterTrue??oe.filterTrue,value:"true"},{label:s.falseLabel??D.filterFalse??oe.filterFalse,value:"false"}],_=C?K:s.options,U=$&&v?_.filter(k=>k.label.toLocaleLowerCase().includes(v.toLocaleLowerCase())):_,R=typeof s.value=="string"||typeof s.value=="boolean"?String(s.value):"",b=Array.isArray(s.value)?s.value.map(String):R?[R]:[],x=b.length===0?s.label:`${s.label}: ${b.length===1?_.find(k=>k.value===String(b[0]))?.label??b[0]:b.length}`;return jsxs(r,{children:[jsx(S,{asChild:true,children:jsx(n,{type:"button",variant:"outline",size:"sm",children:x})}),jsxs(d,{align:"start",className:"w-56",children:[jsx(h,{children:s.label}),$&&s.searchable!==false?jsx("div",{className:"px-2 pb-2",children:jsxs(I,{children:[jsx(G,{value:v,onChange:k=>{L(k.target.value);},placeholder:s.searchPlaceholder??D.facetSearch(s.label),"aria-label":D.facetSearch(s.label)}),jsx(A,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]})}):null,jsxs(p,{children:[s.type==="select"||C||$?jsx(u$1,{onClick:()=>{m(s.id,"");},children:D.allFilterOptions??oe.allFilterOptions}):null,U.map(k=>jsxs(l,{checked:b.includes(k.value),disabled:k.disabled,onCheckedChange:F=>{if(s.type==="select"||C){m(s.id,F===true?k.value:"");return}let Q=new Set(b);F===true?Q.add(k.value):Q.delete(k.value),m(s.id,Array.from(Q));},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:k.label}),k.count!==void 0?jsx("span",{className:"ml-3 tabular-nums opacity-70",children:k.count}):null]},k.value))]})]})]})}}function Gn(e){return Array.isArray(e)?e.length>0:e&&typeof e=="object"?"from"in e||"to"in e?Object.values(e).some(Gn):true:e!=null&&e!==""}function Hs(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let a=e;return {...typeof a.from=="number"||typeof a.from=="string"?{from:a.from}:{},...typeof a.to=="number"||typeof a.to=="string"?{to:a.to}:{}}}function Qi(e,a){if(e)return a==="number"?Number(e):e}var Bs=T.lazy(async()=>({default:(await import('./data-table-virtual-table-panel-ZOYCXFM5.js')).DataTableVirtualTablePanel}));function Yi(e){let a=typeof e.virtualization=="object"?e.virtualization:void 0;return e.virtualization===true||a?.enabled===true?jsx(T.Suspense,{fallback:jsx(e$1,{...e,rowsToRender:e.rowsToRender.slice(0,Math.max(1,Math.floor(a?.fallbackRowCount??20)))}),children:jsx(Bs,{...e})}):jsx(e$1,{...e})}var Gs="data-table-pro:saved-views:";var Xi=["sorting","columnVisibility","columnFilters","grouping","columnOrder","columnPinning","rowPinning","columnSizing","density","viewMode","showHiddenRows","globalFilter"],Ji=0;function Ua(e){let a=Kn(e);if(!e||!a)return [];let n;try{n=a.getItem(Wn(e.key));}catch(d){return e.onError?.({error:d,operation:"read"}),[]}if(!n)return [];let i;try{i=(e.deserialize??JSON.parse)(n);}catch(d){return e.onError?.({error:d,operation:"deserialize"}),[]}if(!Qe(i)||!("version"in i)||!("views"in i))return [];let r=e.version??1,l=i.views;if(i.version!==r){if(!e.migrate)return [];try{l=e.migrate({version:i.version,views:i.views},r);}catch(d){return e.onError?.({error:d,operation:"migrate"}),[]}}return Array.isArray(l)?l.map(d=>Us(d,e.slices)).filter(d=>!!d):[]}function Zi(e,a,n){let i=a.trim();if(!e||!i)return;let r=new Date().toISOString(),l={id:Xs(),name:i,createdAt:r,updatedAt:r,state:$s(n,e.slices)},d=[...Ua(e),l];return Un(e,d,"create")?jn(l):void 0}function er(e,a,n){let i=n.trim();if(!e||!i)return;let r,l=Ua(e).map(d=>d.id!==a?d:(r={...d,name:i,updatedAt:new Date().toISOString()},r));if(r)return Un(e,l,"rename")?jn(r):void 0}function ar(e,a){if(!e)return false;let n=Ua(e),i=n.filter(r=>r.id!==a);return i.length!==n.length&&Un(e,i,"delete")}function tr(e){let a=Kn(e);if(!e||!a)return false;try{a.removeItem(Wn(e.key));}catch(n){return e.onError?.({error:n,operation:"remove"}),false}return e.onChange?.([],"clear"),true}function Un(e,a,n){let i=Kn(e);if(!i)return false;let r;try{let d={version:e.version??1,views:a};r=(e.serialize??JSON.stringify)(d);}catch(d){return e.onError?.({error:d,operation:"serialize"}),false}try{i.setItem(Wn(e.key),r);}catch(d){return e.onError?.({error:d,operation:"write"}),false}let l=a.map(jn);return e.onChange?.(l,n),true}function $s(e,a){let n=new Set(a??Xi),i={};for(let r of Object.keys(e))n.has(r)&&Object.assign(i,{[r]:js(r,e[r])});return i}function Us(e,a){if(!(!Qe(e)||typeof e.id!="string"||!e.id||typeof e.name!="string"||!e.name.trim()||typeof e.createdAt!="string"||typeof e.updatedAt!="string"))return {id:e.id,name:e.name.trim(),createdAt:e.createdAt,updatedAt:e.updatedAt,state:nr(e.state,a)}}function nr(e,a){if(!Qe(e))return {};let n=new Set(a??Xi),i={},r=Ks(e.sorting);n.has("sorting")&&r&&(i.sorting=r);let l=Ws(e.pagination);n.has("pagination")&&l&&(i.pagination=l);let d=$n(e.rowSelection);n.has("rowSelection")&&d&&(i.rowSelection=d);let p=$n(e.columnVisibility);n.has("columnVisibility")&&p&&(i.columnVisibility=p);let u=Qs(e.columnFilters);n.has("columnFilters")&&u&&(i.columnFilters=u);let h=it(e.grouping);n.has("grouping")&&h&&(i.grouping=h);let E=e.expanded===true?true:$n(e.expanded);n.has("expanded")&&E!==void 0&&(i.expanded=E);let S=it(e.columnOrder);n.has("columnOrder")&&S&&(i.columnOrder=S);let I=qs(e.columnPinning);n.has("columnPinning")&&I&&(i.columnPinning=I);let A=Ys(e.rowPinning);n.has("rowPinning")&&A&&(i.rowPinning=A);let G=Js(e.columnSizing);return n.has("columnSizing")&&G&&(i.columnSizing=G),n.has("density")&&(e.density==="compact"||e.density==="comfortable"||e.density==="spacious")&&(i.density=e.density),n.has("viewMode")&&(e.viewMode==="table"||e.viewMode==="card")&&(i.viewMode=e.viewMode),n.has("showHiddenRows")&&typeof e.showHiddenRows=="boolean"&&(i.showHiddenRows=e.showHiddenRows),n.has("globalFilter")&&typeof e.globalFilter=="string"&&(i.globalFilter=e.globalFilter),i}function jn(e){return {...e,state:nr(e.state,Object.keys(e.state))}}function js(e,a){return Array.isArray(a)?a.map(n=>Qe(n)?{...n}:n):Qe(a)?e==="columnPinning"||e==="rowPinning"?{...e==="columnPinning"?{left:Array.isArray(a.left)?[...a.left]:void 0,right:Array.isArray(a.right)?[...a.right]:void 0}:{top:Array.isArray(a.top)?[...a.top]:void 0,bottom:Array.isArray(a.bottom)?[...a.bottom]:void 0}}:{...a}:a}function Ks(e){if(Array.isArray(e))return e.filter(a=>Qe(a)&&typeof a.id=="string").map(a=>({id:a.id,desc:!!a.desc}))}function Ws(e){if(!(!Qe(e)||!Number.isInteger(e.pageIndex)||e.pageIndex<0||!Number.isInteger(e.pageSize)||e.pageSize<1))return {pageIndex:e.pageIndex,pageSize:e.pageSize}}function Qs(e){if(Array.isArray(e))return e.filter(a=>Qe(a)&&typeof a.id=="string"&&Object.prototype.hasOwnProperty.call(a,"value")).map(a=>({id:a.id,value:a.value}))}function qs(e){if(Qe(e))return {left:it(e.left)??[],right:it(e.right)??[]}}function Ys(e){if(Qe(e))return {top:it(e.top)??[],bottom:it(e.bottom)??[]}}function $n(e){if(Qe(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="boolean"))}function Js(e){if(Qe(e))return Object.fromEntries(Object.entries(e).filter(a=>typeof a[1]=="number"&&Number.isFinite(a[1])&&a[1]>=0))}function it(e){if(Array.isArray(e))return e.filter(a=>typeof a=="string")}function Kn(e){if(e){if(e.storage)return e.storage;if(!(typeof window>"u"))try{return window.localStorage}catch(a){e.onError?.({error:a,operation:"read"});return}}}function Xs(){return typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID():(Ji+=1,`view-${Date.now().toString(36)}-${Ji.toString(36)}`)}function Wn(e){return `${Gs}${e}`}function Qe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function or({columns:e,currentColumnFilters:a,currentColumnPinning:n$1,effectiveColumnVisibility:i,enableColumnFilters:r,handleColumnFiltersChange:l$2,handleColumnPinningChange:d,labels:p$1,table:u,toolbarActions:h,visibleData:E,csvExport:S}){let I=T.useMemo(()=>k(e).map(({column:s$1,index:D})=>{let m=s(s$1,D),v=s$1.header,L=u$1(s$1),C$1=typeof v=="string"?v:L?C(L):C(m),$=n$1.left?.includes(m)===true?"left":n$1.right?.includes(m)===true?"right":false;return {id:m,label:C$1,visible:i[m]!==false,canHide:s$1.enableHiding!==false,pinned:$}}),[e,n$1,i]),A=T.useMemo(()=>r===false?[]:k(e).flatMap(({column:s$1,index:D})=>{let m=s$1.meta?.filter;if(!m)return [];let v=s(s$1,D),L=s$1.header,C$1=u$1(s$1),$=m.label??(typeof L=="string"?L:C$1?C(C$1):C(v)),K=a.find(b=>b.id===v),_=m.faceting?.options,U=m.type==="numberRange"?u.getColumn(v)?.getFacetedMinMaxValues():void 0,R=m.type==="faceted"&&_?typeof _=="function"?_({rows:E}):_:m.type==="faceted"?Array.from(u.getColumn(v)?.getFacetedUniqueValues()??[]).map(([b,x])=>({label:m.faceting?.getOptionLabel?.(b)??String(b),value:String(b),count:x})):typeof m.options=="function"?m.options({rows:E}):m.options??[];return [{id:v,label:$,type:m.type,value:K?.value,placeholder:m.placeholder,options:l(R),searchable:m.faceting?.searchable,searchPlaceholder:m.faceting?.searchPlaceholder,trueLabel:m.trueLabel,falseLabel:m.falseLabel,min:m.min??U?.[0],max:m.max??U?.[1],step:m.step}]}),[e,a,r,u,E]),G=T.useCallback((s,D)=>{l$2(m=>{let v=m.filter(L=>L.id!==s);return n(D)&&v.push({id:s,value:D}),v});},[l$2]),J=T.useCallback(()=>{l$2([]);},[l$2]),V=T.useCallback((s,D)=>{d(m=>{let v=(m.left??[]).filter(C=>C!==s),L=(m.right??[]).filter(C=>C!==s);return D==="left"&&v.push(s),D==="right"&&L.push(s),{left:v,right:L}});},[d]),g=T.useCallback(()=>{if(S)return p({csvExport:S,table:u,labels:p$1})},[S,p$1,u]),f=T.useMemo(()=>S?[...h??[],{key:"__csv_export__",label:p$1.exportCsv,icon:l$1,placement:"trailing",onClick:g}]:h??[],[S,g,p$1.exportCsv,h]);return {columnVisibilityOptions:I,effectiveToolbarActions:f,handleClearColumnFilters:J,handleToolbarColumnFilterChange:G,handleToolbarColumnPinningChange:V,toolbarColumnFilters:A}}function rr({columns:e,data:a,getRowId:n}){let i=T.useRef({columns:e,data:a,getRowId:n}),r=T.useRef(new Set);T.useEffect(()=>{if(!Zs())return;let l=i.current;l.data!==a&&ir(l.data,a)&&!r.current.has("data")&&qt(r.current,"data","The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused."),l.columns!==e&&ir(l.columns,e)&&!r.current.has("columns")&&qt(r.current,"columns","The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused."),l.getRowId!==n&&!r.current.has("getRowId")&&qt(r.current,"getRowId","getRowId identity changed. Memoize it and return an immutable, unique id to preserve row state and virtual scroll anchoring.");let d=new Set;for(let p=0;pObject.is(n,a[i]))}function qt(e,a,n){e.add(a),console.warn(`[data-table-pro] ${n}`);}function Zs(){return globalThis.process?.env?.NODE_ENV!=="production"}var ad=T.lazy(()=>import('./data-table-auto-page-size-EICVZJQ5.js'));function qc(e){return td(e)}function td(e,a={}){let n=a.CardPanel??Ci,i=a.TablePanel??Yi,r$1=e.classNames??{},{rootClassName:l,Button:d,Checkbox:p$1,Input:u,ScrollArea:h,ScrollBar:E,Skeleton:S,Table:I,TableBody:A,TableCell:G,TableFooter:J="tfoot",TableHead:V,TableHeader:g$1,TableRow:f,Tooltip:s$1,TooltipContent:D,TooltipProvider:m=T.Fragment,TooltipTrigger:v}=e,L=Ui(e),C=Wi(e),{DataTableFooter:$}=ji(e),K=qi(e),_=Gi(e,C),U=T.lazy(async()=>{let{createDataTableStateOverlay:b}=await import('./data-table-state-overlay-AQ7VU6EM.js');return {default:b(e)}}),R={minSize:80,size:180,maxSize:720};return function({columns:x,data:k$1,getRowId:F,children:Q,title:P,description:q,toolbarQueryValue:B,onToolbarQueryValueChange:M,toolbarQueryPlaceholder:W,toolbarQueryDebounceMs:ne,manualFiltering:be=false,enableToolbarQueryFiltering:fe=true,globalFilterFn:De,columnFilters:Se,onColumnFiltersChange:Te,enableColumnFilters:Ee,customToolbar:Oe,compactToolbar:X,rowsPerPageOptions:he=[10,20,50,100],totalRowCount:z,hasNextPage:we,sorting:$e,onSortingChange:na,manualSorting:Ye=false,grouping:oa,onGroupingChange:de,manualGrouping:ia=false,enableGrouping:Ae=false,groupedColumnMode:pa="reorder",aggregationFns:_e,pageIndex:Ra,pageSize:ga,autoPageSize:Je=false,onPageIndexChange:ma,onPageSizeChange:ye,pageCount:ra,manualPagination:He=false,rowSelection:la,onRowSelectionChange:ve,enableRowSelection:Be=false,enableMultiRowSelection:Sa=true,enableSubRowSelection:Xe=true,getRowCanSelect:ce,rowSelectionSelectAllScope:va="page",expanded:ba,onExpandedChange:fa,getSubRows:Fe,manualExpanding:Ue=false,paginateExpandedRows:Ta,filterFromLeafRows:Ge,maxLeafRowFilterDepth:La,detailPanel:Pa,getRowCanExpand:ke,renderExpandedRow:je,columnOrder:sa,onColumnOrderChange:da,enableColumnReordering:Ze=false,columnGroupHeaderHeight:xa,columnPinning:Ke,onColumnPinningChange:wa,enableColumnPinning:Na=false,rowPinning:We,onRowPinningChange:Ea,enableRowPinning:ka=false,keepPinnedRows:t$1=true,toolbarActions:w=[],selectionActions:j=[],rowActions:ue=[],csvExport:ae,clipboard:N,enableCellSelection:ea=false,cellSelection:Oa,defaultCellSelection:_a,onCellSelectionChange:Yt,gridCommands:Ma,density:rt,onDensityChange:Jt,enableDensityToggle:Xt=false,columnPrefsKey:H,persistence:Pe,savedViews:re,toolbarDataOperations:ca,initialState:te,state:pe,onStateChange:Ce,apiRef:dr,labels:qn,summaryRows:cr=[],cardRenderer:Zt,cardSizing:ur,cardGridClassName:pr,cardClassName:gr,viewMode:Yn,onViewModeChange:mr,enableViewToggle:br=false,enablePrint:Jn=false,enableFullscreen:Ct=false,emptyState:fr,stateOverlay:ja,isLoading:Xn=false,loadingRowCount:Tr,getRowLoadingState:wr,hiddenRows:Zn,showHiddenRows:eo,onShowHiddenRowsChange:Cr,infiniteScroll:Dt,editableRows:Va,columnVisibility:ao,onColumnVisibilityChange:Dr,columnSizing:to,onColumnSizingChange:hr,enableColumnResizing:no=false,columnResizeMode:yr="onEnd",layoutMode:ht="fill",stickyHeader:Rr=true,scrollbarVisibility:oo,showFooter:Sr=true,showToolbar:io=true,dir:en="ltr",flexGrow:Ka=true,toolbarVisibility:ro,className:vr,tableClassName:Pr,tableContainerClassName:lo,stripedRows:so=false,getRowClassName:co,onRowClick:an,onActionError:lt,dragAndDrop:Wa,fileUpload:Ca,virtualization:tn,accessibility:uo,interactiveGrid:yt}){let Ha=T.useRef(null),po=T.useRef(null),go=T.useRef(null),xr=T.useRef(null),nn=T.useRef(null),Er=T.useRef(null),[mo,on]=T.useState(0),kr=T.useId(),Mr=T.useId();rr({columns:x,data:k$1,getRowId:F}),T.useMemo(()=>t(x),[x]);let xe=T.useMemo(()=>Ri(qn),[qn]),rn=ca===true?{columnChooser:true,savedViews:true,resetLayout:true}:ca===false?{}:ca??{},ln=uo?.mode==="grid"||yt===true||typeof yt=="object",[Aa,Rt]=Re({defaultValue:_a??null,onChange:Yt,value:Oa}),Vr=B??pe?.globalFilter,Ar=$e??pe?.sorting,Fr=oa??pe?.grouping,St=Ra??pe?.pagination?.pageIndex,Qa=ga??pe?.pagination?.pageSize,Ir=la??pe?.rowSelection,zr=ao??pe?.columnVisibility,Lr=Se??pe?.columnFilters,Nr=ba??pe?.expanded,Or=sa??pe?.columnOrder,_r=Ke??pe?.columnPinning,Hr=We??pe?.rowPinning,Br=to??pe?.columnSizing,Gr=rt??pe?.density,$r=Yn??pe?.viewMode,Ur=eo??pe?.showHiddenRows,bo=io&&(ro?.title??true),fo=bo&&P?kr:void 0,To=bo&&q?Mr:void 0;od(pe,{columnFilters:Se!==void 0,columnOrder:sa!==void 0,columnPinning:Ke!==void 0,rowPinning:We!==void 0,columnSizing:to!==void 0,columnVisibility:ao!==void 0,density:rt!==void 0,expanded:ba!==void 0,grouping:oa!==void 0,globalFilter:B!==void 0,pagination:Ra!==void 0||ga!==void 0,rowSelection:la!==void 0,showHiddenRows:eo!==void 0,sorting:$e!==void 0,viewMode:Yn!==void 0});let jr=Ne("globalFilter",M,Ce),Kr=Ne("sorting",na,Ce),Wr=Ne("grouping",de,Ce),Qr=Ne("rowSelection",ve,Ce),qr=Ne("columnVisibility",Dr,Ce),Yr=Ne("columnFilters",Te,Ce),Jr=Ne("expanded",fa,Ce),Xr=Ne("columnOrder",da,Ce),Zr=Ne("columnPinning",wa,Ce),el=Ne("rowPinning",Ea,Ce),al=Ne("columnSizing",hr,Ce),tl=Ne("density",Jt,Ce),nl=Ne("viewMode",mr,Ce),ol=Ne("showHiddenRows",Cr,Ce),vt=T.useCallback(o=>{ma?.(o),Ce?.(y=>({...y,pagination:{pageIndex:o,pageSize:Qa??y.pagination.pageSize}}));},[ma,Ce,Qa]),sn=T.useCallback(o=>{ye?.(o),Ce?.(y=>({...y,pagination:{pageIndex:St??y.pagination.pageIndex,pageSize:o}}));},[ye,Ce,St]),Me=T.useCallback((o,y)=>{nd(y,o,lt);},[lt]),wo=T.useMemo(()=>ue.map(o=>({...o,onClick:y=>{Me({actionKey:o.key,row:y,source:"rowAction"},()=>o.onClick(y));}})),[ue,Me]),Co=T.useMemo(()=>an?o=>{Me({row:o.row,source:"rowClick"},()=>an(o));}:void 0,[an,Me]),il=T.useCallback((o,y)=>{lt?.({error:o,row:y,source:"edit"});},[lt]),{containerWidth:rl,currentColumnFilters:Pt,currentColumnOrder:dn,currentColumnPinning:xt,currentRowPinning:cn,currentColumnSizing:qa,currentColumnVisibility:Do,currentDensity:st,currentExpanded:Et,currentGrouping:un,currentPagination:aa,currentRowSelection:kt,currentShowHiddenRows:pn,currentSorting:Mt,currentViewMode:Ya,effectiveColumnVisibility:Vt,globalFilterValue:ll,handleDensityChange:gn,handleShowHiddenRowsChange:mn,handleViewModeChange:bn,localSearchValue:Ba,resolvedLoadingRowCount:sl,resolvedToolbarQueryPlaceholder:dl,selectedRowIds:cl,selectedRows:ul,setCurrentColumnFilters:ho,setCurrentColumnOrder:pl,setCurrentColumnPinning:yo,setCurrentRowPinning:gl,setCurrentColumnVisibility:ml,setCurrentExpanded:Ro,setCurrentGrouping:bl,setCurrentRowSelection:So,setCurrentSorting:fl,setLocalColumnSizing:Tl,setLocalPagination:fn,setLocalSearchValue:Tn,shouldRenderInitialLoading:wn,tableData:wl,tableGetRowId:Cl,visibleData:Dl}=Oi({columnFilters:Lr,columnOrder:Or,columnPinning:_r,rowPinning:Hr,columnSizing:Br,columnPrefsKey:H,persistence:Pe,columnVisibility:zr,columns:x,containerRef:Ha,data:k$1,density:Gr,enableRowSelection:Be,enableToolbarQueryFiltering:fe,expanded:Nr,grouping:Fr,getSubRows:Fe,getRowId:F,hiddenRows:Zn,isLoading:Xn,loadingRowCount:Tr,manualFiltering:be,initialState:te,onColumnFiltersChange:Yr,onColumnOrderChange:Xr,onColumnPinningChange:Zr,onRowPinningChange:el,onColumnSizingChange:al,onColumnVisibilityChange:qr,onDensityChange:tl,onExpandedChange:Jr,onGroupingChange:Wr,onPageIndexChange:vt,onRowSelectionChange:Qr,onShowHiddenRowsChange:ol,onSortingChange:Kr,onToolbarQueryValueChange:jr,onViewModeChange:nl,pageIndex:St,pageSize:Qa,resolvedLabels:xe,rowSelection:Ir,rowsPerPageOptions:he,selectionActions:j,showHiddenRows:Ur,sorting:Ar,toolbarQueryDebounceMs:ne,toolbarQueryPlaceholder:W,toolbarQueryValue:Vr,viewMode:$r}),Cn=!!(je&&!Pa&&!Fe),Ja=Pa??(je?{getRowCanExpand:Fe?void 0:ke,render:je}:void 0),[Dn,vo]=Re({defaultValue:()=>Cn?te?.expanded??{}:{},onChange:Cn?Ro:Ja?.onExpandedChange,value:Cn?Et:Ja?.expanded}),{cancelEditing:hn,clearEditError:Po,draftValues:hl,editErrors:yn,editingRowId:Rn,isEditDirty:Sn,isSavingEdit:vn,saveEdit:Pn,setDraftValues:yl,setEditingRowId:Rl,startEditingRow:Sl}=a$3({columns:x,editableRows:Va,onError:il}),vl=T.useMemo(()=>({cancel:hn,cancelOnEscape:Va?.cancelOnEscape!==false,clearError:Po,commit:o=>{Pn(o);},commitOnEnter:Va?.commitOnEnter!==false,errors:yn,isDirty:Sn,isPending:vn}),[hn,Po,Va?.cancelOnEscape,Va?.commitOnEnter,yn,Sn,vn,Pn]),{viewportElement:xn,viewportHeight:En}=a$4(go,Ya),xo=typeof Je=="object"?Je:void 0,Pl=T.useCallback(o=>{o!==aa.pageSize&&(aa.pageIndex!==0&&vt(0),sn(o),Qa===void 0&&fn({pageIndex:0,pageSize:o}));},[aa.pageIndex,aa.pageSize,vt,sn,Qa,fn]),xl=Je===true||xo!==void 0,At=T.useCallback(()=>typeof window>"u"||typeof window.print!="function"?false:(window.print(),true),[]),Ft=T.useCallback(async()=>{let o=Ha.current;return !o||typeof document>"u"?false:document.fullscreenElement?typeof document.exitFullscreen!="function"?false:(await document.exitFullscreen(),true):typeof o.requestFullscreen!="function"?false:(await o.requestFullscreen(),true)},[]),[Eo,El]=T.useState(false);T.useEffect(()=>{if(!Ct||typeof document>"u")return;let o=()=>{El(document.fullscreenElement===Ha.current);};return o(),document.addEventListener("fullscreenchange",o),()=>document.removeEventListener("fullscreenchange",o)},[Ct]);let kl=T.useCallback(()=>{Ca?.disabled||po.current?.click();},[Ca?.disabled]),Ml=T.useCallback(o=>{Me({source:"fileUpload"},()=>Ca?.onFilesSelected(o));},[Ca,Me]),Vl=T.useMemo(()=>{if(ht!=="fill")return false;let o=k(x).filter(({column:y,index:ie})=>Vt[s(y,ie)]!==false);return o.length>0&&o.every(({column:y,index:ie})=>{let ct=s(y,ie);return g(y)||Object.prototype.hasOwnProperty.call(qa,ct)})},[x,qa,Vt,ht]),Al=Si({Button:d,Checkbox:p$1,DataTableRowActions:C,Tooltip:s$1,TooltipContent:D,TooltipTrigger:v,cancelEditing:hn,columns:x,editableRows:Va,editErrors:yn,editingRowId:Rn,enableRowSelection:Be,enableRowPinning:ka,hasTreeExpansion:!!Fe,isSavingEdit:vn,isEditDirty:Sn,includeFillSpacer:Vl,labels:xe,lastSelectedRowIdRef:Er,detailPanel:Ja,detailExpanded:Dn,onDetailExpandedChange:vo,rowSelectionSelectAllScope:va,rowActions:wo,saveEdit:Pn,startEditingRow:Sl,tableRef:nn}),Fl=T.useMemo(()=>i$1(x),[x]),{effectivePageCount:Il,footerTotalRowCount:zl,handleFooterPageIndexChange:Ll,handleFooterPageSizeChange:Nl,isPageCountKnown:Ol,renderedRows:ko,topPinnedRows:_l,bottomPinnedRows:Hl,reorderColumn:Mo,rowsToRender:Bl,sentinelRef:Vo,table:Z,virtualPaddingBottom:Gl,virtualPaddingTop:$l,visibleLeafColumns:kn}=Mi({autoResetPageIndex:false,columnGroupPaths:Fl,columnResizeMode:yr,dir:en,currentColumnFilters:Pt,currentColumnOrder:dn,currentColumnPinning:xt,currentRowPinning:cn,currentColumnSizing:qa,currentExpanded:Et,currentGrouping:un,currentPagination:aa,currentRowSelection:kt,currentSorting:Mt,currentViewMode:Ya,defaultColumn:R,effectiveColumnVisibility:Vt,enableColumnResizing:no,enableRowPinning:ka,enableRowSelection:Be,enableMultiRowSelection:Sa,enableSubRowSelection:Xe,getRowCanSelect:ce,getRowCanExpand:ke,getSubRows:Fe,aggregationFns:_e,groupedColumnMode:pa,globalFilterFn:De,globalFilterValue:ll,hasNextPage:we,handleColumnFiltersChange:ho,handleColumnOrderChange:pl,handleColumnPinningChange:yo,handleRowPinningChange:gl,handleColumnVisibilityChange:ml,handleExpandedChange:Ro,handleGroupingChange:bl,infiniteScroll:Dt,keepPinnedRows:t$1,manualFiltering:be,manualGrouping:ia,manualExpanding:Ue,manualPagination:He,manualSorting:Ye,onActionError:lt,onPageIndexChange:vt,onPageSizeChange:sn,pageCount:ra,pageIndex:St,pageSize:Qa,paginateExpandedRows:Ta,filterFromLeafRows:Ge,maxLeafRowFilterDepth:La,setCurrentRowSelection:So,setCurrentSorting:fl,setLocalColumnSizing:Tl,setLocalPagination:fn,shouldRenderInitialLoading:wn,tableColumns:Al,tableData:wl,tableGetRowId:Cl,tableRef:nn,totalRowCount:z,virtualization:tn}),Ao=Hi({columns:x,columnSizing:qa,editableRows:!!Va,enableRowSelection:Be,hasRowActions:ue.length>0,hasRowExpansion:!!(Fe||Ja),layoutMode:ht,uiClassNames:r$1,visibleLeafColumns:kn}),{explicitlySizedColumnIds:It,fillMinWidth:Ul,getColumnLayout:jl}=Ao,Kl=T.useMemo(()=>new Set(k(x).flatMap(({column:o,index:y})=>Object.prototype.hasOwnProperty.call(o,"cell")&&typeof o.cell=="function"?[s(o,y)]:[])),[x]),Wl=kn.length,Ql=T.useMemo(()=>({Checkbox:p$1,Input:u,Skeleton:S,TableCell:G,TableRow:f}),[]),ql=T.useMemo(()=>k(x).some(({column:o})=>o.meta?.cardTitle),[x]),Yl=T.useCallback((o,y)=>{It.has(o)||Object.prototype.hasOwnProperty.call(Z.getState().columnSizing,o)||flushSync(()=>{Z.setColumnSizing(ie=>({...ie,[o]:y}));});},[It,Z]),Jl=T.useCallback(o=>{if(It.has(o)){Z.getColumn(o)?.resetSize();return}Z.setColumnSizing(y=>{if(!Object.prototype.hasOwnProperty.call(y,o))return y;let ie={...y};return delete ie[o],ie});},[It,Z]),Mn=Z.getFilteredRowModel().rows.map(o=>o.original),Vn=ja?.empty??fr,Fo=typeof Vn=="function"?Vn({rows:Mn,toolbarQueryValue:Ba}):Vn,Io=T.useMemo(()=>ja?{...ja,onRetry:ja.onRetry?()=>Me({source:"retry"},ja.onRetry):void 0}:void 0,[Me,ja]),zo=Io?.error!=null?jsx(T.Suspense,{fallback:null,children:jsx(U,{labels:xe,overlay:Io,rows:Mn,toolbarQueryValue:Ba})}):void 0,{columnVisibilityOptions:Xl,effectiveToolbarActions:Lo,handleClearColumnFilters:Zl,handleToolbarColumnFilterChange:es,handleToolbarColumnPinningChange:as,toolbarColumnFilters:ts}=or({columns:x,currentColumnFilters:Pt,currentColumnPinning:xt,csvExport:ae,effectiveColumnVisibility:Vt,enableColumnFilters:Ee,handleColumnFiltersChange:ho,handleColumnPinningChange:yo,labels:xe,table:Z,toolbarActions:w,visibleData:Dl}),ns=T.useMemo(()=>[...Lo,...Jn?[{key:"__print__",label:xe.print,placement:"trailing",onClick:()=>{At();}}]:[],...Ct?[{key:"__fullscreen__",label:Eo?xe.exitFullscreen:xe.enterFullscreen,placement:"trailing",onClick:()=>Ft()}]:[]].map(o=>({...o,onClick:y=>{Me({actionKey:o.key,source:"toolbarAction"},()=>o.onClick(y));}})),[Lo,Ct,Jn,Eo,At,xe.enterFullscreen,xe.exitFullscreen,xe.print,Me,Ft]),os=T.useMemo(()=>j.map(o=>({...o,onClick:y=>{Me({actionKey:o.key,source:"selectionAction"},()=>o.onClick(y));}})),[Me,j]),No=T.useMemo(()=>({sorting:Mt,pagination:aa,rowSelection:kt,columnVisibility:Do,columnFilters:Pt,expanded:Et,grouping:un,columnOrder:dn,columnPinning:xt,rowPinning:cn,columnSizing:qa,density:st,viewMode:Ya,showHiddenRows:pn,globalFilter:Ba}),[Pt,dn,xt,cn,qa,Do,st,Et,un,aa,kt,pn,Mt,Ya,Ba]),dt=T.useCallback(()=>rd(No),[No]),Fa=T.useCallback(o=>{o.sorting!==void 0&&Z.setSorting(o.sorting),o.pagination!==void 0&&Z.setPagination(o.pagination),o.rowSelection!==void 0&&Z.setRowSelection(o.rowSelection),o.columnVisibility!==void 0&&Z.setColumnVisibility(o.columnVisibility),o.columnFilters!==void 0&&Z.setColumnFilters(o.columnFilters),o.expanded!==void 0&&Z.setExpanded(o.expanded),o.grouping!==void 0&&Z.setGrouping(o.grouping),o.columnOrder!==void 0&&Z.setColumnOrder(o.columnOrder),o.columnPinning!==void 0&&Z.setColumnPinning(o.columnPinning),o.rowPinning!==void 0&&Z.setRowPinning(o.rowPinning),o.columnSizing!==void 0&&Z.setColumnSizing(o.columnSizing),o.density!==void 0&&gn(o.density),o.viewMode!==void 0&&bn(o.viewMode),o.showHiddenRows!==void 0&&mn(o.showHiddenRows),o.globalFilter!==void 0&&Tn(o.globalFilter);},[gn,mn,bn,Tn,Z]),Xa=T.useCallback(()=>Ii(Pe??H),[H,Pe]),An=T.useCallback(o=>{o?.clearPersistence&&Xa(),Fa({columnVisibility:te?.columnVisibility??{},columnOrder:te?.columnOrder??[],columnPinning:te?.columnPinning??r(x),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{}});},[Xa,x,te,Fa]),Oo=T.useCallback(o=>{o?.clearPersistence&&Xa(),Fa({sorting:te?.sorting??[],pagination:te?.pagination??{pageIndex:0,pageSize:he[0]??20},rowSelection:te?.rowSelection??{},columnVisibility:te?.columnVisibility??{},columnFilters:te?.columnFilters??[],expanded:te?.expanded??{},grouping:te?.grouping??[],columnOrder:te?.columnOrder??[],columnPinning:te?.columnPinning??r(x),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{},density:te?.density??"comfortable",viewMode:te?.viewMode??"table",showHiddenRows:te?.showHiddenRows??false,globalFilter:te?.globalFilter??""});},[Xa,x,te,Fa,he]),_o=T.useCallback(()=>Ua(re),[re]),zt=T.useCallback(o=>Zi(re,o,dt()),[dt,re]),Fn=T.useCallback(o=>{let y=Ua(re).find(ie=>ie.id===o);return y?(Fa(y.state),re?.onApply?.(y),true):false},[Fa,re]),Lt=T.useCallback((o,y)=>er(re,o,y),[re]),Nt=T.useCallback(o=>ar(re,o),[re]),Ho=T.useCallback(()=>tr(re),[re]),is=T.useMemo(()=>Ua(re),[re,mo]),rs=T.useCallback(o=>{let y=zt(o);return y&&on(ie=>ie+1),y},[zt]),ls=T.useCallback((o,y)=>{let ie=Lt(o,y);return ie&&on(ct=>ct+1),ie},[Lt]),ss=T.useCallback(o=>{let y=Nt(o);return y&&on(ie=>ie+1),y},[Nt]),Bo=T.useCallback(o=>p({csvExport:o??(ae||true),labels:xe,table:Z}),[ae,xe,Z]),In=T.useCallback(async o=>{let{copyDataTableToClipboard:y}=await import('./data-table-clipboard-7IVWTPU3.js');return y({clipboard:o??(N?.copy===false?false:Aa?{...N?.copy===true?{}:N?.copy,scope:"cellSelection"}:N?.copy??true),cellSelection:Aa,table:Z})},[N?.copy,Aa,Z]),Go=T.useCallback((o,y="top")=>{try{let ie=Z.getRow(o,!0);return ie.getCanPin()?(ie.pin(y),!0):!1}catch{return false}},[Z]),$o=T.useCallback(o=>{try{let y=Z.getRow(o,!0);return y.getCanPin()?(y.pin(!1),!0):!1}catch{return false}},[Z]);return T.useImperativeHandle(dr,()=>({getTable:()=>nn.current,getState:dt,snapshot:dt,restore:Fa,resetColumnLayout:An,resetState:Oo,clearPersistedState:Xa,getSavedViews:_o,createSavedView:zt,applySavedView:Fn,renameSavedView:Lt,deleteSavedView:Nt,clearSavedViews:Ho,pinRow:Go,unpinRow:$o,focus:()=>{Ha.current?.focus();},scrollToRow:o=>lr(Ha.current,"row",o),scrollToColumn:o=>lr(Ha.current,"column",o),exportCsv:Bo,copyToClipboard:In,getCellSelection:()=>Aa,setCellSelection:Rt,clearCellSelection:()=>Rt(null),print:At,toggleFullscreen:Ft}),[Fn,Xa,Ho,In,Aa,zt,Nt,Bo,_o,dt,Lt,An,Oo,Fa,Go,At,Rt,$o,Ft]),jsx(m,{children:jsxs("div",{ref:Ha,"data-dtp-slot":"data-table-root","data-density":st,"data-dtp-striped-rows":so||void 0,"aria-busy":Xn||void 0,dir:en,tabIndex:-1,className:a$2("@container/data-table data-table-container-query flex w-full min-w-0 flex-col",Ka?"h-full min-h-0 flex-1":"grow",l),onDragEnter:Wa?.onDragEnter,onDragOver:Wa?.onDragOver,onDragLeave:Wa?.onDragLeave,onDrop:Wa?.onDrop,onKeyDown:o=>{if(ln&&Ma&&(o.ctrlKey||o.metaKey)&&o.key.toLowerCase()==="z"&&!Qn(o.target)){let y=o.shiftKey?Ma.redo:Ma.undo;y&&(o.preventDefault(),Me({source:o.shiftKey?"redo":"undo"},()=>y({cellSelection:Aa,table:Z})));return}!N?.copy||!(o.ctrlKey||o.metaKey)||o.key.toLowerCase()!=="c"||Qn(o.target)||(o.preventDefault(),Me({source:"clipboardCopy"},async()=>{await In(N.copy===true?void 0:Aa&&typeof N.copy=="object"&&!N.copy.scope?{...N.copy,scope:"cellSelection"}:N.copy);}));},onPaste:o=>{let y=N?.paste;if(!y||y.enabled===false||Qn(o.target))return;let ie=o.clipboardData.getData("text/plain");ie&&((y.preventDefault??true)&&o.preventDefault(),Me({source:"clipboardPaste"},async()=>{let{parseDataTableClipboardText:ct}=await import('./data-table-clipboard-7IVWTPU3.js');return y.onPaste({table:Z,text:ie,values:ct(ie)})}));},children:[xl?jsx(T.Suspense,{fallback:null,children:jsx(ad,{config:xo,currentPageSize:aa.pageSize,enabled:true,onPageSizeChange:Pl,viewportElement:xn,viewportHeight:En})}):null,Ca?jsx("input",{ref:po,className:"hidden",type:"file",accept:Ca.accept,multiple:Ca.multiple??true,disabled:Ca.disabled,onChange:o=>{let y=o.currentTarget.files;y?.length&&Ml(y),o.currentTarget.value="";}}):null,jsx("div",{"data-dtp-slot":"data-table-layout",className:a$2("flex w-full flex-col",Ka?"min-h-0 flex-1":"grow"),children:jsxs("div",{"data-dtp-slot":"data-table-main",className:a$2("flex w-full flex-col gap-4",Ka?"min-h-0 flex-1":"grow",vr),children:[io?jsx(yi,{allRows:Mn,columnFilters:ts,columnVisibilityOptions:Xl,compactToolbar:X,customToolbar:Oe,DataTableToolbar:K,density:st,description:q,descriptionId:To,effectiveToolbarActions:ns,enableColumnPinning:Na,enableGrouping:Ae,enableToolbarColumnChooser:rn.columnChooser===true,enableToolbarFilterChips:!!ca,enableToolbarResetLayout:rn.resetLayout===true,enableToolbarSavedViews:rn.savedViews===true&&!!re,enableDensityToggle:Xt,enableViewToggle:br&&!!Zt,hiddenRowsLabel:Zn?.label,labels:xe,onClearColumnFilters:Zl,onColumnFilterChange:es,onColumnPinningChange:as,onDensityChange:gn,onShowHiddenRowsChange:mn,onToolbarQueryValueChange:Tn,reorderColumn:Mo,onResetColumnLayout:An,onCreateSavedView:rs,onApplySavedView:Fn,onRenameSavedView:ls,onDeleteSavedView:ss,onViewModeChange:bn,openFileDialog:Ca?kl:void 0,selectedRowIds:cl,selectedRows:ul,selectionActions:os,savedViews:is,showHiddenRows:pn,table:Z,title:P,titleId:fo,toolbarQueryPlaceholder:dl,toolbarQueryValue:Ba,toolbarVisibility:ro,viewMode:Ya}):null,jsx("div",{"data-dtp-slot":"data-table-content",className:a$2(Ka?"flex min-h-0 flex-1 flex-col":""),children:Ya==="card"&&Zt?jsx(n,{cardClassName:gr,cardGridClassName:pr,cardSizing:ur,cardRenderer:Zt,containerWidth:rl,currentDetailExpanded:Dn,currentRowSelection:kt,DataTableCardView:_,DataTableEmptyState:L,dragAndDrop:Wa,editableRows:Va,editingRowId:Rn,emptyNode:Fo,stateOverlayNode:zo,enableRowSelection:Be,flexGrow:Ka,getRowClassName:co,hasCardTitle:ql,infiniteScroll:Dt,localSearchValue:Ba,onRowClick:Co,renderedRows:ko,detailPanel:Ja,resolvedLabels:xe,resolvedLoadingRowCount:sl,rowActions:wo,ScrollArea:h,scrollbarVisibility:oo,sentinelRef:Vo,setCurrentDetailExpanded:vo,setCurrentRowSelection:So,setEditingRowId:Rl,shouldRenderInitialLoading:wn,tableContainerClassName:lo,uiClassNames:r$1,virtualization:tn}):jsx(i,{ariaDescribedBy:To,ariaLabelledBy:fo,bodyRowComponents:Ql,columnLayouts:Ao.columnLayouts,currentDensity:st,columnGroupHeaderHeight:xa,currentDetailExpanded:Dn,currentSorting:Mt,dir:en,DataTableEmptyState:L,dragAndDrop:Wa,draggedColumnIdRef:xr,draftValues:hl,editingRowId:Rn,editingContext:vl,emptyNode:Fo,stateOverlayNode:zo,enableColumnReordering:Ze,enableColumnResizing:no,explicitCustomCellColumnIds:Kl,fillMinWidth:Ul,flexGrow:Ka,getColumnLayout:jl,getRowClassName:co,getRowLoadingState:wr,infiniteScroll:Dt,layoutMode:ht,localSearchValue:Ba,onRowClick:Co,primeColumnForResize:Yl,renderedRows:ko,detailPanel:Ja,topPinnedRows:_l,bottomPinnedRows:Hl,reorderColumn:Mo,resetColumnSize:Jl,resolvedLabels:xe,rowsToRender:Bl,ScrollArea:h,ScrollBar:E,scrollbarVisibility:oo,sentinelRef:Vo,setDraftValues:yl,shouldRenderInitialLoading:wn,stickyHeader:Rr,stripedRows:so,summaryRows:cr,table:Z,tableClassName:Pr,tableContainerClassName:lo,Table:I,TableBody:A,TableCell:G,TableFooter:J,TableHead:V,TableHeader:g$1,TableRow:f,tableScrollContainerRef:go,tableScrollElement:xn,uiClassNames:r$1,viewportHeight:En,virtualization:tn,gridMode:ln,gridPageSize:uo?.pageSize??(typeof yt=="object"?yt.pageSize:void 0),cellSelectionEnabled:ln&&(ea||Oa!==void 0||_a!==void 0),cellSelection:Aa,onCellSelectionChange:Rt,gridRowOffset:He?aa.pageIndex*aa.pageSize:0,totalRowCount:z,virtualPaddingBottom:Gl,virtualPaddingTop:$l,visibleLeafColumnCount:Wl,visibleLeafColumns:kn})}),jsx(Di,{currentPagination:aa,DataTableFooter:$,effectivePageCount:Il,footerTotalRowCount:zl,handleFooterPageIndexChange:Ll,handleFooterPageSizeChange:Nl,labels:xe,pageCountKnown:Ol,rowsPerPageOptions:he,showFooter:Sr&&!Dt?.enabled,children:Q})]})})]})})}}function nd(e,a,n){let i;try{i=e();}catch(r){n?.({...a,error:r});return}Promise.resolve(i).catch(r=>{n?.({...a,error:r});});}function Ne(e,a,n){let i=T.useCallback(r=>{a?.(r),n?.(l=>({...l,[e]:r}));},[e,a,n]);return a||n?i:void 0}function od(e,a){let n=T.useRef(new Set);T.useEffect(()=>{if(!(!e||!id()))for(let i of Object.keys(a))e[i]===void 0||!a[i]||n.current.has(i)||(n.current.add(i),console.warn(`[data-table-pro] Both state.${i} and its legacy controlled prop were provided. The legacy prop takes precedence during the 4.x compatibility window.`));},[a,e]);}function id(){return globalThis.process?.env?.NODE_ENV!=="production"}function rd(e){return {sorting:e.sorting.map(a=>({...a})),pagination:{...e.pagination},rowSelection:{...e.rowSelection},columnVisibility:{...e.columnVisibility},columnFilters:e.columnFilters.map(a=>({...a})),expanded:typeof e.expanded=="boolean"?e.expanded:{...e.expanded},grouping:[...e.grouping??[]],columnOrder:[...e.columnOrder],columnPinning:{left:e.columnPinning.left?[...e.columnPinning.left]:void 0,right:e.columnPinning.right?[...e.columnPinning.right]:void 0},rowPinning:{top:e.rowPinning.top?[...e.rowPinning.top]:void 0,bottom:e.rowPinning.bottom?[...e.rowPinning.bottom]:void 0},columnSizing:{...e.columnSizing},density:e.density,viewMode:e.viewMode,showHiddenRows:e.showHiddenRows,globalFilter:e.globalFilter}}function lr(e,a,n){if(!e)return false;let i=a==="row"?"data-row-id":"data-column-id",r=Array.from(e.querySelectorAll(`[${i}]`)).find(l=>l.getAttribute(i)===n);return r?(r.scrollIntoView?.({block:"nearest",inline:"nearest"}),true):false}function Qn(e){return e instanceof HTMLElement?e.isContentEditable||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement:false}export{Ci as a,Di as b,yi as c,Si as d,Re as e,Mi as f,Oi as g,Hi as h,qc as i,td as j};//# sourceMappingURL=chunk-I3CW6DTA.js.map +//# sourceMappingURL=chunk-I3CW6DTA.js.map \ No newline at end of file diff --git a/dist/chunk-I3CW6DTA.js.map b/dist/chunk-I3CW6DTA.js.map new file mode 100644 index 0000000..7d70021 --- /dev/null +++ b/dist/chunk-I3CW6DTA.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/core/data-table/data-table-base-card-panel.tsx","../src/core/data-table/data-table-card-panel.tsx","../src/core/data-table/data-table-footer-section.tsx","../src/core/data-table/data-table-toolbar-section.tsx","../src/core/data-table/data-table-labels.ts","../src/core/data-table/use-data-table-columns.tsx","../src/core/data-table/use-controllable-state.ts","../src/core/data-table/use-data-table-infinite-scroll.ts","../src/core/data-table/use-data-table-pagination-clamp.ts","../src/core/data-table/use-data-table-search-index.ts","../src/core/data-table/use-data-table-instance.ts","../src/core/data-table/use-data-table-column-prefs.ts","../src/core/data-table/use-data-table-container-width.ts","../src/core/data-table/use-data-table-state.ts","../src/core/data-table/use-column-layout.ts","../src/core/data-table/create-data-table-card-view.tsx","../src/core/data-table/create-data-table-empty-state.tsx","../src/core/data-table/create-data-table-pagination.tsx","../src/core/data-table/create-data-table-row-actions.tsx","../src/core/data-table/create-data-table-toolbar.tsx","../src/core/data-table/data-table-table-panel-router.tsx","../src/core/data-table/data-table-saved-views.ts","../src/core/data-table/use-data-table-toolbar-features.ts","../src/core/data-table/use-data-table-performance-diagnostics.ts","../src/core/data-table/create-data-table.tsx"],"names":["DataTableBaseCardPanel","cardClassName","cardGridClassName","cardSizing","cardRenderer","currentRowSelection","currentDetailExpanded","DataTableCardView","DataTableEmptyState","dragAndDrop","editableRows","editingRowId","emptyNode","enableRowSelection","flexGrow","getRowClassName","hasCardTitle","infiniteScroll","localSearchValue","onRowClick","renderedRows","detailPanel","resolvedLabels","resolvedLoadingRowCount","rowActions","ScrollArea","scrollbarVisibility","sentinelRef","setCurrentDetailExpanded","setCurrentRowSelection","setEditingRowId","shouldRenderInitialLoading","stateOverlayNode","tableContainerClassName","uiClassNames","shouldRenderCards","cardScrollContainerRef","wi","renderCardView","rows","options","jsx","jsxs","cn","LazyDataTableVirtualCardPanel","Ut","DataTableCardPanel","props","config","DataTableFooterSection","children","currentPagination","DataTableFooter","effectivePageCount","footerTotalRowCount","handleFooterPageIndexChange","handleFooterPageSizeChange","labels","pageCountKnown","rowsPerPageOptions","showFooter","DataTableToolbarSection","allRows","columnFilters","columnVisibilityOptions","compactToolbar","customToolbar","DataTableToolbar","description","descriptionId","effectiveToolbarActions","enableColumnPinning","enableGrouping","enableToolbarColumnChooser","enableToolbarFilterChips","enableToolbarResetLayout","enableToolbarSavedViews","enableDensityToggle","enableViewToggle","hiddenRowsLabel","onClearColumnFilters","onColumnFilterChange","onColumnPinningChange","onDensityChange","onShowHiddenRowsChange","onToolbarQueryValueChange","reorderColumn","onResetColumnLayout","onCreateSavedView","onApplySavedView","onRenameSavedView","onDeleteSavedView","onViewModeChange","openFileDialog","selectedRowIds","selectedRows","selectionActions","savedViews","showHiddenRows","table","title","titleId","toolbarQueryPlaceholder","toolbarQueryValue","toolbarVisibility","density","viewMode","columnId","visible","DATA_TABLE_DEFAULT_LABELS","count","label","pageIndex","pageCount","rowId","columnLabel","name","resolveDataTableLabels","useDataTableColumns","Button","Checkbox","DataTableRowActions","Tooltip","TooltipContent","TooltipTrigger","cancelEditing","columns","editErrors","enableRowPinning","hasTreeExpansion","isSavingEdit","isEditDirty","includeFillSpacer","lastSelectedRowIdRef","detailExpanded","onDetailExpandedChange","rowSelectionSelectAllScope","saveEdit","startEditingRow","tableRef","selectRowRange","Kt","targetRowId","selected","tableInstance","row","isDataTableLoadingRow","startIndex","endIndex","from","to","current","next","item","defs","expansionColumnSize","UTILITY_COLUMN_SIZE","canExpandTree","canExpandDetail","isTreeExpanded","isDetailExpanded","IconChevronDown","toggleDataTableExpandedState","selectsFilteredRows","selectableRows","allSelected","someSelected","checked","event","column","decorateFilterableColumn","position","useControllableState","defaultValue","onChange","value","uncontrolledValue","setUncontrolledValue","Ia","currentValue","currentValueRef","setValue","updater","nextValue","useDataTableInfiniteScroll","enabled","hasMore","isLoadingMore","onLoadMore","onError","za","isRequestInFlightRef","onLoadMoreEvent","onErrorEvent","error","target","observer","entries","result","useDataTablePaginationClamp","maxPageIndex","onPageIndexChange","setLocalPageIndex","Pi","nextPageIndex","useDataTableSearchIndex","Ei","valuesByRow","filterValue","query","normalizeDataTableSearchText","original","valuesByColumn","text","useDataTableInstance","autoResetPageIndex","columnGroupPaths","columnResizeMode","dir","currentColumnFilters","currentColumnOrder","currentColumnPinning","currentRowPinning","currentColumnSizing","currentExpanded","currentGrouping","currentSorting","currentViewMode","defaultColumn","effectiveColumnVisibility","enableColumnResizing","enableMultiRowSelection","enableSubRowSelection","getRowCanSelect","getRowCanExpand","getSubRows","aggregationFns","groupedColumnMode","globalFilterFn","globalFilterValue","hasNextPage","handleColumnFiltersChange","handleColumnOrderChange","handleColumnPinningChange","handleRowPinningChange","handleColumnVisibilityChange","handleExpandedChange","handleGroupingChange","keepPinnedRows","manualFiltering","manualGrouping","manualExpanding","manualPagination","manualSorting","onActionError","onPageSizeChange","pageSize","paginateExpandedRows","filterFromLeafRows","maxLeafRowFilterDepth","setCurrentSorting","setLocalColumnSizing","setLocalPagination","tableColumns","tableData","tableGetRowId","totalRowCount","virtualization","cachedGlobalFilterFn","generatedColumnIds","Le","getDataTableLeafColumns","index","getColumnId","effectiveColumnOrder","columnIds","dataColumnIds","isUtilityColumnId","dataColumnIdSet","orderedDataColumnIds","unorderedDataColumnIds","effectiveColumnPinning","columnIdSet","dataLeft","dataRight","effectiveRowPinning","availableRowIds","visitRows","subRows","top","topIds","bottom","tableState","handlePaginationChange","handleColumnSizingChange","facetingNeeds","uniqueValues","minMaxValues","useReactTable","getCoreRowModel","getFilteredRowModel","getFacetedRowModel","getFacetedUniqueValues","getFacetedMinMaxValues","getGroupedRowModel","getSortedRowModel","getExpandedRowModel","getPaginationRowModel","visibleLeafColumns","sourceColumnId","targetColumnId","canReorderDataTableColumn","defaultOrder","nextOrder","moveColumnInOrder","topPinnedRows","bottomPinnedRows","virtualizationConfig","virtualRowsEnabled","fallbackRowCount","rowsToRender","rowIndex","usesManualRows","derivedTotalRowCount","effectiveTotalRowCount","isPageCountKnown","nextPageSize","STORAGE_PREFIX","DEFAULT_VERSION","ALL_SLICES","readDataTableColumnPrefs","input","resolvePersistenceConfig","storage","resolveStorage","storageKey","getStorageKey","parsed","targetVersion","candidate","isPersistencePayload","selectPersistenceSlices","validateDataTableColumnPrefs","clearDataTableColumnPrefs","usePersistDataTableColumnPrefs","key","persistence","prefs","version","debounceMs","selectedState","serialized","$a","payload","operation","write","timeout","isRecord","slices","slice","visibility","validateBooleanRecord","sizing","validateSizingRecord","order","validateStringArray","left","right","rowPinning","validateRowPinning","isDataTableDensity","entry","BREAKPOINT_WIDTHS","DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS","first","second","useDataTableContainerWidth","containerRef","widthRef","ot","width","setWidth","element","updateWidth","inlineSize","nextWidth","quantizeDataTableContainerWidth","getResizeObserverInlineSize","bucket","breakpointWidth","contentBoxSize","size","getInlineSize","useDataTableState","columnOrder","columnPinning","columnSizing","columnPrefsKey","columnVisibility","data","enableToolbarQueryFiltering","expanded","grouping","getRowId","hiddenRows","initialState","isLoading","loadingRowCount","onColumnFiltersChange","onColumnOrderChange","onRowPinningChange","onColumnSizingChange","onColumnVisibilityChange","onExpandedChange","onGroupingChange","onRowSelectionChange","onSortingChange","rowSelection","sorting","toolbarQueryDebounceMs","persistenceConfig","ee","persistedColumnPrefs","localPagination","currentColumnVisibility","setCurrentColumnVisibility","setCurrentColumnFilters","setCurrentExpanded","setCurrentColumnOrder","setCurrentColumnPinning","getInitialColumnPinning","setCurrentRowPinning","setCurrentColumnSizing","setCurrentViewMode","setCurrentGrouping","currentShowHiddenRows","setCurrentShowHiddenRows","currentDensity","setCurrentDensity","resolvedToolbarQueryValue","resolvedToolbarQueryPlaceholder","resolvedToolbarQueryDebounceMs","setLocalSearchValue","containerWidth","hasOnSearchValueChange","lastReportedSearchValueRef","onToolbarQueryValueChangeEvent","deferredSearchValue","handleViewModeChange","nextViewMode","handleShowHiddenRowsChange","nextShowHiddenRows","handleDensityChange","nextDensity","resetPageIndexForFilterChange","lastFilterStateRef","previous","filtersChanged","globalFilterChanged","responsiveColumnVisibility","isHiddenAtContainerWidth","visibleData","isRowVisible","loadingRows","createDataTableLoadingRows","getDataTableLoadingRowId","shouldResolveSelectedRows","rowById","currentRows","EMPTY_COLUMN_LAYOUT","useColumnLayout","hasRowActions","hasRowExpansion","layoutMode","explicitlySizedColumnIds","Da","ids","hasExplicitDataTableColumnSize","minimumColumnWidths","widths","configuredMinWidth","getConfiguredColumnMinWidth","pinnedColumns","leftOffset","getFixedSide","getColumnLayoutSize","rightOffset","fixedWidthColumnIds","columnLayouts","layouts","isSelectionColumn","isExpansionColumn","isActionsColumn","isUtilityColumn","isSpacerColumn","columnMinWidth","shouldFixWidth","baseStyle","fixedSide","pinnedStyle","cellStyle","getPinnedColumnClassName","fillMinWidth","total","layout","getColumnLayout","createDataTableCardView","ui","Card","CardContent","CardHeader","Skeleton","onEditingRowIdChange","getRowDraggable","onRowDragStart","onRowDragEnd","resolvedCardSizing","resolvedCardGridClassName","getCardGridClassName","cardGridClasses","cardItemClasses","stateClassName","getCardItemClassName","_","originalRow","isSelected","isEditing","hasCardActions","showCardGradient","showCardOverlayControls","handleCardActivate","getCardRendererClassName","isDataTableInteractiveTarget","updateRowSelection","canSelect","canMultiSelect","nextSelection","createDataTableEmptyState","Empty","EmptyContent","EmptyDescription","EmptyHeader","EmptyMedia","EmptyTitle","IconInbox","createDataTablePagination","Pagination","PaginationContent","PaginationEllipsis","PaginationFirst","PaginationItem","PaginationLast","PaginationLink","PaginationNext","PaginationPrevious","Select","SelectContent","SelectGroup","SelectItem","SelectTrigger","SelectValue","DataTablePagination","pages","getVisiblePages","canGoPrevious","canGoNext","lastPageIndex","option","IconDatabase","currentPageIndex","currentPage","page","orderedPages","items","createDataTableRowActions","DropdownMenu","DropdownMenuContent","DropdownMenuGroup","DropdownMenuItem","DropdownMenuSeparator","DropdownMenuTrigger","onStartEditing","onCancelEditing","actions","action","canUseRowAction","stopRowClickPropagation","Ki","IconX","allowEdit","canEditRow","canPin","IconDots","IconEdit","Fragment","Icon","resolveRowActionLabel","LazyToolbarDataOperations","ta","createDataTableToolbar","ButtonGroup","DropdownMenuCheckboxItem","DropdownMenuLabel","InputGroup","InputGroupAddon","InputGroupInput","toolbarActions","compactSearchInputRef","isCompactSearchVisible","setIsCompactSearchVisible","compactToolbarIconButtonClassName","primaryActions","trailingActions","showTitle","showSearch","showActions","showTrailingActions","showOptions","showViewToggle","showCustomToolbar","hasVisibleTitle","hasVisibleSearch","hasVisiblePrimaryActions","hasVisibleSelectionActions","hasVisibleOptions","hasToolbarOperationsMenu","activeColumnFilters","filter","hasColumnFilterValue","toolbarOperationsUi","renderToolbarDataOperations","placement","groupableColumns","groupedColumns","id","hasVisibleViewToggle","hasVisibleTrailingActions","hasVisibleCustomToolbar","hasVisibleCompactToolbar","selectedRowCountLabel","IconSearch","collapsesToIcon","button","context","disabled","IconAdjustmentsHorizontal","isGrouped","IconList","IconLayoutGrid","ToolbarColumnFilterControl","groupingIndex","moveGrouping","nextIndex","nextGrouping","groupingId","facetQuery","setFacetQuery","range","normalizeToolbarRangeValue","inputType","fromLabel","toLabel","parseRangeInputValue","isBoolean","isFaceted","booleanOptions","visibleOptions","selectedValue","selectedValues","selectedLabel","nextValues","LazyDataTableVirtualTablePanel","Qt","DataTableTablePanelRouter","DataTableTablePanel","DEFAULT_SLICES","fallbackId","readDataTableSavedViews","view","validateSavedView","createDataTableSavedView","state","normalizedName","now","createSavedViewId","selectSavedViewSlices","views","writeViews","cloneSavedView","renameDataTableSavedView","renamed","deleteDataTableSavedView","clearDataTableSavedViews","snapshots","snapshot","cloneStateSlice","validateState","validateSorting","pagination","validatePagination","filters","validateFilters","pinning","validatePinning","useDataTableToolbarFeatures","enableColumnFilters","csvExport","ya","header","accessorKey","getAccessorKey","startCase","pinned","toolbarColumnFilters","configuredFacetOptions","facetedMinMax","rawOptions","normalizeColumnFilterOptions","handleToolbarColumnFilterChange","hasFilterValue","handleClearColumnFilters","handleToolbarColumnPinningChange","side","handleCsvExport","exportDataTableCsv","IconDownload","useDataTablePerformanceDiagnostics","wt","warned","isDevelopmentEnvironment","last","haveSameItems","warn","message","DataTableAutoPageSize","createDataTable","createDataTableWithPanels","rootClassName","Input","ScrollBar","Table","TableBody","TableCell","TableFooter","TableHead","TableHeader","TableRow","TooltipProvider","DataTableStateOverlay","createDataTableStateOverlay","autoPageSize","renderExpandedRow","enableColumnReordering","columnGroupHeaderHeight","clipboard","enableCellSelection","cellSelection","defaultCellSelection","onCellSelectionChange","gridCommands","toolbarDataOperations","unifiedState","onStateChange","apiRef","summaryRows","enablePrint","enableFullscreen","emptyState","stateOverlay","getRowLoadingState","stickyHeader","showToolbar","className","tableClassName","stripedRows","fileUpload","accessibility","interactiveGrid","fileInputRef","tableScrollContainerRef","draggedColumnIdRef","toolbarSavedViewsVersion","setToolbarSavedViewsVersion","generatedTitleId","generatedDescriptionId","validateDataTableColumnIds","toolbarOperations","gridMode","currentCellSelection","setCurrentCellSelection","resolvedSorting","resolvedGrouping","resolvedPageIndex","resolvedPageSize","resolvedRowSelection","resolvedColumnVisibility","resolvedColumnFilters","resolvedExpanded","resolvedColumnOrder","resolvedColumnPinning","resolvedRowPinning","resolvedColumnSizing","resolvedDensity","resolvedViewMode","resolvedShowHiddenRows","showTableHeading","useDataTableStateConflictWarnings","handleToolbarQueryValueChange","useDataTableStateSliceChange","handleSortingPropChange","handleGroupingPropChange","handleRowSelectionPropChange","handleColumnVisibilityPropChange","handleColumnFiltersPropChange","handleExpandedPropChange","handleColumnOrderPropChange","handleColumnPinningPropChange","handleRowPinningPropChange","handleColumnSizingPropChange","handleDensityPropChange","handleViewModePropChange","handleShowHiddenRowsPropChange","handlePageIndexPropChange","handlePageSizePropChange","runAction","runDataTableAction","guardedRowActions","guardedOnRowClick","handleEditError","usesLegacyDetailPanelState","resolvedDetailPanel","clearEditError","draftValues","setDraftValues","useRowEditing","rowEditingContext","tableScrollElement","viewportHeight","useDataTableScrollViewport","autoPageSizeConfig","handleAutoPageSizeChange","autoPageSizeEnabled","print","toggleFullscreen","isFullscreen","setIsFullscreen","update","handleSelectedFiles","files","visibleDataColumns","getDataTableColumnGroupPaths","virtualPaddingBottom","virtualPaddingTop","columnLayout","explicitCustomCellColumnIds","visibleLeafColumnCount","bodyRowComponents","primeColumnForResize","currentSize","flushSync","resetColumnSize","filteredData","configuredEmptyState","guardedStateOverlay","guardedToolbarActions","guardedSelectionActions","currentDataTableState","getCurrentState","cloneDataTableState","restoreState","nextState","clearPersistedState","resetColumnLayout","resetState","getSavedViews","createSavedView","applySavedView","renameSavedView","deleteSavedView","clearSavedViews","toolbarSavedViews","handleToolbarCreateSavedView","handleToolbarRenameSavedView","handleToolbarDeleteSavedView","deleted","exportCsvFromApi","copyToClipboard","copyDataTableToClipboard","pinRow","unpinRow","scrollDataTableElementIntoView","isDataTableEditableClipboardTarget","command","paste","parseDataTableClipboardText","onLegacyChange","handleChange","legacySlices","warnedSlicesRef","container","kind","attribute"],"mappings":"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","file":"chunk-I3CW6DTA.js","sourcesContent":["import * as React from \"react\";\nimport type { Row } from \"@tanstack/react-table\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\n\nexport function DataTableBaseCardPanel({\n cardClassName,\n cardGridClassName,\n cardSizing,\n cardRenderer,\n currentRowSelection,\n currentDetailExpanded,\n DataTableCardView,\n DataTableEmptyState,\n dragAndDrop,\n editableRows,\n editingRowId,\n emptyNode,\n enableRowSelection,\n flexGrow,\n getRowClassName,\n hasCardTitle,\n infiniteScroll,\n localSearchValue,\n onRowClick,\n renderedRows,\n detailPanel,\n resolvedLabels,\n resolvedLoadingRowCount,\n rowActions = [],\n ScrollArea,\n scrollbarVisibility,\n sentinelRef,\n setCurrentDetailExpanded,\n setCurrentRowSelection,\n setEditingRowId,\n shouldRenderInitialLoading,\n stateOverlayNode,\n tableContainerClassName,\n uiClassNames,\n}: DataTableCardPanelProps) {\n const shouldRenderCards =\n shouldRenderInitialLoading || renderedRows.length > 0;\n const cardScrollContainerRef = React.useRef(null);\n\n const renderCardView = (\n rows: Array>,\n options?: {\n isLoading?: boolean;\n loadingRowCount?: number;\n },\n ) => (\n \n );\n\n return (\n \n \n \n {shouldRenderCards ? (\n shouldRenderInitialLoading ? (\n renderCardView([], {\n isLoading: true,\n loadingRowCount: resolvedLoadingRowCount,\n })\n ) : (\n renderCardView(renderedRows)\n )\n ) : (\n
    \n {emptyNode ?? (\n \n )}\n
    \n )}\n\n {infiniteScroll?.enabled && !shouldRenderInitialLoading ? (\n
    \n
    \n
    \n ) : null}\n
    \n \n {stateOverlayNode}\n \n );\n}\n","import * as React from \"react\";\nimport { DataTableBaseCardPanel } from \"./data-table-base-card-panel\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\n\nconst LazyDataTableVirtualCardPanel = React.lazy(async () => {\n const module = await import(\"./data-table-virtual-card-panel\");\n return { default: module.DataTableVirtualCardPanel };\n}) as unknown as typeof DataTableBaseCardPanel;\n\nexport function DataTableCardPanel(\n props: DataTableCardPanelProps,\n) {\n const config =\n typeof props.virtualization === \"object\"\n ? props.virtualization.card\n : undefined;\n\n if (config?.enabled !== true) {\n return ;\n }\n\n return (\n \n }\n >\n \n \n );\n}\n\nexport type { DataTableCardPanelProps };\n","import * as React from \"react\";\nimport type { PaginationState } from \"@tanstack/react-table\";\nimport type { DataTableLabels } from \"../types\";\n\ntype DataTableFooterSectionProps = {\n children?: React.ReactNode;\n currentPagination: PaginationState;\n DataTableFooter: React.ElementType;\n effectivePageCount: number;\n footerTotalRowCount: number | undefined;\n handleFooterPageIndexChange: (pageIndex: number) => void;\n handleFooterPageSizeChange: (pageSize: number) => void;\n labels: DataTableLabels;\n pageCountKnown?: boolean;\n rowsPerPageOptions: Array;\n showFooter: boolean;\n};\n\nexport function DataTableFooterSection({\n children,\n currentPagination,\n DataTableFooter,\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n labels,\n pageCountKnown = true,\n rowsPerPageOptions,\n showFooter,\n}: DataTableFooterSectionProps) {\n if (!showFooter && !children) {\n return null;\n }\n\n return (\n
    \n {showFooter ? (\n \n ) : null}\n {children}\n
    \n );\n}\n","import * as React from \"react\";\nimport type { Table as TanStackTable } from \"@tanstack/react-table\";\nimport type {\n DataTableLabels,\n DataTableProps,\n DataTableSavedView,\n} from \"../types\";\n\ntype DataTableToolbarSectionProps = {\n allRows: Array;\n columnFilters: Array;\n columnVisibilityOptions: Array;\n compactToolbar: React.ReactNode;\n customToolbar: React.ReactNode;\n DataTableToolbar: React.ElementType;\n description: string | undefined;\n descriptionId: string | undefined;\n effectiveToolbarActions: Array;\n enableColumnPinning: boolean;\n enableGrouping: boolean;\n enableToolbarColumnChooser: boolean;\n enableToolbarFilterChips: boolean;\n enableToolbarResetLayout: boolean;\n enableToolbarSavedViews: boolean;\n enableDensityToggle: boolean;\n enableViewToggle: boolean;\n hiddenRowsLabel: string | undefined;\n labels: DataTableLabels;\n onClearColumnFilters: () => void;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n onColumnPinningChange: (columnId: string, side: \"left\" | \"right\" | false) => void;\n onDensityChange: (density: \"compact\" | \"comfortable\" | \"spacious\") => void;\n onShowHiddenRowsChange: (showHiddenRows: boolean) => void;\n onToolbarQueryValueChange: (value: string) => void;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n onResetColumnLayout: () => void;\n onCreateSavedView: (name: string) => DataTableSavedView | undefined;\n onApplySavedView: (id: string) => boolean;\n onRenameSavedView: (id: string, name: string) => DataTableSavedView | undefined;\n onDeleteSavedView: (id: string) => boolean;\n onViewModeChange: (viewMode: \"table\" | \"card\") => void;\n openFileDialog: (() => void) | undefined;\n selectedRowIds: Array;\n selectedRows: Array;\n selectionActions: DataTableProps[\"selectionActions\"];\n savedViews: Array;\n showHiddenRows: boolean;\n table: TanStackTable;\n title: string | undefined;\n titleId: string | undefined;\n toolbarQueryPlaceholder: string;\n toolbarQueryValue: string;\n toolbarVisibility: DataTableProps[\"toolbarVisibility\"];\n density: \"compact\" | \"comfortable\" | \"spacious\";\n viewMode: \"table\" | \"card\";\n};\n\nexport function DataTableToolbarSection({\n allRows,\n columnFilters,\n columnVisibilityOptions,\n compactToolbar,\n customToolbar,\n DataTableToolbar,\n description,\n descriptionId,\n effectiveToolbarActions,\n enableColumnPinning,\n enableGrouping,\n enableToolbarColumnChooser,\n enableToolbarFilterChips,\n enableToolbarResetLayout,\n enableToolbarSavedViews,\n enableDensityToggle,\n enableViewToggle,\n hiddenRowsLabel,\n labels,\n onClearColumnFilters,\n onColumnFilterChange,\n onColumnPinningChange,\n onDensityChange,\n onShowHiddenRowsChange,\n onToolbarQueryValueChange,\n reorderColumn,\n onResetColumnLayout,\n onCreateSavedView,\n onApplySavedView,\n onRenameSavedView,\n onDeleteSavedView,\n onViewModeChange,\n openFileDialog,\n selectedRowIds,\n selectedRows,\n selectionActions,\n savedViews,\n showHiddenRows,\n table,\n title,\n titleId,\n toolbarQueryPlaceholder,\n toolbarQueryValue,\n toolbarVisibility,\n density,\n viewMode,\n}: DataTableToolbarSectionProps) {\n return (\n
    \n {\n table.getColumn(columnId)?.toggleVisibility(visible);\n }}\n enableColumnPinning={enableColumnPinning}\n enableGrouping={enableGrouping}\n enableToolbarColumnChooser={enableToolbarColumnChooser}\n enableToolbarFilterChips={enableToolbarFilterChips}\n enableToolbarResetLayout={enableToolbarResetLayout}\n enableToolbarSavedViews={enableToolbarSavedViews}\n onColumnPinningChange={onColumnPinningChange}\n columnFilters={columnFilters}\n onColumnFilterChange={onColumnFilterChange}\n onClearColumnFilters={onClearColumnFilters}\n onResetColumnLayout={onResetColumnLayout}\n onCreateSavedView={onCreateSavedView}\n onApplySavedView={onApplySavedView}\n onRenameSavedView={onRenameSavedView}\n onDeleteSavedView={onDeleteSavedView}\n density={density}\n onDensityChange={onDensityChange}\n enableDensityToggle={enableDensityToggle}\n labels={labels}\n toolbarVisibility={toolbarVisibility}\n openFileDialog={openFileDialog}\n savedViews={savedViews}\n table={table}\n />\n
    \n );\n}\n","import type { DataTableLabels } from \"../types\";\n\ntype ResolvedDataTableLabels = Required;\n\nexport const DATA_TABLE_DEFAULT_LABELS: ResolvedDataTableLabels = {\n searchPlaceholder: \"Search rows...\",\n searchTable: \"Search table\",\n clearSearch: \"Clear search\",\n noRowsTitle: \"No rows yet\",\n noRowsDescription: \"Create a record or refresh this view once data exists.\",\n noMatchingRowsTitle: \"No matching rows\",\n noMatchingRowsDescription: \"Try a different search term or clear filters.\",\n tableOptions: \"Show table options\",\n columns: \"Columns\",\n filters: \"Filters\",\n clearFilters: \"Clear filters\",\n filterFrom: \"From\",\n filterTo: \"To\",\n filterTrue: \"Yes\",\n filterFalse: \"No\",\n selectedRows: (count) =>\n `${count} record${count === 1 ? \"\" : \"s\"} selected`,\n showHiddenRows: (label) => `Show ${label}`,\n recordsPerPage: \"Records per page\",\n totalRecords: (count) => `Total records: ${count}`,\n pageStatus: (pageIndex, pageCount) => `Page ${pageIndex + 1} of ${pageCount}`,\n pageStatusUnknown: (pageIndex) => `Page ${pageIndex + 1}`,\n pagination: \"Pagination\",\n morePages: \"More pages\",\n firstPage: \"First page\",\n previousPage: \"Previous page\",\n nextPage: \"Next page\",\n lastPage: \"Last page\",\n selectAllVisibleRows: \"Select all visible rows\",\n selectAllFilteredRows: \"Select all filtered rows\",\n selectRow: \"Select row\",\n selectCardRow: (rowId) => `Select row ${rowId}`,\n switchToTableView: \"Switch to table view\",\n switchToCardView: \"Switch to card view\",\n tableView: \"Table view\",\n cardView: \"Card view\",\n allFilterOptions: \"All\",\n actions: \"Actions\",\n rowActions: \"Row actions\",\n editRow: \"Edit row\",\n saveEdit: \"Save\",\n cancelEdit: \"Cancel editing\",\n expandRow: \"Expand row\",\n collapseRow: \"Collapse row\",\n expandRowDetails: \"Expand row details\",\n collapseRowDetails: \"Collapse row details\",\n exportCsv: \"Export CSV\",\n print: \"Print table\",\n enterFullscreen: \"Enter fullscreen\",\n exitFullscreen: \"Exit fullscreen\",\n errorTitle: \"Unable to load this table\",\n errorDescription: \"Try again or check your connection.\",\n retry: \"Retry\",\n density: \"Density\",\n compactDensity: \"Compact\",\n comfortableDensity: \"Comfortable\",\n spaciousDensity: \"Spacious\",\n pinLeft: \"Pin left\",\n pinRight: \"Pin right\",\n unpin: \"Unpin\",\n pinRowToTop: \"Pin row to top\",\n pinRowToBottom: \"Pin row to bottom\",\n unpinRow: \"Unpin row\",\n resizeColumn: (columnLabel) => `Resize ${columnLabel}`,\n grouping: \"Grouping\",\n groupBy: (columnLabel) => `Group by ${columnLabel}`,\n ungroup: (columnLabel) => `Ungroup ${columnLabel}`,\n removeGrouping: (columnLabel) => `Remove ${columnLabel} grouping`,\n moveGroupingEarlier: (columnLabel) => `Move ${columnLabel} grouping earlier`,\n moveGroupingLater: (columnLabel) => `Move ${columnLabel} grouping later`,\n facetSearch: (columnLabel) => `Search ${columnLabel} options`,\n searchColumns: \"Search columns\",\n showAllColumns: \"Show all columns\",\n hideAllColumns: \"Hide all columns\",\n moveColumnEarlier: (columnLabel) => `Move ${columnLabel} earlier`,\n moveColumnLater: (columnLabel) => `Move ${columnLabel} later`,\n resetColumnLayout: \"Reset column layout\",\n savedViews: \"Saved views\",\n createSavedView: \"Create saved view\",\n savedViewName: \"View name\",\n applySavedView: (name) => `Apply saved view ${name}`,\n renameSavedView: (name) => `Rename saved view ${name}`,\n deleteSavedView: (name) => `Delete saved view ${name}`,\n saveSavedView: \"Save view\",\n};\n\nexport function resolveDataTableLabels(\n labels?: Partial,\n): ResolvedDataTableLabels {\n return {\n ...DATA_TABLE_DEFAULT_LABELS,\n ...labels,\n } as ResolvedDataTableLabels;\n}\n","import * as React from \"react\";\nimport type {\n ColumnDef,\n ExpandedState,\n OnChangeFn,\n RowPinningPosition,\n Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport { IconChevronDown } from \"../icons\";\nimport type {\n DataTableEditableRowsConfig,\n DataTableDetailPanel,\n DataTableLabels,\n DataTableProps,\n DataTableRowAction,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport {\n UTILITY_COLUMN_SIZE,\n decorateFilterableColumn,\n isDataTableLoadingRow,\n toggleDataTableExpandedState,\n} from \"./data-table-utils\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\ntype DataTableRowActionsComponentProps = {\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n labels: DataTableLabels;\n onCancelEditing: () => void;\n onStartEditing: () => void;\n row: TData;\n rowActions: Array>;\n rowPinning?: {\n canPin: boolean;\n position: RowPinningPosition;\n pin: (position: RowPinningPosition) => void;\n };\n};\n\nexport function useDataTableColumns({\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n editingRowId,\n editErrors,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion,\n isSavingEdit,\n isEditDirty,\n includeFillSpacer = false,\n labels,\n lastSelectedRowIdRef,\n detailPanel,\n detailExpanded,\n onDetailExpandedChange,\n rowSelectionSelectAllScope,\n rowActions,\n saveEdit,\n startEditingRow,\n tableRef,\n}: {\n Button: DataTableUiKit[\"Button\"];\n Checkbox: DataTableUiKit[\"Checkbox\"];\n DataTableRowActions: React.ComponentType<\n DataTableRowActionsComponentProps\n >;\n Tooltip: DataTableUiKit[\"Tooltip\"];\n TooltipContent: DataTableUiKit[\"TooltipContent\"];\n TooltipTrigger: DataTableUiKit[\"TooltipTrigger\"];\n cancelEditing: () => void;\n columns: DataTableProps[\"columns\"];\n editableRows: DataTableProps[\"editableRows\"];\n editingRowId: string | null;\n editErrors: Record;\n enableRowSelection: boolean;\n enableRowPinning: DataTableProps[\"enableRowPinning\"];\n hasTreeExpansion: boolean;\n isSavingEdit: boolean;\n isEditDirty: boolean;\n includeFillSpacer?: boolean;\n labels: DataTableLabels;\n lastSelectedRowIdRef: React.MutableRefObject;\n detailPanel: DataTableDetailPanel | undefined;\n detailExpanded: ExpandedState;\n onDetailExpandedChange: OnChangeFn;\n rowSelectionSelectAllScope: NonNullable<\n DataTableProps[\"rowSelectionSelectAllScope\"]\n >;\n rowActions: Array>;\n saveEdit: (row: TData) => Promise;\n startEditingRow: (row: TData, rowId: string) => void;\n tableRef: React.RefObject | null>;\n}) {\n const selectRowRange = React.useCallback(\n (targetRowId: string, selected: boolean) => {\n const tableInstance = tableRef.current;\n if (!tableInstance || !lastSelectedRowIdRef.current) {\n return;\n }\n\n const rows = tableInstance\n .getRowModel()\n .rows.filter((row) => !isDataTableLoadingRow(row.original));\n const startIndex = rows.findIndex(\n (row) => row.id === lastSelectedRowIdRef.current,\n );\n const endIndex = rows.findIndex((row) => row.id === targetRowId);\n\n if (startIndex < 0 || endIndex < 0) {\n return;\n }\n\n const from = Math.min(startIndex, endIndex);\n const to = Math.max(startIndex, endIndex);\n tableInstance.setRowSelection((current) => {\n const next = { ...current };\n for (const row of rows\n .slice(from, to + 1)\n .filter(\n (item) => item.getCanSelect() && item.getCanMultiSelect(),\n )) {\n if (selected) {\n next[row.id] = true;\n } else {\n delete next[row.id];\n }\n }\n return next;\n });\n },\n [lastSelectedRowIdRef, tableRef],\n );\n\n return React.useMemo>>(() => {\n const defs: Array> = [];\n\n if (hasTreeExpansion || detailPanel) {\n const expansionColumnSize =\n hasTreeExpansion && detailPanel ? 80 : UTILITY_COLUMN_SIZE;\n defs.push({\n id: \"__expand__\",\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n size: expansionColumnSize,\n minSize: expansionColumnSize,\n maxSize: expansionColumnSize,\n header: () => {labels.expandRow},\n cell: ({ row, table }) => {\n const canExpandTree = hasTreeExpansion && row.getCanExpand();\n const canExpandDetail = Boolean(\n detailPanel && (detailPanel.getRowCanExpand?.(row.original) ?? true),\n );\n if (!canExpandTree && !canExpandDetail) {\n return null;\n }\n\n const isTreeExpanded = row.getIsExpanded();\n const isDetailExpanded =\n detailExpanded === true || Boolean(detailExpanded[row.id]);\n return (\n
    \n {canExpandTree ? (\n row.toggleExpanded()}\n >\n \n \n ) : null}\n {canExpandDetail ? (\n {\n onDetailExpandedChange((current) =>\n toggleDataTableExpandedState(\n current,\n row.id,\n table.getCoreRowModel().flatRows.map((item) => item.id),\n ),\n );\n }}\n >\n \n \n ) : null}\n
    \n );\n },\n });\n }\n\n if (enableRowSelection) {\n defs.push({\n id: \"__select__\",\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n size: UTILITY_COLUMN_SIZE,\n minSize: UTILITY_COLUMN_SIZE,\n maxSize: UTILITY_COLUMN_SIZE,\n header: ({ table }) => {\n const selectsFilteredRows = rowSelectionSelectAllScope === \"filtered\";\n const selectableRows = (selectsFilteredRows\n ? table.getFilteredRowModel().flatRows\n : table.getRowModel().flatRows\n ).filter((row) => row.getCanSelect() && row.getCanMultiSelect());\n const allSelected =\n selectableRows.length > 0 &&\n selectableRows.every((row) => row.getIsSelected());\n const someSelected = selectableRows.some((row) => row.getIsSelected());\n const label = selectsFilteredRows\n ? (labels.selectAllFilteredRows ??\n DATA_TABLE_DEFAULT_LABELS.selectAllFilteredRows)\n : (labels.selectAllVisibleRows ??\n DATA_TABLE_DEFAULT_LABELS.selectAllVisibleRows);\n\n if (selectableRows.length === 0) {\n return {label};\n }\n\n return (\n
    \n {\n table.setRowSelection((current) => {\n const next = { ...current };\n for (const row of selectableRows) {\n if (checked === true) {\n next[row.id] = true;\n } else {\n delete next[row.id];\n }\n }\n return next;\n });\n }}\n aria-label={label}\n />\n
    \n );\n },\n cell: ({ row }) => (\n
    \n ) => {\n if (\n !event.shiftKey ||\n !lastSelectedRowIdRef.current ||\n !row.getCanMultiSelect()\n ) {\n lastSelectedRowIdRef.current = row.id;\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n selectRowRange(row.id, !row.getIsSelected());\n lastSelectedRowIdRef.current = row.id;\n }}\n onCheckedChange={(checked: boolean | \"indeterminate\") => {\n lastSelectedRowIdRef.current = row.id;\n row.toggleSelected(checked === true);\n }}\n aria-label={\n labels.selectRow ?? DATA_TABLE_DEFAULT_LABELS.selectRow\n }\n />\n
    \n ),\n });\n }\n\n defs.push(...columns.map((column) => decorateFilterableColumn(column)));\n\n if (includeFillSpacer) {\n defs.push({\n id: \"__spacer__\",\n cell: () => null,\n header: () => null,\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enablePinning: false,\n enableResizing: false,\n enableSorting: false,\n minSize: 0,\n size: 0,\n });\n }\n\n if (rowActions.length || editableRows || enableRowPinning) {\n defs.push({\n id: \"__actions__\",\n enableSorting: false,\n enableResizing: false,\n enableHiding: false,\n size: UTILITY_COLUMN_SIZE,\n minSize: UTILITY_COLUMN_SIZE,\n maxSize: UTILITY_COLUMN_SIZE,\n header: () => {labels.actions},\n cell: ({ row }) => {\n const rowId = row.id;\n const isEditing = editingRowId === rowId;\n\n if (isEditing) {\n return (\n
    \n {editErrors._row ? (\n \n {editErrors._row}\n \n ) : null}\n {\n void saveEdit(row.original);\n }}\n >\n {labels.saveEdit}\n \n \n \n \n \n {labels.cancelEdit}\n \n \n {labels.cancelEdit}\n \n
    \n );\n }\n\n return (\n
    \n {\n startEditingRow(row.original, row.id);\n }}\n onCancelEditing={() => {}}\n labels={labels}\n rowPinning={\n enableRowPinning\n ? {\n canPin: row.getCanPin(),\n position: row.getIsPinned(),\n pin: (position) => row.pin(position),\n }\n : undefined\n }\n />\n
    \n );\n },\n });\n }\n\n return defs;\n }, [\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n detailExpanded,\n detailPanel,\n editErrors,\n editingRowId,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion,\n includeFillSpacer,\n isSavingEdit,\n isEditDirty,\n labels,\n lastSelectedRowIdRef,\n onDetailExpandedChange,\n rowSelectionSelectAllScope,\n rowActions,\n saveEdit,\n selectRowRange,\n startEditingRow,\n ]);\n}\n","import * as React from \"react\";\nimport type { Updater } from \"@tanstack/react-table\";\n\nexport function useControllableState({\n defaultValue,\n onChange,\n value,\n}: {\n defaultValue: T | (() => T);\n onChange?: (value: T) => void;\n value: T | undefined;\n}) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const currentValue = value ?? uncontrolledValue;\n const currentValueRef = React.useRef(currentValue);\n\n React.useEffect(() => {\n currentValueRef.current = currentValue;\n }, [currentValue]);\n\n const setValue = React.useCallback(\n (updater: Updater) => {\n const nextValue =\n typeof updater === \"function\"\n ? (updater as (current: T) => T)(currentValueRef.current)\n : updater;\n currentValueRef.current = nextValue;\n\n onChange?.(nextValue);\n\n if (value === undefined) {\n setUncontrolledValue(nextValue);\n }\n },\n [onChange, value],\n );\n\n return [currentValue, setValue] as const;\n}\n","import * as React from \"react\";\n\nexport function useDataTableInfiniteScroll({\n enabled,\n hasMore,\n isLoadingMore,\n onLoadMore,\n onError,\n}: {\n enabled: boolean;\n hasMore: boolean;\n isLoadingMore?: boolean;\n onLoadMore: () => void | Promise;\n onError?: (error: unknown) => void;\n}) {\n const sentinelRef = React.useRef(null);\n const isRequestInFlightRef = React.useRef(false);\n const onLoadMoreEvent = React.useEffectEvent(onLoadMore);\n const onErrorEvent = React.useEffectEvent((error: unknown) => {\n onError?.(error);\n });\n\n React.useEffect(() => {\n if (!enabled || !hasMore || isLoadingMore) {\n return;\n }\n\n const target = sentinelRef.current;\n if (!target) {\n return;\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting && !isRequestInFlightRef.current) {\n isRequestInFlightRef.current = true;\n\n let result: void | Promise;\n try {\n result = onLoadMoreEvent();\n } catch (error) {\n isRequestInFlightRef.current = false;\n onErrorEvent(error);\n return;\n }\n\n void Promise.resolve(result)\n .catch((error: unknown) => {\n onErrorEvent(error);\n })\n .finally(() => {\n isRequestInFlightRef.current = false;\n });\n }\n },\n {\n rootMargin: \"200px 0px 200px 0px\",\n },\n );\n\n observer.observe(target);\n\n return () => {\n observer.disconnect();\n };\n }, [enabled, hasMore, isLoadingMore]);\n\n return sentinelRef;\n}\n","import * as React from \"react\";\n\nexport function useDataTablePaginationClamp({\n enabled,\n maxPageIndex,\n onPageIndexChange,\n pageIndex,\n setLocalPageIndex,\n}: {\n enabled: boolean;\n maxPageIndex: number;\n onPageIndexChange?: (pageIndex: number) => void;\n pageIndex: number;\n setLocalPageIndex: (pageIndex: number) => void;\n}) {\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n if (pageIndex >= 0 && pageIndex <= maxPageIndex) {\n return;\n }\n\n const nextPageIndex = Math.min(Math.max(pageIndex, 0), maxPageIndex);\n setLocalPageIndex(nextPageIndex);\n onPageIndexChange?.(nextPageIndex);\n }, [enabled, maxPageIndex, onPageIndexChange, pageIndex, setLocalPageIndex]);\n}\n","import * as React from \"react\";\nimport type { FilterFn, Row } from \"@tanstack/react-table\";\nimport { normalizeDataTableSearchText } from \"./data-table-utils\";\n\n/**\n * Caches each searchable cell against the application-owned row object and\n * stable column id. WeakMap entries disappear with immutable rows and never\n * retain removed data. Mutable rows are deliberately unsupported because a\n * cache cannot safely observe deep changes without defeating its purpose.\n */\nexport function useDataTableSearchIndex(\n) {\n // eslint-disable-next-line react-hooks/immutability -- This weak cache is deliberately populated by TanStack's filter pass, never read during React render.\n return React.useMemo>(() => {\n const valuesByRow = new WeakMap>();\n\n return (row: Row, columnId: string, filterValue: unknown) => {\n const query = normalizeDataTableSearchText(filterValue);\n if (!query) {\n return true;\n }\n\n const original = row.original;\n if (typeof original !== \"object\" || original === null) {\n return normalizeDataTableSearchText(row.getValue(columnId)).includes(\n query,\n );\n }\n\n let valuesByColumn = valuesByRow.get(original);\n if (!valuesByColumn) {\n valuesByColumn = new Map();\n valuesByRow.set(original, valuesByColumn);\n }\n\n let text = valuesByColumn.get(columnId);\n if (text === undefined) {\n const value = row.getValue(columnId);\n text = normalizeDataTableSearchText(value);\n valuesByColumn.set(columnId, text);\n }\n\n return text.includes(query);\n };\n }, []);\n}\n","import * as React from \"react\";\nimport {\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedMinMaxValues,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport type {\n ColumnDef,\n ColumnFiltersState,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n ExpandedState,\n GroupingState,\n FilterFnOption,\n OnChangeFn,\n PaginationState,\n RowPinningState,\n Row,\n SortingState,\n Table as TanStackTable,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport type { DataTableProps } from \"../types\";\nimport {\n canReorderDataTableColumn,\n getColumnId,\n getDataTableLeafColumns,\n isDataTableLoadingRow,\n isUtilityColumnId,\n moveColumnInOrder,\n} from \"./data-table-utils\";\nimport type { DataTableColumnGroupPaths } from \"./data-table-utils\";\nimport { useDataTableInfiniteScroll } from \"./use-data-table-infinite-scroll\";\nimport { useDataTablePaginationClamp } from \"./use-data-table-pagination-clamp\";\nimport { useDataTableSearchIndex } from \"./use-data-table-search-index\";\n\nexport function useDataTableInstance({\n autoResetPageIndex,\n columnGroupPaths,\n columnResizeMode,\n dir,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n currentViewMode,\n defaultColumn,\n effectiveColumnVisibility,\n enableColumnResizing,\n enableMultiRowSelection,\n enableRowPinning,\n enableRowSelection,\n enableSubRowSelection,\n getRowCanSelect,\n getRowCanExpand,\n getSubRows,\n aggregationFns,\n groupedColumnMode,\n globalFilterFn,\n globalFilterValue,\n hasNextPage,\n handleColumnFiltersChange,\n handleColumnOrderChange,\n handleColumnPinningChange,\n handleRowPinningChange,\n handleColumnVisibilityChange,\n handleExpandedChange,\n handleGroupingChange,\n infiniteScroll,\n keepPinnedRows,\n manualFiltering,\n manualGrouping,\n manualExpanding,\n manualPagination,\n manualSorting,\n onActionError,\n onPageIndexChange,\n onPageSizeChange,\n pageCount,\n pageIndex,\n pageSize,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n shouldRenderInitialLoading,\n tableColumns,\n tableData,\n tableGetRowId,\n tableRef,\n totalRowCount,\n virtualization,\n}: {\n autoResetPageIndex: boolean;\n columnGroupPaths: DataTableColumnGroupPaths;\n columnResizeMode: DataTableProps[\"columnResizeMode\"];\n dir: NonNullable[\"dir\"]>;\n currentColumnFilters: ColumnFiltersState;\n currentColumnOrder: ColumnOrderState;\n currentColumnPinning: ColumnPinningState;\n currentRowPinning: RowPinningState;\n currentColumnSizing: ColumnSizingState;\n currentExpanded: ExpandedState;\n currentGrouping: GroupingState;\n currentPagination: PaginationState;\n currentRowSelection: Record;\n currentSorting: SortingState;\n currentViewMode: \"table\" | \"card\";\n defaultColumn: Partial>;\n effectiveColumnVisibility: VisibilityState;\n enableColumnResizing: boolean;\n enableMultiRowSelection: NonNullable<\n DataTableProps[\"enableMultiRowSelection\"]\n >;\n enableRowPinning: DataTableProps[\"enableRowPinning\"];\n enableRowSelection: boolean;\n enableSubRowSelection: NonNullable<\n DataTableProps[\"enableSubRowSelection\"]\n >;\n getRowCanSelect: DataTableProps[\"getRowCanSelect\"];\n getRowCanExpand: DataTableProps[\"getRowCanExpand\"];\n getSubRows: DataTableProps[\"getSubRows\"];\n aggregationFns: DataTableProps[\"aggregationFns\"];\n groupedColumnMode: DataTableProps[\"groupedColumnMode\"];\n globalFilterFn: FilterFnOption | undefined;\n globalFilterValue: string;\n hasNextPage?: DataTableProps[\"hasNextPage\"];\n handleColumnFiltersChange: OnChangeFn;\n handleColumnOrderChange: OnChangeFn;\n handleColumnPinningChange: OnChangeFn;\n handleRowPinningChange: OnChangeFn;\n handleColumnVisibilityChange: OnChangeFn;\n handleExpandedChange: OnChangeFn;\n handleGroupingChange: OnChangeFn;\n infiniteScroll: DataTableProps[\"infiniteScroll\"];\n keepPinnedRows: boolean;\n manualFiltering: boolean;\n manualGrouping: boolean;\n manualExpanding: boolean;\n manualPagination: boolean;\n manualSorting: boolean;\n onActionError?: DataTableProps[\"onActionError\"];\n onPageIndexChange: DataTableProps[\"onPageIndexChange\"];\n onPageSizeChange: DataTableProps[\"onPageSizeChange\"];\n pageCount: DataTableProps[\"pageCount\"];\n pageIndex: DataTableProps[\"pageIndex\"];\n pageSize: DataTableProps[\"pageSize\"];\n paginateExpandedRows: DataTableProps[\"paginateExpandedRows\"];\n filterFromLeafRows: DataTableProps[\"filterFromLeafRows\"];\n maxLeafRowFilterDepth: DataTableProps[\"maxLeafRowFilterDepth\"];\n setCurrentRowSelection: OnChangeFn>;\n setCurrentSorting: OnChangeFn;\n setLocalColumnSizing: OnChangeFn;\n setLocalPagination: React.Dispatch>;\n shouldRenderInitialLoading: boolean;\n tableColumns: Array>;\n tableData: Array;\n tableGetRowId: DataTableProps[\"getRowId\"];\n tableRef: React.RefObject | null>;\n tableScrollElement: HTMLElement | null;\n /**\n * @deprecated Filtering now runs through TanStack Table. Retained so\n * advanced 4.x hook callers remain source-compatible.\n */\n toolbarFilteredData?: Array;\n totalRowCount: DataTableProps[\"totalRowCount\"];\n virtualization: DataTableProps[\"virtualization\"];\n viewportHeight: number;\n}) {\n const cachedGlobalFilterFn = useDataTableSearchIndex();\n const generatedColumnIds = React.useMemo(() => {\n return getDataTableLeafColumns(\n tableColumns as DataTableProps[\"columns\"],\n ).map(({ column, index }) => getColumnId(column, index));\n }, [tableColumns]);\n\n const effectiveColumnOrder = React.useMemo(() => {\n const columnIds = generatedColumnIds;\n const dataColumnIds = columnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n );\n const dataColumnIdSet = new Set(dataColumnIds);\n const orderedDataColumnIds = currentColumnOrder.filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n const unorderedDataColumnIds = dataColumnIds.filter(\n (columnId) => !orderedDataColumnIds.includes(columnId),\n );\n\n return [\n ...columnIds.filter(\n (columnId) => columnId === \"__expand__\" || columnId === \"__select__\",\n ),\n ...orderedDataColumnIds,\n ...unorderedDataColumnIds,\n ...columnIds.filter((columnId) => columnId === \"__spacer__\"),\n ...columnIds.filter((columnId) => columnId === \"__actions__\"),\n ];\n }, [currentColumnOrder, generatedColumnIds]);\n\n const effectiveColumnPinning = React.useMemo(() => {\n const columnIdSet = new Set(generatedColumnIds);\n const dataColumnIdSet = new Set(\n generatedColumnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n ),\n );\n const dataLeft = (currentColumnPinning.left ?? []).filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n const dataRight = (currentColumnPinning.right ?? []).filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n\n return {\n left: [\n ...[\"__expand__\", \"__select__\"].filter((columnId) =>\n columnIdSet.has(columnId),\n ),\n ...dataLeft,\n ],\n right: [\n ...dataRight,\n ...[\"__actions__\"].filter((columnId) => columnIdSet.has(columnId)),\n ],\n };\n }, [currentColumnPinning, generatedColumnIds]);\n\n const effectiveRowPinning = React.useMemo(() => {\n const availableRowIds = new Set();\n const visitRows = (rows: Array) => {\n rows.forEach((row, index) => {\n availableRowIds.add(tableGetRowId(row, index));\n if (!isDataTableLoadingRow(row)) {\n const subRows = getSubRows?.(row, index);\n if (subRows?.length) {\n visitRows(subRows);\n }\n }\n });\n };\n visitRows(tableData);\n const top = (currentRowPinning.top ?? []).filter((rowId) =>\n availableRowIds.has(rowId),\n );\n const topIds = new Set(top);\n const bottom = (currentRowPinning.bottom ?? []).filter(\n (rowId) => availableRowIds.has(rowId) && !topIds.has(rowId),\n );\n return { top, bottom };\n }, [\n currentRowPinning.bottom,\n currentRowPinning.top,\n getSubRows,\n tableData,\n tableGetRowId,\n ]);\n\n const tableState = React.useMemo(\n () => ({\n sorting: currentSorting,\n pagination: currentPagination,\n rowSelection: currentRowSelection,\n columnVisibility: effectiveColumnVisibility,\n columnFilters: currentColumnFilters,\n globalFilter: globalFilterValue,\n expanded: currentExpanded,\n grouping: currentGrouping,\n columnOrder: effectiveColumnOrder,\n columnPinning: effectiveColumnPinning,\n rowPinning: effectiveRowPinning,\n columnSizing: currentColumnSizing,\n }),\n [\n currentColumnFilters,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n effectiveColumnVisibility,\n effectiveColumnOrder,\n effectiveColumnPinning,\n effectiveRowPinning,\n globalFilterValue,\n ],\n );\n\n const handlePaginationChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n const nextValue =\n typeof updater === \"function\" ? updater(currentPagination) : updater;\n\n if (pageIndex === undefined || pageSize === undefined) {\n setLocalPagination((current) => ({\n pageIndex:\n pageIndex === undefined ? nextValue.pageIndex : current.pageIndex,\n pageSize:\n pageSize === undefined ? nextValue.pageSize : current.pageSize,\n }));\n }\n\n if (nextValue.pageIndex !== currentPagination.pageIndex) {\n onPageIndexChange?.(nextValue.pageIndex);\n }\n if (nextValue.pageSize !== currentPagination.pageSize) {\n onPageSizeChange?.(nextValue.pageSize);\n }\n },\n [\n currentPagination,\n onPageIndexChange,\n onPageSizeChange,\n pageIndex,\n pageSize,\n setLocalPagination,\n ],\n );\n\n const handleColumnSizingChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n setLocalColumnSizing(updater);\n },\n [setLocalColumnSizing],\n );\n\n const facetingNeeds = React.useMemo(\n () => {\n let uniqueValues = false;\n let minMaxValues = false;\n for (const { column } of getDataTableLeafColumns(\n tableColumns as DataTableProps[\"columns\"],\n )) {\n uniqueValues ||= column.meta?.filter?.type === \"faceted\";\n minMaxValues ||= column.meta?.filter?.type === \"numberRange\";\n }\n return { minMaxValues, uniqueValues };\n },\n [tableColumns],\n );\n\n // eslint-disable-next-line react-hooks/incompatible-library -- TanStack Table owns its instance functions.\n const table = useReactTable({\n data: tableData,\n columns: tableColumns,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: manualFiltering ? undefined : getFilteredRowModel(),\n getFacetedRowModel:\n (facetingNeeds.uniqueValues || facetingNeeds.minMaxValues) &&\n !manualFiltering\n ? getFacetedRowModel()\n : undefined,\n getFacetedUniqueValues:\n facetingNeeds.uniqueValues && !manualFiltering\n ? getFacetedUniqueValues()\n : undefined,\n getFacetedMinMaxValues:\n facetingNeeds.minMaxValues && !manualFiltering\n ? getFacetedMinMaxValues()\n : undefined,\n getGroupedRowModel:\n currentGrouping.length && !manualGrouping ? getGroupedRowModel() : undefined,\n getSortedRowModel: manualSorting ? undefined : getSortedRowModel(),\n getExpandedRowModel:\n (getSubRows || currentGrouping.length) && !manualExpanding\n ? getExpandedRowModel()\n : undefined,\n getPaginationRowModel:\n manualPagination || infiniteScroll?.enabled\n ? undefined\n : getPaginationRowModel(),\n enableRowSelection: getRowCanSelect\n ? (row) => enableRowSelection && getRowCanSelect(row.original)\n : enableRowSelection,\n enableRowPinning:\n typeof enableRowPinning === \"function\"\n ? (row) => enableRowPinning(row.original)\n : enableRowPinning,\n keepPinnedRows,\n enableMultiRowSelection:\n typeof enableMultiRowSelection === \"function\"\n ? (row) => enableMultiRowSelection(row.original)\n : enableMultiRowSelection,\n enableSubRowSelection:\n typeof enableSubRowSelection === \"function\"\n ? (row) => enableSubRowSelection(row.original)\n : enableSubRowSelection,\n enableColumnResizing,\n columnResizeMode,\n columnResizeDirection: dir,\n getRowId: tableGetRowId,\n getSubRows,\n getRowCanExpand: getSubRows\n ? (row) => getRowCanExpand?.(row.original) ?? row.subRows.length > 0\n : undefined,\n globalFilterFn: globalFilterFn ?? cachedGlobalFilterFn,\n getColumnCanGlobalFilter: (column) =>\n column.columnDef.enableGlobalFilter !== false &&\n typeof column.accessorFn === \"function\",\n manualSorting,\n manualGrouping,\n manualFiltering,\n manualExpanding,\n manualPagination: manualPagination || Boolean(infiniteScroll?.enabled),\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n defaultColumn,\n autoResetPageIndex,\n state: tableState,\n onSortingChange: setCurrentSorting,\n onPaginationChange: handlePaginationChange,\n onRowSelectionChange: setCurrentRowSelection,\n onColumnVisibilityChange: handleColumnVisibilityChange,\n onColumnFiltersChange: handleColumnFiltersChange,\n onExpandedChange: handleExpandedChange,\n onGroupingChange: handleGroupingChange,\n onColumnOrderChange: handleColumnOrderChange,\n onColumnPinningChange: handleColumnPinningChange,\n onRowPinningChange: handleRowPinningChange,\n onColumnSizingChange: handleColumnSizingChange,\n aggregationFns,\n groupedColumnMode,\n });\n tableRef.current = table;\n\n const visibleLeafColumns = table.getVisibleLeafColumns();\n const reorderColumn = React.useCallback(\n (sourceColumnId: string, targetColumnId: string) => {\n if (sourceColumnId === targetColumnId) {\n return;\n }\n\n if (\n !canReorderDataTableColumn(\n sourceColumnId,\n targetColumnId,\n columnGroupPaths,\n )\n ) {\n return;\n }\n\n const defaultOrder = table\n .getAllLeafColumns()\n .map((column) => column.id)\n .filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n );\n const nextOrder = moveColumnInOrder(\n currentColumnOrder.length ? currentColumnOrder : defaultOrder,\n sourceColumnId,\n targetColumnId,\n );\n handleColumnOrderChange(nextOrder);\n },\n [columnGroupPaths, currentColumnOrder, handleColumnOrderChange, table],\n );\n\n const topPinnedRows = table.getTopRows();\n const bottomPinnedRows = table.getBottomRows();\n // Card rendering has no top/bottom table regions. Keep its original row\n // model intact rather than silently dropping pinned records.\n const renderedRows =\n currentViewMode === \"table\"\n ? table.getCenterRows()\n : table.getRowModel().rows;\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization : undefined;\n const virtualRowsEnabled =\n virtualization === true || virtualizationConfig?.enabled === true;\n const fallbackRowCount = Math.max(\n 1,\n Math.floor(virtualizationConfig?.fallbackRowCount ?? 20),\n );\n const initialRowsToRender = virtualRowsEnabled\n ? renderedRows.slice(0, fallbackRowCount)\n : renderedRows;\n const rowsToRender = initialRowsToRender.map((row, rowIndex) => ({\n row,\n rowIndex,\n }));\n\n const usesManualRows = manualPagination || Boolean(infiniteScroll?.enabled);\n const derivedTotalRowCount = usesManualRows\n ? undefined\n : table.getFilteredRowModel().rows.length;\n const effectiveTotalRowCount = totalRowCount ?? derivedTotalRowCount;\n const isPageCountKnown =\n !usesManualRows || pageCount !== undefined || totalRowCount !== undefined;\n const footerTotalRowCount = effectiveTotalRowCount;\n const effectivePageCount = shouldRenderInitialLoading\n ? 1\n : (pageCount ??\n (effectiveTotalRowCount !== undefined\n ? Math.max(\n 1,\n Math.ceil(effectiveTotalRowCount / currentPagination.pageSize),\n )\n : usesManualRows\n ? currentPagination.pageIndex + (hasNextPage ? 2 : 1)\n : table.getPageCount()));\n const maxPageIndex = Math.max(0, effectivePageCount - 1);\n\n const setLocalPageIndex = React.useCallback(\n (nextPageIndex: number) => {\n if (pageIndex !== undefined) {\n return;\n }\n\n setLocalPagination((current) =>\n current.pageIndex === nextPageIndex\n ? current\n : { ...current, pageIndex: nextPageIndex },\n );\n },\n [pageIndex, setLocalPagination],\n );\n useDataTablePaginationClamp({\n enabled:\n !shouldRenderInitialLoading &&\n !infiniteScroll?.enabled &&\n isPageCountKnown,\n maxPageIndex,\n onPageIndexChange,\n pageIndex: currentPagination.pageIndex,\n setLocalPageIndex,\n });\n\n const handleFooterPageIndexChange = React.useCallback(\n (nextPageIndex: number) => {\n if (nextPageIndex === currentPagination.pageIndex) {\n return;\n }\n\n onPageIndexChange?.(nextPageIndex);\n if (pageIndex === undefined) {\n setLocalPagination((current) =>\n current.pageIndex === nextPageIndex\n ? current\n : { ...current, pageIndex: nextPageIndex },\n );\n }\n },\n [\n currentPagination.pageIndex,\n onPageIndexChange,\n pageIndex,\n setLocalPagination,\n ],\n );\n const handleFooterPageSizeChange = React.useCallback(\n (nextPageSize: number) => {\n if (currentPagination.pageIndex !== 0) {\n onPageIndexChange?.(0);\n }\n if (nextPageSize !== currentPagination.pageSize) {\n onPageSizeChange?.(nextPageSize);\n }\n if (pageSize === undefined) {\n setLocalPagination({\n pageIndex: 0,\n pageSize: nextPageSize,\n });\n }\n },\n [\n currentPagination.pageIndex,\n currentPagination.pageSize,\n onPageIndexChange,\n onPageSizeChange,\n pageSize,\n setLocalPagination,\n ],\n );\n\n const sentinelRef = useDataTableInfiniteScroll({\n enabled: Boolean(infiniteScroll?.enabled),\n hasMore: Boolean(infiniteScroll?.hasMore),\n isLoadingMore: infiniteScroll?.isLoadingMore,\n onLoadMore: () => infiniteScroll?.onLoadMore(),\n onError: (error) => {\n onActionError?.({\n error,\n source: \"infiniteScroll\",\n });\n },\n });\n\n return {\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n isPageCountKnown,\n renderedRows,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n rowsToRender,\n sentinelRef,\n table,\n virtualPaddingBottom: 0,\n virtualPaddingTop: 0,\n visibleLeafColumns,\n };\n}\n\nexport type DataTableRowsToRender = Array<{\n row: Row;\n rowIndex: number;\n}>;\n","import * as React from \"react\";\nimport type {\n DataTableColumnPrefs,\n DataTableDensity,\n DataTablePersistenceConfig,\n DataTablePersistencePayload,\n DataTablePersistenceSlice,\n DataTablePersistenceStorage,\n} from \"../types\";\nimport type { RowPinningState } from \"@tanstack/react-table\";\n\nconst STORAGE_PREFIX = \"data-table-pro:column-prefs:\";\nconst DEFAULT_VERSION = 1;\nconst ALL_SLICES: Array = [\n \"visibility\",\n \"sizing\",\n \"order\",\n \"pinning\",\n \"rowPinning\",\n \"density\",\n];\n\nexport function readDataTableColumnPrefs(\n input: string | DataTablePersistenceConfig | undefined,\n): DataTableColumnPrefs {\n const config = resolvePersistenceConfig(input);\n if (!config) {\n return {};\n }\n\n const storage = resolveStorage(config);\n if (!storage) {\n return {};\n }\n const storageKey = getStorageKey(config.key);\n\n let value: string | null;\n try {\n value = storage.getItem(storageKey);\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return {};\n }\n if (!value) {\n return {};\n }\n\n let parsed: unknown;\n try {\n parsed = (config.deserialize ?? JSON.parse)(value);\n } catch (error) {\n config.onError?.({ error, operation: \"deserialize\" });\n return {};\n }\n\n const targetVersion = config.version ?? DEFAULT_VERSION;\n let candidate: unknown;\n if (isPersistencePayload(parsed)) {\n if (parsed.version === targetVersion) {\n candidate = parsed.state;\n } else if (config.migrate) {\n try {\n candidate = config.migrate(\n {\n version: parsed.version,\n state: parsed.state,\n },\n targetVersion,\n );\n } catch (error) {\n config.onError?.({ error, operation: \"migrate\" });\n return {};\n }\n } else {\n return {};\n }\n } else {\n // Raw objects are the legacy columnPrefsKey format. They are validated and\n // upgraded to a versioned envelope on the next successful write.\n candidate = parsed;\n }\n\n return selectPersistenceSlices(\n validateDataTableColumnPrefs(candidate),\n config.slices,\n );\n}\n\nexport function clearDataTableColumnPrefs(\n input: string | DataTablePersistenceConfig | undefined,\n) {\n const config = resolvePersistenceConfig(input);\n if (!config) {\n return false;\n }\n\n const storage = resolveStorage(config);\n if (!storage) {\n return false;\n }\n\n try {\n storage.removeItem(getStorageKey(config.key));\n return true;\n } catch (error) {\n config.onError?.({ error, operation: \"remove\" });\n return false;\n }\n}\n\nexport function usePersistDataTableColumnPrefs({\n key,\n persistence,\n prefs,\n}: {\n key?: string;\n persistence?: DataTablePersistenceConfig;\n prefs: DataTableColumnPrefs;\n}) {\n const config = persistence ?? resolvePersistenceConfig(key);\n const storage = config ? resolveStorage(config) : undefined;\n const storageKey = config ? getStorageKey(config.key) : undefined;\n const version = config?.version ?? DEFAULT_VERSION;\n const debounceMs = Math.max(0, config?.debounceMs ?? 100);\n const selectedState = selectPersistenceSlices(prefs, config?.slices);\n const serialized = React.useMemo(() => {\n if (!config) {\n return { value: undefined };\n }\n\n try {\n const payload: DataTablePersistencePayload = {\n version,\n state: selectedState,\n };\n return {\n value: (config.serialize ?? JSON.stringify)(payload),\n };\n } catch (error) {\n return { error, value: undefined };\n }\n }, [config, selectedState, version]);\n const onErrorEvent = React.useEffectEvent(\n (\n error: unknown,\n operation: \"serialize\" | \"write\",\n ) => {\n config?.onError?.({ error, operation });\n },\n );\n\n React.useEffect(() => {\n if (serialized.error !== undefined) {\n onErrorEvent(serialized.error, \"serialize\");\n }\n }, [serialized.error]);\n\n React.useEffect(() => {\n if (!storage || !storageKey || serialized.value === undefined) {\n return;\n }\n\n const write = () => {\n try {\n if (storage.getItem(storageKey) === serialized.value) {\n return;\n }\n storage.setItem(storageKey, serialized.value);\n } catch (error) {\n onErrorEvent(error, \"write\");\n }\n };\n\n if (debounceMs === 0) {\n write();\n return;\n }\n\n const timeout = globalThis.setTimeout(write, debounceMs);\n return () => {\n globalThis.clearTimeout(timeout);\n };\n }, [debounceMs, serialized.value, storage, storageKey]);\n}\n\nfunction resolvePersistenceConfig(\n input: string | DataTablePersistenceConfig | undefined,\n): DataTablePersistenceConfig | undefined {\n if (!input) {\n return undefined;\n }\n\n return typeof input === \"string\" ? { key: input } : input;\n}\n\nfunction resolveStorage(\n config: DataTablePersistenceConfig,\n): DataTablePersistenceStorage | undefined {\n if (config.storage) {\n return config.storage;\n }\n\n if (typeof window === \"undefined\") {\n return undefined;\n }\n\n try {\n return window.localStorage;\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return undefined;\n }\n}\n\nfunction getStorageKey(key: string) {\n return `${STORAGE_PREFIX}${key}`;\n}\n\nfunction isPersistencePayload(\n value: unknown,\n): value is { version: unknown; state: unknown } {\n return (\n isRecord(value) &&\n Object.prototype.hasOwnProperty.call(value, \"version\") &&\n Object.prototype.hasOwnProperty.call(value, \"state\")\n );\n}\n\nfunction selectPersistenceSlices(\n prefs: DataTableColumnPrefs,\n slices: Array | undefined,\n) {\n const selected = new Set(slices ?? ALL_SLICES);\n const result: DataTableColumnPrefs = {};\n\n for (const slice of ALL_SLICES) {\n if (selected.has(slice) && prefs[slice] !== undefined) {\n Object.assign(result, { [slice]: prefs[slice] });\n }\n }\n\n return result;\n}\n\nfunction validateDataTableColumnPrefs(value: unknown): DataTableColumnPrefs {\n if (!isRecord(value)) {\n return {};\n }\n\n const prefs: DataTableColumnPrefs = {};\n const visibility = validateBooleanRecord(value.visibility);\n if (visibility) {\n prefs.visibility = visibility;\n }\n const sizing = validateSizingRecord(value.sizing);\n if (sizing) {\n prefs.sizing = sizing;\n }\n const order = validateStringArray(value.order);\n if (order) {\n prefs.order = order;\n }\n if (isRecord(value.pinning)) {\n const left = validateStringArray(value.pinning.left) ?? [];\n const right = validateStringArray(value.pinning.right) ?? [];\n prefs.pinning = { left, right };\n }\n const rowPinning = validateRowPinning(value.rowPinning);\n if (rowPinning) {\n prefs.rowPinning = rowPinning;\n }\n if (isDataTableDensity(value.density)) {\n prefs.density = value.density;\n }\n\n return prefs;\n}\n\nfunction validateBooleanRecord(value: unknown) {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, boolean] => typeof entry[1] === \"boolean\",\n ),\n );\n}\n\nfunction validateSizingRecord(value: unknown) {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, number] =>\n typeof entry[1] === \"number\" &&\n Number.isFinite(entry[1]) &&\n entry[1] >= 0,\n ),\n );\n}\n\nfunction validateStringArray(value: unknown) {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction validateRowPinning(value: unknown): RowPinningState | undefined {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return {\n top: validateStringArray(value.top) ?? [],\n bottom: validateStringArray(value.bottom) ?? [],\n };\n}\n\nfunction isDataTableDensity(value: unknown): value is DataTableDensity {\n return (\n value === \"compact\" ||\n value === \"comfortable\" ||\n value === \"spacious\"\n );\n}\n\nfunction isRecord(value: unknown): value is Record {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n","import * as React from \"react\";\nimport { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS } from \"../types\";\n\nconst BREAKPOINT_WIDTHS = Object.values(DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS)\n .slice()\n .sort((first, second) => first - second);\n\nexport function useDataTableContainerWidth(\n containerRef: React.RefObject,\n) {\n const widthRef = React.useRef(0);\n const [width, setWidth] = React.useState(0);\n\n React.useEffect(() => {\n const element = containerRef.current;\n if (!element) {\n return;\n }\n\n const updateWidth = (inlineSize = element.clientWidth) => {\n const nextWidth = quantizeDataTableContainerWidth(inlineSize);\n if (nextWidth === widthRef.current) {\n return;\n }\n\n widthRef.current = nextWidth;\n setWidth(nextWidth);\n };\n\n updateWidth();\n\n if (typeof ResizeObserver === \"undefined\") {\n return;\n }\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n updateWidth(entry ? getResizeObserverInlineSize(entry) : undefined);\n });\n\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [containerRef]);\n\n return width;\n}\n\nexport function quantizeDataTableContainerWidth(width: number) {\n if (width <= 0) {\n return 0;\n }\n\n let bucket = 1;\n for (const breakpointWidth of BREAKPOINT_WIDTHS) {\n if (width < breakpointWidth) {\n break;\n }\n bucket = breakpointWidth;\n }\n\n return bucket;\n}\n\nfunction getResizeObserverInlineSize(entry: ResizeObserverEntry) {\n const contentBoxSize: unknown = entry.contentBoxSize;\n const size: unknown = Array.isArray(contentBoxSize)\n ? contentBoxSize[0]\n : contentBoxSize;\n const inlineSize = getInlineSize(size);\n\n return inlineSize ?? entry.contentRect.width;\n}\n\nfunction getInlineSize(value: unknown) {\n if (typeof value !== \"object\" || value === null) {\n return undefined;\n }\n\n const inlineSize = (value as { inlineSize?: unknown }).inlineSize;\n return typeof inlineSize === \"number\" ? inlineSize : undefined;\n}\n","import * as React from \"react\";\nimport type {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n ExpandedState,\n GroupingState,\n PaginationState,\n RowPinningState,\n SortingState,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableDensity,\n DataTableLabels,\n DataTableProps,\n} from \"../types\";\nimport {\n createDataTableLoadingRows,\n getColumnId,\n getDataTableLeafColumns,\n getDataTableLoadingRowId,\n getInitialColumnPinning,\n isDataTableLoadingRow,\n} from \"./data-table-utils\";\nimport {\n readDataTableColumnPrefs,\n usePersistDataTableColumnPrefs,\n} from \"./use-data-table-column-prefs\";\nimport { useControllableState } from \"./use-controllable-state\";\nimport { useDataTableContainerWidth } from \"./use-data-table-container-width\";\nimport { isHiddenAtContainerWidth, isRowVisible } from \"../types\";\n\nexport function useDataTableState({\n columnFilters,\n columnOrder,\n columnPinning,\n rowPinning,\n columnSizing,\n columnPrefsKey,\n persistence,\n columnVisibility,\n columns,\n data,\n density,\n enableRowSelection,\n enableToolbarQueryFiltering,\n expanded,\n grouping,\n getSubRows,\n getRowId,\n hiddenRows,\n initialState,\n isLoading,\n loadingRowCount,\n manualFiltering,\n onColumnFiltersChange,\n onColumnOrderChange,\n onColumnPinningChange,\n onRowPinningChange,\n onColumnSizingChange,\n onColumnVisibilityChange,\n onDensityChange,\n onExpandedChange,\n onGroupingChange,\n onPageIndexChange,\n onRowSelectionChange,\n onShowHiddenRowsChange,\n onSortingChange,\n onToolbarQueryValueChange,\n onViewModeChange,\n pageIndex,\n pageSize,\n resolvedLabels,\n rowSelection,\n rowsPerPageOptions,\n selectionActions,\n showHiddenRows,\n sorting,\n toolbarQueryDebounceMs,\n toolbarQueryPlaceholder,\n toolbarQueryValue,\n viewMode,\n containerRef,\n}: {\n columnFilters: DataTableProps[\"columnFilters\"];\n columnOrder: DataTableProps[\"columnOrder\"];\n columnPinning: DataTableProps[\"columnPinning\"];\n rowPinning: DataTableProps[\"rowPinning\"];\n columnSizing?: DataTableProps[\"columnSizing\"];\n columnPrefsKey: DataTableProps[\"columnPrefsKey\"];\n persistence?: DataTableProps[\"persistence\"];\n columnVisibility: DataTableProps[\"columnVisibility\"];\n columns: DataTableProps[\"columns\"];\n data: DataTableProps[\"data\"];\n density: DataTableProps[\"density\"];\n enableRowSelection: boolean;\n enableToolbarQueryFiltering: boolean;\n expanded: DataTableProps[\"expanded\"];\n grouping: DataTableProps[\"grouping\"];\n getSubRows: DataTableProps[\"getSubRows\"];\n getRowId: DataTableProps[\"getRowId\"];\n hiddenRows: DataTableProps[\"hiddenRows\"];\n initialState?: DataTableProps[\"initialState\"];\n isLoading: boolean;\n loadingRowCount: DataTableProps[\"loadingRowCount\"];\n manualFiltering: boolean;\n onColumnFiltersChange: DataTableProps[\"onColumnFiltersChange\"];\n onColumnOrderChange: DataTableProps[\"onColumnOrderChange\"];\n onColumnPinningChange: DataTableProps[\"onColumnPinningChange\"];\n onRowPinningChange: DataTableProps[\"onRowPinningChange\"];\n onColumnSizingChange?: DataTableProps[\"onColumnSizingChange\"];\n onColumnVisibilityChange: DataTableProps[\"onColumnVisibilityChange\"];\n onDensityChange: DataTableProps[\"onDensityChange\"];\n onExpandedChange: DataTableProps[\"onExpandedChange\"];\n onGroupingChange: DataTableProps[\"onGroupingChange\"];\n onPageIndexChange: DataTableProps[\"onPageIndexChange\"];\n onRowSelectionChange: DataTableProps[\"onRowSelectionChange\"];\n onShowHiddenRowsChange: DataTableProps[\"onShowHiddenRowsChange\"];\n onSortingChange: DataTableProps[\"onSortingChange\"];\n onToolbarQueryValueChange: DataTableProps[\"onToolbarQueryValueChange\"];\n onViewModeChange: DataTableProps[\"onViewModeChange\"];\n pageIndex: DataTableProps[\"pageIndex\"];\n pageSize: DataTableProps[\"pageSize\"];\n resolvedLabels: DataTableLabels;\n rowSelection: DataTableProps[\"rowSelection\"];\n rowsPerPageOptions: Array;\n selectionActions: DataTableProps[\"selectionActions\"];\n showHiddenRows: DataTableProps[\"showHiddenRows\"];\n sorting: DataTableProps[\"sorting\"];\n toolbarQueryDebounceMs: DataTableProps[\"toolbarQueryDebounceMs\"];\n toolbarQueryPlaceholder: DataTableProps[\"toolbarQueryPlaceholder\"];\n toolbarQueryValue: DataTableProps[\"toolbarQueryValue\"];\n viewMode: DataTableProps[\"viewMode\"];\n containerRef: React.RefObject;\n}) {\n const persistenceConfig = React.useMemo(\n () => persistence ?? (columnPrefsKey ? { key: columnPrefsKey } : undefined),\n [columnPrefsKey, persistence],\n );\n const persistedColumnPrefs = React.useMemo(\n () => readDataTableColumnPrefs(persistenceConfig),\n [persistenceConfig],\n );\n const [localPagination, setLocalPagination] =\n React.useState({\n pageIndex: initialState?.pagination?.pageIndex ?? 0,\n pageSize:\n initialState?.pagination?.pageSize ??\n rowsPerPageOptions[0] ??\n 20,\n });\n const [currentSorting, setCurrentSorting] =\n useControllableState({\n value: sorting,\n onChange: onSortingChange,\n defaultValue: () => initialState?.sorting ?? [],\n });\n const [currentRowSelection, setCurrentRowSelection] = useControllableState<\n Record\n >({\n value: rowSelection,\n onChange: onRowSelectionChange,\n defaultValue: () => initialState?.rowSelection ?? {},\n });\n const [currentColumnVisibility, setCurrentColumnVisibility] =\n useControllableState({\n value: columnVisibility,\n onChange: onColumnVisibilityChange,\n defaultValue: () =>\n initialState?.columnVisibility ??\n persistedColumnPrefs.visibility ??\n {},\n });\n const [currentColumnFilters, setCurrentColumnFilters] =\n useControllableState({\n value: columnFilters,\n onChange: onColumnFiltersChange,\n defaultValue: () => initialState?.columnFilters ?? [],\n });\n const [currentExpanded, setCurrentExpanded] =\n useControllableState({\n value: expanded,\n onChange: onExpandedChange,\n defaultValue: () => initialState?.expanded ?? {},\n });\n const [currentColumnOrder, setCurrentColumnOrder] =\n useControllableState({\n value: columnOrder,\n onChange: onColumnOrderChange,\n defaultValue: () =>\n initialState?.columnOrder ?? persistedColumnPrefs.order ?? [],\n });\n const [currentColumnPinning, setCurrentColumnPinning] =\n useControllableState({\n value: columnPinning,\n onChange: onColumnPinningChange,\n defaultValue: () =>\n initialState?.columnPinning ??\n persistedColumnPrefs.pinning ??\n getInitialColumnPinning(columns),\n });\n const [currentRowPinning, setCurrentRowPinning] =\n useControllableState({\n value: rowPinning,\n onChange: onRowPinningChange,\n defaultValue: () =>\n initialState?.rowPinning ?? persistedColumnPrefs.rowPinning ?? {\n top: [],\n bottom: [],\n },\n });\n const [currentColumnSizing, setCurrentColumnSizing] =\n useControllableState({\n value: columnSizing,\n onChange: onColumnSizingChange,\n defaultValue: () =>\n initialState?.columnSizing ?? persistedColumnPrefs.sizing ?? {},\n });\n const [currentViewMode, setCurrentViewMode] = useControllableState<\n \"table\" | \"card\"\n >({\n value: viewMode,\n onChange: onViewModeChange,\n defaultValue: () => initialState?.viewMode ?? \"table\",\n });\n const [currentGrouping, setCurrentGrouping] = useControllableState({\n value: grouping,\n onChange: onGroupingChange,\n defaultValue: () => initialState?.grouping ?? [],\n });\n const [currentShowHiddenRows, setCurrentShowHiddenRows] =\n useControllableState({\n value: showHiddenRows,\n onChange: onShowHiddenRowsChange,\n defaultValue: () => initialState?.showHiddenRows ?? false,\n });\n const [currentDensity, setCurrentDensity] =\n useControllableState({\n value: density,\n onChange: onDensityChange,\n defaultValue: () =>\n initialState?.density ??\n persistedColumnPrefs.density ??\n \"comfortable\",\n });\n const resolvedToolbarQueryValue =\n toolbarQueryValue ?? initialState?.globalFilter ?? \"\";\n const resolvedToolbarQueryPlaceholder =\n toolbarQueryPlaceholder ?? resolvedLabels.searchPlaceholder;\n const resolvedToolbarQueryDebounceMs = toolbarQueryDebounceMs ?? 250;\n const [localSearchValue, setLocalSearchValue] = React.useState(\n resolvedToolbarQueryValue,\n );\n const containerWidth = useDataTableContainerWidth(containerRef);\n const hasOnSearchValueChange = Boolean(onToolbarQueryValueChange);\n const lastReportedSearchValueRef = React.useRef(resolvedToolbarQueryValue);\n const onToolbarQueryValueChangeEvent = React.useEffectEvent(\n (value: string) => {\n lastReportedSearchValueRef.current = value;\n onToolbarQueryValueChange?.(value);\n },\n );\n\n React.useEffect(() => {\n lastReportedSearchValueRef.current = resolvedToolbarQueryValue;\n // A controlled query change must replace any pending debounced draft.\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setLocalSearchValue(resolvedToolbarQueryValue);\n }, [resolvedToolbarQueryValue]);\n\n React.useEffect(() => {\n if (!hasOnSearchValueChange) {\n return;\n }\n\n if (localSearchValue === resolvedToolbarQueryValue) {\n return;\n }\n\n if (localSearchValue === lastReportedSearchValueRef.current) {\n return;\n }\n\n const timeout = window.setTimeout(() => {\n onToolbarQueryValueChangeEvent(localSearchValue);\n }, resolvedToolbarQueryDebounceMs);\n\n return () => {\n window.clearTimeout(timeout);\n };\n }, [\n hasOnSearchValueChange,\n localSearchValue,\n resolvedToolbarQueryDebounceMs,\n resolvedToolbarQueryValue,\n ]);\n\n const currentPagination = React.useMemo(\n () => ({\n pageIndex: pageIndex ?? localPagination.pageIndex,\n pageSize: pageSize ?? localPagination.pageSize,\n }),\n [\n localPagination.pageIndex,\n localPagination.pageSize,\n pageIndex,\n pageSize,\n ],\n );\n const resolvedLoadingRowCount = Math.max(\n 1,\n loadingRowCount ?? Math.min(5, currentPagination.pageSize),\n );\n // Keep input/callback state eager. Only the client row-model input is\n // deferred, so server/manual callbacks never wait behind a large filter.\n const deferredSearchValue = React.useDeferredValue(localSearchValue);\n const globalFilterValue = enableToolbarQueryFiltering\n ? manualFiltering\n ? localSearchValue\n : deferredSearchValue\n : \"\";\n const handleViewModeChange = React.useCallback(\n (nextViewMode: \"table\" | \"card\") => {\n setCurrentViewMode(nextViewMode);\n },\n [setCurrentViewMode],\n );\n const handleShowHiddenRowsChange = React.useCallback(\n (nextShowHiddenRows: boolean) => {\n setCurrentShowHiddenRows(nextShowHiddenRows);\n },\n [setCurrentShowHiddenRows],\n );\n const handleDensityChange = React.useCallback(\n (nextDensity: DataTableDensity) => {\n setCurrentDensity(nextDensity);\n },\n [setCurrentDensity],\n );\n const resetPageIndexForFilterChange = React.useCallback(() => {\n onPageIndexChange?.(0);\n if (pageIndex === undefined) {\n setLocalPagination((current) =>\n current.pageIndex === 0 ? current : { ...current, pageIndex: 0 },\n );\n }\n }, [onPageIndexChange, pageIndex]);\n const lastFilterStateRef = React.useRef({\n columnFilters: currentColumnFilters,\n globalFilterValue,\n });\n\n React.useEffect(() => {\n const previous = lastFilterStateRef.current;\n const filtersChanged = previous.columnFilters !== currentColumnFilters;\n const globalFilterChanged =\n previous.globalFilterValue !== globalFilterValue;\n lastFilterStateRef.current = {\n columnFilters: currentColumnFilters,\n globalFilterValue,\n };\n\n if (manualFiltering) {\n return;\n }\n\n if (!filtersChanged && !globalFilterChanged) {\n return;\n }\n\n resetPageIndexForFilterChange();\n }, [\n currentColumnFilters,\n globalFilterValue,\n manualFiltering,\n resetPageIndexForFilterChange,\n ]);\n\n usePersistDataTableColumnPrefs({\n persistence: persistenceConfig,\n prefs: {\n visibility: columnVisibility ? undefined : currentColumnVisibility,\n sizing:\n columnSizing === undefined ? currentColumnSizing : undefined,\n order: columnOrder ? undefined : currentColumnOrder,\n pinning: columnPinning ? undefined : currentColumnPinning,\n rowPinning: rowPinning === undefined ? currentRowPinning : undefined,\n density: density ? undefined : currentDensity,\n },\n });\n const responsiveColumnVisibility = React.useMemo(() => {\n return getDataTableLeafColumns(columns).reduce(\n (visibility, { column, index }) => {\n const columnId = getColumnId(column, index);\n if (isHiddenAtContainerWidth(column.meta?.hideOn, containerWidth)) {\n visibility[columnId] = false;\n }\n return visibility;\n },\n {},\n );\n }, [columns, containerWidth]);\n const effectiveColumnVisibility = React.useMemo(() => {\n return {\n ...currentColumnVisibility,\n ...responsiveColumnVisibility,\n };\n }, [currentColumnVisibility, responsiveColumnVisibility]);\n const visibleData = React.useMemo(\n () =>\n data.filter((row) =>\n isRowVisible(row, hiddenRows, currentShowHiddenRows),\n ),\n [currentShowHiddenRows, data, hiddenRows],\n );\n const shouldRenderInitialLoading = isLoading && visibleData.length === 0;\n const loadingRows = React.useMemo(\n () => createDataTableLoadingRows(resolvedLoadingRowCount),\n [resolvedLoadingRowCount],\n );\n const tableData = shouldRenderInitialLoading\n ? loadingRows\n : visibleData;\n const tableGetRowId = React.useCallback(\n (row: TData, index: number) => {\n if (isDataTableLoadingRow(row)) {\n return getDataTableLoadingRowId(index);\n }\n\n return getRowId(row, index);\n },\n [getRowId],\n );\n const shouldResolveSelectedRows =\n enableRowSelection ||\n (selectionActions?.length ?? 0) > 0 ||\n Object.values(currentRowSelection).some(Boolean);\n const rowById = React.useMemo(() => {\n if (!shouldResolveSelectedRows) {\n return new Map();\n }\n\n const rows = new Map();\n const visitRows = (currentRows: Array) => {\n currentRows.forEach((row, index) => {\n rows.set(getRowId(row, index), row);\n const subRows = getSubRows?.(row, index);\n if (subRows?.length) {\n visitRows(subRows);\n }\n });\n };\n visitRows(visibleData);\n return rows;\n }, [getRowId, getSubRows, shouldResolveSelectedRows, visibleData]);\n const selectedRows = React.useMemo(() => {\n if (!shouldResolveSelectedRows) {\n return [];\n }\n\n return Object.entries(currentRowSelection)\n .filter(([, selected]) => selected)\n .map(([rowId]) => rowById.get(rowId))\n .filter((row): row is TData => Boolean(row));\n }, [currentRowSelection, rowById, shouldResolveSelectedRows]);\n const selectedRowIds = React.useMemo(\n () =>\n Object.entries(currentRowSelection).flatMap(([rowId, selected]) =>\n selected ? [rowId] : [],\n ),\n [currentRowSelection],\n );\n\n return {\n containerWidth,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n effectiveColumnVisibility,\n globalFilterValue,\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n localSearchValue,\n resolvedLoadingRowCount,\n resolvedToolbarQueryPlaceholder,\n selectedRowIds,\n selectedRows,\n setCurrentColumnFilters,\n setCurrentColumnOrder,\n setCurrentColumnPinning,\n setCurrentRowPinning,\n setCurrentColumnVisibility,\n setCurrentExpanded,\n setCurrentGrouping,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing: setCurrentColumnSizing,\n setLocalPagination,\n setLocalSearchValue,\n shouldRenderInitialLoading,\n tableData,\n tableGetRowId,\n /**\n * @deprecated Read the filtered TanStack row model from the table\n * instance. This alias remains for advanced 4.x callers.\n */\n toolbarFilteredData: visibleData,\n visibleData,\n };\n}\n","import * as React from \"react\";\nimport type { Column, ColumnSizingState } from \"@tanstack/react-table\";\nimport type { DataTableColumnDef } from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport {\n UTILITY_COLUMN_SIZE,\n getColumnId,\n getConfiguredColumnMinWidth,\n getDataTableLeafColumns,\n getFixedSide,\n getPinnedColumnClassName,\n hasExplicitDataTableColumnSize,\n isUtilityColumnId,\n} from \"./data-table-utils\";\n\ntype ColumnLayoutMode = \"fill\" | \"fit\";\n\nexport type DataTableColumnLayout = {\n cellStyle: React.CSSProperties | undefined;\n colStyle: React.CSSProperties | undefined;\n fixedSide: \"left\" | \"right\" | false | undefined;\n headerStyle: React.CSSProperties | undefined;\n isActionsColumn: boolean;\n isExpansionColumn: boolean;\n isSelectionColumn: boolean;\n isSpacerColumn: boolean;\n isUtilityColumn: boolean;\n pinnedClassName: string | undefined;\n utilityClassName: string | undefined;\n};\n\nconst EMPTY_COLUMN_LAYOUT: DataTableColumnLayout = {\n cellStyle: undefined,\n colStyle: undefined,\n fixedSide: undefined,\n headerStyle: undefined,\n isActionsColumn: false,\n isExpansionColumn: false,\n isSelectionColumn: false,\n isSpacerColumn: false,\n isUtilityColumn: false,\n pinnedClassName: undefined,\n utilityClassName: undefined,\n};\n\nexport function useColumnLayout({\n columns,\n columnSizing,\n editableRows,\n enableRowSelection,\n hasRowActions,\n hasRowExpansion,\n layoutMode,\n uiClassNames,\n visibleLeafColumns,\n}: {\n columns: Array>;\n columnSizing: ColumnSizingState;\n editableRows: boolean;\n enableRowSelection: boolean;\n hasRowActions: boolean;\n hasRowExpansion: boolean;\n layoutMode: ColumnLayoutMode;\n uiClassNames: DataTableUiClassNames;\n visibleLeafColumns: Array>;\n}) {\n const explicitlySizedColumnIds = React.useMemo(() => {\n const ids = new Set();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n if (hasExplicitDataTableColumnSize(column)) {\n ids.add(getColumnId(column, index));\n }\n }\n\n if (enableRowSelection) {\n ids.add(\"__select__\");\n }\n\n if (hasRowExpansion) {\n ids.add(\"__expand__\");\n }\n\n if (hasRowActions || editableRows) {\n ids.add(\"__actions__\");\n }\n\n return ids;\n }, [\n columns,\n editableRows,\n enableRowSelection,\n hasRowActions,\n hasRowExpansion,\n ]);\n\n const minimumColumnWidths = React.useMemo(() => {\n const widths = new Map();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n const configuredMinWidth = getConfiguredColumnMinWidth(column);\n\n if (configuredMinWidth !== undefined) {\n widths.set(getColumnId(column, index), configuredMinWidth);\n }\n }\n\n return widths;\n }, [columns]);\n\n const pinnedColumns = React.useMemo(() => {\n const left = new Map();\n const right = new Map();\n\n let leftOffset = 0;\n for (const column of visibleLeafColumns) {\n if (getFixedSide(column) === \"left\") {\n left.set(column.id, leftOffset);\n leftOffset += getColumnLayoutSize(column);\n }\n }\n\n let rightOffset = 0;\n for (const column of [...visibleLeafColumns].reverse()) {\n if (getFixedSide(column) === \"right\") {\n right.set(column.id, rightOffset);\n rightOffset += getColumnLayoutSize(column);\n }\n }\n\n return { left, right };\n }, [visibleLeafColumns]);\n\n const fixedWidthColumnIds = React.useMemo(() => {\n return new Set([\n ...explicitlySizedColumnIds,\n ...Object.keys(columnSizing),\n ]);\n }, [columnSizing, explicitlySizedColumnIds]);\n\n const columnLayouts = React.useMemo(() => {\n const layouts = new Map();\n\n for (const column of visibleLeafColumns) {\n const isSelectionColumn = column.id === \"__select__\";\n const isExpansionColumn = column.id === \"__expand__\";\n const isActionsColumn = column.id === \"__actions__\";\n const isUtilityColumn =\n isSelectionColumn || isExpansionColumn || isActionsColumn;\n const isSpacerColumn = column.id === \"__spacer__\";\n const configuredMinWidth = minimumColumnWidths.get(column.id);\n const columnMinWidth = configuredMinWidth;\n const shouldFixWidth =\n !isSpacerColumn &&\n (layoutMode === \"fit\" ||\n isUtilityColumn ||\n fixedWidthColumnIds.has(column.id));\n const baseStyle =\n shouldFixWidth || columnMinWidth !== undefined\n ? {\n width: shouldFixWidth\n ? isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : column.getSize()\n : undefined,\n minWidth: isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : shouldFixWidth\n ? column.getSize()\n : columnMinWidth,\n maxWidth: shouldFixWidth\n ? isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : column.getSize()\n : undefined,\n }\n : undefined;\n const fixedSide = getFixedSide(column);\n const pinnedStyle = fixedSide\n ? {\n left:\n fixedSide === \"left\" ? pinnedColumns.left.get(column.id) : undefined,\n right:\n fixedSide === \"right\"\n ? pinnedColumns.right.get(column.id)\n : undefined,\n }\n : undefined;\n const cellStyle =\n baseStyle || pinnedStyle ? { ...baseStyle, ...pinnedStyle } : undefined;\n\n layouts.set(column.id, {\n cellStyle,\n colStyle: baseStyle,\n fixedSide,\n headerStyle: cellStyle,\n isActionsColumn,\n isExpansionColumn,\n isSelectionColumn,\n isSpacerColumn,\n isUtilityColumn,\n pinnedClassName: fixedSide\n ? getPinnedColumnClassName(fixedSide, uiClassNames, {\n isUtilityColumn,\n })\n : undefined,\n utilityClassName: isUtilityColumn\n ? \"w-[50px] max-w-[50px] min-w-[50px] px-0\"\n : undefined,\n });\n }\n\n return layouts;\n }, [\n fixedWidthColumnIds,\n layoutMode,\n minimumColumnWidths,\n pinnedColumns,\n uiClassNames,\n visibleLeafColumns,\n ]);\n\n const fillMinWidth = React.useMemo(() => {\n return visibleLeafColumns.reduce((total, column) => {\n const layout = columnLayouts.get(column.id);\n const configuredMinWidth = minimumColumnWidths.get(column.id);\n\n if (layout?.isUtilityColumn) {\n return total + UTILITY_COLUMN_SIZE;\n }\n\n if (fixedWidthColumnIds.has(column.id)) {\n return total + column.getSize();\n }\n\n return (\n total +\n (configuredMinWidth ?? 0)\n );\n }, 0);\n }, [\n columnLayouts,\n fixedWidthColumnIds,\n minimumColumnWidths,\n visibleLeafColumns,\n ]);\n\n const getColumnLayout = React.useCallback(\n (columnId: string) => columnLayouts.get(columnId) ?? EMPTY_COLUMN_LAYOUT,\n [columnLayouts],\n );\n\n return {\n columnLayouts,\n explicitlySizedColumnIds,\n fillMinWidth,\n getColumnLayout,\n };\n}\n\nfunction getColumnLayoutSize(column: Column) {\n return isUtilityColumnId(column.id) ? UTILITY_COLUMN_SIZE : column.getSize();\n}\n","import * as React from \"react\";\nimport type { ExpandedState, OnChangeFn, Row } from \"@tanstack/react-table\";\nimport { IconChevronDown } from \"../icons\";\nimport type {\n DataTableCardRendererProps,\n DataTableCardSizing,\n DataTableEditableRowsConfig,\n DataTableDetailPanel,\n DataTableLabels,\n DataTableProps,\n DataTableRowAction,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\nimport {\n isDataTableInteractiveTarget,\n toggleDataTableExpandedState,\n} from \"./data-table-utils\";\n\ntype DataTableCardViewProps = {\n rows: Array>;\n cardRenderer: (props: DataTableCardRendererProps) => React.ReactNode;\n cardSizing?: DataTableCardSizing;\n cardGridClassName?: string;\n cardClassName?: string;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n detailPanel?: DataTableDetailPanel;\n detailExpanded: ExpandedState;\n onDetailExpandedChange: OnChangeFn;\n hasCardTitle: boolean;\n rowSelection: Record;\n onRowSelectionChange: (rowSelection: Record) => void;\n enableRowSelection: boolean;\n editingRowId: string | null;\n onEditingRowIdChange: (rowId: string | null) => void;\n getRowClassName?: DataTableProps[\"getRowClassName\"];\n onRowClick?: (context: { row: TData; rowId: string }) => void | Promise;\n getRowDraggable?: (row: TData) => boolean;\n onRowDragStart?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n onRowDragEnd?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n isLoading?: boolean;\n loadingRowCount?: number;\n labels: DataTableLabels;\n};\n\ntype DataTableRowActionsComponent = (props: {\n row: TData;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n onStartEditing: () => void;\n onCancelEditing: () => void;\n labels: DataTableLabels;\n}) => React.ReactElement | null;\n\nexport function createDataTableCardView(\n ui: DataTableUiKit,\n DataTableRowActions: DataTableRowActionsComponent,\n) {\n const uiClassNames = ui.classNames ?? {};\n const { Button, Card, CardContent, CardHeader, Checkbox, Skeleton } = ui;\n\n return function DataTableCardView({\n rows,\n cardRenderer,\n cardSizing = \"fixed\",\n cardGridClassName,\n cardClassName,\n rowActions,\n editableRows,\n detailPanel,\n detailExpanded,\n onDetailExpandedChange,\n hasCardTitle,\n rowSelection,\n onRowSelectionChange,\n enableRowSelection,\n editingRowId,\n onEditingRowIdChange,\n getRowClassName,\n onRowClick,\n getRowDraggable,\n onRowDragStart,\n onRowDragEnd,\n isLoading = false,\n loadingRowCount = 5,\n labels,\n }: DataTableCardViewProps) {\n const resolvedCardSizing = cardSizing ?? \"fixed\";\n const resolvedCardGridClassName =\n cardGridClassName\n ? cn(\"grid\", cardGridClassName)\n : getCardGridClassName(resolvedCardSizing);\n const cardGridClasses = cn(\n \"min-h-0 w-full gap-4 p-1\",\n uiClassNames.cardGrid,\n resolvedCardGridClassName,\n );\n const cardItemClasses = (stateClassName?: string) =>\n cn(\n \"relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0\",\n getCardItemClassName(resolvedCardSizing),\n uiClassNames.cardItem,\n cardClassName,\n stateClassName,\n );\n\n if (isLoading) {\n return (\n \n {Array.from({ length: Math.max(1, loadingRowCount) }, (_, index) => (\n \n {hasCardTitle ? (\n \n \n \n \n ) : null}\n \n \n \n \n \n \n \n ))}\n \n );\n }\n\n return (\n \n {rows.map((row) => {\n const rowId = row.id;\n const originalRow = row.original;\n const isSelected = Boolean(rowSelection[rowId]);\n const isEditing = editingRowId === rowId;\n const hasCardActions = rowActions.length > 0 || Boolean(editableRows);\n const canExpandDetail = Boolean(\n detailPanel && (detailPanel.getRowCanExpand?.(originalRow) ?? true),\n );\n const showCardGradient =\n enableRowSelection || hasCardActions || hasCardTitle;\n const showCardOverlayControls =\n enableRowSelection ||\n hasCardActions ||\n row.getCanExpand() ||\n canExpandDetail;\n const handleCardActivate = () => {\n if (!onRowClick) {\n return;\n }\n\n void onRowClick({ row: originalRow, rowId });\n };\n\n return (\n ) => {\n onRowDragStart?.({ row: originalRow, rowId, event });\n }}\n onDragEnd={(event: React.DragEvent) => {\n onRowDragEnd?.({ row: originalRow, rowId, event });\n }}\n >\n {showCardGradient ? (\n \n ) : null}\n *]:min-w-0\",\n getCardRendererClassName(resolvedCardSizing),\n onRowClick && \"cursor-pointer focus-visible:outline-none\",\n )}\n onClick={(event: React.MouseEvent) => {\n if (\n isDataTableInteractiveTarget(\n event.target,\n event.currentTarget,\n )\n ) {\n return;\n }\n\n handleCardActivate();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (\n isDataTableInteractiveTarget(\n event.target,\n event.currentTarget,\n )\n ) {\n return;\n }\n\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n handleCardActivate();\n }\n }}\n >\n {cardRenderer({\n row: originalRow,\n rowId,\n depth: row.depth,\n canExpandSubRows: row.getCanExpand(),\n isSubRowsExpanded: row.getIsExpanded(),\n toggleSubRowsExpanded: () => row.toggleExpanded(),\n isSelected,\n onSelectedChange: (nextValue) => {\n onRowSelectionChange(\n updateRowSelection(\n rowSelection,\n rowId,\n nextValue,\n row.getCanSelect(),\n row.getCanMultiSelect(),\n ),\n );\n },\n actions: rowActions,\n isEditing,\n startEditing: () => {\n onEditingRowIdChange(rowId);\n },\n cancelEditing: () => {\n onEditingRowIdChange(null);\n },\n })}\n \n {isEditing ||\n !detailPanel ||\n !(detailExpanded === true || Boolean(detailExpanded[row.id]))\n ? null\n : (\n \n {detailPanel.render({\n row: originalRow,\n rowId,\n tableRow: row,\n })}\n \n )}\n {showCardOverlayControls ? (\n \n {enableRowSelection ? (\n \n {\n onRowSelectionChange(\n updateRowSelection(\n rowSelection,\n rowId,\n checked === true,\n row.getCanSelect(),\n row.getCanMultiSelect(),\n ),\n );\n }}\n />\n \n ) : null}\n {row.getCanExpand() ? (\n
    \n row.toggleExpanded()}\n >\n \n \n
    \n ) : null}\n {canExpandDetail ? (\n \n {\n onDetailExpandedChange((current) =>\n toggleDataTableExpandedState(\n current,\n row.id,\n rows.map((item) => item.id),\n ),\n );\n }}\n >\n \n \n \n ) : null}\n
    \n {hasCardActions ? (\n \n {\n onEditingRowIdChange(rowId);\n }}\n onCancelEditing={() => {\n onEditingRowIdChange(null);\n }}\n labels={labels}\n />\n
    \n ) : null}\n
    \n ) : null}\n \n );\n })}\n \n );\n };\n}\n\nfunction getCardGridClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"flex flex-wrap items-start justify-start\";\n case \"fluid\":\n return \"grid grid-cols-[repeat(auto-fit,minmax(min(18rem,100%),1fr))]\";\n case \"fixed\":\n default:\n return \"grid grid-cols-[repeat(auto-fill,minmax(min(18rem,100%),18rem))] justify-start\";\n }\n}\n\nfunction getCardItemClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"w-fit\";\n case \"fluid\":\n return \"w-full\";\n case \"fixed\":\n default:\n return undefined;\n }\n}\n\nfunction getCardRendererClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"w-fit\";\n case \"fluid\":\n return \"w-full flex-1 [&>*]:w-full\";\n case \"fixed\":\n default:\n return \"flex-1\";\n }\n}\n\nfunction updateRowSelection(\n rowSelection: Record,\n rowId: string,\n isSelected: boolean,\n canSelect: boolean,\n canMultiSelect: boolean,\n) {\n if (!canSelect) {\n return rowSelection;\n }\n\n if (isSelected) {\n return canMultiSelect\n ? {\n ...rowSelection,\n [rowId]: true,\n }\n : { [rowId]: true };\n }\n\n if (!rowSelection[rowId]) {\n return rowSelection;\n }\n\n const nextSelection = { ...rowSelection };\n delete nextSelection[rowId];\n return nextSelection;\n}\n","import { IconInbox } from \"../icons\";\nimport type { DataTableUiKit } from \"../ui-kit\";\n\nexport function createDataTableEmptyState(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n } = ui;\n\n return function DataTableEmptyState({\n title = \"No rows found\",\n description = \"Adjust your filters or create a new record to populate this table.\",\n }: {\n title?: string;\n description?: string;\n }) {\n return (\n \n \n \n \n \n {title}\n {description}\n \n \n \n );\n };\n}\n","import * as React from \"react\";\nimport { IconDatabase } from \"../icons\";\nimport type { DataTableLabels } from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\ntype DataTablePaginationProps = {\n pageIndex: number;\n pageCount: number;\n pageCountKnown: boolean;\n pageSize: number;\n totalRowCount?: number;\n rowsPerPageOptions: Array;\n onPageIndexChange: (pageIndex: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n labels: DataTableLabels;\n};\n\nexport function createDataTablePagination(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n function DataTablePagination({\n pageIndex,\n pageCount,\n pageCountKnown,\n pageSize,\n totalRowCount,\n rowsPerPageOptions,\n onPageIndexChange,\n onPageSizeChange,\n labels,\n }: DataTablePaginationProps) {\n const pages = pageCountKnown\n ? getVisiblePages(pageIndex, Math.max(1, pageCount))\n : [];\n const canGoPrevious = pageIndex > 0;\n const canGoNext = pageIndex + 1 < pageCount;\n const lastPageIndex = Math.max(0, pageCount - 1);\n\n return (\n
    \n \n \n {labels.recordsPerPage}\n \n {\n onPageSizeChange(Number(value));\n }}\n >\n \n \n \n \n \n {rowsPerPageOptions.map((option) => (\n \n {option}\n \n ))}\n \n \n \n
    \n\n {totalRowCount !== undefined ? (\n
    \n \n \n {totalRowCount}\n \n {labels.totalRecords(totalRowCount)}\n \n
    \n \n ) : null}\n\n
    \n \n {pageCountKnown\n ? labels.pageStatus(pageIndex, Math.max(1, pageCount))\n : (\n labels.pageStatusUnknown ??\n DATA_TABLE_DEFAULT_LABELS.pageStatusUnknown\n )(pageIndex)}\n
    \n \n \n \n \n \n ) => {\n event.preventDefault();\n if (canGoPrevious) {\n onPageIndexChange(0);\n }\n }}\n text={labels.firstPage}\n />\n \n {labels.firstPage}\n \n \n \n \n \n ) => {\n event.preventDefault();\n if (canGoPrevious) {\n onPageIndexChange(pageIndex - 1);\n }\n }}\n text={labels.previousPage}\n />\n \n {labels.previousPage}\n \n \n {pages.map((item, index) => (\n \n {item === \"ellipsis\" ? (\n \n ) : (\n ) => {\n event.preventDefault();\n onPageIndexChange(item - 1);\n }}\n >\n {item}\n \n )}\n \n ))}\n \n \n \n ) => {\n event.preventDefault();\n if (canGoNext) {\n onPageIndexChange(pageIndex + 1);\n }\n }}\n text={labels.nextPage}\n />\n \n {labels.nextPage}\n \n \n {pageCountKnown ? (\n \n \n \n ,\n ) => {\n event.preventDefault();\n if (canGoNext) {\n onPageIndexChange(lastPageIndex);\n }\n }}\n />\n \n {labels.lastPage}\n \n \n ) : null}\n \n \n \n \n );\n }\n\n function DataTableFooter(props: DataTablePaginationProps) {\n return (\n \n \n \n );\n }\n\n return {\n DataTableFooter,\n DataTablePagination,\n };\n}\n\nfunction getVisiblePages(currentPageIndex: number, pageCount: number) {\n const currentPage = currentPageIndex + 1;\n const pages = new Set([1, pageCount]);\n\n for (\n let page = Math.max(1, currentPage - 2);\n page <= Math.min(pageCount, currentPage + 2);\n page += 1\n ) {\n pages.add(page);\n }\n\n const orderedPages = Array.from(pages).sort((left, right) => left - right);\n const items: Array = [];\n\n for (let index = 0; index < orderedPages.length; index += 1) {\n const page = orderedPages[index];\n const previous = orderedPages[index - 1];\n\n if (previous && page - previous > 1) {\n items.push(\"ellipsis\");\n }\n\n items.push(page);\n }\n\n return items;\n}\n","import * as React from \"react\";\nimport { IconDots, IconEdit, IconX } from \"../icons\";\nimport type {\n DataTableEditableRowsConfig,\n DataTableLabels,\n DataTableRowAction,\n} from \"../types\";\nimport type { RowPinningPosition } from \"@tanstack/react-table\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { canEditRow, canUseRowAction, resolveRowActionLabel } from \"../types\";\n\ntype DataTableRowActionsProps = {\n row: TData;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n onStartEditing: () => void;\n onCancelEditing: () => void;\n labels: DataTableLabels;\n rowPinning?: {\n canPin: boolean;\n position: RowPinningPosition;\n pin: (position: RowPinningPosition) => void;\n };\n};\n\nexport function createDataTableRowActions(ui: DataTableUiKit) {\n const {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n return function DataTableRowActions({\n row,\n rowActions,\n editableRows,\n isEditing,\n onStartEditing,\n onCancelEditing,\n labels,\n rowPinning,\n }: DataTableRowActionsProps) {\n const actions = rowActions.filter((action) => canUseRowAction(action, row));\n const stopRowClickPropagation = React.useCallback(\n (event: React.SyntheticEvent) => {\n event.stopPropagation();\n },\n [],\n );\n\n if (isEditing) {\n return (\n \n \n \n \n {labels.cancelEdit}\n \n \n {labels.cancelEdit}\n \n );\n }\n\n const allowEdit = canEditRow(editableRows, row);\n const canPin = rowPinning?.canPin ?? false;\n if (!actions.length && !allowEdit && !canPin) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n {labels.rowActions}\n \n \n \n {labels.rowActions}\n \n \n {allowEdit ? (\n \n ) => {\n event.stopPropagation();\n onStartEditing();\n }}\n >\n \n {labels.editRow}\n \n \n ) : null}\n {allowEdit && (actions.length || canPin) ? : null}\n {canPin ? (\n \n {rowPinning?.position ? (\n ) => {\n event.stopPropagation();\n rowPinning.pin(false);\n }}\n >\n {labels.unpinRow}\n \n ) : (\n <>\n ) => {\n event.stopPropagation();\n rowPinning?.pin(\"top\");\n }}\n >\n {labels.pinRowToTop}\n \n ) => {\n event.stopPropagation();\n rowPinning?.pin(\"bottom\");\n }}\n >\n {labels.pinRowToBottom}\n \n \n )}\n \n ) : null}\n {canPin && actions.length ? : null}\n {actions.length ? (\n \n {actions.map((action) => {\n const Icon = action.icon;\n return (\n ) => {\n event.stopPropagation();\n void action.onClick(row);\n }}\n >\n {Icon ? : null}\n {resolveRowActionLabel(action.label, row)}\n \n );\n })}\n \n ) : null}\n \n \n );\n };\n}\n","import * as React from \"react\";\nimport type { Table as TanStackTable } from \"@tanstack/react-table\";\nimport {\n IconAdjustmentsHorizontal,\n IconLayoutGrid,\n IconList,\n IconSearch,\n IconX,\n} from \"../icons\";\nimport type {\n DataTableColumnFilterType,\n DataTableColumnFixed,\n DataTableColumnVisibilityOption,\n DataTableDensity,\n DataTableLabels,\n DataTableSavedView,\n DataTableSelectionAction,\n DataTableToolbarAction,\n DataTableToolbarVisibility,\n DataTableViewMode,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\nconst LazyToolbarDataOperations = React.lazy(\n () => import(\"./data-table-toolbar-operations\"),\n);\n\nexport type DataTableToolbarColumnFilter = {\n id: string;\n label: string;\n type: DataTableColumnFilterType;\n value: unknown;\n placeholder?: string;\n options: Array<{ label: string; value: string; count?: number; disabled?: boolean }>;\n searchable?: boolean;\n searchPlaceholder?: string;\n trueLabel?: string;\n falseLabel?: string;\n min?: number | string;\n max?: number | string;\n step?: number;\n};\n\ntype DataTableToolbarProps = {\n title?: string;\n titleId?: string;\n description?: string;\n descriptionId?: string;\n toolbarQueryValue: string;\n toolbarQueryPlaceholder: string;\n onToolbarQueryValueChange: (value: string) => void;\n customToolbar?: React.ReactNode;\n compactToolbar?: React.ReactNode;\n viewMode: DataTableViewMode;\n onViewModeChange?: (viewMode: DataTableViewMode) => void;\n enableViewToggle: boolean;\n toolbarActions: Array>;\n selectionActions: Array>;\n selectedRows: Array;\n selectedRowIds: Array;\n showHiddenRows: boolean;\n hiddenRowsLabel?: string;\n onShowHiddenRowsChange?: (showHiddenRows: boolean) => void;\n allRows: Array;\n columnVisibilityOptions: Array;\n onColumnVisibilityChange?: (columnId: string, visible: boolean) => void;\n enableColumnPinning: boolean;\n onColumnPinningChange: (columnId: string, side: DataTableColumnFixed | false) => void;\n columnFilters: Array;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n onClearColumnFilters: () => void;\n density: DataTableDensity;\n onDensityChange: (density: DataTableDensity) => void;\n enableDensityToggle: boolean;\n labels: Required;\n toolbarVisibility?: DataTableToolbarVisibility;\n openFileDialog?: () => void;\n enableGrouping: boolean;\n enableToolbarColumnChooser: boolean;\n enableToolbarFilterChips: boolean;\n enableToolbarResetLayout: boolean;\n enableToolbarSavedViews: boolean;\n savedViews: Array;\n onResetColumnLayout: () => void;\n onCreateSavedView: (name: string) => DataTableSavedView | undefined;\n onApplySavedView: (id: string) => boolean;\n onRenameSavedView: (id: string, name: string) => DataTableSavedView | undefined;\n onDeleteSavedView: (id: string) => boolean;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n table: TanStackTable;\n};\n\nexport function createDataTableToolbar(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Button,\n ButtonGroup,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n return function DataTableToolbar({\n title,\n titleId,\n description,\n descriptionId,\n toolbarQueryValue,\n toolbarQueryPlaceholder,\n onToolbarQueryValueChange,\n customToolbar,\n compactToolbar,\n viewMode,\n onViewModeChange,\n enableViewToggle,\n toolbarActions,\n selectionActions,\n selectedRows,\n selectedRowIds,\n showHiddenRows,\n hiddenRowsLabel,\n onShowHiddenRowsChange,\n allRows,\n columnVisibilityOptions,\n onColumnVisibilityChange,\n enableColumnPinning,\n onColumnPinningChange,\n columnFilters,\n onColumnFilterChange,\n onClearColumnFilters,\n density,\n onDensityChange,\n enableDensityToggle,\n labels,\n toolbarVisibility,\n openFileDialog,\n enableGrouping,\n enableToolbarColumnChooser,\n enableToolbarFilterChips,\n enableToolbarResetLayout,\n enableToolbarSavedViews,\n savedViews,\n onResetColumnLayout,\n onCreateSavedView,\n onApplySavedView,\n onRenameSavedView,\n onDeleteSavedView,\n reorderColumn,\n table,\n }: DataTableToolbarProps) {\n const compactSearchInputRef = React.useRef(null);\n const [isCompactSearchVisible, setIsCompactSearchVisible] =\n React.useState(false);\n const compactToolbarIconButtonClassName =\n uiClassNames.toolbarCompactIconButton ?? \"\";\n const primaryActions = toolbarActions.filter(\n (action) => (action.placement ?? \"primary\") === \"primary\",\n );\n const trailingActions = toolbarActions.filter(\n (action) => action.placement === \"trailing\",\n );\n const showTitle = toolbarVisibility?.title ?? true;\n const showSearch = toolbarVisibility?.search ?? true;\n const showActions = toolbarVisibility?.actions ?? true;\n const showTrailingActions = toolbarVisibility?.trailingActions ?? true;\n const showOptions = toolbarVisibility?.options ?? true;\n const showViewToggle = toolbarVisibility?.viewToggle ?? true;\n const showCustomToolbar = toolbarVisibility?.customToolbar ?? true;\n const hasVisibleTitle = showTitle && Boolean(title || description);\n const hasVisibleSearch = showSearch;\n const hasVisiblePrimaryActions = showActions && primaryActions.length > 0;\n const hasVisibleSelectionActions =\n selectedRowIds.length > 0 && selectionActions.length > 0;\n const hasVisibleOptions =\n showOptions &&\n (columnVisibilityOptions.some((column) => column.canHide) ||\n Boolean(onShowHiddenRowsChange && hiddenRowsLabel) ||\n enableColumnPinning ||\n enableDensityToggle ||\n enableGrouping ||\n enableToolbarColumnChooser ||\n enableToolbarResetLayout ||\n enableToolbarSavedViews);\n const hasToolbarOperationsMenu =\n enableToolbarColumnChooser ||\n enableToolbarResetLayout ||\n enableToolbarSavedViews;\n const activeColumnFilters = columnFilters.filter((filter) =>\n hasColumnFilterValue(filter.value),\n );\n const toolbarOperationsUi = {\n Button,\n DropdownMenuCheckboxItem,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n };\n const renderToolbarDataOperations = (placement: \"menu\" | \"chips\") => (\n \n }\n onResetColumnLayout={onResetColumnLayout}\n savedViews={savedViews}\n onCreateSavedView={onCreateSavedView}\n onApplySavedView={onApplySavedView}\n onRenameSavedView={onRenameSavedView}\n onDeleteSavedView={onDeleteSavedView}\n toolbarQueryValue={toolbarQueryValue}\n onToolbarQueryValueChange={onToolbarQueryValueChange}\n activeColumnFilters={activeColumnFilters}\n onColumnFilterChange={onColumnFilterChange}\n onClearColumnFilters={onClearColumnFilters}\n />\n \n );\n const groupableColumns = table\n .getAllLeafColumns()\n .filter(\n (column) =>\n !column.id.startsWith(\"__\") &&\n column.getCanGroup(),\n );\n const groupedColumns = table.getState().grouping.flatMap((id) => {\n const column = table.getColumn(id);\n return column ? [column] : [];\n });\n const hasVisibleViewToggle =\n showViewToggle && enableViewToggle && Boolean(onViewModeChange);\n const hasVisibleTrailingActions =\n showTrailingActions && trailingActions.length > 0;\n const hasVisibleCustomToolbar = showCustomToolbar && Boolean(customToolbar);\n const hasVisibleCompactToolbar =\n showCustomToolbar && Boolean(compactToolbar ?? customToolbar);\n const selectedRowCountLabel = labels.selectedRows(selectedRowIds.length);\n\n React.useEffect(() => {\n if (!isCompactSearchVisible) {\n return;\n }\n\n compactSearchInputRef.current?.focus();\n }, [isCompactSearchVisible]);\n\n if (\n !hasVisibleTitle &&\n !hasVisibleSearch &&\n !hasVisiblePrimaryActions &&\n !hasVisibleSelectionActions &&\n !hasVisibleOptions &&\n !hasVisibleViewToggle &&\n !hasVisibleTrailingActions &&\n !hasVisibleCustomToolbar &&\n !hasVisibleCompactToolbar\n ) {\n return null;\n }\n\n return (\n
    \n {showTitle && (title || description) ? (\n
    \n {title ? (\n \n {title}\n \n ) : null}\n {description ? (\n \n {description}\n

    \n ) : null}\n
    \n ) : null}\n\n
    \n \n {showSearch ? (\n <>\n
    \n \n ) => {\n onToolbarQueryValueChange(event.target.value);\n }}\n placeholder={toolbarQueryPlaceholder}\n />\n \n \n \n {toolbarQueryValue ? (\n \n {\n onToolbarQueryValueChange(\"\");\n }}\n aria-label={labels.clearSearch}\n title={labels.clearSearch}\n >\n \n \n \n ) : null}\n \n
    \n \n \n {\n setIsCompactSearchVisible((current) => !current);\n }}\n >\n \n {labels.searchTable}\n \n \n {labels.searchTable}\n \n \n ) : null}\n\n {showActions ? (\n
    \n {primaryActions.map((action) => {\n const collapsesToIcon =\n !action.iconOnly && Boolean(action.icon);\n const button = (\n {\n void action.onClick({\n rows: allRows,\n openFileDialog,\n });\n }}\n disabled={action.disabled}\n aria-label={action.label}\n title={action.iconOnly ? undefined : action.label}\n >\n {action.icon ? : null}\n {action.iconOnly ? (\n {action.label}\n ) : collapsesToIcon ? (\n \n {action.label}\n \n ) : (\n {action.label}\n )}\n \n );\n\n return action.iconOnly ? (\n \n {button}\n {action.label}\n \n ) : (\n button\n );\n })}\n
    \n ) : null}\n\n {hasVisibleCompactToolbar ? (\n \n {compactToolbar ?? customToolbar}\n
    \n ) : null}\n\n
    \n\n \n {selectedRowIds.length ? (\n \n {selectedRowCountLabel}\n
    \n ) : null}\n {selectedRowIds.length\n ? selectionActions.map((action) => {\n const Icon = action.icon;\n const context = {\n rows: selectedRows,\n rowIds: selectedRowIds,\n };\n const disabled =\n typeof action.disabled === \"function\"\n ? action.disabled(selectedRows, context)\n : action.disabled;\n\n return (\n \n \n {\n void action.onClick(context);\n }}\n aria-label={action.label}\n >\n {Icon ? : null}\n {action.label}\n \n \n {action.label}\n \n );\n })\n : null}\n\n {hasVisibleOptions ? (\n \n \n \n \n {labels.tableOptions}\n \n \n \n {labels.tableOptions}\n \n {onShowHiddenRowsChange && hiddenRowsLabel ? (\n {\n onShowHiddenRowsChange(checked === true);\n }}\n >\n {labels.showHiddenRows(hiddenRowsLabel)}\n \n ) : null}\n \n {enableDensityToggle ? (\n <>\n \n {labels.density}\n \n {(\n [\n [\"compact\", labels.compactDensity],\n [\"comfortable\", labels.comfortableDensity],\n [\"spacious\", labels.spaciousDensity],\n ] as const\n ).map(([nextDensity, label]) => (\n {\n onDensityChange(nextDensity);\n }}\n >\n {label}\n \n ))}\n \n \n ) : null}\n {hasToolbarOperationsMenu\n ? renderToolbarDataOperations(\"menu\")\n : null}\n {!enableToolbarColumnChooser &&\n columnVisibilityOptions.some((column) => column.canHide) ? (\n <>\n \n {labels.columns}\n \n {columnVisibilityOptions\n .filter((column) => column.canHide)\n .map((column) => (\n {\n onColumnVisibilityChange?.(\n column.id,\n checked === true,\n );\n }}\n >\n {column.label}\n \n ))}\n \n \n ) : null}\n {enableColumnPinning && !enableToolbarColumnChooser ? (\n <>\n \n \n {labels.pinLeft} / {labels.pinRight}\n \n \n {columnVisibilityOptions.map((column) => (\n {\n event.preventDefault();\n }}\n >\n \n {column.label}\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, \"left\");\n }}\n >\n L\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, \"right\");\n }}\n >\n R\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, false);\n }}\n >\n -\n \n \n ))}\n \n \n ) : null}\n {enableGrouping && groupableColumns.length ? (\n <>\n \n {labels.grouping}\n \n {groupableColumns.map((column) => {\n const columnLabel =\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : column.id;\n const isGrouped = column.getIsGrouped();\n return (\n {\n column.toggleGrouping();\n }}\n >\n {isGrouped\n ? labels.ungroup(columnLabel)\n : labels.groupBy(columnLabel)}\n \n );\n })}\n \n \n ) : null}\n \n \n ) : null}\n\n {showViewToggle && enableViewToggle && onViewModeChange ? (\n \n \n \n {\n onViewModeChange(\"table\");\n }}\n >\n \n \n {labels.switchToTableView ??\n DATA_TABLE_DEFAULT_LABELS.switchToTableView}\n \n \n \n \n {labels.tableView ??\n DATA_TABLE_DEFAULT_LABELS.tableView}\n \n \n \n \n {\n onViewModeChange(\"card\");\n }}\n >\n \n \n {labels.switchToCardView ??\n DATA_TABLE_DEFAULT_LABELS.switchToCardView}\n \n \n \n \n {labels.cardView ??\n DATA_TABLE_DEFAULT_LABELS.cardView}\n \n \n \n ) : null}\n\n {showTrailingActions\n ? trailingActions.map((action) => {\n const collapsesToIcon =\n !action.iconOnly && Boolean(action.icon);\n const button = (\n {\n void action.onClick({\n rows: allRows,\n openFileDialog,\n });\n }}\n disabled={action.disabled}\n aria-label={action.label}\n title={action.iconOnly ? undefined : action.label}\n className={`size-7 shrink-0 ${action.iconOnly ? \"\" : `${collapsesToIcon ? \"px-0 @min-[768px]/data-table:px-2.5\" : \"\"} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${action.iconOnly || collapsesToIcon ? compactToolbarIconButtonClassName : \"\"} ${uiClassNames.toolbarInputButton ?? \"\"}`}\n >\n {action.icon ? (\n \n ) : null}\n {action.iconOnly ? (\n {action.label}\n ) : collapsesToIcon ? (\n \n {action.label}\n \n ) : (\n {action.label}\n )}\n \n );\n\n return action.iconOnly ? (\n \n {button}\n {action.label}\n \n ) : (\n button\n );\n })\n : null}\n
    \n \n\n {showSearch && isCompactSearchVisible ? (\n \n \n ) => {\n onToolbarQueryValueChange(event.target.value);\n }}\n placeholder={toolbarQueryPlaceholder}\n />\n \n \n \n {toolbarQueryValue ? (\n \n {\n onToolbarQueryValueChange(\"\");\n }}\n aria-label={labels.clearSearch}\n title={labels.clearSearch}\n >\n \n \n \n ) : null}\n \n \n ) : null}\n\n {columnFilters.length ? (\n \n {columnFilters.map((filter) => (\n \n ))}\n {columnFilters.some((filter) =>\n hasColumnFilterValue(filter.value),\n ) ? (\n \n {labels.clearFilters}\n \n ) : null}\n \n ) : null}\n\n {enableToolbarFilterChips\n ? renderToolbarDataOperations(\"chips\")\n : null}\n\n {enableGrouping && groupedColumns.length ? (\n \n {labels.grouping}:\n {groupedColumns.map((column, groupingIndex) => {\n const columnLabel =\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : column.id;\n const moveGrouping = (nextIndex: number) => {\n const nextGrouping = [...table.getState().grouping];\n const [groupingId] = nextGrouping.splice(groupingIndex, 1);\n if (groupingId === undefined) return;\n nextGrouping.splice(nextIndex, 0, groupingId);\n table.setGrouping(nextGrouping);\n };\n return (\n \n moveGrouping(groupingIndex - 1)}\n aria-label={labels.moveGroupingEarlier(columnLabel)}\n >\n \n \n column.toggleGrouping()}\n aria-label={labels.removeGrouping(columnLabel)}\n >\n {columnLabel} ×\n \n moveGrouping(groupingIndex + 1)}\n aria-label={labels.moveGroupingLater(columnLabel)}\n >\n \n \n \n );\n })}\n \n ) : null}\n\n \n\n {showCustomToolbar && customToolbar ? (\n \n {customToolbar}\n \n ) : null}\n \n );\n };\n\n function ToolbarColumnFilterControl({\n filter,\n labels,\n onColumnFilterChange,\n }: {\n filter: DataTableToolbarColumnFilter;\n labels: Required;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n }) {\n const [facetQuery, setFacetQuery] = React.useState(\"\");\n if (filter.type === \"text\") {\n return (\n \n ) => {\n onColumnFilterChange(filter.id, event.target.value);\n }}\n placeholder={filter.placeholder ?? filter.label}\n aria-label={`${labels.filters}: ${filter.label}`}\n />\n \n \n \n \n );\n }\n\n if (filter.type === \"numberRange\" || filter.type === \"dateRange\") {\n const range = normalizeToolbarRangeValue(filter.value);\n const inputType = filter.type === \"numberRange\" ? \"number\" : \"date\";\n const fromLabel =\n labels.filterFrom ?? DATA_TABLE_DEFAULT_LABELS.filterFrom;\n const toLabel = labels.filterTo ?? DATA_TABLE_DEFAULT_LABELS.filterTo;\n\n return (\n \n \n ) => {\n onColumnFilterChange(filter.id, {\n ...range,\n from: parseRangeInputValue(event.target.value, inputType),\n });\n }}\n aria-label={`${filter.label}: ${fromLabel}`}\n />\n {fromLabel}\n \n \n ) => {\n onColumnFilterChange(filter.id, {\n ...range,\n to: parseRangeInputValue(event.target.value, inputType),\n });\n }}\n aria-label={`${filter.label}: ${toLabel}`}\n />\n {toLabel}\n \n \n );\n }\n\n const isBoolean = filter.type === \"boolean\";\n const isFaceted = filter.type === \"faceted\";\n const booleanOptions = [\n {\n label:\n filter.trueLabel ??\n labels.filterTrue ??\n DATA_TABLE_DEFAULT_LABELS.filterTrue,\n value: \"true\",\n },\n {\n label:\n filter.falseLabel ??\n labels.filterFalse ??\n DATA_TABLE_DEFAULT_LABELS.filterFalse,\n value: \"false\",\n },\n ];\n const options: DataTableToolbarColumnFilter[\"options\"] = isBoolean\n ? booleanOptions\n : filter.options;\n const visibleOptions =\n isFaceted && facetQuery\n ? options.filter((option) =>\n option.label.toLocaleLowerCase().includes(facetQuery.toLocaleLowerCase()),\n )\n : options;\n const selectedValue =\n typeof filter.value === \"string\" || typeof filter.value === \"boolean\"\n ? String(filter.value)\n : \"\";\n const selectedValues = Array.isArray(filter.value)\n ? filter.value.map(String)\n : selectedValue\n ? [selectedValue]\n : [];\n const selectedLabel =\n selectedValues.length === 0\n ? filter.label\n : `${filter.label}: ${\n selectedValues.length === 1\n ? (options.find(\n (option) => option.value === String(selectedValues[0]),\n )?.label ?? selectedValues[0])\n : selectedValues.length\n }`;\n\n return (\n \n \n \n \n \n {filter.label}\n {isFaceted && filter.searchable !== false ? (\n
    \n \n ) => {\n setFacetQuery(event.target.value);\n }}\n placeholder={filter.searchPlaceholder ?? labels.facetSearch(filter.label)}\n aria-label={labels.facetSearch(filter.label)}\n />\n \n \n \n \n
    \n ) : null}\n \n {filter.type === \"select\" || isBoolean || isFaceted ? (\n {\n onColumnFilterChange(filter.id, \"\");\n }}\n >\n {labels.allFilterOptions ??\n DATA_TABLE_DEFAULT_LABELS.allFilterOptions}\n \n ) : null}\n {visibleOptions.map((option) => (\n {\n if (filter.type === \"select\" || isBoolean) {\n onColumnFilterChange(\n filter.id,\n checked === true ? option.value : \"\",\n );\n return;\n }\n\n const nextValues = new Set(selectedValues);\n if (checked === true) {\n nextValues.add(option.value);\n } else {\n nextValues.delete(option.value);\n }\n onColumnFilterChange(filter.id, Array.from(nextValues));\n }}\n >\n {option.label}\n {option.count !== undefined ? (\n {option.count}\n ) : null}\n \n ))}\n \n
    \n
    \n );\n }\n}\n\nfunction hasColumnFilterValue(value: unknown) {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n\n if (value && typeof value === \"object\") {\n if (\"from\" in value || \"to\" in value) {\n return Object.values(value).some(hasColumnFilterValue);\n }\n\n return true;\n }\n\n return value !== undefined && value !== null && value !== \"\";\n}\n\nfunction normalizeToolbarRangeValue(value: unknown): {\n from?: number | string;\n to?: number | string;\n} {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return {};\n }\n\n const range = value as { from?: unknown; to?: unknown };\n return {\n ...(typeof range.from === \"number\" || typeof range.from === \"string\"\n ? { from: range.from }\n : {}),\n ...(typeof range.to === \"number\" || typeof range.to === \"string\"\n ? { to: range.to }\n : {}),\n };\n}\n\nfunction parseRangeInputValue(value: string, inputType: \"number\" | \"date\") {\n if (!value) {\n return undefined;\n }\n\n return inputType === \"number\" ? Number(value) : value;\n}\n","import * as React from \"react\";\nimport { DataTableTablePanel } from \"./data-table-table-panel\";\nimport type { DataTableTablePanelProps } from \"./data-table-table-panel\";\n\nconst LazyDataTableVirtualTablePanel = React.lazy(async () => {\n const module = await import(\"./data-table-virtual-table-panel\");\n return { default: module.DataTableVirtualTablePanel };\n}) as unknown as typeof DataTableTablePanel;\n\nexport function DataTableTablePanelRouter(\n props: DataTableTablePanelProps,\n) {\n const config =\n typeof props.virtualization === \"object\"\n ? props.virtualization\n : undefined;\n const enabled =\n props.virtualization === true || config?.enabled === true;\n\n if (!enabled) {\n return ;\n }\n\n return (\n \n }\n >\n \n \n );\n}\n","import type {\n DataTableSavedView,\n DataTableSavedViewSlice,\n DataTableSavedViewsChangeOperation,\n DataTableSavedViewsConfig,\n DataTableSavedViewsPayload,\n DataTableState,\n} from \"../types\";\n\nconst STORAGE_PREFIX = \"data-table-pro:saved-views:\";\nconst DEFAULT_VERSION = 1;\nconst DEFAULT_SLICES: Array = [\n \"sorting\",\n \"columnVisibility\",\n \"columnFilters\",\n \"grouping\",\n \"columnOrder\",\n \"columnPinning\",\n \"rowPinning\",\n \"columnSizing\",\n \"density\",\n \"viewMode\",\n \"showHiddenRows\",\n \"globalFilter\",\n];\nlet fallbackId = 0;\n\nexport function readDataTableSavedViews(\n config: DataTableSavedViewsConfig | undefined,\n): Array {\n const storage = resolveStorage(config);\n if (!config || !storage) {\n return [];\n }\n\n let serialized: string | null;\n try {\n serialized = storage.getItem(getStorageKey(config.key));\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return [];\n }\n if (!serialized) {\n return [];\n }\n\n let parsed: unknown;\n try {\n parsed = (config.deserialize ?? JSON.parse)(serialized);\n } catch (error) {\n config.onError?.({ error, operation: \"deserialize\" });\n return [];\n }\n\n if (!isRecord(parsed) || !(\"version\" in parsed) || !(\"views\" in parsed)) {\n return [];\n }\n\n const targetVersion = config.version ?? DEFAULT_VERSION;\n let candidate: unknown = parsed.views;\n if (parsed.version !== targetVersion) {\n if (!config.migrate) {\n return [];\n }\n try {\n candidate = config.migrate(\n { version: parsed.version, views: parsed.views },\n targetVersion,\n );\n } catch (error) {\n config.onError?.({ error, operation: \"migrate\" });\n return [];\n }\n }\n\n if (!Array.isArray(candidate)) {\n return [];\n }\n\n return candidate\n .map((view) => validateSavedView(view, config.slices))\n .filter((view): view is DataTableSavedView => Boolean(view));\n}\n\nexport function createDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n name: string,\n state: DataTableState,\n) {\n const normalizedName = name.trim();\n if (!config || !normalizedName) {\n return undefined;\n }\n\n const now = new Date().toISOString();\n const view: DataTableSavedView = {\n id: createSavedViewId(),\n name: normalizedName,\n createdAt: now,\n updatedAt: now,\n state: selectSavedViewSlices(state, config.slices),\n };\n const views = [...readDataTableSavedViews(config), view];\n return writeViews(config, views, \"create\") ? cloneSavedView(view) : undefined;\n}\n\nexport function renameDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n id: string,\n name: string,\n) {\n const normalizedName = name.trim();\n if (!config || !normalizedName) {\n return undefined;\n }\n\n let renamed: DataTableSavedView | undefined;\n const views = readDataTableSavedViews(config).map((view) => {\n if (view.id !== id) {\n return view;\n }\n renamed = {\n ...view,\n name: normalizedName,\n updatedAt: new Date().toISOString(),\n };\n return renamed;\n });\n if (!renamed) {\n return undefined;\n }\n\n return writeViews(config, views, \"rename\")\n ? cloneSavedView(renamed)\n : undefined;\n}\n\nexport function deleteDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n id: string,\n) {\n if (!config) {\n return false;\n }\n\n const current = readDataTableSavedViews(config);\n const views = current.filter((view) => view.id !== id);\n return views.length !== current.length && writeViews(config, views, \"delete\");\n}\n\nexport function clearDataTableSavedViews(\n config: DataTableSavedViewsConfig | undefined,\n) {\n const storage = resolveStorage(config);\n if (!config || !storage) {\n return false;\n }\n\n try {\n storage.removeItem(getStorageKey(config.key));\n } catch (error) {\n config.onError?.({ error, operation: \"remove\" });\n return false;\n }\n config.onChange?.([], \"clear\");\n return true;\n}\n\nfunction writeViews(\n config: DataTableSavedViewsConfig,\n views: Array,\n operation: DataTableSavedViewsChangeOperation,\n) {\n const storage = resolveStorage(config);\n if (!storage) {\n return false;\n }\n\n let serialized: string;\n try {\n const payload: DataTableSavedViewsPayload = {\n version: config.version ?? DEFAULT_VERSION,\n views,\n };\n serialized = (config.serialize ?? JSON.stringify)(payload);\n } catch (error) {\n config.onError?.({ error, operation: \"serialize\" });\n return false;\n }\n\n try {\n storage.setItem(getStorageKey(config.key), serialized);\n } catch (error) {\n config.onError?.({ error, operation: \"write\" });\n return false;\n }\n const snapshots = views.map(cloneSavedView);\n config.onChange?.(snapshots, operation);\n return true;\n}\n\nfunction selectSavedViewSlices(\n state: DataTableState,\n slices: Array | undefined,\n) {\n const selected = new Set(slices ?? DEFAULT_SLICES);\n const snapshot: Partial = {};\n for (const slice of Object.keys(state) as Array) {\n if (selected.has(slice)) {\n Object.assign(snapshot, {\n [slice]: cloneStateSlice(slice, state[slice]),\n });\n }\n }\n return snapshot;\n}\n\nfunction validateSavedView(\n value: unknown,\n slices: Array | undefined,\n): DataTableSavedView | undefined {\n if (\n !isRecord(value) ||\n typeof value.id !== \"string\" ||\n !value.id ||\n typeof value.name !== \"string\" ||\n !value.name.trim() ||\n typeof value.createdAt !== \"string\" ||\n typeof value.updatedAt !== \"string\"\n ) {\n return undefined;\n }\n\n return {\n id: value.id,\n name: value.name.trim(),\n createdAt: value.createdAt,\n updatedAt: value.updatedAt,\n state: validateState(value.state, slices),\n };\n}\n\nfunction validateState(\n value: unknown,\n slices: Array | undefined,\n) {\n if (!isRecord(value)) {\n return {};\n }\n\n const selected = new Set(slices ?? DEFAULT_SLICES);\n const state: Partial = {};\n const sorting = validateSorting(value.sorting);\n if (selected.has(\"sorting\") && sorting) state.sorting = sorting;\n const pagination = validatePagination(value.pagination);\n if (selected.has(\"pagination\") && pagination) state.pagination = pagination;\n const rowSelection = validateBooleanRecord(value.rowSelection);\n if (selected.has(\"rowSelection\") && rowSelection) {\n state.rowSelection = rowSelection;\n }\n const visibility = validateBooleanRecord(value.columnVisibility);\n if (selected.has(\"columnVisibility\") && visibility) {\n state.columnVisibility = visibility;\n }\n const filters = validateFilters(value.columnFilters);\n if (selected.has(\"columnFilters\") && filters) state.columnFilters = filters;\n const grouping = validateStringArray(value.grouping);\n if (selected.has(\"grouping\") && grouping) state.grouping = grouping;\n const expanded =\n value.expanded === true\n ? true\n : validateBooleanRecord(value.expanded);\n if (selected.has(\"expanded\") && expanded !== undefined) {\n state.expanded = expanded;\n }\n const order = validateStringArray(value.columnOrder);\n if (selected.has(\"columnOrder\") && order) state.columnOrder = order;\n const pinning = validatePinning(value.columnPinning);\n if (selected.has(\"columnPinning\") && pinning) {\n state.columnPinning = pinning;\n }\n const rowPinning = validateRowPinning(value.rowPinning);\n if (selected.has(\"rowPinning\") && rowPinning) {\n state.rowPinning = rowPinning;\n }\n const sizing = validateSizingRecord(value.columnSizing);\n if (selected.has(\"columnSizing\") && sizing) state.columnSizing = sizing;\n if (\n selected.has(\"density\") &&\n (value.density === \"compact\" ||\n value.density === \"comfortable\" ||\n value.density === \"spacious\")\n ) {\n state.density = value.density;\n }\n if (\n selected.has(\"viewMode\") &&\n (value.viewMode === \"table\" || value.viewMode === \"card\")\n ) {\n state.viewMode = value.viewMode;\n }\n if (selected.has(\"showHiddenRows\") && typeof value.showHiddenRows === \"boolean\") {\n state.showHiddenRows = value.showHiddenRows;\n }\n if (selected.has(\"globalFilter\") && typeof value.globalFilter === \"string\") {\n state.globalFilter = value.globalFilter;\n }\n return state;\n}\n\nfunction cloneSavedView(view: DataTableSavedView): DataTableSavedView {\n return {\n ...view,\n state: validateState(view.state, Object.keys(view.state) as Array),\n };\n}\n\nfunction cloneStateSlice(\n slice: DataTableSavedViewSlice,\n value: unknown,\n) {\n if (Array.isArray(value)) {\n return (value as Array).map((item) =>\n isRecord(item) ? { ...item } : item,\n );\n }\n if (isRecord(value)) {\n if (slice === \"columnPinning\" || slice === \"rowPinning\") {\n return {\n ...(slice === \"columnPinning\"\n ? {\n left: Array.isArray(value.left)\n ? [...(value.left as Array)]\n : undefined,\n right: Array.isArray(value.right)\n ? [...(value.right as Array)]\n : undefined,\n }\n : {\n top: Array.isArray(value.top)\n ? [...(value.top as Array)]\n : undefined,\n bottom: Array.isArray(value.bottom)\n ? [...(value.bottom as Array)]\n : undefined,\n }),\n };\n }\n return { ...value };\n }\n return value;\n}\n\nfunction validateSorting(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value\n .filter(\n (item): item is { id: string; desc?: boolean } =>\n isRecord(item) && typeof item.id === \"string\",\n )\n .map((item) => ({ id: item.id, desc: Boolean(item.desc) }));\n}\n\nfunction validatePagination(value: unknown) {\n if (\n !isRecord(value) ||\n !Number.isInteger(value.pageIndex) ||\n (value.pageIndex as number) < 0 ||\n !Number.isInteger(value.pageSize) ||\n (value.pageSize as number) < 1\n ) {\n return undefined;\n }\n return {\n pageIndex: value.pageIndex as number,\n pageSize: value.pageSize as number,\n };\n}\n\nfunction validateFilters(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value\n .filter(\n (item): item is { id: string; value: unknown } =>\n isRecord(item) &&\n typeof item.id === \"string\" &&\n Object.prototype.hasOwnProperty.call(item, \"value\"),\n )\n .map((item) => ({ id: item.id, value: item.value }));\n}\n\nfunction validatePinning(value: unknown) {\n if (!isRecord(value)) return undefined;\n return {\n left: validateStringArray(value.left) ?? [],\n right: validateStringArray(value.right) ?? [],\n };\n}\n\nfunction validateRowPinning(value: unknown) {\n if (!isRecord(value)) return undefined;\n return {\n top: validateStringArray(value.top) ?? [],\n bottom: validateStringArray(value.bottom) ?? [],\n };\n}\n\nfunction validateBooleanRecord(value: unknown) {\n if (!isRecord(value)) return undefined;\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, boolean] => typeof entry[1] === \"boolean\",\n ),\n );\n}\n\nfunction validateSizingRecord(value: unknown) {\n if (!isRecord(value)) return undefined;\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, number] =>\n typeof entry[1] === \"number\" &&\n Number.isFinite(entry[1]) &&\n entry[1] >= 0,\n ),\n );\n}\n\nfunction validateStringArray(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction resolveStorage(config: DataTableSavedViewsConfig | undefined) {\n if (!config) {\n return undefined;\n }\n if (config.storage) {\n return config.storage;\n }\n if (typeof window === \"undefined\") {\n return undefined;\n }\n try {\n return window.localStorage;\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return undefined;\n }\n}\n\nfunction createSavedViewId() {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n fallbackId += 1;\n return `view-${Date.now().toString(36)}-${fallbackId.toString(36)}`;\n}\n\nfunction getStorageKey(key: string) {\n return `${STORAGE_PREFIX}${key}`;\n}\n\nfunction isRecord(value: unknown): value is Record {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import * as React from \"react\";\nimport { IconDownload } from \"../icons\";\nimport type {\n ColumnFiltersState,\n ColumnPinningState,\n OnChangeFn,\n Table as TanStackTable,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnFixed,\n DataTableLabels,\n DataTableProps,\n} from \"../types\";\nimport {\n exportDataTableCsv,\n getAccessorKey,\n getColumnId,\n getDataTableLeafColumns,\n hasFilterValue,\n normalizeColumnFilterOptions,\n startCase,\n} from \"./data-table-utils\";\n\nexport function useDataTableToolbarFeatures({\n columns,\n currentColumnFilters,\n currentColumnPinning,\n effectiveColumnVisibility,\n enableColumnFilters,\n handleColumnFiltersChange,\n handleColumnPinningChange,\n labels,\n table,\n toolbarActions,\n visibleData,\n csvExport,\n}: {\n columns: DataTableProps[\"columns\"];\n currentColumnFilters: ColumnFiltersState;\n currentColumnPinning: ColumnPinningState;\n effectiveColumnVisibility: VisibilityState;\n enableColumnFilters: boolean | undefined;\n handleColumnFiltersChange: OnChangeFn;\n handleColumnPinningChange: OnChangeFn;\n labels: DataTableLabels;\n table: TanStackTable;\n toolbarActions: DataTableProps[\"toolbarActions\"];\n visibleData: Array;\n csvExport: DataTableProps[\"csvExport\"];\n}) {\n const columnVisibilityOptions = React.useMemo(() => {\n return getDataTableLeafColumns(columns).map(({ column, index }) => {\n const id = getColumnId(column, index);\n const header = column.header;\n const accessorKey = getAccessorKey(column);\n const label =\n typeof header === \"string\"\n ? header\n : accessorKey\n ? startCase(accessorKey)\n : startCase(id);\n\n const pinned: false | DataTableColumnFixed =\n currentColumnPinning.left?.includes(id) === true\n ? \"left\"\n : currentColumnPinning.right?.includes(id) === true\n ? \"right\"\n : false;\n\n return {\n id,\n label,\n visible: effectiveColumnVisibility[id] !== false,\n canHide: column.enableHiding !== false,\n pinned,\n };\n });\n }, [columns, currentColumnPinning, effectiveColumnVisibility]);\n\n const toolbarColumnFilters = React.useMemo(() => {\n if (enableColumnFilters === false) {\n return [];\n }\n\n return getDataTableLeafColumns(columns).flatMap(({ column, index }) => {\n const filter = column.meta?.filter;\n if (!filter) {\n return [];\n }\n\n const id = getColumnId(column, index);\n const header = column.header;\n const accessorKey = getAccessorKey(column);\n const label =\n filter.label ??\n (typeof header === \"string\"\n ? header\n : accessorKey\n ? startCase(accessorKey)\n : startCase(id));\n const state = currentColumnFilters.find((item) => item.id === id);\n const configuredFacetOptions = filter.faceting?.options;\n const facetedMinMax =\n filter.type === \"numberRange\"\n ? table.getColumn(id)?.getFacetedMinMaxValues()\n : undefined;\n const rawOptions =\n filter.type === \"faceted\" && configuredFacetOptions\n ? typeof configuredFacetOptions === \"function\"\n ? configuredFacetOptions({ rows: visibleData })\n : configuredFacetOptions\n : filter.type === \"faceted\"\n ? Array.from(table.getColumn(id)?.getFacetedUniqueValues() ?? []).map(\n ([value, count]) => ({\n label:\n filter.faceting?.getOptionLabel?.(value as never) ??\n String(value),\n value: String(value),\n count,\n }),\n )\n : typeof filter.options === \"function\"\n ? filter.options({ rows: visibleData })\n : (filter.options ?? []);\n\n return [\n {\n id,\n label,\n type: filter.type,\n value: state?.value,\n placeholder: filter.placeholder,\n options: normalizeColumnFilterOptions(rawOptions),\n searchable: filter.faceting?.searchable,\n searchPlaceholder: filter.faceting?.searchPlaceholder,\n trueLabel: filter.trueLabel,\n falseLabel: filter.falseLabel,\n min: filter.min ?? facetedMinMax?.[0],\n max: filter.max ?? facetedMinMax?.[1],\n step: filter.step,\n },\n ];\n });\n }, [\n columns,\n currentColumnFilters,\n enableColumnFilters,\n table,\n visibleData,\n ]);\n\n const handleToolbarColumnFilterChange = React.useCallback(\n (columnId: string, value: unknown) => {\n handleColumnFiltersChange((current) => {\n const next = current.filter((filter) => filter.id !== columnId);\n if (hasFilterValue(value)) {\n next.push({ id: columnId, value });\n }\n return next;\n });\n },\n [handleColumnFiltersChange],\n );\n\n const handleClearColumnFilters = React.useCallback(() => {\n handleColumnFiltersChange([]);\n }, [handleColumnFiltersChange]);\n\n const handleToolbarColumnPinningChange = React.useCallback(\n (columnId: string, side: DataTableColumnFixed | false) => {\n handleColumnPinningChange((current) => {\n const left = (current.left ?? []).filter((id) => id !== columnId);\n const right = (current.right ?? []).filter((id) => id !== columnId);\n\n if (side === \"left\") {\n left.push(columnId);\n }\n if (side === \"right\") {\n right.push(columnId);\n }\n\n return { left, right };\n });\n },\n [handleColumnPinningChange],\n );\n\n const handleCsvExport = React.useCallback(() => {\n if (!csvExport) {\n return;\n }\n\n return exportDataTableCsv({\n csvExport,\n table,\n labels,\n });\n }, [csvExport, labels, table]);\n\n const effectiveToolbarActions = React.useMemo(() => {\n if (!csvExport) {\n return toolbarActions ?? [];\n }\n\n return [\n ...(toolbarActions ?? []),\n {\n key: \"__csv_export__\",\n label: labels.exportCsv,\n icon: IconDownload,\n placement: \"trailing\" as const,\n onClick: handleCsvExport,\n },\n ];\n }, [csvExport, handleCsvExport, labels.exportCsv, toolbarActions]);\n\n return {\n columnVisibilityOptions,\n effectiveToolbarActions,\n handleClearColumnFilters,\n handleToolbarColumnFilterChange,\n handleToolbarColumnPinningChange,\n toolbarColumnFilters,\n };\n}\n","import * as React from \"react\";\nimport type { DataTableProps } from \"../types\";\n\n/** Development-only guardrails for identities used by row models and caches. */\nexport function useDataTablePerformanceDiagnostics({\n columns,\n data,\n getRowId,\n}: Pick, \"columns\" | \"data\" | \"getRowId\">) {\n const previous = React.useRef({ columns, data, getRowId });\n const warned = React.useRef(new Set());\n\n React.useEffect(() => {\n if (!isDevelopmentEnvironment()) {\n return;\n }\n\n const last = previous.current;\n if (\n last.data !== data &&\n haveSameItems(last.data, data) &&\n !warned.current.has(\"data\")\n ) {\n warn(\n warned.current,\n \"data\",\n \"The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused.\",\n );\n }\n if (\n last.columns !== columns &&\n haveSameItems(last.columns, columns) &&\n !warned.current.has(\"columns\")\n ) {\n warn(\n warned.current,\n \"columns\",\n \"The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused.\",\n );\n }\n if (last.getRowId !== getRowId && !warned.current.has(\"getRowId\")) {\n warn(\n warned.current,\n \"getRowId\",\n \"getRowId identity changed. Memoize it and return an immutable, unique id to preserve row state and virtual scroll anchoring.\",\n );\n }\n\n const ids = new Set();\n for (let index = 0; index < data.length; index += 1) {\n const id = getRowId(data[index]!, index);\n if (ids.has(id) && !warned.current.has(\"duplicate-row-id\")) {\n warn(\n warned.current,\n \"duplicate-row-id\",\n `Duplicate row id \"${id}\" detected. Row ids must be unique and immutable.`,\n );\n break;\n }\n ids.add(id);\n }\n previous.current = { columns, data, getRowId };\n }, [columns, data, getRowId]);\n}\n\nfunction haveSameItems(previous: Array, next: Array) {\n return (\n previous.length === next.length &&\n previous.every((item, index) => Object.is(item, next[index]))\n );\n}\n\nfunction warn(warned: Set, key: string, message: string) {\n warned.add(key);\n console.warn(`[data-table-pro] ${message}`);\n}\n\nfunction isDevelopmentEnvironment() {\n return (\n (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env\n ?.NODE_ENV !== \"production\"\n );\n}\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport type {\n Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableActionErrorContext,\n DataTableApi,\n DataTableCellSelection,\n DataTableLabels,\n DataTableProps,\n DataTableState,\n DataTableStateOverlay as DataTableStateOverlayConfig,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { createDataTableCardView } from \"./create-data-table-card-view\";\nimport { createDataTableEmptyState } from \"./create-data-table-empty-state\";\nimport { createDataTablePagination } from \"./create-data-table-pagination\";\nimport { createDataTableRowActions } from \"./create-data-table-row-actions\";\nimport { createDataTableToolbar } from \"./create-data-table-toolbar\";\nimport { DataTableCardPanel as DefaultDataTableCardPanel } from \"./data-table-card-panel\";\nimport { DataTableFooterSection } from \"./data-table-footer-section\";\nimport { DataTableTablePanelRouter as DefaultDataTableTablePanel } from \"./data-table-table-panel-router\";\nimport { DataTableToolbarSection } from \"./data-table-toolbar-section\";\nimport {\n clearDataTableSavedViews,\n createDataTableSavedView,\n deleteDataTableSavedView,\n readDataTableSavedViews,\n renameDataTableSavedView,\n} from \"./data-table-saved-views\";\nimport { resolveDataTableLabels } from \"./data-table-labels\";\nimport { useDataTableColumns } from \"./use-data-table-columns\";\nimport { useControllableState } from \"./use-controllable-state\";\nimport { useDataTableInstance } from \"./use-data-table-instance\";\nimport { useDataTableScrollViewport } from \"./use-data-table-scroll-viewport\";\nimport {\n exportDataTableCsv,\n getColumnId,\n getDataTableColumnGroupPaths,\n getDataTableLeafColumns,\n getInitialColumnPinning,\n hasExplicitDataTableColumnSize,\n validateDataTableColumnIds,\n} from \"./data-table-utils\";\nimport { useDataTableState } from \"./use-data-table-state\";\nimport { clearDataTableColumnPrefs } from \"./use-data-table-column-prefs\";\nimport { useDataTableToolbarFeatures } from \"./use-data-table-toolbar-features\";\nimport { useColumnLayout } from \"./use-column-layout\";\nimport { useRowEditing } from \"./use-row-editing\";\nimport { useDataTablePerformanceDiagnostics } from \"./use-data-table-performance-diagnostics\";\n\nconst DataTableAutoPageSize = React.lazy(\n () => import(\"./data-table-auto-page-size\"),\n);\n\ntype CreateDataTableOptions = {\n CardPanel?: typeof DefaultDataTableCardPanel;\n TablePanel?: typeof DefaultDataTableTablePanel;\n};\n\nexport function createDataTable(ui: DataTableUiKit) {\n return createDataTableWithPanels(ui);\n}\n\nexport function createDataTableWithPanels(\n ui: DataTableUiKit,\n options: CreateDataTableOptions = {},\n) {\n const DataTableCardPanel =\n options.CardPanel ?? DefaultDataTableCardPanel;\n const DataTableTablePanel =\n options.TablePanel ?? DefaultDataTableTablePanel;\n const uiClassNames = ui.classNames ?? {};\n const {\n rootClassName,\n Button,\n Checkbox,\n Input,\n ScrollArea,\n ScrollBar,\n Skeleton,\n Table,\n TableBody,\n TableCell,\n TableFooter = \"tfoot\",\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider = React.Fragment,\n TooltipTrigger,\n } = ui;\n const DataTableEmptyState = createDataTableEmptyState(ui);\n const DataTableRowActions = createDataTableRowActions(ui);\n const { DataTableFooter } = createDataTablePagination(ui);\n const DataTableToolbar = createDataTableToolbar(ui);\n const DataTableCardView = createDataTableCardView(ui, DataTableRowActions);\n const DataTableStateOverlay = React.lazy(async () => {\n const { createDataTableStateOverlay } = await import(\n \"./data-table-state-overlay\"\n );\n return { default: createDataTableStateOverlay(ui) };\n }) as unknown as (props: {\n labels: DataTableLabels;\n overlay: DataTableStateOverlayConfig;\n rows: Array;\n toolbarQueryValue: string;\n }) => React.ReactElement | null;\n const defaultColumn = {\n minSize: 80,\n size: 180,\n maxSize: 720,\n };\n\n return function DataTable({\n columns,\n data,\n getRowId,\n children,\n title,\n description,\n toolbarQueryValue,\n onToolbarQueryValueChange,\n toolbarQueryPlaceholder,\n toolbarQueryDebounceMs,\n manualFiltering = false,\n enableToolbarQueryFiltering = true,\n globalFilterFn,\n columnFilters,\n onColumnFiltersChange,\n enableColumnFilters,\n customToolbar,\n compactToolbar,\n rowsPerPageOptions = [10, 20, 50, 100],\n totalRowCount,\n hasNextPage,\n sorting,\n onSortingChange,\n manualSorting = false,\n grouping,\n onGroupingChange,\n manualGrouping = false,\n enableGrouping = false,\n groupedColumnMode = \"reorder\",\n aggregationFns,\n pageIndex,\n pageSize,\n autoPageSize = false,\n onPageIndexChange,\n onPageSizeChange,\n pageCount,\n manualPagination = false,\n rowSelection,\n onRowSelectionChange,\n enableRowSelection = false,\n enableMultiRowSelection = true,\n enableSubRowSelection = true,\n getRowCanSelect,\n rowSelectionSelectAllScope = \"page\",\n expanded,\n onExpandedChange,\n getSubRows,\n manualExpanding = false,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n detailPanel,\n getRowCanExpand,\n renderExpandedRow,\n columnOrder,\n onColumnOrderChange,\n enableColumnReordering = false,\n columnGroupHeaderHeight,\n columnPinning,\n onColumnPinningChange,\n enableColumnPinning = false,\n rowPinning,\n onRowPinningChange,\n enableRowPinning = false,\n keepPinnedRows = true,\n toolbarActions = [],\n selectionActions = [],\n rowActions = [],\n csvExport,\n clipboard,\n enableCellSelection = false,\n cellSelection,\n defaultCellSelection,\n onCellSelectionChange,\n gridCommands,\n density,\n onDensityChange,\n enableDensityToggle = false,\n columnPrefsKey,\n persistence,\n savedViews,\n toolbarDataOperations,\n initialState,\n state: unifiedState,\n onStateChange,\n apiRef,\n labels,\n summaryRows = [],\n cardRenderer,\n cardSizing,\n cardGridClassName,\n cardClassName,\n viewMode,\n onViewModeChange,\n enableViewToggle = false,\n enablePrint = false,\n enableFullscreen = false,\n emptyState,\n stateOverlay,\n isLoading = false,\n loadingRowCount,\n getRowLoadingState,\n hiddenRows,\n showHiddenRows,\n onShowHiddenRowsChange,\n infiniteScroll,\n editableRows,\n columnVisibility,\n onColumnVisibilityChange,\n columnSizing,\n onColumnSizingChange,\n enableColumnResizing = false,\n columnResizeMode = \"onEnd\",\n layoutMode = \"fill\",\n stickyHeader = true,\n scrollbarVisibility,\n showFooter = true,\n showToolbar = true,\n dir = \"ltr\",\n flexGrow = true,\n toolbarVisibility,\n className,\n tableClassName,\n tableContainerClassName,\n stripedRows = false,\n getRowClassName,\n onRowClick,\n onActionError,\n dragAndDrop,\n fileUpload,\n virtualization,\n accessibility,\n interactiveGrid,\n }: DataTableProps) {\n const containerRef = React.useRef(null);\n const fileInputRef = React.useRef(null);\n const tableScrollContainerRef = React.useRef(null);\n const draggedColumnIdRef = React.useRef(null);\n const tableRef = React.useRef | null>(null);\n const lastSelectedRowIdRef = React.useRef(null);\n const [toolbarSavedViewsVersion, setToolbarSavedViewsVersion] =\n React.useState(0);\n const generatedTitleId = React.useId();\n const generatedDescriptionId = React.useId();\n useDataTablePerformanceDiagnostics({ columns, data, getRowId });\n React.useMemo(() => validateDataTableColumnIds(columns), [columns]);\n const resolvedLabels = React.useMemo(\n () => resolveDataTableLabels(labels),\n [labels],\n );\n const toolbarOperations =\n toolbarDataOperations === true\n ? { columnChooser: true, savedViews: true, resetLayout: true }\n : toolbarDataOperations === false\n ? {}\n : (toolbarDataOperations ?? {});\n const gridMode =\n accessibility?.mode === \"grid\" ||\n interactiveGrid === true ||\n typeof interactiveGrid === \"object\";\n const [currentCellSelection, setCurrentCellSelection] =\n useControllableState({\n defaultValue: defaultCellSelection ?? null,\n onChange: onCellSelectionChange,\n value: cellSelection,\n });\n const resolvedToolbarQueryValue =\n toolbarQueryValue ?? unifiedState?.globalFilter;\n const resolvedSorting = sorting ?? unifiedState?.sorting;\n const resolvedGrouping = grouping ?? unifiedState?.grouping;\n const resolvedPageIndex =\n pageIndex ?? unifiedState?.pagination?.pageIndex;\n const resolvedPageSize = pageSize ?? unifiedState?.pagination?.pageSize;\n const resolvedRowSelection =\n rowSelection ?? unifiedState?.rowSelection;\n const resolvedColumnVisibility =\n columnVisibility ?? unifiedState?.columnVisibility;\n const resolvedColumnFilters =\n columnFilters ?? unifiedState?.columnFilters;\n const resolvedExpanded = expanded ?? unifiedState?.expanded;\n const resolvedColumnOrder =\n columnOrder ?? unifiedState?.columnOrder;\n const resolvedColumnPinning =\n columnPinning ?? unifiedState?.columnPinning;\n const resolvedRowPinning = rowPinning ?? unifiedState?.rowPinning;\n const resolvedColumnSizing =\n columnSizing ?? unifiedState?.columnSizing;\n const resolvedDensity = density ?? unifiedState?.density;\n const resolvedViewMode = viewMode ?? unifiedState?.viewMode;\n const resolvedShowHiddenRows =\n showHiddenRows ?? unifiedState?.showHiddenRows;\n const showTableHeading =\n showToolbar && (toolbarVisibility?.title ?? true);\n const titleId = showTableHeading && title ? generatedTitleId : undefined;\n const descriptionId =\n showTableHeading && description ? generatedDescriptionId : undefined;\n useDataTableStateConflictWarnings(unifiedState, {\n columnFilters: columnFilters !== undefined,\n columnOrder: columnOrder !== undefined,\n columnPinning: columnPinning !== undefined,\n rowPinning: rowPinning !== undefined,\n columnSizing: columnSizing !== undefined,\n columnVisibility: columnVisibility !== undefined,\n density: density !== undefined,\n expanded: expanded !== undefined,\n grouping: grouping !== undefined,\n globalFilter: toolbarQueryValue !== undefined,\n pagination: pageIndex !== undefined || pageSize !== undefined,\n rowSelection: rowSelection !== undefined,\n showHiddenRows: showHiddenRows !== undefined,\n sorting: sorting !== undefined,\n viewMode: viewMode !== undefined,\n });\n const handleToolbarQueryValueChange = useDataTableStateSliceChange(\n \"globalFilter\",\n onToolbarQueryValueChange,\n onStateChange,\n );\n const handleSortingPropChange = useDataTableStateSliceChange(\n \"sorting\",\n onSortingChange,\n onStateChange,\n );\n const handleGroupingPropChange = useDataTableStateSliceChange(\n \"grouping\",\n onGroupingChange,\n onStateChange,\n );\n const handleRowSelectionPropChange = useDataTableStateSliceChange(\n \"rowSelection\",\n onRowSelectionChange,\n onStateChange,\n );\n const handleColumnVisibilityPropChange = useDataTableStateSliceChange(\n \"columnVisibility\",\n onColumnVisibilityChange,\n onStateChange,\n );\n const handleColumnFiltersPropChange = useDataTableStateSliceChange(\n \"columnFilters\",\n onColumnFiltersChange,\n onStateChange,\n );\n const handleExpandedPropChange = useDataTableStateSliceChange(\n \"expanded\",\n onExpandedChange,\n onStateChange,\n );\n const handleColumnOrderPropChange = useDataTableStateSliceChange(\n \"columnOrder\",\n onColumnOrderChange,\n onStateChange,\n );\n const handleColumnPinningPropChange = useDataTableStateSliceChange(\n \"columnPinning\",\n onColumnPinningChange,\n onStateChange,\n );\n const handleRowPinningPropChange = useDataTableStateSliceChange(\n \"rowPinning\",\n onRowPinningChange,\n onStateChange,\n );\n const handleColumnSizingPropChange = useDataTableStateSliceChange(\n \"columnSizing\",\n onColumnSizingChange,\n onStateChange,\n );\n const handleDensityPropChange = useDataTableStateSliceChange(\n \"density\",\n onDensityChange,\n onStateChange,\n );\n const handleViewModePropChange = useDataTableStateSliceChange(\n \"viewMode\",\n onViewModeChange,\n onStateChange,\n );\n const handleShowHiddenRowsPropChange = useDataTableStateSliceChange(\n \"showHiddenRows\",\n onShowHiddenRowsChange,\n onStateChange,\n );\n const handlePageIndexPropChange = React.useCallback(\n (nextPageIndex: number) => {\n onPageIndexChange?.(nextPageIndex);\n onStateChange?.((current) => ({\n ...current,\n pagination: {\n pageIndex: nextPageIndex,\n pageSize:\n resolvedPageSize ?? current.pagination.pageSize,\n },\n }));\n },\n [onPageIndexChange, onStateChange, resolvedPageSize],\n );\n const handlePageSizePropChange = React.useCallback(\n (nextPageSize: number) => {\n onPageSizeChange?.(nextPageSize);\n onStateChange?.((current) => ({\n ...current,\n pagination: {\n pageIndex:\n resolvedPageIndex ?? current.pagination.pageIndex,\n pageSize: nextPageSize,\n },\n }));\n },\n [onPageSizeChange, onStateChange, resolvedPageIndex],\n );\n const runAction = React.useCallback(\n (\n context: Omit, \"error\">,\n action: () => void | Promise,\n ) => {\n runDataTableAction(action, context, onActionError);\n },\n [onActionError],\n );\n const guardedRowActions = React.useMemo(\n () =>\n rowActions.map((action) => ({\n ...action,\n onClick: (row: TData) => {\n runAction(\n {\n actionKey: action.key,\n row,\n source: \"rowAction\",\n },\n () => action.onClick(row),\n );\n },\n })),\n [rowActions, runAction],\n );\n const guardedOnRowClick = React.useMemo<\n DataTableProps[\"onRowClick\"]\n >(\n () =>\n onRowClick\n ? (context) => {\n runAction(\n {\n row: context.row,\n source: \"rowClick\",\n },\n () => onRowClick(context),\n );\n }\n : undefined,\n [onRowClick, runAction],\n );\n const handleEditError = React.useCallback(\n (error: unknown, row: TData) => {\n onActionError?.({\n error,\n row,\n source: \"edit\",\n });\n },\n [onActionError],\n );\n const {\n containerWidth,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n effectiveColumnVisibility,\n globalFilterValue,\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n localSearchValue,\n resolvedLoadingRowCount,\n resolvedToolbarQueryPlaceholder,\n selectedRowIds,\n selectedRows,\n setCurrentColumnFilters,\n setCurrentColumnOrder,\n setCurrentColumnPinning,\n setCurrentRowPinning,\n setCurrentColumnVisibility,\n setCurrentExpanded,\n setCurrentGrouping,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n setLocalSearchValue,\n shouldRenderInitialLoading,\n tableData,\n tableGetRowId,\n visibleData,\n } = useDataTableState({\n columnFilters: resolvedColumnFilters,\n columnOrder: resolvedColumnOrder,\n columnPinning: resolvedColumnPinning,\n rowPinning: resolvedRowPinning,\n columnSizing: resolvedColumnSizing,\n columnPrefsKey,\n persistence,\n columnVisibility: resolvedColumnVisibility,\n columns,\n containerRef,\n data,\n density: resolvedDensity,\n enableRowSelection,\n enableToolbarQueryFiltering,\n expanded: resolvedExpanded,\n grouping: resolvedGrouping,\n getSubRows,\n getRowId,\n hiddenRows,\n isLoading,\n loadingRowCount,\n manualFiltering,\n initialState,\n onColumnFiltersChange: handleColumnFiltersPropChange,\n onColumnOrderChange: handleColumnOrderPropChange,\n onColumnPinningChange: handleColumnPinningPropChange,\n onRowPinningChange: handleRowPinningPropChange,\n onColumnSizingChange: handleColumnSizingPropChange,\n onColumnVisibilityChange: handleColumnVisibilityPropChange,\n onDensityChange: handleDensityPropChange,\n onExpandedChange: handleExpandedPropChange,\n onGroupingChange: handleGroupingPropChange,\n onPageIndexChange: handlePageIndexPropChange,\n onRowSelectionChange: handleRowSelectionPropChange,\n onShowHiddenRowsChange: handleShowHiddenRowsPropChange,\n onSortingChange: handleSortingPropChange,\n onToolbarQueryValueChange: handleToolbarQueryValueChange,\n onViewModeChange: handleViewModePropChange,\n pageIndex: resolvedPageIndex,\n pageSize: resolvedPageSize,\n resolvedLabels,\n rowSelection: resolvedRowSelection,\n rowsPerPageOptions,\n selectionActions,\n showHiddenRows: resolvedShowHiddenRows,\n sorting: resolvedSorting,\n toolbarQueryDebounceMs,\n toolbarQueryPlaceholder,\n toolbarQueryValue: resolvedToolbarQueryValue,\n viewMode: resolvedViewMode,\n });\n const usesLegacyDetailPanelState = Boolean(\n renderExpandedRow && !detailPanel && !getSubRows,\n );\n const resolvedDetailPanel =\n detailPanel ??\n (renderExpandedRow\n ? {\n getRowCanExpand: getSubRows ? undefined : getRowCanExpand,\n render: renderExpandedRow,\n }\n : undefined);\n const [currentDetailExpanded, setCurrentDetailExpanded] =\n useControllableState({\n defaultValue: () =>\n usesLegacyDetailPanelState ? (initialState?.expanded ?? {}) : {},\n onChange: usesLegacyDetailPanelState\n ? setCurrentExpanded\n : resolvedDetailPanel?.onExpandedChange,\n value: usesLegacyDetailPanelState\n ? currentExpanded\n : resolvedDetailPanel?.expanded,\n });\n const {\n cancelEditing,\n clearEditError,\n draftValues,\n editErrors,\n editingRowId,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n setDraftValues,\n setEditingRowId,\n startEditingRow,\n } = useRowEditing({\n columns,\n editableRows,\n onError: handleEditError,\n });\n const rowEditingContext = React.useMemo(\n () => ({\n cancel: cancelEditing,\n cancelOnEscape: editableRows?.cancelOnEscape !== false,\n clearError: clearEditError,\n commit: (row: TData) => {\n void saveEdit(row);\n },\n commitOnEnter: editableRows?.commitOnEnter !== false,\n errors: editErrors,\n isDirty: isEditDirty,\n isPending: isSavingEdit,\n }),\n [\n cancelEditing,\n clearEditError,\n editableRows?.cancelOnEscape,\n editableRows?.commitOnEnter,\n editErrors,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n ],\n );\n const { viewportElement: tableScrollElement, viewportHeight } =\n useDataTableScrollViewport(tableScrollContainerRef, currentViewMode);\n const autoPageSizeConfig =\n typeof autoPageSize === \"object\" ? autoPageSize : undefined;\n const handleAutoPageSizeChange = React.useCallback(\n (nextPageSize: number) => {\n if (nextPageSize === currentPagination.pageSize) {\n return;\n }\n if (currentPagination.pageIndex !== 0) {\n handlePageIndexPropChange(0);\n }\n handlePageSizePropChange(nextPageSize);\n if (resolvedPageSize === undefined) {\n setLocalPagination({ pageIndex: 0, pageSize: nextPageSize });\n }\n },\n [\n currentPagination.pageIndex,\n currentPagination.pageSize,\n handlePageIndexPropChange,\n handlePageSizePropChange,\n resolvedPageSize,\n setLocalPagination,\n ],\n );\n const autoPageSizeEnabled =\n autoPageSize === true || autoPageSizeConfig !== undefined;\n const print = React.useCallback(() => {\n if (typeof window === \"undefined\" || typeof window.print !== \"function\") {\n return false;\n }\n window.print();\n return true;\n }, []);\n const toggleFullscreen = React.useCallback(async () => {\n const element = containerRef.current;\n if (!element || typeof document === \"undefined\") {\n return false;\n }\n if (document.fullscreenElement) {\n if (typeof document.exitFullscreen !== \"function\") return false;\n await document.exitFullscreen();\n return true;\n }\n if (typeof element.requestFullscreen !== \"function\") return false;\n await element.requestFullscreen();\n return true;\n }, []);\n const [isFullscreen, setIsFullscreen] = React.useState(false);\n React.useEffect(() => {\n if (!enableFullscreen || typeof document === \"undefined\") return;\n const update = () => {\n setIsFullscreen(document.fullscreenElement === containerRef.current);\n };\n update();\n document.addEventListener(\"fullscreenchange\", update);\n return () => document.removeEventListener(\"fullscreenchange\", update);\n }, [enableFullscreen]);\n const openFileDialog = React.useCallback(() => {\n if (fileUpload?.disabled) {\n return;\n }\n\n fileInputRef.current?.click();\n }, [fileUpload?.disabled]);\n const handleSelectedFiles = React.useCallback(\n (files: FileList | Array) => {\n runAction(\n {\n source: \"fileUpload\",\n },\n () => fileUpload?.onFilesSelected(files),\n );\n },\n [fileUpload, runAction],\n );\n\n const includeFillSpacer = React.useMemo(() => {\n if (layoutMode !== \"fill\") {\n return false;\n }\n\n const visibleDataColumns = getDataTableLeafColumns(columns).filter(\n ({ column, index }) =>\n effectiveColumnVisibility[getColumnId(column, index)] !== false,\n );\n\n return (\n visibleDataColumns.length > 0 &&\n visibleDataColumns.every(({ column, index }) => {\n const columnId = getColumnId(column, index);\n return (\n hasExplicitDataTableColumnSize(column) ||\n Object.prototype.hasOwnProperty.call(\n currentColumnSizing,\n columnId,\n )\n );\n })\n );\n }, [\n columns,\n currentColumnSizing,\n effectiveColumnVisibility,\n layoutMode,\n ]);\n const tableColumns = useDataTableColumns({\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n editErrors,\n editingRowId,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion: Boolean(getSubRows),\n isSavingEdit,\n isEditDirty,\n includeFillSpacer,\n labels: resolvedLabels,\n lastSelectedRowIdRef,\n detailPanel: resolvedDetailPanel,\n detailExpanded: currentDetailExpanded,\n onDetailExpandedChange: setCurrentDetailExpanded,\n rowSelectionSelectAllScope,\n rowActions: guardedRowActions,\n saveEdit,\n startEditingRow,\n tableRef,\n });\n const columnGroupPaths = React.useMemo(\n () => getDataTableColumnGroupPaths(columns),\n [columns],\n );\n\n const {\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n isPageCountKnown,\n renderedRows,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n rowsToRender,\n sentinelRef,\n table,\n virtualPaddingBottom,\n virtualPaddingTop,\n visibleLeafColumns,\n } = useDataTableInstance({\n autoResetPageIndex: false,\n columnGroupPaths,\n columnResizeMode,\n dir,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n currentViewMode,\n defaultColumn,\n effectiveColumnVisibility,\n enableColumnResizing,\n enableRowPinning,\n enableRowSelection,\n enableMultiRowSelection,\n enableSubRowSelection,\n getRowCanSelect,\n getRowCanExpand,\n getSubRows,\n aggregationFns,\n groupedColumnMode,\n globalFilterFn,\n globalFilterValue,\n hasNextPage,\n handleColumnFiltersChange: setCurrentColumnFilters,\n handleColumnOrderChange: setCurrentColumnOrder,\n handleColumnPinningChange: setCurrentColumnPinning,\n handleRowPinningChange: setCurrentRowPinning,\n handleColumnVisibilityChange: setCurrentColumnVisibility,\n handleExpandedChange: setCurrentExpanded,\n handleGroupingChange: setCurrentGrouping,\n infiniteScroll,\n keepPinnedRows,\n manualFiltering,\n manualGrouping,\n manualExpanding,\n manualPagination,\n manualSorting,\n onActionError,\n onPageIndexChange: handlePageIndexPropChange,\n onPageSizeChange: handlePageSizePropChange,\n pageCount,\n pageIndex: resolvedPageIndex,\n pageSize: resolvedPageSize,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n shouldRenderInitialLoading,\n tableColumns,\n tableData,\n tableGetRowId,\n tableRef,\n tableScrollElement,\n totalRowCount,\n virtualization,\n viewportHeight,\n });\n const columnLayout = useColumnLayout({\n columns,\n columnSizing: currentColumnSizing,\n editableRows: Boolean(editableRows),\n enableRowSelection,\n hasRowActions: rowActions.length > 0,\n hasRowExpansion: Boolean(getSubRows || resolvedDetailPanel),\n layoutMode,\n uiClassNames,\n visibleLeafColumns,\n });\n const { explicitlySizedColumnIds, fillMinWidth, getColumnLayout } =\n columnLayout;\n const explicitCustomCellColumnIds = React.useMemo(() => {\n return new Set(\n getDataTableLeafColumns(columns).flatMap(({ column, index }) => {\n return Object.prototype.hasOwnProperty.call(column, \"cell\") &&\n typeof column.cell === \"function\"\n ? [getColumnId(column, index)]\n : [];\n }),\n );\n }, [columns]);\n const visibleLeafColumnCount = visibleLeafColumns.length;\n const bodyRowComponents = React.useMemo(\n () => ({\n Checkbox,\n Input,\n Skeleton,\n TableCell,\n TableRow,\n }),\n [],\n );\n const hasCardTitle = React.useMemo(\n () =>\n getDataTableLeafColumns(columns).some(\n ({ column }) => column.meta?.cardTitle,\n ),\n [columns],\n );\n const primeColumnForResize = React.useCallback(\n (columnId: string, currentSize: number) => {\n if (\n explicitlySizedColumnIds.has(columnId) ||\n Object.prototype.hasOwnProperty.call(\n table.getState().columnSizing,\n columnId,\n )\n ) {\n return;\n }\n\n flushSync(() => {\n table.setColumnSizing((current) => ({\n ...current,\n [columnId]: currentSize,\n }));\n });\n },\n [explicitlySizedColumnIds, table],\n );\n const resetColumnSize = React.useCallback(\n (columnId: string) => {\n if (explicitlySizedColumnIds.has(columnId)) {\n table.getColumn(columnId)?.resetSize();\n return;\n }\n\n table.setColumnSizing((current) => {\n if (!Object.prototype.hasOwnProperty.call(current, columnId)) {\n return current;\n }\n\n const next = { ...current };\n delete next[columnId];\n return next;\n });\n },\n [explicitlySizedColumnIds, table],\n );\n\n const filteredData = table\n .getFilteredRowModel()\n .rows.map((row) => row.original);\n const configuredEmptyState = stateOverlay?.empty ?? emptyState;\n const emptyNode =\n typeof configuredEmptyState === \"function\"\n ? configuredEmptyState({\n rows: filteredData,\n toolbarQueryValue: localSearchValue,\n })\n : configuredEmptyState;\n const guardedStateOverlay = React.useMemo(\n () =>\n stateOverlay\n ? {\n ...stateOverlay,\n onRetry: stateOverlay.onRetry\n ? () =>\n runAction(\n { source: \"retry\" },\n stateOverlay.onRetry!,\n )\n : undefined,\n }\n : undefined,\n [runAction, stateOverlay],\n );\n const stateOverlayNode = guardedStateOverlay?.error != null ? (\n \n \n \n ) : undefined;\n const {\n columnVisibilityOptions,\n effectiveToolbarActions,\n handleClearColumnFilters,\n handleToolbarColumnFilterChange,\n handleToolbarColumnPinningChange,\n toolbarColumnFilters,\n } = useDataTableToolbarFeatures({\n columns,\n currentColumnFilters,\n currentColumnPinning,\n csvExport,\n effectiveColumnVisibility,\n enableColumnFilters,\n handleColumnFiltersChange: setCurrentColumnFilters,\n handleColumnPinningChange: setCurrentColumnPinning,\n labels: resolvedLabels,\n table,\n toolbarActions,\n visibleData,\n });\n const guardedToolbarActions = React.useMemo(\n () =>\n [\n ...effectiveToolbarActions,\n ...(enablePrint\n ? [\n {\n key: \"__print__\",\n label: resolvedLabels.print,\n placement: \"trailing\" as const,\n onClick: () => {\n print();\n },\n },\n ]\n : []),\n ...(enableFullscreen\n ? [\n {\n key: \"__fullscreen__\",\n label: isFullscreen\n ? resolvedLabels.exitFullscreen\n : resolvedLabels.enterFullscreen,\n placement: \"trailing\" as const,\n onClick: () => toggleFullscreen(),\n },\n ]\n : []),\n ].map((action) => ({\n ...action,\n onClick: (context: {\n rows: Array;\n openFileDialog?: () => void;\n }) => {\n runAction(\n {\n actionKey: action.key,\n source: \"toolbarAction\",\n },\n () => action.onClick(context),\n );\n },\n })),\n [\n effectiveToolbarActions,\n enableFullscreen,\n enablePrint,\n isFullscreen,\n print,\n resolvedLabels.enterFullscreen,\n resolvedLabels.exitFullscreen,\n resolvedLabels.print,\n runAction,\n toggleFullscreen,\n ],\n );\n const guardedSelectionActions = React.useMemo(\n () =>\n selectionActions.map((action) => ({\n ...action,\n onClick: (context: Parameters[0]) => {\n runAction(\n {\n actionKey: action.key,\n source: \"selectionAction\",\n },\n () => action.onClick(context),\n );\n },\n })),\n [runAction, selectionActions],\n );\n const currentDataTableState = React.useMemo(\n () => ({\n sorting: currentSorting,\n pagination: currentPagination,\n rowSelection: currentRowSelection,\n columnVisibility: currentColumnVisibility,\n columnFilters: currentColumnFilters,\n expanded: currentExpanded,\n grouping: currentGrouping,\n columnOrder: currentColumnOrder,\n columnPinning: currentColumnPinning,\n rowPinning: currentRowPinning,\n columnSizing: currentColumnSizing,\n density: currentDensity,\n viewMode: currentViewMode,\n showHiddenRows: currentShowHiddenRows,\n globalFilter: localSearchValue,\n }),\n [\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n localSearchValue,\n ],\n );\n const getCurrentState = React.useCallback(\n () => cloneDataTableState(currentDataTableState),\n [currentDataTableState],\n );\n const restoreState = React.useCallback(\n (nextState: Partial) => {\n if (nextState.sorting !== undefined) {\n table.setSorting(nextState.sorting);\n }\n if (nextState.pagination !== undefined) {\n table.setPagination(nextState.pagination);\n }\n if (nextState.rowSelection !== undefined) {\n table.setRowSelection(nextState.rowSelection);\n }\n if (nextState.columnVisibility !== undefined) {\n table.setColumnVisibility(nextState.columnVisibility);\n }\n if (nextState.columnFilters !== undefined) {\n table.setColumnFilters(nextState.columnFilters);\n }\n if (nextState.expanded !== undefined) {\n table.setExpanded(nextState.expanded);\n }\n if (nextState.grouping !== undefined) {\n table.setGrouping(nextState.grouping);\n }\n if (nextState.columnOrder !== undefined) {\n table.setColumnOrder(nextState.columnOrder);\n }\n if (nextState.columnPinning !== undefined) {\n table.setColumnPinning(nextState.columnPinning);\n }\n if (nextState.rowPinning !== undefined) {\n table.setRowPinning(nextState.rowPinning);\n }\n if (nextState.columnSizing !== undefined) {\n table.setColumnSizing(nextState.columnSizing);\n }\n if (nextState.density !== undefined) {\n handleDensityChange(nextState.density);\n }\n if (nextState.viewMode !== undefined) {\n handleViewModeChange(nextState.viewMode);\n }\n if (nextState.showHiddenRows !== undefined) {\n handleShowHiddenRowsChange(nextState.showHiddenRows);\n }\n if (nextState.globalFilter !== undefined) {\n setLocalSearchValue(nextState.globalFilter);\n }\n },\n [\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n setLocalSearchValue,\n table,\n ],\n );\n const clearPersistedState = React.useCallback(\n () => clearDataTableColumnPrefs(persistence ?? columnPrefsKey),\n [columnPrefsKey, persistence],\n );\n const resetColumnLayout = React.useCallback<\n DataTableApi[\"resetColumnLayout\"]\n >(\n (options) => {\n if (options?.clearPersistence) {\n clearPersistedState();\n }\n restoreState({\n columnVisibility: initialState?.columnVisibility ?? {},\n columnOrder: initialState?.columnOrder ?? [],\n columnPinning:\n initialState?.columnPinning ?? getInitialColumnPinning(columns),\n rowPinning: initialState?.rowPinning ?? { top: [], bottom: [] },\n columnSizing: initialState?.columnSizing ?? {},\n });\n },\n [\n clearPersistedState,\n columns,\n initialState,\n restoreState,\n ],\n );\n const resetState = React.useCallback[\"resetState\"]>(\n (options) => {\n if (options?.clearPersistence) {\n clearPersistedState();\n }\n restoreState({\n sorting: initialState?.sorting ?? [],\n pagination: initialState?.pagination ?? {\n pageIndex: 0,\n pageSize: rowsPerPageOptions[0] ?? 20,\n },\n rowSelection: initialState?.rowSelection ?? {},\n columnVisibility: initialState?.columnVisibility ?? {},\n columnFilters: initialState?.columnFilters ?? [],\n expanded: initialState?.expanded ?? {},\n grouping: initialState?.grouping ?? [],\n columnOrder: initialState?.columnOrder ?? [],\n columnPinning:\n initialState?.columnPinning ?? getInitialColumnPinning(columns),\n rowPinning: initialState?.rowPinning ?? { top: [], bottom: [] },\n columnSizing: initialState?.columnSizing ?? {},\n density: initialState?.density ?? \"comfortable\",\n viewMode: initialState?.viewMode ?? \"table\",\n showHiddenRows: initialState?.showHiddenRows ?? false,\n globalFilter: initialState?.globalFilter ?? \"\",\n });\n },\n [\n clearPersistedState,\n columns,\n initialState,\n restoreState,\n rowsPerPageOptions,\n ],\n );\n const getSavedViews = React.useCallback(\n () => readDataTableSavedViews(savedViews),\n [savedViews],\n );\n const createSavedView = React.useCallback<\n DataTableApi[\"createSavedView\"]\n >(\n (name) =>\n createDataTableSavedView(savedViews, name, getCurrentState()),\n [getCurrentState, savedViews],\n );\n const applySavedView = React.useCallback<\n DataTableApi[\"applySavedView\"]\n >(\n (id) => {\n const view = readDataTableSavedViews(savedViews).find(\n (candidate) => candidate.id === id,\n );\n if (!view) {\n return false;\n }\n restoreState(view.state);\n savedViews?.onApply?.(view);\n return true;\n },\n [restoreState, savedViews],\n );\n const renameSavedView = React.useCallback<\n DataTableApi[\"renameSavedView\"]\n >(\n (id, name) => renameDataTableSavedView(savedViews, id, name),\n [savedViews],\n );\n const deleteSavedView = React.useCallback<\n DataTableApi[\"deleteSavedView\"]\n >(\n (id) => deleteDataTableSavedView(savedViews, id),\n [savedViews],\n );\n const clearSavedViews = React.useCallback(\n () => clearDataTableSavedViews(savedViews),\n [savedViews],\n );\n const toolbarSavedViews = React.useMemo(() => {\n void toolbarSavedViewsVersion;\n return readDataTableSavedViews(savedViews);\n }, [savedViews, toolbarSavedViewsVersion]);\n const handleToolbarCreateSavedView = React.useCallback(\n (name: string) => {\n const view = createSavedView(name);\n if (view) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return view;\n },\n [createSavedView],\n );\n const handleToolbarRenameSavedView = React.useCallback(\n (id: string, name: string) => {\n const view = renameSavedView(id, name);\n if (view) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return view;\n },\n [renameSavedView],\n );\n const handleToolbarDeleteSavedView = React.useCallback(\n (id: string) => {\n const deleted = deleteSavedView(id);\n if (deleted) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return deleted;\n },\n [deleteSavedView],\n );\n const exportCsvFromApi = React.useCallback<\n DataTableApi[\"exportCsv\"]\n >(\n (options) =>\n exportDataTableCsv({\n csvExport: options ?? (csvExport || true),\n labels: resolvedLabels,\n table,\n }),\n [csvExport, resolvedLabels, table],\n );\n const copyToClipboard = React.useCallback<\n DataTableApi[\"copyToClipboard\"]\n >(\n async (options) => {\n const { copyDataTableToClipboard } = await import(\n \"./data-table-clipboard\"\n );\n return copyDataTableToClipboard({\n clipboard:\n options ??\n (clipboard?.copy === false\n ? false\n : currentCellSelection\n ? {\n ...(clipboard?.copy === true ? {} : clipboard?.copy),\n scope: \"cellSelection\",\n }\n : clipboard?.copy ?? true),\n cellSelection: currentCellSelection,\n table,\n });\n },\n [clipboard?.copy, currentCellSelection, table],\n );\n const pinRow = React.useCallback[\"pinRow\"]>(\n (rowId, position = \"top\") => {\n try {\n const row = table.getRow(rowId, true);\n if (!row.getCanPin()) {\n return false;\n }\n row.pin(position);\n return true;\n } catch {\n return false;\n }\n },\n [table],\n );\n const unpinRow = React.useCallback[\"unpinRow\"]>(\n (rowId) => {\n try {\n const row = table.getRow(rowId, true);\n if (!row.getCanPin()) {\n return false;\n }\n row.pin(false);\n return true;\n } catch {\n return false;\n }\n },\n [table],\n );\n React.useImperativeHandle(\n apiRef,\n () => ({\n getTable: () => tableRef.current,\n getState: getCurrentState,\n snapshot: getCurrentState,\n restore: restoreState,\n resetColumnLayout,\n resetState,\n clearPersistedState,\n getSavedViews,\n createSavedView,\n applySavedView,\n renameSavedView,\n deleteSavedView,\n clearSavedViews,\n pinRow,\n unpinRow,\n focus: () => {\n containerRef.current?.focus();\n },\n scrollToRow: (rowId) =>\n scrollDataTableElementIntoView(containerRef.current, \"row\", rowId),\n scrollToColumn: (columnId) =>\n scrollDataTableElementIntoView(\n containerRef.current,\n \"column\",\n columnId,\n ),\n exportCsv: exportCsvFromApi,\n copyToClipboard,\n getCellSelection: () => currentCellSelection,\n setCellSelection: setCurrentCellSelection,\n clearCellSelection: () => setCurrentCellSelection(null),\n print,\n toggleFullscreen,\n }),\n [\n applySavedView,\n clearPersistedState,\n clearSavedViews,\n copyToClipboard,\n currentCellSelection,\n createSavedView,\n deleteSavedView,\n exportCsvFromApi,\n getSavedViews,\n getCurrentState,\n renameSavedView,\n resetColumnLayout,\n resetState,\n restoreState,\n pinRow,\n print,\n setCurrentCellSelection,\n unpinRow,\n toggleFullscreen,\n ],\n );\n\n return (\n \n {\n if (\n gridMode &&\n gridCommands &&\n (event.ctrlKey || event.metaKey) &&\n event.key.toLowerCase() === \"z\" &&\n !isDataTableEditableClipboardTarget(event.target)\n ) {\n const command = event.shiftKey ? gridCommands.redo : gridCommands.undo;\n if (command) {\n event.preventDefault();\n runAction(\n { source: event.shiftKey ? \"redo\" : \"undo\" },\n () => command({ cellSelection: currentCellSelection, table }),\n );\n }\n return;\n }\n if (\n !clipboard?.copy ||\n !(event.ctrlKey || event.metaKey) ||\n event.key.toLowerCase() !== \"c\" ||\n isDataTableEditableClipboardTarget(event.target)\n ) {\n return;\n }\n event.preventDefault();\n runAction(\n { source: \"clipboardCopy\" },\n async () => {\n await copyToClipboard(\n clipboard.copy === true\n ? undefined\n : currentCellSelection &&\n typeof clipboard.copy === \"object\" &&\n !clipboard.copy.scope\n ? { ...clipboard.copy, scope: \"cellSelection\" }\n : clipboard.copy,\n );\n },\n );\n }}\n onPaste={(event) => {\n const paste = clipboard?.paste;\n if (\n !paste ||\n paste.enabled === false ||\n isDataTableEditableClipboardTarget(event.target)\n ) {\n return;\n }\n const text = event.clipboardData.getData(\"text/plain\");\n if (!text) {\n return;\n }\n if (paste.preventDefault ?? true) {\n event.preventDefault();\n }\n runAction(\n { source: \"clipboardPaste\" },\n async () => {\n const { parseDataTableClipboardText } = await import(\n \"./data-table-clipboard\"\n );\n return paste.onPaste({\n table,\n text,\n values: parseDataTableClipboardText(text),\n });\n },\n );\n }}\n >\n {autoPageSizeEnabled ? (\n \n \n \n ) : null}\n {fileUpload ? (\n {\n const files = event.currentTarget.files;\n if (files?.length) {\n handleSelectedFiles(files);\n }\n event.currentTarget.value = \"\";\n }}\n />\n ) : null}\n \n \n {showToolbar ? (\n \n ) : null}\n\n \n {currentViewMode === \"card\" && cardRenderer ? (\n \n ) : (\n \n )}\n \n \n {children}\n \n \n \n \n \n );\n };\n}\n\nfunction runDataTableAction(\n action: () => void | Promise,\n context: Omit, \"error\">,\n onActionError: DataTableProps[\"onActionError\"],\n) {\n let result: void | Promise;\n try {\n result = action();\n } catch (error) {\n onActionError?.({ ...context, error });\n return;\n }\n\n void Promise.resolve(result).catch((error: unknown) => {\n onActionError?.({ ...context, error });\n });\n}\n\nfunction useDataTableStateSliceChange(\n key: K,\n onLegacyChange:\n | ((value: Exclude) => void)\n | undefined,\n onStateChange: DataTableProps[\"onStateChange\"],\n) {\n const handleChange = React.useCallback(\n (value: Exclude) => {\n onLegacyChange?.(value);\n onStateChange?.((current) => ({\n ...current,\n [key]: value,\n }));\n },\n [key, onLegacyChange, onStateChange],\n );\n\n return onLegacyChange || onStateChange ? handleChange : undefined;\n}\n\nfunction useDataTableStateConflictWarnings(\n state: Partial | undefined,\n legacySlices: Record,\n) {\n const warnedSlicesRef = React.useRef(new Set());\n\n React.useEffect(() => {\n if (!state || !isDevelopmentEnvironment()) {\n return;\n }\n\n for (const key of Object.keys(legacySlices) as Array<\n keyof DataTableState\n >) {\n if (\n state[key] === undefined ||\n !legacySlices[key] ||\n warnedSlicesRef.current.has(key)\n ) {\n continue;\n }\n\n warnedSlicesRef.current.add(key);\n console.warn(\n `[data-table-pro] Both state.${key} and its legacy controlled prop were provided. The legacy prop takes precedence during the 4.x compatibility window.`,\n );\n }\n }, [legacySlices, state]);\n}\n\nfunction isDevelopmentEnvironment() {\n const nodeEnvironment = (\n globalThis as {\n process?: { env?: { NODE_ENV?: string } };\n }\n ).process?.env?.NODE_ENV;\n\n return nodeEnvironment !== \"production\";\n}\n\nfunction cloneDataTableState(state: DataTableState): DataTableState {\n return {\n sorting: state.sorting.map((item) => ({ ...item })),\n pagination: { ...state.pagination },\n rowSelection: { ...state.rowSelection },\n columnVisibility: { ...state.columnVisibility },\n columnFilters: state.columnFilters.map((item) => ({ ...item })),\n expanded:\n typeof state.expanded === \"boolean\"\n ? state.expanded\n : { ...state.expanded },\n grouping: [...(state.grouping ?? [])],\n columnOrder: [...state.columnOrder],\n columnPinning: {\n left: state.columnPinning.left\n ? [...state.columnPinning.left]\n : undefined,\n right: state.columnPinning.right\n ? [...state.columnPinning.right]\n : undefined,\n },\n rowPinning: {\n top: state.rowPinning.top ? [...state.rowPinning.top] : undefined,\n bottom: state.rowPinning.bottom ? [...state.rowPinning.bottom] : undefined,\n },\n columnSizing: { ...state.columnSizing },\n density: state.density,\n viewMode: state.viewMode,\n showHiddenRows: state.showHiddenRows,\n globalFilter: state.globalFilter,\n };\n}\n\nfunction scrollDataTableElementIntoView(\n container: HTMLDivElement | null,\n kind: \"row\" | \"column\",\n value: string,\n) {\n if (!container) {\n return false;\n }\n\n const attribute = kind === \"row\" ? \"data-row-id\" : \"data-column-id\";\n const element = Array.from(\n container.querySelectorAll(`[${attribute}]`),\n ).find((candidate) => candidate.getAttribute(attribute) === value);\n if (!element) {\n return false;\n }\n\n element.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n return true;\n}\n\nfunction isDataTableEditableClipboardTarget(target: EventTarget | null) {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n return (\n target.isContentEditable ||\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement\n );\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-JNI3CH7M.js b/dist/chunk-JNI3CH7M.js deleted file mode 100644 index 3cdef63..0000000 --- a/dist/chunk-JNI3CH7M.js +++ /dev/null @@ -1,2 +0,0 @@ -import {a as a$4}from'./chunk-EJHT5JBZ.js';import {a as a$3,e as e$1}from'./chunk-THSY57Y7.js';import {d,a as a$1,b,g,j,r,w,i,A,q,c as c$1,e,f as f$1,u,v,s,h,o,n,x,t,B,k as k$1,m as m$1}from'./chunk-4P45F2OY.js';import {c,p,u as u$1,k,m,s as s$1,a as a$5,r as r$1,q as q$1,l,j as j$1}from'./chunk-CVR2ZXHQ.js';import {a,i as i$1,b as b$1,d as d$1,e as e$2,c as c$2}from'./chunk-KDHJA6AH.js';import {a as a$2}from'./chunk-XTVBESM5.js';import*as f from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useReactTable,getPaginationRowModel,getExpandedRowModel,getSortedRowModel,getGroupedRowModel,getFacetedMinMaxValues,getFacetedUniqueValues,getFacetedRowModel,getFilteredRowModel,getCoreRowModel}from'@tanstack/react-table';import {flushSync}from'react-dom';function zn({cardClassName:e,cardGridClassName:t,cardSizing:n,cardRenderer:i,currentRowSelection:r,currentDetailExpanded:l,DataTableCardView:d,DataTableEmptyState:m,dragAndDrop:p,editableRows:h,editingRowId:E,emptyNode:S,enableRowSelection:A,flexGrow:V,getRowClassName:B,hasCardTitle:q,infiniteScroll:F,localSearchValue:T,onRowClick:u,renderedRows:s,detailPanel:y,resolvedLabels:g,resolvedLoadingRowCount:C,rowActions:N=[],ScrollArea:D,sentinelRef:K,setCurrentDetailExpanded:W,setCurrentRowSelection:O,setEditingRowId:R,shouldRenderInitialLoading:v,stateOverlayNode:w,tableContainerClassName:k,uiClassNames:M}){let I=v||s.length>0,G=f.useRef(null),x=(Z,j)=>jsx(d,{rows:Z,cardRenderer:i,cardGridClassName:t,cardClassName:e,cardSizing:n,rowActions:N,editableRows:h,detailPanel:y,detailExpanded:l,onDetailExpandedChange:W,hasCardTitle:q,rowSelection:r,onRowSelectionChange:O,enableRowSelection:A,editingRowId:E,onEditingRowIdChange:R,getRowClassName:B,onRowClick:u,getRowDraggable:p?.getRowDraggable,onRowDragStart:p?.onRowDragStart,onRowDragEnd:p?.onRowDragEnd,isLoading:j?.isLoading,loadingRowCount:j?.loadingRowCount,labels:g});return jsxs("div",{ref:G,"data-dtp-slot":"data-table-card-shell",className:a$2("relative box-border border-2 border-transparent transition-colors",V?"flex min-h-0 flex-1 flex-col":"h-full",p?.isDragging&&(M.dragActive??"rounded-md border-dashed")),children:[jsx(D,{className:a$2(V?"min-h-0 flex-1":"h-full",M.cardScrollArea,k),children:jsxs("div",{"data-dtp-slot":"data-table-card-viewport",className:a$2("flex min-h-full min-w-0 flex-col",V&&"min-h-0 flex-1",M.cardViewport),children:[I?v?x([],{isLoading:true,loadingRowCount:C}):x(s):jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center p-4",children:S??jsx(m,{title:T?g.noMatchingRowsTitle:g.noRowsTitle,description:T?g.noMatchingRowsDescription:g.noRowsDescription})}),F?.enabled&&!v?jsx("div",{className:"shrink-0 px-4 pb-4",children:jsx("div",{ref:K,className:"h-4 w-full"})}):null]})}),w]})}var rs=f.lazy(async()=>({default:(await import('./data-table-virtual-card-panel-KF2P5D3K.js')).DataTableVirtualCardPanel}));function Ti(e){let t=typeof e.virtualization=="object"?e.virtualization.card:void 0;return t?.enabled!==true?jsx(zn,{...e}):jsx(f.Suspense,{fallback:jsx(zn,{...e,renderedRows:e.renderedRows.slice(0,Math.max(1,Math.floor(t.fallbackCardCount??12)))}),children:jsx(rs,{...e})})}function wi({children:e,currentPagination:t,DataTableFooter:n,effectivePageCount:i,footerTotalRowCount:r,handleFooterPageIndexChange:l,handleFooterPageSizeChange:d,labels:m,pageCountKnown:p=true,rowsPerPageOptions:h,showFooter:E}){return !E&&!e?null:jsxs("div",{"data-dtp-slot":"data-table-footer",className:"shrink-0",children:[E?jsx(n,{pageIndex:t.pageIndex,pageCount:i,pageCountKnown:p,pageSize:t.pageSize,totalRowCount:r,rowsPerPageOptions:h,onPageIndexChange:l,onPageSizeChange:d,labels:m}):null,e]})}function Di({allRows:e,columnFilters:t,columnVisibilityOptions:n,compactToolbar:i,customToolbar:r,DataTableToolbar:l,description:d,descriptionId:m,effectiveToolbarActions:p,enableColumnPinning:h,enableGrouping:E,enableToolbarColumnChooser:S,enableToolbarFilterChips:A,enableToolbarResetLayout:V,enableToolbarSavedViews:B,enableDensityToggle:q,enableViewToggle:F,hiddenRowsLabel:T,labels:u,onClearColumnFilters:s,onColumnFilterChange:y,onColumnPinningChange:g,onDensityChange:C,onShowHiddenRowsChange:N,onToolbarQueryValueChange:D,reorderColumn:K,onResetColumnLayout:W,onCreateSavedView:O,onApplySavedView:R,onRenameSavedView:v,onDeleteSavedView:w,onViewModeChange:k,openFileDialog:M,selectedRowIds:I,selectedRows:G,selectionActions:x,savedViews:Z,showHiddenRows:j,table:z,title:Y,titleId:ne,toolbarQueryPlaceholder:be,toolbarQueryValue:fe,toolbarVisibility:De,density:Se,viewMode:Te}){return jsx("div",{"data-dtp-slot":"data-table-toolbar",className:"shrink-0",children:jsx(l,{title:Y,titleId:ne,description:d,descriptionId:m,toolbarQueryValue:fe,toolbarQueryPlaceholder:be,onToolbarQueryValueChange:D,reorderColumn:K,customToolbar:r,compactToolbar:i,viewMode:Te,onViewModeChange:k,enableViewToggle:F,toolbarActions:p,selectionActions:x,selectedRowIds:I,selectedRows:G,showHiddenRows:j,hiddenRowsLabel:T,onShowHiddenRowsChange:N,allRows:e,columnVisibilityOptions:n,onColumnVisibilityChange:(Ee,Ne)=>{z.getColumn(Ee)?.toggleVisibility(Ne);},enableColumnPinning:h,enableGrouping:E,enableToolbarColumnChooser:S,enableToolbarFilterChips:A,enableToolbarResetLayout:V,enableToolbarSavedViews:B,onColumnPinningChange:g,columnFilters:t,onColumnFilterChange:y,onClearColumnFilters:s,onResetColumnLayout:W,onCreateSavedView:O,onApplySavedView:R,onRenameSavedView:v,onDeleteSavedView:w,density:Se,onDensityChange:C,enableDensityToggle:q,labels:u,toolbarVisibility:De,openFileDialog:M,savedViews:Z,table:z})})}var oe={searchPlaceholder:"Search rows...",searchTable:"Search table",clearSearch:"Clear search",noRowsTitle:"No rows yet",noRowsDescription:"Create a record or refresh this view once data exists.",noMatchingRowsTitle:"No matching rows",noMatchingRowsDescription:"Try a different search term or clear filters.",tableOptions:"Show table options",columns:"Columns",filters:"Filters",clearFilters:"Clear filters",filterFrom:"From",filterTo:"To",filterTrue:"Yes",filterFalse:"No",selectedRows:e=>`${e} record${e===1?"":"s"} selected`,showHiddenRows:e=>`Show ${e}`,recordsPerPage:"Records per page",totalRecords:e=>`Total records: ${e}`,pageStatus:(e,t)=>`Page ${e+1} of ${t}`,pageStatusUnknown:e=>`Page ${e+1}`,pagination:"Pagination",morePages:"More pages",firstPage:"First page",previousPage:"Previous page",nextPage:"Next page",lastPage:"Last page",selectAllVisibleRows:"Select all visible rows",selectAllFilteredRows:"Select all filtered rows",selectRow:"Select row",selectCardRow:e=>`Select row ${e}`,switchToTableView:"Switch to table view",switchToCardView:"Switch to card view",tableView:"Table view",cardView:"Card view",allFilterOptions:"All",actions:"Actions",rowActions:"Row actions",editRow:"Edit row",saveEdit:"Save",cancelEdit:"Cancel editing",expandRow:"Expand row",collapseRow:"Collapse row",expandRowDetails:"Expand row details",collapseRowDetails:"Collapse row details",exportCsv:"Export CSV",print:"Print table",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",errorTitle:"Unable to load this table",errorDescription:"Try again or check your connection.",retry:"Retry",density:"Density",compactDensity:"Compact",comfortableDensity:"Comfortable",spaciousDensity:"Spacious",pinLeft:"Pin left",pinRight:"Pin right",unpin:"Unpin",pinRowToTop:"Pin row to top",pinRowToBottom:"Pin row to bottom",unpinRow:"Unpin row",resizeColumn:e=>`Resize ${e}`,grouping:"Grouping",groupBy:e=>`Group by ${e}`,ungroup:e=>`Ungroup ${e}`,removeGrouping:e=>`Remove ${e} grouping`,moveGroupingEarlier:e=>`Move ${e} grouping earlier`,moveGroupingLater:e=>`Move ${e} grouping later`,facetSearch:e=>`Search ${e} options`,searchColumns:"Search columns",showAllColumns:"Show all columns",hideAllColumns:"Hide all columns",moveColumnEarlier:e=>`Move ${e} earlier`,moveColumnLater:e=>`Move ${e} later`,resetColumnLayout:"Reset column layout",savedViews:"Saved views",createSavedView:"Create saved view",savedViewName:"View name",applySavedView:e=>`Apply saved view ${e}`,renameSavedView:e=>`Rename saved view ${e}`,deleteSavedView:e=>`Delete saved view ${e}`,saveSavedView:"Save view"};function hi(e){return {...oe,...e}}function yi({Button:e,Checkbox:t,DataTableRowActions:n,Tooltip:i,TooltipContent:r,TooltipTrigger:l,cancelEditing:d$1,columns:m,editableRows:p,editingRowId:h,editErrors:E,enableRowSelection:S,enableRowPinning:A,hasTreeExpansion:V,isSavingEdit:B,isEditDirty:q,labels:F,lastSelectedRowIdRef:T,detailPanel:u,detailExpanded:s,onDetailExpandedChange:y,rowSelectionSelectAllScope:g$1,rowActions:C,saveEdit:N,startEditingRow:D,tableRef:K}){let W=f.useCallback((O,R)=>{let v=K.current;if(!v||!T.current)return;let w=v.getRowModel().rows.filter(x=>!d(x.original)),k=w.findIndex(x=>x.id===T.current),M=w.findIndex(x=>x.id===O);if(k<0||M<0)return;let I=Math.min(k,M),G=Math.max(k,M);v.setRowSelection(x=>{let Z={...x};for(let j of w.slice(I,G+1).filter(z=>z.getCanSelect()&&z.getCanMultiSelect()))R?Z[j.id]=true:delete Z[j.id];return Z});},[T,K]);return f.useMemo(()=>{let O=[];if(V||u){let R=V&&u?80:a$1;O.push({id:"__expand__",enableResizing:false,enableSorting:false,enableHiding:false,size:R,minSize:R,maxSize:R,header:()=>jsx("span",{className:"sr-only",children:F.expandRow}),cell:({row:v,table:w})=>{let k=V&&v.getCanExpand(),M=!!(u&&(u.getRowCanExpand?.(v.original)??true));if(!k&&!M)return null;let I=v.getIsExpanded(),G=s===true||!!s[v.id];return jsxs("div",{className:"flex items-center justify-center gap-1",children:[k?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":I?F.collapseRow:F.expandRow,"aria-expanded":I,"data-tree-toggle":"true",onClick:()=>v.toggleExpanded(),children:jsx(c,{className:a$2("transition-transform",I?"rotate-0":"-rotate-90")})}):null,M?jsx(e,{type:"button",variant:"ghost",size:"icon-sm","aria-label":G?V?F.collapseRowDetails??oe.collapseRowDetails:F.collapseRow:V?F.expandRowDetails??oe.expandRowDetails:F.expandRow,"aria-expanded":G,"data-detail-toggle":"true",onClick:()=>{y(x=>b(x,v.id,w.getCoreRowModel().flatRows.map(Z=>Z.id)));},children:jsx(c,{className:a$2("transition-transform",G?"rotate-0":"-rotate-90")})}):null]})}});}return S&&O.push({id:"__select__",enableResizing:false,enableSorting:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:({table:R})=>{let v=g$1==="filtered",w=(v?R.getFilteredRowModel().flatRows:R.getRowModel().flatRows).filter(G=>G.getCanSelect()&&G.getCanMultiSelect()),k=w.length>0&&w.every(G=>G.getIsSelected()),M=w.some(G=>G.getIsSelected()),I=v?F.selectAllFilteredRows??oe.selectAllFilteredRows:F.selectAllVisibleRows??oe.selectAllVisibleRows;return w.length===0?jsx("span",{className:"sr-only",children:I}):jsx("div",{className:"flex items-center justify-center",children:jsx(t,{className:"my-0.5",checked:k?true:M?"indeterminate":false,onCheckedChange:G=>{R.setRowSelection(x=>{let Z={...x};for(let j of w)G===true?Z[j.id]=true:delete Z[j.id];return Z});},"aria-label":I})})},cell:({row:R})=>jsx("div",{className:"flex items-center justify-center",children:jsx(t,{className:"my-0.5",checked:R.getIsSelected(),disabled:!R.getCanSelect(),onClick:v=>{if(!v.shiftKey||!T.current||!R.getCanMultiSelect()){T.current=R.id;return}v.preventDefault(),v.stopPropagation(),W(R.id,!R.getIsSelected()),T.current=R.id;},onCheckedChange:v=>{T.current=R.id,R.toggleSelected(v===true);},"aria-label":F.selectRow??oe.selectRow})})}),O.push(...m.map(R=>g(R))),(C.length||p||A)&&O.push({id:"__actions__",enableSorting:false,enableResizing:false,enableHiding:false,size:a$1,minSize:a$1,maxSize:a$1,header:()=>jsx("span",{className:"sr-only",children:F.actions}),cell:({row:R})=>{let v=R.id;return h===v?jsxs("div",{className:"flex w-full items-center justify-end gap-2",children:[E._row?jsx("span",{className:"sr-only",role:"alert",children:E._row}):null,jsx(e,{type:"button",size:"sm",disabled:B||!q,onClick:()=>{N(R.original);},children:F.saveEdit}),jsxs(i,{children:[jsx(l,{asChild:true,children:jsxs(e,{type:"button",size:"icon-sm",variant:"ghost",onClick:d$1,children:[jsx(c,{className:"rotate-45"}),jsx("span",{className:"sr-only",children:F.cancelEdit})]})}),jsx(r,{children:F.cancelEdit})]})]}):jsx("div",{className:"flex w-full items-center justify-center",children:jsx(n,{row:R.original,rowActions:C,editableRows:p,isEditing:false,onStartEditing:()=>{D(R.original,R.id);},onCancelEditing:()=>{},labels:F,rowPinning:A?{canPin:R.getCanPin(),position:R.getIsPinned(),pin:k=>R.pin(k)}:void 0})})}}),O},[e,t,n,i,r,l,d$1,m,p,s,u,E,h,S,A,V,B,q,F,T,y,g$1,C,N,W,D])}function Re({defaultValue:e,onChange:t,value:n}){let[i,r]=f.useState(e),l=n??i,d=f.useRef(l);f.useEffect(()=>{d.current=l;},[l]);let m=f.useCallback(p=>{let h=typeof p=="function"?p(d.current):p;d.current=h,t?.(h),n===void 0&&r(h);},[t,n]);return [l,m]}function Ri({enabled:e,hasMore:t,isLoadingMore:n,onLoadMore:i,onError:r}){let l=f.useRef(null),d=f.useRef(false),m=f.useEffectEvent(i),p=f.useEffectEvent(h=>{r?.(h);});return f.useEffect(()=>{if(!e||!t||n)return;let h=l.current;if(!h)return;let E=new IntersectionObserver(S=>{if(S[0].isIntersecting&&!d.current){d.current=true;let V;try{V=m();}catch(B){d.current=false,p(B);return}Promise.resolve(V).catch(B=>{p(B);}).finally(()=>{d.current=false;});}},{rootMargin:"200px 0px 200px 0px"});return E.observe(h),()=>{E.disconnect();}},[e,t,n]),l}function vi({enabled:e,maxPageIndex:t,onPageIndexChange:n,pageIndex:i,setLocalPageIndex:r}){f.useEffect(()=>{if(!e||i>=0&&i<=t)return;let l=Math.min(Math.max(i,0),t);r(l),n?.(l);},[e,t,n,i,r]);}function xi(){return f.useMemo(()=>{let e=new WeakMap;return (t,n$1,i)=>{let r=n(i);if(!r)return true;let l=t.original;if(typeof l!="object"||l===null)return n(t.getValue(n$1)).includes(r);let d=e.get(l);d||(d=new Map,e.set(l,d));let m=d.get(n$1);if(m===void 0){let p=t.getValue(n$1);m=n(p),d.set(n$1,m);}return m.includes(r)}},[])}function Ei({autoResetPageIndex:e,columnGroupPaths:t,columnResizeMode:n,dir:i$1,currentColumnFilters:r$1,currentColumnOrder:l,currentColumnPinning:d$1,currentRowPinning:m,currentColumnSizing:p,currentExpanded:h,currentGrouping:E,currentPagination:S,currentRowSelection:A$1,currentSorting:V,currentViewMode:B,defaultColumn:q,effectiveColumnVisibility:F,enableColumnResizing:T,enableMultiRowSelection:u,enableRowPinning:s,enableRowSelection:y,enableSubRowSelection:g,getRowCanSelect:C,getRowCanExpand:N,getSubRows:D,aggregationFns:K,groupedColumnMode:W,globalFilterFn:O,globalFilterValue:R,hasNextPage:v,handleColumnFiltersChange:w$1,handleColumnOrderChange:k,handleColumnPinningChange:M,handleRowPinningChange:I,handleColumnVisibilityChange:G,handleExpandedChange:x,handleGroupingChange:Z,infiniteScroll:j$1,keepPinnedRows:z,manualFiltering:Y,manualGrouping:ne,manualExpanding:be,manualPagination:fe,manualSorting:De,onActionError:Se,onPageIndexChange:Te,onPageSizeChange:Ee,pageCount:Ne,pageIndex:J,pageSize:he,paginateExpandedRows:L,filterFromLeafRows:we,maxLeafRowFilterDepth:Ge,setCurrentRowSelection:nt,setCurrentSorting:Ye,setLocalColumnSizing:ot,setLocalPagination:se,shouldRenderInitialLoading:it,tableColumns:Ve,tableData:gt,tableGetRowId:Oe,tableRef:Rt,totalRowCount:mt,virtualization:Je}){let bt=xi(),ye=f.useMemo(()=>j(Ve).map(({column:a,index:b})=>r(a,b)),[Ve]),rt=f.useMemo(()=>{let a=ye,b=a.filter(_=>!w(_)&&_!=="__spacer__"),U=new Set(b),ce=l.filter(_=>U.has(_)),ae=b.filter(_=>!ce.includes(_));return [...a.filter(_=>_==="__expand__"||_==="__select__"),...ce,...ae,...a.filter(_=>_==="__spacer__"),...a.filter(_=>_==="__actions__")]},[l,ye]),_e=f.useMemo(()=>{let a=new Set(ye),b=new Set(ye.filter(ae=>!w(ae)&&ae!=="__spacer__")),U=(d$1.left??[]).filter(ae=>b.has(ae)),ce=(d$1.right??[]).filter(ae=>b.has(ae));return {left:[...["__expand__","__select__"].filter(ae=>a.has(ae)),...U],right:[...ce,...["__actions__"].filter(ae=>a.has(ae))]}},[d$1,ye]),lt=f.useMemo(()=>{let a=new Set,b=_=>{_.forEach((et,Ot)=>{if(a.add(Oe(et,Ot)),!d(et)){let _t=D?.(et,Ot);_t?.length&&b(_t);}});};b(gt);let U=(m.top??[]).filter(_=>a.has(_)),ce=new Set(U),ae=(m.bottom??[]).filter(_=>a.has(_)&&!ce.has(_));return {top:U,bottom:ae}},[m.bottom,m.top,D,gt,Oe]),ve=f.useMemo(()=>({sorting:V,pagination:S,rowSelection:A$1,columnVisibility:F,columnFilters:r$1,globalFilter:R,expanded:h,grouping:E,columnOrder:rt,columnPinning:_e,rowPinning:lt,columnSizing:p}),[r$1,p,h,E,S,A$1,V,F,rt,_e,lt,R]),He=f.useCallback(a=>{let b=typeof a=="function"?a(S):a;(J===void 0||he===void 0)&&se(U=>({pageIndex:J===void 0?b.pageIndex:U.pageIndex,pageSize:he===void 0?b.pageSize:U.pageSize})),b.pageIndex!==S.pageIndex&&Te?.(b.pageIndex),b.pageSize!==S.pageSize&&Ee?.(b.pageSize);},[S,Te,Ee,J,he,se]),St=f.useCallback(a=>{ot(a);},[ot]),Xe=f.useMemo(()=>{let a=false,b=false;for(let{column:U}of j(Ve))a||=U.meta?.filter?.type==="faceted",b||=U.meta?.filter?.type==="numberRange";return {minMaxValues:b,uniqueValues:a}},[Ve]),de=useReactTable({data:gt,columns:Ve,getCoreRowModel:getCoreRowModel(),getFilteredRowModel:Y?void 0:getFilteredRowModel(),getFacetedRowModel:(Xe.uniqueValues||Xe.minMaxValues)&&!Y?getFacetedRowModel():void 0,getFacetedUniqueValues:Xe.uniqueValues&&!Y?getFacetedUniqueValues():void 0,getFacetedMinMaxValues:Xe.minMaxValues&&!Y?getFacetedMinMaxValues():void 0,getGroupedRowModel:E.length&&!ne?getGroupedRowModel():void 0,getSortedRowModel:De?void 0:getSortedRowModel(),getExpandedRowModel:(D||E.length)&&!be?getExpandedRowModel():void 0,getPaginationRowModel:fe||j$1?.enabled?void 0:getPaginationRowModel(),enableRowSelection:C?a=>y&&C(a.original):y,enableRowPinning:typeof s=="function"?a=>s(a.original):s,keepPinnedRows:z,enableMultiRowSelection:typeof u=="function"?a=>u(a.original):u,enableSubRowSelection:typeof g=="function"?a=>g(a.original):g,enableColumnResizing:T,columnResizeMode:n,columnResizeDirection:i$1,getRowId:Oe,getSubRows:D,getRowCanExpand:D?a=>N?.(a.original)??a.subRows.length>0:void 0,globalFilterFn:O??bt,getColumnCanGlobalFilter:a=>a.columnDef.enableGlobalFilter!==false&&typeof a.accessorFn=="function",manualSorting:De,manualGrouping:ne,manualFiltering:Y,manualExpanding:be,manualPagination:fe||!!j$1?.enabled,paginateExpandedRows:L,filterFromLeafRows:we,maxLeafRowFilterDepth:Ge,defaultColumn:q,autoResetPageIndex:e,state:ve,onSortingChange:Ye,onPaginationChange:He,onRowSelectionChange:nt,onColumnVisibilityChange:G,onColumnFiltersChange:w$1,onExpandedChange:x,onGroupingChange:Z,onColumnOrderChange:k,onColumnPinningChange:M,onRowPinningChange:I,onColumnSizingChange:St,aggregationFns:K,groupedColumnMode:W});Rt.current=de;let vt=de.getVisibleLeafColumns(),ft=f.useCallback((a,b)=>{if(a===b||!i(a,b,t))return;let U=de.getAllLeafColumns().map(ae=>ae.id).filter(ae=>!w(ae)),ce=A(l.length?l:U,a,b);k(ce);},[t,l,k,de]),Tt=de.getTopRows(),Ae=de.getBottomRows(),$e=B==="table"?de.getCenterRows():de.getRowModel().rows,wt=typeof Je=="object"?Je:void 0,Be=Je===true||wt?.enabled===true,Lt=Math.max(1,Math.floor(wt?.fallbackRowCount??20)),ke=(Be?$e.slice(0,Lt):$e).map((a,b)=>({row:a,rowIndex:b})),Ue=fe||!!j$1?.enabled,st=Ue?void 0:de.getFilteredRowModel().rows.length,dt=mt??st,Ze=!Ue||Ne!==void 0||mt!==void 0,xt=dt,je=it?1:Ne??(dt!==void 0?Math.max(1,Math.ceil(dt/S.pageSize)):Ue?S.pageIndex+(v?2:1):de.getPageCount()),Ct=Math.max(0,je-1),Nt=f.useCallback(a=>{J===void 0&&se(b=>b.pageIndex===a?b:{...b,pageIndex:a});},[J,se]);vi({enabled:!it&&!j$1?.enabled&&Ze,maxPageIndex:Ct,onPageIndexChange:Te,pageIndex:S.pageIndex,setLocalPageIndex:Nt});let Ke=f.useCallback(a=>{a!==S.pageIndex&&(Te?.(a),J===void 0&&se(b=>b.pageIndex===a?b:{...b,pageIndex:a}));},[S.pageIndex,Te,J,se]),Et=f.useCallback(a=>{S.pageIndex!==0&&Te?.(0),a!==S.pageSize&&Ee?.(a),he===void 0&&se({pageIndex:0,pageSize:a});},[S.pageIndex,S.pageSize,Te,Ee,he,se]),kt=Ri({enabled:!!j$1?.enabled,hasMore:!!j$1?.hasMore,isLoadingMore:j$1?.isLoadingMore,onLoadMore:()=>j$1?.onLoadMore(),onError:a=>{Se?.({error:a,source:"infiniteScroll"});}});return {effectivePageCount:je,footerTotalRowCount:xt,handleFooterPageIndexChange:Ke,handleFooterPageSizeChange:Et,isPageCountKnown:Ze,renderedRows:$e,topPinnedRows:Tt,bottomPinnedRows:Ae,reorderColumn:ft,rowsToRender:ke,sentinelRef:kt,table:de,virtualPaddingBottom:0,virtualPaddingTop:0,visibleLeafColumns:vt}}var Cs="data-table-pro:column-prefs:",Mi=1,ki=["visibility","sizing","order","pinning","rowPinning","density"];function Vi(e){let t=Ln(e);if(!t)return {};let n=Nn(t);if(!n)return {};let i=On(t.key),r;try{r=n.getItem(i);}catch(p){return t.onError?.({error:p,operation:"read"}),{}}if(!r)return {};let l;try{l=(t.deserialize??JSON.parse)(r);}catch(p){return t.onError?.({error:p,operation:"deserialize"}),{}}let d=t.version??Mi,m;if(Ds(l))if(l.version===d)m=l.state;else if(t.migrate)try{m=t.migrate({version:l.version,state:l.state},d);}catch(p){return t.onError?.({error:p,operation:"migrate"}),{}}else return {};else m=l;return Ii(hs(m),t.slices)}function Ai(e){let t=Ln(e);if(!t)return false;let n=Nn(t);if(!n)return false;try{return n.removeItem(On(t.key)),!0}catch(i){return t.onError?.({error:i,operation:"remove"}),false}}function Fi({key:e,persistence:t,prefs:n}){let i=t??Ln(e),r=i?Nn(i):void 0,l=i?On(i.key):void 0,d=i?.version??Mi,m=Math.max(0,i?.debounceMs??100),p=Ii(n,i?.slices),h=f.useMemo(()=>{if(!i)return {value:void 0};try{let S={version:d,state:p};return {value:(i.serialize??JSON.stringify)(S)}}catch(S){return {error:S,value:void 0}}},[i,p,d]),E=f.useEffectEvent((S,A)=>{i?.onError?.({error:S,operation:A});});f.useEffect(()=>{h.error!==void 0&&E(h.error,"serialize");},[h.error]),f.useEffect(()=>{if(!r||!l||h.value===void 0)return;let S=()=>{try{if(r.getItem(l)===h.value)return;r.setItem(l,h.value);}catch(V){E(V,"write");}};if(m===0){S();return}let A=globalThis.setTimeout(S,m);return ()=>{globalThis.clearTimeout(A);}},[m,h.value,r,l]);}function Ln(e){if(e)return typeof e=="string"?{key:e}:e}function Nn(e){if(e.storage)return e.storage;if(!(typeof window>"u"))try{return window.localStorage}catch(t){e.onError?.({error:t,operation:"read"});return}}function On(e){return `${Cs}${e}`}function Ds(e){return aa(e)&&Object.prototype.hasOwnProperty.call(e,"version")&&Object.prototype.hasOwnProperty.call(e,"state")}function Ii(e,t){let n=new Set(t??ki),i={};for(let r of ki)n.has(r)&&e[r]!==void 0&&Object.assign(i,{[r]:e[r]});return i}function hs(e){if(!aa(e))return {};let t={},n=ys(e.visibility);n&&(t.visibility=n);let i=Rs(e.sizing);i&&(t.sizing=i);let r=pa(e.order);if(r&&(t.order=r),aa(e.pinning)){let d=pa(e.pinning.left)??[],m=pa(e.pinning.right)??[];t.pinning={left:d,right:m};}let l=Ss(e.rowPinning);return l&&(t.rowPinning=l),vs(e.density)&&(t.density=e.density),t}function ys(e){if(aa(e))return Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="boolean"))}function Rs(e){if(aa(e))return Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="number"&&Number.isFinite(t[1])&&t[1]>=0))}function pa(e){if(Array.isArray(e))return e.filter(t=>typeof t=="string")}function Ss(e){if(aa(e))return {top:pa(e.top)??[],bottom:pa(e.bottom)??[]}}function vs(e){return e==="compact"||e==="comfortable"||e==="spacious"}function aa(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Ps=Object.values(a).slice().sort((e,t)=>e-t);function zi(e){let t=f.useRef(0),[n,i]=f.useState(0);return f.useEffect(()=>{let r=e.current;if(!r)return;let l=(m=r.clientWidth)=>{let p=xs(m);p!==t.current&&(t.current=p,i(p));};if(l(),typeof ResizeObserver>"u")return;let d=new ResizeObserver(m=>{let p=m[0];l(p?Es(p):void 0);});return d.observe(r),()=>{d.disconnect();}},[e]),n}function xs(e){if(e<=0)return 0;let t=1;for(let n of Ps){if(ed$1??(l?{key:l}:void 0),[l,d$1]),we=f.useMemo(()=>Vi(L),[L]),[Ge,nt]=f.useState({pageIndex:u?.pagination?.pageIndex??0,pageSize:u?.pagination?.pageSize??be[0]??20}),[Ye,ot]=Re({value:Se,onChange:G,defaultValue:()=>u?.sorting??[]}),[se,it]=Re({value:ne,onChange:M,defaultValue:()=>u?.rowSelection??{}}),[Ve,gt]=Re({value:m,onChange:O,defaultValue:()=>u?.columnVisibility??we.visibility??{}}),[Oe,Rt]=Re({value:e$1,onChange:C,defaultValue:()=>u?.columnFilters??[]}),[mt,Je]=Re({value:V,onChange:v,defaultValue:()=>u?.expanded??{}}),[bt,ye]=Re({value:t,onChange:N,defaultValue:()=>u?.columnOrder??we.order??[]}),[rt,_e]=Re({value:n,onChange:D,defaultValue:()=>u?.columnPinning??we.pinning??q(p)}),[lt,ve]=Re({value:i,onChange:K,defaultValue:()=>u?.rowPinning??we.rowPinning??{top:[],bottom:[]}}),[He,St]=Re({value:r$1,onChange:W,defaultValue:()=>u?.columnSizing??we.sizing??{}}),[Xe,de]=Re({value:J,onChange:Z,defaultValue:()=>u?.viewMode??"table"}),[vt,ft]=Re({value:B,onChange:w,defaultValue:()=>u?.grouping??[]}),[Tt,Ae]=Re({value:De,onChange:I,defaultValue:()=>u?.showHiddenRows??false}),[$e,wt]=Re({value:E,onChange:R,defaultValue:()=>u?.density??we.density??"comfortable"}),Be=Ne??u?.globalFilter??"",Lt=Ee??Y.searchPlaceholder,Pt=Te??250,[ke,Ue]=f.useState(Be),st=zi(he),dt=!!x,Ze=f.useRef(Be),xt=f.useEffectEvent($=>{Ze.current=$,x?.($);});f.useEffect(()=>{Ze.current=Be,Ue(Be);},[Be]),f.useEffect(()=>{if(!dt||ke===Be||ke===Ze.current)return;let $=window.setTimeout(()=>{xt(ke);},Pt);return ()=>{window.clearTimeout($);}},[dt,ke,Pt,Be]);let je=f.useMemo(()=>({pageIndex:j$1??Ge.pageIndex,pageSize:z??Ge.pageSize}),[Ge.pageIndex,Ge.pageSize,j$1,z]),Ct=Math.max(1,y??Math.min(5,je.pageSize)),Nt=f.useDeferredValue(ke),Ke=A?g?ke:Nt:"",Et=f.useCallback($=>{de($);},[de]),kt=f.useCallback($=>{Ae($);},[Ae]),a=f.useCallback($=>{wt($);},[wt]),b=f.useCallback(()=>{k?.(0),j$1===void 0&&nt($=>$.pageIndex===0?$:{...$,pageIndex:0});},[k,j$1]),U=f.useRef({columnFilters:Oe,globalFilterValue:Ke});f.useEffect(()=>{let $=U.current,Pe=$.columnFilters!==Oe,ie=$.globalFilterValue!==Ke;U.current={columnFilters:Oe,globalFilterValue:Ke},!g&&(!Pe&&!ie||b());},[Oe,Ke,g,b]),Fi({persistence:L,prefs:{visibility:m?void 0:Ve,sizing:r$1===void 0?He:void 0,order:t?void 0:bt,pinning:n?void 0:rt,rowPinning:i===void 0?lt:void 0,density:E?void 0:$e}});let ce=f.useMemo(()=>j(p).reduce(($,{column:Pe,index:ie})=>{let ct=r(Pe,ie);return i$1(Pe.meta?.hideOn,st)&&($[ct]=false),$},{}),[p,st]),ae=f.useMemo(()=>({...Ve,...ce}),[Ve,ce]),_=f.useMemo(()=>h.filter($=>b$1($,T,Tt)),[Tt,h,T]),et=s&&_.length===0,Ot=f.useMemo(()=>c$1(Ct),[Ct]),_t=et?Ot:_,Ka=f.useCallback(($,Pe)=>d($)?e(Pe):F($,Pe),[F]),Mt=S||(fe?.length??0)>0||Object.values(se).some(Boolean),ia=f.useMemo(()=>{if(!Mt)return new Map;let $=new Map,Pe=ie=>{ie.forEach((ct,te)=>{$.set(F(ct,te),ct);let ue=q$1?.(ct,te);ue?.length&&Pe(ue);});};return Pe(_),$},[F,q$1,Mt,_]),Wa=f.useMemo(()=>Mt?Object.entries(se).filter(([,$])=>$).map(([$])=>ia.get($)).filter($=>!!$):[],[se,ia,Mt]),Qa=f.useMemo(()=>Object.entries(se).flatMap(([$,Pe])=>Pe?[$]:[]),[se]);return {containerWidth:st,currentColumnFilters:Oe,currentColumnOrder:bt,currentColumnPinning:rt,currentRowPinning:lt,currentColumnSizing:He,currentColumnVisibility:Ve,currentDensity:$e,currentExpanded:mt,currentGrouping:vt,currentPagination:je,currentRowSelection:se,currentShowHiddenRows:Tt,currentSorting:Ye,currentViewMode:Xe,effectiveColumnVisibility:ae,globalFilterValue:Ke,handleDensityChange:a,handleShowHiddenRowsChange:kt,handleViewModeChange:Et,localSearchValue:ke,resolvedLoadingRowCount:Ct,resolvedToolbarQueryPlaceholder:Lt,selectedRowIds:Qa,selectedRows:Wa,setCurrentColumnFilters:Rt,setCurrentColumnOrder:ye,setCurrentColumnPinning:_e,setCurrentRowPinning:ve,setCurrentColumnVisibility:gt,setCurrentExpanded:Je,setCurrentGrouping:ft,setCurrentRowSelection:it,setCurrentSorting:ot,setLocalColumnSizing:St,setLocalPagination:nt,setLocalSearchValue:Ue,shouldRenderInitialLoading:et,tableData:_t,tableGetRowId:Ka,toolbarFilteredData:_,visibleData:_}}var Ms={cellStyle:void 0,colStyle:void 0,fixedSide:void 0,headerStyle:void 0,isActionsColumn:false,isExpansionColumn:false,isSelectionColumn:false,isSpacerColumn:false,isUtilityColumn:false,pinnedClassName:void 0,utilityClassName:void 0};function Oi({columns:e,columnSizing:t,editableRows:n,enableRowSelection:i,hasRowActions:r$1,hasRowExpansion:l,layoutMode:d,uiClassNames:m,visibleLeafColumns:p}){let h=f.useMemo(()=>{let T=new Set;for(let{column:u,index:s}of j(e))Object.prototype.hasOwnProperty.call(u,"size")&&T.add(r(u,s));return i&&T.add("__select__"),l&&T.add("__expand__"),(r$1||n)&&T.add("__actions__"),T},[e,n,i,r$1,l]),E=f.useMemo(()=>{let T=new Map;for(let{column:u,index:s}of j(e)){let y=f$1(u);y!==void 0&&T.set(r(u,s),y);}return T},[e]),S=f.useMemo(()=>{let T=new Map,u$1=new Map,s=0;for(let g of p)u(g)==="left"&&(T.set(g.id,s),s+=Ni(g));let y=0;for(let g of [...p].reverse())u(g)==="right"&&(u$1.set(g.id,y),y+=Ni(g));return {left:T,right:u$1}},[p]),A=f.useMemo(()=>{if(d!=="fill")return;let T=p.filter(s=>!w(s.id));return T.length&&T.every(s=>h.has(s.id)||Object.prototype.hasOwnProperty.call(t,s.id))?T[T.length-1]?.id:void 0},[t,h,d,p]),V=f.useMemo(()=>{let T=new Set([...h,...Object.keys(t)]);return A&&T.delete(A),T},[t,h,A]),B=f.useMemo(()=>{let T=new Map;for(let u$1 of p){let s=u$1.id==="__select__",y=u$1.id==="__expand__",g=u$1.id==="__actions__",C=s||y||g,N=u$1.id==="__spacer__",D=E.get(u$1.id),K=u$1.id===A,W=D??(K?u$1.getSize():void 0),O=!N&&(d==="fit"||C||V.has(u$1.id)),R=O||W!==void 0?{width:O?C?a$1:u$1.getSize():void 0,minWidth:C?a$1:O?u$1.getSize():W,maxWidth:O?C?a$1:u$1.getSize():void 0}:void 0,v$1=u(u$1),w=v$1?{left:v$1==="left"?S.left.get(u$1.id):void 0,right:v$1==="right"?S.right.get(u$1.id):void 0}:void 0,k=R||w?{...R,...w}:void 0;T.set(u$1.id,{cellStyle:k,colStyle:R,fixedSide:v$1,headerStyle:k,isActionsColumn:g,isExpansionColumn:y,isSelectionColumn:s,isSpacerColumn:N,isUtilityColumn:C,pinnedClassName:v$1?v(v$1,m,{isUtilityColumn:C}):void 0,utilityClassName:C?"w-[50px] max-w-[50px] min-w-[50px] px-0":void 0});}return T},[A,V,d,E,S,m,p]),q=f.useMemo(()=>p.reduce((T,u)=>{let s=B.get(u.id),y=E.get(u.id),g=u.id===A;return s?.isUtilityColumn?T+a$1:V.has(u.id)?T+u.getSize():T+(y??(g?u.getSize():0))},0),[B,A,V,E,p]),F=f.useCallback(T=>B.get(T)??Ms,[B]);return {columnLayouts:B,explicitlySizedColumnIds:h,fillMinWidth:q,getColumnLayout:F}}function Ni(e){return w(e.id)?a$1:e.getSize()}function Hi(e,t){let n=e.classNames??{},{Button:i,Card:r,CardContent:l,CardHeader:d,Checkbox:m,Skeleton:p}=e;return function({rows:E,cardRenderer:S,cardSizing:A="fixed",cardGridClassName:V,cardClassName:B,rowActions:q,editableRows:F,detailPanel:T,detailExpanded:u,onDetailExpandedChange:s,hasCardTitle:y,rowSelection:g,onRowSelectionChange:C,enableRowSelection:N,editingRowId:D,onEditingRowIdChange:K,getRowClassName:W,onRowClick:O,getRowDraggable:R,onRowDragStart:v,onRowDragEnd:w,isLoading:k=false,loadingRowCount:M=5,labels:I}){let G=A??"fixed",x$1=V?a$2("grid",V):Vs(G),Z=a$2("min-h-0 w-full gap-4 p-1",n.cardGrid,x$1),j=z=>a$2("relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0",As(G),n.cardItem,B,z);return k?jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:Z,children:Array.from({length:Math.max(1,M)},(z,Y)=>jsxs(r,{role:"listitem","aria-hidden":"true","data-dtp-slot":"data-table-card-item",className:j("min-h-52"),children:[y?jsxs(d,{className:"px-4 pt-4 pb-3",children:[jsx(p,{className:"h-5 w-40 max-w-[70%]"}),jsx(p,{className:"h-4 w-24 max-w-[40%]"})]}):null,jsxs(l,{className:a$2("space-y-3 pb-4",y?"":"pt-4"),children:[jsx(p,{className:"h-4 w-full"}),jsx(p,{className:"h-4 w-[82%]"}),jsx(p,{className:"h-4 w-[68%]"}),jsx(p,{className:"h-24 w-full rounded-xl"})]})]},`loading-card-${Y}`))}):jsx("div",{role:"list","data-dtp-slot":"data-table-card-grid",className:Z,children:E.map(z=>{let Y=z.id,ne=z.original,be=!!g[Y],fe=D===Y,De=q.length>0||!!F,Se=!!(T&&(T.getRowCanExpand?.(ne)??true)),Te=N||De||y,Ee=N||De||z.getCanExpand()||Se,Ne=()=>{O&&O({row:ne,rowId:Y});};return jsxs(r,{role:"listitem","data-row-id":Y,"data-tree-depth":z.depth,draggable:R?.(ne)??false,"data-dtp-slot":"data-table-card-item","data-state":be?"selected":void 0,className:j(a$2([W?.(ne,{row:ne,rowId:Y,rowIndex:z.index,isEditing:fe,isExpanded:z.getIsExpanded(),isLoading:false,isSelected:be,pinnedPosition:false})].filter(Boolean).join(" "),"transition transition-colors hover:scale-101 data-[state=selected]:scale-101",n.card,be?n.cardSelected:n.cardUnselected)),onDragStart:J=>{v?.({row:ne,rowId:Y,event:J});},onDragEnd:J=>{w?.({row:ne,rowId:Y,event:J});},children:[Te?jsx("div",{"aria-hidden":"true",className:a$2("pointer-events-none absolute inset-x-0 top-0 z-10 h-24 bg-linear-to-b opacity-0 transition-opacity group-hover/card:opacity-100",n.cardOverlay??"from-transparent via-transparent to-transparent")}):null,jsx("div",{"data-dtp-slot":"data-table-card-renderer",role:O?"button":void 0,tabIndex:O?0:void 0,className:a$2("flex min-h-0 max-w-full min-w-0 overflow-hidden rounded-[inherit] [&>*]:min-w-0",Fs(G),O&&"cursor-pointer focus-visible:outline-none"),onClick:J=>{x(J.target,J.currentTarget)||Ne();},onKeyDown:J=>{x(J.target,J.currentTarget)||(J.key==="Enter"||J.key===" ")&&(J.preventDefault(),Ne());},children:S({row:ne,rowId:Y,depth:z.depth,canExpandSubRows:z.getCanExpand(),isSubRowsExpanded:z.getIsExpanded(),toggleSubRowsExpanded:()=>z.toggleExpanded(),isSelected:be,onSelectedChange:J=>{C(_i(g,Y,J,z.getCanSelect(),z.getCanMultiSelect()));},actions:q,isEditing:fe,startEditing:()=>{K(Y);},cancelEditing:()=>{K(null);}})}),fe||!T||!(u===true||u[z.id])?null:jsx("div",{"data-dtp-slot":"data-table-card-detail-panel",className:"relative z-20 min-w-0",children:T.render({row:ne,rowId:Y,tableRow:z})}),Ee?jsxs(d,{className:"absolute inset-x-0 top-0 z-20 flex flex-row items-center gap-3 space-y-0 px-4 pt-4 pb-8",children:[N?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(m,{checked:be,disabled:!z.getCanSelect(),"aria-label":(I.selectCardRow??oe.selectCardRow)(Y),onCheckedChange:J=>{C(_i(g,Y,J===true,z.getCanSelect(),z.getCanMultiSelect()));}})}):null,z.getCanExpand()?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(i,{type:"button",size:"icon-sm",variant:"ghost","aria-label":z.getIsExpanded()?I.collapseRow:I.expandRow,"aria-expanded":z.getIsExpanded(),onClick:()=>z.toggleExpanded(),children:jsx(c,{className:a$2("transition-transform",z.getIsExpanded()?"rotate-0":"-rotate-90")})})}):null,Se?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(i,{type:"button",size:"icon-sm",variant:"ghost","aria-label":u===true||u[z.id]?z.getCanExpand()?I.collapseRowDetails??oe.collapseRowDetails:I.collapseRow:z.getCanExpand()?I.expandRowDetails??oe.expandRowDetails:I.expandRow,"aria-expanded":u===true||!!u[z.id],"data-detail-toggle":"true",onClick:()=>{s(J=>b(J,z.id,E.map(he=>he.id)));},children:jsx(c,{className:a$2("transition-transform",u===true||u[z.id]?"rotate-0":"-rotate-90")})})}):null,jsx("div",{className:"pointer-events-none min-w-0 flex-1"}),De?jsx("div",{"data-row-click-ignore":"true",className:"pointer-events-auto",children:jsx(t,{row:ne,rowActions:q,editableRows:F,isEditing:fe,onStartEditing:()=>{K(Y);},onCancelEditing:()=>{K(null);},labels:I})}):null]}):null]},Y)})})}}function Vs(e){switch(e){case "content":return "flex flex-wrap items-start justify-start";case "fluid":return "grid grid-cols-[repeat(auto-fit,minmax(min(18rem,100%),1fr))]";default:return "grid grid-cols-[repeat(auto-fill,minmax(min(18rem,100%),18rem))] justify-start"}}function As(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full";default:return}}function Fs(e){switch(e){case "content":return "w-fit";case "fluid":return "w-full flex-1 [&>*]:w-full";default:return "flex-1"}}function _i(e,t,n,i,r){if(!i)return e;if(n)return r?{...e,[t]:true}:{[t]:true};if(!e[t])return e;let l={...e};return delete l[t],l}function Gi(e){let t=e.classNames??{},{Empty:n,EmptyContent:i,EmptyDescription:r,EmptyHeader:l,EmptyMedia:d,EmptyTitle:m}=e;return function({title:h="No rows found",description:E="Adjust your filters or create a new record to populate this table."}){return jsxs(n,{className:`min-h-60 rounded-2xl ${t.emptyState??"border bg-transparent"}`,children:[jsxs(l,{children:[jsx(d,{variant:"icon",children:jsx(p,{})}),jsx(m,{children:h}),jsx(r,{children:E})]}),jsx(i,{})]})}}function $i(e){let t=e.classNames??{},{Pagination:n,PaginationContent:i,PaginationEllipsis:r,PaginationFirst:l,PaginationItem:d,PaginationLast:m,PaginationLink:p,PaginationNext:h,PaginationPrevious:E,Select:S,SelectContent:A,SelectGroup:V,SelectItem:B,SelectTrigger:q,SelectValue:F,Tooltip:T,TooltipContent:u,TooltipTrigger:s}=e;function y({pageIndex:C,pageCount:N,pageCountKnown:D,pageSize:K,totalRowCount:W,rowsPerPageOptions:O,onPageIndexChange:R,onPageSizeChange:v,labels:w}){let k=D?Is(C,Math.max(1,N)):[],M=C>0,I=C+1{v(Number(x));},children:[jsx(q,{"aria-label":w.recordsPerPage,className:`w-22 ${t.paginationSelectTrigger??""}`,children:jsx(F,{})}),jsx(A,{children:jsx(V,{children:O.map(x=>jsx(B,{value:String(x),children:x},x))})})]})]}),W!==void 0?jsx("div",{className:"flex shrink-0 items-center justify-center",children:jsxs("div",{className:`inline-flex items-center gap-2 px-2.5 py-1.5 text-sm ${t.paginationTotal??""}`,"aria-label":w.totalRecords(W),children:[jsx(j$1,{className:"size-4"}),jsx("span",{className:"@min-[768px]/data-table:hidden",children:W}),jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:w.totalRecords(W)})]})}):null,jsxs("div",{className:"flex flex-1 items-center justify-end gap-4",children:[jsx("div",{className:`hidden text-sm @min-[768px]/data-table:inline ${t.mutedText??"opacity-70"}`,children:D?w.pageStatus(C,Math.max(1,N)):(w.pageStatusUnknown??oe.pageStatusUnknown)(C)}),jsx(n,{"aria-label":w.pagination??oe.pagination,className:"mx-0 w-auto justify-end",children:jsxs(i,{children:[jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(T,{children:[jsx(s,{asChild:true,children:jsx(l,{"aria-label":w.firstPage,href:"#",size:"icon-sm",showText:false,disabled:!M,onClick:x=>{x.preventDefault(),M&&R(0);},text:w.firstPage})}),jsx(u,{children:w.firstPage})]})}),jsx(d,{children:jsxs(T,{children:[jsx(s,{asChild:true,children:jsx(E,{"aria-label":w.previousPage,href:"#",size:"icon-sm",showText:false,disabled:!M,onClick:x=>{x.preventDefault(),M&&R(C-1);},text:w.previousPage})}),jsx(u,{children:w.previousPage})]})}),k.map((x,Z)=>jsx(d,{className:"hidden @min-[768px]/data-table:block",children:x==="ellipsis"?jsx(r,{text:w.morePages??oe.morePages}):jsx(p,{href:"#",isActive:x===C+1,size:"icon-sm",onClick:j=>{j.preventDefault(),R(x-1);},children:x})},`${x}-${Z}`)),jsx(d,{children:jsxs(T,{children:[jsx(s,{asChild:true,children:jsx(h,{"aria-label":w.nextPage,href:"#",size:"icon-sm",showText:false,disabled:!I,onClick:x=>{x.preventDefault(),I&&R(C+1);},text:w.nextPage})}),jsx(u,{children:w.nextPage})]})}),D?jsx(d,{className:"@min-[768px]/data-table:hidden",children:jsxs(T,{children:[jsx(s,{asChild:true,children:jsx(m,{"aria-label":w.lastPage,href:"#",size:"icon-sm",showText:false,text:w.lastPage,disabled:!I,onClick:x=>{x.preventDefault(),I&&R(G);}})}),jsx(u,{children:w.lastPage})]})}):null]})})]})]})}function g(C){return jsx("div",{className:`rounded-md border px-2 py-1 ${t.footer??""}`,children:jsx(y,{...C})})}return {DataTableFooter:g,DataTablePagination:y}}function Is(e,t){let n=e+1,i=new Set([1,t]);for(let d=Math.max(1,n-2);d<=Math.min(t,n+2);d+=1)i.add(d);let r=Array.from(i).sort((d,m)=>d-m),l=[];for(let d=0;d1&&l.push("ellipsis"),l.push(m);}return l}function ji(e){let{Button:t,DropdownMenu:n,DropdownMenuContent:i,DropdownMenuGroup:r,DropdownMenuItem:l,DropdownMenuSeparator:d,DropdownMenuTrigger:m$1,Tooltip:p,TooltipContent:h,TooltipTrigger:E}=e;return function({row:A,rowActions:V,editableRows:B,isEditing:q,onStartEditing:F,onCancelEditing:T,labels:u,rowPinning:s}){let y=V.filter(D=>d$1(D,A)),g=f.useCallback(D=>{D.stopPropagation();},[]);if(q)return jsxs(p,{children:[jsx(E,{asChild:true,children:jsxs(t,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:g,onClick:T,children:[jsx(u$1,{}),jsx("span",{className:"sr-only",children:u.cancelEdit})]})}),jsx(h,{children:u.cancelEdit})]});let C=e$2(B,A),N=s?.canPin??false;return !y.length&&!C&&!N?null:jsxs(n,{children:[jsxs(p,{children:[jsx(E,{asChild:true,children:jsx(m$1,{asChild:true,children:jsxs(t,{type:"button",variant:"ghost",size:"icon-sm",onPointerDown:g,onClick:g,children:[jsx(k,{}),jsx("span",{className:"sr-only",children:u.rowActions})]})})}),jsx(h,{children:u.rowActions})]}),jsxs(i,{align:"end",className:"w-52",children:[C?jsx(r,{children:jsxs(l,{onClick:D=>{D.stopPropagation(),F();},children:[jsx(m,{"data-icon":"inline-start"}),u.editRow]})}):null,C&&(y.length||N)?jsx(d,{}):null,N?jsx(r,{children:s?.position?jsx(l,{onClick:D=>{D.stopPropagation(),s.pin(false);},children:u.unpinRow}):jsxs(Fragment,{children:[jsx(l,{onClick:D=>{D.stopPropagation(),s?.pin("top");},children:u.pinRowToTop}),jsx(l,{onClick:D=>{D.stopPropagation(),s?.pin("bottom");},children:u.pinRowToBottom})]})}):null,N&&y.length?jsx(d,{}):null,y.length?jsx(r,{children:y.map(D=>{let K=D.icon;return jsxs(l,{disabled:D.disabled?.(A),variant:D.variant==="destructive"?"destructive":void 0,onClick:W=>{W.stopPropagation(),D.onClick(A);},children:[K?jsx(K,{"data-icon":"inline-start"}):null,c$2(D.label,A)]},D.key)})}):null]})]})}}var Ls=f.lazy(()=>import('./data-table-toolbar-operations-IDEGCKBK.js'));function Wi(e){let t=e.classNames??{},{Button:n,ButtonGroup:i,DropdownMenu:r,DropdownMenuCheckboxItem:l,DropdownMenuContent:d,DropdownMenuGroup:m,DropdownMenuItem:p,DropdownMenuLabel:h,DropdownMenuSeparator:E,DropdownMenuTrigger:S,InputGroup:A,InputGroupAddon:V,InputGroupInput:B,Tooltip:q,TooltipContent:F,TooltipTrigger:T}=e;return function({title:y,titleId:g,description:C,descriptionId:N,toolbarQueryValue:D,toolbarQueryPlaceholder:K,onToolbarQueryValueChange:W,customToolbar:O,compactToolbar:R,viewMode:v,onViewModeChange:w,enableViewToggle:k,toolbarActions:M,selectionActions:I,selectedRows:G,selectedRowIds:x,showHiddenRows:Z,hiddenRowsLabel:j,onShowHiddenRowsChange:z,allRows:Y,columnVisibilityOptions:ne,onColumnVisibilityChange:be,enableColumnPinning:fe,onColumnPinningChange:De,columnFilters:Se,onColumnFilterChange:Te,onClearColumnFilters:Ee,density:Ne,onDensityChange:J,enableDensityToggle:he,labels:L,toolbarVisibility:we,openFileDialog:Ge,enableGrouping:nt,enableToolbarColumnChooser:Ye,enableToolbarFilterChips:ot,enableToolbarResetLayout:se,enableToolbarSavedViews:it,savedViews:Ve,onResetColumnLayout:gt,onCreateSavedView:Oe,onApplySavedView:Rt,onRenameSavedView:mt,onDeleteSavedView:Je,reorderColumn:bt,table:ye}){let rt=f.useRef(null),[_e,lt]=f.useState(false),ve=t.toolbarCompactIconButton??"",He=M.filter(a=>(a.placement??"primary")==="primary"),St=M.filter(a=>a.placement==="trailing"),Xe=we?.title??true,de=we?.search??true,vt=we?.actions??true,ft=we?.trailingActions??true,Tt=we?.options??true,Ae=we?.viewToggle??true,$e=we?.customToolbar??true,wt=Xe&&!!(y||C),Be=de,Lt=vt&&He.length>0,Pt=x.length>0&&I.length>0,ke=Tt&&(ne.some(a=>a.canHide)||!!(z&&j)||fe||he||nt||Ye||se||it),Ue=Ye||se||it,st=Se.filter(a=>_n(a.value)),dt={Button:n,DropdownMenuCheckboxItem:l,DropdownMenuGroup:m,DropdownMenuItem:p,DropdownMenuLabel:h,DropdownMenuSeparator:E,InputGroup:A,InputGroupAddon:V,InputGroupInput:B},Ze=a=>jsx(f.Suspense,{fallback:null,children:jsx(Ls,{placement:a,ui:dt,labels:L,enableColumnChooser:Ye,enableFilterChips:ot,enableResetLayout:se,enableSavedViews:it,enableColumnPinning:fe,columnVisibilityOptions:ne,onColumnVisibilityChange:be,onColumnPinningChange:De,reorderColumn:bt,table:ye,onResetColumnLayout:gt,savedViews:Ve,onCreateSavedView:Oe,onApplySavedView:Rt,onRenameSavedView:mt,onDeleteSavedView:Je,toolbarQueryValue:D,onToolbarQueryValueChange:W,activeColumnFilters:st,onColumnFilterChange:Te,onClearColumnFilters:Ee})}),xt=ye.getAllLeafColumns().filter(a=>!a.id.startsWith("__")&&a.getCanGroup()),je=ye.getState().grouping.flatMap(a=>{let b=ye.getColumn(a);return b?[b]:[]}),Ct=Ae&&k&&!!w,Nt=ft&&St.length>0,Ke=$e&&!!O,Et=$e&&!!(R??O),kt=L.selectedRows(x.length);return f.useEffect(()=>{_e&&rt.current?.focus();},[_e]),!wt&&!Be&&!Lt&&!Pt&&!ke&&!Ct&&!Nt&&!Ke&&!Et?null:jsxs("div",{className:"flex flex-col gap-4 pb-0",children:[Xe&&(y||C)?jsxs("div",{className:"flex flex-col gap-1",children:[y?jsx("h2",{id:g,className:"text-lg font-semibold tracking-tight",children:y}):null,C?jsx("p",{id:N,className:`max-w-3xl text-sm ${t.mutedText??"opacity-70"}`,children:C}):null]}):null,jsxs("div",{className:"flex flex-col gap-3",children:[jsxs("div",{"data-dtp-slot":"data-table-toolbar-controls",className:"flex items-center gap-2 overflow-x-auto px-1 @min-[768px]/data-table:gap-3 @min-[768px]/data-table:overflow-visible",children:[de?jsxs(Fragment,{children:[jsx("div",{className:"hidden min-w-0 grow max-w-md @min-[768px]/data-table:block",children:jsxs(A,{className:"min-w-0",children:[jsx(B,{value:D,onChange:a=>{W(a.target.value);},placeholder:K}),jsx(V,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),D?jsx(V,{align:"inline-end",children:jsx("button",{type:"button",className:`inline-flex size-5 items-center justify-center rounded-md transition-colors focus-visible:outline-none ${t.toolbarIconButton??"opacity-70 hover:opacity-100"}`,onClick:()=>{W("");},"aria-label":L.clearSearch,title:L.clearSearch,children:jsx(u$1,{})})}):null]})}),jsxs(q,{children:[jsx(T,{asChild:true,children:jsxs(n,{type:"button",variant:_e||D?"secondary":"outline",size:"icon-sm","aria-label":L.searchTable,"aria-pressed":_e,className:`shrink-0 @min-[768px]/data-table:hidden ${ve} ${t.toolbarInputButton??""}`,onClick:()=>{lt(a=>!a);},children:[jsx(s$1,{}),jsx("span",{className:"sr-only",children:L.searchTable})]})}),jsx(F,{children:L.searchTable})]})]}):null,vt?jsx("div",{className:"flex shrink-0 items-center gap-2",children:He.map(a=>{let b=!a.iconOnly&&!!a.icon,U=jsxs(n,{type:"button",className:b?`size-7 shrink-0 px-0 @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit @min-[768px]/data-table:px-2.5 ${ve}`:a.iconOnly?`size-7 shrink-0 @min-[768px]/data-table:size-8 ${ve}`:"size-7 shrink-0 @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit",variant:a.variant??"outline",size:a.iconOnly?"icon":"default",onClick:()=>{a.onClick({rows:Y,openFileDialog:Ge});},disabled:a.disabled,"aria-label":a.label,title:a.iconOnly?void 0:a.label,children:[a.icon?jsx(a.icon,{}):null,a.iconOnly?jsx("span",{className:"sr-only",children:a.label}):b?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:a.label}):jsx("span",{children:a.label})]},a.key);return a.iconOnly?jsxs(q,{children:[jsx(T,{asChild:true,children:U}),jsx(F,{children:a.label})]},a.key):U})}):null,Et?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-custom",className:"flex shrink-0 items-center gap-2 @min-[1024px]/data-table:hidden",children:R??O}):null,jsx("div",{className:"grow","aria-hidden":"true"}),jsxs("div",{"data-dtp-slot":"data-table-toolbar-end-controls",className:"flex shrink-0 items-center gap-2",children:[x.length?jsx("div",{className:`hidden text-sm @min-[768px]/data-table:block ${t.mutedText??"opacity-70"}`,children:kt}):null,x.length?I.map(a=>{let b=a.icon,U={rows:G,rowIds:x},ce=typeof a.disabled=="function"?a.disabled(G,U):a.disabled;return jsxs(q,{children:[jsx(T,{asChild:true,children:jsxs(n,{type:"button",variant:a.variant??"secondary",size:"icon-sm",className:ve,disabled:ce,onClick:()=>{a.onClick(U);},"aria-label":a.label,children:[b?jsx(b,{}):null,jsx("span",{className:"sr-only",children:a.label})]})}),jsx(F,{children:a.label})]},a.key)}):null,ke?jsxs(r,{children:[jsx(S,{asChild:true,children:jsxs(n,{type:"button",variant:"outline",size:"icon-sm","aria-label":L.tableOptions,className:`${ve} ${t.toolbarInputButton??""}`,title:L.tableOptions,children:[jsx(a$5,{}),jsx("span",{className:"sr-only",children:L.tableOptions})]})}),jsxs(d,{align:"end",className:"w-56",children:[jsx(h,{children:L.tableOptions}),jsx(m,{children:z&&j?jsx(l,{checked:Z,onCheckedChange:a=>{z(a===true);},children:L.showHiddenRows(j)}):null}),he?jsxs(Fragment,{children:[jsx(E,{}),jsx(h,{children:L.density}),jsx(m,{children:[["compact",L.compactDensity],["comfortable",L.comfortableDensity],["spacious",L.spaciousDensity]].map(([a,b])=>jsx(l,{checked:Ne===a,onCheckedChange:()=>{J(a);},children:b},a))})]}):null,Ue?Ze("menu"):null,!Ye&&ne.some(a=>a.canHide)?jsxs(Fragment,{children:[jsx(E,{}),jsx(h,{children:L.columns}),jsx(m,{children:ne.filter(a=>a.canHide).map(a=>jsx(l,{checked:a.visible,onCheckedChange:b=>{be?.(a.id,b===true);},children:a.label},a.id))})]}):null,fe&&!Ye?jsxs(Fragment,{children:[jsx(E,{}),jsxs(h,{children:[L.pinLeft," / ",L.pinRight]}),jsx(m,{children:ne.map(a=>jsxs(p,{onSelect:b=>{b.preventDefault();},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:a.label}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${L.pinLeft}: ${a.label}`,onClick:b=>{b.stopPropagation(),De(a.id,"left");},children:"L"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${L.pinRight}: ${a.label}`,onClick:b=>{b.stopPropagation(),De(a.id,"right");},children:"R"}),jsx("button",{type:"button",className:"px-1 text-xs","aria-label":`${L.unpin}: ${a.label}`,onClick:b=>{b.stopPropagation(),De(a.id,false);},children:"-"})]},`pin-${a.id}`))})]}):null,nt&&xt.length?jsxs(Fragment,{children:[jsx(E,{}),jsx(h,{children:L.grouping}),jsx(m,{children:xt.map(a=>{let b=typeof a.columnDef.header=="string"?a.columnDef.header:a.id,U=a.getIsGrouped();return jsx(l,{checked:U,onCheckedChange:()=>{a.toggleGrouping();},children:U?L.ungroup(b):L.groupBy(b)},`group-${a.id}`)})})]}):null]})]}):null,Ae&&k&&w?jsxs(i,{children:[jsxs(q,{children:[jsx(T,{asChild:true,children:jsxs(n,{type:"button",variant:v==="table"?"default":"outline","aria-pressed":v==="table",className:v==="table"?ve:`${ve} ${t.toolbarInputButton??""}`,size:"icon-sm",onClick:()=>{w("table");},children:[jsx(r$1,{}),jsx("span",{className:"sr-only",children:L.switchToTableView??oe.switchToTableView})]})}),jsx(F,{children:L.tableView??oe.tableView})]}),jsxs(q,{children:[jsx(T,{asChild:true,children:jsxs(n,{type:"button",variant:v==="card"?"default":"outline","aria-pressed":v==="card",className:v==="table"?`${ve} ${t.toolbarInputButton??""}`:ve,size:"icon-sm",onClick:()=>{w("card");},children:[jsx(q$1,{}),jsx("span",{className:"sr-only",children:L.switchToCardView??oe.switchToCardView})]})}),jsx(F,{children:L.cardView??oe.cardView})]})]}):null,ft?St.map(a=>{let b=!a.iconOnly&&!!a.icon,U=jsxs(n,{type:"button",variant:a.variant??"outline",size:a.iconOnly?"icon-sm":"default",onClick:()=>{a.onClick({rows:Y,openFileDialog:Ge});},disabled:a.disabled,"aria-label":a.label,title:a.iconOnly?void 0:a.label,className:`size-7 shrink-0 ${a.iconOnly?"":`${b?"px-0 @min-[768px]/data-table:px-2.5":""} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${a.iconOnly||b?ve:""} ${t.toolbarInputButton??""}`,children:[a.icon?jsx(a.icon,{"data-icon":a.iconOnly?void 0:"inline-start"}):null,a.iconOnly?jsx("span",{className:"sr-only",children:a.label}):b?jsx("span",{className:"hidden @min-[768px]/data-table:inline",children:a.label}):jsx("span",{children:a.label})]},a.key);return a.iconOnly?jsxs(q,{children:[jsx(T,{asChild:true,children:U}),jsx(F,{children:a.label})]},a.key):U}):null]})]}),de&&_e?jsx("div",{"data-dtp-slot":"data-table-toolbar-compact-search",className:"min-w-0 @min-[768px]/data-table:hidden",children:jsxs(A,{children:[jsx(B,{ref:rt,value:D,onChange:a=>{W(a.target.value);},placeholder:K}),jsx(V,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})}),D?jsx(V,{align:"inline-end",children:jsx("button",{type:"button",className:`inline-flex size-5 items-center justify-center rounded-md transition-colors focus-visible:outline-none ${t.toolbarIconButton??"opacity-70 hover:opacity-100"}`,onClick:()=>{W("");},"aria-label":L.clearSearch,title:L.clearSearch,children:jsx(u$1,{})})}):null]})}):null,Se.length?jsxs("div",{"data-dtp-slot":"data-table-toolbar-filters",className:"flex min-w-0 flex-wrap items-center gap-2",children:[Se.map(a=>jsx(u,{filter:a,labels:L,onColumnFilterChange:Te},a.id)),Se.some(a=>_n(a.value))?jsx(n,{type:"button",variant:"ghost",size:"sm",onClick:Ee,children:L.clearFilters}):null]}):null,ot?Ze("chips"):null,nt&&je.length?jsxs("div",{"data-dtp-slot":"data-table-grouping-bar","aria-label":L.grouping,className:"flex flex-wrap items-center gap-2",children:[jsxs("span",{className:"text-sm opacity-70",children:[L.grouping,":"]}),je.map((a,b)=>{let U=typeof a.columnDef.header=="string"?a.columnDef.header:a.id,ce=ae=>{let _=[...ye.getState().grouping],[et]=_.splice(b,1);et!==void 0&&(_.splice(ae,0,et),ye.setGrouping(_));};return jsxs("div",{className:"inline-flex items-center rounded-md border",children:[jsx(n,{type:"button",variant:"ghost",size:"sm",disabled:b===0,onClick:()=>ce(b-1),"aria-label":L.moveGroupingEarlier(U),children:jsx("span",{"aria-hidden":"true",children:"\u2190"})}),jsxs(n,{type:"button",variant:"secondary",size:"sm",onClick:()=>a.toggleGrouping(),"aria-label":L.removeGrouping(U),children:[U," ",jsx("span",{"aria-hidden":"true",children:"\xD7"})]}),jsx(n,{type:"button",variant:"ghost",size:"sm",disabled:b===je.length-1,onClick:()=>ce(b+1),"aria-label":L.moveGroupingLater(U),children:jsx("span",{"aria-hidden":"true",children:"\u2192"})})]},`grouping-bar-${a.id}`)})]}):null]}),$e&&O?jsx("div",{"data-dtp-slot":"data-table-toolbar-desktop-custom",className:"hidden flex-row items-center gap-3 @min-[1024px]/data-table:flex",children:O}):null]})};function u({filter:s,labels:y,onColumnFilterChange:g}){let[C,N]=f.useState("");if(s.type==="text")return jsxs(A,{className:"min-w-48 max-w-64",children:[jsx(B,{value:typeof s.value=="string"?s.value:"",onChange:M=>{g(s.id,M.target.value);},placeholder:s.placeholder??s.label,"aria-label":`${y.filters}: ${s.label}`}),jsx(V,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]});if(s.type==="numberRange"||s.type==="dateRange"){let M=Ns(s.value),I=s.type==="numberRange"?"number":"date",G=y.filterFrom??oe.filterFrom,x=y.filterTo??oe.filterTo;return jsxs("div",{role:"group","aria-label":`${y.filters}: ${s.label}`,className:"flex min-w-0 items-center gap-1.5",children:[jsxs(A,{className:"min-w-32 max-w-44",children:[jsx(B,{type:I,inputMode:I==="number"?"decimal":void 0,value:M.from??"",min:s.min,max:s.max,step:I==="number"?s.step:void 0,onChange:Z=>{g(s.id,{...M,from:Ki(Z.target.value,I)});},"aria-label":`${s.label}: ${G}`}),jsx(V,{align:"inline-start",children:G})]}),jsxs(A,{className:"min-w-32 max-w-44",children:[jsx(B,{type:I,inputMode:I==="number"?"decimal":void 0,value:M.to??"",min:s.min,max:s.max,step:I==="number"?s.step:void 0,onChange:Z=>{g(s.id,{...M,to:Ki(Z.target.value,I)});},"aria-label":`${s.label}: ${x}`}),jsx(V,{align:"inline-start",children:x})]})]})}let D=s.type==="boolean",K=s.type==="faceted",W=[{label:s.trueLabel??y.filterTrue??oe.filterTrue,value:"true"},{label:s.falseLabel??y.filterFalse??oe.filterFalse,value:"false"}],O=D?W:s.options,R=K&&C?O.filter(M=>M.label.toLocaleLowerCase().includes(C.toLocaleLowerCase())):O,v=typeof s.value=="string"||typeof s.value=="boolean"?String(s.value):"",w=Array.isArray(s.value)?s.value.map(String):v?[v]:[],k=w.length===0?s.label:`${s.label}: ${w.length===1?O.find(M=>M.value===String(w[0]))?.label??w[0]:w.length}`;return jsxs(r,{children:[jsx(S,{asChild:true,children:jsx(n,{type:"button",variant:"outline",size:"sm",children:k})}),jsxs(d,{align:"start",className:"w-56",children:[jsx(h,{children:s.label}),K&&s.searchable!==false?jsx("div",{className:"px-2 pb-2",children:jsxs(A,{children:[jsx(B,{value:C,onChange:M=>{N(M.target.value);},placeholder:s.searchPlaceholder??y.facetSearch(s.label),"aria-label":y.facetSearch(s.label)}),jsx(V,{align:"inline-start","aria-hidden":"true",children:jsx(s$1,{})})]})}):null,jsxs(m,{children:[s.type==="select"||D||K?jsx(p,{onClick:()=>{g(s.id,"");},children:y.allFilterOptions??oe.allFilterOptions}):null,R.map(M=>jsxs(l,{checked:w.includes(M.value),disabled:M.disabled,onCheckedChange:I=>{if(s.type==="select"||D){g(s.id,I===true?M.value:"");return}let G=new Set(w);I===true?G.add(M.value):G.delete(M.value),g(s.id,Array.from(G));},children:[jsx("span",{className:"min-w-0 flex-1 truncate",children:M.label}),M.count!==void 0?jsx("span",{className:"ml-3 tabular-nums opacity-70",children:M.count}):null]},M.value))]})]})]})}}function _n(e){return Array.isArray(e)?e.length>0:e&&typeof e=="object"?"from"in e||"to"in e?Object.values(e).some(_n):true:e!=null&&e!==""}function Ns(e){if(!e||typeof e!="object"||Array.isArray(e))return {};let t=e;return {...typeof t.from=="number"||typeof t.from=="string"?{from:t.from}:{},...typeof t.to=="number"||typeof t.to=="string"?{to:t.to}:{}}}function Ki(e,t){if(e)return t==="number"?Number(e):e}var Os=f.lazy(async()=>({default:(await import('./data-table-virtual-table-panel-GCAMBHTG.js')).DataTableVirtualTablePanel}));function Qi(e){let t=typeof e.virtualization=="object"?e.virtualization:void 0;return e.virtualization===true||t?.enabled===true?jsx(f.Suspense,{fallback:jsx(e$1,{...e,rowsToRender:e.rowsToRender.slice(0,Math.max(1,Math.floor(t?.fallbackRowCount??20)))}),children:jsx(Os,{...e})}):jsx(e$1,{...e})}var _s="data-table-pro:saved-views:";var Yi=["sorting","columnVisibility","columnFilters","grouping","columnOrder","columnPinning","rowPinning","columnSizing","density","viewMode","showHiddenRows","globalFilter"],qi=0;function jt(e){let t=$n(e);if(!e||!t)return [];let n;try{n=t.getItem(Un(e.key));}catch(d){return e.onError?.({error:d,operation:"read"}),[]}if(!n)return [];let i;try{i=(e.deserialize??JSON.parse)(n);}catch(d){return e.onError?.({error:d,operation:"deserialize"}),[]}if(!Qe(i)||!("version"in i)||!("views"in i))return [];let r=e.version??1,l=i.views;if(i.version!==r){if(!e.migrate)return [];try{l=e.migrate({version:i.version,views:i.views},r);}catch(d){return e.onError?.({error:d,operation:"migrate"}),[]}}return Array.isArray(l)?l.map(d=>Bs(d,e.slices)).filter(d=>!!d):[]}function Ji(e,t,n){let i=t.trim();if(!e||!i)return;let r=new Date().toISOString(),l={id:qs(),name:i,createdAt:r,updatedAt:r,state:Hs(n,e.slices)},d=[...jt(e),l];return Bn(e,d,"create")?Gn(l):void 0}function Xi(e,t,n){let i=n.trim();if(!e||!i)return;let r,l=jt(e).map(d=>d.id!==t?d:(r={...d,name:i,updatedAt:new Date().toISOString()},r));if(r)return Bn(e,l,"rename")?Gn(r):void 0}function Zi(e,t){if(!e)return false;let n=jt(e),i=n.filter(r=>r.id!==t);return i.length!==n.length&&Bn(e,i,"delete")}function er(e){let t=$n(e);if(!e||!t)return false;try{t.removeItem(Un(e.key));}catch(n){return e.onError?.({error:n,operation:"remove"}),false}return e.onChange?.([],"clear"),true}function Bn(e,t,n){let i=$n(e);if(!i)return false;let r;try{let d={version:e.version??1,views:t};r=(e.serialize??JSON.stringify)(d);}catch(d){return e.onError?.({error:d,operation:"serialize"}),false}try{i.setItem(Un(e.key),r);}catch(d){return e.onError?.({error:d,operation:"write"}),false}let l=t.map(Gn);return e.onChange?.(l,n),true}function Hs(e,t){let n=new Set(t??Yi),i={};for(let r of Object.keys(e))n.has(r)&&Object.assign(i,{[r]:Gs(r,e[r])});return i}function Bs(e,t){if(!(!Qe(e)||typeof e.id!="string"||!e.id||typeof e.name!="string"||!e.name.trim()||typeof e.createdAt!="string"||typeof e.updatedAt!="string"))return {id:e.id,name:e.name.trim(),createdAt:e.createdAt,updatedAt:e.updatedAt,state:tr(e.state,t)}}function tr(e,t){if(!Qe(e))return {};let n=new Set(t??Yi),i={},r=$s(e.sorting);n.has("sorting")&&r&&(i.sorting=r);let l=Us(e.pagination);n.has("pagination")&&l&&(i.pagination=l);let d=Hn(e.rowSelection);n.has("rowSelection")&&d&&(i.rowSelection=d);let m=Hn(e.columnVisibility);n.has("columnVisibility")&&m&&(i.columnVisibility=m);let p=js(e.columnFilters);n.has("columnFilters")&&p&&(i.columnFilters=p);let h=oa(e.grouping);n.has("grouping")&&h&&(i.grouping=h);let E=e.expanded===true?true:Hn(e.expanded);n.has("expanded")&&E!==void 0&&(i.expanded=E);let S=oa(e.columnOrder);n.has("columnOrder")&&S&&(i.columnOrder=S);let A=Ks(e.columnPinning);n.has("columnPinning")&&A&&(i.columnPinning=A);let V=Ws(e.rowPinning);n.has("rowPinning")&&V&&(i.rowPinning=V);let B=Qs(e.columnSizing);return n.has("columnSizing")&&B&&(i.columnSizing=B),n.has("density")&&(e.density==="compact"||e.density==="comfortable"||e.density==="spacious")&&(i.density=e.density),n.has("viewMode")&&(e.viewMode==="table"||e.viewMode==="card")&&(i.viewMode=e.viewMode),n.has("showHiddenRows")&&typeof e.showHiddenRows=="boolean"&&(i.showHiddenRows=e.showHiddenRows),n.has("globalFilter")&&typeof e.globalFilter=="string"&&(i.globalFilter=e.globalFilter),i}function Gn(e){return {...e,state:tr(e.state,Object.keys(e.state))}}function Gs(e,t){return Array.isArray(t)?t.map(n=>Qe(n)?{...n}:n):Qe(t)?e==="columnPinning"||e==="rowPinning"?{...e==="columnPinning"?{left:Array.isArray(t.left)?[...t.left]:void 0,right:Array.isArray(t.right)?[...t.right]:void 0}:{top:Array.isArray(t.top)?[...t.top]:void 0,bottom:Array.isArray(t.bottom)?[...t.bottom]:void 0}}:{...t}:t}function $s(e){if(Array.isArray(e))return e.filter(t=>Qe(t)&&typeof t.id=="string").map(t=>({id:t.id,desc:!!t.desc}))}function Us(e){if(!(!Qe(e)||!Number.isInteger(e.pageIndex)||e.pageIndex<0||!Number.isInteger(e.pageSize)||e.pageSize<1))return {pageIndex:e.pageIndex,pageSize:e.pageSize}}function js(e){if(Array.isArray(e))return e.filter(t=>Qe(t)&&typeof t.id=="string"&&Object.prototype.hasOwnProperty.call(t,"value")).map(t=>({id:t.id,value:t.value}))}function Ks(e){if(Qe(e))return {left:oa(e.left)??[],right:oa(e.right)??[]}}function Ws(e){if(Qe(e))return {top:oa(e.top)??[],bottom:oa(e.bottom)??[]}}function Hn(e){if(Qe(e))return Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="boolean"))}function Qs(e){if(Qe(e))return Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="number"&&Number.isFinite(t[1])&&t[1]>=0))}function oa(e){if(Array.isArray(e))return e.filter(t=>typeof t=="string")}function $n(e){if(e){if(e.storage)return e.storage;if(!(typeof window>"u"))try{return window.localStorage}catch(t){e.onError?.({error:t,operation:"read"});return}}}function qs(){return typeof globalThis.crypto?.randomUUID=="function"?globalThis.crypto.randomUUID():(qi+=1,`view-${Date.now().toString(36)}-${qi.toString(36)}`)}function Un(e){return `${_s}${e}`}function Qe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ar({columns:e,currentColumnFilters:t$1,currentColumnPinning:n,effectiveColumnVisibility:i,enableColumnFilters:r$1,handleColumnFiltersChange:l$1,handleColumnPinningChange:d,labels:m,table:p,toolbarActions:h,visibleData:E,csvExport:S}){let A=f.useMemo(()=>j(e).map(({column:s,index:y})=>{let g=r(s,y),C=s.header,N=t(s),D=typeof C=="string"?C:N?B(N):B(g),K=n.left?.includes(g)===true?"left":n.right?.includes(g)===true?"right":false;return {id:g,label:D,visible:i[g]!==false,canHide:s.enableHiding!==false,pinned:K}}),[e,n,i]),V=f.useMemo(()=>r$1===false?[]:j(e).flatMap(({column:s,index:y})=>{let g=s.meta?.filter;if(!g)return [];let C=r(s,y),N=s.header,D=t(s),K=g.label??(typeof N=="string"?N:D?B(D):B(C)),W=t$1.find(w=>w.id===C),O=g.faceting?.options,R=g.type==="numberRange"?p.getColumn(C)?.getFacetedMinMaxValues():void 0,v=g.type==="faceted"&&O?typeof O=="function"?O({rows:E}):O:g.type==="faceted"?Array.from(p.getColumn(C)?.getFacetedUniqueValues()??[]).map(([w,k])=>({label:g.faceting?.getOptionLabel?.(w)??String(w),value:String(w),count:k})):typeof g.options=="function"?g.options({rows:E}):g.options??[];return [{id:C,label:K,type:g.type,value:W?.value,placeholder:g.placeholder,options:k$1(v),searchable:g.faceting?.searchable,searchPlaceholder:g.faceting?.searchPlaceholder,trueLabel:g.trueLabel,falseLabel:g.falseLabel,min:g.min??R?.[0],max:g.max??R?.[1],step:g.step}]}),[e,t$1,r$1,p,E]),B$1=f.useCallback((s,y)=>{l$1(g=>{let C=g.filter(N=>N.id!==s);return m$1(y)&&C.push({id:s,value:y}),C});},[l$1]),q=f.useCallback(()=>{l$1([]);},[l$1]),F=f.useCallback((s,y)=>{d(g=>{let C=(g.left??[]).filter(D=>D!==s),N=(g.right??[]).filter(D=>D!==s);return y==="left"&&C.push(s),y==="right"&&N.push(s),{left:C,right:N}});},[d]),T=f.useCallback(()=>{if(S)return o({csvExport:S,table:p,labels:m})},[S,m,p]),u=f.useMemo(()=>S?[...h??[],{key:"__csv_export__",label:m.exportCsv,icon:l,placement:"trailing",onClick:T}]:h??[],[S,T,m.exportCsv,h]);return {columnVisibilityOptions:A,effectiveToolbarActions:u,handleClearColumnFilters:q,handleToolbarColumnFilterChange:B$1,handleToolbarColumnPinningChange:F,toolbarColumnFilters:V}}function or({columns:e,data:t,getRowId:n}){let i=f.useRef({columns:e,data:t,getRowId:n}),r=f.useRef(new Set);f.useEffect(()=>{if(!Ys())return;let l=i.current;l.data!==t&&nr(l.data,t)&&!r.current.has("data")&&ja(r.current,"data","The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused."),l.columns!==e&&nr(l.columns,e)&&!r.current.has("columns")&&ja(r.current,"columns","The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused."),l.getRowId!==n&&!r.current.has("getRowId")&&ja(r.current,"getRowId","getRowId identity changed. Memoize it and return an immutable, unique id to preserve row state and virtual scroll anchoring.");let d=new Set;for(let m=0;mObject.is(n,t[i]))}function ja(e,t,n){e.add(t),console.warn(`[data-table-pro] ${n}`);}function Ys(){return globalThis.process?.env?.NODE_ENV!=="production"}var Xs=f.lazy(()=>import('./data-table-auto-page-size-EICVZJQ5.js'));function Kc(e){return Zs(e)}function Zs(e,t={}){let n=t.CardPanel??Ti,i=t.TablePanel??Qi,r$1=e.classNames??{},{rootClassName:l,Button:d,Checkbox:m,Input:p,ScrollArea:h$1,ScrollBar:E,Skeleton:S,Table:A,TableBody:V,TableCell:B,TableFooter:q$1="tfoot",TableHead:F,TableHeader:T,TableRow:u,Tooltip:s$1,TooltipContent:y,TooltipProvider:g=f.Fragment,TooltipTrigger:C}=e,N=Gi(e),D=ji(e),{DataTableFooter:K}=$i(e),W=Wi(e),O=Hi(e,D),R=f.lazy(async()=>{let{createDataTableStateOverlay:w}=await import('./data-table-state-overlay-AQ7VU6EM.js');return {default:w(e)}}),v={minSize:80,size:180,maxSize:720};return function({columns:k,data:M,getRowId:I,children:G,title:x,description:Z,toolbarQueryValue:j$1,onToolbarQueryValueChange:z,toolbarQueryPlaceholder:Y,toolbarQueryDebounceMs:ne,manualFiltering:be=false,enableToolbarQueryFiltering:fe=true,globalFilterFn:De,columnFilters:Se,onColumnFiltersChange:Te,enableColumnFilters:Ee,customToolbar:Ne,compactToolbar:J,rowsPerPageOptions:he=[10,20,50,100],totalRowCount:L,hasNextPage:we,sorting:Ge,onSortingChange:nt,manualSorting:Ye=false,grouping:ot,onGroupingChange:se,manualGrouping:it=false,enableGrouping:Ve=false,groupedColumnMode:gt="reorder",aggregationFns:Oe,pageIndex:Rt,pageSize:mt,autoPageSize:Je=false,onPageIndexChange:bt,onPageSizeChange:ye,pageCount:rt,manualPagination:_e=false,rowSelection:lt,onRowSelectionChange:ve,enableRowSelection:He=false,enableMultiRowSelection:St=true,enableSubRowSelection:Xe=true,getRowCanSelect:de,rowSelectionSelectAllScope:vt="page",expanded:ft,onExpandedChange:Tt,getSubRows:Ae,manualExpanding:$e=false,paginateExpandedRows:wt,filterFromLeafRows:Be,maxLeafRowFilterDepth:Lt,detailPanel:Pt,getRowCanExpand:ke,renderExpandedRow:Ue,columnOrder:st,onColumnOrderChange:dt,enableColumnReordering:Ze=false,columnGroupHeaderHeight:xt,columnPinning:je,onColumnPinningChange:Ct,enableColumnPinning:Nt=false,rowPinning:Ke,onRowPinningChange:Et,enableRowPinning:kt=false,keepPinnedRows:a=true,toolbarActions:b=[],selectionActions:U=[],rowActions:ce=[],csvExport:ae,clipboard:_,enableCellSelection:et=false,cellSelection:Ot,defaultCellSelection:_t,onCellSelectionChange:Ka,gridCommands:Mt,density:ia,onDensityChange:Wa,enableDensityToggle:Qa=false,columnPrefsKey:$,persistence:Pe,savedViews:ie,toolbarDataOperations:ct,initialState:te,state:ue,onStateChange:Ce,apiRef:lr,labels:Kn,summaryRows:sr=[],cardRenderer:qa,cardSizing:dr,cardGridClassName:cr,cardClassName:ur,viewMode:Wn,onViewModeChange:pr,enableViewToggle:gr=false,enablePrint:Qn=false,enableFullscreen:Ta=false,emptyState:mr,stateOverlay:Kt,isLoading:qn=false,loadingRowCount:br,getRowLoadingState:fr,hiddenRows:Yn,showHiddenRows:Jn,onShowHiddenRowsChange:Tr,infiniteScroll:wa,editableRows:Vt,columnVisibility:Xn,onColumnVisibilityChange:wr,columnSizing:Zn,onColumnSizingChange:Cr,enableColumnResizing:eo=false,columnResizeMode:Dr="onEnd",layoutMode:to="fill",stickyHeader:hr=true,showFooter:yr=true,showToolbar:ao=true,dir:Ya="ltr",flexGrow:Wt=true,toolbarVisibility:no,className:Rr,tableClassName:Sr,tableContainerClassName:oo,stripedRows:io=false,getRowClassName:ro,onRowClick:Ja,onActionError:ra,dragAndDrop:Qt,fileUpload:Dt,virtualization:Xa,accessibility:lo,interactiveGrid:Ca}){let Ht=f.useRef(null),so=f.useRef(null),co=f.useRef(null),vr=f.useRef(null),Za=f.useRef(null),Pr=f.useRef(null),[uo,en]=f.useState(0),xr=f.useId(),Er=f.useId();or({columns:k,data:M,getRowId:I}),f.useMemo(()=>s(k),[k]);let xe=f.useMemo(()=>hi(Kn),[Kn]),tn=ct===true?{columnChooser:true,savedViews:true,resetLayout:true}:ct===false?{}:ct??{},an=lo?.mode==="grid"||Ca===true||typeof Ca=="object",[At,Da]=Re({defaultValue:_t??null,onChange:Ka,value:Ot}),kr=j$1??ue?.globalFilter,Mr=Ge??ue?.sorting,Vr=ot??ue?.grouping,ha=Rt??ue?.pagination?.pageIndex,qt=mt??ue?.pagination?.pageSize,Ar=lt??ue?.rowSelection,Fr=Xn??ue?.columnVisibility,Ir=Se??ue?.columnFilters,zr=ft??ue?.expanded,Lr=st??ue?.columnOrder,Nr=je??ue?.columnPinning,Or=Ke??ue?.rowPinning,_r=Zn??ue?.columnSizing,Hr=ia??ue?.density,Br=Wn??ue?.viewMode,Gr=Jn??ue?.showHiddenRows,po=ao&&(no?.title??true),go=po&&x?xr:void 0,mo=po&&Z?Er:void 0;td(ue,{columnFilters:Se!==void 0,columnOrder:st!==void 0,columnPinning:je!==void 0,rowPinning:Ke!==void 0,columnSizing:Zn!==void 0,columnVisibility:Xn!==void 0,density:ia!==void 0,expanded:ft!==void 0,grouping:ot!==void 0,globalFilter:j$1!==void 0,pagination:Rt!==void 0||mt!==void 0,rowSelection:lt!==void 0,showHiddenRows:Jn!==void 0,sorting:Ge!==void 0,viewMode:Wn!==void 0});let $r=Le("globalFilter",z,Ce),Ur=Le("sorting",nt,Ce),jr=Le("grouping",se,Ce),Kr=Le("rowSelection",ve,Ce),Wr=Le("columnVisibility",wr,Ce),Qr=Le("columnFilters",Te,Ce),qr=Le("expanded",Tt,Ce),Yr=Le("columnOrder",dt,Ce),Jr=Le("columnPinning",Ct,Ce),Xr=Le("rowPinning",Et,Ce),Zr=Le("columnSizing",Cr,Ce),el=Le("density",Wa,Ce),tl=Le("viewMode",pr,Ce),al=Le("showHiddenRows",Tr,Ce),ya=f.useCallback(o=>{bt?.(o),Ce?.(P=>({...P,pagination:{pageIndex:o,pageSize:qt??P.pagination.pageSize}}));},[bt,Ce,qt]),nn=f.useCallback(o=>{ye?.(o),Ce?.(P=>({...P,pagination:{pageIndex:ha??P.pagination.pageIndex,pageSize:o}}));},[ye,Ce,ha]),Me=f.useCallback((o,P)=>{ed(P,o,ra);},[ra]),bo=f.useMemo(()=>ce.map(o=>({...o,onClick:P=>{Me({actionKey:o.key,row:P,source:"rowAction"},()=>o.onClick(P));}})),[ce,Me]),fo=f.useMemo(()=>Ja?o=>{Me({row:o.row,source:"rowClick"},()=>Ja(o));}:void 0,[Ja,Me]),nl=f.useCallback((o,P)=>{ra?.({error:o,row:P,source:"edit"});},[ra]),{containerWidth:ol,currentColumnFilters:Ra,currentColumnOrder:on,currentColumnPinning:Sa,currentRowPinning:rn,currentColumnSizing:va,currentColumnVisibility:To,currentDensity:la,currentExpanded:Pa,currentGrouping:ln,currentPagination:tt,currentRowSelection:xa,currentShowHiddenRows:sn,currentSorting:Ea,currentViewMode:Yt,effectiveColumnVisibility:wo,globalFilterValue:il,handleDensityChange:dn,handleShowHiddenRowsChange:cn,handleViewModeChange:un,localSearchValue:Bt,resolvedLoadingRowCount:rl,resolvedToolbarQueryPlaceholder:ll,selectedRowIds:sl,selectedRows:dl,setCurrentColumnFilters:Co,setCurrentColumnOrder:cl,setCurrentColumnPinning:Do,setCurrentRowPinning:ul,setCurrentColumnVisibility:pl,setCurrentExpanded:ho,setCurrentGrouping:gl,setCurrentRowSelection:yo,setCurrentSorting:ml,setLocalColumnSizing:bl,setLocalPagination:pn,setLocalSearchValue:gn,shouldRenderInitialLoading:mn,tableData:fl,tableGetRowId:Tl,visibleData:wl}=Li({columnFilters:Ir,columnOrder:Lr,columnPinning:Nr,rowPinning:Or,columnSizing:_r,columnPrefsKey:$,persistence:Pe,columnVisibility:Fr,columns:k,containerRef:Ht,data:M,density:Hr,enableRowSelection:He,enableToolbarQueryFiltering:fe,expanded:zr,grouping:Vr,getSubRows:Ae,getRowId:I,hiddenRows:Yn,isLoading:qn,loadingRowCount:br,manualFiltering:be,initialState:te,onColumnFiltersChange:Qr,onColumnOrderChange:Yr,onColumnPinningChange:Jr,onRowPinningChange:Xr,onColumnSizingChange:Zr,onColumnVisibilityChange:Wr,onDensityChange:el,onExpandedChange:qr,onGroupingChange:jr,onPageIndexChange:ya,onRowSelectionChange:Kr,onShowHiddenRowsChange:al,onSortingChange:Ur,onToolbarQueryValueChange:$r,onViewModeChange:tl,pageIndex:ha,pageSize:qt,resolvedLabels:xe,rowSelection:Ar,rowsPerPageOptions:he,selectionActions:U,showHiddenRows:Gr,sorting:Mr,toolbarQueryDebounceMs:ne,toolbarQueryPlaceholder:Y,toolbarQueryValue:kr,viewMode:Br}),bn=!!(Ue&&!Pt&&!Ae),Jt=Pt??(Ue?{getRowCanExpand:Ae?void 0:ke,render:Ue}:void 0),[fn,Ro]=Re({defaultValue:()=>bn?te?.expanded??{}:{},onChange:bn?ho:Jt?.onExpandedChange,value:bn?Pa:Jt?.expanded}),{cancelEditing:Tn,clearEditError:So,draftValues:Cl,editErrors:wn,editingRowId:Cn,isEditDirty:Dn,isSavingEdit:hn,saveEdit:yn,setDraftValues:Dl,setEditingRowId:hl,startEditingRow:yl}=a$3({columns:k,editableRows:Vt,onError:nl}),Rl=f.useMemo(()=>({cancel:Tn,cancelOnEscape:Vt?.cancelOnEscape!==false,clearError:So,commit:o=>{yn(o);},commitOnEnter:Vt?.commitOnEnter!==false,errors:wn,isDirty:Dn,isPending:hn}),[Tn,So,Vt?.cancelOnEscape,Vt?.commitOnEnter,wn,Dn,hn,yn]),{viewportElement:Rn,viewportHeight:Sn}=a$4(co,Yt),vo=typeof Je=="object"?Je:void 0,Sl=f.useCallback(o=>{o!==tt.pageSize&&(tt.pageIndex!==0&&ya(0),nn(o),qt===void 0&&pn({pageIndex:0,pageSize:o}));},[tt.pageIndex,tt.pageSize,ya,nn,qt,pn]),vl=Je===true||vo!==void 0,ka=f.useCallback(()=>typeof window>"u"||typeof window.print!="function"?false:(window.print(),true),[]),Ma=f.useCallback(async()=>{let o=Ht.current;return !o||typeof document>"u"?false:document.fullscreenElement?typeof document.exitFullscreen!="function"?false:(await document.exitFullscreen(),true):typeof o.requestFullscreen!="function"?false:(await o.requestFullscreen(),true)},[]),[Po,Pl]=f.useState(false);f.useEffect(()=>{if(!Ta||typeof document>"u")return;let o=()=>{Pl(document.fullscreenElement===Ht.current);};return o(),document.addEventListener("fullscreenchange",o),()=>document.removeEventListener("fullscreenchange",o)},[Ta]);let xl=f.useCallback(()=>{Dt?.disabled||so.current?.click();},[Dt?.disabled]),El=f.useCallback(o=>{Me({source:"fileUpload"},()=>Dt?.onFilesSelected(o));},[Dt,Me]),kl=yi({Button:d,Checkbox:m,DataTableRowActions:D,Tooltip:s$1,TooltipContent:y,TooltipTrigger:C,cancelEditing:Tn,columns:k,editableRows:Vt,editErrors:wn,editingRowId:Cn,enableRowSelection:He,enableRowPinning:kt,hasTreeExpansion:!!Ae,isSavingEdit:hn,isEditDirty:Dn,labels:xe,lastSelectedRowIdRef:Pr,detailPanel:Jt,detailExpanded:fn,onDetailExpandedChange:Ro,rowSelectionSelectAllScope:vt,rowActions:bo,saveEdit:yn,startEditingRow:yl,tableRef:Za}),Ml=f.useMemo(()=>h(k),[k]),{effectivePageCount:Vl,footerTotalRowCount:Al,handleFooterPageIndexChange:Fl,handleFooterPageSizeChange:Il,isPageCountKnown:zl,renderedRows:xo,topPinnedRows:Ll,bottomPinnedRows:Nl,reorderColumn:Eo,rowsToRender:Ol,sentinelRef:ko,table:X,virtualPaddingBottom:_l,virtualPaddingTop:Hl,visibleLeafColumns:vn}=Ei({autoResetPageIndex:false,columnGroupPaths:Ml,columnResizeMode:Dr,dir:Ya,currentColumnFilters:Ra,currentColumnOrder:on,currentColumnPinning:Sa,currentRowPinning:rn,currentColumnSizing:va,currentExpanded:Pa,currentGrouping:ln,currentPagination:tt,currentRowSelection:xa,currentSorting:Ea,currentViewMode:Yt,defaultColumn:v,effectiveColumnVisibility:wo,enableColumnResizing:eo,enableRowPinning:kt,enableRowSelection:He,enableMultiRowSelection:St,enableSubRowSelection:Xe,getRowCanSelect:de,getRowCanExpand:ke,getSubRows:Ae,aggregationFns:Oe,groupedColumnMode:gt,globalFilterFn:De,globalFilterValue:il,hasNextPage:we,handleColumnFiltersChange:Co,handleColumnOrderChange:cl,handleColumnPinningChange:Do,handleRowPinningChange:ul,handleColumnVisibilityChange:pl,handleExpandedChange:ho,handleGroupingChange:gl,infiniteScroll:wa,keepPinnedRows:a,manualFiltering:be,manualGrouping:it,manualExpanding:$e,manualPagination:_e,manualSorting:Ye,onActionError:ra,onPageIndexChange:ya,onPageSizeChange:nn,pageCount:rt,pageIndex:ha,pageSize:qt,paginateExpandedRows:wt,filterFromLeafRows:Be,maxLeafRowFilterDepth:Lt,setCurrentRowSelection:yo,setCurrentSorting:ml,setLocalColumnSizing:bl,setLocalPagination:pn,shouldRenderInitialLoading:mn,tableColumns:kl,tableData:fl,tableGetRowId:Tl,tableRef:Za,totalRowCount:L,virtualization:Xa}),Mo=Oi({columns:k,columnSizing:va,editableRows:!!Vt,enableRowSelection:He,hasRowActions:ce.length>0,hasRowExpansion:!!(Ae||Jt),layoutMode:to,uiClassNames:r$1,visibleLeafColumns:vn}),{explicitlySizedColumnIds:Va,fillMinWidth:Bl,getColumnLayout:Gl}=Mo,$l=f.useMemo(()=>new Set(j(k).flatMap(({column:o,index:P})=>Object.prototype.hasOwnProperty.call(o,"cell")&&typeof o.cell=="function"?[r(o,P)]:[])),[k]),Ul=vn.length,jl=f.useMemo(()=>({Checkbox:m,Input:p,Skeleton:S,TableCell:B,TableRow:u}),[]),Kl=f.useMemo(()=>j(k).some(({column:o})=>o.meta?.cardTitle),[k]),Wl=f.useCallback((o,P)=>{Va.has(o)||Object.prototype.hasOwnProperty.call(X.getState().columnSizing,o)||flushSync(()=>{X.setColumnSizing(pe=>({...pe,[o]:P}));});},[Va,X]),Ql=f.useCallback(o=>{if(Va.has(o)){X.getColumn(o)?.resetSize();return}X.setColumnSizing(P=>{if(!Object.prototype.hasOwnProperty.call(P,o))return P;let pe={...P};return delete pe[o],pe});},[Va,X]),Pn=X.getFilteredRowModel().rows.map(o=>o.original),xn=Kt?.empty??mr,Vo=typeof xn=="function"?xn({rows:Pn,toolbarQueryValue:Bt}):xn,Ao=f.useMemo(()=>Kt?{...Kt,onRetry:Kt.onRetry?()=>Me({source:"retry"},Kt.onRetry):void 0}:void 0,[Me,Kt]),Fo=Ao?.error!=null?jsx(f.Suspense,{fallback:null,children:jsx(R,{labels:xe,overlay:Ao,rows:Pn,toolbarQueryValue:Bt})}):void 0,{columnVisibilityOptions:ql,effectiveToolbarActions:Io,handleClearColumnFilters:Yl,handleToolbarColumnFilterChange:Jl,handleToolbarColumnPinningChange:Xl,toolbarColumnFilters:Zl}=ar({columns:k,currentColumnFilters:Ra,currentColumnPinning:Sa,csvExport:ae,effectiveColumnVisibility:wo,enableColumnFilters:Ee,handleColumnFiltersChange:Co,handleColumnPinningChange:Do,labels:xe,table:X,toolbarActions:b,visibleData:wl}),es=f.useMemo(()=>[...Io,...Qn?[{key:"__print__",label:xe.print,placement:"trailing",onClick:()=>{ka();}}]:[],...Ta?[{key:"__fullscreen__",label:Po?xe.exitFullscreen:xe.enterFullscreen,placement:"trailing",onClick:()=>Ma()}]:[]].map(o=>({...o,onClick:P=>{Me({actionKey:o.key,source:"toolbarAction"},()=>o.onClick(P));}})),[Io,Ta,Qn,Po,ka,xe.enterFullscreen,xe.exitFullscreen,xe.print,Me,Ma]),ts=f.useMemo(()=>U.map(o=>({...o,onClick:P=>{Me({actionKey:o.key,source:"selectionAction"},()=>o.onClick(P));}})),[Me,U]),zo=f.useMemo(()=>({sorting:Ea,pagination:tt,rowSelection:xa,columnVisibility:To,columnFilters:Ra,expanded:Pa,grouping:ln,columnOrder:on,columnPinning:Sa,rowPinning:rn,columnSizing:va,density:la,viewMode:Yt,showHiddenRows:sn,globalFilter:Bt}),[Ra,on,Sa,rn,va,To,la,Pa,ln,tt,xa,sn,Ea,Yt,Bt]),sa=f.useCallback(()=>nd(zo),[zo]),Ft=f.useCallback(o=>{o.sorting!==void 0&&X.setSorting(o.sorting),o.pagination!==void 0&&X.setPagination(o.pagination),o.rowSelection!==void 0&&X.setRowSelection(o.rowSelection),o.columnVisibility!==void 0&&X.setColumnVisibility(o.columnVisibility),o.columnFilters!==void 0&&X.setColumnFilters(o.columnFilters),o.expanded!==void 0&&X.setExpanded(o.expanded),o.grouping!==void 0&&X.setGrouping(o.grouping),o.columnOrder!==void 0&&X.setColumnOrder(o.columnOrder),o.columnPinning!==void 0&&X.setColumnPinning(o.columnPinning),o.rowPinning!==void 0&&X.setRowPinning(o.rowPinning),o.columnSizing!==void 0&&X.setColumnSizing(o.columnSizing),o.density!==void 0&&dn(o.density),o.viewMode!==void 0&&un(o.viewMode),o.showHiddenRows!==void 0&&cn(o.showHiddenRows),o.globalFilter!==void 0&&gn(o.globalFilter);},[dn,cn,un,gn,X]),Xt=f.useCallback(()=>Ai(Pe??$),[$,Pe]),En=f.useCallback(o=>{o?.clearPersistence&&Xt(),Ft({columnVisibility:te?.columnVisibility??{},columnOrder:te?.columnOrder??[],columnPinning:te?.columnPinning??q(k),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{}});},[Xt,k,te,Ft]),Lo=f.useCallback(o=>{o?.clearPersistence&&Xt(),Ft({sorting:te?.sorting??[],pagination:te?.pagination??{pageIndex:0,pageSize:he[0]??20},rowSelection:te?.rowSelection??{},columnVisibility:te?.columnVisibility??{},columnFilters:te?.columnFilters??[],expanded:te?.expanded??{},grouping:te?.grouping??[],columnOrder:te?.columnOrder??[],columnPinning:te?.columnPinning??q(k),rowPinning:te?.rowPinning??{top:[],bottom:[]},columnSizing:te?.columnSizing??{},density:te?.density??"comfortable",viewMode:te?.viewMode??"table",showHiddenRows:te?.showHiddenRows??false,globalFilter:te?.globalFilter??""});},[Xt,k,te,Ft,he]),No=f.useCallback(()=>jt(ie),[ie]),Aa=f.useCallback(o=>Ji(ie,o,sa()),[sa,ie]),kn=f.useCallback(o=>{let P=jt(ie).find(pe=>pe.id===o);return P?(Ft(P.state),ie?.onApply?.(P),true):false},[Ft,ie]),Fa=f.useCallback((o,P)=>Xi(ie,o,P),[ie]),Ia=f.useCallback(o=>Zi(ie,o),[ie]),Oo=f.useCallback(()=>er(ie),[ie]),as=f.useMemo(()=>jt(ie),[ie,uo]),ns=f.useCallback(o=>{let P=Aa(o);return P&&en(pe=>pe+1),P},[Aa]),os=f.useCallback((o,P)=>{let pe=Fa(o,P);return pe&&en(Vn=>Vn+1),pe},[Fa]),is=f.useCallback(o=>{let P=Ia(o);return P&&en(pe=>pe+1),P},[Ia]),_o=f.useCallback(o$1=>o({csvExport:o$1??(ae||true),labels:xe,table:X}),[ae,xe,X]),Mn=f.useCallback(async o=>{let{copyDataTableToClipboard:P}=await import('./data-table-clipboard-SFXQFZS3.js');return P({clipboard:o??(_?.copy===false?false:At?{..._?.copy===true?{}:_?.copy,scope:"cellSelection"}:_?.copy??true),cellSelection:At,table:X})},[_?.copy,At,X]),Ho=f.useCallback((o,P="top")=>{try{let pe=X.getRow(o,!0);return pe.getCanPin()?(pe.pin(P),!0):!1}catch{return false}},[X]),Bo=f.useCallback(o=>{try{let P=X.getRow(o,!0);return P.getCanPin()?(P.pin(!1),!0):!1}catch{return false}},[X]);return f.useImperativeHandle(lr,()=>({getTable:()=>Za.current,getState:sa,snapshot:sa,restore:Ft,resetColumnLayout:En,resetState:Lo,clearPersistedState:Xt,getSavedViews:No,createSavedView:Aa,applySavedView:kn,renameSavedView:Fa,deleteSavedView:Ia,clearSavedViews:Oo,pinRow:Ho,unpinRow:Bo,focus:()=>{Ht.current?.focus();},scrollToRow:o=>ir(Ht.current,"row",o),scrollToColumn:o=>ir(Ht.current,"column",o),exportCsv:_o,copyToClipboard:Mn,getCellSelection:()=>At,setCellSelection:Da,clearCellSelection:()=>Da(null),print:ka,toggleFullscreen:Ma}),[kn,Xt,Oo,Mn,At,Aa,Ia,_o,No,sa,Fa,En,Lo,Ft,Ho,ka,Da,Bo,Ma]),jsx(g,{children:jsxs("div",{ref:Ht,"data-dtp-slot":"data-table-root","data-density":la,"data-dtp-striped-rows":io||void 0,"aria-busy":qn||void 0,dir:Ya,tabIndex:-1,className:a$2("@container/data-table data-table-container-query flex w-full min-w-0 flex-col",Wt?"h-full min-h-0 flex-1":"grow",l),onDragEnter:Qt?.onDragEnter,onDragOver:Qt?.onDragOver,onDragLeave:Qt?.onDragLeave,onDrop:Qt?.onDrop,onKeyDown:o=>{if(an&&Mt&&(o.ctrlKey||o.metaKey)&&o.key.toLowerCase()==="z"&&!jn(o.target)){let P=o.shiftKey?Mt.redo:Mt.undo;P&&(o.preventDefault(),Me({source:o.shiftKey?"redo":"undo"},()=>P({cellSelection:At,table:X})));return}!_?.copy||!(o.ctrlKey||o.metaKey)||o.key.toLowerCase()!=="c"||jn(o.target)||(o.preventDefault(),Me({source:"clipboardCopy"},async()=>{await Mn(_.copy===true?void 0:At&&typeof _.copy=="object"&&!_.copy.scope?{..._.copy,scope:"cellSelection"}:_.copy);}));},onPaste:o=>{let P=_?.paste;if(!P||P.enabled===false||jn(o.target))return;let pe=o.clipboardData.getData("text/plain");pe&&((P.preventDefault??true)&&o.preventDefault(),Me({source:"clipboardPaste"},async()=>{let{parseDataTableClipboardText:Vn}=await import('./data-table-clipboard-SFXQFZS3.js');return P.onPaste({table:X,text:pe,values:Vn(pe)})}));},children:[vl?jsx(f.Suspense,{fallback:null,children:jsx(Xs,{config:vo,currentPageSize:tt.pageSize,enabled:true,onPageSizeChange:Sl,viewportElement:Rn,viewportHeight:Sn})}):null,Dt?jsx("input",{ref:so,className:"hidden",type:"file",accept:Dt.accept,multiple:Dt.multiple??true,disabled:Dt.disabled,onChange:o=>{let P=o.currentTarget.files;P?.length&&El(P),o.currentTarget.value="";}}):null,jsx("div",{"data-dtp-slot":"data-table-layout",className:a$2("flex w-full flex-col",Wt?"min-h-0 flex-1":"grow"),children:jsxs("div",{"data-dtp-slot":"data-table-main",className:a$2("flex w-full flex-col gap-4",Wt?"min-h-0 flex-1":"grow",Rr),children:[ao?jsx(Di,{allRows:Pn,columnFilters:Zl,columnVisibilityOptions:ql,compactToolbar:J,customToolbar:Ne,DataTableToolbar:W,density:la,description:Z,descriptionId:mo,effectiveToolbarActions:es,enableColumnPinning:Nt,enableGrouping:Ve,enableToolbarColumnChooser:tn.columnChooser===true,enableToolbarFilterChips:!!ct,enableToolbarResetLayout:tn.resetLayout===true,enableToolbarSavedViews:tn.savedViews===true&&!!ie,enableDensityToggle:Qa,enableViewToggle:gr&&!!qa,hiddenRowsLabel:Yn?.label,labels:xe,onClearColumnFilters:Yl,onColumnFilterChange:Jl,onColumnPinningChange:Xl,onDensityChange:dn,onShowHiddenRowsChange:cn,onToolbarQueryValueChange:gn,reorderColumn:Eo,onResetColumnLayout:En,onCreateSavedView:ns,onApplySavedView:kn,onRenameSavedView:os,onDeleteSavedView:is,onViewModeChange:un,openFileDialog:Dt?xl:void 0,selectedRowIds:sl,selectedRows:dl,selectionActions:ts,savedViews:as,showHiddenRows:sn,table:X,title:x,titleId:go,toolbarQueryPlaceholder:ll,toolbarQueryValue:Bt,toolbarVisibility:no,viewMode:Yt}):null,jsx("div",{"data-dtp-slot":"data-table-content",className:a$2(Wt?"flex min-h-0 flex-1 flex-col":""),children:Yt==="card"&&qa?jsx(n,{cardClassName:ur,cardGridClassName:cr,cardSizing:dr,cardRenderer:qa,containerWidth:ol,currentDetailExpanded:fn,currentRowSelection:xa,DataTableCardView:O,DataTableEmptyState:N,dragAndDrop:Qt,editableRows:Vt,editingRowId:Cn,emptyNode:Vo,stateOverlayNode:Fo,enableRowSelection:He,flexGrow:Wt,getRowClassName:ro,hasCardTitle:Kl,infiniteScroll:wa,localSearchValue:Bt,onRowClick:fo,renderedRows:xo,detailPanel:Jt,resolvedLabels:xe,resolvedLoadingRowCount:rl,rowActions:bo,ScrollArea:h$1,sentinelRef:ko,setCurrentDetailExpanded:Ro,setCurrentRowSelection:yo,setEditingRowId:hl,shouldRenderInitialLoading:mn,tableContainerClassName:oo,uiClassNames:r$1,virtualization:Xa}):jsx(i,{ariaDescribedBy:mo,ariaLabelledBy:go,bodyRowComponents:jl,columnLayouts:Mo.columnLayouts,currentDensity:la,columnGroupHeaderHeight:xt,currentDetailExpanded:fn,currentSorting:Ea,dir:Ya,DataTableEmptyState:N,dragAndDrop:Qt,draggedColumnIdRef:vr,draftValues:Cl,editingRowId:Cn,editingContext:Rl,emptyNode:Vo,stateOverlayNode:Fo,enableColumnReordering:Ze,enableColumnResizing:eo,explicitCustomCellColumnIds:$l,fillMinWidth:Bl,flexGrow:Wt,getColumnLayout:Gl,getRowClassName:ro,getRowLoadingState:fr,infiniteScroll:wa,layoutMode:to,localSearchValue:Bt,onRowClick:fo,primeColumnForResize:Wl,renderedRows:xo,detailPanel:Jt,topPinnedRows:Ll,bottomPinnedRows:Nl,reorderColumn:Eo,resetColumnSize:Ql,resolvedLabels:xe,rowsToRender:Ol,ScrollArea:h$1,ScrollBar:E,sentinelRef:ko,setDraftValues:Dl,shouldRenderInitialLoading:mn,stickyHeader:hr,stripedRows:io,summaryRows:sr,table:X,tableClassName:Sr,tableContainerClassName:oo,Table:A,TableBody:V,TableCell:B,TableFooter:q$1,TableHead:F,TableHeader:T,TableRow:u,tableScrollContainerRef:co,tableScrollElement:Rn,uiClassNames:r$1,viewportHeight:Sn,virtualization:Xa,gridMode:an,gridPageSize:lo?.pageSize??(typeof Ca=="object"?Ca.pageSize:void 0),cellSelectionEnabled:an&&(et||Ot!==void 0||_t!==void 0),cellSelection:At,onCellSelectionChange:Da,gridRowOffset:_e?tt.pageIndex*tt.pageSize:0,totalRowCount:L,virtualPaddingBottom:_l,virtualPaddingTop:Hl,visibleLeafColumnCount:Ul,visibleLeafColumns:vn})}),jsx(wi,{currentPagination:tt,DataTableFooter:K,effectivePageCount:Vl,footerTotalRowCount:Al,handleFooterPageIndexChange:Fl,handleFooterPageSizeChange:Il,labels:xe,pageCountKnown:zl,rowsPerPageOptions:he,showFooter:yr&&!wa?.enabled,children:G})]})})]})})}}function ed(e,t,n){let i;try{i=e();}catch(r){n?.({...t,error:r});return}Promise.resolve(i).catch(r=>{n?.({...t,error:r});});}function Le(e,t,n){let i=f.useCallback(r=>{t?.(r),n?.(l=>({...l,[e]:r}));},[e,t,n]);return t||n?i:void 0}function td(e,t){let n=f.useRef(new Set);f.useEffect(()=>{if(!(!e||!ad()))for(let i of Object.keys(t))e[i]===void 0||!t[i]||n.current.has(i)||(n.current.add(i),console.warn(`[data-table-pro] Both state.${i} and its legacy controlled prop were provided. The legacy prop takes precedence during the 4.x compatibility window.`));},[t,e]);}function ad(){return globalThis.process?.env?.NODE_ENV!=="production"}function nd(e){return {sorting:e.sorting.map(t=>({...t})),pagination:{...e.pagination},rowSelection:{...e.rowSelection},columnVisibility:{...e.columnVisibility},columnFilters:e.columnFilters.map(t=>({...t})),expanded:typeof e.expanded=="boolean"?e.expanded:{...e.expanded},grouping:[...e.grouping??[]],columnOrder:[...e.columnOrder],columnPinning:{left:e.columnPinning.left?[...e.columnPinning.left]:void 0,right:e.columnPinning.right?[...e.columnPinning.right]:void 0},rowPinning:{top:e.rowPinning.top?[...e.rowPinning.top]:void 0,bottom:e.rowPinning.bottom?[...e.rowPinning.bottom]:void 0},columnSizing:{...e.columnSizing},density:e.density,viewMode:e.viewMode,showHiddenRows:e.showHiddenRows,globalFilter:e.globalFilter}}function ir(e,t,n){if(!e)return false;let i=t==="row"?"data-row-id":"data-column-id",r=Array.from(e.querySelectorAll(`[${i}]`)).find(l=>l.getAttribute(i)===n);return r?(r.scrollIntoView?.({block:"nearest",inline:"nearest"}),true):false}function jn(e){return e instanceof HTMLElement?e.isContentEditable||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement:false}export{Ti as a,wi as b,Di as c,yi as d,Re as e,Ei as f,Li as g,Oi as h,Kc as i,Zs as j};//# sourceMappingURL=chunk-JNI3CH7M.js.map -//# sourceMappingURL=chunk-JNI3CH7M.js.map \ No newline at end of file diff --git a/dist/chunk-JNI3CH7M.js.map b/dist/chunk-JNI3CH7M.js.map deleted file mode 100644 index a3a7f22..0000000 --- a/dist/chunk-JNI3CH7M.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/core/data-table/data-table-base-card-panel.tsx","../src/core/data-table/data-table-card-panel.tsx","../src/core/data-table/data-table-footer-section.tsx","../src/core/data-table/data-table-toolbar-section.tsx","../src/core/data-table/data-table-labels.ts","../src/core/data-table/use-data-table-columns.tsx","../src/core/data-table/use-controllable-state.ts","../src/core/data-table/use-data-table-infinite-scroll.ts","../src/core/data-table/use-data-table-pagination-clamp.ts","../src/core/data-table/use-data-table-search-index.ts","../src/core/data-table/use-data-table-instance.ts","../src/core/data-table/use-data-table-column-prefs.ts","../src/core/data-table/use-data-table-container-width.ts","../src/core/data-table/use-data-table-state.ts","../src/core/data-table/use-column-layout.ts","../src/core/data-table/create-data-table-card-view.tsx","../src/core/data-table/create-data-table-empty-state.tsx","../src/core/data-table/create-data-table-pagination.tsx","../src/core/data-table/create-data-table-row-actions.tsx","../src/core/data-table/create-data-table-toolbar.tsx","../src/core/data-table/data-table-table-panel-router.tsx","../src/core/data-table/data-table-saved-views.ts","../src/core/data-table/use-data-table-toolbar-features.ts","../src/core/data-table/use-data-table-performance-diagnostics.ts","../src/core/data-table/create-data-table.tsx"],"names":["DataTableBaseCardPanel","cardClassName","cardGridClassName","cardSizing","cardRenderer","currentRowSelection","currentDetailExpanded","DataTableCardView","DataTableEmptyState","dragAndDrop","editableRows","editingRowId","emptyNode","enableRowSelection","flexGrow","getRowClassName","hasCardTitle","infiniteScroll","localSearchValue","onRowClick","renderedRows","detailPanel","resolvedLabels","resolvedLoadingRowCount","rowActions","ScrollArea","sentinelRef","setCurrentDetailExpanded","setCurrentRowSelection","setEditingRowId","shouldRenderInitialLoading","stateOverlayNode","tableContainerClassName","uiClassNames","shouldRenderCards","cardScrollContainerRef","fi","renderCardView","rows","options","jsx","jsxs","cn","LazyDataTableVirtualCardPanel","Ha","DataTableCardPanel","props","config","DataTableFooterSection","children","currentPagination","DataTableFooter","effectivePageCount","footerTotalRowCount","handleFooterPageIndexChange","handleFooterPageSizeChange","labels","pageCountKnown","rowsPerPageOptions","showFooter","DataTableToolbarSection","allRows","columnFilters","columnVisibilityOptions","compactToolbar","customToolbar","DataTableToolbar","description","descriptionId","effectiveToolbarActions","enableColumnPinning","enableGrouping","enableToolbarColumnChooser","enableToolbarFilterChips","enableToolbarResetLayout","enableToolbarSavedViews","enableDensityToggle","enableViewToggle","hiddenRowsLabel","onClearColumnFilters","onColumnFilterChange","onColumnPinningChange","onDensityChange","onShowHiddenRowsChange","onToolbarQueryValueChange","reorderColumn","onResetColumnLayout","onCreateSavedView","onApplySavedView","onRenameSavedView","onDeleteSavedView","onViewModeChange","openFileDialog","selectedRowIds","selectedRows","selectionActions","savedViews","showHiddenRows","table","title","titleId","toolbarQueryPlaceholder","toolbarQueryValue","toolbarVisibility","density","viewMode","columnId","visible","DATA_TABLE_DEFAULT_LABELS","count","label","pageIndex","pageCount","rowId","columnLabel","name","resolveDataTableLabels","useDataTableColumns","Button","Checkbox","DataTableRowActions","Tooltip","TooltipContent","TooltipTrigger","cancelEditing","columns","editErrors","enableRowPinning","hasTreeExpansion","isSavingEdit","isEditDirty","lastSelectedRowIdRef","detailExpanded","onDetailExpandedChange","rowSelectionSelectAllScope","saveEdit","startEditingRow","tableRef","selectRowRange","Ga","targetRowId","selected","tableInstance","row","isDataTableLoadingRow","startIndex","endIndex","from","to","current","next","item","defs","expansionColumnSize","UTILITY_COLUMN_SIZE","canExpandTree","canExpandDetail","isTreeExpanded","isDetailExpanded","IconChevronDown","toggleDataTableExpandedState","selectsFilteredRows","selectableRows","allSelected","someSelected","checked","event","column","decorateFilterableColumn","position","useControllableState","defaultValue","onChange","value","uncontrolledValue","setUncontrolledValue","It","currentValue","currentValueRef","setValue","updater","nextValue","useDataTableInfiniteScroll","enabled","hasMore","isLoadingMore","onLoadMore","onError","zt","isRequestInFlightRef","onLoadMoreEvent","onErrorEvent","error","target","observer","entries","result","useDataTablePaginationClamp","maxPageIndex","onPageIndexChange","setLocalPageIndex","Si","nextPageIndex","useDataTableSearchIndex","Pi","valuesByRow","filterValue","query","normalizeDataTableSearchText","original","valuesByColumn","text","useDataTableInstance","autoResetPageIndex","columnGroupPaths","columnResizeMode","dir","currentColumnFilters","currentColumnOrder","currentColumnPinning","currentRowPinning","currentColumnSizing","currentExpanded","currentGrouping","currentSorting","currentViewMode","defaultColumn","effectiveColumnVisibility","enableColumnResizing","enableMultiRowSelection","enableSubRowSelection","getRowCanSelect","getRowCanExpand","getSubRows","aggregationFns","groupedColumnMode","globalFilterFn","globalFilterValue","hasNextPage","handleColumnFiltersChange","handleColumnOrderChange","handleColumnPinningChange","handleRowPinningChange","handleColumnVisibilityChange","handleExpandedChange","handleGroupingChange","keepPinnedRows","manualFiltering","manualGrouping","manualExpanding","manualPagination","manualSorting","onActionError","onPageSizeChange","pageSize","paginateExpandedRows","filterFromLeafRows","maxLeafRowFilterDepth","setCurrentSorting","setLocalColumnSizing","setLocalPagination","tableColumns","tableData","tableGetRowId","totalRowCount","virtualization","cachedGlobalFilterFn","generatedColumnIds","ze","getDataTableLeafColumns","index","getColumnId","effectiveColumnOrder","columnIds","dataColumnIds","isUtilityColumnId","dataColumnIdSet","orderedDataColumnIds","unorderedDataColumnIds","effectiveColumnPinning","columnIdSet","dataLeft","dataRight","effectiveRowPinning","availableRowIds","visitRows","subRows","top","topIds","bottom","tableState","handlePaginationChange","handleColumnSizingChange","facetingNeeds","uniqueValues","minMaxValues","useReactTable","getCoreRowModel","getFilteredRowModel","getFacetedRowModel","getFacetedUniqueValues","getFacetedMinMaxValues","getGroupedRowModel","getSortedRowModel","getExpandedRowModel","getPaginationRowModel","visibleLeafColumns","sourceColumnId","targetColumnId","canReorderDataTableColumn","defaultOrder","nextOrder","moveColumnInOrder","topPinnedRows","bottomPinnedRows","virtualizationConfig","virtualRowsEnabled","fallbackRowCount","rowsToRender","rowIndex","usesManualRows","derivedTotalRowCount","effectiveTotalRowCount","isPageCountKnown","nextPageSize","STORAGE_PREFIX","DEFAULT_VERSION","ALL_SLICES","readDataTableColumnPrefs","input","resolvePersistenceConfig","storage","resolveStorage","storageKey","getStorageKey","parsed","targetVersion","candidate","isPersistencePayload","selectPersistenceSlices","validateDataTableColumnPrefs","clearDataTableColumnPrefs","usePersistDataTableColumnPrefs","key","persistence","prefs","version","debounceMs","selectedState","serialized","Ut","payload","operation","write","timeout","isRecord","slices","slice","visibility","validateBooleanRecord","sizing","validateSizingRecord","order","validateStringArray","left","right","rowPinning","validateRowPinning","isDataTableDensity","entry","BREAKPOINT_WIDTHS","DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS","first","second","useDataTableContainerWidth","containerRef","widthRef","na","width","setWidth","element","updateWidth","inlineSize","nextWidth","quantizeDataTableContainerWidth","getResizeObserverInlineSize","bucket","breakpointWidth","contentBoxSize","size","getInlineSize","useDataTableState","columnOrder","columnPinning","columnSizing","columnPrefsKey","columnVisibility","data","enableToolbarQueryFiltering","expanded","grouping","getRowId","hiddenRows","initialState","isLoading","loadingRowCount","onColumnFiltersChange","onColumnOrderChange","onRowPinningChange","onColumnSizingChange","onColumnVisibilityChange","onExpandedChange","onGroupingChange","onRowSelectionChange","onSortingChange","rowSelection","sorting","toolbarQueryDebounceMs","persistenceConfig","ee","persistedColumnPrefs","localPagination","currentColumnVisibility","setCurrentColumnVisibility","setCurrentColumnFilters","setCurrentExpanded","setCurrentColumnOrder","setCurrentColumnPinning","getInitialColumnPinning","setCurrentRowPinning","setCurrentColumnSizing","setCurrentViewMode","setCurrentGrouping","currentShowHiddenRows","setCurrentShowHiddenRows","currentDensity","setCurrentDensity","resolvedToolbarQueryValue","resolvedToolbarQueryPlaceholder","resolvedToolbarQueryDebounceMs","setLocalSearchValue","containerWidth","hasOnSearchValueChange","lastReportedSearchValueRef","onToolbarQueryValueChangeEvent","deferredSearchValue","handleViewModeChange","nextViewMode","handleShowHiddenRowsChange","nextShowHiddenRows","handleDensityChange","nextDensity","resetPageIndexForFilterChange","lastFilterStateRef","previous","filtersChanged","globalFilterChanged","responsiveColumnVisibility","isHiddenAtContainerWidth","visibleData","isRowVisible","loadingRows","createDataTableLoadingRows","getDataTableLoadingRowId","shouldResolveSelectedRows","rowById","currentRows","EMPTY_COLUMN_LAYOUT","useColumnLayout","hasRowActions","hasRowExpansion","layoutMode","explicitlySizedColumnIds","ut","ids","minimumColumnWidths","widths","configuredMinWidth","getConfiguredColumnMinWidth","pinnedColumns","leftOffset","getFixedSide","getColumnLayoutSize","rightOffset","fillColumnId","dataColumns","fixedWidthColumnIds","columnLayouts","layouts","isSelectionColumn","isExpansionColumn","isActionsColumn","isUtilityColumn","isSpacerColumn","isFlexibleFillColumn","columnMinWidth","shouldFixWidth","baseStyle","fixedSide","pinnedStyle","cellStyle","getPinnedColumnClassName","fillMinWidth","total","layout","getColumnLayout","createDataTableCardView","ui","Card","CardContent","CardHeader","Skeleton","onEditingRowIdChange","getRowDraggable","onRowDragStart","onRowDragEnd","resolvedCardSizing","resolvedCardGridClassName","getCardGridClassName","cardGridClasses","cardItemClasses","stateClassName","getCardItemClassName","_","originalRow","isSelected","isEditing","hasCardActions","showCardGradient","showCardOverlayControls","handleCardActivate","getCardRendererClassName","isDataTableInteractiveTarget","updateRowSelection","canSelect","canMultiSelect","nextSelection","createDataTableEmptyState","Empty","EmptyContent","EmptyDescription","EmptyHeader","EmptyMedia","EmptyTitle","IconInbox","createDataTablePagination","Pagination","PaginationContent","PaginationEllipsis","PaginationFirst","PaginationItem","PaginationLast","PaginationLink","PaginationNext","PaginationPrevious","Select","SelectContent","SelectGroup","SelectItem","SelectTrigger","SelectValue","DataTablePagination","pages","getVisiblePages","canGoPrevious","canGoNext","lastPageIndex","option","IconDatabase","currentPageIndex","currentPage","page","orderedPages","items","createDataTableRowActions","DropdownMenu","DropdownMenuContent","DropdownMenuGroup","DropdownMenuItem","DropdownMenuSeparator","DropdownMenuTrigger","onStartEditing","onCancelEditing","actions","action","canUseRowAction","stopRowClickPropagation","Ui","IconX","allowEdit","canEditRow","canPin","IconDots","IconEdit","Fragment","Icon","resolveRowActionLabel","LazyToolbarDataOperations","at","createDataTableToolbar","ButtonGroup","DropdownMenuCheckboxItem","DropdownMenuLabel","InputGroup","InputGroupAddon","InputGroupInput","toolbarActions","compactSearchInputRef","isCompactSearchVisible","setIsCompactSearchVisible","compactToolbarIconButtonClassName","primaryActions","trailingActions","showTitle","showSearch","showActions","showTrailingActions","showOptions","showViewToggle","showCustomToolbar","hasVisibleTitle","hasVisibleSearch","hasVisiblePrimaryActions","hasVisibleSelectionActions","hasVisibleOptions","hasToolbarOperationsMenu","activeColumnFilters","filter","hasColumnFilterValue","toolbarOperationsUi","renderToolbarDataOperations","placement","groupableColumns","groupedColumns","id","hasVisibleViewToggle","hasVisibleTrailingActions","hasVisibleCustomToolbar","hasVisibleCompactToolbar","selectedRowCountLabel","IconSearch","collapsesToIcon","button","context","disabled","IconAdjustmentsHorizontal","isGrouped","IconList","IconLayoutGrid","ToolbarColumnFilterControl","groupingIndex","moveGrouping","nextIndex","nextGrouping","groupingId","facetQuery","setFacetQuery","range","normalizeToolbarRangeValue","inputType","fromLabel","toLabel","parseRangeInputValue","isBoolean","isFaceted","booleanOptions","visibleOptions","selectedValue","selectedValues","selectedLabel","nextValues","LazyDataTableVirtualTablePanel","Ua","DataTableTablePanelRouter","DataTableTablePanel","DEFAULT_SLICES","fallbackId","readDataTableSavedViews","view","validateSavedView","createDataTableSavedView","state","normalizedName","now","createSavedViewId","selectSavedViewSlices","views","writeViews","cloneSavedView","renameDataTableSavedView","renamed","deleteDataTableSavedView","clearDataTableSavedViews","snapshots","snapshot","cloneStateSlice","validateState","validateSorting","pagination","validatePagination","filters","validateFilters","pinning","validatePinning","useDataTableToolbarFeatures","enableColumnFilters","csvExport","yt","header","accessorKey","getAccessorKey","startCase","pinned","toolbarColumnFilters","configuredFacetOptions","facetedMinMax","rawOptions","normalizeColumnFilterOptions","handleToolbarColumnFilterChange","hasFilterValue","handleClearColumnFilters","handleToolbarColumnPinningChange","side","handleCsvExport","exportDataTableCsv","IconDownload","useDataTablePerformanceDiagnostics","fa","warned","isDevelopmentEnvironment","last","haveSameItems","warn","message","DataTableAutoPageSize","createDataTable","createDataTableWithPanels","rootClassName","Input","ScrollBar","Table","TableBody","TableCell","TableFooter","TableHead","TableHeader","TableRow","TooltipProvider","DataTableStateOverlay","createDataTableStateOverlay","autoPageSize","renderExpandedRow","enableColumnReordering","columnGroupHeaderHeight","clipboard","enableCellSelection","cellSelection","defaultCellSelection","onCellSelectionChange","gridCommands","toolbarDataOperations","unifiedState","onStateChange","apiRef","summaryRows","enablePrint","enableFullscreen","emptyState","stateOverlay","getRowLoadingState","stickyHeader","showToolbar","className","tableClassName","stripedRows","fileUpload","accessibility","interactiveGrid","fileInputRef","tableScrollContainerRef","draggedColumnIdRef","toolbarSavedViewsVersion","setToolbarSavedViewsVersion","generatedTitleId","generatedDescriptionId","validateDataTableColumnIds","toolbarOperations","gridMode","currentCellSelection","setCurrentCellSelection","resolvedSorting","resolvedGrouping","resolvedPageIndex","resolvedPageSize","resolvedRowSelection","resolvedColumnVisibility","resolvedColumnFilters","resolvedExpanded","resolvedColumnOrder","resolvedColumnPinning","resolvedRowPinning","resolvedColumnSizing","resolvedDensity","resolvedViewMode","resolvedShowHiddenRows","showTableHeading","useDataTableStateConflictWarnings","handleToolbarQueryValueChange","useDataTableStateSliceChange","handleSortingPropChange","handleGroupingPropChange","handleRowSelectionPropChange","handleColumnVisibilityPropChange","handleColumnFiltersPropChange","handleExpandedPropChange","handleColumnOrderPropChange","handleColumnPinningPropChange","handleRowPinningPropChange","handleColumnSizingPropChange","handleDensityPropChange","handleViewModePropChange","handleShowHiddenRowsPropChange","handlePageIndexPropChange","handlePageSizePropChange","runAction","runDataTableAction","guardedRowActions","guardedOnRowClick","handleEditError","usesLegacyDetailPanelState","resolvedDetailPanel","clearEditError","draftValues","setDraftValues","useRowEditing","rowEditingContext","tableScrollElement","viewportHeight","useDataTableScrollViewport","autoPageSizeConfig","handleAutoPageSizeChange","autoPageSizeEnabled","print","toggleFullscreen","isFullscreen","setIsFullscreen","update","handleSelectedFiles","files","getDataTableColumnGroupPaths","virtualPaddingBottom","virtualPaddingTop","columnLayout","explicitCustomCellColumnIds","visibleLeafColumnCount","bodyRowComponents","primeColumnForResize","currentSize","flushSync","resetColumnSize","filteredData","configuredEmptyState","guardedStateOverlay","guardedToolbarActions","guardedSelectionActions","currentDataTableState","getCurrentState","cloneDataTableState","restoreState","nextState","clearPersistedState","resetColumnLayout","resetState","getSavedViews","createSavedView","applySavedView","renameSavedView","deleteSavedView","clearSavedViews","toolbarSavedViews","handleToolbarCreateSavedView","handleToolbarRenameSavedView","handleToolbarDeleteSavedView","deleted","exportCsvFromApi","copyToClipboard","copyDataTableToClipboard","pinRow","unpinRow","scrollDataTableElementIntoView","isDataTableEditableClipboardTarget","command","paste","parseDataTableClipboardText","onLegacyChange","handleChange","legacySlices","warnedSlicesRef","container","kind","attribute"],"mappings":"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","file":"chunk-JNI3CH7M.js","sourcesContent":["import * as React from \"react\";\nimport type { Row } from \"@tanstack/react-table\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\n\nexport function DataTableBaseCardPanel({\n cardClassName,\n cardGridClassName,\n cardSizing,\n cardRenderer,\n currentRowSelection,\n currentDetailExpanded,\n DataTableCardView,\n DataTableEmptyState,\n dragAndDrop,\n editableRows,\n editingRowId,\n emptyNode,\n enableRowSelection,\n flexGrow,\n getRowClassName,\n hasCardTitle,\n infiniteScroll,\n localSearchValue,\n onRowClick,\n renderedRows,\n detailPanel,\n resolvedLabels,\n resolvedLoadingRowCount,\n rowActions = [],\n ScrollArea,\n sentinelRef,\n setCurrentDetailExpanded,\n setCurrentRowSelection,\n setEditingRowId,\n shouldRenderInitialLoading,\n stateOverlayNode,\n tableContainerClassName,\n uiClassNames,\n}: DataTableCardPanelProps) {\n const shouldRenderCards =\n shouldRenderInitialLoading || renderedRows.length > 0;\n const cardScrollContainerRef = React.useRef(null);\n\n const renderCardView = (\n rows: Array>,\n options?: {\n isLoading?: boolean;\n loadingRowCount?: number;\n },\n ) => (\n \n );\n\n return (\n \n \n \n {shouldRenderCards ? (\n shouldRenderInitialLoading ? (\n renderCardView([], {\n isLoading: true,\n loadingRowCount: resolvedLoadingRowCount,\n })\n ) : (\n renderCardView(renderedRows)\n )\n ) : (\n
    \n {emptyNode ?? (\n \n )}\n
    \n )}\n\n {infiniteScroll?.enabled && !shouldRenderInitialLoading ? (\n
    \n
    \n
    \n ) : null}\n
    \n \n {stateOverlayNode}\n \n );\n}\n","import * as React from \"react\";\nimport { DataTableBaseCardPanel } from \"./data-table-base-card-panel\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\n\nconst LazyDataTableVirtualCardPanel = React.lazy(async () => {\n const module = await import(\"./data-table-virtual-card-panel\");\n return { default: module.DataTableVirtualCardPanel };\n}) as unknown as typeof DataTableBaseCardPanel;\n\nexport function DataTableCardPanel(\n props: DataTableCardPanelProps,\n) {\n const config =\n typeof props.virtualization === \"object\"\n ? props.virtualization.card\n : undefined;\n\n if (config?.enabled !== true) {\n return ;\n }\n\n return (\n \n }\n >\n \n \n );\n}\n\nexport type { DataTableCardPanelProps };\n","import * as React from \"react\";\nimport type { PaginationState } from \"@tanstack/react-table\";\nimport type { DataTableLabels } from \"../types\";\n\ntype DataTableFooterSectionProps = {\n children?: React.ReactNode;\n currentPagination: PaginationState;\n DataTableFooter: React.ElementType;\n effectivePageCount: number;\n footerTotalRowCount: number | undefined;\n handleFooterPageIndexChange: (pageIndex: number) => void;\n handleFooterPageSizeChange: (pageSize: number) => void;\n labels: DataTableLabels;\n pageCountKnown?: boolean;\n rowsPerPageOptions: Array;\n showFooter: boolean;\n};\n\nexport function DataTableFooterSection({\n children,\n currentPagination,\n DataTableFooter,\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n labels,\n pageCountKnown = true,\n rowsPerPageOptions,\n showFooter,\n}: DataTableFooterSectionProps) {\n if (!showFooter && !children) {\n return null;\n }\n\n return (\n
    \n {showFooter ? (\n \n ) : null}\n {children}\n
    \n );\n}\n","import * as React from \"react\";\nimport type { Table as TanStackTable } from \"@tanstack/react-table\";\nimport type {\n DataTableLabels,\n DataTableProps,\n DataTableSavedView,\n} from \"../types\";\n\ntype DataTableToolbarSectionProps = {\n allRows: Array;\n columnFilters: Array;\n columnVisibilityOptions: Array;\n compactToolbar: React.ReactNode;\n customToolbar: React.ReactNode;\n DataTableToolbar: React.ElementType;\n description: string | undefined;\n descriptionId: string | undefined;\n effectiveToolbarActions: Array;\n enableColumnPinning: boolean;\n enableGrouping: boolean;\n enableToolbarColumnChooser: boolean;\n enableToolbarFilterChips: boolean;\n enableToolbarResetLayout: boolean;\n enableToolbarSavedViews: boolean;\n enableDensityToggle: boolean;\n enableViewToggle: boolean;\n hiddenRowsLabel: string | undefined;\n labels: DataTableLabels;\n onClearColumnFilters: () => void;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n onColumnPinningChange: (columnId: string, side: \"left\" | \"right\" | false) => void;\n onDensityChange: (density: \"compact\" | \"comfortable\" | \"spacious\") => void;\n onShowHiddenRowsChange: (showHiddenRows: boolean) => void;\n onToolbarQueryValueChange: (value: string) => void;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n onResetColumnLayout: () => void;\n onCreateSavedView: (name: string) => DataTableSavedView | undefined;\n onApplySavedView: (id: string) => boolean;\n onRenameSavedView: (id: string, name: string) => DataTableSavedView | undefined;\n onDeleteSavedView: (id: string) => boolean;\n onViewModeChange: (viewMode: \"table\" | \"card\") => void;\n openFileDialog: (() => void) | undefined;\n selectedRowIds: Array;\n selectedRows: Array;\n selectionActions: DataTableProps[\"selectionActions\"];\n savedViews: Array;\n showHiddenRows: boolean;\n table: TanStackTable;\n title: string | undefined;\n titleId: string | undefined;\n toolbarQueryPlaceholder: string;\n toolbarQueryValue: string;\n toolbarVisibility: DataTableProps[\"toolbarVisibility\"];\n density: \"compact\" | \"comfortable\" | \"spacious\";\n viewMode: \"table\" | \"card\";\n};\n\nexport function DataTableToolbarSection({\n allRows,\n columnFilters,\n columnVisibilityOptions,\n compactToolbar,\n customToolbar,\n DataTableToolbar,\n description,\n descriptionId,\n effectiveToolbarActions,\n enableColumnPinning,\n enableGrouping,\n enableToolbarColumnChooser,\n enableToolbarFilterChips,\n enableToolbarResetLayout,\n enableToolbarSavedViews,\n enableDensityToggle,\n enableViewToggle,\n hiddenRowsLabel,\n labels,\n onClearColumnFilters,\n onColumnFilterChange,\n onColumnPinningChange,\n onDensityChange,\n onShowHiddenRowsChange,\n onToolbarQueryValueChange,\n reorderColumn,\n onResetColumnLayout,\n onCreateSavedView,\n onApplySavedView,\n onRenameSavedView,\n onDeleteSavedView,\n onViewModeChange,\n openFileDialog,\n selectedRowIds,\n selectedRows,\n selectionActions,\n savedViews,\n showHiddenRows,\n table,\n title,\n titleId,\n toolbarQueryPlaceholder,\n toolbarQueryValue,\n toolbarVisibility,\n density,\n viewMode,\n}: DataTableToolbarSectionProps) {\n return (\n
    \n {\n table.getColumn(columnId)?.toggleVisibility(visible);\n }}\n enableColumnPinning={enableColumnPinning}\n enableGrouping={enableGrouping}\n enableToolbarColumnChooser={enableToolbarColumnChooser}\n enableToolbarFilterChips={enableToolbarFilterChips}\n enableToolbarResetLayout={enableToolbarResetLayout}\n enableToolbarSavedViews={enableToolbarSavedViews}\n onColumnPinningChange={onColumnPinningChange}\n columnFilters={columnFilters}\n onColumnFilterChange={onColumnFilterChange}\n onClearColumnFilters={onClearColumnFilters}\n onResetColumnLayout={onResetColumnLayout}\n onCreateSavedView={onCreateSavedView}\n onApplySavedView={onApplySavedView}\n onRenameSavedView={onRenameSavedView}\n onDeleteSavedView={onDeleteSavedView}\n density={density}\n onDensityChange={onDensityChange}\n enableDensityToggle={enableDensityToggle}\n labels={labels}\n toolbarVisibility={toolbarVisibility}\n openFileDialog={openFileDialog}\n savedViews={savedViews}\n table={table}\n />\n
    \n );\n}\n","import type { DataTableLabels } from \"../types\";\n\ntype ResolvedDataTableLabels = Required;\n\nexport const DATA_TABLE_DEFAULT_LABELS: ResolvedDataTableLabels = {\n searchPlaceholder: \"Search rows...\",\n searchTable: \"Search table\",\n clearSearch: \"Clear search\",\n noRowsTitle: \"No rows yet\",\n noRowsDescription: \"Create a record or refresh this view once data exists.\",\n noMatchingRowsTitle: \"No matching rows\",\n noMatchingRowsDescription: \"Try a different search term or clear filters.\",\n tableOptions: \"Show table options\",\n columns: \"Columns\",\n filters: \"Filters\",\n clearFilters: \"Clear filters\",\n filterFrom: \"From\",\n filterTo: \"To\",\n filterTrue: \"Yes\",\n filterFalse: \"No\",\n selectedRows: (count) =>\n `${count} record${count === 1 ? \"\" : \"s\"} selected`,\n showHiddenRows: (label) => `Show ${label}`,\n recordsPerPage: \"Records per page\",\n totalRecords: (count) => `Total records: ${count}`,\n pageStatus: (pageIndex, pageCount) => `Page ${pageIndex + 1} of ${pageCount}`,\n pageStatusUnknown: (pageIndex) => `Page ${pageIndex + 1}`,\n pagination: \"Pagination\",\n morePages: \"More pages\",\n firstPage: \"First page\",\n previousPage: \"Previous page\",\n nextPage: \"Next page\",\n lastPage: \"Last page\",\n selectAllVisibleRows: \"Select all visible rows\",\n selectAllFilteredRows: \"Select all filtered rows\",\n selectRow: \"Select row\",\n selectCardRow: (rowId) => `Select row ${rowId}`,\n switchToTableView: \"Switch to table view\",\n switchToCardView: \"Switch to card view\",\n tableView: \"Table view\",\n cardView: \"Card view\",\n allFilterOptions: \"All\",\n actions: \"Actions\",\n rowActions: \"Row actions\",\n editRow: \"Edit row\",\n saveEdit: \"Save\",\n cancelEdit: \"Cancel editing\",\n expandRow: \"Expand row\",\n collapseRow: \"Collapse row\",\n expandRowDetails: \"Expand row details\",\n collapseRowDetails: \"Collapse row details\",\n exportCsv: \"Export CSV\",\n print: \"Print table\",\n enterFullscreen: \"Enter fullscreen\",\n exitFullscreen: \"Exit fullscreen\",\n errorTitle: \"Unable to load this table\",\n errorDescription: \"Try again or check your connection.\",\n retry: \"Retry\",\n density: \"Density\",\n compactDensity: \"Compact\",\n comfortableDensity: \"Comfortable\",\n spaciousDensity: \"Spacious\",\n pinLeft: \"Pin left\",\n pinRight: \"Pin right\",\n unpin: \"Unpin\",\n pinRowToTop: \"Pin row to top\",\n pinRowToBottom: \"Pin row to bottom\",\n unpinRow: \"Unpin row\",\n resizeColumn: (columnLabel) => `Resize ${columnLabel}`,\n grouping: \"Grouping\",\n groupBy: (columnLabel) => `Group by ${columnLabel}`,\n ungroup: (columnLabel) => `Ungroup ${columnLabel}`,\n removeGrouping: (columnLabel) => `Remove ${columnLabel} grouping`,\n moveGroupingEarlier: (columnLabel) => `Move ${columnLabel} grouping earlier`,\n moveGroupingLater: (columnLabel) => `Move ${columnLabel} grouping later`,\n facetSearch: (columnLabel) => `Search ${columnLabel} options`,\n searchColumns: \"Search columns\",\n showAllColumns: \"Show all columns\",\n hideAllColumns: \"Hide all columns\",\n moveColumnEarlier: (columnLabel) => `Move ${columnLabel} earlier`,\n moveColumnLater: (columnLabel) => `Move ${columnLabel} later`,\n resetColumnLayout: \"Reset column layout\",\n savedViews: \"Saved views\",\n createSavedView: \"Create saved view\",\n savedViewName: \"View name\",\n applySavedView: (name) => `Apply saved view ${name}`,\n renameSavedView: (name) => `Rename saved view ${name}`,\n deleteSavedView: (name) => `Delete saved view ${name}`,\n saveSavedView: \"Save view\",\n};\n\nexport function resolveDataTableLabels(\n labels?: Partial,\n): ResolvedDataTableLabels {\n return {\n ...DATA_TABLE_DEFAULT_LABELS,\n ...labels,\n } as ResolvedDataTableLabels;\n}\n","import * as React from \"react\";\nimport type {\n ColumnDef,\n ExpandedState,\n OnChangeFn,\n RowPinningPosition,\n Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport { IconChevronDown } from \"../icons\";\nimport type {\n DataTableEditableRowsConfig,\n DataTableDetailPanel,\n DataTableLabels,\n DataTableProps,\n DataTableRowAction,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport {\n UTILITY_COLUMN_SIZE,\n decorateFilterableColumn,\n isDataTableLoadingRow,\n toggleDataTableExpandedState,\n} from \"./data-table-utils\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\ntype DataTableRowActionsComponentProps = {\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n labels: DataTableLabels;\n onCancelEditing: () => void;\n onStartEditing: () => void;\n row: TData;\n rowActions: Array>;\n rowPinning?: {\n canPin: boolean;\n position: RowPinningPosition;\n pin: (position: RowPinningPosition) => void;\n };\n};\n\nexport function useDataTableColumns({\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n editingRowId,\n editErrors,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion,\n isSavingEdit,\n isEditDirty,\n labels,\n lastSelectedRowIdRef,\n detailPanel,\n detailExpanded,\n onDetailExpandedChange,\n rowSelectionSelectAllScope,\n rowActions,\n saveEdit,\n startEditingRow,\n tableRef,\n}: {\n Button: DataTableUiKit[\"Button\"];\n Checkbox: DataTableUiKit[\"Checkbox\"];\n DataTableRowActions: React.ComponentType<\n DataTableRowActionsComponentProps\n >;\n Tooltip: DataTableUiKit[\"Tooltip\"];\n TooltipContent: DataTableUiKit[\"TooltipContent\"];\n TooltipTrigger: DataTableUiKit[\"TooltipTrigger\"];\n cancelEditing: () => void;\n columns: DataTableProps[\"columns\"];\n editableRows: DataTableProps[\"editableRows\"];\n editingRowId: string | null;\n editErrors: Record;\n enableRowSelection: boolean;\n enableRowPinning: DataTableProps[\"enableRowPinning\"];\n hasTreeExpansion: boolean;\n isSavingEdit: boolean;\n isEditDirty: boolean;\n labels: DataTableLabels;\n lastSelectedRowIdRef: React.MutableRefObject;\n detailPanel: DataTableDetailPanel | undefined;\n detailExpanded: ExpandedState;\n onDetailExpandedChange: OnChangeFn;\n rowSelectionSelectAllScope: NonNullable<\n DataTableProps[\"rowSelectionSelectAllScope\"]\n >;\n rowActions: Array>;\n saveEdit: (row: TData) => Promise;\n startEditingRow: (row: TData, rowId: string) => void;\n tableRef: React.RefObject | null>;\n}) {\n const selectRowRange = React.useCallback(\n (targetRowId: string, selected: boolean) => {\n const tableInstance = tableRef.current;\n if (!tableInstance || !lastSelectedRowIdRef.current) {\n return;\n }\n\n const rows = tableInstance\n .getRowModel()\n .rows.filter((row) => !isDataTableLoadingRow(row.original));\n const startIndex = rows.findIndex(\n (row) => row.id === lastSelectedRowIdRef.current,\n );\n const endIndex = rows.findIndex((row) => row.id === targetRowId);\n\n if (startIndex < 0 || endIndex < 0) {\n return;\n }\n\n const from = Math.min(startIndex, endIndex);\n const to = Math.max(startIndex, endIndex);\n tableInstance.setRowSelection((current) => {\n const next = { ...current };\n for (const row of rows\n .slice(from, to + 1)\n .filter(\n (item) => item.getCanSelect() && item.getCanMultiSelect(),\n )) {\n if (selected) {\n next[row.id] = true;\n } else {\n delete next[row.id];\n }\n }\n return next;\n });\n },\n [lastSelectedRowIdRef, tableRef],\n );\n\n return React.useMemo>>(() => {\n const defs: Array> = [];\n\n if (hasTreeExpansion || detailPanel) {\n const expansionColumnSize =\n hasTreeExpansion && detailPanel ? 80 : UTILITY_COLUMN_SIZE;\n defs.push({\n id: \"__expand__\",\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n size: expansionColumnSize,\n minSize: expansionColumnSize,\n maxSize: expansionColumnSize,\n header: () => {labels.expandRow},\n cell: ({ row, table }) => {\n const canExpandTree = hasTreeExpansion && row.getCanExpand();\n const canExpandDetail = Boolean(\n detailPanel && (detailPanel.getRowCanExpand?.(row.original) ?? true),\n );\n if (!canExpandTree && !canExpandDetail) {\n return null;\n }\n\n const isTreeExpanded = row.getIsExpanded();\n const isDetailExpanded =\n detailExpanded === true || Boolean(detailExpanded[row.id]);\n return (\n
    \n {canExpandTree ? (\n row.toggleExpanded()}\n >\n \n \n ) : null}\n {canExpandDetail ? (\n {\n onDetailExpandedChange((current) =>\n toggleDataTableExpandedState(\n current,\n row.id,\n table.getCoreRowModel().flatRows.map((item) => item.id),\n ),\n );\n }}\n >\n \n \n ) : null}\n
    \n );\n },\n });\n }\n\n if (enableRowSelection) {\n defs.push({\n id: \"__select__\",\n enableResizing: false,\n enableSorting: false,\n enableHiding: false,\n size: UTILITY_COLUMN_SIZE,\n minSize: UTILITY_COLUMN_SIZE,\n maxSize: UTILITY_COLUMN_SIZE,\n header: ({ table }) => {\n const selectsFilteredRows = rowSelectionSelectAllScope === \"filtered\";\n const selectableRows = (selectsFilteredRows\n ? table.getFilteredRowModel().flatRows\n : table.getRowModel().flatRows\n ).filter((row) => row.getCanSelect() && row.getCanMultiSelect());\n const allSelected =\n selectableRows.length > 0 &&\n selectableRows.every((row) => row.getIsSelected());\n const someSelected = selectableRows.some((row) => row.getIsSelected());\n const label = selectsFilteredRows\n ? (labels.selectAllFilteredRows ??\n DATA_TABLE_DEFAULT_LABELS.selectAllFilteredRows)\n : (labels.selectAllVisibleRows ??\n DATA_TABLE_DEFAULT_LABELS.selectAllVisibleRows);\n\n if (selectableRows.length === 0) {\n return {label};\n }\n\n return (\n
    \n {\n table.setRowSelection((current) => {\n const next = { ...current };\n for (const row of selectableRows) {\n if (checked === true) {\n next[row.id] = true;\n } else {\n delete next[row.id];\n }\n }\n return next;\n });\n }}\n aria-label={label}\n />\n
    \n );\n },\n cell: ({ row }) => (\n
    \n ) => {\n if (\n !event.shiftKey ||\n !lastSelectedRowIdRef.current ||\n !row.getCanMultiSelect()\n ) {\n lastSelectedRowIdRef.current = row.id;\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n selectRowRange(row.id, !row.getIsSelected());\n lastSelectedRowIdRef.current = row.id;\n }}\n onCheckedChange={(checked: boolean | \"indeterminate\") => {\n lastSelectedRowIdRef.current = row.id;\n row.toggleSelected(checked === true);\n }}\n aria-label={\n labels.selectRow ?? DATA_TABLE_DEFAULT_LABELS.selectRow\n }\n />\n
    \n ),\n });\n }\n\n defs.push(...columns.map((column) => decorateFilterableColumn(column)));\n\n if (rowActions.length || editableRows || enableRowPinning) {\n defs.push({\n id: \"__actions__\",\n enableSorting: false,\n enableResizing: false,\n enableHiding: false,\n size: UTILITY_COLUMN_SIZE,\n minSize: UTILITY_COLUMN_SIZE,\n maxSize: UTILITY_COLUMN_SIZE,\n header: () => {labels.actions},\n cell: ({ row }) => {\n const rowId = row.id;\n const isEditing = editingRowId === rowId;\n\n if (isEditing) {\n return (\n
    \n {editErrors._row ? (\n \n {editErrors._row}\n \n ) : null}\n {\n void saveEdit(row.original);\n }}\n >\n {labels.saveEdit}\n \n \n \n \n \n {labels.cancelEdit}\n \n \n {labels.cancelEdit}\n \n
    \n );\n }\n\n return (\n
    \n {\n startEditingRow(row.original, row.id);\n }}\n onCancelEditing={() => {}}\n labels={labels}\n rowPinning={\n enableRowPinning\n ? {\n canPin: row.getCanPin(),\n position: row.getIsPinned(),\n pin: (position) => row.pin(position),\n }\n : undefined\n }\n />\n
    \n );\n },\n });\n }\n\n return defs;\n }, [\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n detailExpanded,\n detailPanel,\n editErrors,\n editingRowId,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion,\n isSavingEdit,\n isEditDirty,\n labels,\n lastSelectedRowIdRef,\n onDetailExpandedChange,\n rowSelectionSelectAllScope,\n rowActions,\n saveEdit,\n selectRowRange,\n startEditingRow,\n ]);\n}\n","import * as React from \"react\";\nimport type { Updater } from \"@tanstack/react-table\";\n\nexport function useControllableState({\n defaultValue,\n onChange,\n value,\n}: {\n defaultValue: T | (() => T);\n onChange?: (value: T) => void;\n value: T | undefined;\n}) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const currentValue = value ?? uncontrolledValue;\n const currentValueRef = React.useRef(currentValue);\n\n React.useEffect(() => {\n currentValueRef.current = currentValue;\n }, [currentValue]);\n\n const setValue = React.useCallback(\n (updater: Updater) => {\n const nextValue =\n typeof updater === \"function\"\n ? (updater as (current: T) => T)(currentValueRef.current)\n : updater;\n currentValueRef.current = nextValue;\n\n onChange?.(nextValue);\n\n if (value === undefined) {\n setUncontrolledValue(nextValue);\n }\n },\n [onChange, value],\n );\n\n return [currentValue, setValue] as const;\n}\n","import * as React from \"react\";\n\nexport function useDataTableInfiniteScroll({\n enabled,\n hasMore,\n isLoadingMore,\n onLoadMore,\n onError,\n}: {\n enabled: boolean;\n hasMore: boolean;\n isLoadingMore?: boolean;\n onLoadMore: () => void | Promise;\n onError?: (error: unknown) => void;\n}) {\n const sentinelRef = React.useRef(null);\n const isRequestInFlightRef = React.useRef(false);\n const onLoadMoreEvent = React.useEffectEvent(onLoadMore);\n const onErrorEvent = React.useEffectEvent((error: unknown) => {\n onError?.(error);\n });\n\n React.useEffect(() => {\n if (!enabled || !hasMore || isLoadingMore) {\n return;\n }\n\n const target = sentinelRef.current;\n if (!target) {\n return;\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting && !isRequestInFlightRef.current) {\n isRequestInFlightRef.current = true;\n\n let result: void | Promise;\n try {\n result = onLoadMoreEvent();\n } catch (error) {\n isRequestInFlightRef.current = false;\n onErrorEvent(error);\n return;\n }\n\n void Promise.resolve(result)\n .catch((error: unknown) => {\n onErrorEvent(error);\n })\n .finally(() => {\n isRequestInFlightRef.current = false;\n });\n }\n },\n {\n rootMargin: \"200px 0px 200px 0px\",\n },\n );\n\n observer.observe(target);\n\n return () => {\n observer.disconnect();\n };\n }, [enabled, hasMore, isLoadingMore]);\n\n return sentinelRef;\n}\n","import * as React from \"react\";\n\nexport function useDataTablePaginationClamp({\n enabled,\n maxPageIndex,\n onPageIndexChange,\n pageIndex,\n setLocalPageIndex,\n}: {\n enabled: boolean;\n maxPageIndex: number;\n onPageIndexChange?: (pageIndex: number) => void;\n pageIndex: number;\n setLocalPageIndex: (pageIndex: number) => void;\n}) {\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n if (pageIndex >= 0 && pageIndex <= maxPageIndex) {\n return;\n }\n\n const nextPageIndex = Math.min(Math.max(pageIndex, 0), maxPageIndex);\n setLocalPageIndex(nextPageIndex);\n onPageIndexChange?.(nextPageIndex);\n }, [enabled, maxPageIndex, onPageIndexChange, pageIndex, setLocalPageIndex]);\n}\n","import * as React from \"react\";\nimport type { FilterFn, Row } from \"@tanstack/react-table\";\nimport { normalizeDataTableSearchText } from \"./data-table-utils\";\n\n/**\n * Caches each searchable cell against the application-owned row object and\n * stable column id. WeakMap entries disappear with immutable rows and never\n * retain removed data. Mutable rows are deliberately unsupported because a\n * cache cannot safely observe deep changes without defeating its purpose.\n */\nexport function useDataTableSearchIndex(\n) {\n // eslint-disable-next-line react-hooks/immutability -- This weak cache is deliberately populated by TanStack's filter pass, never read during React render.\n return React.useMemo>(() => {\n const valuesByRow = new WeakMap>();\n\n return (row: Row, columnId: string, filterValue: unknown) => {\n const query = normalizeDataTableSearchText(filterValue);\n if (!query) {\n return true;\n }\n\n const original = row.original;\n if (typeof original !== \"object\" || original === null) {\n return normalizeDataTableSearchText(row.getValue(columnId)).includes(\n query,\n );\n }\n\n let valuesByColumn = valuesByRow.get(original);\n if (!valuesByColumn) {\n valuesByColumn = new Map();\n valuesByRow.set(original, valuesByColumn);\n }\n\n let text = valuesByColumn.get(columnId);\n if (text === undefined) {\n const value = row.getValue(columnId);\n text = normalizeDataTableSearchText(value);\n valuesByColumn.set(columnId, text);\n }\n\n return text.includes(query);\n };\n }, []);\n}\n","import * as React from \"react\";\nimport {\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedMinMaxValues,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport type {\n ColumnDef,\n ColumnFiltersState,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n ExpandedState,\n GroupingState,\n FilterFnOption,\n OnChangeFn,\n PaginationState,\n RowPinningState,\n Row,\n SortingState,\n Table as TanStackTable,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport type { DataTableProps } from \"../types\";\nimport {\n canReorderDataTableColumn,\n getColumnId,\n getDataTableLeafColumns,\n isDataTableLoadingRow,\n isUtilityColumnId,\n moveColumnInOrder,\n} from \"./data-table-utils\";\nimport type { DataTableColumnGroupPaths } from \"./data-table-utils\";\nimport { useDataTableInfiniteScroll } from \"./use-data-table-infinite-scroll\";\nimport { useDataTablePaginationClamp } from \"./use-data-table-pagination-clamp\";\nimport { useDataTableSearchIndex } from \"./use-data-table-search-index\";\n\nexport function useDataTableInstance({\n autoResetPageIndex,\n columnGroupPaths,\n columnResizeMode,\n dir,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n currentViewMode,\n defaultColumn,\n effectiveColumnVisibility,\n enableColumnResizing,\n enableMultiRowSelection,\n enableRowPinning,\n enableRowSelection,\n enableSubRowSelection,\n getRowCanSelect,\n getRowCanExpand,\n getSubRows,\n aggregationFns,\n groupedColumnMode,\n globalFilterFn,\n globalFilterValue,\n hasNextPage,\n handleColumnFiltersChange,\n handleColumnOrderChange,\n handleColumnPinningChange,\n handleRowPinningChange,\n handleColumnVisibilityChange,\n handleExpandedChange,\n handleGroupingChange,\n infiniteScroll,\n keepPinnedRows,\n manualFiltering,\n manualGrouping,\n manualExpanding,\n manualPagination,\n manualSorting,\n onActionError,\n onPageIndexChange,\n onPageSizeChange,\n pageCount,\n pageIndex,\n pageSize,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n shouldRenderInitialLoading,\n tableColumns,\n tableData,\n tableGetRowId,\n tableRef,\n totalRowCount,\n virtualization,\n}: {\n autoResetPageIndex: boolean;\n columnGroupPaths: DataTableColumnGroupPaths;\n columnResizeMode: DataTableProps[\"columnResizeMode\"];\n dir: NonNullable[\"dir\"]>;\n currentColumnFilters: ColumnFiltersState;\n currentColumnOrder: ColumnOrderState;\n currentColumnPinning: ColumnPinningState;\n currentRowPinning: RowPinningState;\n currentColumnSizing: ColumnSizingState;\n currentExpanded: ExpandedState;\n currentGrouping: GroupingState;\n currentPagination: PaginationState;\n currentRowSelection: Record;\n currentSorting: SortingState;\n currentViewMode: \"table\" | \"card\";\n defaultColumn: Partial>;\n effectiveColumnVisibility: VisibilityState;\n enableColumnResizing: boolean;\n enableMultiRowSelection: NonNullable<\n DataTableProps[\"enableMultiRowSelection\"]\n >;\n enableRowPinning: DataTableProps[\"enableRowPinning\"];\n enableRowSelection: boolean;\n enableSubRowSelection: NonNullable<\n DataTableProps[\"enableSubRowSelection\"]\n >;\n getRowCanSelect: DataTableProps[\"getRowCanSelect\"];\n getRowCanExpand: DataTableProps[\"getRowCanExpand\"];\n getSubRows: DataTableProps[\"getSubRows\"];\n aggregationFns: DataTableProps[\"aggregationFns\"];\n groupedColumnMode: DataTableProps[\"groupedColumnMode\"];\n globalFilterFn: FilterFnOption | undefined;\n globalFilterValue: string;\n hasNextPage?: DataTableProps[\"hasNextPage\"];\n handleColumnFiltersChange: OnChangeFn;\n handleColumnOrderChange: OnChangeFn;\n handleColumnPinningChange: OnChangeFn;\n handleRowPinningChange: OnChangeFn;\n handleColumnVisibilityChange: OnChangeFn;\n handleExpandedChange: OnChangeFn;\n handleGroupingChange: OnChangeFn;\n infiniteScroll: DataTableProps[\"infiniteScroll\"];\n keepPinnedRows: boolean;\n manualFiltering: boolean;\n manualGrouping: boolean;\n manualExpanding: boolean;\n manualPagination: boolean;\n manualSorting: boolean;\n onActionError?: DataTableProps[\"onActionError\"];\n onPageIndexChange: DataTableProps[\"onPageIndexChange\"];\n onPageSizeChange: DataTableProps[\"onPageSizeChange\"];\n pageCount: DataTableProps[\"pageCount\"];\n pageIndex: DataTableProps[\"pageIndex\"];\n pageSize: DataTableProps[\"pageSize\"];\n paginateExpandedRows: DataTableProps[\"paginateExpandedRows\"];\n filterFromLeafRows: DataTableProps[\"filterFromLeafRows\"];\n maxLeafRowFilterDepth: DataTableProps[\"maxLeafRowFilterDepth\"];\n setCurrentRowSelection: OnChangeFn>;\n setCurrentSorting: OnChangeFn;\n setLocalColumnSizing: OnChangeFn;\n setLocalPagination: React.Dispatch>;\n shouldRenderInitialLoading: boolean;\n tableColumns: Array>;\n tableData: Array;\n tableGetRowId: DataTableProps[\"getRowId\"];\n tableRef: React.RefObject | null>;\n tableScrollElement: HTMLElement | null;\n /**\n * @deprecated Filtering now runs through TanStack Table. Retained so\n * advanced 4.x hook callers remain source-compatible.\n */\n toolbarFilteredData?: Array;\n totalRowCount: DataTableProps[\"totalRowCount\"];\n virtualization: DataTableProps[\"virtualization\"];\n viewportHeight: number;\n}) {\n const cachedGlobalFilterFn = useDataTableSearchIndex();\n const generatedColumnIds = React.useMemo(() => {\n return getDataTableLeafColumns(\n tableColumns as DataTableProps[\"columns\"],\n ).map(({ column, index }) => getColumnId(column, index));\n }, [tableColumns]);\n\n const effectiveColumnOrder = React.useMemo(() => {\n const columnIds = generatedColumnIds;\n const dataColumnIds = columnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n );\n const dataColumnIdSet = new Set(dataColumnIds);\n const orderedDataColumnIds = currentColumnOrder.filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n const unorderedDataColumnIds = dataColumnIds.filter(\n (columnId) => !orderedDataColumnIds.includes(columnId),\n );\n\n return [\n ...columnIds.filter(\n (columnId) => columnId === \"__expand__\" || columnId === \"__select__\",\n ),\n ...orderedDataColumnIds,\n ...unorderedDataColumnIds,\n ...columnIds.filter((columnId) => columnId === \"__spacer__\"),\n ...columnIds.filter((columnId) => columnId === \"__actions__\"),\n ];\n }, [currentColumnOrder, generatedColumnIds]);\n\n const effectiveColumnPinning = React.useMemo(() => {\n const columnIdSet = new Set(generatedColumnIds);\n const dataColumnIdSet = new Set(\n generatedColumnIds.filter(\n (columnId) =>\n !isUtilityColumnId(columnId) && columnId !== \"__spacer__\",\n ),\n );\n const dataLeft = (currentColumnPinning.left ?? []).filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n const dataRight = (currentColumnPinning.right ?? []).filter((columnId) =>\n dataColumnIdSet.has(columnId),\n );\n\n return {\n left: [\n ...[\"__expand__\", \"__select__\"].filter((columnId) =>\n columnIdSet.has(columnId),\n ),\n ...dataLeft,\n ],\n right: [\n ...dataRight,\n ...[\"__actions__\"].filter((columnId) => columnIdSet.has(columnId)),\n ],\n };\n }, [currentColumnPinning, generatedColumnIds]);\n\n const effectiveRowPinning = React.useMemo(() => {\n const availableRowIds = new Set();\n const visitRows = (rows: Array) => {\n rows.forEach((row, index) => {\n availableRowIds.add(tableGetRowId(row, index));\n if (!isDataTableLoadingRow(row)) {\n const subRows = getSubRows?.(row, index);\n if (subRows?.length) {\n visitRows(subRows);\n }\n }\n });\n };\n visitRows(tableData);\n const top = (currentRowPinning.top ?? []).filter((rowId) =>\n availableRowIds.has(rowId),\n );\n const topIds = new Set(top);\n const bottom = (currentRowPinning.bottom ?? []).filter(\n (rowId) => availableRowIds.has(rowId) && !topIds.has(rowId),\n );\n return { top, bottom };\n }, [\n currentRowPinning.bottom,\n currentRowPinning.top,\n getSubRows,\n tableData,\n tableGetRowId,\n ]);\n\n const tableState = React.useMemo(\n () => ({\n sorting: currentSorting,\n pagination: currentPagination,\n rowSelection: currentRowSelection,\n columnVisibility: effectiveColumnVisibility,\n columnFilters: currentColumnFilters,\n globalFilter: globalFilterValue,\n expanded: currentExpanded,\n grouping: currentGrouping,\n columnOrder: effectiveColumnOrder,\n columnPinning: effectiveColumnPinning,\n rowPinning: effectiveRowPinning,\n columnSizing: currentColumnSizing,\n }),\n [\n currentColumnFilters,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n effectiveColumnVisibility,\n effectiveColumnOrder,\n effectiveColumnPinning,\n effectiveRowPinning,\n globalFilterValue,\n ],\n );\n\n const handlePaginationChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n const nextValue =\n typeof updater === \"function\" ? updater(currentPagination) : updater;\n\n if (pageIndex === undefined || pageSize === undefined) {\n setLocalPagination((current) => ({\n pageIndex:\n pageIndex === undefined ? nextValue.pageIndex : current.pageIndex,\n pageSize:\n pageSize === undefined ? nextValue.pageSize : current.pageSize,\n }));\n }\n\n if (nextValue.pageIndex !== currentPagination.pageIndex) {\n onPageIndexChange?.(nextValue.pageIndex);\n }\n if (nextValue.pageSize !== currentPagination.pageSize) {\n onPageSizeChange?.(nextValue.pageSize);\n }\n },\n [\n currentPagination,\n onPageIndexChange,\n onPageSizeChange,\n pageIndex,\n pageSize,\n setLocalPagination,\n ],\n );\n\n const handleColumnSizingChange = React.useCallback<\n OnChangeFn\n >(\n (updater) => {\n setLocalColumnSizing(updater);\n },\n [setLocalColumnSizing],\n );\n\n const facetingNeeds = React.useMemo(\n () => {\n let uniqueValues = false;\n let minMaxValues = false;\n for (const { column } of getDataTableLeafColumns(\n tableColumns as DataTableProps[\"columns\"],\n )) {\n uniqueValues ||= column.meta?.filter?.type === \"faceted\";\n minMaxValues ||= column.meta?.filter?.type === \"numberRange\";\n }\n return { minMaxValues, uniqueValues };\n },\n [tableColumns],\n );\n\n // eslint-disable-next-line react-hooks/incompatible-library -- TanStack Table owns its instance functions.\n const table = useReactTable({\n data: tableData,\n columns: tableColumns,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: manualFiltering ? undefined : getFilteredRowModel(),\n getFacetedRowModel:\n (facetingNeeds.uniqueValues || facetingNeeds.minMaxValues) &&\n !manualFiltering\n ? getFacetedRowModel()\n : undefined,\n getFacetedUniqueValues:\n facetingNeeds.uniqueValues && !manualFiltering\n ? getFacetedUniqueValues()\n : undefined,\n getFacetedMinMaxValues:\n facetingNeeds.minMaxValues && !manualFiltering\n ? getFacetedMinMaxValues()\n : undefined,\n getGroupedRowModel:\n currentGrouping.length && !manualGrouping ? getGroupedRowModel() : undefined,\n getSortedRowModel: manualSorting ? undefined : getSortedRowModel(),\n getExpandedRowModel:\n (getSubRows || currentGrouping.length) && !manualExpanding\n ? getExpandedRowModel()\n : undefined,\n getPaginationRowModel:\n manualPagination || infiniteScroll?.enabled\n ? undefined\n : getPaginationRowModel(),\n enableRowSelection: getRowCanSelect\n ? (row) => enableRowSelection && getRowCanSelect(row.original)\n : enableRowSelection,\n enableRowPinning:\n typeof enableRowPinning === \"function\"\n ? (row) => enableRowPinning(row.original)\n : enableRowPinning,\n keepPinnedRows,\n enableMultiRowSelection:\n typeof enableMultiRowSelection === \"function\"\n ? (row) => enableMultiRowSelection(row.original)\n : enableMultiRowSelection,\n enableSubRowSelection:\n typeof enableSubRowSelection === \"function\"\n ? (row) => enableSubRowSelection(row.original)\n : enableSubRowSelection,\n enableColumnResizing,\n columnResizeMode,\n columnResizeDirection: dir,\n getRowId: tableGetRowId,\n getSubRows,\n getRowCanExpand: getSubRows\n ? (row) => getRowCanExpand?.(row.original) ?? row.subRows.length > 0\n : undefined,\n globalFilterFn: globalFilterFn ?? cachedGlobalFilterFn,\n getColumnCanGlobalFilter: (column) =>\n column.columnDef.enableGlobalFilter !== false &&\n typeof column.accessorFn === \"function\",\n manualSorting,\n manualGrouping,\n manualFiltering,\n manualExpanding,\n manualPagination: manualPagination || Boolean(infiniteScroll?.enabled),\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n defaultColumn,\n autoResetPageIndex,\n state: tableState,\n onSortingChange: setCurrentSorting,\n onPaginationChange: handlePaginationChange,\n onRowSelectionChange: setCurrentRowSelection,\n onColumnVisibilityChange: handleColumnVisibilityChange,\n onColumnFiltersChange: handleColumnFiltersChange,\n onExpandedChange: handleExpandedChange,\n onGroupingChange: handleGroupingChange,\n onColumnOrderChange: handleColumnOrderChange,\n onColumnPinningChange: handleColumnPinningChange,\n onRowPinningChange: handleRowPinningChange,\n onColumnSizingChange: handleColumnSizingChange,\n aggregationFns,\n groupedColumnMode,\n });\n tableRef.current = table;\n\n const visibleLeafColumns = table.getVisibleLeafColumns();\n const reorderColumn = React.useCallback(\n (sourceColumnId: string, targetColumnId: string) => {\n if (sourceColumnId === targetColumnId) {\n return;\n }\n\n if (\n !canReorderDataTableColumn(\n sourceColumnId,\n targetColumnId,\n columnGroupPaths,\n )\n ) {\n return;\n }\n\n const defaultOrder = table\n .getAllLeafColumns()\n .map((column) => column.id)\n .filter((columnId) => !isUtilityColumnId(columnId));\n const nextOrder = moveColumnInOrder(\n currentColumnOrder.length ? currentColumnOrder : defaultOrder,\n sourceColumnId,\n targetColumnId,\n );\n handleColumnOrderChange(nextOrder);\n },\n [columnGroupPaths, currentColumnOrder, handleColumnOrderChange, table],\n );\n\n const topPinnedRows = table.getTopRows();\n const bottomPinnedRows = table.getBottomRows();\n // Card rendering has no top/bottom table regions. Keep its original row\n // model intact rather than silently dropping pinned records.\n const renderedRows =\n currentViewMode === \"table\"\n ? table.getCenterRows()\n : table.getRowModel().rows;\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization : undefined;\n const virtualRowsEnabled =\n virtualization === true || virtualizationConfig?.enabled === true;\n const fallbackRowCount = Math.max(\n 1,\n Math.floor(virtualizationConfig?.fallbackRowCount ?? 20),\n );\n const initialRowsToRender = virtualRowsEnabled\n ? renderedRows.slice(0, fallbackRowCount)\n : renderedRows;\n const rowsToRender = initialRowsToRender.map((row, rowIndex) => ({\n row,\n rowIndex,\n }));\n\n const usesManualRows = manualPagination || Boolean(infiniteScroll?.enabled);\n const derivedTotalRowCount = usesManualRows\n ? undefined\n : table.getFilteredRowModel().rows.length;\n const effectiveTotalRowCount = totalRowCount ?? derivedTotalRowCount;\n const isPageCountKnown =\n !usesManualRows || pageCount !== undefined || totalRowCount !== undefined;\n const footerTotalRowCount = effectiveTotalRowCount;\n const effectivePageCount = shouldRenderInitialLoading\n ? 1\n : (pageCount ??\n (effectiveTotalRowCount !== undefined\n ? Math.max(\n 1,\n Math.ceil(effectiveTotalRowCount / currentPagination.pageSize),\n )\n : usesManualRows\n ? currentPagination.pageIndex + (hasNextPage ? 2 : 1)\n : table.getPageCount()));\n const maxPageIndex = Math.max(0, effectivePageCount - 1);\n\n const setLocalPageIndex = React.useCallback(\n (nextPageIndex: number) => {\n if (pageIndex !== undefined) {\n return;\n }\n\n setLocalPagination((current) =>\n current.pageIndex === nextPageIndex\n ? current\n : { ...current, pageIndex: nextPageIndex },\n );\n },\n [pageIndex, setLocalPagination],\n );\n useDataTablePaginationClamp({\n enabled:\n !shouldRenderInitialLoading &&\n !infiniteScroll?.enabled &&\n isPageCountKnown,\n maxPageIndex,\n onPageIndexChange,\n pageIndex: currentPagination.pageIndex,\n setLocalPageIndex,\n });\n\n const handleFooterPageIndexChange = React.useCallback(\n (nextPageIndex: number) => {\n if (nextPageIndex === currentPagination.pageIndex) {\n return;\n }\n\n onPageIndexChange?.(nextPageIndex);\n if (pageIndex === undefined) {\n setLocalPagination((current) =>\n current.pageIndex === nextPageIndex\n ? current\n : { ...current, pageIndex: nextPageIndex },\n );\n }\n },\n [\n currentPagination.pageIndex,\n onPageIndexChange,\n pageIndex,\n setLocalPagination,\n ],\n );\n const handleFooterPageSizeChange = React.useCallback(\n (nextPageSize: number) => {\n if (currentPagination.pageIndex !== 0) {\n onPageIndexChange?.(0);\n }\n if (nextPageSize !== currentPagination.pageSize) {\n onPageSizeChange?.(nextPageSize);\n }\n if (pageSize === undefined) {\n setLocalPagination({\n pageIndex: 0,\n pageSize: nextPageSize,\n });\n }\n },\n [\n currentPagination.pageIndex,\n currentPagination.pageSize,\n onPageIndexChange,\n onPageSizeChange,\n pageSize,\n setLocalPagination,\n ],\n );\n\n const sentinelRef = useDataTableInfiniteScroll({\n enabled: Boolean(infiniteScroll?.enabled),\n hasMore: Boolean(infiniteScroll?.hasMore),\n isLoadingMore: infiniteScroll?.isLoadingMore,\n onLoadMore: () => infiniteScroll?.onLoadMore(),\n onError: (error) => {\n onActionError?.({\n error,\n source: \"infiniteScroll\",\n });\n },\n });\n\n return {\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n isPageCountKnown,\n renderedRows,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n rowsToRender,\n sentinelRef,\n table,\n virtualPaddingBottom: 0,\n virtualPaddingTop: 0,\n visibleLeafColumns,\n };\n}\n\nexport type DataTableRowsToRender = Array<{\n row: Row;\n rowIndex: number;\n}>;\n","import * as React from \"react\";\nimport type {\n DataTableColumnPrefs,\n DataTableDensity,\n DataTablePersistenceConfig,\n DataTablePersistencePayload,\n DataTablePersistenceSlice,\n DataTablePersistenceStorage,\n} from \"../types\";\nimport type { RowPinningState } from \"@tanstack/react-table\";\n\nconst STORAGE_PREFIX = \"data-table-pro:column-prefs:\";\nconst DEFAULT_VERSION = 1;\nconst ALL_SLICES: Array = [\n \"visibility\",\n \"sizing\",\n \"order\",\n \"pinning\",\n \"rowPinning\",\n \"density\",\n];\n\nexport function readDataTableColumnPrefs(\n input: string | DataTablePersistenceConfig | undefined,\n): DataTableColumnPrefs {\n const config = resolvePersistenceConfig(input);\n if (!config) {\n return {};\n }\n\n const storage = resolveStorage(config);\n if (!storage) {\n return {};\n }\n const storageKey = getStorageKey(config.key);\n\n let value: string | null;\n try {\n value = storage.getItem(storageKey);\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return {};\n }\n if (!value) {\n return {};\n }\n\n let parsed: unknown;\n try {\n parsed = (config.deserialize ?? JSON.parse)(value);\n } catch (error) {\n config.onError?.({ error, operation: \"deserialize\" });\n return {};\n }\n\n const targetVersion = config.version ?? DEFAULT_VERSION;\n let candidate: unknown;\n if (isPersistencePayload(parsed)) {\n if (parsed.version === targetVersion) {\n candidate = parsed.state;\n } else if (config.migrate) {\n try {\n candidate = config.migrate(\n {\n version: parsed.version,\n state: parsed.state,\n },\n targetVersion,\n );\n } catch (error) {\n config.onError?.({ error, operation: \"migrate\" });\n return {};\n }\n } else {\n return {};\n }\n } else {\n // Raw objects are the legacy columnPrefsKey format. They are validated and\n // upgraded to a versioned envelope on the next successful write.\n candidate = parsed;\n }\n\n return selectPersistenceSlices(\n validateDataTableColumnPrefs(candidate),\n config.slices,\n );\n}\n\nexport function clearDataTableColumnPrefs(\n input: string | DataTablePersistenceConfig | undefined,\n) {\n const config = resolvePersistenceConfig(input);\n if (!config) {\n return false;\n }\n\n const storage = resolveStorage(config);\n if (!storage) {\n return false;\n }\n\n try {\n storage.removeItem(getStorageKey(config.key));\n return true;\n } catch (error) {\n config.onError?.({ error, operation: \"remove\" });\n return false;\n }\n}\n\nexport function usePersistDataTableColumnPrefs({\n key,\n persistence,\n prefs,\n}: {\n key?: string;\n persistence?: DataTablePersistenceConfig;\n prefs: DataTableColumnPrefs;\n}) {\n const config = persistence ?? resolvePersistenceConfig(key);\n const storage = config ? resolveStorage(config) : undefined;\n const storageKey = config ? getStorageKey(config.key) : undefined;\n const version = config?.version ?? DEFAULT_VERSION;\n const debounceMs = Math.max(0, config?.debounceMs ?? 100);\n const selectedState = selectPersistenceSlices(prefs, config?.slices);\n const serialized = React.useMemo(() => {\n if (!config) {\n return { value: undefined };\n }\n\n try {\n const payload: DataTablePersistencePayload = {\n version,\n state: selectedState,\n };\n return {\n value: (config.serialize ?? JSON.stringify)(payload),\n };\n } catch (error) {\n return { error, value: undefined };\n }\n }, [config, selectedState, version]);\n const onErrorEvent = React.useEffectEvent(\n (\n error: unknown,\n operation: \"serialize\" | \"write\",\n ) => {\n config?.onError?.({ error, operation });\n },\n );\n\n React.useEffect(() => {\n if (serialized.error !== undefined) {\n onErrorEvent(serialized.error, \"serialize\");\n }\n }, [serialized.error]);\n\n React.useEffect(() => {\n if (!storage || !storageKey || serialized.value === undefined) {\n return;\n }\n\n const write = () => {\n try {\n if (storage.getItem(storageKey) === serialized.value) {\n return;\n }\n storage.setItem(storageKey, serialized.value);\n } catch (error) {\n onErrorEvent(error, \"write\");\n }\n };\n\n if (debounceMs === 0) {\n write();\n return;\n }\n\n const timeout = globalThis.setTimeout(write, debounceMs);\n return () => {\n globalThis.clearTimeout(timeout);\n };\n }, [debounceMs, serialized.value, storage, storageKey]);\n}\n\nfunction resolvePersistenceConfig(\n input: string | DataTablePersistenceConfig | undefined,\n): DataTablePersistenceConfig | undefined {\n if (!input) {\n return undefined;\n }\n\n return typeof input === \"string\" ? { key: input } : input;\n}\n\nfunction resolveStorage(\n config: DataTablePersistenceConfig,\n): DataTablePersistenceStorage | undefined {\n if (config.storage) {\n return config.storage;\n }\n\n if (typeof window === \"undefined\") {\n return undefined;\n }\n\n try {\n return window.localStorage;\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return undefined;\n }\n}\n\nfunction getStorageKey(key: string) {\n return `${STORAGE_PREFIX}${key}`;\n}\n\nfunction isPersistencePayload(\n value: unknown,\n): value is { version: unknown; state: unknown } {\n return (\n isRecord(value) &&\n Object.prototype.hasOwnProperty.call(value, \"version\") &&\n Object.prototype.hasOwnProperty.call(value, \"state\")\n );\n}\n\nfunction selectPersistenceSlices(\n prefs: DataTableColumnPrefs,\n slices: Array | undefined,\n) {\n const selected = new Set(slices ?? ALL_SLICES);\n const result: DataTableColumnPrefs = {};\n\n for (const slice of ALL_SLICES) {\n if (selected.has(slice) && prefs[slice] !== undefined) {\n Object.assign(result, { [slice]: prefs[slice] });\n }\n }\n\n return result;\n}\n\nfunction validateDataTableColumnPrefs(value: unknown): DataTableColumnPrefs {\n if (!isRecord(value)) {\n return {};\n }\n\n const prefs: DataTableColumnPrefs = {};\n const visibility = validateBooleanRecord(value.visibility);\n if (visibility) {\n prefs.visibility = visibility;\n }\n const sizing = validateSizingRecord(value.sizing);\n if (sizing) {\n prefs.sizing = sizing;\n }\n const order = validateStringArray(value.order);\n if (order) {\n prefs.order = order;\n }\n if (isRecord(value.pinning)) {\n const left = validateStringArray(value.pinning.left) ?? [];\n const right = validateStringArray(value.pinning.right) ?? [];\n prefs.pinning = { left, right };\n }\n const rowPinning = validateRowPinning(value.rowPinning);\n if (rowPinning) {\n prefs.rowPinning = rowPinning;\n }\n if (isDataTableDensity(value.density)) {\n prefs.density = value.density;\n }\n\n return prefs;\n}\n\nfunction validateBooleanRecord(value: unknown) {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, boolean] => typeof entry[1] === \"boolean\",\n ),\n );\n}\n\nfunction validateSizingRecord(value: unknown) {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, number] =>\n typeof entry[1] === \"number\" &&\n Number.isFinite(entry[1]) &&\n entry[1] >= 0,\n ),\n );\n}\n\nfunction validateStringArray(value: unknown) {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction validateRowPinning(value: unknown): RowPinningState | undefined {\n if (!isRecord(value)) {\n return undefined;\n }\n\n return {\n top: validateStringArray(value.top) ?? [],\n bottom: validateStringArray(value.bottom) ?? [],\n };\n}\n\nfunction isDataTableDensity(value: unknown): value is DataTableDensity {\n return (\n value === \"compact\" ||\n value === \"comfortable\" ||\n value === \"spacious\"\n );\n}\n\nfunction isRecord(value: unknown): value is Record {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n","import * as React from \"react\";\nimport { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS } from \"../types\";\n\nconst BREAKPOINT_WIDTHS = Object.values(DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS)\n .slice()\n .sort((first, second) => first - second);\n\nexport function useDataTableContainerWidth(\n containerRef: React.RefObject,\n) {\n const widthRef = React.useRef(0);\n const [width, setWidth] = React.useState(0);\n\n React.useEffect(() => {\n const element = containerRef.current;\n if (!element) {\n return;\n }\n\n const updateWidth = (inlineSize = element.clientWidth) => {\n const nextWidth = quantizeDataTableContainerWidth(inlineSize);\n if (nextWidth === widthRef.current) {\n return;\n }\n\n widthRef.current = nextWidth;\n setWidth(nextWidth);\n };\n\n updateWidth();\n\n if (typeof ResizeObserver === \"undefined\") {\n return;\n }\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n updateWidth(entry ? getResizeObserverInlineSize(entry) : undefined);\n });\n\n observer.observe(element);\n\n return () => {\n observer.disconnect();\n };\n }, [containerRef]);\n\n return width;\n}\n\nexport function quantizeDataTableContainerWidth(width: number) {\n if (width <= 0) {\n return 0;\n }\n\n let bucket = 1;\n for (const breakpointWidth of BREAKPOINT_WIDTHS) {\n if (width < breakpointWidth) {\n break;\n }\n bucket = breakpointWidth;\n }\n\n return bucket;\n}\n\nfunction getResizeObserverInlineSize(entry: ResizeObserverEntry) {\n const contentBoxSize: unknown = entry.contentBoxSize;\n const size: unknown = Array.isArray(contentBoxSize)\n ? contentBoxSize[0]\n : contentBoxSize;\n const inlineSize = getInlineSize(size);\n\n return inlineSize ?? entry.contentRect.width;\n}\n\nfunction getInlineSize(value: unknown) {\n if (typeof value !== \"object\" || value === null) {\n return undefined;\n }\n\n const inlineSize = (value as { inlineSize?: unknown }).inlineSize;\n return typeof inlineSize === \"number\" ? inlineSize : undefined;\n}\n","import * as React from \"react\";\nimport type {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n ExpandedState,\n GroupingState,\n PaginationState,\n RowPinningState,\n SortingState,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableDensity,\n DataTableLabels,\n DataTableProps,\n} from \"../types\";\nimport {\n createDataTableLoadingRows,\n getColumnId,\n getDataTableLeafColumns,\n getDataTableLoadingRowId,\n getInitialColumnPinning,\n isDataTableLoadingRow,\n} from \"./data-table-utils\";\nimport {\n readDataTableColumnPrefs,\n usePersistDataTableColumnPrefs,\n} from \"./use-data-table-column-prefs\";\nimport { useControllableState } from \"./use-controllable-state\";\nimport { useDataTableContainerWidth } from \"./use-data-table-container-width\";\nimport { isHiddenAtContainerWidth, isRowVisible } from \"../types\";\n\nexport function useDataTableState({\n columnFilters,\n columnOrder,\n columnPinning,\n rowPinning,\n columnSizing,\n columnPrefsKey,\n persistence,\n columnVisibility,\n columns,\n data,\n density,\n enableRowSelection,\n enableToolbarQueryFiltering,\n expanded,\n grouping,\n getSubRows,\n getRowId,\n hiddenRows,\n initialState,\n isLoading,\n loadingRowCount,\n manualFiltering,\n onColumnFiltersChange,\n onColumnOrderChange,\n onColumnPinningChange,\n onRowPinningChange,\n onColumnSizingChange,\n onColumnVisibilityChange,\n onDensityChange,\n onExpandedChange,\n onGroupingChange,\n onPageIndexChange,\n onRowSelectionChange,\n onShowHiddenRowsChange,\n onSortingChange,\n onToolbarQueryValueChange,\n onViewModeChange,\n pageIndex,\n pageSize,\n resolvedLabels,\n rowSelection,\n rowsPerPageOptions,\n selectionActions,\n showHiddenRows,\n sorting,\n toolbarQueryDebounceMs,\n toolbarQueryPlaceholder,\n toolbarQueryValue,\n viewMode,\n containerRef,\n}: {\n columnFilters: DataTableProps[\"columnFilters\"];\n columnOrder: DataTableProps[\"columnOrder\"];\n columnPinning: DataTableProps[\"columnPinning\"];\n rowPinning: DataTableProps[\"rowPinning\"];\n columnSizing?: DataTableProps[\"columnSizing\"];\n columnPrefsKey: DataTableProps[\"columnPrefsKey\"];\n persistence?: DataTableProps[\"persistence\"];\n columnVisibility: DataTableProps[\"columnVisibility\"];\n columns: DataTableProps[\"columns\"];\n data: DataTableProps[\"data\"];\n density: DataTableProps[\"density\"];\n enableRowSelection: boolean;\n enableToolbarQueryFiltering: boolean;\n expanded: DataTableProps[\"expanded\"];\n grouping: DataTableProps[\"grouping\"];\n getSubRows: DataTableProps[\"getSubRows\"];\n getRowId: DataTableProps[\"getRowId\"];\n hiddenRows: DataTableProps[\"hiddenRows\"];\n initialState?: DataTableProps[\"initialState\"];\n isLoading: boolean;\n loadingRowCount: DataTableProps[\"loadingRowCount\"];\n manualFiltering: boolean;\n onColumnFiltersChange: DataTableProps[\"onColumnFiltersChange\"];\n onColumnOrderChange: DataTableProps[\"onColumnOrderChange\"];\n onColumnPinningChange: DataTableProps[\"onColumnPinningChange\"];\n onRowPinningChange: DataTableProps[\"onRowPinningChange\"];\n onColumnSizingChange?: DataTableProps[\"onColumnSizingChange\"];\n onColumnVisibilityChange: DataTableProps[\"onColumnVisibilityChange\"];\n onDensityChange: DataTableProps[\"onDensityChange\"];\n onExpandedChange: DataTableProps[\"onExpandedChange\"];\n onGroupingChange: DataTableProps[\"onGroupingChange\"];\n onPageIndexChange: DataTableProps[\"onPageIndexChange\"];\n onRowSelectionChange: DataTableProps[\"onRowSelectionChange\"];\n onShowHiddenRowsChange: DataTableProps[\"onShowHiddenRowsChange\"];\n onSortingChange: DataTableProps[\"onSortingChange\"];\n onToolbarQueryValueChange: DataTableProps[\"onToolbarQueryValueChange\"];\n onViewModeChange: DataTableProps[\"onViewModeChange\"];\n pageIndex: DataTableProps[\"pageIndex\"];\n pageSize: DataTableProps[\"pageSize\"];\n resolvedLabels: DataTableLabels;\n rowSelection: DataTableProps[\"rowSelection\"];\n rowsPerPageOptions: Array;\n selectionActions: DataTableProps[\"selectionActions\"];\n showHiddenRows: DataTableProps[\"showHiddenRows\"];\n sorting: DataTableProps[\"sorting\"];\n toolbarQueryDebounceMs: DataTableProps[\"toolbarQueryDebounceMs\"];\n toolbarQueryPlaceholder: DataTableProps[\"toolbarQueryPlaceholder\"];\n toolbarQueryValue: DataTableProps[\"toolbarQueryValue\"];\n viewMode: DataTableProps[\"viewMode\"];\n containerRef: React.RefObject;\n}) {\n const persistenceConfig = React.useMemo(\n () => persistence ?? (columnPrefsKey ? { key: columnPrefsKey } : undefined),\n [columnPrefsKey, persistence],\n );\n const persistedColumnPrefs = React.useMemo(\n () => readDataTableColumnPrefs(persistenceConfig),\n [persistenceConfig],\n );\n const [localPagination, setLocalPagination] =\n React.useState({\n pageIndex: initialState?.pagination?.pageIndex ?? 0,\n pageSize:\n initialState?.pagination?.pageSize ??\n rowsPerPageOptions[0] ??\n 20,\n });\n const [currentSorting, setCurrentSorting] =\n useControllableState({\n value: sorting,\n onChange: onSortingChange,\n defaultValue: () => initialState?.sorting ?? [],\n });\n const [currentRowSelection, setCurrentRowSelection] = useControllableState<\n Record\n >({\n value: rowSelection,\n onChange: onRowSelectionChange,\n defaultValue: () => initialState?.rowSelection ?? {},\n });\n const [currentColumnVisibility, setCurrentColumnVisibility] =\n useControllableState({\n value: columnVisibility,\n onChange: onColumnVisibilityChange,\n defaultValue: () =>\n initialState?.columnVisibility ??\n persistedColumnPrefs.visibility ??\n {},\n });\n const [currentColumnFilters, setCurrentColumnFilters] =\n useControllableState({\n value: columnFilters,\n onChange: onColumnFiltersChange,\n defaultValue: () => initialState?.columnFilters ?? [],\n });\n const [currentExpanded, setCurrentExpanded] =\n useControllableState({\n value: expanded,\n onChange: onExpandedChange,\n defaultValue: () => initialState?.expanded ?? {},\n });\n const [currentColumnOrder, setCurrentColumnOrder] =\n useControllableState({\n value: columnOrder,\n onChange: onColumnOrderChange,\n defaultValue: () =>\n initialState?.columnOrder ?? persistedColumnPrefs.order ?? [],\n });\n const [currentColumnPinning, setCurrentColumnPinning] =\n useControllableState({\n value: columnPinning,\n onChange: onColumnPinningChange,\n defaultValue: () =>\n initialState?.columnPinning ??\n persistedColumnPrefs.pinning ??\n getInitialColumnPinning(columns),\n });\n const [currentRowPinning, setCurrentRowPinning] =\n useControllableState({\n value: rowPinning,\n onChange: onRowPinningChange,\n defaultValue: () =>\n initialState?.rowPinning ?? persistedColumnPrefs.rowPinning ?? {\n top: [],\n bottom: [],\n },\n });\n const [currentColumnSizing, setCurrentColumnSizing] =\n useControllableState({\n value: columnSizing,\n onChange: onColumnSizingChange,\n defaultValue: () =>\n initialState?.columnSizing ?? persistedColumnPrefs.sizing ?? {},\n });\n const [currentViewMode, setCurrentViewMode] = useControllableState<\n \"table\" | \"card\"\n >({\n value: viewMode,\n onChange: onViewModeChange,\n defaultValue: () => initialState?.viewMode ?? \"table\",\n });\n const [currentGrouping, setCurrentGrouping] = useControllableState({\n value: grouping,\n onChange: onGroupingChange,\n defaultValue: () => initialState?.grouping ?? [],\n });\n const [currentShowHiddenRows, setCurrentShowHiddenRows] =\n useControllableState({\n value: showHiddenRows,\n onChange: onShowHiddenRowsChange,\n defaultValue: () => initialState?.showHiddenRows ?? false,\n });\n const [currentDensity, setCurrentDensity] =\n useControllableState({\n value: density,\n onChange: onDensityChange,\n defaultValue: () =>\n initialState?.density ??\n persistedColumnPrefs.density ??\n \"comfortable\",\n });\n const resolvedToolbarQueryValue =\n toolbarQueryValue ?? initialState?.globalFilter ?? \"\";\n const resolvedToolbarQueryPlaceholder =\n toolbarQueryPlaceholder ?? resolvedLabels.searchPlaceholder;\n const resolvedToolbarQueryDebounceMs = toolbarQueryDebounceMs ?? 250;\n const [localSearchValue, setLocalSearchValue] = React.useState(\n resolvedToolbarQueryValue,\n );\n const containerWidth = useDataTableContainerWidth(containerRef);\n const hasOnSearchValueChange = Boolean(onToolbarQueryValueChange);\n const lastReportedSearchValueRef = React.useRef(resolvedToolbarQueryValue);\n const onToolbarQueryValueChangeEvent = React.useEffectEvent(\n (value: string) => {\n lastReportedSearchValueRef.current = value;\n onToolbarQueryValueChange?.(value);\n },\n );\n\n React.useEffect(() => {\n lastReportedSearchValueRef.current = resolvedToolbarQueryValue;\n // A controlled query change must replace any pending debounced draft.\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setLocalSearchValue(resolvedToolbarQueryValue);\n }, [resolvedToolbarQueryValue]);\n\n React.useEffect(() => {\n if (!hasOnSearchValueChange) {\n return;\n }\n\n if (localSearchValue === resolvedToolbarQueryValue) {\n return;\n }\n\n if (localSearchValue === lastReportedSearchValueRef.current) {\n return;\n }\n\n const timeout = window.setTimeout(() => {\n onToolbarQueryValueChangeEvent(localSearchValue);\n }, resolvedToolbarQueryDebounceMs);\n\n return () => {\n window.clearTimeout(timeout);\n };\n }, [\n hasOnSearchValueChange,\n localSearchValue,\n resolvedToolbarQueryDebounceMs,\n resolvedToolbarQueryValue,\n ]);\n\n const currentPagination = React.useMemo(\n () => ({\n pageIndex: pageIndex ?? localPagination.pageIndex,\n pageSize: pageSize ?? localPagination.pageSize,\n }),\n [\n localPagination.pageIndex,\n localPagination.pageSize,\n pageIndex,\n pageSize,\n ],\n );\n const resolvedLoadingRowCount = Math.max(\n 1,\n loadingRowCount ?? Math.min(5, currentPagination.pageSize),\n );\n // Keep input/callback state eager. Only the client row-model input is\n // deferred, so server/manual callbacks never wait behind a large filter.\n const deferredSearchValue = React.useDeferredValue(localSearchValue);\n const globalFilterValue = enableToolbarQueryFiltering\n ? manualFiltering\n ? localSearchValue\n : deferredSearchValue\n : \"\";\n const handleViewModeChange = React.useCallback(\n (nextViewMode: \"table\" | \"card\") => {\n setCurrentViewMode(nextViewMode);\n },\n [setCurrentViewMode],\n );\n const handleShowHiddenRowsChange = React.useCallback(\n (nextShowHiddenRows: boolean) => {\n setCurrentShowHiddenRows(nextShowHiddenRows);\n },\n [setCurrentShowHiddenRows],\n );\n const handleDensityChange = React.useCallback(\n (nextDensity: DataTableDensity) => {\n setCurrentDensity(nextDensity);\n },\n [setCurrentDensity],\n );\n const resetPageIndexForFilterChange = React.useCallback(() => {\n onPageIndexChange?.(0);\n if (pageIndex === undefined) {\n setLocalPagination((current) =>\n current.pageIndex === 0 ? current : { ...current, pageIndex: 0 },\n );\n }\n }, [onPageIndexChange, pageIndex]);\n const lastFilterStateRef = React.useRef({\n columnFilters: currentColumnFilters,\n globalFilterValue,\n });\n\n React.useEffect(() => {\n const previous = lastFilterStateRef.current;\n const filtersChanged = previous.columnFilters !== currentColumnFilters;\n const globalFilterChanged =\n previous.globalFilterValue !== globalFilterValue;\n lastFilterStateRef.current = {\n columnFilters: currentColumnFilters,\n globalFilterValue,\n };\n\n if (manualFiltering) {\n return;\n }\n\n if (!filtersChanged && !globalFilterChanged) {\n return;\n }\n\n resetPageIndexForFilterChange();\n }, [\n currentColumnFilters,\n globalFilterValue,\n manualFiltering,\n resetPageIndexForFilterChange,\n ]);\n\n usePersistDataTableColumnPrefs({\n persistence: persistenceConfig,\n prefs: {\n visibility: columnVisibility ? undefined : currentColumnVisibility,\n sizing:\n columnSizing === undefined ? currentColumnSizing : undefined,\n order: columnOrder ? undefined : currentColumnOrder,\n pinning: columnPinning ? undefined : currentColumnPinning,\n rowPinning: rowPinning === undefined ? currentRowPinning : undefined,\n density: density ? undefined : currentDensity,\n },\n });\n const responsiveColumnVisibility = React.useMemo(() => {\n return getDataTableLeafColumns(columns).reduce(\n (visibility, { column, index }) => {\n const columnId = getColumnId(column, index);\n if (isHiddenAtContainerWidth(column.meta?.hideOn, containerWidth)) {\n visibility[columnId] = false;\n }\n return visibility;\n },\n {},\n );\n }, [columns, containerWidth]);\n const effectiveColumnVisibility = React.useMemo(() => {\n return {\n ...currentColumnVisibility,\n ...responsiveColumnVisibility,\n };\n }, [currentColumnVisibility, responsiveColumnVisibility]);\n const visibleData = React.useMemo(\n () =>\n data.filter((row) =>\n isRowVisible(row, hiddenRows, currentShowHiddenRows),\n ),\n [currentShowHiddenRows, data, hiddenRows],\n );\n const shouldRenderInitialLoading = isLoading && visibleData.length === 0;\n const loadingRows = React.useMemo(\n () => createDataTableLoadingRows(resolvedLoadingRowCount),\n [resolvedLoadingRowCount],\n );\n const tableData = shouldRenderInitialLoading\n ? loadingRows\n : visibleData;\n const tableGetRowId = React.useCallback(\n (row: TData, index: number) => {\n if (isDataTableLoadingRow(row)) {\n return getDataTableLoadingRowId(index);\n }\n\n return getRowId(row, index);\n },\n [getRowId],\n );\n const shouldResolveSelectedRows =\n enableRowSelection ||\n (selectionActions?.length ?? 0) > 0 ||\n Object.values(currentRowSelection).some(Boolean);\n const rowById = React.useMemo(() => {\n if (!shouldResolveSelectedRows) {\n return new Map();\n }\n\n const rows = new Map();\n const visitRows = (currentRows: Array) => {\n currentRows.forEach((row, index) => {\n rows.set(getRowId(row, index), row);\n const subRows = getSubRows?.(row, index);\n if (subRows?.length) {\n visitRows(subRows);\n }\n });\n };\n visitRows(visibleData);\n return rows;\n }, [getRowId, getSubRows, shouldResolveSelectedRows, visibleData]);\n const selectedRows = React.useMemo(() => {\n if (!shouldResolveSelectedRows) {\n return [];\n }\n\n return Object.entries(currentRowSelection)\n .filter(([, selected]) => selected)\n .map(([rowId]) => rowById.get(rowId))\n .filter((row): row is TData => Boolean(row));\n }, [currentRowSelection, rowById, shouldResolveSelectedRows]);\n const selectedRowIds = React.useMemo(\n () =>\n Object.entries(currentRowSelection).flatMap(([rowId, selected]) =>\n selected ? [rowId] : [],\n ),\n [currentRowSelection],\n );\n\n return {\n containerWidth,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n effectiveColumnVisibility,\n globalFilterValue,\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n localSearchValue,\n resolvedLoadingRowCount,\n resolvedToolbarQueryPlaceholder,\n selectedRowIds,\n selectedRows,\n setCurrentColumnFilters,\n setCurrentColumnOrder,\n setCurrentColumnPinning,\n setCurrentRowPinning,\n setCurrentColumnVisibility,\n setCurrentExpanded,\n setCurrentGrouping,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing: setCurrentColumnSizing,\n setLocalPagination,\n setLocalSearchValue,\n shouldRenderInitialLoading,\n tableData,\n tableGetRowId,\n /**\n * @deprecated Read the filtered TanStack row model from the table\n * instance. This alias remains for advanced 4.x callers.\n */\n toolbarFilteredData: visibleData,\n visibleData,\n };\n}\n","import * as React from \"react\";\nimport type { Column, ColumnSizingState } from \"@tanstack/react-table\";\nimport type { DataTableColumnDef } from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport {\n UTILITY_COLUMN_SIZE,\n getColumnId,\n getConfiguredColumnMinWidth,\n getDataTableLeafColumns,\n getFixedSide,\n getPinnedColumnClassName,\n isUtilityColumnId,\n} from \"./data-table-utils\";\n\ntype ColumnLayoutMode = \"fill\" | \"fit\";\n\nexport type DataTableColumnLayout = {\n cellStyle: React.CSSProperties | undefined;\n colStyle: React.CSSProperties | undefined;\n fixedSide: \"left\" | \"right\" | false | undefined;\n headerStyle: React.CSSProperties | undefined;\n isActionsColumn: boolean;\n isExpansionColumn: boolean;\n isSelectionColumn: boolean;\n isSpacerColumn: boolean;\n isUtilityColumn: boolean;\n pinnedClassName: string | undefined;\n utilityClassName: string | undefined;\n};\n\nconst EMPTY_COLUMN_LAYOUT: DataTableColumnLayout = {\n cellStyle: undefined,\n colStyle: undefined,\n fixedSide: undefined,\n headerStyle: undefined,\n isActionsColumn: false,\n isExpansionColumn: false,\n isSelectionColumn: false,\n isSpacerColumn: false,\n isUtilityColumn: false,\n pinnedClassName: undefined,\n utilityClassName: undefined,\n};\n\nexport function useColumnLayout({\n columns,\n columnSizing,\n editableRows,\n enableRowSelection,\n hasRowActions,\n hasRowExpansion,\n layoutMode,\n uiClassNames,\n visibleLeafColumns,\n}: {\n columns: Array>;\n columnSizing: ColumnSizingState;\n editableRows: boolean;\n enableRowSelection: boolean;\n hasRowActions: boolean;\n hasRowExpansion: boolean;\n layoutMode: ColumnLayoutMode;\n uiClassNames: DataTableUiClassNames;\n visibleLeafColumns: Array>;\n}) {\n const explicitlySizedColumnIds = React.useMemo(() => {\n const ids = new Set();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n if (Object.prototype.hasOwnProperty.call(column, \"size\")) {\n ids.add(getColumnId(column, index));\n }\n }\n\n if (enableRowSelection) {\n ids.add(\"__select__\");\n }\n\n if (hasRowExpansion) {\n ids.add(\"__expand__\");\n }\n\n if (hasRowActions || editableRows) {\n ids.add(\"__actions__\");\n }\n\n return ids;\n }, [\n columns,\n editableRows,\n enableRowSelection,\n hasRowActions,\n hasRowExpansion,\n ]);\n\n const minimumColumnWidths = React.useMemo(() => {\n const widths = new Map();\n\n for (const { column, index } of getDataTableLeafColumns(columns)) {\n const configuredMinWidth = getConfiguredColumnMinWidth(column);\n\n if (configuredMinWidth !== undefined) {\n widths.set(getColumnId(column, index), configuredMinWidth);\n }\n }\n\n return widths;\n }, [columns]);\n\n const pinnedColumns = React.useMemo(() => {\n const left = new Map();\n const right = new Map();\n\n let leftOffset = 0;\n for (const column of visibleLeafColumns) {\n if (getFixedSide(column) === \"left\") {\n left.set(column.id, leftOffset);\n leftOffset += getColumnLayoutSize(column);\n }\n }\n\n let rightOffset = 0;\n for (const column of [...visibleLeafColumns].reverse()) {\n if (getFixedSide(column) === \"right\") {\n right.set(column.id, rightOffset);\n rightOffset += getColumnLayoutSize(column);\n }\n }\n\n return { left, right };\n }, [visibleLeafColumns]);\n\n const fillColumnId = React.useMemo(() => {\n if (layoutMode !== \"fill\") {\n return undefined;\n }\n\n const dataColumns = visibleLeafColumns.filter(\n (column) => !isUtilityColumnId(column.id),\n );\n\n if (!dataColumns.length) {\n return undefined;\n }\n\n const allDataColumnsAreFixed = dataColumns.every(\n (column) =>\n explicitlySizedColumnIds.has(column.id) ||\n Object.prototype.hasOwnProperty.call(columnSizing, column.id),\n );\n\n return allDataColumnsAreFixed\n ? dataColumns[dataColumns.length - 1]?.id\n : undefined;\n }, [\n columnSizing,\n explicitlySizedColumnIds,\n layoutMode,\n visibleLeafColumns,\n ]);\n\n const fixedWidthColumnIds = React.useMemo(() => {\n const ids = new Set([\n ...explicitlySizedColumnIds,\n ...Object.keys(columnSizing),\n ]);\n\n if (fillColumnId) {\n ids.delete(fillColumnId);\n }\n\n return ids;\n }, [columnSizing, explicitlySizedColumnIds, fillColumnId]);\n\n const columnLayouts = React.useMemo(() => {\n const layouts = new Map();\n\n for (const column of visibleLeafColumns) {\n const isSelectionColumn = column.id === \"__select__\";\n const isExpansionColumn = column.id === \"__expand__\";\n const isActionsColumn = column.id === \"__actions__\";\n const isUtilityColumn =\n isSelectionColumn || isExpansionColumn || isActionsColumn;\n const isSpacerColumn = column.id === \"__spacer__\";\n const configuredMinWidth = minimumColumnWidths.get(column.id);\n const isFlexibleFillColumn = column.id === fillColumnId;\n const columnMinWidth =\n configuredMinWidth ??\n (isFlexibleFillColumn ? column.getSize() : undefined);\n const shouldFixWidth =\n !isSpacerColumn &&\n (layoutMode === \"fit\" ||\n isUtilityColumn ||\n fixedWidthColumnIds.has(column.id));\n const baseStyle =\n shouldFixWidth || columnMinWidth !== undefined\n ? {\n width: shouldFixWidth\n ? isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : column.getSize()\n : undefined,\n minWidth: isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : shouldFixWidth\n ? column.getSize()\n : columnMinWidth,\n maxWidth: shouldFixWidth\n ? isUtilityColumn\n ? UTILITY_COLUMN_SIZE\n : column.getSize()\n : undefined,\n }\n : undefined;\n const fixedSide = getFixedSide(column);\n const pinnedStyle = fixedSide\n ? {\n left:\n fixedSide === \"left\" ? pinnedColumns.left.get(column.id) : undefined,\n right:\n fixedSide === \"right\"\n ? pinnedColumns.right.get(column.id)\n : undefined,\n }\n : undefined;\n const cellStyle =\n baseStyle || pinnedStyle ? { ...baseStyle, ...pinnedStyle } : undefined;\n\n layouts.set(column.id, {\n cellStyle,\n colStyle: baseStyle,\n fixedSide,\n headerStyle: cellStyle,\n isActionsColumn,\n isExpansionColumn,\n isSelectionColumn,\n isSpacerColumn,\n isUtilityColumn,\n pinnedClassName: fixedSide\n ? getPinnedColumnClassName(fixedSide, uiClassNames, {\n isUtilityColumn,\n })\n : undefined,\n utilityClassName: isUtilityColumn\n ? \"w-[50px] max-w-[50px] min-w-[50px] px-0\"\n : undefined,\n });\n }\n\n return layouts;\n }, [\n fillColumnId,\n fixedWidthColumnIds,\n layoutMode,\n minimumColumnWidths,\n pinnedColumns,\n uiClassNames,\n visibleLeafColumns,\n ]);\n\n const fillMinWidth = React.useMemo(() => {\n return visibleLeafColumns.reduce((total, column) => {\n const layout = columnLayouts.get(column.id);\n const configuredMinWidth = minimumColumnWidths.get(column.id);\n const isFlexibleFillColumn = column.id === fillColumnId;\n\n if (layout?.isUtilityColumn) {\n return total + UTILITY_COLUMN_SIZE;\n }\n\n if (fixedWidthColumnIds.has(column.id)) {\n return total + column.getSize();\n }\n\n return (\n total +\n (configuredMinWidth ?? (isFlexibleFillColumn ? column.getSize() : 0))\n );\n }, 0);\n }, [\n columnLayouts,\n fillColumnId,\n fixedWidthColumnIds,\n minimumColumnWidths,\n visibleLeafColumns,\n ]);\n\n const getColumnLayout = React.useCallback(\n (columnId: string) => columnLayouts.get(columnId) ?? EMPTY_COLUMN_LAYOUT,\n [columnLayouts],\n );\n\n return {\n columnLayouts,\n explicitlySizedColumnIds,\n fillMinWidth,\n getColumnLayout,\n };\n}\n\nfunction getColumnLayoutSize(column: Column) {\n return isUtilityColumnId(column.id) ? UTILITY_COLUMN_SIZE : column.getSize();\n}\n","import * as React from \"react\";\nimport type { ExpandedState, OnChangeFn, Row } from \"@tanstack/react-table\";\nimport { IconChevronDown } from \"../icons\";\nimport type {\n DataTableCardRendererProps,\n DataTableCardSizing,\n DataTableEditableRowsConfig,\n DataTableDetailPanel,\n DataTableLabels,\n DataTableProps,\n DataTableRowAction,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\nimport {\n isDataTableInteractiveTarget,\n toggleDataTableExpandedState,\n} from \"./data-table-utils\";\n\ntype DataTableCardViewProps = {\n rows: Array>;\n cardRenderer: (props: DataTableCardRendererProps) => React.ReactNode;\n cardSizing?: DataTableCardSizing;\n cardGridClassName?: string;\n cardClassName?: string;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n detailPanel?: DataTableDetailPanel;\n detailExpanded: ExpandedState;\n onDetailExpandedChange: OnChangeFn;\n hasCardTitle: boolean;\n rowSelection: Record;\n onRowSelectionChange: (rowSelection: Record) => void;\n enableRowSelection: boolean;\n editingRowId: string | null;\n onEditingRowIdChange: (rowId: string | null) => void;\n getRowClassName?: DataTableProps[\"getRowClassName\"];\n onRowClick?: (context: { row: TData; rowId: string }) => void | Promise;\n getRowDraggable?: (row: TData) => boolean;\n onRowDragStart?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n onRowDragEnd?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n isLoading?: boolean;\n loadingRowCount?: number;\n labels: DataTableLabels;\n};\n\ntype DataTableRowActionsComponent = (props: {\n row: TData;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n onStartEditing: () => void;\n onCancelEditing: () => void;\n labels: DataTableLabels;\n}) => React.ReactElement | null;\n\nexport function createDataTableCardView(\n ui: DataTableUiKit,\n DataTableRowActions: DataTableRowActionsComponent,\n) {\n const uiClassNames = ui.classNames ?? {};\n const { Button, Card, CardContent, CardHeader, Checkbox, Skeleton } = ui;\n\n return function DataTableCardView({\n rows,\n cardRenderer,\n cardSizing = \"fixed\",\n cardGridClassName,\n cardClassName,\n rowActions,\n editableRows,\n detailPanel,\n detailExpanded,\n onDetailExpandedChange,\n hasCardTitle,\n rowSelection,\n onRowSelectionChange,\n enableRowSelection,\n editingRowId,\n onEditingRowIdChange,\n getRowClassName,\n onRowClick,\n getRowDraggable,\n onRowDragStart,\n onRowDragEnd,\n isLoading = false,\n loadingRowCount = 5,\n labels,\n }: DataTableCardViewProps) {\n const resolvedCardSizing = cardSizing ?? \"fixed\";\n const resolvedCardGridClassName =\n cardGridClassName\n ? cn(\"grid\", cardGridClassName)\n : getCardGridClassName(resolvedCardSizing);\n const cardGridClasses = cn(\n \"min-h-0 w-full gap-4 p-1\",\n uiClassNames.cardGrid,\n resolvedCardGridClassName,\n );\n const cardItemClasses = (stateClassName?: string) =>\n cn(\n \"relative min-w-0 max-w-full gap-0 overflow-hidden bg-transparent p-0\",\n getCardItemClassName(resolvedCardSizing),\n uiClassNames.cardItem,\n cardClassName,\n stateClassName,\n );\n\n if (isLoading) {\n return (\n \n {Array.from({ length: Math.max(1, loadingRowCount) }, (_, index) => (\n \n {hasCardTitle ? (\n \n \n \n \n ) : null}\n \n \n \n \n \n \n \n ))}\n \n );\n }\n\n return (\n \n {rows.map((row) => {\n const rowId = row.id;\n const originalRow = row.original;\n const isSelected = Boolean(rowSelection[rowId]);\n const isEditing = editingRowId === rowId;\n const hasCardActions = rowActions.length > 0 || Boolean(editableRows);\n const canExpandDetail = Boolean(\n detailPanel && (detailPanel.getRowCanExpand?.(originalRow) ?? true),\n );\n const showCardGradient =\n enableRowSelection || hasCardActions || hasCardTitle;\n const showCardOverlayControls =\n enableRowSelection ||\n hasCardActions ||\n row.getCanExpand() ||\n canExpandDetail;\n const handleCardActivate = () => {\n if (!onRowClick) {\n return;\n }\n\n void onRowClick({ row: originalRow, rowId });\n };\n\n return (\n ) => {\n onRowDragStart?.({ row: originalRow, rowId, event });\n }}\n onDragEnd={(event: React.DragEvent) => {\n onRowDragEnd?.({ row: originalRow, rowId, event });\n }}\n >\n {showCardGradient ? (\n \n ) : null}\n *]:min-w-0\",\n getCardRendererClassName(resolvedCardSizing),\n onRowClick && \"cursor-pointer focus-visible:outline-none\",\n )}\n onClick={(event: React.MouseEvent) => {\n if (\n isDataTableInteractiveTarget(\n event.target,\n event.currentTarget,\n )\n ) {\n return;\n }\n\n handleCardActivate();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (\n isDataTableInteractiveTarget(\n event.target,\n event.currentTarget,\n )\n ) {\n return;\n }\n\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n handleCardActivate();\n }\n }}\n >\n {cardRenderer({\n row: originalRow,\n rowId,\n depth: row.depth,\n canExpandSubRows: row.getCanExpand(),\n isSubRowsExpanded: row.getIsExpanded(),\n toggleSubRowsExpanded: () => row.toggleExpanded(),\n isSelected,\n onSelectedChange: (nextValue) => {\n onRowSelectionChange(\n updateRowSelection(\n rowSelection,\n rowId,\n nextValue,\n row.getCanSelect(),\n row.getCanMultiSelect(),\n ),\n );\n },\n actions: rowActions,\n isEditing,\n startEditing: () => {\n onEditingRowIdChange(rowId);\n },\n cancelEditing: () => {\n onEditingRowIdChange(null);\n },\n })}\n \n {isEditing ||\n !detailPanel ||\n !(detailExpanded === true || Boolean(detailExpanded[row.id]))\n ? null\n : (\n \n {detailPanel.render({\n row: originalRow,\n rowId,\n tableRow: row,\n })}\n \n )}\n {showCardOverlayControls ? (\n \n {enableRowSelection ? (\n \n {\n onRowSelectionChange(\n updateRowSelection(\n rowSelection,\n rowId,\n checked === true,\n row.getCanSelect(),\n row.getCanMultiSelect(),\n ),\n );\n }}\n />\n \n ) : null}\n {row.getCanExpand() ? (\n
    \n row.toggleExpanded()}\n >\n \n \n
    \n ) : null}\n {canExpandDetail ? (\n \n {\n onDetailExpandedChange((current) =>\n toggleDataTableExpandedState(\n current,\n row.id,\n rows.map((item) => item.id),\n ),\n );\n }}\n >\n \n \n \n ) : null}\n
    \n {hasCardActions ? (\n \n {\n onEditingRowIdChange(rowId);\n }}\n onCancelEditing={() => {\n onEditingRowIdChange(null);\n }}\n labels={labels}\n />\n
    \n ) : null}\n
    \n ) : null}\n \n );\n })}\n \n );\n };\n}\n\nfunction getCardGridClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"flex flex-wrap items-start justify-start\";\n case \"fluid\":\n return \"grid grid-cols-[repeat(auto-fit,minmax(min(18rem,100%),1fr))]\";\n case \"fixed\":\n default:\n return \"grid grid-cols-[repeat(auto-fill,minmax(min(18rem,100%),18rem))] justify-start\";\n }\n}\n\nfunction getCardItemClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"w-fit\";\n case \"fluid\":\n return \"w-full\";\n case \"fixed\":\n default:\n return undefined;\n }\n}\n\nfunction getCardRendererClassName(cardSizing: DataTableCardSizing) {\n switch (cardSizing) {\n case \"content\":\n return \"w-fit\";\n case \"fluid\":\n return \"w-full flex-1 [&>*]:w-full\";\n case \"fixed\":\n default:\n return \"flex-1\";\n }\n}\n\nfunction updateRowSelection(\n rowSelection: Record,\n rowId: string,\n isSelected: boolean,\n canSelect: boolean,\n canMultiSelect: boolean,\n) {\n if (!canSelect) {\n return rowSelection;\n }\n\n if (isSelected) {\n return canMultiSelect\n ? {\n ...rowSelection,\n [rowId]: true,\n }\n : { [rowId]: true };\n }\n\n if (!rowSelection[rowId]) {\n return rowSelection;\n }\n\n const nextSelection = { ...rowSelection };\n delete nextSelection[rowId];\n return nextSelection;\n}\n","import { IconInbox } from \"../icons\";\nimport type { DataTableUiKit } from \"../ui-kit\";\n\nexport function createDataTableEmptyState(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n } = ui;\n\n return function DataTableEmptyState({\n title = \"No rows found\",\n description = \"Adjust your filters or create a new record to populate this table.\",\n }: {\n title?: string;\n description?: string;\n }) {\n return (\n \n \n \n \n \n {title}\n {description}\n \n \n \n );\n };\n}\n","import * as React from \"react\";\nimport { IconDatabase } from \"../icons\";\nimport type { DataTableLabels } from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\ntype DataTablePaginationProps = {\n pageIndex: number;\n pageCount: number;\n pageCountKnown: boolean;\n pageSize: number;\n totalRowCount?: number;\n rowsPerPageOptions: Array;\n onPageIndexChange: (pageIndex: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n labels: DataTableLabels;\n};\n\nexport function createDataTablePagination(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n function DataTablePagination({\n pageIndex,\n pageCount,\n pageCountKnown,\n pageSize,\n totalRowCount,\n rowsPerPageOptions,\n onPageIndexChange,\n onPageSizeChange,\n labels,\n }: DataTablePaginationProps) {\n const pages = pageCountKnown\n ? getVisiblePages(pageIndex, Math.max(1, pageCount))\n : [];\n const canGoPrevious = pageIndex > 0;\n const canGoNext = pageIndex + 1 < pageCount;\n const lastPageIndex = Math.max(0, pageCount - 1);\n\n return (\n
    \n \n \n {labels.recordsPerPage}\n \n {\n onPageSizeChange(Number(value));\n }}\n >\n \n \n \n \n \n {rowsPerPageOptions.map((option) => (\n \n {option}\n \n ))}\n \n \n \n
    \n\n {totalRowCount !== undefined ? (\n
    \n \n \n {totalRowCount}\n \n {labels.totalRecords(totalRowCount)}\n \n
    \n \n ) : null}\n\n
    \n \n {pageCountKnown\n ? labels.pageStatus(pageIndex, Math.max(1, pageCount))\n : (\n labels.pageStatusUnknown ??\n DATA_TABLE_DEFAULT_LABELS.pageStatusUnknown\n )(pageIndex)}\n
    \n \n \n \n \n \n ) => {\n event.preventDefault();\n if (canGoPrevious) {\n onPageIndexChange(0);\n }\n }}\n text={labels.firstPage}\n />\n \n {labels.firstPage}\n \n \n \n \n \n ) => {\n event.preventDefault();\n if (canGoPrevious) {\n onPageIndexChange(pageIndex - 1);\n }\n }}\n text={labels.previousPage}\n />\n \n {labels.previousPage}\n \n \n {pages.map((item, index) => (\n \n {item === \"ellipsis\" ? (\n \n ) : (\n ) => {\n event.preventDefault();\n onPageIndexChange(item - 1);\n }}\n >\n {item}\n \n )}\n \n ))}\n \n \n \n ) => {\n event.preventDefault();\n if (canGoNext) {\n onPageIndexChange(pageIndex + 1);\n }\n }}\n text={labels.nextPage}\n />\n \n {labels.nextPage}\n \n \n {pageCountKnown ? (\n \n \n \n ,\n ) => {\n event.preventDefault();\n if (canGoNext) {\n onPageIndexChange(lastPageIndex);\n }\n }}\n />\n \n {labels.lastPage}\n \n \n ) : null}\n \n \n \n \n );\n }\n\n function DataTableFooter(props: DataTablePaginationProps) {\n return (\n \n \n \n );\n }\n\n return {\n DataTableFooter,\n DataTablePagination,\n };\n}\n\nfunction getVisiblePages(currentPageIndex: number, pageCount: number) {\n const currentPage = currentPageIndex + 1;\n const pages = new Set([1, pageCount]);\n\n for (\n let page = Math.max(1, currentPage - 2);\n page <= Math.min(pageCount, currentPage + 2);\n page += 1\n ) {\n pages.add(page);\n }\n\n const orderedPages = Array.from(pages).sort((left, right) => left - right);\n const items: Array = [];\n\n for (let index = 0; index < orderedPages.length; index += 1) {\n const page = orderedPages[index];\n const previous = orderedPages[index - 1];\n\n if (previous && page - previous > 1) {\n items.push(\"ellipsis\");\n }\n\n items.push(page);\n }\n\n return items;\n}\n","import * as React from \"react\";\nimport { IconDots, IconEdit, IconX } from \"../icons\";\nimport type {\n DataTableEditableRowsConfig,\n DataTableLabels,\n DataTableRowAction,\n} from \"../types\";\nimport type { RowPinningPosition } from \"@tanstack/react-table\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { canEditRow, canUseRowAction, resolveRowActionLabel } from \"../types\";\n\ntype DataTableRowActionsProps = {\n row: TData;\n rowActions: Array>;\n editableRows?: DataTableEditableRowsConfig;\n isEditing: boolean;\n onStartEditing: () => void;\n onCancelEditing: () => void;\n labels: DataTableLabels;\n rowPinning?: {\n canPin: boolean;\n position: RowPinningPosition;\n pin: (position: RowPinningPosition) => void;\n };\n};\n\nexport function createDataTableRowActions(ui: DataTableUiKit) {\n const {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n return function DataTableRowActions({\n row,\n rowActions,\n editableRows,\n isEditing,\n onStartEditing,\n onCancelEditing,\n labels,\n rowPinning,\n }: DataTableRowActionsProps) {\n const actions = rowActions.filter((action) => canUseRowAction(action, row));\n const stopRowClickPropagation = React.useCallback(\n (event: React.SyntheticEvent) => {\n event.stopPropagation();\n },\n [],\n );\n\n if (isEditing) {\n return (\n \n \n \n \n {labels.cancelEdit}\n \n \n {labels.cancelEdit}\n \n );\n }\n\n const allowEdit = canEditRow(editableRows, row);\n const canPin = rowPinning?.canPin ?? false;\n if (!actions.length && !allowEdit && !canPin) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n {labels.rowActions}\n \n \n \n {labels.rowActions}\n \n \n {allowEdit ? (\n \n ) => {\n event.stopPropagation();\n onStartEditing();\n }}\n >\n \n {labels.editRow}\n \n \n ) : null}\n {allowEdit && (actions.length || canPin) ? : null}\n {canPin ? (\n \n {rowPinning?.position ? (\n ) => {\n event.stopPropagation();\n rowPinning.pin(false);\n }}\n >\n {labels.unpinRow}\n \n ) : (\n <>\n ) => {\n event.stopPropagation();\n rowPinning?.pin(\"top\");\n }}\n >\n {labels.pinRowToTop}\n \n ) => {\n event.stopPropagation();\n rowPinning?.pin(\"bottom\");\n }}\n >\n {labels.pinRowToBottom}\n \n \n )}\n \n ) : null}\n {canPin && actions.length ? : null}\n {actions.length ? (\n \n {actions.map((action) => {\n const Icon = action.icon;\n return (\n ) => {\n event.stopPropagation();\n void action.onClick(row);\n }}\n >\n {Icon ? : null}\n {resolveRowActionLabel(action.label, row)}\n \n );\n })}\n \n ) : null}\n \n \n );\n };\n}\n","import * as React from \"react\";\nimport type { Table as TanStackTable } from \"@tanstack/react-table\";\nimport {\n IconAdjustmentsHorizontal,\n IconLayoutGrid,\n IconList,\n IconSearch,\n IconX,\n} from \"../icons\";\nimport type {\n DataTableColumnFilterType,\n DataTableColumnFixed,\n DataTableColumnVisibilityOption,\n DataTableDensity,\n DataTableLabels,\n DataTableSavedView,\n DataTableSelectionAction,\n DataTableToolbarAction,\n DataTableToolbarVisibility,\n DataTableViewMode,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { DATA_TABLE_DEFAULT_LABELS } from \"./data-table-labels\";\n\nconst LazyToolbarDataOperations = React.lazy(\n () => import(\"./data-table-toolbar-operations\"),\n);\n\nexport type DataTableToolbarColumnFilter = {\n id: string;\n label: string;\n type: DataTableColumnFilterType;\n value: unknown;\n placeholder?: string;\n options: Array<{ label: string; value: string; count?: number; disabled?: boolean }>;\n searchable?: boolean;\n searchPlaceholder?: string;\n trueLabel?: string;\n falseLabel?: string;\n min?: number | string;\n max?: number | string;\n step?: number;\n};\n\ntype DataTableToolbarProps = {\n title?: string;\n titleId?: string;\n description?: string;\n descriptionId?: string;\n toolbarQueryValue: string;\n toolbarQueryPlaceholder: string;\n onToolbarQueryValueChange: (value: string) => void;\n customToolbar?: React.ReactNode;\n compactToolbar?: React.ReactNode;\n viewMode: DataTableViewMode;\n onViewModeChange?: (viewMode: DataTableViewMode) => void;\n enableViewToggle: boolean;\n toolbarActions: Array>;\n selectionActions: Array>;\n selectedRows: Array;\n selectedRowIds: Array;\n showHiddenRows: boolean;\n hiddenRowsLabel?: string;\n onShowHiddenRowsChange?: (showHiddenRows: boolean) => void;\n allRows: Array;\n columnVisibilityOptions: Array;\n onColumnVisibilityChange?: (columnId: string, visible: boolean) => void;\n enableColumnPinning: boolean;\n onColumnPinningChange: (columnId: string, side: DataTableColumnFixed | false) => void;\n columnFilters: Array;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n onClearColumnFilters: () => void;\n density: DataTableDensity;\n onDensityChange: (density: DataTableDensity) => void;\n enableDensityToggle: boolean;\n labels: Required;\n toolbarVisibility?: DataTableToolbarVisibility;\n openFileDialog?: () => void;\n enableGrouping: boolean;\n enableToolbarColumnChooser: boolean;\n enableToolbarFilterChips: boolean;\n enableToolbarResetLayout: boolean;\n enableToolbarSavedViews: boolean;\n savedViews: Array;\n onResetColumnLayout: () => void;\n onCreateSavedView: (name: string) => DataTableSavedView | undefined;\n onApplySavedView: (id: string) => boolean;\n onRenameSavedView: (id: string, name: string) => DataTableSavedView | undefined;\n onDeleteSavedView: (id: string) => boolean;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n table: TanStackTable;\n};\n\nexport function createDataTableToolbar(ui: DataTableUiKit) {\n const uiClassNames = ui.classNames ?? {};\n const {\n Button,\n ButtonGroup,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n } = ui;\n\n return function DataTableToolbar({\n title,\n titleId,\n description,\n descriptionId,\n toolbarQueryValue,\n toolbarQueryPlaceholder,\n onToolbarQueryValueChange,\n customToolbar,\n compactToolbar,\n viewMode,\n onViewModeChange,\n enableViewToggle,\n toolbarActions,\n selectionActions,\n selectedRows,\n selectedRowIds,\n showHiddenRows,\n hiddenRowsLabel,\n onShowHiddenRowsChange,\n allRows,\n columnVisibilityOptions,\n onColumnVisibilityChange,\n enableColumnPinning,\n onColumnPinningChange,\n columnFilters,\n onColumnFilterChange,\n onClearColumnFilters,\n density,\n onDensityChange,\n enableDensityToggle,\n labels,\n toolbarVisibility,\n openFileDialog,\n enableGrouping,\n enableToolbarColumnChooser,\n enableToolbarFilterChips,\n enableToolbarResetLayout,\n enableToolbarSavedViews,\n savedViews,\n onResetColumnLayout,\n onCreateSavedView,\n onApplySavedView,\n onRenameSavedView,\n onDeleteSavedView,\n reorderColumn,\n table,\n }: DataTableToolbarProps) {\n const compactSearchInputRef = React.useRef(null);\n const [isCompactSearchVisible, setIsCompactSearchVisible] =\n React.useState(false);\n const compactToolbarIconButtonClassName =\n uiClassNames.toolbarCompactIconButton ?? \"\";\n const primaryActions = toolbarActions.filter(\n (action) => (action.placement ?? \"primary\") === \"primary\",\n );\n const trailingActions = toolbarActions.filter(\n (action) => action.placement === \"trailing\",\n );\n const showTitle = toolbarVisibility?.title ?? true;\n const showSearch = toolbarVisibility?.search ?? true;\n const showActions = toolbarVisibility?.actions ?? true;\n const showTrailingActions = toolbarVisibility?.trailingActions ?? true;\n const showOptions = toolbarVisibility?.options ?? true;\n const showViewToggle = toolbarVisibility?.viewToggle ?? true;\n const showCustomToolbar = toolbarVisibility?.customToolbar ?? true;\n const hasVisibleTitle = showTitle && Boolean(title || description);\n const hasVisibleSearch = showSearch;\n const hasVisiblePrimaryActions = showActions && primaryActions.length > 0;\n const hasVisibleSelectionActions =\n selectedRowIds.length > 0 && selectionActions.length > 0;\n const hasVisibleOptions =\n showOptions &&\n (columnVisibilityOptions.some((column) => column.canHide) ||\n Boolean(onShowHiddenRowsChange && hiddenRowsLabel) ||\n enableColumnPinning ||\n enableDensityToggle ||\n enableGrouping ||\n enableToolbarColumnChooser ||\n enableToolbarResetLayout ||\n enableToolbarSavedViews);\n const hasToolbarOperationsMenu =\n enableToolbarColumnChooser ||\n enableToolbarResetLayout ||\n enableToolbarSavedViews;\n const activeColumnFilters = columnFilters.filter((filter) =>\n hasColumnFilterValue(filter.value),\n );\n const toolbarOperationsUi = {\n Button,\n DropdownMenuCheckboxItem,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n };\n const renderToolbarDataOperations = (placement: \"menu\" | \"chips\") => (\n \n }\n onResetColumnLayout={onResetColumnLayout}\n savedViews={savedViews}\n onCreateSavedView={onCreateSavedView}\n onApplySavedView={onApplySavedView}\n onRenameSavedView={onRenameSavedView}\n onDeleteSavedView={onDeleteSavedView}\n toolbarQueryValue={toolbarQueryValue}\n onToolbarQueryValueChange={onToolbarQueryValueChange}\n activeColumnFilters={activeColumnFilters}\n onColumnFilterChange={onColumnFilterChange}\n onClearColumnFilters={onClearColumnFilters}\n />\n \n );\n const groupableColumns = table\n .getAllLeafColumns()\n .filter(\n (column) =>\n !column.id.startsWith(\"__\") &&\n column.getCanGroup(),\n );\n const groupedColumns = table.getState().grouping.flatMap((id) => {\n const column = table.getColumn(id);\n return column ? [column] : [];\n });\n const hasVisibleViewToggle =\n showViewToggle && enableViewToggle && Boolean(onViewModeChange);\n const hasVisibleTrailingActions =\n showTrailingActions && trailingActions.length > 0;\n const hasVisibleCustomToolbar = showCustomToolbar && Boolean(customToolbar);\n const hasVisibleCompactToolbar =\n showCustomToolbar && Boolean(compactToolbar ?? customToolbar);\n const selectedRowCountLabel = labels.selectedRows(selectedRowIds.length);\n\n React.useEffect(() => {\n if (!isCompactSearchVisible) {\n return;\n }\n\n compactSearchInputRef.current?.focus();\n }, [isCompactSearchVisible]);\n\n if (\n !hasVisibleTitle &&\n !hasVisibleSearch &&\n !hasVisiblePrimaryActions &&\n !hasVisibleSelectionActions &&\n !hasVisibleOptions &&\n !hasVisibleViewToggle &&\n !hasVisibleTrailingActions &&\n !hasVisibleCustomToolbar &&\n !hasVisibleCompactToolbar\n ) {\n return null;\n }\n\n return (\n
    \n {showTitle && (title || description) ? (\n
    \n {title ? (\n \n {title}\n \n ) : null}\n {description ? (\n \n {description}\n

    \n ) : null}\n
    \n ) : null}\n\n
    \n \n {showSearch ? (\n <>\n
    \n \n ) => {\n onToolbarQueryValueChange(event.target.value);\n }}\n placeholder={toolbarQueryPlaceholder}\n />\n \n \n \n {toolbarQueryValue ? (\n \n {\n onToolbarQueryValueChange(\"\");\n }}\n aria-label={labels.clearSearch}\n title={labels.clearSearch}\n >\n \n \n \n ) : null}\n \n
    \n \n \n {\n setIsCompactSearchVisible((current) => !current);\n }}\n >\n \n {labels.searchTable}\n \n \n {labels.searchTable}\n \n \n ) : null}\n\n {showActions ? (\n
    \n {primaryActions.map((action) => {\n const collapsesToIcon =\n !action.iconOnly && Boolean(action.icon);\n const button = (\n {\n void action.onClick({\n rows: allRows,\n openFileDialog,\n });\n }}\n disabled={action.disabled}\n aria-label={action.label}\n title={action.iconOnly ? undefined : action.label}\n >\n {action.icon ? : null}\n {action.iconOnly ? (\n {action.label}\n ) : collapsesToIcon ? (\n \n {action.label}\n \n ) : (\n {action.label}\n )}\n \n );\n\n return action.iconOnly ? (\n \n {button}\n {action.label}\n \n ) : (\n button\n );\n })}\n
    \n ) : null}\n\n {hasVisibleCompactToolbar ? (\n \n {compactToolbar ?? customToolbar}\n
    \n ) : null}\n\n
    \n\n \n {selectedRowIds.length ? (\n \n {selectedRowCountLabel}\n
    \n ) : null}\n {selectedRowIds.length\n ? selectionActions.map((action) => {\n const Icon = action.icon;\n const context = {\n rows: selectedRows,\n rowIds: selectedRowIds,\n };\n const disabled =\n typeof action.disabled === \"function\"\n ? action.disabled(selectedRows, context)\n : action.disabled;\n\n return (\n \n \n {\n void action.onClick(context);\n }}\n aria-label={action.label}\n >\n {Icon ? : null}\n {action.label}\n \n \n {action.label}\n \n );\n })\n : null}\n\n {hasVisibleOptions ? (\n \n \n \n \n {labels.tableOptions}\n \n \n \n {labels.tableOptions}\n \n {onShowHiddenRowsChange && hiddenRowsLabel ? (\n {\n onShowHiddenRowsChange(checked === true);\n }}\n >\n {labels.showHiddenRows(hiddenRowsLabel)}\n \n ) : null}\n \n {enableDensityToggle ? (\n <>\n \n {labels.density}\n \n {(\n [\n [\"compact\", labels.compactDensity],\n [\"comfortable\", labels.comfortableDensity],\n [\"spacious\", labels.spaciousDensity],\n ] as const\n ).map(([nextDensity, label]) => (\n {\n onDensityChange(nextDensity);\n }}\n >\n {label}\n \n ))}\n \n \n ) : null}\n {hasToolbarOperationsMenu\n ? renderToolbarDataOperations(\"menu\")\n : null}\n {!enableToolbarColumnChooser &&\n columnVisibilityOptions.some((column) => column.canHide) ? (\n <>\n \n {labels.columns}\n \n {columnVisibilityOptions\n .filter((column) => column.canHide)\n .map((column) => (\n {\n onColumnVisibilityChange?.(\n column.id,\n checked === true,\n );\n }}\n >\n {column.label}\n \n ))}\n \n \n ) : null}\n {enableColumnPinning && !enableToolbarColumnChooser ? (\n <>\n \n \n {labels.pinLeft} / {labels.pinRight}\n \n \n {columnVisibilityOptions.map((column) => (\n {\n event.preventDefault();\n }}\n >\n \n {column.label}\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, \"left\");\n }}\n >\n L\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, \"right\");\n }}\n >\n R\n \n {\n event.stopPropagation();\n onColumnPinningChange(column.id, false);\n }}\n >\n -\n \n \n ))}\n \n \n ) : null}\n {enableGrouping && groupableColumns.length ? (\n <>\n \n {labels.grouping}\n \n {groupableColumns.map((column) => {\n const columnLabel =\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : column.id;\n const isGrouped = column.getIsGrouped();\n return (\n {\n column.toggleGrouping();\n }}\n >\n {isGrouped\n ? labels.ungroup(columnLabel)\n : labels.groupBy(columnLabel)}\n \n );\n })}\n \n \n ) : null}\n \n \n ) : null}\n\n {showViewToggle && enableViewToggle && onViewModeChange ? (\n \n \n \n {\n onViewModeChange(\"table\");\n }}\n >\n \n \n {labels.switchToTableView ??\n DATA_TABLE_DEFAULT_LABELS.switchToTableView}\n \n \n \n \n {labels.tableView ??\n DATA_TABLE_DEFAULT_LABELS.tableView}\n \n \n \n \n {\n onViewModeChange(\"card\");\n }}\n >\n \n \n {labels.switchToCardView ??\n DATA_TABLE_DEFAULT_LABELS.switchToCardView}\n \n \n \n \n {labels.cardView ??\n DATA_TABLE_DEFAULT_LABELS.cardView}\n \n \n \n ) : null}\n\n {showTrailingActions\n ? trailingActions.map((action) => {\n const collapsesToIcon =\n !action.iconOnly && Boolean(action.icon);\n const button = (\n {\n void action.onClick({\n rows: allRows,\n openFileDialog,\n });\n }}\n disabled={action.disabled}\n aria-label={action.label}\n title={action.iconOnly ? undefined : action.label}\n className={`size-7 shrink-0 ${action.iconOnly ? \"\" : `${collapsesToIcon ? \"px-0 @min-[768px]/data-table:px-2.5\" : \"\"} @min-[768px]/data-table:h-8 @min-[768px]/data-table:w-fit`} ${action.iconOnly || collapsesToIcon ? compactToolbarIconButtonClassName : \"\"} ${uiClassNames.toolbarInputButton ?? \"\"}`}\n >\n {action.icon ? (\n \n ) : null}\n {action.iconOnly ? (\n {action.label}\n ) : collapsesToIcon ? (\n \n {action.label}\n \n ) : (\n {action.label}\n )}\n \n );\n\n return action.iconOnly ? (\n \n {button}\n {action.label}\n \n ) : (\n button\n );\n })\n : null}\n
    \n \n\n {showSearch && isCompactSearchVisible ? (\n \n \n ) => {\n onToolbarQueryValueChange(event.target.value);\n }}\n placeholder={toolbarQueryPlaceholder}\n />\n \n \n \n {toolbarQueryValue ? (\n \n {\n onToolbarQueryValueChange(\"\");\n }}\n aria-label={labels.clearSearch}\n title={labels.clearSearch}\n >\n \n \n \n ) : null}\n \n \n ) : null}\n\n {columnFilters.length ? (\n \n {columnFilters.map((filter) => (\n \n ))}\n {columnFilters.some((filter) =>\n hasColumnFilterValue(filter.value),\n ) ? (\n \n {labels.clearFilters}\n \n ) : null}\n \n ) : null}\n\n {enableToolbarFilterChips\n ? renderToolbarDataOperations(\"chips\")\n : null}\n\n {enableGrouping && groupedColumns.length ? (\n \n {labels.grouping}:\n {groupedColumns.map((column, groupingIndex) => {\n const columnLabel =\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : column.id;\n const moveGrouping = (nextIndex: number) => {\n const nextGrouping = [...table.getState().grouping];\n const [groupingId] = nextGrouping.splice(groupingIndex, 1);\n if (groupingId === undefined) return;\n nextGrouping.splice(nextIndex, 0, groupingId);\n table.setGrouping(nextGrouping);\n };\n return (\n \n moveGrouping(groupingIndex - 1)}\n aria-label={labels.moveGroupingEarlier(columnLabel)}\n >\n \n \n column.toggleGrouping()}\n aria-label={labels.removeGrouping(columnLabel)}\n >\n {columnLabel} ×\n \n moveGrouping(groupingIndex + 1)}\n aria-label={labels.moveGroupingLater(columnLabel)}\n >\n \n \n \n );\n })}\n \n ) : null}\n\n \n\n {showCustomToolbar && customToolbar ? (\n \n {customToolbar}\n \n ) : null}\n \n );\n };\n\n function ToolbarColumnFilterControl({\n filter,\n labels,\n onColumnFilterChange,\n }: {\n filter: DataTableToolbarColumnFilter;\n labels: Required;\n onColumnFilterChange: (columnId: string, value: unknown) => void;\n }) {\n const [facetQuery, setFacetQuery] = React.useState(\"\");\n if (filter.type === \"text\") {\n return (\n \n ) => {\n onColumnFilterChange(filter.id, event.target.value);\n }}\n placeholder={filter.placeholder ?? filter.label}\n aria-label={`${labels.filters}: ${filter.label}`}\n />\n \n \n \n \n );\n }\n\n if (filter.type === \"numberRange\" || filter.type === \"dateRange\") {\n const range = normalizeToolbarRangeValue(filter.value);\n const inputType = filter.type === \"numberRange\" ? \"number\" : \"date\";\n const fromLabel =\n labels.filterFrom ?? DATA_TABLE_DEFAULT_LABELS.filterFrom;\n const toLabel = labels.filterTo ?? DATA_TABLE_DEFAULT_LABELS.filterTo;\n\n return (\n \n \n ) => {\n onColumnFilterChange(filter.id, {\n ...range,\n from: parseRangeInputValue(event.target.value, inputType),\n });\n }}\n aria-label={`${filter.label}: ${fromLabel}`}\n />\n {fromLabel}\n \n \n ) => {\n onColumnFilterChange(filter.id, {\n ...range,\n to: parseRangeInputValue(event.target.value, inputType),\n });\n }}\n aria-label={`${filter.label}: ${toLabel}`}\n />\n {toLabel}\n \n \n );\n }\n\n const isBoolean = filter.type === \"boolean\";\n const isFaceted = filter.type === \"faceted\";\n const booleanOptions = [\n {\n label:\n filter.trueLabel ??\n labels.filterTrue ??\n DATA_TABLE_DEFAULT_LABELS.filterTrue,\n value: \"true\",\n },\n {\n label:\n filter.falseLabel ??\n labels.filterFalse ??\n DATA_TABLE_DEFAULT_LABELS.filterFalse,\n value: \"false\",\n },\n ];\n const options: DataTableToolbarColumnFilter[\"options\"] = isBoolean\n ? booleanOptions\n : filter.options;\n const visibleOptions =\n isFaceted && facetQuery\n ? options.filter((option) =>\n option.label.toLocaleLowerCase().includes(facetQuery.toLocaleLowerCase()),\n )\n : options;\n const selectedValue =\n typeof filter.value === \"string\" || typeof filter.value === \"boolean\"\n ? String(filter.value)\n : \"\";\n const selectedValues = Array.isArray(filter.value)\n ? filter.value.map(String)\n : selectedValue\n ? [selectedValue]\n : [];\n const selectedLabel =\n selectedValues.length === 0\n ? filter.label\n : `${filter.label}: ${\n selectedValues.length === 1\n ? (options.find(\n (option) => option.value === String(selectedValues[0]),\n )?.label ?? selectedValues[0])\n : selectedValues.length\n }`;\n\n return (\n \n \n \n \n \n {filter.label}\n {isFaceted && filter.searchable !== false ? (\n
    \n \n ) => {\n setFacetQuery(event.target.value);\n }}\n placeholder={filter.searchPlaceholder ?? labels.facetSearch(filter.label)}\n aria-label={labels.facetSearch(filter.label)}\n />\n \n \n \n \n
    \n ) : null}\n \n {filter.type === \"select\" || isBoolean || isFaceted ? (\n {\n onColumnFilterChange(filter.id, \"\");\n }}\n >\n {labels.allFilterOptions ??\n DATA_TABLE_DEFAULT_LABELS.allFilterOptions}\n \n ) : null}\n {visibleOptions.map((option) => (\n {\n if (filter.type === \"select\" || isBoolean) {\n onColumnFilterChange(\n filter.id,\n checked === true ? option.value : \"\",\n );\n return;\n }\n\n const nextValues = new Set(selectedValues);\n if (checked === true) {\n nextValues.add(option.value);\n } else {\n nextValues.delete(option.value);\n }\n onColumnFilterChange(filter.id, Array.from(nextValues));\n }}\n >\n {option.label}\n {option.count !== undefined ? (\n {option.count}\n ) : null}\n \n ))}\n \n
    \n
    \n );\n }\n}\n\nfunction hasColumnFilterValue(value: unknown) {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n\n if (value && typeof value === \"object\") {\n if (\"from\" in value || \"to\" in value) {\n return Object.values(value).some(hasColumnFilterValue);\n }\n\n return true;\n }\n\n return value !== undefined && value !== null && value !== \"\";\n}\n\nfunction normalizeToolbarRangeValue(value: unknown): {\n from?: number | string;\n to?: number | string;\n} {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return {};\n }\n\n const range = value as { from?: unknown; to?: unknown };\n return {\n ...(typeof range.from === \"number\" || typeof range.from === \"string\"\n ? { from: range.from }\n : {}),\n ...(typeof range.to === \"number\" || typeof range.to === \"string\"\n ? { to: range.to }\n : {}),\n };\n}\n\nfunction parseRangeInputValue(value: string, inputType: \"number\" | \"date\") {\n if (!value) {\n return undefined;\n }\n\n return inputType === \"number\" ? Number(value) : value;\n}\n","import * as React from \"react\";\nimport { DataTableTablePanel } from \"./data-table-table-panel\";\nimport type { DataTableTablePanelProps } from \"./data-table-table-panel\";\n\nconst LazyDataTableVirtualTablePanel = React.lazy(async () => {\n const module = await import(\"./data-table-virtual-table-panel\");\n return { default: module.DataTableVirtualTablePanel };\n}) as unknown as typeof DataTableTablePanel;\n\nexport function DataTableTablePanelRouter(\n props: DataTableTablePanelProps,\n) {\n const config =\n typeof props.virtualization === \"object\"\n ? props.virtualization\n : undefined;\n const enabled =\n props.virtualization === true || config?.enabled === true;\n\n if (!enabled) {\n return ;\n }\n\n return (\n \n }\n >\n \n \n );\n}\n","import type {\n DataTableSavedView,\n DataTableSavedViewSlice,\n DataTableSavedViewsChangeOperation,\n DataTableSavedViewsConfig,\n DataTableSavedViewsPayload,\n DataTableState,\n} from \"../types\";\n\nconst STORAGE_PREFIX = \"data-table-pro:saved-views:\";\nconst DEFAULT_VERSION = 1;\nconst DEFAULT_SLICES: Array = [\n \"sorting\",\n \"columnVisibility\",\n \"columnFilters\",\n \"grouping\",\n \"columnOrder\",\n \"columnPinning\",\n \"rowPinning\",\n \"columnSizing\",\n \"density\",\n \"viewMode\",\n \"showHiddenRows\",\n \"globalFilter\",\n];\nlet fallbackId = 0;\n\nexport function readDataTableSavedViews(\n config: DataTableSavedViewsConfig | undefined,\n): Array {\n const storage = resolveStorage(config);\n if (!config || !storage) {\n return [];\n }\n\n let serialized: string | null;\n try {\n serialized = storage.getItem(getStorageKey(config.key));\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return [];\n }\n if (!serialized) {\n return [];\n }\n\n let parsed: unknown;\n try {\n parsed = (config.deserialize ?? JSON.parse)(serialized);\n } catch (error) {\n config.onError?.({ error, operation: \"deserialize\" });\n return [];\n }\n\n if (!isRecord(parsed) || !(\"version\" in parsed) || !(\"views\" in parsed)) {\n return [];\n }\n\n const targetVersion = config.version ?? DEFAULT_VERSION;\n let candidate: unknown = parsed.views;\n if (parsed.version !== targetVersion) {\n if (!config.migrate) {\n return [];\n }\n try {\n candidate = config.migrate(\n { version: parsed.version, views: parsed.views },\n targetVersion,\n );\n } catch (error) {\n config.onError?.({ error, operation: \"migrate\" });\n return [];\n }\n }\n\n if (!Array.isArray(candidate)) {\n return [];\n }\n\n return candidate\n .map((view) => validateSavedView(view, config.slices))\n .filter((view): view is DataTableSavedView => Boolean(view));\n}\n\nexport function createDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n name: string,\n state: DataTableState,\n) {\n const normalizedName = name.trim();\n if (!config || !normalizedName) {\n return undefined;\n }\n\n const now = new Date().toISOString();\n const view: DataTableSavedView = {\n id: createSavedViewId(),\n name: normalizedName,\n createdAt: now,\n updatedAt: now,\n state: selectSavedViewSlices(state, config.slices),\n };\n const views = [...readDataTableSavedViews(config), view];\n return writeViews(config, views, \"create\") ? cloneSavedView(view) : undefined;\n}\n\nexport function renameDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n id: string,\n name: string,\n) {\n const normalizedName = name.trim();\n if (!config || !normalizedName) {\n return undefined;\n }\n\n let renamed: DataTableSavedView | undefined;\n const views = readDataTableSavedViews(config).map((view) => {\n if (view.id !== id) {\n return view;\n }\n renamed = {\n ...view,\n name: normalizedName,\n updatedAt: new Date().toISOString(),\n };\n return renamed;\n });\n if (!renamed) {\n return undefined;\n }\n\n return writeViews(config, views, \"rename\")\n ? cloneSavedView(renamed)\n : undefined;\n}\n\nexport function deleteDataTableSavedView(\n config: DataTableSavedViewsConfig | undefined,\n id: string,\n) {\n if (!config) {\n return false;\n }\n\n const current = readDataTableSavedViews(config);\n const views = current.filter((view) => view.id !== id);\n return views.length !== current.length && writeViews(config, views, \"delete\");\n}\n\nexport function clearDataTableSavedViews(\n config: DataTableSavedViewsConfig | undefined,\n) {\n const storage = resolveStorage(config);\n if (!config || !storage) {\n return false;\n }\n\n try {\n storage.removeItem(getStorageKey(config.key));\n } catch (error) {\n config.onError?.({ error, operation: \"remove\" });\n return false;\n }\n config.onChange?.([], \"clear\");\n return true;\n}\n\nfunction writeViews(\n config: DataTableSavedViewsConfig,\n views: Array,\n operation: DataTableSavedViewsChangeOperation,\n) {\n const storage = resolveStorage(config);\n if (!storage) {\n return false;\n }\n\n let serialized: string;\n try {\n const payload: DataTableSavedViewsPayload = {\n version: config.version ?? DEFAULT_VERSION,\n views,\n };\n serialized = (config.serialize ?? JSON.stringify)(payload);\n } catch (error) {\n config.onError?.({ error, operation: \"serialize\" });\n return false;\n }\n\n try {\n storage.setItem(getStorageKey(config.key), serialized);\n } catch (error) {\n config.onError?.({ error, operation: \"write\" });\n return false;\n }\n const snapshots = views.map(cloneSavedView);\n config.onChange?.(snapshots, operation);\n return true;\n}\n\nfunction selectSavedViewSlices(\n state: DataTableState,\n slices: Array | undefined,\n) {\n const selected = new Set(slices ?? DEFAULT_SLICES);\n const snapshot: Partial = {};\n for (const slice of Object.keys(state) as Array) {\n if (selected.has(slice)) {\n Object.assign(snapshot, {\n [slice]: cloneStateSlice(slice, state[slice]),\n });\n }\n }\n return snapshot;\n}\n\nfunction validateSavedView(\n value: unknown,\n slices: Array | undefined,\n): DataTableSavedView | undefined {\n if (\n !isRecord(value) ||\n typeof value.id !== \"string\" ||\n !value.id ||\n typeof value.name !== \"string\" ||\n !value.name.trim() ||\n typeof value.createdAt !== \"string\" ||\n typeof value.updatedAt !== \"string\"\n ) {\n return undefined;\n }\n\n return {\n id: value.id,\n name: value.name.trim(),\n createdAt: value.createdAt,\n updatedAt: value.updatedAt,\n state: validateState(value.state, slices),\n };\n}\n\nfunction validateState(\n value: unknown,\n slices: Array | undefined,\n) {\n if (!isRecord(value)) {\n return {};\n }\n\n const selected = new Set(slices ?? DEFAULT_SLICES);\n const state: Partial = {};\n const sorting = validateSorting(value.sorting);\n if (selected.has(\"sorting\") && sorting) state.sorting = sorting;\n const pagination = validatePagination(value.pagination);\n if (selected.has(\"pagination\") && pagination) state.pagination = pagination;\n const rowSelection = validateBooleanRecord(value.rowSelection);\n if (selected.has(\"rowSelection\") && rowSelection) {\n state.rowSelection = rowSelection;\n }\n const visibility = validateBooleanRecord(value.columnVisibility);\n if (selected.has(\"columnVisibility\") && visibility) {\n state.columnVisibility = visibility;\n }\n const filters = validateFilters(value.columnFilters);\n if (selected.has(\"columnFilters\") && filters) state.columnFilters = filters;\n const grouping = validateStringArray(value.grouping);\n if (selected.has(\"grouping\") && grouping) state.grouping = grouping;\n const expanded =\n value.expanded === true\n ? true\n : validateBooleanRecord(value.expanded);\n if (selected.has(\"expanded\") && expanded !== undefined) {\n state.expanded = expanded;\n }\n const order = validateStringArray(value.columnOrder);\n if (selected.has(\"columnOrder\") && order) state.columnOrder = order;\n const pinning = validatePinning(value.columnPinning);\n if (selected.has(\"columnPinning\") && pinning) {\n state.columnPinning = pinning;\n }\n const rowPinning = validateRowPinning(value.rowPinning);\n if (selected.has(\"rowPinning\") && rowPinning) {\n state.rowPinning = rowPinning;\n }\n const sizing = validateSizingRecord(value.columnSizing);\n if (selected.has(\"columnSizing\") && sizing) state.columnSizing = sizing;\n if (\n selected.has(\"density\") &&\n (value.density === \"compact\" ||\n value.density === \"comfortable\" ||\n value.density === \"spacious\")\n ) {\n state.density = value.density;\n }\n if (\n selected.has(\"viewMode\") &&\n (value.viewMode === \"table\" || value.viewMode === \"card\")\n ) {\n state.viewMode = value.viewMode;\n }\n if (selected.has(\"showHiddenRows\") && typeof value.showHiddenRows === \"boolean\") {\n state.showHiddenRows = value.showHiddenRows;\n }\n if (selected.has(\"globalFilter\") && typeof value.globalFilter === \"string\") {\n state.globalFilter = value.globalFilter;\n }\n return state;\n}\n\nfunction cloneSavedView(view: DataTableSavedView): DataTableSavedView {\n return {\n ...view,\n state: validateState(view.state, Object.keys(view.state) as Array),\n };\n}\n\nfunction cloneStateSlice(\n slice: DataTableSavedViewSlice,\n value: unknown,\n) {\n if (Array.isArray(value)) {\n return (value as Array).map((item) =>\n isRecord(item) ? { ...item } : item,\n );\n }\n if (isRecord(value)) {\n if (slice === \"columnPinning\" || slice === \"rowPinning\") {\n return {\n ...(slice === \"columnPinning\"\n ? {\n left: Array.isArray(value.left)\n ? [...(value.left as Array)]\n : undefined,\n right: Array.isArray(value.right)\n ? [...(value.right as Array)]\n : undefined,\n }\n : {\n top: Array.isArray(value.top)\n ? [...(value.top as Array)]\n : undefined,\n bottom: Array.isArray(value.bottom)\n ? [...(value.bottom as Array)]\n : undefined,\n }),\n };\n }\n return { ...value };\n }\n return value;\n}\n\nfunction validateSorting(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value\n .filter(\n (item): item is { id: string; desc?: boolean } =>\n isRecord(item) && typeof item.id === \"string\",\n )\n .map((item) => ({ id: item.id, desc: Boolean(item.desc) }));\n}\n\nfunction validatePagination(value: unknown) {\n if (\n !isRecord(value) ||\n !Number.isInteger(value.pageIndex) ||\n (value.pageIndex as number) < 0 ||\n !Number.isInteger(value.pageSize) ||\n (value.pageSize as number) < 1\n ) {\n return undefined;\n }\n return {\n pageIndex: value.pageIndex as number,\n pageSize: value.pageSize as number,\n };\n}\n\nfunction validateFilters(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value\n .filter(\n (item): item is { id: string; value: unknown } =>\n isRecord(item) &&\n typeof item.id === \"string\" &&\n Object.prototype.hasOwnProperty.call(item, \"value\"),\n )\n .map((item) => ({ id: item.id, value: item.value }));\n}\n\nfunction validatePinning(value: unknown) {\n if (!isRecord(value)) return undefined;\n return {\n left: validateStringArray(value.left) ?? [],\n right: validateStringArray(value.right) ?? [],\n };\n}\n\nfunction validateRowPinning(value: unknown) {\n if (!isRecord(value)) return undefined;\n return {\n top: validateStringArray(value.top) ?? [],\n bottom: validateStringArray(value.bottom) ?? [],\n };\n}\n\nfunction validateBooleanRecord(value: unknown) {\n if (!isRecord(value)) return undefined;\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, boolean] => typeof entry[1] === \"boolean\",\n ),\n );\n}\n\nfunction validateSizingRecord(value: unknown) {\n if (!isRecord(value)) return undefined;\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, number] =>\n typeof entry[1] === \"number\" &&\n Number.isFinite(entry[1]) &&\n entry[1] >= 0,\n ),\n );\n}\n\nfunction validateStringArray(value: unknown) {\n if (!Array.isArray(value)) return undefined;\n return value.filter((item): item is string => typeof item === \"string\");\n}\n\nfunction resolveStorage(config: DataTableSavedViewsConfig | undefined) {\n if (!config) {\n return undefined;\n }\n if (config.storage) {\n return config.storage;\n }\n if (typeof window === \"undefined\") {\n return undefined;\n }\n try {\n return window.localStorage;\n } catch (error) {\n config.onError?.({ error, operation: \"read\" });\n return undefined;\n }\n}\n\nfunction createSavedViewId() {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n fallbackId += 1;\n return `view-${Date.now().toString(36)}-${fallbackId.toString(36)}`;\n}\n\nfunction getStorageKey(key: string) {\n return `${STORAGE_PREFIX}${key}`;\n}\n\nfunction isRecord(value: unknown): value is Record {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import * as React from \"react\";\nimport { IconDownload } from \"../icons\";\nimport type {\n ColumnFiltersState,\n ColumnPinningState,\n OnChangeFn,\n Table as TanStackTable,\n VisibilityState,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableColumnFixed,\n DataTableLabels,\n DataTableProps,\n} from \"../types\";\nimport {\n exportDataTableCsv,\n getAccessorKey,\n getColumnId,\n getDataTableLeafColumns,\n hasFilterValue,\n normalizeColumnFilterOptions,\n startCase,\n} from \"./data-table-utils\";\n\nexport function useDataTableToolbarFeatures({\n columns,\n currentColumnFilters,\n currentColumnPinning,\n effectiveColumnVisibility,\n enableColumnFilters,\n handleColumnFiltersChange,\n handleColumnPinningChange,\n labels,\n table,\n toolbarActions,\n visibleData,\n csvExport,\n}: {\n columns: DataTableProps[\"columns\"];\n currentColumnFilters: ColumnFiltersState;\n currentColumnPinning: ColumnPinningState;\n effectiveColumnVisibility: VisibilityState;\n enableColumnFilters: boolean | undefined;\n handleColumnFiltersChange: OnChangeFn;\n handleColumnPinningChange: OnChangeFn;\n labels: DataTableLabels;\n table: TanStackTable;\n toolbarActions: DataTableProps[\"toolbarActions\"];\n visibleData: Array;\n csvExport: DataTableProps[\"csvExport\"];\n}) {\n const columnVisibilityOptions = React.useMemo(() => {\n return getDataTableLeafColumns(columns).map(({ column, index }) => {\n const id = getColumnId(column, index);\n const header = column.header;\n const accessorKey = getAccessorKey(column);\n const label =\n typeof header === \"string\"\n ? header\n : accessorKey\n ? startCase(accessorKey)\n : startCase(id);\n\n const pinned: false | DataTableColumnFixed =\n currentColumnPinning.left?.includes(id) === true\n ? \"left\"\n : currentColumnPinning.right?.includes(id) === true\n ? \"right\"\n : false;\n\n return {\n id,\n label,\n visible: effectiveColumnVisibility[id] !== false,\n canHide: column.enableHiding !== false,\n pinned,\n };\n });\n }, [columns, currentColumnPinning, effectiveColumnVisibility]);\n\n const toolbarColumnFilters = React.useMemo(() => {\n if (enableColumnFilters === false) {\n return [];\n }\n\n return getDataTableLeafColumns(columns).flatMap(({ column, index }) => {\n const filter = column.meta?.filter;\n if (!filter) {\n return [];\n }\n\n const id = getColumnId(column, index);\n const header = column.header;\n const accessorKey = getAccessorKey(column);\n const label =\n filter.label ??\n (typeof header === \"string\"\n ? header\n : accessorKey\n ? startCase(accessorKey)\n : startCase(id));\n const state = currentColumnFilters.find((item) => item.id === id);\n const configuredFacetOptions = filter.faceting?.options;\n const facetedMinMax =\n filter.type === \"numberRange\"\n ? table.getColumn(id)?.getFacetedMinMaxValues()\n : undefined;\n const rawOptions =\n filter.type === \"faceted\" && configuredFacetOptions\n ? typeof configuredFacetOptions === \"function\"\n ? configuredFacetOptions({ rows: visibleData })\n : configuredFacetOptions\n : filter.type === \"faceted\"\n ? Array.from(table.getColumn(id)?.getFacetedUniqueValues() ?? []).map(\n ([value, count]) => ({\n label:\n filter.faceting?.getOptionLabel?.(value as never) ??\n String(value),\n value: String(value),\n count,\n }),\n )\n : typeof filter.options === \"function\"\n ? filter.options({ rows: visibleData })\n : (filter.options ?? []);\n\n return [\n {\n id,\n label,\n type: filter.type,\n value: state?.value,\n placeholder: filter.placeholder,\n options: normalizeColumnFilterOptions(rawOptions),\n searchable: filter.faceting?.searchable,\n searchPlaceholder: filter.faceting?.searchPlaceholder,\n trueLabel: filter.trueLabel,\n falseLabel: filter.falseLabel,\n min: filter.min ?? facetedMinMax?.[0],\n max: filter.max ?? facetedMinMax?.[1],\n step: filter.step,\n },\n ];\n });\n }, [\n columns,\n currentColumnFilters,\n enableColumnFilters,\n table,\n visibleData,\n ]);\n\n const handleToolbarColumnFilterChange = React.useCallback(\n (columnId: string, value: unknown) => {\n handleColumnFiltersChange((current) => {\n const next = current.filter((filter) => filter.id !== columnId);\n if (hasFilterValue(value)) {\n next.push({ id: columnId, value });\n }\n return next;\n });\n },\n [handleColumnFiltersChange],\n );\n\n const handleClearColumnFilters = React.useCallback(() => {\n handleColumnFiltersChange([]);\n }, [handleColumnFiltersChange]);\n\n const handleToolbarColumnPinningChange = React.useCallback(\n (columnId: string, side: DataTableColumnFixed | false) => {\n handleColumnPinningChange((current) => {\n const left = (current.left ?? []).filter((id) => id !== columnId);\n const right = (current.right ?? []).filter((id) => id !== columnId);\n\n if (side === \"left\") {\n left.push(columnId);\n }\n if (side === \"right\") {\n right.push(columnId);\n }\n\n return { left, right };\n });\n },\n [handleColumnPinningChange],\n );\n\n const handleCsvExport = React.useCallback(() => {\n if (!csvExport) {\n return;\n }\n\n return exportDataTableCsv({\n csvExport,\n table,\n labels,\n });\n }, [csvExport, labels, table]);\n\n const effectiveToolbarActions = React.useMemo(() => {\n if (!csvExport) {\n return toolbarActions ?? [];\n }\n\n return [\n ...(toolbarActions ?? []),\n {\n key: \"__csv_export__\",\n label: labels.exportCsv,\n icon: IconDownload,\n placement: \"trailing\" as const,\n onClick: handleCsvExport,\n },\n ];\n }, [csvExport, handleCsvExport, labels.exportCsv, toolbarActions]);\n\n return {\n columnVisibilityOptions,\n effectiveToolbarActions,\n handleClearColumnFilters,\n handleToolbarColumnFilterChange,\n handleToolbarColumnPinningChange,\n toolbarColumnFilters,\n };\n}\n","import * as React from \"react\";\nimport type { DataTableProps } from \"../types\";\n\n/** Development-only guardrails for identities used by row models and caches. */\nexport function useDataTablePerformanceDiagnostics({\n columns,\n data,\n getRowId,\n}: Pick, \"columns\" | \"data\" | \"getRowId\">) {\n const previous = React.useRef({ columns, data, getRowId });\n const warned = React.useRef(new Set());\n\n React.useEffect(() => {\n if (!isDevelopmentEnvironment()) {\n return;\n }\n\n const last = previous.current;\n if (\n last.data !== data &&\n haveSameItems(last.data, data) &&\n !warned.current.has(\"data\")\n ) {\n warn(\n warned.current,\n \"data\",\n \"The data array identity changed. Keep rows immutable and memoize unchanged data so filtering, row models, and virtual measurements can be reused.\",\n );\n }\n if (\n last.columns !== columns &&\n haveSameItems(last.columns, columns) &&\n !warned.current.has(\"columns\")\n ) {\n warn(\n warned.current,\n \"columns\",\n \"The columns array identity changed. Memoize stable column definitions so the search index and table column model can be reused.\",\n );\n }\n if (last.getRowId !== getRowId && !warned.current.has(\"getRowId\")) {\n warn(\n warned.current,\n \"getRowId\",\n \"getRowId identity changed. Memoize it and return an immutable, unique id to preserve row state and virtual scroll anchoring.\",\n );\n }\n\n const ids = new Set();\n for (let index = 0; index < data.length; index += 1) {\n const id = getRowId(data[index]!, index);\n if (ids.has(id) && !warned.current.has(\"duplicate-row-id\")) {\n warn(\n warned.current,\n \"duplicate-row-id\",\n `Duplicate row id \"${id}\" detected. Row ids must be unique and immutable.`,\n );\n break;\n }\n ids.add(id);\n }\n previous.current = { columns, data, getRowId };\n }, [columns, data, getRowId]);\n}\n\nfunction haveSameItems(previous: Array, next: Array) {\n return (\n previous.length === next.length &&\n previous.every((item, index) => Object.is(item, next[index]))\n );\n}\n\nfunction warn(warned: Set, key: string, message: string) {\n warned.add(key);\n console.warn(`[data-table-pro] ${message}`);\n}\n\nfunction isDevelopmentEnvironment() {\n return (\n (globalThis as { process?: { env?: { NODE_ENV?: string } } }).process?.env\n ?.NODE_ENV !== \"production\"\n );\n}\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport type {\n Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableActionErrorContext,\n DataTableApi,\n DataTableCellSelection,\n DataTableLabels,\n DataTableProps,\n DataTableState,\n DataTableStateOverlay as DataTableStateOverlayConfig,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { createDataTableCardView } from \"./create-data-table-card-view\";\nimport { createDataTableEmptyState } from \"./create-data-table-empty-state\";\nimport { createDataTablePagination } from \"./create-data-table-pagination\";\nimport { createDataTableRowActions } from \"./create-data-table-row-actions\";\nimport { createDataTableToolbar } from \"./create-data-table-toolbar\";\nimport { DataTableCardPanel as DefaultDataTableCardPanel } from \"./data-table-card-panel\";\nimport { DataTableFooterSection } from \"./data-table-footer-section\";\nimport { DataTableTablePanelRouter as DefaultDataTableTablePanel } from \"./data-table-table-panel-router\";\nimport { DataTableToolbarSection } from \"./data-table-toolbar-section\";\nimport {\n clearDataTableSavedViews,\n createDataTableSavedView,\n deleteDataTableSavedView,\n readDataTableSavedViews,\n renameDataTableSavedView,\n} from \"./data-table-saved-views\";\nimport { resolveDataTableLabels } from \"./data-table-labels\";\nimport { useDataTableColumns } from \"./use-data-table-columns\";\nimport { useControllableState } from \"./use-controllable-state\";\nimport { useDataTableInstance } from \"./use-data-table-instance\";\nimport { useDataTableScrollViewport } from \"./use-data-table-scroll-viewport\";\nimport {\n exportDataTableCsv,\n getColumnId,\n getDataTableColumnGroupPaths,\n getDataTableLeafColumns,\n getInitialColumnPinning,\n validateDataTableColumnIds,\n} from \"./data-table-utils\";\nimport { useDataTableState } from \"./use-data-table-state\";\nimport { clearDataTableColumnPrefs } from \"./use-data-table-column-prefs\";\nimport { useDataTableToolbarFeatures } from \"./use-data-table-toolbar-features\";\nimport { useColumnLayout } from \"./use-column-layout\";\nimport { useRowEditing } from \"./use-row-editing\";\nimport { useDataTablePerformanceDiagnostics } from \"./use-data-table-performance-diagnostics\";\n\nconst DataTableAutoPageSize = React.lazy(\n () => import(\"./data-table-auto-page-size\"),\n);\n\ntype CreateDataTableOptions = {\n CardPanel?: typeof DefaultDataTableCardPanel;\n TablePanel?: typeof DefaultDataTableTablePanel;\n};\n\nexport function createDataTable(ui: DataTableUiKit) {\n return createDataTableWithPanels(ui);\n}\n\nexport function createDataTableWithPanels(\n ui: DataTableUiKit,\n options: CreateDataTableOptions = {},\n) {\n const DataTableCardPanel =\n options.CardPanel ?? DefaultDataTableCardPanel;\n const DataTableTablePanel =\n options.TablePanel ?? DefaultDataTableTablePanel;\n const uiClassNames = ui.classNames ?? {};\n const {\n rootClassName,\n Button,\n Checkbox,\n Input,\n ScrollArea,\n ScrollBar,\n Skeleton,\n Table,\n TableBody,\n TableCell,\n TableFooter = \"tfoot\",\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider = React.Fragment,\n TooltipTrigger,\n } = ui;\n const DataTableEmptyState = createDataTableEmptyState(ui);\n const DataTableRowActions = createDataTableRowActions(ui);\n const { DataTableFooter } = createDataTablePagination(ui);\n const DataTableToolbar = createDataTableToolbar(ui);\n const DataTableCardView = createDataTableCardView(ui, DataTableRowActions);\n const DataTableStateOverlay = React.lazy(async () => {\n const { createDataTableStateOverlay } = await import(\n \"./data-table-state-overlay\"\n );\n return { default: createDataTableStateOverlay(ui) };\n }) as unknown as (props: {\n labels: DataTableLabels;\n overlay: DataTableStateOverlayConfig;\n rows: Array;\n toolbarQueryValue: string;\n }) => React.ReactElement | null;\n const defaultColumn = {\n minSize: 80,\n size: 180,\n maxSize: 720,\n };\n\n return function DataTable({\n columns,\n data,\n getRowId,\n children,\n title,\n description,\n toolbarQueryValue,\n onToolbarQueryValueChange,\n toolbarQueryPlaceholder,\n toolbarQueryDebounceMs,\n manualFiltering = false,\n enableToolbarQueryFiltering = true,\n globalFilterFn,\n columnFilters,\n onColumnFiltersChange,\n enableColumnFilters,\n customToolbar,\n compactToolbar,\n rowsPerPageOptions = [10, 20, 50, 100],\n totalRowCount,\n hasNextPage,\n sorting,\n onSortingChange,\n manualSorting = false,\n grouping,\n onGroupingChange,\n manualGrouping = false,\n enableGrouping = false,\n groupedColumnMode = \"reorder\",\n aggregationFns,\n pageIndex,\n pageSize,\n autoPageSize = false,\n onPageIndexChange,\n onPageSizeChange,\n pageCount,\n manualPagination = false,\n rowSelection,\n onRowSelectionChange,\n enableRowSelection = false,\n enableMultiRowSelection = true,\n enableSubRowSelection = true,\n getRowCanSelect,\n rowSelectionSelectAllScope = \"page\",\n expanded,\n onExpandedChange,\n getSubRows,\n manualExpanding = false,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n detailPanel,\n getRowCanExpand,\n renderExpandedRow,\n columnOrder,\n onColumnOrderChange,\n enableColumnReordering = false,\n columnGroupHeaderHeight,\n columnPinning,\n onColumnPinningChange,\n enableColumnPinning = false,\n rowPinning,\n onRowPinningChange,\n enableRowPinning = false,\n keepPinnedRows = true,\n toolbarActions = [],\n selectionActions = [],\n rowActions = [],\n csvExport,\n clipboard,\n enableCellSelection = false,\n cellSelection,\n defaultCellSelection,\n onCellSelectionChange,\n gridCommands,\n density,\n onDensityChange,\n enableDensityToggle = false,\n columnPrefsKey,\n persistence,\n savedViews,\n toolbarDataOperations,\n initialState,\n state: unifiedState,\n onStateChange,\n apiRef,\n labels,\n summaryRows = [],\n cardRenderer,\n cardSizing,\n cardGridClassName,\n cardClassName,\n viewMode,\n onViewModeChange,\n enableViewToggle = false,\n enablePrint = false,\n enableFullscreen = false,\n emptyState,\n stateOverlay,\n isLoading = false,\n loadingRowCount,\n getRowLoadingState,\n hiddenRows,\n showHiddenRows,\n onShowHiddenRowsChange,\n infiniteScroll,\n editableRows,\n columnVisibility,\n onColumnVisibilityChange,\n columnSizing,\n onColumnSizingChange,\n enableColumnResizing = false,\n columnResizeMode = \"onEnd\",\n layoutMode = \"fill\",\n stickyHeader = true,\n showFooter = true,\n showToolbar = true,\n dir = \"ltr\",\n flexGrow = true,\n toolbarVisibility,\n className,\n tableClassName,\n tableContainerClassName,\n stripedRows = false,\n getRowClassName,\n onRowClick,\n onActionError,\n dragAndDrop,\n fileUpload,\n virtualization,\n accessibility,\n interactiveGrid,\n }: DataTableProps) {\n const containerRef = React.useRef(null);\n const fileInputRef = React.useRef(null);\n const tableScrollContainerRef = React.useRef(null);\n const draggedColumnIdRef = React.useRef(null);\n const tableRef = React.useRef | null>(null);\n const lastSelectedRowIdRef = React.useRef(null);\n const [toolbarSavedViewsVersion, setToolbarSavedViewsVersion] =\n React.useState(0);\n const generatedTitleId = React.useId();\n const generatedDescriptionId = React.useId();\n useDataTablePerformanceDiagnostics({ columns, data, getRowId });\n React.useMemo(() => validateDataTableColumnIds(columns), [columns]);\n const resolvedLabels = React.useMemo(\n () => resolveDataTableLabels(labels),\n [labels],\n );\n const toolbarOperations =\n toolbarDataOperations === true\n ? { columnChooser: true, savedViews: true, resetLayout: true }\n : toolbarDataOperations === false\n ? {}\n : (toolbarDataOperations ?? {});\n const gridMode =\n accessibility?.mode === \"grid\" ||\n interactiveGrid === true ||\n typeof interactiveGrid === \"object\";\n const [currentCellSelection, setCurrentCellSelection] =\n useControllableState({\n defaultValue: defaultCellSelection ?? null,\n onChange: onCellSelectionChange,\n value: cellSelection,\n });\n const resolvedToolbarQueryValue =\n toolbarQueryValue ?? unifiedState?.globalFilter;\n const resolvedSorting = sorting ?? unifiedState?.sorting;\n const resolvedGrouping = grouping ?? unifiedState?.grouping;\n const resolvedPageIndex =\n pageIndex ?? unifiedState?.pagination?.pageIndex;\n const resolvedPageSize = pageSize ?? unifiedState?.pagination?.pageSize;\n const resolvedRowSelection =\n rowSelection ?? unifiedState?.rowSelection;\n const resolvedColumnVisibility =\n columnVisibility ?? unifiedState?.columnVisibility;\n const resolvedColumnFilters =\n columnFilters ?? unifiedState?.columnFilters;\n const resolvedExpanded = expanded ?? unifiedState?.expanded;\n const resolvedColumnOrder =\n columnOrder ?? unifiedState?.columnOrder;\n const resolvedColumnPinning =\n columnPinning ?? unifiedState?.columnPinning;\n const resolvedRowPinning = rowPinning ?? unifiedState?.rowPinning;\n const resolvedColumnSizing =\n columnSizing ?? unifiedState?.columnSizing;\n const resolvedDensity = density ?? unifiedState?.density;\n const resolvedViewMode = viewMode ?? unifiedState?.viewMode;\n const resolvedShowHiddenRows =\n showHiddenRows ?? unifiedState?.showHiddenRows;\n const showTableHeading =\n showToolbar && (toolbarVisibility?.title ?? true);\n const titleId = showTableHeading && title ? generatedTitleId : undefined;\n const descriptionId =\n showTableHeading && description ? generatedDescriptionId : undefined;\n useDataTableStateConflictWarnings(unifiedState, {\n columnFilters: columnFilters !== undefined,\n columnOrder: columnOrder !== undefined,\n columnPinning: columnPinning !== undefined,\n rowPinning: rowPinning !== undefined,\n columnSizing: columnSizing !== undefined,\n columnVisibility: columnVisibility !== undefined,\n density: density !== undefined,\n expanded: expanded !== undefined,\n grouping: grouping !== undefined,\n globalFilter: toolbarQueryValue !== undefined,\n pagination: pageIndex !== undefined || pageSize !== undefined,\n rowSelection: rowSelection !== undefined,\n showHiddenRows: showHiddenRows !== undefined,\n sorting: sorting !== undefined,\n viewMode: viewMode !== undefined,\n });\n const handleToolbarQueryValueChange = useDataTableStateSliceChange(\n \"globalFilter\",\n onToolbarQueryValueChange,\n onStateChange,\n );\n const handleSortingPropChange = useDataTableStateSliceChange(\n \"sorting\",\n onSortingChange,\n onStateChange,\n );\n const handleGroupingPropChange = useDataTableStateSliceChange(\n \"grouping\",\n onGroupingChange,\n onStateChange,\n );\n const handleRowSelectionPropChange = useDataTableStateSliceChange(\n \"rowSelection\",\n onRowSelectionChange,\n onStateChange,\n );\n const handleColumnVisibilityPropChange = useDataTableStateSliceChange(\n \"columnVisibility\",\n onColumnVisibilityChange,\n onStateChange,\n );\n const handleColumnFiltersPropChange = useDataTableStateSliceChange(\n \"columnFilters\",\n onColumnFiltersChange,\n onStateChange,\n );\n const handleExpandedPropChange = useDataTableStateSliceChange(\n \"expanded\",\n onExpandedChange,\n onStateChange,\n );\n const handleColumnOrderPropChange = useDataTableStateSliceChange(\n \"columnOrder\",\n onColumnOrderChange,\n onStateChange,\n );\n const handleColumnPinningPropChange = useDataTableStateSliceChange(\n \"columnPinning\",\n onColumnPinningChange,\n onStateChange,\n );\n const handleRowPinningPropChange = useDataTableStateSliceChange(\n \"rowPinning\",\n onRowPinningChange,\n onStateChange,\n );\n const handleColumnSizingPropChange = useDataTableStateSliceChange(\n \"columnSizing\",\n onColumnSizingChange,\n onStateChange,\n );\n const handleDensityPropChange = useDataTableStateSliceChange(\n \"density\",\n onDensityChange,\n onStateChange,\n );\n const handleViewModePropChange = useDataTableStateSliceChange(\n \"viewMode\",\n onViewModeChange,\n onStateChange,\n );\n const handleShowHiddenRowsPropChange = useDataTableStateSliceChange(\n \"showHiddenRows\",\n onShowHiddenRowsChange,\n onStateChange,\n );\n const handlePageIndexPropChange = React.useCallback(\n (nextPageIndex: number) => {\n onPageIndexChange?.(nextPageIndex);\n onStateChange?.((current) => ({\n ...current,\n pagination: {\n pageIndex: nextPageIndex,\n pageSize:\n resolvedPageSize ?? current.pagination.pageSize,\n },\n }));\n },\n [onPageIndexChange, onStateChange, resolvedPageSize],\n );\n const handlePageSizePropChange = React.useCallback(\n (nextPageSize: number) => {\n onPageSizeChange?.(nextPageSize);\n onStateChange?.((current) => ({\n ...current,\n pagination: {\n pageIndex:\n resolvedPageIndex ?? current.pagination.pageIndex,\n pageSize: nextPageSize,\n },\n }));\n },\n [onPageSizeChange, onStateChange, resolvedPageIndex],\n );\n const runAction = React.useCallback(\n (\n context: Omit, \"error\">,\n action: () => void | Promise,\n ) => {\n runDataTableAction(action, context, onActionError);\n },\n [onActionError],\n );\n const guardedRowActions = React.useMemo(\n () =>\n rowActions.map((action) => ({\n ...action,\n onClick: (row: TData) => {\n runAction(\n {\n actionKey: action.key,\n row,\n source: \"rowAction\",\n },\n () => action.onClick(row),\n );\n },\n })),\n [rowActions, runAction],\n );\n const guardedOnRowClick = React.useMemo<\n DataTableProps[\"onRowClick\"]\n >(\n () =>\n onRowClick\n ? (context) => {\n runAction(\n {\n row: context.row,\n source: \"rowClick\",\n },\n () => onRowClick(context),\n );\n }\n : undefined,\n [onRowClick, runAction],\n );\n const handleEditError = React.useCallback(\n (error: unknown, row: TData) => {\n onActionError?.({\n error,\n row,\n source: \"edit\",\n });\n },\n [onActionError],\n );\n const {\n containerWidth,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n effectiveColumnVisibility,\n globalFilterValue,\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n localSearchValue,\n resolvedLoadingRowCount,\n resolvedToolbarQueryPlaceholder,\n selectedRowIds,\n selectedRows,\n setCurrentColumnFilters,\n setCurrentColumnOrder,\n setCurrentColumnPinning,\n setCurrentRowPinning,\n setCurrentColumnVisibility,\n setCurrentExpanded,\n setCurrentGrouping,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n setLocalSearchValue,\n shouldRenderInitialLoading,\n tableData,\n tableGetRowId,\n visibleData,\n } = useDataTableState({\n columnFilters: resolvedColumnFilters,\n columnOrder: resolvedColumnOrder,\n columnPinning: resolvedColumnPinning,\n rowPinning: resolvedRowPinning,\n columnSizing: resolvedColumnSizing,\n columnPrefsKey,\n persistence,\n columnVisibility: resolvedColumnVisibility,\n columns,\n containerRef,\n data,\n density: resolvedDensity,\n enableRowSelection,\n enableToolbarQueryFiltering,\n expanded: resolvedExpanded,\n grouping: resolvedGrouping,\n getSubRows,\n getRowId,\n hiddenRows,\n isLoading,\n loadingRowCount,\n manualFiltering,\n initialState,\n onColumnFiltersChange: handleColumnFiltersPropChange,\n onColumnOrderChange: handleColumnOrderPropChange,\n onColumnPinningChange: handleColumnPinningPropChange,\n onRowPinningChange: handleRowPinningPropChange,\n onColumnSizingChange: handleColumnSizingPropChange,\n onColumnVisibilityChange: handleColumnVisibilityPropChange,\n onDensityChange: handleDensityPropChange,\n onExpandedChange: handleExpandedPropChange,\n onGroupingChange: handleGroupingPropChange,\n onPageIndexChange: handlePageIndexPropChange,\n onRowSelectionChange: handleRowSelectionPropChange,\n onShowHiddenRowsChange: handleShowHiddenRowsPropChange,\n onSortingChange: handleSortingPropChange,\n onToolbarQueryValueChange: handleToolbarQueryValueChange,\n onViewModeChange: handleViewModePropChange,\n pageIndex: resolvedPageIndex,\n pageSize: resolvedPageSize,\n resolvedLabels,\n rowSelection: resolvedRowSelection,\n rowsPerPageOptions,\n selectionActions,\n showHiddenRows: resolvedShowHiddenRows,\n sorting: resolvedSorting,\n toolbarQueryDebounceMs,\n toolbarQueryPlaceholder,\n toolbarQueryValue: resolvedToolbarQueryValue,\n viewMode: resolvedViewMode,\n });\n const usesLegacyDetailPanelState = Boolean(\n renderExpandedRow && !detailPanel && !getSubRows,\n );\n const resolvedDetailPanel =\n detailPanel ??\n (renderExpandedRow\n ? {\n getRowCanExpand: getSubRows ? undefined : getRowCanExpand,\n render: renderExpandedRow,\n }\n : undefined);\n const [currentDetailExpanded, setCurrentDetailExpanded] =\n useControllableState({\n defaultValue: () =>\n usesLegacyDetailPanelState ? (initialState?.expanded ?? {}) : {},\n onChange: usesLegacyDetailPanelState\n ? setCurrentExpanded\n : resolvedDetailPanel?.onExpandedChange,\n value: usesLegacyDetailPanelState\n ? currentExpanded\n : resolvedDetailPanel?.expanded,\n });\n const {\n cancelEditing,\n clearEditError,\n draftValues,\n editErrors,\n editingRowId,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n setDraftValues,\n setEditingRowId,\n startEditingRow,\n } = useRowEditing({\n columns,\n editableRows,\n onError: handleEditError,\n });\n const rowEditingContext = React.useMemo(\n () => ({\n cancel: cancelEditing,\n cancelOnEscape: editableRows?.cancelOnEscape !== false,\n clearError: clearEditError,\n commit: (row: TData) => {\n void saveEdit(row);\n },\n commitOnEnter: editableRows?.commitOnEnter !== false,\n errors: editErrors,\n isDirty: isEditDirty,\n isPending: isSavingEdit,\n }),\n [\n cancelEditing,\n clearEditError,\n editableRows?.cancelOnEscape,\n editableRows?.commitOnEnter,\n editErrors,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n ],\n );\n const { viewportElement: tableScrollElement, viewportHeight } =\n useDataTableScrollViewport(tableScrollContainerRef, currentViewMode);\n const autoPageSizeConfig =\n typeof autoPageSize === \"object\" ? autoPageSize : undefined;\n const handleAutoPageSizeChange = React.useCallback(\n (nextPageSize: number) => {\n if (nextPageSize === currentPagination.pageSize) {\n return;\n }\n if (currentPagination.pageIndex !== 0) {\n handlePageIndexPropChange(0);\n }\n handlePageSizePropChange(nextPageSize);\n if (resolvedPageSize === undefined) {\n setLocalPagination({ pageIndex: 0, pageSize: nextPageSize });\n }\n },\n [\n currentPagination.pageIndex,\n currentPagination.pageSize,\n handlePageIndexPropChange,\n handlePageSizePropChange,\n resolvedPageSize,\n setLocalPagination,\n ],\n );\n const autoPageSizeEnabled =\n autoPageSize === true || autoPageSizeConfig !== undefined;\n const print = React.useCallback(() => {\n if (typeof window === \"undefined\" || typeof window.print !== \"function\") {\n return false;\n }\n window.print();\n return true;\n }, []);\n const toggleFullscreen = React.useCallback(async () => {\n const element = containerRef.current;\n if (!element || typeof document === \"undefined\") {\n return false;\n }\n if (document.fullscreenElement) {\n if (typeof document.exitFullscreen !== \"function\") return false;\n await document.exitFullscreen();\n return true;\n }\n if (typeof element.requestFullscreen !== \"function\") return false;\n await element.requestFullscreen();\n return true;\n }, []);\n const [isFullscreen, setIsFullscreen] = React.useState(false);\n React.useEffect(() => {\n if (!enableFullscreen || typeof document === \"undefined\") return;\n const update = () => {\n setIsFullscreen(document.fullscreenElement === containerRef.current);\n };\n update();\n document.addEventListener(\"fullscreenchange\", update);\n return () => document.removeEventListener(\"fullscreenchange\", update);\n }, [enableFullscreen]);\n const openFileDialog = React.useCallback(() => {\n if (fileUpload?.disabled) {\n return;\n }\n\n fileInputRef.current?.click();\n }, [fileUpload?.disabled]);\n const handleSelectedFiles = React.useCallback(\n (files: FileList | Array) => {\n runAction(\n {\n source: \"fileUpload\",\n },\n () => fileUpload?.onFilesSelected(files),\n );\n },\n [fileUpload, runAction],\n );\n\n const tableColumns = useDataTableColumns({\n Button,\n Checkbox,\n DataTableRowActions,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cancelEditing,\n columns,\n editableRows,\n editErrors,\n editingRowId,\n enableRowSelection,\n enableRowPinning,\n hasTreeExpansion: Boolean(getSubRows),\n isSavingEdit,\n isEditDirty,\n labels: resolvedLabels,\n lastSelectedRowIdRef,\n detailPanel: resolvedDetailPanel,\n detailExpanded: currentDetailExpanded,\n onDetailExpandedChange: setCurrentDetailExpanded,\n rowSelectionSelectAllScope,\n rowActions: guardedRowActions,\n saveEdit,\n startEditingRow,\n tableRef,\n });\n const columnGroupPaths = React.useMemo(\n () => getDataTableColumnGroupPaths(columns),\n [columns],\n );\n\n const {\n effectivePageCount,\n footerTotalRowCount,\n handleFooterPageIndexChange,\n handleFooterPageSizeChange,\n isPageCountKnown,\n renderedRows,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n rowsToRender,\n sentinelRef,\n table,\n virtualPaddingBottom,\n virtualPaddingTop,\n visibleLeafColumns,\n } = useDataTableInstance({\n autoResetPageIndex: false,\n columnGroupPaths,\n columnResizeMode,\n dir,\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentSorting,\n currentViewMode,\n defaultColumn,\n effectiveColumnVisibility,\n enableColumnResizing,\n enableRowPinning,\n enableRowSelection,\n enableMultiRowSelection,\n enableSubRowSelection,\n getRowCanSelect,\n getRowCanExpand,\n getSubRows,\n aggregationFns,\n groupedColumnMode,\n globalFilterFn,\n globalFilterValue,\n hasNextPage,\n handleColumnFiltersChange: setCurrentColumnFilters,\n handleColumnOrderChange: setCurrentColumnOrder,\n handleColumnPinningChange: setCurrentColumnPinning,\n handleRowPinningChange: setCurrentRowPinning,\n handleColumnVisibilityChange: setCurrentColumnVisibility,\n handleExpandedChange: setCurrentExpanded,\n handleGroupingChange: setCurrentGrouping,\n infiniteScroll,\n keepPinnedRows,\n manualFiltering,\n manualGrouping,\n manualExpanding,\n manualPagination,\n manualSorting,\n onActionError,\n onPageIndexChange: handlePageIndexPropChange,\n onPageSizeChange: handlePageSizePropChange,\n pageCount,\n pageIndex: resolvedPageIndex,\n pageSize: resolvedPageSize,\n paginateExpandedRows,\n filterFromLeafRows,\n maxLeafRowFilterDepth,\n setCurrentRowSelection,\n setCurrentSorting,\n setLocalColumnSizing,\n setLocalPagination,\n shouldRenderInitialLoading,\n tableColumns,\n tableData,\n tableGetRowId,\n tableRef,\n tableScrollElement,\n totalRowCount,\n virtualization,\n viewportHeight,\n });\n const columnLayout = useColumnLayout({\n columns,\n columnSizing: currentColumnSizing,\n editableRows: Boolean(editableRows),\n enableRowSelection,\n hasRowActions: rowActions.length > 0,\n hasRowExpansion: Boolean(getSubRows || resolvedDetailPanel),\n layoutMode,\n uiClassNames,\n visibleLeafColumns,\n });\n const { explicitlySizedColumnIds, fillMinWidth, getColumnLayout } =\n columnLayout;\n const explicitCustomCellColumnIds = React.useMemo(() => {\n return new Set(\n getDataTableLeafColumns(columns).flatMap(({ column, index }) => {\n return Object.prototype.hasOwnProperty.call(column, \"cell\") &&\n typeof column.cell === \"function\"\n ? [getColumnId(column, index)]\n : [];\n }),\n );\n }, [columns]);\n const visibleLeafColumnCount = visibleLeafColumns.length;\n const bodyRowComponents = React.useMemo(\n () => ({\n Checkbox,\n Input,\n Skeleton,\n TableCell,\n TableRow,\n }),\n [],\n );\n const hasCardTitle = React.useMemo(\n () =>\n getDataTableLeafColumns(columns).some(\n ({ column }) => column.meta?.cardTitle,\n ),\n [columns],\n );\n const primeColumnForResize = React.useCallback(\n (columnId: string, currentSize: number) => {\n if (\n explicitlySizedColumnIds.has(columnId) ||\n Object.prototype.hasOwnProperty.call(\n table.getState().columnSizing,\n columnId,\n )\n ) {\n return;\n }\n\n flushSync(() => {\n table.setColumnSizing((current) => ({\n ...current,\n [columnId]: currentSize,\n }));\n });\n },\n [explicitlySizedColumnIds, table],\n );\n const resetColumnSize = React.useCallback(\n (columnId: string) => {\n if (explicitlySizedColumnIds.has(columnId)) {\n table.getColumn(columnId)?.resetSize();\n return;\n }\n\n table.setColumnSizing((current) => {\n if (!Object.prototype.hasOwnProperty.call(current, columnId)) {\n return current;\n }\n\n const next = { ...current };\n delete next[columnId];\n return next;\n });\n },\n [explicitlySizedColumnIds, table],\n );\n\n const filteredData = table\n .getFilteredRowModel()\n .rows.map((row) => row.original);\n const configuredEmptyState = stateOverlay?.empty ?? emptyState;\n const emptyNode =\n typeof configuredEmptyState === \"function\"\n ? configuredEmptyState({\n rows: filteredData,\n toolbarQueryValue: localSearchValue,\n })\n : configuredEmptyState;\n const guardedStateOverlay = React.useMemo(\n () =>\n stateOverlay\n ? {\n ...stateOverlay,\n onRetry: stateOverlay.onRetry\n ? () =>\n runAction(\n { source: \"retry\" },\n stateOverlay.onRetry!,\n )\n : undefined,\n }\n : undefined,\n [runAction, stateOverlay],\n );\n const stateOverlayNode = guardedStateOverlay?.error != null ? (\n \n \n \n ) : undefined;\n const {\n columnVisibilityOptions,\n effectiveToolbarActions,\n handleClearColumnFilters,\n handleToolbarColumnFilterChange,\n handleToolbarColumnPinningChange,\n toolbarColumnFilters,\n } = useDataTableToolbarFeatures({\n columns,\n currentColumnFilters,\n currentColumnPinning,\n csvExport,\n effectiveColumnVisibility,\n enableColumnFilters,\n handleColumnFiltersChange: setCurrentColumnFilters,\n handleColumnPinningChange: setCurrentColumnPinning,\n labels: resolvedLabels,\n table,\n toolbarActions,\n visibleData,\n });\n const guardedToolbarActions = React.useMemo(\n () =>\n [\n ...effectiveToolbarActions,\n ...(enablePrint\n ? [\n {\n key: \"__print__\",\n label: resolvedLabels.print,\n placement: \"trailing\" as const,\n onClick: () => {\n print();\n },\n },\n ]\n : []),\n ...(enableFullscreen\n ? [\n {\n key: \"__fullscreen__\",\n label: isFullscreen\n ? resolvedLabels.exitFullscreen\n : resolvedLabels.enterFullscreen,\n placement: \"trailing\" as const,\n onClick: () => toggleFullscreen(),\n },\n ]\n : []),\n ].map((action) => ({\n ...action,\n onClick: (context: {\n rows: Array;\n openFileDialog?: () => void;\n }) => {\n runAction(\n {\n actionKey: action.key,\n source: \"toolbarAction\",\n },\n () => action.onClick(context),\n );\n },\n })),\n [\n effectiveToolbarActions,\n enableFullscreen,\n enablePrint,\n isFullscreen,\n print,\n resolvedLabels.enterFullscreen,\n resolvedLabels.exitFullscreen,\n resolvedLabels.print,\n runAction,\n toggleFullscreen,\n ],\n );\n const guardedSelectionActions = React.useMemo(\n () =>\n selectionActions.map((action) => ({\n ...action,\n onClick: (context: Parameters[0]) => {\n runAction(\n {\n actionKey: action.key,\n source: \"selectionAction\",\n },\n () => action.onClick(context),\n );\n },\n })),\n [runAction, selectionActions],\n );\n const currentDataTableState = React.useMemo(\n () => ({\n sorting: currentSorting,\n pagination: currentPagination,\n rowSelection: currentRowSelection,\n columnVisibility: currentColumnVisibility,\n columnFilters: currentColumnFilters,\n expanded: currentExpanded,\n grouping: currentGrouping,\n columnOrder: currentColumnOrder,\n columnPinning: currentColumnPinning,\n rowPinning: currentRowPinning,\n columnSizing: currentColumnSizing,\n density: currentDensity,\n viewMode: currentViewMode,\n showHiddenRows: currentShowHiddenRows,\n globalFilter: localSearchValue,\n }),\n [\n currentColumnFilters,\n currentColumnOrder,\n currentColumnPinning,\n currentRowPinning,\n currentColumnSizing,\n currentColumnVisibility,\n currentDensity,\n currentExpanded,\n currentGrouping,\n currentPagination,\n currentRowSelection,\n currentShowHiddenRows,\n currentSorting,\n currentViewMode,\n localSearchValue,\n ],\n );\n const getCurrentState = React.useCallback(\n () => cloneDataTableState(currentDataTableState),\n [currentDataTableState],\n );\n const restoreState = React.useCallback(\n (nextState: Partial) => {\n if (nextState.sorting !== undefined) {\n table.setSorting(nextState.sorting);\n }\n if (nextState.pagination !== undefined) {\n table.setPagination(nextState.pagination);\n }\n if (nextState.rowSelection !== undefined) {\n table.setRowSelection(nextState.rowSelection);\n }\n if (nextState.columnVisibility !== undefined) {\n table.setColumnVisibility(nextState.columnVisibility);\n }\n if (nextState.columnFilters !== undefined) {\n table.setColumnFilters(nextState.columnFilters);\n }\n if (nextState.expanded !== undefined) {\n table.setExpanded(nextState.expanded);\n }\n if (nextState.grouping !== undefined) {\n table.setGrouping(nextState.grouping);\n }\n if (nextState.columnOrder !== undefined) {\n table.setColumnOrder(nextState.columnOrder);\n }\n if (nextState.columnPinning !== undefined) {\n table.setColumnPinning(nextState.columnPinning);\n }\n if (nextState.rowPinning !== undefined) {\n table.setRowPinning(nextState.rowPinning);\n }\n if (nextState.columnSizing !== undefined) {\n table.setColumnSizing(nextState.columnSizing);\n }\n if (nextState.density !== undefined) {\n handleDensityChange(nextState.density);\n }\n if (nextState.viewMode !== undefined) {\n handleViewModeChange(nextState.viewMode);\n }\n if (nextState.showHiddenRows !== undefined) {\n handleShowHiddenRowsChange(nextState.showHiddenRows);\n }\n if (nextState.globalFilter !== undefined) {\n setLocalSearchValue(nextState.globalFilter);\n }\n },\n [\n handleDensityChange,\n handleShowHiddenRowsChange,\n handleViewModeChange,\n setLocalSearchValue,\n table,\n ],\n );\n const clearPersistedState = React.useCallback(\n () => clearDataTableColumnPrefs(persistence ?? columnPrefsKey),\n [columnPrefsKey, persistence],\n );\n const resetColumnLayout = React.useCallback<\n DataTableApi[\"resetColumnLayout\"]\n >(\n (options) => {\n if (options?.clearPersistence) {\n clearPersistedState();\n }\n restoreState({\n columnVisibility: initialState?.columnVisibility ?? {},\n columnOrder: initialState?.columnOrder ?? [],\n columnPinning:\n initialState?.columnPinning ?? getInitialColumnPinning(columns),\n rowPinning: initialState?.rowPinning ?? { top: [], bottom: [] },\n columnSizing: initialState?.columnSizing ?? {},\n });\n },\n [\n clearPersistedState,\n columns,\n initialState,\n restoreState,\n ],\n );\n const resetState = React.useCallback[\"resetState\"]>(\n (options) => {\n if (options?.clearPersistence) {\n clearPersistedState();\n }\n restoreState({\n sorting: initialState?.sorting ?? [],\n pagination: initialState?.pagination ?? {\n pageIndex: 0,\n pageSize: rowsPerPageOptions[0] ?? 20,\n },\n rowSelection: initialState?.rowSelection ?? {},\n columnVisibility: initialState?.columnVisibility ?? {},\n columnFilters: initialState?.columnFilters ?? [],\n expanded: initialState?.expanded ?? {},\n grouping: initialState?.grouping ?? [],\n columnOrder: initialState?.columnOrder ?? [],\n columnPinning:\n initialState?.columnPinning ?? getInitialColumnPinning(columns),\n rowPinning: initialState?.rowPinning ?? { top: [], bottom: [] },\n columnSizing: initialState?.columnSizing ?? {},\n density: initialState?.density ?? \"comfortable\",\n viewMode: initialState?.viewMode ?? \"table\",\n showHiddenRows: initialState?.showHiddenRows ?? false,\n globalFilter: initialState?.globalFilter ?? \"\",\n });\n },\n [\n clearPersistedState,\n columns,\n initialState,\n restoreState,\n rowsPerPageOptions,\n ],\n );\n const getSavedViews = React.useCallback(\n () => readDataTableSavedViews(savedViews),\n [savedViews],\n );\n const createSavedView = React.useCallback<\n DataTableApi[\"createSavedView\"]\n >(\n (name) =>\n createDataTableSavedView(savedViews, name, getCurrentState()),\n [getCurrentState, savedViews],\n );\n const applySavedView = React.useCallback<\n DataTableApi[\"applySavedView\"]\n >(\n (id) => {\n const view = readDataTableSavedViews(savedViews).find(\n (candidate) => candidate.id === id,\n );\n if (!view) {\n return false;\n }\n restoreState(view.state);\n savedViews?.onApply?.(view);\n return true;\n },\n [restoreState, savedViews],\n );\n const renameSavedView = React.useCallback<\n DataTableApi[\"renameSavedView\"]\n >(\n (id, name) => renameDataTableSavedView(savedViews, id, name),\n [savedViews],\n );\n const deleteSavedView = React.useCallback<\n DataTableApi[\"deleteSavedView\"]\n >(\n (id) => deleteDataTableSavedView(savedViews, id),\n [savedViews],\n );\n const clearSavedViews = React.useCallback(\n () => clearDataTableSavedViews(savedViews),\n [savedViews],\n );\n const toolbarSavedViews = React.useMemo(() => {\n void toolbarSavedViewsVersion;\n return readDataTableSavedViews(savedViews);\n }, [savedViews, toolbarSavedViewsVersion]);\n const handleToolbarCreateSavedView = React.useCallback(\n (name: string) => {\n const view = createSavedView(name);\n if (view) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return view;\n },\n [createSavedView],\n );\n const handleToolbarRenameSavedView = React.useCallback(\n (id: string, name: string) => {\n const view = renameSavedView(id, name);\n if (view) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return view;\n },\n [renameSavedView],\n );\n const handleToolbarDeleteSavedView = React.useCallback(\n (id: string) => {\n const deleted = deleteSavedView(id);\n if (deleted) {\n setToolbarSavedViewsVersion((current) => current + 1);\n }\n return deleted;\n },\n [deleteSavedView],\n );\n const exportCsvFromApi = React.useCallback<\n DataTableApi[\"exportCsv\"]\n >(\n (options) =>\n exportDataTableCsv({\n csvExport: options ?? (csvExport || true),\n labels: resolvedLabels,\n table,\n }),\n [csvExport, resolvedLabels, table],\n );\n const copyToClipboard = React.useCallback<\n DataTableApi[\"copyToClipboard\"]\n >(\n async (options) => {\n const { copyDataTableToClipboard } = await import(\n \"./data-table-clipboard\"\n );\n return copyDataTableToClipboard({\n clipboard:\n options ??\n (clipboard?.copy === false\n ? false\n : currentCellSelection\n ? {\n ...(clipboard?.copy === true ? {} : clipboard?.copy),\n scope: \"cellSelection\",\n }\n : clipboard?.copy ?? true),\n cellSelection: currentCellSelection,\n table,\n });\n },\n [clipboard?.copy, currentCellSelection, table],\n );\n const pinRow = React.useCallback[\"pinRow\"]>(\n (rowId, position = \"top\") => {\n try {\n const row = table.getRow(rowId, true);\n if (!row.getCanPin()) {\n return false;\n }\n row.pin(position);\n return true;\n } catch {\n return false;\n }\n },\n [table],\n );\n const unpinRow = React.useCallback[\"unpinRow\"]>(\n (rowId) => {\n try {\n const row = table.getRow(rowId, true);\n if (!row.getCanPin()) {\n return false;\n }\n row.pin(false);\n return true;\n } catch {\n return false;\n }\n },\n [table],\n );\n React.useImperativeHandle(\n apiRef,\n () => ({\n getTable: () => tableRef.current,\n getState: getCurrentState,\n snapshot: getCurrentState,\n restore: restoreState,\n resetColumnLayout,\n resetState,\n clearPersistedState,\n getSavedViews,\n createSavedView,\n applySavedView,\n renameSavedView,\n deleteSavedView,\n clearSavedViews,\n pinRow,\n unpinRow,\n focus: () => {\n containerRef.current?.focus();\n },\n scrollToRow: (rowId) =>\n scrollDataTableElementIntoView(containerRef.current, \"row\", rowId),\n scrollToColumn: (columnId) =>\n scrollDataTableElementIntoView(\n containerRef.current,\n \"column\",\n columnId,\n ),\n exportCsv: exportCsvFromApi,\n copyToClipboard,\n getCellSelection: () => currentCellSelection,\n setCellSelection: setCurrentCellSelection,\n clearCellSelection: () => setCurrentCellSelection(null),\n print,\n toggleFullscreen,\n }),\n [\n applySavedView,\n clearPersistedState,\n clearSavedViews,\n copyToClipboard,\n currentCellSelection,\n createSavedView,\n deleteSavedView,\n exportCsvFromApi,\n getSavedViews,\n getCurrentState,\n renameSavedView,\n resetColumnLayout,\n resetState,\n restoreState,\n pinRow,\n print,\n setCurrentCellSelection,\n unpinRow,\n toggleFullscreen,\n ],\n );\n\n return (\n \n {\n if (\n gridMode &&\n gridCommands &&\n (event.ctrlKey || event.metaKey) &&\n event.key.toLowerCase() === \"z\" &&\n !isDataTableEditableClipboardTarget(event.target)\n ) {\n const command = event.shiftKey ? gridCommands.redo : gridCommands.undo;\n if (command) {\n event.preventDefault();\n runAction(\n { source: event.shiftKey ? \"redo\" : \"undo\" },\n () => command({ cellSelection: currentCellSelection, table }),\n );\n }\n return;\n }\n if (\n !clipboard?.copy ||\n !(event.ctrlKey || event.metaKey) ||\n event.key.toLowerCase() !== \"c\" ||\n isDataTableEditableClipboardTarget(event.target)\n ) {\n return;\n }\n event.preventDefault();\n runAction(\n { source: \"clipboardCopy\" },\n async () => {\n await copyToClipboard(\n clipboard.copy === true\n ? undefined\n : currentCellSelection &&\n typeof clipboard.copy === \"object\" &&\n !clipboard.copy.scope\n ? { ...clipboard.copy, scope: \"cellSelection\" }\n : clipboard.copy,\n );\n },\n );\n }}\n onPaste={(event) => {\n const paste = clipboard?.paste;\n if (\n !paste ||\n paste.enabled === false ||\n isDataTableEditableClipboardTarget(event.target)\n ) {\n return;\n }\n const text = event.clipboardData.getData(\"text/plain\");\n if (!text) {\n return;\n }\n if (paste.preventDefault ?? true) {\n event.preventDefault();\n }\n runAction(\n { source: \"clipboardPaste\" },\n async () => {\n const { parseDataTableClipboardText } = await import(\n \"./data-table-clipboard\"\n );\n return paste.onPaste({\n table,\n text,\n values: parseDataTableClipboardText(text),\n });\n },\n );\n }}\n >\n {autoPageSizeEnabled ? (\n \n \n \n ) : null}\n {fileUpload ? (\n {\n const files = event.currentTarget.files;\n if (files?.length) {\n handleSelectedFiles(files);\n }\n event.currentTarget.value = \"\";\n }}\n />\n ) : null}\n \n \n {showToolbar ? (\n \n ) : null}\n\n \n {currentViewMode === \"card\" && cardRenderer ? (\n \n ) : (\n \n )}\n \n \n {children}\n \n \n \n \n \n );\n };\n}\n\nfunction runDataTableAction(\n action: () => void | Promise,\n context: Omit, \"error\">,\n onActionError: DataTableProps[\"onActionError\"],\n) {\n let result: void | Promise;\n try {\n result = action();\n } catch (error) {\n onActionError?.({ ...context, error });\n return;\n }\n\n void Promise.resolve(result).catch((error: unknown) => {\n onActionError?.({ ...context, error });\n });\n}\n\nfunction useDataTableStateSliceChange(\n key: K,\n onLegacyChange:\n | ((value: Exclude) => void)\n | undefined,\n onStateChange: DataTableProps[\"onStateChange\"],\n) {\n const handleChange = React.useCallback(\n (value: Exclude) => {\n onLegacyChange?.(value);\n onStateChange?.((current) => ({\n ...current,\n [key]: value,\n }));\n },\n [key, onLegacyChange, onStateChange],\n );\n\n return onLegacyChange || onStateChange ? handleChange : undefined;\n}\n\nfunction useDataTableStateConflictWarnings(\n state: Partial | undefined,\n legacySlices: Record,\n) {\n const warnedSlicesRef = React.useRef(new Set());\n\n React.useEffect(() => {\n if (!state || !isDevelopmentEnvironment()) {\n return;\n }\n\n for (const key of Object.keys(legacySlices) as Array<\n keyof DataTableState\n >) {\n if (\n state[key] === undefined ||\n !legacySlices[key] ||\n warnedSlicesRef.current.has(key)\n ) {\n continue;\n }\n\n warnedSlicesRef.current.add(key);\n console.warn(\n `[data-table-pro] Both state.${key} and its legacy controlled prop were provided. The legacy prop takes precedence during the 4.x compatibility window.`,\n );\n }\n }, [legacySlices, state]);\n}\n\nfunction isDevelopmentEnvironment() {\n const nodeEnvironment = (\n globalThis as {\n process?: { env?: { NODE_ENV?: string } };\n }\n ).process?.env?.NODE_ENV;\n\n return nodeEnvironment !== \"production\";\n}\n\nfunction cloneDataTableState(state: DataTableState): DataTableState {\n return {\n sorting: state.sorting.map((item) => ({ ...item })),\n pagination: { ...state.pagination },\n rowSelection: { ...state.rowSelection },\n columnVisibility: { ...state.columnVisibility },\n columnFilters: state.columnFilters.map((item) => ({ ...item })),\n expanded:\n typeof state.expanded === \"boolean\"\n ? state.expanded\n : { ...state.expanded },\n grouping: [...(state.grouping ?? [])],\n columnOrder: [...state.columnOrder],\n columnPinning: {\n left: state.columnPinning.left\n ? [...state.columnPinning.left]\n : undefined,\n right: state.columnPinning.right\n ? [...state.columnPinning.right]\n : undefined,\n },\n rowPinning: {\n top: state.rowPinning.top ? [...state.rowPinning.top] : undefined,\n bottom: state.rowPinning.bottom ? [...state.rowPinning.bottom] : undefined,\n },\n columnSizing: { ...state.columnSizing },\n density: state.density,\n viewMode: state.viewMode,\n showHiddenRows: state.showHiddenRows,\n globalFilter: state.globalFilter,\n };\n}\n\nfunction scrollDataTableElementIntoView(\n container: HTMLDivElement | null,\n kind: \"row\" | \"column\",\n value: string,\n) {\n if (!container) {\n return false;\n }\n\n const attribute = kind === \"row\" ? \"data-row-id\" : \"data-column-id\";\n const element = Array.from(\n container.querySelectorAll(`[${attribute}]`),\n ).find((candidate) => candidate.getAttribute(attribute) === value);\n if (!element) {\n return false;\n }\n\n element.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n return true;\n}\n\nfunction isDataTableEditableClipboardTarget(target: EventTarget | null) {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n return (\n target.isContentEditable ||\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement\n );\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-K7SNDVV2.js b/dist/chunk-K7SNDVV2.js deleted file mode 100644 index 8cac111..0000000 --- a/dist/chunk-K7SNDVV2.js +++ /dev/null @@ -1,2 +0,0 @@ -import {a}from'./chunk-EJHT5JBZ.js';import {a as a$2}from'./chunk-KDHJA6AH.js';import {a as a$1}from'./chunk-XTVBESM5.js';import*as f from'react';import {useVirtualizer}from'@tanstack/react-virtual';import {jsxs,jsx}from'react/jsx-runtime';function dt({cardClassName:r,cardGridClassName:o,cardSizing:E,cardRenderer:N,containerWidth:V,currentRowSelection:z,currentDetailExpanded:M,DataTableCardView:k,DataTableEmptyState:A,dragAndDrop:c,editableRows:P,editingRowId:I,emptyNode:H,enableRowSelection:_,flexGrow:g,getRowClassName:B,hasCardTitle:K,infiniteScroll:O,localSearchValue:h,onRowClick:j,renderedRows:e,detailPanel:U,resolvedLabels:n,resolvedLoadingRowCount:Y,rowActions:$=[],ScrollArea:q,sentinelRef:F,setCurrentDetailExpanded:J,setCurrentRowSelection:Q,setEditingRowId:X,shouldRenderInitialLoading:m,stateOverlayNode:Z,tableContainerClassName:G,uiClassNames:p,virtualization:R}){let v=m||e.length>0,x=f.useRef(null),{viewportElement:D,viewportHeight:L}=a(x,v),l=typeof R=="object"?R.card:void 0,T=!m&&e.length>0&&l?.enabled===true,i=rt(l?.lanes,V),W=Math.ceil(e.length/i),b=T&&!!D&&L>0,tt=f.useCallback(t=>e[t*i]?.id??t,[i,e]),w=useVirtualizer({count:T?W:0,enabled:b,estimateSize:()=>l?.estimateCardHeight??280,getItemKey:tt,getScrollElement:()=>D,overscan:l?.overscan??4}),at=b?w.getVirtualItems():[],C=(t,s)=>jsx(k,{rows:t,cardRenderer:N,cardGridClassName:o,cardClassName:r,cardSizing:E,rowActions:$,editableRows:P,detailPanel:U,detailExpanded:M,onDetailExpandedChange:J,hasCardTitle:K,rowSelection:z,onRowSelectionChange:Q,enableRowSelection:_,editingRowId:I,onEditingRowIdChange:X,getRowClassName:B,onRowClick:j,getRowDraggable:c?.getRowDraggable,onRowDragStart:c?.onRowDragStart,onRowDragEnd:c?.onRowDragEnd,isLoading:s?.isLoading,loadingRowCount:s?.loadingRowCount,labels:n});return jsxs("div",{ref:x,"data-dtp-slot":"data-table-card-shell",className:a$1("relative box-border border-2 border-transparent transition-colors",g?"flex min-h-0 flex-1 flex-col":"h-full",c?.isDragging&&(p.dragActive??"rounded-md border-dashed")),children:[jsx(q,{className:a$1(g?"min-h-0 flex-1":"h-full",p.cardScrollArea,G),children:jsxs("div",{"data-dtp-slot":"data-table-card-viewport",className:a$1("flex min-h-full min-w-0 flex-col",g&&"min-h-0 flex-1",p.cardViewport),children:[v?m?C([],{isLoading:true,loadingRowCount:Y}):b?jsx("div",{"data-dtp-slot":"data-table-card-virtualizer",style:{height:w.getTotalSize(),position:"relative",width:"100%"},children:at.map(t=>{let s=t.index*i,et=e.slice(s,s+i);return jsx("div",{"data-index":t.index,ref:w.measureElement,style:{left:0,position:"absolute",top:0,transform:`translateY(${t.start}px)`,width:"100%"},children:C(et)},t.key)})}):C(e.slice(0,Math.max(1,Math.floor(l?.fallbackCardCount??12)))):jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center p-4",children:H??jsx(A,{title:h?n.noMatchingRowsTitle:n.noRowsTitle,description:h?n.noMatchingRowsDescription:n.noRowsDescription})}),O?.enabled&&!m?jsx("div",{className:"shrink-0 px-4 pb-4",children:jsx("div",{ref:F,className:"h-4 w-full"})}):null]})}),Z]})}function rt(r,o){return typeof r=="number"?Math.max(1,Math.floor(r)):r!=="auto"?1:o>=a$2["2xl"]?5:o>=a$2.xl?4:o>=a$2.lg?3:o>=a$2.sm?2:1}export{dt as a};//# sourceMappingURL=chunk-K7SNDVV2.js.map -//# sourceMappingURL=chunk-K7SNDVV2.js.map \ No newline at end of file diff --git a/dist/chunk-K7SNDVV2.js.map b/dist/chunk-K7SNDVV2.js.map deleted file mode 100644 index 1ee6c59..0000000 --- a/dist/chunk-K7SNDVV2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/core/data-table/data-table-virtual-card-panel.tsx"],"names":["DataTableVirtualCardPanel","cardClassName","cardGridClassName","cardSizing","cardRenderer","containerWidth","currentRowSelection","currentDetailExpanded","DataTableCardView","DataTableEmptyState","dragAndDrop","editableRows","editingRowId","emptyNode","enableRowSelection","flexGrow","getRowClassName","hasCardTitle","infiniteScroll","localSearchValue","onRowClick","renderedRows","detailPanel","resolvedLabels","resolvedLoadingRowCount","rowActions","ScrollArea","sentinelRef","setCurrentDetailExpanded","setCurrentRowSelection","setEditingRowId","shouldRenderInitialLoading","stateOverlayNode","tableContainerClassName","uiClassNames","virtualization","shouldRenderCards","cardScrollContainerRef","viewportElement","viewportHeight","useDataTableScrollViewport","virtualizationConfig","enableCardVirtualization","lanes","resolveCardVirtualizationLanes","virtualRowCount","shouldUseVirtualCardRows","getItemKey","index","cardVirtualizer","useVirtualizer","virtualCardRows","renderCardView","rows","options","jsx","jsxs","cn","virtualRow","startIndex","configuredLanes","DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS"],"mappings":"gPAQO,SAASA,GAAiC,CAC/C,aAAA,CAAAC,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,mBAAA,CAAAC,CAAAA,CACA,qBAAA,CAAAC,EACA,iBAAA,CAAAC,CAAAA,CACA,mBAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,kBAAA,CAAAC,CAAAA,CACA,SAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,EACA,cAAA,CAAAC,CAAAA,CACA,uBAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CAAa,EAAC,CACd,UAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,wBAAA,CAAAC,CAAAA,CACA,uBAAAC,CAAAA,CACA,eAAA,CAAAC,CAAAA,CACA,0BAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,uBAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CACF,CAAA,CAAmC,CACjC,IAAMC,CAAAA,CAAoBL,CAAAA,EAA8BV,CAAAA,CAAa,MAAA,CAAS,CAAA,CACxEgB,CAAAA,CAA+B,CAAA,CAAA,MAAA,CAA8B,IAAI,CAAA,CACjE,CAAE,eAAA,CAAAC,CAAAA,CAAiB,cAAA,CAAAC,CAAe,CAAA,CAAIC,CAAAA,CAC1CH,CAAAA,CACAD,CACF,CAAA,CACMK,CAAAA,CACJ,OAAON,CAAAA,EAAmB,QAAA,CAAWA,CAAAA,CAAe,IAAA,CAAO,MAAA,CACvDO,CAAAA,CACJ,CAACX,GACDV,CAAAA,CAAa,MAAA,CAAS,CAAA,EACtBoB,CAAAA,EAAsB,OAAA,GAAY,IAAA,CAC9BE,CAAAA,CAAQC,EAAAA,CACZH,CAAAA,EAAsB,KAAA,CACtBpC,CACF,CAAA,CACMwC,CAAAA,CAAkB,IAAA,CAAK,KAAKxB,CAAAA,CAAa,MAAA,CAASsB,CAAK,CAAA,CACvDG,CAAAA,CACJJ,CAAAA,EAA4B,CAAA,CAAQJ,CAAAA,EAAoBC,CAAAA,CAAiB,CAAA,CACrEQ,EAAAA,CAAmB,CAAA,CAAA,WAAA,CACtBC,CAAAA,EAAkB3B,CAAAA,CAAa2B,EAAQL,CAAK,CAAA,EAAG,EAAA,EAAMK,CAAAA,CACtD,CAACL,CAAAA,CAAOtB,CAAY,CACtB,CAAA,CAEM4B,CAAAA,CAAkBC,cAAAA,CAAe,CACrC,KAAA,CAAOR,CAAAA,CAA2BG,EAAkB,CAAA,CACpD,OAAA,CAASC,CAAAA,CACT,YAAA,CAAc,IAAML,CAAAA,EAAsB,kBAAA,EAAsB,GAAA,CAChE,UAAA,CAAAM,EAAAA,CACA,gBAAA,CAAkB,IAAMT,CAAAA,CACxB,QAAA,CAAUG,GAAsB,QAAA,EAAY,CAC9C,CAAC,CAAA,CACKU,EAAAA,CAAkBL,CAAAA,CACpBG,CAAAA,CAAgB,eAAA,EAAgB,CAChC,EAAC,CAECG,CAAAA,CAAiB,CACrBC,CAAAA,CACAC,IAKAC,GAAAA,CAAC/C,CAAAA,CAAA,CACC,IAAA,CAAM6C,CAAAA,CACN,YAAA,CAAcjD,CAAAA,CACd,iBAAA,CAAmBF,CAAAA,CACnB,aAAA,CAAeD,CAAAA,CACf,UAAA,CAAYE,CAAAA,CACZ,UAAA,CAAYsB,EACZ,YAAA,CAAcd,CAAAA,CACd,WAAA,CAAaW,CAAAA,CACb,cAAA,CAAgBf,CAAAA,CAChB,sBAAA,CAAwBqB,CAAAA,CACxB,YAAA,CAAcX,CAAAA,CACd,YAAA,CAAcX,CAAAA,CACd,oBAAA,CAAsBuB,CAAAA,CACtB,mBAAoBf,CAAAA,CACpB,YAAA,CAAcF,CAAAA,CACd,oBAAA,CAAsBkB,CAAAA,CACtB,eAAA,CAAiBd,CAAAA,CACjB,UAAA,CAAYI,CAAAA,CACZ,eAAA,CAAiBV,CAAAA,EAAa,eAAA,CAC9B,cAAA,CAAgBA,CAAAA,EAAa,eAC7B,YAAA,CAAcA,CAAAA,EAAa,YAAA,CAC3B,SAAA,CAAW4C,CAAAA,EAAS,SAAA,CACpB,eAAA,CAAiBA,CAAAA,EAAS,eAAA,CAC1B,MAAA,CAAQ/B,CAAAA,CACV,CAAA,CAGF,OACEiC,IAAAA,CAAC,OACC,GAAA,CAAKnB,CAAAA,CACL,eAAA,CAAc,uBAAA,CACd,SAAA,CAAWoB,GAAAA,CACT,mEAAA,CACA1C,CAAAA,CAAW,8BAAA,CAAiC,QAAA,CAC5CL,CAAAA,EAAa,UAAA,GACVwB,CAAAA,CAAa,UAAA,EAAc,2BAChC,CAAA,CAEA,QAAA,CAAA,CAAAqB,GAAAA,CAAC7B,CAAAA,CAAA,CACC,SAAA,CAAW+B,GAAAA,CACT1C,CAAAA,CAAW,gBAAA,CAAmB,QAAA,CAC9BmB,CAAAA,CAAa,cAAA,CACbD,CACF,CAAA,CAEA,SAAAuB,IAAAA,CAAC,KAAA,CAAA,CACC,eAAA,CAAc,0BAAA,CACd,SAAA,CAAWC,GAAAA,CACT,kCAAA,CACA1C,CAAAA,EAAY,gBAAA,CACZmB,CAAAA,CAAa,YACf,CAAA,CAEC,QAAA,CAAA,CAAAE,CAAAA,CACCL,EACEqB,CAAAA,CAAe,EAAC,CAAG,CACjB,SAAA,CAAW,IAAA,CACX,eAAA,CAAiB5B,CACnB,CAAC,CAAA,CACCsB,CAAAA,CACFS,GAAAA,CAAC,KAAA,CAAA,CACC,eAAA,CAAc,8BACd,KAAA,CAAO,CACL,MAAA,CAAQN,CAAAA,CAAgB,YAAA,EAAa,CACrC,QAAA,CAAU,UAAA,CACV,KAAA,CAAO,MACT,CAAA,CAEC,QAAA,CAAAE,EAAAA,CAAgB,GAAA,CAAKO,GAAe,CACnC,IAAMC,CAAAA,CAAaD,CAAAA,CAAW,KAAA,CAAQf,CAAAA,CAChCU,EAAAA,CAAOhC,CAAAA,CAAa,KAAA,CACxBsC,CAAAA,CACAA,CAAAA,CAAahB,CACf,CAAA,CAEA,OACEY,IAAC,KAAA,CAAA,CAEC,YAAA,CAAYG,CAAAA,CAAW,KAAA,CACvB,GAAA,CAAKT,CAAAA,CAAgB,cAAA,CACrB,KAAA,CAAO,CACL,IAAA,CAAM,CAAA,CACN,QAAA,CAAU,UAAA,CACV,GAAA,CAAK,EACL,SAAA,CAAW,CAAA,WAAA,EAAcS,CAAAA,CAAW,KAAK,CAAA,GAAA,CAAA,CACzC,KAAA,CAAO,MACT,CAAA,CAEC,QAAA,CAAAN,CAAAA,CAAeC,EAAI,CAAA,CAAA,CAXfK,CAAAA,CAAW,GAYlB,CAEJ,CAAC,CAAA,CACH,CAAA,CAEAN,CAAAA,CACE/B,CAAAA,CAAa,KAAA,CACX,CAAA,CACA,IAAA,CAAK,GAAA,CACH,CAAA,CACA,IAAA,CAAK,KAAA,CACHoB,CAAAA,EAAsB,iBAAA,EAAqB,EAC7C,CACF,CACF,CACF,CAAA,CAGFc,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,qDAAA,CACZ,QAAA,CAAA1C,CAAAA,EACC0C,GAAAA,CAAC9C,CAAAA,CAAA,CACC,KAAA,CACEU,EACII,CAAAA,CAAe,mBAAA,CACfA,CAAAA,CAAe,WAAA,CAErB,WAAA,CACEJ,CAAAA,CACII,CAAAA,CAAe,yBAAA,CACfA,CAAAA,CAAe,iBAAA,CAEvB,CAAA,CAEJ,CAAA,CAGDL,CAAAA,EAAgB,OAAA,EAAW,CAACa,CAAAA,CAC3BwB,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,oBAAA,CACb,QAAA,CAAAA,GAAAA,CAAC,KAAA,CAAA,CAAI,GAAA,CAAK5B,CAAAA,CAAa,SAAA,CAAU,YAAA,CAAa,CAAA,CAChD,CAAA,CACE,MACN,CAAA,CACF,CAAA,CACCK,CAAAA,CAAAA,CACH,CAEJ,CAEA,SAASY,EAAAA,CACPgB,CAAAA,CACAvD,CAAAA,CACA,CACA,OAAI,OAAOuD,CAAAA,EAAoB,QAAA,CACtB,KAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAMA,CAAe,CAAC,CAAA,CAG5CA,CAAAA,GAAoB,MAAA,CACf,CAAA,CAGLvD,CAAAA,EAAkBwD,GAAAA,CAAuC,KAAK,CAAA,CACzD,EAELxD,CAAAA,EAAkBwD,GAAAA,CAAuC,EAAA,CACpD,CAAA,CAELxD,CAAAA,EAAkBwD,GAAAA,CAAuC,EAAA,CACpD,CAAA,CAELxD,CAAAA,EAAkBwD,GAAAA,CAAuC,EAAA,CACpD,CAAA,CAEF,CACT","file":"chunk-K7SNDVV2.js","sourcesContent":["import * as React from \"react\";\nimport type { Row } from \"@tanstack/react-table\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { cn } from \"../../lib/utils\";\nimport { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS } from \"../types\";\nimport type { DataTableCardPanelProps } from \"./data-table-card-panel-types\";\nimport { useDataTableScrollViewport } from \"./use-data-table-scroll-viewport\";\n\nexport function DataTableVirtualCardPanel({\n cardClassName,\n cardGridClassName,\n cardSizing,\n cardRenderer,\n containerWidth,\n currentRowSelection,\n currentDetailExpanded,\n DataTableCardView,\n DataTableEmptyState,\n dragAndDrop,\n editableRows,\n editingRowId,\n emptyNode,\n enableRowSelection,\n flexGrow,\n getRowClassName,\n hasCardTitle,\n infiniteScroll,\n localSearchValue,\n onRowClick,\n renderedRows,\n detailPanel,\n resolvedLabels,\n resolvedLoadingRowCount,\n rowActions = [],\n ScrollArea,\n sentinelRef,\n setCurrentDetailExpanded,\n setCurrentRowSelection,\n setEditingRowId,\n shouldRenderInitialLoading,\n stateOverlayNode,\n tableContainerClassName,\n uiClassNames,\n virtualization,\n}: DataTableCardPanelProps) {\n const shouldRenderCards = shouldRenderInitialLoading || renderedRows.length > 0;\n const cardScrollContainerRef = React.useRef(null);\n const { viewportElement, viewportHeight } = useDataTableScrollViewport(\n cardScrollContainerRef,\n shouldRenderCards,\n );\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization.card : undefined;\n const enableCardVirtualization =\n !shouldRenderInitialLoading &&\n renderedRows.length > 0 &&\n virtualizationConfig?.enabled === true;\n const lanes = resolveCardVirtualizationLanes(\n virtualizationConfig?.lanes,\n containerWidth,\n );\n const virtualRowCount = Math.ceil(renderedRows.length / lanes);\n const shouldUseVirtualCardRows =\n enableCardVirtualization && Boolean(viewportElement) && viewportHeight > 0;\n const getItemKey = React.useCallback(\n (index: number) => renderedRows[index * lanes]?.id ?? index,\n [lanes, renderedRows],\n );\n // eslint-disable-next-line react-hooks/incompatible-library -- TanStack Virtual owns its instance functions.\n const cardVirtualizer = useVirtualizer({\n count: enableCardVirtualization ? virtualRowCount : 0,\n enabled: shouldUseVirtualCardRows,\n estimateSize: () => virtualizationConfig?.estimateCardHeight ?? 280,\n getItemKey,\n getScrollElement: () => viewportElement,\n overscan: virtualizationConfig?.overscan ?? 4,\n });\n const virtualCardRows = shouldUseVirtualCardRows\n ? cardVirtualizer.getVirtualItems()\n : [];\n\n const renderCardView = (\n rows: Array>,\n options?: {\n isLoading?: boolean;\n loadingRowCount?: number;\n },\n ) => (\n \n );\n\n return (\n \n \n \n {shouldRenderCards ? (\n shouldRenderInitialLoading ? (\n renderCardView([], {\n isLoading: true,\n loadingRowCount: resolvedLoadingRowCount,\n })\n ) : shouldUseVirtualCardRows ? (\n \n {virtualCardRows.map((virtualRow) => {\n const startIndex = virtualRow.index * lanes;\n const rows = renderedRows.slice(\n startIndex,\n startIndex + lanes,\n );\n\n return (\n \n {renderCardView(rows)}\n \n );\n })}\n \n ) : (\n renderCardView(\n renderedRows.slice(\n 0,\n Math.max(\n 1,\n Math.floor(\n virtualizationConfig?.fallbackCardCount ?? 12,\n ),\n ),\n ),\n )\n )\n ) : (\n
    \n {emptyNode ?? (\n \n )}\n
    \n )}\n\n {infiniteScroll?.enabled && !shouldRenderInitialLoading ? (\n
    \n
    \n
    \n ) : null}\n
    \n \n {stateOverlayNode}\n \n );\n}\n\nfunction resolveCardVirtualizationLanes(\n configuredLanes: number | \"auto\" | undefined,\n containerWidth: number,\n) {\n if (typeof configuredLanes === \"number\") {\n return Math.max(1, Math.floor(configuredLanes));\n }\n\n if (configuredLanes !== \"auto\") {\n return 1;\n }\n\n if (containerWidth >= DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS[\"2xl\"]) {\n return 5;\n }\n if (containerWidth >= DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS.xl) {\n return 4;\n }\n if (containerWidth >= DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS.lg) {\n return 3;\n }\n if (containerWidth >= DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS.sm) {\n return 2;\n }\n return 1;\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-KDHJA6AH.js b/dist/chunk-O6MUTKGE.js similarity index 50% rename from dist/chunk-KDHJA6AH.js rename to dist/chunk-O6MUTKGE.js index 4c8aea8..bdbb31a 100644 --- a/dist/chunk-KDHJA6AH.js +++ b/dist/chunk-O6MUTKGE.js @@ -1,2 +1,2 @@ -var i={sm:640,md:768,lg:1024,xl:1280,"2xl":1536};function l(e,a,t){return !a||t?true:!a.getIsHidden(e)}function s(e,a){return typeof e=="function"?e(a):e}function d(e,a){return !e.hidden?.(a)}function b(e,a){return e?.canEditRow?e.canEditRow(a):!!e}function n(e){switch(e){case "center":return "text-center";case "end":return "text-right";default:return "text-left"}}function o(e,a){return e||(a==="numeric"?"end":"start")}function g(e){let a=e.column.columnDef.meta;return n(o(a?.align,a?.type))}function p(e){let a=e.column.columnDef.meta;return n(o(a?.align,a?.type))}function T(e){return e?(Array.isArray(e)?e:[e]).map(t=>`dt-hide-on-${t}`).join(" "):void 0}function u(e,a){return !e||a<=0?false:(Array.isArray(e)?e:[e]).some(r=>a`dt-hide-on-${t}`).join(" "):void 0}function u(e,a){return !e||a<=0?false:(Array.isArray(e)?e:[e]).some(i=>a;\n\n/** A stable grid coordinate used for cell and rectangular range selection. */\nexport type DataTableCellCoordinate = {\n rowId: string;\n columnId: string;\n};\n\n/** The two corners of a cell selection. A single-cell selection has equal corners. */\nexport type DataTableCellSelection = {\n anchor: DataTableCellCoordinate;\n focus: DataTableCellCoordinate;\n};\n\nexport type DataTableGridCommandContext = {\n table: TanStackTable;\n cellSelection: DataTableCellSelection | null;\n};\n\n/** Commands are delegated to the application; the table never records app data. */\nexport type DataTableGridCommands = {\n undo?: (context: DataTableGridCommandContext) => void | Promise;\n redo?: (context: DataTableGridCommandContext) => void | Promise;\n};\n\nexport type DataTableAlign = \"start\" | \"center\" | \"end\";\nexport type DataTableColumnType = \"text\" | \"numeric\" | \"date\";\nexport type DataTableColumnFixed = \"left\" | \"right\";\nexport type DataTableContainerBreakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type DataTableDensity = \"compact\" | \"comfortable\" | \"spacious\";\nexport type DataTableCardSizing = \"fixed\" | \"content\" | \"fluid\";\nexport type DataTableCellOverflow =\n | \"truncate\"\n | \"clip\"\n | \"wrap\"\n | \"visible\";\nexport type DataTableColumnFilterType =\n | \"text\"\n | \"select\"\n | \"multi\"\n | \"faceted\"\n | \"boolean\"\n | \"numberRange\"\n | \"dateRange\";\nexport type DataTableColumnFilterOperator =\n | \"contains\"\n | \"equals\"\n | \"startsWith\"\n | \"endsWith\";\nexport type DataTableCsvExportScope =\n | \"filtered\"\n | \"page\"\n | \"selected\"\n | \"all\";\nexport type DataTableClipboardCopyScope =\n | DataTableCsvExportScope\n | \"cellSelection\";\nexport type DataTableClipboardCopyOptions = {\n includeHeaders?: boolean;\n columns?: Array;\n scope?: DataTableClipboardCopyScope;\n /** Defaults to tab-separated text. */\n delimiter?: \"\\t\" | \",\";\n escapeFormulaValues?: boolean;\n getCellValue?: (context: {\n row: TData;\n rowId: string;\n columnId: string;\n value: unknown;\n }) => unknown;\n /** Host-owned clipboard delivery for non-browser or permission-managed apps. */\n onCopy?: (context: {\n text: string;\n rows: Array;\n scope: DataTableClipboardCopyScope;\n }) => void | Promise;\n};\nexport type DataTableClipboardPasteContext = {\n text: string;\n values: Array>;\n table: TanStackTable;\n};\nexport type DataTableClipboardConfig = {\n copy?: boolean | DataTableClipboardCopyOptions;\n paste?: {\n enabled?: boolean;\n preventDefault?: boolean;\n onPaste: (\n context: DataTableClipboardPasteContext,\n ) => void | Promise;\n };\n};\nexport type DataTableActionErrorSource =\n | \"toolbarAction\"\n | \"selectionAction\"\n | \"rowAction\"\n | \"rowClick\"\n | \"edit\"\n | \"undo\"\n | \"redo\"\n | \"clipboardCopy\"\n | \"clipboardPaste\"\n | \"fileUpload\"\n | \"infiniteScroll\"\n | \"retry\";\n\nexport const DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS: Record<\n DataTableContainerBreakpoint,\n number\n> = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n \"2xl\": 1536,\n};\n\nexport type DataTableRowLoadingState = {\n isLoading: boolean;\n skeleton?: React.ReactNode;\n};\n\nexport type DataTableLoadingState = {\n isLoading: boolean;\n loadingRowCount?: number;\n};\n\nexport type DataTableAutoPageSizeConfig = {\n minRows?: number;\n maxRows?: number;\n estimateRowHeight?: number;\n};\n\nexport type DataTableStateOverlayContext = {\n rows: Array;\n toolbarQueryValue: string;\n error: unknown;\n isRetrying: boolean;\n retry: (() => void | Promise) | undefined;\n};\n\nexport type DataTableStateOverlay = {\n empty?:\n | React.ReactNode\n | ((context: DataTableEmptyStateContext) => React.ReactNode);\n error?: unknown;\n isRetrying?: boolean;\n onRetry?: () => void | Promise;\n renderError?: (\n context: DataTableStateOverlayContext,\n ) => React.ReactNode;\n};\n\nexport type DataTableCellEditRenderProps = {\n cell: CellContext;\n row: TData;\n value: TValue | undefined;\n draftValue: unknown;\n setDraftValue: (value: unknown) => void;\n error?: string;\n isDirty: boolean;\n isPending: boolean;\n};\n\nexport type DataTableColumnFilterOption = {\n label: string;\n value: string;\n /** Number of matching records. Omit when the count is not known. */\n count?: number;\n disabled?: boolean;\n};\n\nexport type DataTableFacetedFilterOptions = {\n /**\n * Server-provided facet values. When supplied, these take precedence over\n * locally calculated unique values and their counts.\n */\n options?:\n | Array\n | ((context: { rows: Array }) => Array);\n /** Render a readable label for values discovered from the local row model. */\n getOptionLabel?: (value: TValue | undefined) => string;\n /** Enables an in-menu search input. Defaults to true. */\n searchable?: boolean;\n searchPlaceholder?: string;\n};\n\nexport type DataTableColumnFilterRangeValue = {\n from?: TValue;\n to?: TValue;\n};\n\nexport type DataTableColumnFilterConfig = {\n type: DataTableColumnFilterType;\n label?: string;\n placeholder?: string;\n options?:\n | Array\n | ((context: { rows: Array }) => Array);\n getOptionValue?: (value: TValue | undefined, row: TData) => string;\n /** Settings for `type: \"faceted\"`, including server-provided facet data. */\n faceting?: DataTableFacetedFilterOptions;\n operator?: DataTableColumnFilterOperator;\n trueLabel?: string;\n falseLabel?: string;\n min?: number | string;\n max?: number | string;\n step?: number;\n};\n\nexport type DataTableColumnMeta = {\n type?: DataTableColumnType;\n fixed?: DataTableColumnFixed;\n cardTitle?: boolean;\n hideOn?: DataTableContainerBreakpoint | Array;\n minWidth?: number;\n align?: DataTableAlign;\n overflow?:\n | DataTableCellOverflow\n | ((args: {\n row: TData;\n value: TValue | undefined;\n }) => DataTableCellOverflow | undefined);\n headerClassName?: string;\n headerStyle?: React.CSSProperties;\n cellClassName?:\n | string\n | ((args: { row: TData; value: TValue | undefined }) => string | undefined);\n responsiveClassName?: string;\n skeleton?: (context: CellContext) => React.ReactNode;\n filter?: DataTableColumnFilterConfig;\n parseEditValue?: (value: unknown, context: CellContext) => unknown;\n formatEditValue?: (\n value: unknown,\n context: CellContext,\n ) => string;\n renderEditCell?: (\n props: DataTableCellEditRenderProps,\n ) => React.ReactNode;\n};\n\nexport type DataTableColumnDef = ColumnDef<\n TData,\n TValue\n> & {\n meta?: DataTableColumnMeta;\n columns?: Array>;\n};\n\nexport type DataTableColumnGroupDef = DataTableColumnDef<\n TData,\n unknown\n> & {\n id: string;\n columns: Array>;\n /**\n * A concise explanation of the columns in this group. It is exposed as an\n * accessible description and native tooltip on the shared header.\n */\n description?: string;\n /**\n * Allows leaves to cross this group's boundary during column reordering.\n * Groups are locked by default so a shared heading remains intact.\n */\n freeReordering?: boolean;\n /** Additional class name for this shared group header. */\n headerClassName?: string;\n /** Additional inline styles for this shared group header. */\n headerStyle?: React.CSSProperties;\n /** Height for this shared group header, overriding `columnGroupHeaderHeight`. */\n headerHeight?: React.CSSProperties[\"height\"];\n};\n\nexport type DataTableToolbarAction = {\n key: string;\n label: string;\n icon?: React.ComponentType<{ className?: string }>;\n iconOnly?: boolean;\n placement?: \"primary\" | \"trailing\";\n onClick: (context: {\n rows: Array;\n openFileDialog?: () => void;\n }) => void | Promise;\n variant?: \"default\" | \"secondary\" | \"outline\" | \"ghost\" | \"destructive\";\n disabled?: boolean;\n};\n\nexport type DataTableSelectionActionContext = {\n /** Selected row objects that are present in the currently loaded data. */\n rows: Array;\n /** Every selected row id, including ids retained across server pages. */\n rowIds: Array;\n};\n\nexport type DataTableSelectionAction = {\n key: string;\n label: string;\n icon?: React.ComponentType<{ className?: string }>;\n iconOnly?: boolean;\n onClick: (context: DataTableSelectionActionContext) => void | Promise;\n variant?: \"default\" | \"secondary\" | \"outline\" | \"ghost\" | \"destructive\";\n disabled?:\n | boolean\n | ((\n rows: Array,\n context: DataTableSelectionActionContext,\n ) => boolean);\n};\n\nexport type DataTableRowAction = {\n key: string;\n label: string | ((row: TData) => string);\n icon?: React.ComponentType<{ className?: string }>;\n onClick: (row: TData) => void | Promise;\n variant?: \"default\" | \"secondary\" | \"destructive\";\n hidden?: (row: TData) => boolean;\n disabled?: (row: TData) => boolean;\n};\n\nexport type DataTableColumnVisibilityOption = {\n id: string;\n label: string;\n visible: boolean;\n canHide: boolean;\n pinned?: false | DataTableColumnFixed;\n};\n\nexport type DataTableToolbarVisibility = {\n title?: boolean;\n search?: boolean;\n actions?: boolean;\n trailingActions?: boolean;\n options?: boolean;\n viewToggle?: boolean;\n customToolbar?: boolean;\n};\n\n/** Optional toolbar controls for working with the current table layout and views. */\nexport type DataTableToolbarDataOperations = {\n /** Search, bulk show/hide, pin, and keyboard-accessible column move controls. */\n columnChooser?: boolean;\n /** Create, apply, rename, and delete saved views when `savedViews` is configured. */\n savedViews?: boolean;\n /** Adds a reset-layout action using the table's initial layout. */\n resetLayout?: boolean;\n};\n\nexport type DataTableCardRendererProps = {\n row: TData;\n rowId: string;\n depth: number;\n canExpandSubRows: boolean;\n isSubRowsExpanded: boolean;\n toggleSubRowsExpanded: () => void;\n isSelected: boolean;\n onSelectedChange: (nextValue: boolean) => void;\n actions: Array>;\n isEditing: boolean;\n startEditing: () => void;\n cancelEditing: () => void;\n};\n\nexport type DataTableEditableRowsConfig = {\n canEditRow?: (row: TData) => boolean;\n getInitialValues?: (row: TData) => Record;\n validateRow?: (\n row: TData,\n draftValues: Record,\n ) =>\n | void\n | string\n | Record\n | Promise>;\n /** Apply an optimistic host update and optionally return a rollback callback. */\n onOptimisticUpdate?: (\n row: TData,\n draftValues: Record,\n ) => void | (() => void);\n onSaveRow: (\n row: TData,\n draftValues: Record,\n ) => void | Promise;\n onSaveSuccess?: (\n row: TData,\n draftValues: Record,\n ) => void;\n onSaveError?: (\n error: unknown,\n row: TData,\n draftValues: Record,\n ) => void;\n /** Defaults to true for inputs owned by the table. */\n commitOnEnter?: boolean;\n /** Defaults to true for inputs owned by the table. */\n cancelOnEscape?: boolean;\n};\n\nexport type DataTableInfiniteScroll = {\n enabled: boolean;\n hasMore: boolean;\n isLoadingMore?: boolean;\n onLoadMore: () => void | Promise;\n};\n\nexport type DataTableHiddenRowsConfig = {\n getIsHidden: (row: TData) => boolean;\n label?: string;\n};\n\nexport type DataTableEmptyStateContext = {\n rows: Array;\n toolbarQueryValue: string;\n};\n\nexport type DataTableDragAndDropConfig = {\n isDragging?: boolean;\n onDragEnter?: React.DragEventHandler;\n onDragOver?: React.DragEventHandler;\n onDragLeave?: React.DragEventHandler;\n onDrop?: React.DragEventHandler;\n getRowDraggable?: (row: TData) => boolean;\n onRowDragStart?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n onRowDragEnd?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n};\n\nexport type DataTableFileUploadConfig = {\n accept?: string;\n disabled?: boolean;\n multiple?: boolean;\n onFilesSelected: (files: FileList | Array) => void | Promise;\n};\n\nexport type DataTableVirtualizationConfig = {\n enabled?: boolean;\n estimateRowHeight?: number;\n fallbackRowCount?: number;\n overscan?: number;\n card?: DataTableCardVirtualizationConfig;\n};\n\nexport type DataTableCardVirtualizationConfig = {\n enabled?: boolean;\n estimateCardHeight?: number;\n fallbackCardCount?: number;\n overscan?: number;\n lanes?: number | \"auto\";\n};\n\nexport type DataTableExpandedRowProps = {\n row: TData;\n rowId: string;\n tableRow: Row;\n};\n\n/** A separately controlled application detail panel rendered beneath a row. */\nexport type DataTableDetailPanel = {\n expanded?: ExpandedState;\n onExpandedChange?: (expanded: ExpandedState) => void;\n getRowCanExpand?: (row: TData) => boolean;\n render: (props: DataTableExpandedRowProps) => React.ReactNode;\n};\n\nexport type DataTableCsvExportOptions = {\n filename?: string;\n includeHeaders?: boolean;\n columns?: Array;\n scope?: DataTableCsvExportScope;\n escapeFormulaValues?: boolean;\n lineEnding?: \"\\n\" | \"\\r\\n\";\n getCellValue?: (context: {\n row: TData;\n rowId: string;\n columnId: string;\n value: unknown;\n }) => unknown;\n onExport?: (context: {\n csv: string;\n filename: string;\n rows: Array;\n scope: DataTableCsvExportScope;\n }) => void | Promise;\n};\n\nexport type DataTableActionErrorContext = {\n source: DataTableActionErrorSource;\n error: unknown;\n actionKey?: string;\n row?: TData;\n};\n\nexport type DataTableColumnPrefs = {\n visibility?: VisibilityState;\n sizing?: Record;\n order?: ColumnOrderState;\n pinning?: ColumnPinningState;\n rowPinning?: RowPinningState;\n density?: DataTableDensity;\n};\n\nexport type DataTablePersistenceSlice = keyof DataTableColumnPrefs;\n\nexport type DataTablePersistenceStorage = Pick<\n Storage,\n \"getItem\" | \"setItem\" | \"removeItem\"\n>;\n\nexport type DataTablePersistenceOperation =\n | \"read\"\n | \"write\"\n | \"remove\"\n | \"serialize\"\n | \"deserialize\"\n | \"migrate\";\n\nexport type DataTablePersistencePayload = {\n version: string | number;\n state: DataTableColumnPrefs;\n};\n\nexport type DataTablePersistenceConfig = {\n key: string;\n version?: string | number;\n slices?: Array;\n storage?: DataTablePersistenceStorage;\n serialize?: (payload: DataTablePersistencePayload) => string;\n deserialize?: (value: string) => unknown;\n migrate?: (\n payload: { version: unknown; state: unknown },\n targetVersion: string | number,\n ) => DataTableColumnPrefs | undefined;\n debounceMs?: number;\n onError?: (context: {\n error: unknown;\n operation: DataTablePersistenceOperation;\n }) => void;\n};\n\nexport type DataTableState = {\n sorting: SortingState;\n pagination: PaginationState;\n rowSelection: Record;\n columnVisibility: VisibilityState;\n columnFilters: ColumnFiltersState;\n expanded: ExpandedState;\n columnOrder: ColumnOrderState;\n columnPinning: ColumnPinningState;\n rowPinning: RowPinningState;\n columnSizing: ColumnSizingState;\n /** Present in snapshots produced by 4.4+; optional for 4.x object-literal compatibility. */\n grouping?: GroupingState;\n density: DataTableDensity;\n viewMode: DataTableViewMode;\n showHiddenRows: boolean;\n globalFilter: string;\n};\n\nexport type DataTableInitialState = Partial;\n\nexport type DataTableSavedViewSlice = keyof DataTableState;\n\nexport type DataTableSavedView = {\n id: string;\n name: string;\n createdAt: string;\n updatedAt: string;\n state: Partial;\n};\n\nexport type DataTableSavedViewsPayload = {\n version: string | number;\n views: Array;\n};\n\nexport type DataTableSavedViewsChangeOperation =\n | \"create\"\n | \"rename\"\n | \"delete\"\n | \"clear\";\n\nexport type DataTableSavedViewsConfig = {\n key: string;\n version?: string | number;\n slices?: Array;\n storage?: DataTablePersistenceStorage;\n serialize?: (payload: DataTableSavedViewsPayload) => string;\n deserialize?: (value: string) => unknown;\n migrate?: (\n payload: { version: unknown; views: unknown },\n targetVersion: string | number,\n ) => Array | undefined;\n onChange?: (\n views: Array,\n operation: DataTableSavedViewsChangeOperation,\n ) => void;\n onApply?: (view: DataTableSavedView) => void;\n onError?: (context: {\n error: unknown;\n operation: DataTablePersistenceOperation;\n }) => void;\n};\n\nexport type DataTableResetOptions = {\n clearPersistence?: boolean;\n};\n\nexport type DataTableApi = {\n getTable: () => TanStackTable | null;\n getState: () => DataTableState;\n snapshot: () => DataTableState;\n restore: (state: Partial) => void;\n resetColumnLayout: (options?: DataTableResetOptions) => void;\n resetState: (options?: DataTableResetOptions) => void;\n clearPersistedState: () => boolean;\n getSavedViews: () => Array;\n createSavedView: (name: string) => DataTableSavedView | undefined;\n applySavedView: (id: string) => boolean;\n renameSavedView: (\n id: string,\n name: string,\n ) => DataTableSavedView | undefined;\n deleteSavedView: (id: string) => boolean;\n clearSavedViews: () => boolean;\n pinRow: (rowId: string, position?: \"top\" | \"bottom\") => boolean;\n unpinRow: (rowId: string) => boolean;\n focus: () => void;\n scrollToRow: (rowId: string) => boolean;\n scrollToColumn: (columnId: string) => boolean;\n exportCsv: (\n options?: boolean | DataTableCsvExportOptions,\n ) => Promise;\n copyToClipboard: (\n options?: boolean | DataTableClipboardCopyOptions,\n ) => Promise;\n getCellSelection: () => DataTableCellSelection | null;\n setCellSelection: (selection: DataTableCellSelection | null) => void;\n clearCellSelection: () => void;\n print: () => boolean;\n toggleFullscreen: () => Promise;\n};\n\nexport type DataTableLabels = {\n searchPlaceholder: string;\n searchTable: string;\n clearSearch: string;\n noRowsTitle: string;\n noRowsDescription: string;\n noMatchingRowsTitle: string;\n noMatchingRowsDescription: string;\n tableOptions: string;\n columns: string;\n filters: string;\n clearFilters: string;\n filterFrom?: string;\n filterTo?: string;\n filterTrue?: string;\n filterFalse?: string;\n selectedRows: (count: number) => string;\n showHiddenRows: (label: string) => string;\n recordsPerPage: string;\n totalRecords: (count: number) => string;\n pageStatus: (pageIndex: number, pageCount: number) => string;\n pageStatusUnknown?: (pageIndex: number) => string;\n pagination?: string;\n morePages?: string;\n firstPage: string;\n previousPage: string;\n nextPage: string;\n lastPage: string;\n selectAllVisibleRows?: string;\n selectAllFilteredRows?: string;\n selectRow?: string;\n selectCardRow?: (rowId: string) => string;\n switchToTableView?: string;\n switchToCardView?: string;\n tableView?: string;\n cardView?: string;\n allFilterOptions?: string;\n actions: string;\n rowActions: string;\n editRow: string;\n saveEdit: string;\n cancelEdit: string;\n expandRow: string;\n collapseRow: string;\n expandRowDetails?: string;\n collapseRowDetails?: string;\n exportCsv: string;\n print?: string;\n enterFullscreen?: string;\n exitFullscreen?: string;\n errorTitle?: string;\n errorDescription?: string;\n retry?: string;\n density: string;\n compactDensity: string;\n comfortableDensity: string;\n spaciousDensity: string;\n pinLeft: string;\n pinRight: string;\n unpin: string;\n pinRowToTop: string;\n pinRowToBottom: string;\n unpinRow: string;\n resizeColumn: (columnLabel: string) => string;\n grouping?: string;\n groupBy?: (columnLabel: string) => string;\n ungroup?: (columnLabel: string) => string;\n removeGrouping?: (columnLabel: string) => string;\n moveGroupingEarlier?: (columnLabel: string) => string;\n moveGroupingLater?: (columnLabel: string) => string;\n facetSearch?: (columnLabel: string) => string;\n searchColumns?: string;\n showAllColumns?: string;\n hideAllColumns?: string;\n moveColumnEarlier?: (columnLabel: string) => string;\n moveColumnLater?: (columnLabel: string) => string;\n resetColumnLayout?: string;\n savedViews?: string;\n createSavedView?: string;\n savedViewName?: string;\n applySavedView?: (name: string) => string;\n renameSavedView?: (name: string) => string;\n deleteSavedView?: (name: string) => string;\n saveSavedView?: string;\n};\n\nexport type DataTableSummaryRow = {\n key: string;\n label?: React.ReactNode;\n cells: Record<\n string,\n React.ReactNode | ((context: { rows: Array; columnId: string }) => React.ReactNode)\n >;\n};\n\nexport type DataTableRowClassNameContext = {\n row: TData;\n rowId: string;\n rowIndex: number;\n isEditing: boolean;\n isExpanded: boolean;\n isLoading: boolean;\n isSelected: boolean;\n pinnedPosition: false | \"top\" | \"bottom\";\n};\n\nexport type DataTableProps = {\n columns: Array>;\n data: Array;\n getRowId: (row: TData, index: number) => string;\n children?: React.ReactNode;\n title?: string;\n description?: string;\n toolbarQueryValue?: string;\n onToolbarQueryValueChange?: (value: string) => void;\n toolbarQueryPlaceholder?: string;\n toolbarQueryDebounceMs?: number;\n manualFiltering?: boolean;\n enableToolbarQueryFiltering?: boolean;\n globalFilterFn?: FilterFnOption;\n columnFilters?: ColumnFiltersState;\n onColumnFiltersChange?: (filters: ColumnFiltersState) => void;\n enableColumnFilters?: boolean;\n customToolbar?: React.ReactNode;\n compactToolbar?: React.ReactNode;\n rowsPerPageOptions?: Array;\n totalRowCount?: number;\n hasNextPage?: boolean;\n sorting?: SortingState;\n onSortingChange?: (sorting: SortingState) => void;\n manualSorting?: boolean;\n grouping?: GroupingState;\n onGroupingChange?: (grouping: GroupingState) => void;\n /** Use rows already grouped by the server instead of TanStack's grouping model. */\n manualGrouping?: boolean;\n /** Show group/ungroup controls in the table options menu and grouping bar. */\n enableGrouping?: boolean;\n /** Controls whether grouped columns are reordered, removed, or left in place. */\n groupedColumnMode?: false | \"reorder\" | \"remove\";\n /** Named aggregation functions available to column `aggregationFn` definitions. */\n aggregationFns?: Record>;\n pageIndex?: number;\n pageSize?: number;\n /** Sizes an opt-in page from the measurable table scroll viewport. */\n autoPageSize?: boolean | DataTableAutoPageSizeConfig;\n onPageIndexChange?: (pageIndex: number) => void;\n onPageSizeChange?: (pageSize: number) => void;\n pageCount?: number;\n manualPagination?: boolean;\n rowSelection?: Record;\n onRowSelectionChange?: (rowSelection: Record) => void;\n enableRowSelection?: boolean;\n /** Allows multiple selected rows globally or per row. Defaults to true. */\n enableMultiRowSelection?: boolean | ((row: TData) => boolean);\n /** Cascades parent selection to sub-rows globally or per row. Defaults to true. */\n enableSubRowSelection?: boolean | ((row: TData) => boolean);\n /** Prevents individual rows from being selected. */\n getRowCanSelect?: (row: TData) => boolean;\n /** Select-all affects the current page or all loaded filtered rows. */\n rowSelectionSelectAllScope?: \"page\" | \"filtered\";\n expanded?: ExpandedState;\n onExpandedChange?: (expanded: ExpandedState) => void;\n /** Resolve nested records for tree expansion. */\n getSubRows?: (row: TData, index: number) => Array | undefined;\n /** Keep expansion state controlled by the host; useful for server-loaded children. */\n manualExpanding?: boolean;\n /** Keep child rows with their parent when paginating. Defaults to TanStack's behavior. */\n paginateExpandedRows?: boolean;\n /** Include parents when a descendant matches a filter. */\n filterFromLeafRows?: boolean;\n /** Limit descendant traversal while filtering. */\n maxLeafRowFilterDepth?: number;\n /** New, independently controlled detail-panel contract. */\n detailPanel?: DataTableDetailPanel;\n getRowCanExpand?: (row: TData) => boolean;\n /** @deprecated Use `detailPanel={{ render }}`. Kept as a detail-panel bridge. */\n renderExpandedRow?: (\n props: DataTableExpandedRowProps,\n ) => React.ReactNode;\n columnOrder?: ColumnOrderState;\n onColumnOrderChange?: (columnOrder: ColumnOrderState) => void;\n enableColumnReordering?: boolean;\n /** Default height for shared column-group header cells. */\n columnGroupHeaderHeight?: React.CSSProperties[\"height\"];\n columnPinning?: ColumnPinningState;\n onColumnPinningChange?: (columnPinning: ColumnPinningState) => void;\n enableColumnPinning?: boolean;\n rowPinning?: RowPinningState;\n onRowPinningChange?: (rowPinning: RowPinningState) => void;\n /** Enables row actions that pin a row to the top or bottom of the table. */\n enableRowPinning?: boolean | ((row: TData) => boolean);\n /** Keep pinned rows visible when filtering or paginating them out. */\n keepPinnedRows?: boolean;\n toolbarActions?: Array>;\n selectionActions?: Array>;\n rowActions?: Array>;\n csvExport?: boolean | DataTableCsvExportOptions;\n /** Opt-in TSV/CSV copy and application-owned paste handling. */\n clipboard?: DataTableClipboardConfig;\n /** Enables pointer and Shift+keyboard rectangular cell selection in grid mode. */\n enableCellSelection?: boolean;\n /** Controlled cell/range selection. Supplying a value also enables it in grid mode. */\n cellSelection?: DataTableCellSelection | null;\n /** Initial cell/range selection when uncontrolled. */\n defaultCellSelection?: DataTableCellSelection | null;\n onCellSelectionChange?: (selection: DataTableCellSelection | null) => void;\n /** Host-owned undo/redo commands invoked by Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z. */\n gridCommands?: DataTableGridCommands;\n density?: DataTableDensity;\n onDensityChange?: (density: DataTableDensity) => void;\n enableDensityToggle?: boolean;\n columnPrefsKey?: string;\n persistence?: DataTablePersistenceConfig;\n savedViews?: DataTableSavedViewsConfig;\n initialState?: DataTableInitialState;\n state?: Partial;\n onStateChange?: (updater: Updater) => void;\n apiRef?: React.Ref>;\n labels?: Partial;\n summaryRows?: Array>;\n cardRenderer?: (props: DataTableCardRendererProps) => React.ReactNode;\n cardSizing?: DataTableCardSizing;\n cardGridClassName?: string;\n cardClassName?: string;\n viewMode?: DataTableViewMode;\n onViewModeChange?: (viewMode: DataTableViewMode) => void;\n enableViewToggle?: boolean;\n enablePrint?: boolean;\n enableFullscreen?: boolean;\n emptyState?:\n | React.ReactNode\n | ((context: DataTableEmptyStateContext) => React.ReactNode);\n /** Explicit empty/error/retry rendering contract. */\n stateOverlay?: DataTableStateOverlay;\n isLoading?: boolean;\n loadingRowCount?: number;\n getRowLoadingState?: (\n row: TData,\n index: number,\n ) => boolean | DataTableRowLoadingState;\n hiddenRows?: DataTableHiddenRowsConfig;\n showHiddenRows?: boolean;\n onShowHiddenRowsChange?: (showHiddenRows: boolean) => void;\n infiniteScroll?: DataTableInfiniteScroll;\n editableRows?: DataTableEditableRowsConfig;\n columnVisibility?: VisibilityState;\n onColumnVisibilityChange?: (visibility: VisibilityState) => void;\n columnSizing?: ColumnSizingState;\n onColumnSizingChange?: (sizing: ColumnSizingState) => void;\n enableColumnResizing?: boolean;\n columnResizeMode?: \"onChange\" | \"onEnd\";\n layoutMode?: \"fill\" | \"fit\";\n stickyHeader?: boolean;\n showFooter?: boolean;\n showToolbar?: boolean;\n dir?: \"ltr\" | \"rtl\";\n flexGrow?: boolean;\n toolbarVisibility?: DataTableToolbarVisibility;\n /** Opts into enhanced layout and saved-view toolbar controls. */\n toolbarDataOperations?: boolean | DataTableToolbarDataOperations;\n className?: string;\n tableClassName?: string;\n tableContainerClassName?: string;\n stripedRows?: boolean;\n getRowClassName?: (\n row: TData,\n context: DataTableRowClassNameContext,\n ) => string | undefined;\n onRowClick?: (context: { row: TData; rowId: string }) => void | Promise;\n onActionError?: (context: DataTableActionErrorContext) => void;\n dragAndDrop?: DataTableDragAndDropConfig;\n fileUpload?: DataTableFileUploadConfig;\n virtualization?: boolean | DataTableVirtualizationConfig;\n /** Opt in to ARIA grid semantics and roving keyboard navigation. */\n accessibility?: DataTableAccessibilityOptions;\n /** Shorthand for `accessibility={{ mode: \"grid\" }}`. */\n interactiveGrid?: boolean | DataTableInteractiveGridOptions;\n};\n\nexport function isRowVisible(\n row: TData,\n hiddenRows: DataTableHiddenRowsConfig | undefined,\n showHiddenRows: boolean,\n) {\n if (!hiddenRows) {\n return true;\n }\n\n if (showHiddenRows) {\n return true;\n }\n\n return !hiddenRows.getIsHidden(row);\n}\n\nexport function resolveRowActionLabel(\n label: DataTableRowAction[\"label\"],\n row: TData,\n) {\n return typeof label === \"function\" ? label(row) : label;\n}\n\nexport function canUseRowAction(\n action: DataTableRowAction,\n row: TData,\n) {\n return !action.hidden?.(row);\n}\n\nexport function canEditRow(\n editableRows: DataTableEditableRowsConfig | undefined,\n row: TData,\n) {\n return editableRows?.canEditRow\n ? editableRows.canEditRow(row)\n : Boolean(editableRows);\n}\n\nexport function alignClassName(align: DataTableAlign | undefined) {\n switch (align) {\n case \"center\":\n return \"text-center\";\n case \"end\":\n return \"text-right\";\n default:\n return \"text-left\";\n }\n}\n\nexport function resolveColumnAlign(\n align: DataTableAlign | undefined,\n type: DataTableColumnType | undefined,\n) {\n if (align) {\n return align;\n }\n\n if (type === \"numeric\") {\n return \"end\";\n }\n\n return \"start\";\n}\n\nexport function headerAlignClassName(\n context: HeaderContext,\n) {\n const meta = (context.column.columnDef as DataTableColumnDef)\n .meta;\n return alignClassName(resolveColumnAlign(meta?.align, meta?.type));\n}\n\nexport function cellAlignClassName(\n context: CellContext,\n) {\n const meta = (context.column.columnDef as DataTableColumnDef)\n .meta;\n return alignClassName(resolveColumnAlign(meta?.align, meta?.type));\n}\n\nexport function hideOnClassName(\n hideOn:\n | DataTableContainerBreakpoint\n | Array\n | undefined,\n) {\n if (!hideOn) {\n return undefined;\n }\n\n const values = Array.isArray(hideOn) ? hideOn : [hideOn];\n return values.map((value) => `dt-hide-on-${value}`).join(\" \");\n}\n\nexport function isHiddenAtContainerWidth(\n hideOn:\n | DataTableContainerBreakpoint\n | Array\n | undefined,\n containerWidth: number,\n) {\n if (!hideOn || containerWidth <= 0) {\n return false;\n }\n\n const values = Array.isArray(hideOn) ? hideOn : [hideOn];\n return values.some(\n (value) => containerWidth < DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS[value],\n );\n}\n\nexport function rowSelectionStateFromRows(rows: Array>) {\n return rows.map((row) => row.original);\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/core/types.ts"],"names":["DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS","isRowVisible","row","hiddenRows","showHiddenRows","resolveRowActionLabel","label","canUseRowAction","action","canEditRow","editableRows","alignClassName","align","resolveColumnAlign","type","headerAlignClassName","context","meta","cellAlignClassName","hideOnClassName","hideOn","value","isHiddenAtContainerWidth","containerWidth"],"mappings":"AAiJO,IAAMA,CAAAA,CAGT,CACF,EAAA,CAAI,GAAA,CACJ,GAAI,GAAA,CACJ,EAAA,CAAI,KACJ,EAAA,CAAI,IAAA,CACJ,MAAO,IACT,EAozBO,SAASC,CAAAA,CACdC,CAAAA,CACAC,EACAC,CAAAA,CACA,CAKA,OAJI,CAACD,CAAAA,EAIDC,EACK,IAAA,CAGF,CAACD,EAAW,WAAA,CAAYD,CAAG,CACpC,CAEO,SAASG,EACdC,CAAAA,CACAJ,CAAAA,CACA,CACA,OAAO,OAAOI,GAAU,UAAA,CAAaA,CAAAA,CAAMJ,CAAG,CAAA,CAAII,CACpD,CAEO,SAASC,CAAAA,CACdC,CAAAA,CACAN,EACA,CACA,OAAO,CAACM,CAAAA,CAAO,MAAA,GAASN,CAAG,CAC7B,CAEO,SAASO,CAAAA,CACdC,CAAAA,CACAR,EACA,CACA,OAAOQ,GAAc,UAAA,CACjBA,CAAAA,CAAa,WAAWR,CAAG,CAAA,CAC3B,EAAQQ,CACd,CAEO,SAASC,CAAAA,CAAeC,CAAAA,CAAmC,CAChE,OAAQA,CAAAA,EACN,KAAK,QAAA,CACH,OAAO,aAAA,CACT,KAAK,MACH,OAAO,YAAA,CACT,QACE,OAAO,WACX,CACF,CAEO,SAASC,CAAAA,CACdD,CAAAA,CACAE,CAAAA,CACA,CACA,OAAIF,CAAAA,GAIAE,CAAAA,GAAS,UACJ,KAAA,CAGF,OAAA,CACT,CAEO,SAASC,CAAAA,CACdC,EACA,CACA,IAAMC,EAAQD,CAAAA,CAAQ,MAAA,CAAO,UAC1B,IAAA,CACH,OAAOL,EAAeE,CAAAA,CAAmBI,CAAAA,EAAM,MAAOA,CAAAA,EAAM,IAAI,CAAC,CACnE,CAEO,SAASC,CAAAA,CACdF,CAAAA,CACA,CACA,IAAMC,CAAAA,CAAQD,EAAQ,MAAA,CAAO,SAAA,CAC1B,KACH,OAAOL,CAAAA,CAAeE,EAAmBI,CAAAA,EAAM,KAAA,CAAOA,GAAM,IAAI,CAAC,CACnE,CAEO,SAASE,CAAAA,CACdC,EAIA,CACA,OAAKA,GAIU,KAAA,CAAM,OAAA,CAAQA,CAAM,CAAA,CAAIA,CAAAA,CAAS,CAACA,CAAM,CAAA,EACzC,IAAKC,CAAAA,EAAU,CAAA,WAAA,EAAcA,CAAK,CAAA,CAAE,CAAA,CAAE,KAAK,GAAG,CAAA,CAJ1D,MAKJ,CAEO,SAASC,CAAAA,CACdF,EAIAG,CAAAA,CACA,CACA,OAAI,CAACH,CAAAA,EAAUG,GAAkB,CAAA,CACxB,KAAA,CAAA,CAGM,MAAM,OAAA,CAAQH,CAAM,EAAIA,CAAAA,CAAS,CAACA,CAAM,CAAA,EACzC,IAAA,CACXC,GAAUE,CAAAA,CAAiBvB,CAAAA,CAAuCqB,CAAK,CAC1E,CACF","file":"chunk-O6MUTKGE.js","sourcesContent":["import type * as React from \"react\";\nimport type {\n AggregationFn,\n CellContext,\n ColumnFiltersState,\n ColumnDef,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n ExpandedState,\n FilterFnOption,\n GroupingState,\n HeaderContext,\n PaginationState,\n Row,\n RowPinningState,\n SortingState,\n Table as TanStackTable,\n Updater,\n VisibilityState,\n} from \"@tanstack/react-table\";\n\nexport type DataTableViewMode = \"table\" | \"card\";\n\n/** Accessibility behavior for the table view. Native table semantics remain the default. */\nexport type DataTableAccessibilityOptions = {\n /**\n * `grid` enables spreadsheet-like roving focus and keyboard navigation.\n * `native` (the default) retains ordinary HTML table keyboard behavior.\n */\n mode?: \"native\" | \"grid\";\n /** Number of rows moved by PageUp/PageDown when layout cannot be measured. */\n pageSize?: number;\n};\n\n/** Shorthand configuration for the interactive ARIA grid mode. */\nexport type DataTableInteractiveGridOptions = Omit<\n DataTableAccessibilityOptions,\n \"mode\"\n>;\n\n/** A stable grid coordinate used for cell and rectangular range selection. */\nexport type DataTableCellCoordinate = {\n rowId: string;\n columnId: string;\n};\n\n/** The two corners of a cell selection. A single-cell selection has equal corners. */\nexport type DataTableCellSelection = {\n anchor: DataTableCellCoordinate;\n focus: DataTableCellCoordinate;\n};\n\nexport type DataTableGridCommandContext = {\n table: TanStackTable;\n cellSelection: DataTableCellSelection | null;\n};\n\n/** Commands are delegated to the application; the table never records app data. */\nexport type DataTableGridCommands = {\n undo?: (context: DataTableGridCommandContext) => void | Promise;\n redo?: (context: DataTableGridCommandContext) => void | Promise;\n};\n\nexport type DataTableAlign = \"start\" | \"center\" | \"end\";\nexport type DataTableColumnType = \"text\" | \"numeric\" | \"date\";\nexport type DataTableColumnFixed = \"left\" | \"right\";\nexport type DataTableContainerBreakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type DataTableDensity = \"compact\" | \"comfortable\" | \"spacious\";\nexport type DataTableCardSizing = \"fixed\" | \"content\" | \"fluid\";\nexport type DataTableCellOverflow =\n | \"truncate\"\n | \"clip\"\n | \"wrap\"\n | \"visible\";\nexport type DataTableColumnFilterType =\n | \"text\"\n | \"select\"\n | \"multi\"\n | \"faceted\"\n | \"boolean\"\n | \"numberRange\"\n | \"dateRange\";\nexport type DataTableColumnFilterOperator =\n | \"contains\"\n | \"equals\"\n | \"startsWith\"\n | \"endsWith\";\nexport type DataTableCsvExportScope =\n | \"filtered\"\n | \"page\"\n | \"selected\"\n | \"all\";\nexport type DataTableClipboardCopyScope =\n | DataTableCsvExportScope\n | \"cellSelection\";\nexport type DataTableClipboardCopyOptions = {\n includeHeaders?: boolean;\n columns?: Array;\n scope?: DataTableClipboardCopyScope;\n /** Defaults to tab-separated text. */\n delimiter?: \"\\t\" | \",\";\n escapeFormulaValues?: boolean;\n getCellValue?: (context: {\n row: TData;\n rowId: string;\n columnId: string;\n value: unknown;\n }) => unknown;\n /** Host-owned clipboard delivery for non-browser or permission-managed apps. */\n onCopy?: (context: {\n text: string;\n rows: Array;\n scope: DataTableClipboardCopyScope;\n }) => void | Promise;\n};\nexport type DataTableClipboardPasteContext = {\n text: string;\n values: Array>;\n table: TanStackTable;\n};\nexport type DataTableClipboardConfig = {\n copy?: boolean | DataTableClipboardCopyOptions;\n paste?: {\n enabled?: boolean;\n preventDefault?: boolean;\n onPaste: (\n context: DataTableClipboardPasteContext,\n ) => void | Promise;\n };\n};\nexport type DataTableActionErrorSource =\n | \"toolbarAction\"\n | \"selectionAction\"\n | \"rowAction\"\n | \"rowClick\"\n | \"edit\"\n | \"undo\"\n | \"redo\"\n | \"clipboardCopy\"\n | \"clipboardPaste\"\n | \"fileUpload\"\n | \"infiniteScroll\"\n | \"retry\";\n\nexport const DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS: Record<\n DataTableContainerBreakpoint,\n number\n> = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n \"2xl\": 1536,\n};\n\nexport type DataTableRowLoadingState = {\n isLoading: boolean;\n skeleton?: React.ReactNode;\n};\n\nexport type DataTableLoadingState = {\n isLoading: boolean;\n loadingRowCount?: number;\n};\n\nexport type DataTableAutoPageSizeConfig = {\n minRows?: number;\n maxRows?: number;\n estimateRowHeight?: number;\n};\n\nexport type DataTableStateOverlayContext = {\n rows: Array;\n toolbarQueryValue: string;\n error: unknown;\n isRetrying: boolean;\n retry: (() => void | Promise) | undefined;\n};\n\nexport type DataTableStateOverlay = {\n empty?:\n | React.ReactNode\n | ((context: DataTableEmptyStateContext) => React.ReactNode);\n error?: unknown;\n isRetrying?: boolean;\n onRetry?: () => void | Promise;\n renderError?: (\n context: DataTableStateOverlayContext,\n ) => React.ReactNode;\n};\n\nexport type DataTableCellEditRenderProps = {\n cell: CellContext;\n row: TData;\n value: TValue | undefined;\n draftValue: unknown;\n setDraftValue: (value: unknown) => void;\n error?: string;\n isDirty: boolean;\n isPending: boolean;\n};\n\nexport type DataTableColumnFilterOption = {\n label: string;\n value: string;\n /** Number of matching records. Omit when the count is not known. */\n count?: number;\n disabled?: boolean;\n};\n\nexport type DataTableFacetedFilterOptions = {\n /**\n * Server-provided facet values. When supplied, these take precedence over\n * locally calculated unique values and their counts.\n */\n options?:\n | Array\n | ((context: { rows: Array }) => Array);\n /** Render a readable label for values discovered from the local row model. */\n getOptionLabel?: (value: TValue | undefined) => string;\n /** Enables an in-menu search input. Defaults to true. */\n searchable?: boolean;\n searchPlaceholder?: string;\n};\n\nexport type DataTableColumnFilterRangeValue = {\n from?: TValue;\n to?: TValue;\n};\n\nexport type DataTableColumnFilterConfig = {\n type: DataTableColumnFilterType;\n label?: string;\n placeholder?: string;\n options?:\n | Array\n | ((context: { rows: Array }) => Array);\n getOptionValue?: (value: TValue | undefined, row: TData) => string;\n /** Settings for `type: \"faceted\"`, including server-provided facet data. */\n faceting?: DataTableFacetedFilterOptions;\n operator?: DataTableColumnFilterOperator;\n trueLabel?: string;\n falseLabel?: string;\n min?: number | string;\n max?: number | string;\n step?: number;\n};\n\nexport type DataTableColumnMeta = {\n type?: DataTableColumnType;\n fixed?: DataTableColumnFixed;\n cardTitle?: boolean;\n hideOn?: DataTableContainerBreakpoint | Array;\n minWidth?: number;\n align?: DataTableAlign;\n overflow?:\n | DataTableCellOverflow\n | ((args: {\n row: TData;\n value: TValue | undefined;\n }) => DataTableCellOverflow | undefined);\n headerClassName?: string;\n headerStyle?: React.CSSProperties;\n cellClassName?:\n | string\n | ((args: { row: TData; value: TValue | undefined }) => string | undefined);\n responsiveClassName?: string;\n skeleton?: (context: CellContext) => React.ReactNode;\n filter?: DataTableColumnFilterConfig;\n parseEditValue?: (value: unknown, context: CellContext) => unknown;\n formatEditValue?: (\n value: unknown,\n context: CellContext,\n ) => string;\n renderEditCell?: (\n props: DataTableCellEditRenderProps,\n ) => React.ReactNode;\n};\n\nexport type DataTableColumnDef = ColumnDef<\n TData,\n TValue\n> & {\n meta?: DataTableColumnMeta;\n columns?: Array>;\n};\n\nexport type DataTableColumnGroupDef = DataTableColumnDef<\n TData,\n unknown\n> & {\n id: string;\n columns: Array>;\n /**\n * A concise explanation of the columns in this group. It is exposed as an\n * accessible description and native tooltip on the shared header.\n */\n description?: string;\n /**\n * Allows leaves to cross this group's boundary during column reordering.\n * Groups are locked by default so a shared heading remains intact.\n */\n freeReordering?: boolean;\n /** Additional class name for this shared group header. */\n headerClassName?: string;\n /** Additional inline styles for this shared group header. */\n headerStyle?: React.CSSProperties;\n /** Height for this shared group header, overriding `columnGroupHeaderHeight`. */\n headerHeight?: React.CSSProperties[\"height\"];\n};\n\nexport type DataTableToolbarAction = {\n key: string;\n label: string;\n icon?: React.ComponentType<{ className?: string }>;\n iconOnly?: boolean;\n placement?: \"primary\" | \"trailing\";\n onClick: (context: {\n rows: Array;\n openFileDialog?: () => void;\n }) => void | Promise;\n variant?: \"default\" | \"secondary\" | \"outline\" | \"ghost\" | \"destructive\";\n disabled?: boolean;\n};\n\nexport type DataTableSelectionActionContext = {\n /** Selected row objects that are present in the currently loaded data. */\n rows: Array;\n /** Every selected row id, including ids retained across server pages. */\n rowIds: Array;\n};\n\nexport type DataTableSelectionAction = {\n key: string;\n label: string;\n icon?: React.ComponentType<{ className?: string }>;\n iconOnly?: boolean;\n onClick: (context: DataTableSelectionActionContext) => void | Promise;\n variant?: \"default\" | \"secondary\" | \"outline\" | \"ghost\" | \"destructive\";\n disabled?:\n | boolean\n | ((\n rows: Array,\n context: DataTableSelectionActionContext,\n ) => boolean);\n};\n\nexport type DataTableRowAction = {\n key: string;\n label: string | ((row: TData) => string);\n icon?: React.ComponentType<{ className?: string }>;\n onClick: (row: TData) => void | Promise;\n variant?: \"default\" | \"secondary\" | \"destructive\";\n hidden?: (row: TData) => boolean;\n disabled?: (row: TData) => boolean;\n};\n\nexport type DataTableColumnVisibilityOption = {\n id: string;\n label: string;\n visible: boolean;\n canHide: boolean;\n pinned?: false | DataTableColumnFixed;\n};\n\nexport type DataTableToolbarVisibility = {\n title?: boolean;\n search?: boolean;\n actions?: boolean;\n trailingActions?: boolean;\n options?: boolean;\n viewToggle?: boolean;\n customToolbar?: boolean;\n};\n\n/** Optional toolbar controls for working with the current table layout and views. */\nexport type DataTableToolbarDataOperations = {\n /** Search, bulk show/hide, pin, and keyboard-accessible column move controls. */\n columnChooser?: boolean;\n /** Create, apply, rename, and delete saved views when `savedViews` is configured. */\n savedViews?: boolean;\n /** Adds a reset-layout action using the table's initial layout. */\n resetLayout?: boolean;\n};\n\nexport type DataTableCardRendererProps = {\n row: TData;\n rowId: string;\n depth: number;\n canExpandSubRows: boolean;\n isSubRowsExpanded: boolean;\n toggleSubRowsExpanded: () => void;\n isSelected: boolean;\n onSelectedChange: (nextValue: boolean) => void;\n actions: Array>;\n isEditing: boolean;\n startEditing: () => void;\n cancelEditing: () => void;\n};\n\nexport type DataTableEditableRowsConfig = {\n canEditRow?: (row: TData) => boolean;\n getInitialValues?: (row: TData) => Record;\n validateRow?: (\n row: TData,\n draftValues: Record,\n ) =>\n | void\n | string\n | Record\n | Promise>;\n /** Apply an optimistic host update and optionally return a rollback callback. */\n onOptimisticUpdate?: (\n row: TData,\n draftValues: Record,\n ) => void | (() => void);\n onSaveRow: (\n row: TData,\n draftValues: Record,\n ) => void | Promise;\n onSaveSuccess?: (\n row: TData,\n draftValues: Record,\n ) => void;\n onSaveError?: (\n error: unknown,\n row: TData,\n draftValues: Record,\n ) => void;\n /** Defaults to true for inputs owned by the table. */\n commitOnEnter?: boolean;\n /** Defaults to true for inputs owned by the table. */\n cancelOnEscape?: boolean;\n};\n\nexport type DataTableInfiniteScroll = {\n enabled: boolean;\n hasMore: boolean;\n isLoadingMore?: boolean;\n onLoadMore: () => void | Promise;\n};\n\nexport type DataTableHiddenRowsConfig = {\n getIsHidden: (row: TData) => boolean;\n label?: string;\n};\n\nexport type DataTableEmptyStateContext = {\n rows: Array;\n toolbarQueryValue: string;\n};\n\nexport type DataTableDragAndDropConfig = {\n isDragging?: boolean;\n onDragEnter?: React.DragEventHandler;\n onDragOver?: React.DragEventHandler;\n onDragLeave?: React.DragEventHandler;\n onDrop?: React.DragEventHandler;\n getRowDraggable?: (row: TData) => boolean;\n onRowDragStart?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n onRowDragEnd?: (context: {\n row: TData;\n rowId: string;\n event: React.DragEvent;\n }) => void;\n};\n\nexport type DataTableFileUploadConfig = {\n accept?: string;\n disabled?: boolean;\n multiple?: boolean;\n onFilesSelected: (files: FileList | Array) => void | Promise;\n};\n\nexport type DataTableVirtualizationConfig = {\n enabled?: boolean;\n estimateRowHeight?: number;\n fallbackRowCount?: number;\n overscan?: number;\n card?: DataTableCardVirtualizationConfig;\n};\n\nexport type DataTableCardVirtualizationConfig = {\n enabled?: boolean;\n estimateCardHeight?: number;\n fallbackCardCount?: number;\n overscan?: number;\n lanes?: number | \"auto\";\n};\n\nexport type DataTableExpandedRowProps = {\n row: TData;\n rowId: string;\n tableRow: Row;\n};\n\n/** A separately controlled application detail panel rendered beneath a row. */\nexport type DataTableDetailPanel = {\n expanded?: ExpandedState;\n onExpandedChange?: (expanded: ExpandedState) => void;\n getRowCanExpand?: (row: TData) => boolean;\n render: (props: DataTableExpandedRowProps) => React.ReactNode;\n};\n\nexport type DataTableCsvExportOptions = {\n filename?: string;\n includeHeaders?: boolean;\n columns?: Array;\n scope?: DataTableCsvExportScope;\n escapeFormulaValues?: boolean;\n lineEnding?: \"\\n\" | \"\\r\\n\";\n getCellValue?: (context: {\n row: TData;\n rowId: string;\n columnId: string;\n value: unknown;\n }) => unknown;\n onExport?: (context: {\n csv: string;\n filename: string;\n rows: Array;\n scope: DataTableCsvExportScope;\n }) => void | Promise;\n};\n\nexport type DataTableActionErrorContext = {\n source: DataTableActionErrorSource;\n error: unknown;\n actionKey?: string;\n row?: TData;\n};\n\nexport type DataTableColumnPrefs = {\n visibility?: VisibilityState;\n sizing?: Record;\n order?: ColumnOrderState;\n pinning?: ColumnPinningState;\n rowPinning?: RowPinningState;\n density?: DataTableDensity;\n};\n\nexport type DataTablePersistenceSlice = keyof DataTableColumnPrefs;\n\nexport type DataTablePersistenceStorage = Pick<\n Storage,\n \"getItem\" | \"setItem\" | \"removeItem\"\n>;\n\nexport type DataTablePersistenceOperation =\n | \"read\"\n | \"write\"\n | \"remove\"\n | \"serialize\"\n | \"deserialize\"\n | \"migrate\";\n\nexport type DataTablePersistencePayload = {\n version: string | number;\n state: DataTableColumnPrefs;\n};\n\nexport type DataTablePersistenceConfig = {\n key: string;\n version?: string | number;\n slices?: Array;\n storage?: DataTablePersistenceStorage;\n serialize?: (payload: DataTablePersistencePayload) => string;\n deserialize?: (value: string) => unknown;\n migrate?: (\n payload: { version: unknown; state: unknown },\n targetVersion: string | number,\n ) => DataTableColumnPrefs | undefined;\n debounceMs?: number;\n onError?: (context: {\n error: unknown;\n operation: DataTablePersistenceOperation;\n }) => void;\n};\n\nexport type DataTableState = {\n sorting: SortingState;\n pagination: PaginationState;\n rowSelection: Record;\n columnVisibility: VisibilityState;\n columnFilters: ColumnFiltersState;\n expanded: ExpandedState;\n columnOrder: ColumnOrderState;\n columnPinning: ColumnPinningState;\n rowPinning: RowPinningState;\n columnSizing: ColumnSizingState;\n /** Present in snapshots produced by 4.4+; optional for 4.x object-literal compatibility. */\n grouping?: GroupingState;\n density: DataTableDensity;\n viewMode: DataTableViewMode;\n showHiddenRows: boolean;\n globalFilter: string;\n};\n\nexport type DataTableInitialState = Partial;\n\nexport type DataTableSavedViewSlice = keyof DataTableState;\n\nexport type DataTableSavedView = {\n id: string;\n name: string;\n createdAt: string;\n updatedAt: string;\n state: Partial;\n};\n\nexport type DataTableSavedViewsPayload = {\n version: string | number;\n views: Array;\n};\n\nexport type DataTableSavedViewsChangeOperation =\n | \"create\"\n | \"rename\"\n | \"delete\"\n | \"clear\";\n\nexport type DataTableSavedViewsConfig = {\n key: string;\n version?: string | number;\n slices?: Array;\n storage?: DataTablePersistenceStorage;\n serialize?: (payload: DataTableSavedViewsPayload) => string;\n deserialize?: (value: string) => unknown;\n migrate?: (\n payload: { version: unknown; views: unknown },\n targetVersion: string | number,\n ) => Array | undefined;\n onChange?: (\n views: Array,\n operation: DataTableSavedViewsChangeOperation,\n ) => void;\n onApply?: (view: DataTableSavedView) => void;\n onError?: (context: {\n error: unknown;\n operation: DataTablePersistenceOperation;\n }) => void;\n};\n\nexport type DataTableResetOptions = {\n clearPersistence?: boolean;\n};\n\nexport type DataTableApi = {\n getTable: () => TanStackTable | null;\n getState: () => DataTableState;\n snapshot: () => DataTableState;\n restore: (state: Partial) => void;\n resetColumnLayout: (options?: DataTableResetOptions) => void;\n resetState: (options?: DataTableResetOptions) => void;\n clearPersistedState: () => boolean;\n getSavedViews: () => Array;\n createSavedView: (name: string) => DataTableSavedView | undefined;\n applySavedView: (id: string) => boolean;\n renameSavedView: (\n id: string,\n name: string,\n ) => DataTableSavedView | undefined;\n deleteSavedView: (id: string) => boolean;\n clearSavedViews: () => boolean;\n pinRow: (rowId: string, position?: \"top\" | \"bottom\") => boolean;\n unpinRow: (rowId: string) => boolean;\n focus: () => void;\n scrollToRow: (rowId: string) => boolean;\n scrollToColumn: (columnId: string) => boolean;\n exportCsv: (\n options?: boolean | DataTableCsvExportOptions,\n ) => Promise;\n copyToClipboard: (\n options?: boolean | DataTableClipboardCopyOptions,\n ) => Promise;\n getCellSelection: () => DataTableCellSelection | null;\n setCellSelection: (selection: DataTableCellSelection | null) => void;\n clearCellSelection: () => void;\n print: () => boolean;\n toggleFullscreen: () => Promise;\n};\n\nexport type DataTableLabels = {\n searchPlaceholder: string;\n searchTable: string;\n clearSearch: string;\n noRowsTitle: string;\n noRowsDescription: string;\n noMatchingRowsTitle: string;\n noMatchingRowsDescription: string;\n tableOptions: string;\n columns: string;\n filters: string;\n clearFilters: string;\n filterFrom?: string;\n filterTo?: string;\n filterTrue?: string;\n filterFalse?: string;\n selectedRows: (count: number) => string;\n showHiddenRows: (label: string) => string;\n recordsPerPage: string;\n totalRecords: (count: number) => string;\n pageStatus: (pageIndex: number, pageCount: number) => string;\n pageStatusUnknown?: (pageIndex: number) => string;\n pagination?: string;\n morePages?: string;\n firstPage: string;\n previousPage: string;\n nextPage: string;\n lastPage: string;\n selectAllVisibleRows?: string;\n selectAllFilteredRows?: string;\n selectRow?: string;\n selectCardRow?: (rowId: string) => string;\n switchToTableView?: string;\n switchToCardView?: string;\n tableView?: string;\n cardView?: string;\n allFilterOptions?: string;\n actions: string;\n rowActions: string;\n editRow: string;\n saveEdit: string;\n cancelEdit: string;\n expandRow: string;\n collapseRow: string;\n expandRowDetails?: string;\n collapseRowDetails?: string;\n exportCsv: string;\n print?: string;\n enterFullscreen?: string;\n exitFullscreen?: string;\n errorTitle?: string;\n errorDescription?: string;\n retry?: string;\n density: string;\n compactDensity: string;\n comfortableDensity: string;\n spaciousDensity: string;\n pinLeft: string;\n pinRight: string;\n unpin: string;\n pinRowToTop: string;\n pinRowToBottom: string;\n unpinRow: string;\n resizeColumn: (columnLabel: string) => string;\n grouping?: string;\n groupBy?: (columnLabel: string) => string;\n ungroup?: (columnLabel: string) => string;\n removeGrouping?: (columnLabel: string) => string;\n moveGroupingEarlier?: (columnLabel: string) => string;\n moveGroupingLater?: (columnLabel: string) => string;\n facetSearch?: (columnLabel: string) => string;\n searchColumns?: string;\n showAllColumns?: string;\n hideAllColumns?: string;\n moveColumnEarlier?: (columnLabel: string) => string;\n moveColumnLater?: (columnLabel: string) => string;\n resetColumnLayout?: string;\n savedViews?: string;\n createSavedView?: string;\n savedViewName?: string;\n applySavedView?: (name: string) => string;\n renameSavedView?: (name: string) => string;\n deleteSavedView?: (name: string) => string;\n saveSavedView?: string;\n};\n\nexport type DataTableSummaryRow = {\n key: string;\n label?: React.ReactNode;\n cells: Record<\n string,\n React.ReactNode | ((context: { rows: Array; columnId: string }) => React.ReactNode)\n >;\n};\n\nexport type DataTableRowClassNameContext = {\n row: TData;\n rowId: string;\n rowIndex: number;\n isEditing: boolean;\n isExpanded: boolean;\n isLoading: boolean;\n isSelected: boolean;\n pinnedPosition: false | \"top\" | \"bottom\";\n};\n\nexport type DataTableScrollbarVisibility =\n | \"auto\"\n | \"always\"\n | \"scroll\"\n | \"hover\";\n\nexport type DataTableProps = {\n columns: Array>;\n data: Array;\n getRowId: (row: TData, index: number) => string;\n children?: React.ReactNode;\n title?: string;\n description?: string;\n toolbarQueryValue?: string;\n onToolbarQueryValueChange?: (value: string) => void;\n toolbarQueryPlaceholder?: string;\n toolbarQueryDebounceMs?: number;\n manualFiltering?: boolean;\n enableToolbarQueryFiltering?: boolean;\n globalFilterFn?: FilterFnOption;\n columnFilters?: ColumnFiltersState;\n onColumnFiltersChange?: (filters: ColumnFiltersState) => void;\n enableColumnFilters?: boolean;\n customToolbar?: React.ReactNode;\n compactToolbar?: React.ReactNode;\n rowsPerPageOptions?: Array;\n totalRowCount?: number;\n hasNextPage?: boolean;\n sorting?: SortingState;\n onSortingChange?: (sorting: SortingState) => void;\n manualSorting?: boolean;\n grouping?: GroupingState;\n onGroupingChange?: (grouping: GroupingState) => void;\n /** Use rows already grouped by the server instead of TanStack's grouping model. */\n manualGrouping?: boolean;\n /** Show group/ungroup controls in the table options menu and grouping bar. */\n enableGrouping?: boolean;\n /** Controls whether grouped columns are reordered, removed, or left in place. */\n groupedColumnMode?: false | \"reorder\" | \"remove\";\n /** Named aggregation functions available to column `aggregationFn` definitions. */\n aggregationFns?: Record>;\n pageIndex?: number;\n pageSize?: number;\n /** Sizes an opt-in page from the measurable table scroll viewport. */\n autoPageSize?: boolean | DataTableAutoPageSizeConfig;\n onPageIndexChange?: (pageIndex: number) => void;\n onPageSizeChange?: (pageSize: number) => void;\n pageCount?: number;\n manualPagination?: boolean;\n rowSelection?: Record;\n onRowSelectionChange?: (rowSelection: Record) => void;\n enableRowSelection?: boolean;\n /** Allows multiple selected rows globally or per row. Defaults to true. */\n enableMultiRowSelection?: boolean | ((row: TData) => boolean);\n /** Cascades parent selection to sub-rows globally or per row. Defaults to true. */\n enableSubRowSelection?: boolean | ((row: TData) => boolean);\n /** Prevents individual rows from being selected. */\n getRowCanSelect?: (row: TData) => boolean;\n /** Select-all affects the current page or all loaded filtered rows. */\n rowSelectionSelectAllScope?: \"page\" | \"filtered\";\n expanded?: ExpandedState;\n onExpandedChange?: (expanded: ExpandedState) => void;\n /** Resolve nested records for tree expansion. */\n getSubRows?: (row: TData, index: number) => Array | undefined;\n /** Keep expansion state controlled by the host; useful for server-loaded children. */\n manualExpanding?: boolean;\n /** Keep child rows with their parent when paginating. Defaults to TanStack's behavior. */\n paginateExpandedRows?: boolean;\n /** Include parents when a descendant matches a filter. */\n filterFromLeafRows?: boolean;\n /** Limit descendant traversal while filtering. */\n maxLeafRowFilterDepth?: number;\n /** New, independently controlled detail-panel contract. */\n detailPanel?: DataTableDetailPanel;\n getRowCanExpand?: (row: TData) => boolean;\n /** @deprecated Use `detailPanel={{ render }}`. Kept as a detail-panel bridge. */\n renderExpandedRow?: (\n props: DataTableExpandedRowProps,\n ) => React.ReactNode;\n columnOrder?: ColumnOrderState;\n onColumnOrderChange?: (columnOrder: ColumnOrderState) => void;\n enableColumnReordering?: boolean;\n /** Default height for shared column-group header cells. */\n columnGroupHeaderHeight?: React.CSSProperties[\"height\"];\n columnPinning?: ColumnPinningState;\n onColumnPinningChange?: (columnPinning: ColumnPinningState) => void;\n enableColumnPinning?: boolean;\n rowPinning?: RowPinningState;\n onRowPinningChange?: (rowPinning: RowPinningState) => void;\n /** Enables row actions that pin a row to the top or bottom of the table. */\n enableRowPinning?: boolean | ((row: TData) => boolean);\n /** Keep pinned rows visible when filtering or paginating them out. */\n keepPinnedRows?: boolean;\n toolbarActions?: Array>;\n selectionActions?: Array>;\n rowActions?: Array>;\n csvExport?: boolean | DataTableCsvExportOptions;\n /** Opt-in TSV/CSV copy and application-owned paste handling. */\n clipboard?: DataTableClipboardConfig;\n /** Enables pointer and Shift+keyboard rectangular cell selection in grid mode. */\n enableCellSelection?: boolean;\n /** Controlled cell/range selection. Supplying a value also enables it in grid mode. */\n cellSelection?: DataTableCellSelection | null;\n /** Initial cell/range selection when uncontrolled. */\n defaultCellSelection?: DataTableCellSelection | null;\n onCellSelectionChange?: (selection: DataTableCellSelection | null) => void;\n /** Host-owned undo/redo commands invoked by Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z. */\n gridCommands?: DataTableGridCommands;\n density?: DataTableDensity;\n onDensityChange?: (density: DataTableDensity) => void;\n enableDensityToggle?: boolean;\n columnPrefsKey?: string;\n persistence?: DataTablePersistenceConfig;\n savedViews?: DataTableSavedViewsConfig;\n initialState?: DataTableInitialState;\n state?: Partial;\n onStateChange?: (updater: Updater) => void;\n apiRef?: React.Ref>;\n labels?: Partial;\n summaryRows?: Array>;\n cardRenderer?: (props: DataTableCardRendererProps) => React.ReactNode;\n cardSizing?: DataTableCardSizing;\n cardGridClassName?: string;\n cardClassName?: string;\n viewMode?: DataTableViewMode;\n onViewModeChange?: (viewMode: DataTableViewMode) => void;\n enableViewToggle?: boolean;\n enablePrint?: boolean;\n enableFullscreen?: boolean;\n emptyState?:\n | React.ReactNode\n | ((context: DataTableEmptyStateContext) => React.ReactNode);\n /** Explicit empty/error/retry rendering contract. */\n stateOverlay?: DataTableStateOverlay;\n isLoading?: boolean;\n loadingRowCount?: number;\n getRowLoadingState?: (\n row: TData,\n index: number,\n ) => boolean | DataTableRowLoadingState;\n hiddenRows?: DataTableHiddenRowsConfig;\n showHiddenRows?: boolean;\n onShowHiddenRowsChange?: (showHiddenRows: boolean) => void;\n infiniteScroll?: DataTableInfiniteScroll;\n editableRows?: DataTableEditableRowsConfig;\n columnVisibility?: VisibilityState;\n onColumnVisibilityChange?: (visibility: VisibilityState) => void;\n columnSizing?: ColumnSizingState;\n onColumnSizingChange?: (sizing: ColumnSizingState) => void;\n enableColumnResizing?: boolean;\n columnResizeMode?: \"onChange\" | \"onEnd\";\n layoutMode?: \"fill\" | \"fit\";\n stickyHeader?: boolean;\n /** Controls when scrollbars are visible. Defaults to `\"hover\"`. */\n scrollbarVisibility?: DataTableScrollbarVisibility;\n showFooter?: boolean;\n showToolbar?: boolean;\n dir?: \"ltr\" | \"rtl\";\n flexGrow?: boolean;\n toolbarVisibility?: DataTableToolbarVisibility;\n /** Opts into enhanced layout and saved-view toolbar controls. */\n toolbarDataOperations?: boolean | DataTableToolbarDataOperations;\n className?: string;\n tableClassName?: string;\n tableContainerClassName?: string;\n stripedRows?: boolean;\n getRowClassName?: (\n row: TData,\n context: DataTableRowClassNameContext,\n ) => string | undefined;\n onRowClick?: (context: { row: TData; rowId: string }) => void | Promise;\n onActionError?: (context: DataTableActionErrorContext) => void;\n dragAndDrop?: DataTableDragAndDropConfig;\n fileUpload?: DataTableFileUploadConfig;\n virtualization?: boolean | DataTableVirtualizationConfig;\n /** Opt in to ARIA grid semantics and roving keyboard navigation. */\n accessibility?: DataTableAccessibilityOptions;\n /** Shorthand for `accessibility={{ mode: \"grid\" }}`. */\n interactiveGrid?: boolean | DataTableInteractiveGridOptions;\n};\n\nexport function isRowVisible(\n row: TData,\n hiddenRows: DataTableHiddenRowsConfig | undefined,\n showHiddenRows: boolean,\n) {\n if (!hiddenRows) {\n return true;\n }\n\n if (showHiddenRows) {\n return true;\n }\n\n return !hiddenRows.getIsHidden(row);\n}\n\nexport function resolveRowActionLabel(\n label: DataTableRowAction[\"label\"],\n row: TData,\n) {\n return typeof label === \"function\" ? label(row) : label;\n}\n\nexport function canUseRowAction(\n action: DataTableRowAction,\n row: TData,\n) {\n return !action.hidden?.(row);\n}\n\nexport function canEditRow(\n editableRows: DataTableEditableRowsConfig | undefined,\n row: TData,\n) {\n return editableRows?.canEditRow\n ? editableRows.canEditRow(row)\n : Boolean(editableRows);\n}\n\nexport function alignClassName(align: DataTableAlign | undefined) {\n switch (align) {\n case \"center\":\n return \"text-center\";\n case \"end\":\n return \"text-right\";\n default:\n return \"text-left\";\n }\n}\n\nexport function resolveColumnAlign(\n align: DataTableAlign | undefined,\n type: DataTableColumnType | undefined,\n) {\n if (align) {\n return align;\n }\n\n if (type === \"numeric\") {\n return \"end\";\n }\n\n return \"start\";\n}\n\nexport function headerAlignClassName(\n context: HeaderContext,\n) {\n const meta = (context.column.columnDef as DataTableColumnDef)\n .meta;\n return alignClassName(resolveColumnAlign(meta?.align, meta?.type));\n}\n\nexport function cellAlignClassName(\n context: CellContext,\n) {\n const meta = (context.column.columnDef as DataTableColumnDef)\n .meta;\n return alignClassName(resolveColumnAlign(meta?.align, meta?.type));\n}\n\nexport function hideOnClassName(\n hideOn:\n | DataTableContainerBreakpoint\n | Array\n | undefined,\n) {\n if (!hideOn) {\n return undefined;\n }\n\n const values = Array.isArray(hideOn) ? hideOn : [hideOn];\n return values.map((value) => `dt-hide-on-${value}`).join(\" \");\n}\n\nexport function isHiddenAtContainerWidth(\n hideOn:\n | DataTableContainerBreakpoint\n | Array\n | undefined,\n containerWidth: number,\n) {\n if (!hideOn || containerWidth <= 0) {\n return false;\n }\n\n const values = Array.isArray(hideOn) ? hideOn : [hideOn];\n return values.some(\n (value) => containerWidth < DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS[value],\n );\n}\n\nexport function rowSelectionStateFromRows(rows: Array>) {\n return rows.map((row) => row.original);\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-PRDXFLFB.js b/dist/chunk-PRDXFLFB.js new file mode 100644 index 0000000..aa8a820 --- /dev/null +++ b/dist/chunk-PRDXFLFB.js @@ -0,0 +1,2 @@ +import {d,A,y,x,z,k}from'./chunk-F2RBZWQV.js';import {c,t,i}from'./chunk-CVR2ZXHQ.js';import {h,g,f}from'./chunk-O6MUTKGE.js';import {a}from'./chunk-XTVBESM5.js';import*as E from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {flexRender}from'@tanstack/react-table';function mt({columns:e,editableRows:a,onError:s}){let[o,n]=E.useState(null),[u,D]=E.useState({}),C=E.useRef(u),[h,t]=E.useState({}),[I,c]=E.useState({}),[A,x]=E.useState(false),v=E.useMemo(()=>!Ka(u,h),[u,h]);E.useEffect(()=>{C.current=u;},[u]);let S=E.useCallback(()=>{n(null),D({}),c({}),t({});},[]),V=E.useCallback((H,b)=>{let k=a?.getInitialValues?.(H)??Aa(H,e);t({...k}),D(k),c({}),n(b);},[e,a]),_=E.useCallback(async H=>{if(!a)return false;x(true);let b={...C.current},k;try{let G=await a.validateRow?.(H,b),r=Ga(G);if(Object.keys(r).length>0)return c(r),!1;c({});let z=a.onOptimisticUpdate?.(H,b);return k=typeof z=="function"?z:void 0,await a.onSaveRow(H,b),a.onSaveSuccess?.(H,b),E.startTransition(S),!0}catch(G){try{k?.();}catch{}return a.onSaveError?.(G,H,b),s?.(G,H),false}finally{x(false);}},[S,a,s]),W=E.useCallback(H=>{c(b=>{if(!b[H]&&!b._row)return b;let k={...b};return delete k[H],delete k._row,k});},[]);return {cancelEditing:S,clearEditError:W,draftValues:u,editErrors:I,editingRowId:o,isEditDirty:v,isSavingEdit:A,saveEdit:_,setDraftValues:D,setEditingRowId:n,startEditingRow:V}}function Aa(e,a){return k(a).reduce((s,{column:o})=>("accessorKey"in o&&typeof o.accessorKey=="string"&&(s[o.accessorKey]=e[o.accessorKey]),s),{})}function pa(e,a,s,o,n){let{Checkbox:u,Input:D}=o,C=e.column.columnDef,h=C.meta,t="accessorKey"in C&&typeof C.accessorKey=="string"?C.accessorKey:e.column.id,I=a[t],c=n?.errors[t]??n?.errors[e.column.id]??n?.errors._row,A=S=>{n?.onValueChange(t),s(V=>({...V,[t]:S}));},x=S=>{S.key==="Escape"&&n?.cancelOnEscape?(S.preventDefault(),n.cancel()):S.key==="Enter"&&!S.shiftKey&&n?.commitOnEnter&&(S.preventDefault(),n.commit());};if(h?.renderEditCell)return h.renderEditCell({cell:e,row:e.row.original,value:e.getValue(),draftValue:I,error:c,isDirty:n?.isDirty??false,isPending:n?.isPending??false,setDraftValue:A});let v=za(h?.type,I);return typeof I=="boolean"?jsxs("div",{className:"min-w-0",children:[jsx(u,{"aria-invalid":!!c||void 0,checked:I,disabled:n?.isPending,onCheckedChange:S=>{A(S===true);},onKeyDown:x}),c?jsx("span",{className:"mt-1 block text-xs text-destructive",role:"alert",children:c}):null]}):jsxs("div",{className:"min-w-0",children:[jsx(D,{"aria-invalid":!!c||void 0,disabled:n?.isPending,type:v,value:h?.formatEditValue?h.formatEditValue(I,e):Ma(I,v),onChange:S=>{let V=S.target.value,_=h?.parseEditValue?h.parseEditValue(V,e):Va(V,v,I);A(_);},onKeyDown:x}),c?jsx("span",{className:"mt-1 block text-xs text-destructive",role:"alert",children:c}):null]})}function Ga(e){return e?typeof e=="string"?{_row:e}:e:{}}function Ka(e,a){let s=new Set([...Object.keys(e),...Object.keys(a)]);return Array.from(s).every(o=>Object.is(e[o],a[o]))}function za(e,a){return e==="numeric"||typeof a=="number"?"number":e==="date"||a instanceof Date?"datetime-local":"text"}function Ma(e,a="text"){return e==null?"":e instanceof Date?a==="datetime-local"?e.toISOString().slice(0,16):e.toISOString():typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"?String(e):""}function Va(e,a,s){return a==="number"?e===""?null:Number(e):a==="datetime-local"?e?s instanceof Date?new Date(e):e:null:e}var Ca=E.createContext(void 0);function gt({children:e,measureRow:a}){return jsx(Ca.Provider,{value:a,children:e})}function Ta(){return E.useContext(Ca)}function ze(e,a$1,s){let o=e.column.columnDef,n=o.meta,u=e.getValue(),D=s?.hasCustomCell??false,C=D&&o.cell?flexRender(o.cell,e):void 0,h=Ba(C),t=Ua({context:e,useCustomOverflowDefaults:s?.useCustomOverflowDefaults??false,value:u});if(n?.type==="date"&&!D)return jsxs("div",{"data-dtp-slot":"data-table-cell-content","data-dtp-overflow":t,className:a(ya(t),"flex w-full min-w-0 items-center justify-end gap-2"),children:[jsx(i,{className:a("shrink-0",a$1?.mutedText??"opacity-70")}),jsx("span",{className:"min-w-0 truncate",children:va(u)})]});let I=C!=null&&C!==""?C:u==null||u===""?jsx("span",{className:a$1?.mutedText??"opacity-70",children:"-"}):Fa(u);return jsx("div",{"data-dtp-slot":"data-table-cell-content","data-dtp-overflow":t,className:a(ya(t),"w-full min-w-0 max-w-full",h&&"[&>*]:max-w-full [&>*]:min-w-0"),children:I})}function Ua({context:e,useCustomOverflowDefaults:a,value:s}){let o=e.column.columnDef,n=typeof o.meta?.overflow=="function"?o.meta.overflow({row:e.row.original,value:s}):o.meta?.overflow;return n||(a?"clip":"truncate")}function ya(e){switch(e){case "clip":return "block overflow-hidden whitespace-nowrap";case "wrap":return "block overflow-hidden whitespace-normal break-words";case "visible":return "block overflow-visible whitespace-normal";default:return "block overflow-hidden text-ellipsis whitespace-nowrap"}}function Ba(e){return e==null?false:E.isValidElement(e)||Array.isArray(e)||typeof e=="object"}function va(e){return typeof e=="number"?new Date(e*1e3).toLocaleString():typeof e=="string"&&e?e:"-"}function Fa(e){if(e instanceof Date)return e.toLocaleString();if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")return String(e);try{return JSON.stringify(e)}catch{return "-"}}function qa({columnLayouts:e,components:a$1,currentDensity:s,draftValues:o,editingContext:n,dragAndDrop:u,explicitCustomCellColumnIds:D,getRowClassName:C,groupToggleLabel:h$1,gridMode:t,gridRowAriaIndex:I,gridRowIndex:c,activeGridCell:A$1,cellSelectionEnabled:x,isGridCellSelected:v,onGridCellFocus:S,onGridCellKeyDown:V,onGridCellPointerDown:_,onGridCellPointerEnter:W,isDraggable:H,isDetailExpanded:b,isEditing:k,isExpanded:G,isInitialLoadingRow:r,isSelected:z,loadingState:M,onRowClick:j,pinnedPosition:d$1,originalRow:g$1,detailPanel:$,row:T,rowIndex:O,setDraftValues:ye,stripedRows:ce,uiClassNames:K,visibleCells:me,visibleLeafColumnCount:ae}){let{Checkbox:Oe,Input:X,Skeleton:le,TableCell:we,TableRow:Re}=a$1,J=Ta(),he=d$1?void 0:J,Ue=me.find(m=>!e.get(m.column.id)?.isUtilityColumn)?.column.id,Se=me.findIndex(m=>m.column.id==="__spacer__");return jsxs(E.Fragment,{children:[jsx(Re,{ref:he,"data-row-id":T.id,"data-index":he?O:void 0,"data-tree-depth":!r&&T.depth>0?T.depth:void 0,"data-dtp-slot":d$1?"data-table-pinned-row":"data-table-row","data-row-pinned":d$1,"data-row-grouped":T.getIsGrouped()||void 0,draggable:r?false:H,"data-loading":M?.isLoading||void 0,"data-row-index":r?void 0:O,"data-row-parity":ce&&!r?O%2===0?"odd":"even":void 0,"data-state":r?void 0:z?"selected":void 0,role:t?"row":void 0,"aria-rowindex":t?I:void 0,tabIndex:!t&&j&&!r?0:void 0,className:a(!r&&C?.(g$1,{row:g$1,rowId:T.id,rowIndex:O,isEditing:k,isExpanded:G,isLoading:!!M?.isLoading,isSelected:z,pinnedPosition:d$1??false}),K.row,d$1==="top"&&a("border-b-2",K.rowPinnedTop),d$1==="bottom"&&a("border-t-2",K.rowPinnedBottom),ce&&!r&&(O%2===0?K.rowOdd:K.rowEven),z&&!r&&K.rowSelected,j&&!r&&"cursor-pointer",r&&"pointer-events-none"),onClick:m=>{r||y(m.target,m.currentTarget)||t&&x||j?.({row:g$1,rowId:T.id});},onKeyDown:m=>{r||!j||m.key!=="Enter"&&m.key!==" "||y(m.target,m.currentTarget)||(m.preventDefault(),j({row:g$1,rowId:T.id}));},onDragStart:m=>{r||u?.onRowDragStart?.({row:g$1,rowId:T.id,event:m});},onDragEnd:m=>{r||u?.onRowDragEnd?.({row:g$1,rowId:T.id,event:m});},children:me.map((m,F)=>{let q=m.column.columnDef.meta,Q=m.getContext(),Be=m.getValue(),U=e.get(m.column.id),fe=U?.isSelectionColumn??false,Y=U?.isExpansionColumn??false,B=U?.isActionsColumn??false,P=U?.isSpacerColumn??false,ve=F+1-(Se>=0&&SeS({row:c,column:F}):void 0,onKeyDown:t&&!P?L=>{if(L.target!==L.currentTarget){L.key==="Escape"&&(L.preventDefault(),L.currentTarget.focus());return}V(L,c,F);}:void 0,onPointerDown:t&&x&&!U?.isUtilityColumn&&!P?L=>{y(L.target,L.currentTarget)||(L.currentTarget.focus(),_(L,c,F));}:void 0,onPointerEnter:t&&x&&!U?.isUtilityColumn&&!P?L=>{y(L.target,L.currentTarget)||W(L,c,F);}:void 0,className:a("border-b",A(s),K.cellBorder,te&&K.cellSelected,U?.utilityClassName,U?.isSpacerColumn&&"border-b-0 bg-transparent! p-0",U?.pinnedClassName,Fe,g(Q),q?.responsiveClassName,We),style:U?.cellStyle,children:jsx("div",{"data-row-click-ignore":fe||Y||B||P?"true":void 0,className:"min-w-0 max-w-full",style:T.depth>0&&m.column.id===Ue?{paddingInlineStart:`${T.depth}rem`}:void 0,children:P?null:M?.isLoading?q?.skeleton?.(Q)??M.skeleton??jsx(le,{className:a("h-4 rounded",q?.type==="numeric"?"ml-auto w-16":q?.type==="date"?"ml-auto w-28":"w-full")}):k&&m.column.id!=="__select__"&&m.column.id!=="__expand__"&&m.column.id!=="__actions__"?pa(Q,o,ye,{Checkbox:Oe,Input:X},n?{cancel:n.cancel,cancelOnEscape:n.cancelOnEscape,commit:()=>n.commit(g$1),commitOnEnter:n.commitOnEnter,errors:n.errors,isDirty:n.isDirty,isPending:n.isPending,onValueChange:n.clearError}:void 0):T.getIsGrouped()&&m.getIsPlaceholder()?null:T.getIsGrouped()&&m.getIsGrouped()?jsxs("button",{type:"button",className:"inline-flex min-w-0 items-center gap-1 text-left font-medium",onClick:()=>T.toggleExpanded(),"aria-expanded":T.getIsExpanded(),"aria-label":h$1,children:[jsx("span",{"aria-hidden":"true",children:ze(Q,K,{hasCustomCell:D.has(m.column.id),useCustomOverflowDefaults:D.has(m.column.id)})}),jsxs("span",{className:"shrink-0 opacity-70",children:["(",T.subRows.length,")"]})]}):T.getIsGrouped()&&m.getIsAggregated()?m.column.columnDef.aggregatedCell?flexRender(m.column.columnDef.aggregatedCell,Q):ze(Q,K,{hasCustomCell:false,useCustomOverflowDefaults:false}):ze(Q,K,{hasCustomCell:D.has(m.column.id)||fe||Y||B||P,useCustomOverflowDefaults:D.has(m.column.id)||fe||Y||B||P})})},m.id)})}),!r&&$&&b?jsx(Re,{"data-dtp-slot":"data-table-detail-panel-row","data-row-pinned":d$1,children:jsx(we,{colSpan:Math.max(1,ae),className:a("border-b",A(s),K.cellBorder),children:$.render({row:g$1,rowId:T.id,tableRow:T})})}):null]})}function $a(e,a){return e.row.id===a.row.id&&e.row.original===a.row.original&&e.rowIndex===a.rowIndex&&e.isSelected===a.isSelected&&e.isInitialLoadingRow===a.isInitialLoadingRow&&e.isEditing===a.isEditing&&(!e.isEditing||e.editingContext===a.editingContext)&&e.isExpanded===a.isExpanded&&e.isDraggable===a.isDraggable&&Xa(e.loadingState,a.loadingState)&&Ja(e.visibleCells,a.visibleCells)&&e.components===a.components&&Qa(e.columnLayouts,a.columnLayouts,a.visibleCells)&&e.currentDensity===a.currentDensity&&e.detailPanel===a.detailPanel&&e.isDetailExpanded===a.isDetailExpanded&&e.pinnedPosition===a.pinnedPosition&&e.onRowClick===a.onRowClick&&e.dragAndDrop===a.dragAndDrop&&e.getRowClassName===a.getRowClassName&&e.groupToggleLabel===a.groupToggleLabel&&e.gridMode===a.gridMode&&(!a.gridMode||e.gridRowAriaIndex===a.gridRowAriaIndex&&e.gridRowIndex===a.gridRowIndex&&e.activeGridCell.row===a.activeGridCell.row&&e.activeGridCell.column===a.activeGridCell.column&&e.cellSelectionEnabled===a.cellSelectionEnabled&&e.isGridCellSelected===a.isGridCellSelected&&e.onGridCellFocus===a.onGridCellFocus&&e.onGridCellKeyDown===a.onGridCellKeyDown&&e.onGridCellPointerDown===a.onGridCellPointerDown&&e.onGridCellPointerEnter===a.onGridCellPointerEnter)&&e.stripedRows===a.stripedRows&&e.uiClassNames===a.uiClassNames&&e.explicitCustomCellColumnIds===a.explicitCustomCellColumnIds&&(!e.isEditing||e.draftValues===a.draftValues)}function Xa(e,a){return e?.isLoading===a?.isLoading&&e?.skeleton===a?.skeleton}function Ja(e,a){return e.length===a.length&&e.every((s,o)=>{let n=a[o];return n?.id===s.id&&n.column.id===s.column.id})}function Qa(e,a,s){return s.every(o=>{let n=e.get(o.column.id),u=a.get(o.column.id);return n?.fixedSide===u?.fixedSide&&n?.isActionsColumn===u?.isActionsColumn&&n?.isExpansionColumn===u?.isExpansionColumn&&n?.isSelectionColumn===u?.isSelectionColumn&&n?.isSpacerColumn===u?.isSpacerColumn&&n?.isUtilityColumn===u?.isUtilityColumn&&n?.pinnedClassName===u?.pinnedClassName&&n?.utilityClassName===u?.utilityClassName&&Ya(n?.cellStyle,u?.cellStyle)})}function Ya(e,a){return e?.width===a?.width&&e?.minWidth===a?.minWidth&&e?.maxWidth===a?.maxWidth&&e?.left===a?.left&&e?.right===a?.right}var Ra=E.memo(qa,$a);function Za({columnGroupHeaderHeight:e,currentDensity:a$1,currentSorting:s,dir:o,draggedColumnIdRef:n,enableColumnReordering:u,enableColumnResizing:D,gridColumnIndex:C,gridMode:h$1,header:t$1,headerGroupHeaders:I,layout:c$1,primeColumnForResize:A,reorderColumn:x$1,resizeColumnLabel:v,resetColumnSize:S,TableHead:V,uiClassNames:_}){let W=t$1.column.columnDef.meta,H=E.useId(),b=!t$1.isPlaceholder&&t$1.subHeaders.length>0,k=b?t$1.column.columnDef:void 0,G=t$1.column.getCanSort(),r=t$1.column.getIsSorted(),z$1=s.findIndex(d=>d.id===t$1.column.id),M=u&&!t$1.isPlaceholder&&!b&&!c$1.isUtilityColumn&&!c$1.isSpacerColumn,j=h(W?.hideOn);return jsxs(V,{colSpan:t$1.colSpan,scope:t$1.isPlaceholder||c$1.isSpacerColumn?void 0:b?"colgroup":"col",role:h$1?c$1.isSpacerColumn?"presentation":"columnheader":void 0,"aria-colindex":h$1&&!c$1.isSpacerColumn?C:void 0,"aria-hidden":t$1.isPlaceholder||c$1.isSpacerColumn||void 0,"aria-description":b?k?.description:void 0,"aria-labelledby":!t$1.isPlaceholder&&!c$1.isUtilityColumn&&!c$1.isSpacerColumn?H:void 0,"data-column-id":t$1.column.id,"data-column-group-id":b?k?.id:void 0,"data-header-depth":t$1.depth,"data-dtp-slot":b?"data-table-column-group-header":"data-table-column-header",className:a("relative border-b",z(a$1),b&&_.columnGroupHeader,c$1.utilityClassName,c$1.isSpacerColumn&&"border-b-0 bg-transparent! p-0",c$1.pinnedClassName,j,f(t$1.getContext()),W?.headerClassName,b&&k?.headerClassName,W?.responsiveClassName),style:{...W?.headerStyle,...b?k?.headerStyle:void 0,...b&&(k?.headerHeight??e)!==void 0?{height:k?.headerHeight??e}:void 0,...c$1.headerStyle},title:b?k?.description:void 0,"aria-sort":r==="asc"?"ascending":r==="desc"?"descending":G?"none":void 0,draggable:M,tabIndex:M&&!G&&!(D&&t$1.column.getCanResize())?0:void 0,onDragStart:M?d=>{n.current=t$1.column.id,d.dataTransfer.effectAllowed="move";}:void 0,onDragOver:M?d=>{d.preventDefault(),d.dataTransfer.dropEffect="move";}:void 0,onDrop:M?d=>{d.preventDefault();let g=n.current;n.current=null,g&&x$1(g,t$1.column.id);}:void 0,onKeyDown:M?d=>{if(!d.altKey||d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;d.preventDefault();let g=I.filter(O=>!x(O.column.id)&&O.column.id!=="__spacer__"),$=g.findIndex(O=>O.column.id===t$1.column.id),T=g[d.key==="ArrowLeft"!=(o==="rtl")?$-1:$+1];T&&x$1(t$1.column.id,T.column.id);}:void 0,children:[t$1.isPlaceholder?null:G?jsxs("button",{type:"button",className:a("flex w-full items-center gap-2 font-medium",f(t$1.getContext())),onClick:t$1.column.getToggleSortingHandler(),children:[jsx("span",{id:H,className:"truncate",children:flexRender(t$1.column.columnDef.header,t$1.getContext())}),r?jsxs(Fragment,{children:[jsx(c,{className:a("size-4 shrink-0 transition-transform",r==="desc"?"rotate-0":"rotate-180")}),s.length>1&&z$1>=0?jsx("span",{className:"inline-flex size-4 shrink-0 items-center justify-center rounded-full text-[10px] leading-none",children:z$1+1}):null]}):jsx(t,{className:a("size-4 shrink-0",_.headerSortIcon??"opacity-70")})]}):c$1.isUtilityColumn||c$1.isSpacerColumn?flexRender(t$1.column.columnDef.header,t$1.getContext()):jsx("span",{id:H,children:flexRender(t$1.column.columnDef.header,t$1.getContext())}),D&&!t$1.isPlaceholder&&t$1.column.getCanResize()?jsx("div",{"aria-label":v,"aria-orientation":"vertical","aria-valuemax":tt(t$1),"aria-valuemin":at(t$1),"aria-valuenow":Math.round(t$1.getSize()),role:"separator",tabIndex:0,onDoubleClick:()=>{for(let d of ie(t$1))S(d.column.id);},onMouseDown:d=>{for(let g of ie(t$1))A(g.column.id,g.getSize());t$1.getResizeHandler()(d);},onTouchStart:d=>{for(let g of ie(t$1))A(g.column.id,g.getSize());t$1.getResizeHandler()(d);},onKeyDown:d=>{if(d.altKey)return;if(d.key==="Home"){d.preventDefault();for(let $ of ie(t$1))S($.column.id);return}if(d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;d.preventDefault(),d.stopPropagation();let g=d.key==="ArrowRight"!=(o==="rtl");nt(t$1,(g?1:-1)*(d.shiftKey?25:10));},className:a("absolute inset-y-0 z-50 h-full w-3 cursor-col-resize touch-none select-none ltr:right-0 ltr:translate-x-1/2 rtl:left-0 rtl:-translate-x-1/2 after:absolute after:top-0 after:left-1/2 after:h-full after:w-px after:-translate-x-1/2",_.resizeHandle??"after:bg-current after:opacity-20 hover:after:opacity-70",t$1.column.getIsResizing()&&(_.resizeHandleActive??"after:opacity-100"))}):null]},t$1.id)}function et(e,a){return e.header.id===a.header.id&&e.header.column.id===a.header.column.id&&e.header.column.columnDef===a.header.column.columnDef&&e.header.colSpan===a.header.colSpan&&e.header.isPlaceholder===a.header.isPlaceholder&<(e.header,a.header)&&e.currentDensity===a.currentDensity&&e.columnGroupHeaderHeight===a.columnGroupHeaderHeight&&e.dir===a.dir&&e.enableColumnReordering===a.enableColumnReordering&&e.enableColumnResizing===a.enableColumnResizing&&e.gridMode===a.gridMode&&e.gridColumnIndex===a.gridColumnIndex&&e.TableHead===a.TableHead&&e.uiClassNames===a.uiClassNames&&e.draggedColumnIdRef===a.draggedColumnIdRef&&e.primeColumnForResize===a.primeColumnForResize&&e.reorderColumn===a.reorderColumn&&e.resizeColumnLabel===a.resizeColumnLabel&&e.resetColumnSize===a.resetColumnSize&&e.selectionState===a.selectionState&&ot(e.currentSorting,a.currentSorting)&&rt(e.headerGroupHeaders,a.headerGroupHeaders)&&it(e.layout,a.layout)}function ie(e){return e.subHeaders.length?e.getLeafHeaders().filter(a=>!a.subHeaders.length):[e]}function at(e){return ie(e).reduce((a,s)=>a+(s.column.columnDef.minSize??20),0)}function tt(e){return ie(e).reduce((a,s)=>a+(s.column.columnDef.maxSize??Number.MAX_SAFE_INTEGER),0)}function nt(e,a){let s=ie(e),o=a/s.length;e.getContext().table.setColumnSizing(n=>{let u={...n};for(let D of s){let C=D.column,h=C.columnDef.minSize??20,t=C.columnDef.maxSize??Number.MAX_SAFE_INTEGER;u[C.id]=Math.min(t,Math.max(h,C.getSize()+o));}return u});}function lt(e,a){return e.subHeaders.length===a.subHeaders.length&&e.subHeaders.every((s,o)=>a.subHeaders[o]?.id===s.id)}function ot(e,a){return e.length===a.length&&e.every((s,o)=>{let n=a[o];return n?.id===s.id&&n.desc===s.desc})}function rt(e,a){return e.length===a.length&&e.every((s,o)=>a[o]?.id===s.id)}function it(e,a){return e.fixedSide===a.fixedSide&&e.isSpacerColumn===a.isSpacerColumn&&e.isUtilityColumn===a.isUtilityColumn&&e.pinnedClassName===a.pinnedClassName&&e.utilityClassName===a.utilityClassName&&e.headerStyle?.width===a.headerStyle?.width&&e.headerStyle?.minWidth===a.headerStyle?.minWidth&&e.headerStyle?.maxWidth===a.headerStyle?.maxWidth&&e.headerStyle?.left===a.headerStyle?.left&&e.headerStyle?.right===a.headerStyle?.right}var ha=E.memo(Za,et);function vt({ariaDescribedBy:e,ariaLabelledBy:a$1,bodyRowComponents:s,cellSelection:o,cellSelectionEnabled:n,columnLayouts:u,columnGroupHeaderHeight:D,currentDensity:C,currentDetailExpanded:h,currentSorting:t=[],dir:I,DataTableEmptyState:c,dragAndDrop:A,draggedColumnIdRef:x$1,draftValues:v,editingRowId:S,editingContext:V,emptyNode:_,enableColumnReordering:W,enableColumnResizing:H,explicitCustomCellColumnIds:b,fillMinWidth:k,flexGrow:G,gridMode:r,gridPageSize:z,gridRowOffset:M,onGridActiveRowIndexChange:j,onCellSelectionChange:d$1,getColumnLayout:g,getRowClassName:$,getRowLoadingState:T,infiniteScroll:O,layoutMode:ye,localSearchValue:ce,onRowClick:K,primeColumnForResize:me,renderedRows:ae,detailPanel:Oe,topPinnedRows:X,bottomPinnedRows:le,reorderColumn:we,resetColumnSize:Re,resolvedLabels:J,rowsToRender:he,ScrollArea:Ue,ScrollBar:Se,scrollbarVisibility:m,sentinelRef:F,setDraftValues:q,shouldRenderInitialLoading:Q,stateOverlayNode:Be,stickyHeader:U,stripedRows:fe,summaryRows:Y,table:B,tableClassName:P,tableContainerClassName:ve,Table:Fe,TableBody:We,TableCell:te,TableFooter:L="tfoot",TableHead:Sa,TableHeader:ka,TableRow:be,tableScrollContainerRef:je,tableScrollElement:qe,totalRowCount:na,uiClassNames:oe,virtualPaddingBottom:la,virtualPaddingTop:oa,visibleLeafColumnCount:ke,visibleLeafColumns:ne}){let Ea=B.getIsAllPageRowsSelected()?true:B.getIsSomePageRowsSelected()?"indeterminate":false,ra=B.getFilteredRowModel().rows,Ha=E.useMemo(()=>Y.length?ra.map(l=>l.original):[],[ra,Y.length]),Ee=B.getHeaderGroups().length,He=X.length+ae.length+le.length,[ge,ia]=E.useState({row:0,column:0}),sa=E.useRef(false),$e=E.useRef(false),De=E.useMemo(()=>[...X,...ae,...le],[le,ae,X]),se=E.useMemo(()=>ne.flatMap((l,i)=>l.id==="__spacer__"?[]:[i]),[ne]),pe=E.useCallback((l,i)=>{let f=De[l],p=ne[i];return f&&p&&!x(p.id)&&p.id!=="__spacer__"?{rowId:f.id,columnId:p.id}:void 0},[De,ne]),de=E.useMemo(()=>{if(!o)return;let l=De.findIndex(y=>y.id===o.anchor.rowId),i=De.findIndex(y=>y.id===o.focus.rowId),f=ne.findIndex(y=>y.id===o.anchor.columnId),p=ne.findIndex(y=>y.id===o.focus.columnId);if(!(l<0||i<0||f<0||p<0))return {firstRow:Math.min(l,i),lastRow:Math.max(l,i),firstColumn:Math.min(f,p),lastColumn:Math.max(f,p)}},[o,De,ne]),Pa=E.useCallback((l,i)=>!!(de&&l>=de.firstRow&&l<=de.lastRow&&i>=de.firstColumn&&i<=de.lastColumn),[de]),Na=E.useCallback(l=>{sa.current=true,ia(l);},[]),Pe=E.useCallback((l,i,f)=>{if(!n)return;let p=pe(l,i);if(!p)return;let y=f&&o?.anchor?o.anchor:p;d$1({anchor:y,focus:p});},[o,n,pe,d$1]),Ia=E.useCallback((l,i,f)=>{!n||l.button!==0||(l.preventDefault(),$e.current=true,Pe(i,f,l.shiftKey));},[n,Pe]),La=E.useCallback((l,i,f)=>{!n||!$e.current||l.buttons!==1||Pe(i,f,true);},[n,Pe]);E.useEffect(()=>{let l=()=>{$e.current=false;};return window.addEventListener("pointerup",l),()=>window.removeEventListener("pointerup",l)},[]),E.useEffect(()=>{if(!r)return;j?.(ge.row);let l=requestAnimationFrame(()=>{let i=je.current?.querySelectorAll('[data-dtp-grid-cell="true"]'),f=Array.from(i??[]).find(p=>Number(p.dataset.gridRowIndex)===ge.row&&Number(p.dataset.gridColumnIndex)===ge.column);f&&sa.current&&f.focus();});return ()=>cancelAnimationFrame(l)},[ge,r,j,je]);let xa=E.useCallback((l,i,f)=>{if(l.defaultPrevented||l.target!==l.currentTarget)return;let p=Math.max(1,z??(Math.floor((qe?.clientHeight||0)/Math.max(1,qe?.querySelector("tr")?.offsetHeight||48))||10)),y=Math.max(0,He-1),Z=Math.max(0,se.indexOf(f)),Ne=Math.max(0,se.length-1),ee=i,Ce=Z;switch(l.key){case "ArrowUp":ee--;break;case "ArrowDown":ee++;break;case "ArrowLeft":Ce--;break;case "ArrowRight":Ce++;break;case "Home":(l.ctrlKey||l.metaKey)&&(ee=0),Ce=0;break;case "End":(l.ctrlKey||l.metaKey)&&(ee=y),Ce=Ne;break;case "PageUp":ee-=p;break;case "PageDown":ee+=p;break;default:return}l.preventDefault();let Je={row:Math.min(y,Math.max(0,ee)),column:se[Math.min(Ne,Math.max(0,Ce))]??0};if(ia(Je),l.shiftKey&&n){let Qe=pe(Je.row,Je.column),da=o?.anchor??pe(i,f)??Qe;da&&Qe&&d$1({anchor:da,focus:Qe});}},[o,n,He,pe,z,se,d$1,qe]),Xe=(l,i,f)=>{let p=l.original,y=d(p),Z=y?{isLoading:true}:T?.(p,i),Ne=typeof Z=="boolean"?{isLoading:Z}:Z,ee=y?false:A?.getRowDraggable?.(p)??false;return jsx(Ra,{columnLayouts:u,components:s,currentDensity:C,draftValues:v,editingContext:V,dragAndDrop:A,explicitCustomCellColumnIds:b,getRowClassName:$,groupToggleLabel:l.getIsExpanded()?J.collapseRow:J.expandRow,isDraggable:ee,isDetailExpanded:h===true||!!h[l.id],isEditing:S===l.id,isExpanded:l.getIsExpanded(),isInitialLoadingRow:y,isSelected:l.getIsSelected(),loadingState:Ne,onRowClick:K,originalRow:p,pinnedPosition:f,detailPanel:Oe,row:l,rowIndex:i,setDraftValues:q,stripedRows:fe,uiClassNames:oe,visibleCells:l.getVisibleCells(),visibleLeafColumnCount:ke,gridMode:r,gridRowIndex:i,gridRowAriaIndex:Ee+M+i+1,activeGridCell:ge,cellSelectionEnabled:n,isGridCellSelected:Pa,onGridCellFocus:Na,onGridCellKeyDown:xa,onGridCellPointerDown:Ia,onGridCellPointerEnter:La},`${f??"center"}-${l.id}`)};return jsxs("div",{"data-dtp-slot":"data-table-table-shell",className:a("relative box-border border-2 border-transparent transition-colors",G?"flex min-h-0 flex-1 flex-col":"h-full",A?.isDragging&&(oe.dragActive??"rounded-md border-dashed")),children:[jsx("div",{ref:je,className:a(G?"flex min-h-0 flex-1 flex-col":"h-full"),children:jsxs(Ue,{type:m,className:a("rounded-md border",G?"min-h-0 flex-1":"h-full",oe.tableContainer,oe.tableScrollArea,ve),children:[jsx("div",{className:"min-h-full",children:jsxs(Fe,{"aria-describedby":e,"aria-labelledby":a$1,role:r?"grid":void 0,"aria-colcount":r?se.length:void 0,"aria-rowcount":r?Ee+(na??He)+Y.length:void 0,className:a("w-full table-fixed border-separate border-spacing-0",P),style:{minWidth:ye==="fill"&&k||void 0,width:ye==="fit"?B.getTotalSize():"100%"},children:[jsx("colgroup",{children:B.getVisibleLeafColumns().map(l=>{let i=g(l.id);return jsx("col",{style:i.colStyle},l.id)})}),jsx(ka,{role:r?"rowgroup":void 0,className:a(U?oe.tableStickyHeader??"sticky top-0 z-30 backdrop-blur":void 0),children:B.getHeaderGroups().map(l=>jsx(be,{role:r?"row":void 0,"aria-rowindex":r?l.depth+1:void 0,children:l.headers.map(i=>jsx(ha,{columnGroupHeaderHeight:D,currentDensity:C,currentSorting:t,dir:I,draggedColumnIdRef:x$1,enableColumnReordering:W,enableColumnResizing:H,header:i,headerGroupHeaders:l.headers,layout:dt(i,g),primeColumnForResize:me,reorderColumn:we,resizeColumnLabel:J.resizeColumn(typeof i.column.columnDef.header=="string"?i.column.columnDef.header:i.column.id),resetColumnSize:Re,selectionState:i.column.id==="__select__"?Ea:void 0,TableHead:Sa,uiClassNames:oe,gridMode:r,gridColumnIndex:i.isPlaceholder||i.subHeaders.length||i.column.id==="__spacer__"?void 0:B.getVisibleLeafColumns().filter(f=>f.id!=="__spacer__").findIndex(f=>f.id===i.column.id)+1},i.id))},l.id))}),jsx(We,{role:r?"rowgroup":void 0,children:X.length||ae.length||le.length?jsxs(Fragment,{children:[X.map((l,i)=>Xe(l,i,"top")),oa>0?jsx(be,{"aria-hidden":"true",role:r?"presentation":void 0,children:jsx(te,{colSpan:Math.max(1,ke),className:"border-b-0 p-0",style:{height:oa}})}):null,he.map(({row:l,rowIndex:i})=>Xe(l,i+X.length)),la>0?jsx(be,{"aria-hidden":"true",role:r?"presentation":void 0,children:jsx(te,{colSpan:Math.max(1,ke),className:"border-b-0 p-0",style:{height:la}})}):null,le.map((l,i)=>Xe(l,X.length+ae.length+i,"bottom"))]}):jsx(be,{role:r?"row":void 0,"aria-rowindex":r?Ee+1:void 0,children:jsx(te,{role:r?"gridcell":void 0,"aria-colindex":r?1:void 0,colSpan:Math.max(1,ke),className:"h-full grow",children:jsx("div",{className:"flex h-full min-h-full w-full grow items-center justify-center",children:_??jsx(c,{title:ce?J.noMatchingRowsTitle:J.noRowsTitle,description:ce?J.noMatchingRowsDescription:J.noRowsDescription})})})})}),Y.length?jsx(L,{role:r?"rowgroup":void 0,children:Y.map((l,i)=>jsx(be,{role:r?"row":void 0,"aria-rowindex":r?Ee+(na??He)+i+1:void 0,children:ne.map((f,p)=>{let y=g(f.id),Z=y.isSpacerColumn?null:l.cells[f.id]??(p===0?l.label:null);return jsx(te,{"data-column-id":f.id,role:r?y.isSpacerColumn?"presentation":"gridcell":void 0,"aria-colindex":r&&!y.isSpacerColumn?se.indexOf(p)+1:void 0,"aria-hidden":y.isSpacerColumn||void 0,className:a(y.isSpacerColumn?"border-b-0 bg-transparent! p-0":"border-b font-medium",!y.isSpacerColumn&&oe.cellBorder),style:y.cellStyle,children:typeof Z=="function"?Z({rows:Ha,columnId:f.id}):Z},`${l.key}-${f.id}`)})},l.key))}):null]})}),O?.enabled&&ae.length&&!Q?jsx("div",{className:"px-4 pb-4",children:jsx("div",{ref:F,className:"h-4 w-full"})}):null,jsx(Se,{orientation:"horizontal"})]})}),Be]})}function dt(e,a){let s=a(e.column.id);if(e.isPlaceholder||!e.subHeaders.length)return s;let o=e.getLeafHeaders().filter(D=>!D.subHeaders.length).map(D=>a(D.column.id)),n=o[0]?.fixedSide;if(!n||!o.every(D=>D.fixedSide===n))return s;let u=n==="left"?o[0]:o.at(-1);return {...s,fixedSide:n,headerStyle:u?.headerStyle?{left:u.headerStyle.left,right:u.headerStyle.right}:void 0,pinnedClassName:u?.pinnedClassName}}export{mt as a,gt as b,Ra as c,ha as d,vt as e};//# sourceMappingURL=chunk-PRDXFLFB.js.map +//# sourceMappingURL=chunk-PRDXFLFB.js.map \ No newline at end of file diff --git a/dist/chunk-PRDXFLFB.js.map b/dist/chunk-PRDXFLFB.js.map new file mode 100644 index 0000000..9748373 --- /dev/null +++ b/dist/chunk-PRDXFLFB.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/core/data-table/use-row-editing.tsx","../src/core/data-table/data-table-virtual-row-measurement.tsx","../src/core/data-table/data-table-cell-content.tsx","../src/core/data-table/data-table-body-row.tsx","../src/core/data-table/data-table-header-cell.tsx","../src/core/data-table/data-table-table-panel.tsx"],"names":["useRowEditing","columns","editableRows","onError","editingRowId","setEditingRowId","N","draftValues","setDraftValues","draftValuesRef","originalDraftValues","setOriginalDraftValues","editErrors","setEditErrors","isSavingEdit","setIsSavingEdit","isEditDirty","areDraftValuesEqual","cancelEditing","startEditingRow","row","rowId","initialValues","defaultDraftValues","saveEdit","draftSnapshot","rollback","validation","validationErrors","normalizeEditValidationErrors","optimisticResult","error","clearEditError","columnId","current","next","getDataTableLeafColumns","draft","column","renderEditableCell","context","components","editing","Checkbox","Input","meta","accessorKey","draftValue","setDraftValue","value","handleKeyDown","event","inputType","getEditableInputType","jsxs","jsx","checked","getEditableInputValue","rawValue","parsedValue","parseEditableInputValue","left","right","keys","key","type","previousValue","DataTableVirtualRowMeasurementContext","Ge","DataTableVirtualRowMeasurementProvider","children","measureRow","useDataTableVirtualRowMeasurement","renderDataTableCellContent","classNames","options","hasCustomCell","renderedCellContent","flexRender","hasComplexRenderedContent","isComplexRenderedCellContent","resolvedOverflow","resolveDataTableCellOverflow","cn","getCellOverflowClassName","IconClock","formatDateValue","content","formatCellValue","useCustomOverflowDefaults","overflow","wa","DataTableBodyRowInner","columnLayouts","currentDensity","editingContext","dragAndDrop","explicitCustomCellColumnIds","getRowClassName","groupToggleLabel","gridMode","gridRowAriaIndex","gridRowIndex","activeGridCell","cellSelectionEnabled","isGridCellSelected","onGridCellFocus","onGridCellKeyDown","onGridCellPointerDown","onGridCellPointerEnter","isDraggable","isDetailExpanded","isEditing","isExpanded","isInitialLoadingRow","isSelected","loadingState","onRowClick","pinnedPosition","originalRow","detailPanel","rowIndex","stripedRows","uiClassNames","visibleCells","visibleLeafColumnCount","Skeleton","TableCell","TableRow","virtualRowMeasurement","measureElement","firstDataColumnId","cell","spacerColumnIndex","Me","isDataTableInteractiveTarget","columnIndex","cellContext","layout","isSelectionColumn","isExpansionColumn","isActionsColumn","isSpacerColumn","gridColumnAriaIndex","hideClassName","hideOnClassName","cellClassName","isDataTableLoadingRow","isCellSelected","getDensityCellClassName","cellAlignClassName","areDataTableBodyRowsEqual","previous","sameLoadingState","sameVisibleCells","sameColumnLayouts","index","nextCell","cells","previousLayout","nextLayout","sameCellStyle","DataTableBodyRow","DataTableHeaderCellInner","columnGroupHeaderHeight","currentSorting","dir","draggedColumnIdRef","enableColumnReordering","enableColumnResizing","gridColumnIndex","header","headerGroupHeaders","primeColumnForResize","reorderColumn","resizeColumnLabel","resetColumnSize","TableHead","headerContentId","Ve","isColumnGroup","groupDefinition","canSort","sortingState","sortingIndex","sort","canReorderColumn","getDensityHeaderClassName","headerAlignClassName","sourceColumnId","headers","item","isUtilityColumnId","currentIndex","target","Fragment","IconChevronDown","IconSelector","getHeaderMaximumSize","getHeaderMinimumSize","leafHeader","getResizableLeafHeaders","grows","resizeHeaderBy","areDataTableHeaderCellsEqual","sameSubHeaders","sameSorting","sameHeaderGroupHeaders","sameHeaderLayout","total","delta","leafHeaders","deltaPerLeaf","minimum","maximum","nextSort","DataTableHeaderCell","DataTableTablePanel","ariaDescribedBy","ariaLabelledBy","bodyRowComponents","cellSelection","currentDetailExpanded","DataTableEmptyState","emptyNode","fillMinWidth","flexGrow","gridPageSize","gridRowOffset","onGridActiveRowIndexChange","onCellSelectionChange","getColumnLayout","getRowLoadingState","infiniteScroll","layoutMode","localSearchValue","renderedRows","topPinnedRows","bottomPinnedRows","resolvedLabels","rowsToRender","ScrollArea","ScrollBar","scrollbarVisibility","sentinelRef","shouldRenderInitialLoading","stateOverlayNode","stickyHeader","summaryRows","table","tableClassName","tableContainerClassName","Table","TableBody","TableFooter","TableHeader","tableScrollContainerRef","tableScrollElement","totalRowCount","virtualPaddingBottom","virtualPaddingTop","visibleLeafColumns","selectionState","filteredRows","summarySourceRows","headerRowCount","displayRowCount","activeCell","setActiveCell","shouldRestoreGridFocusRef","pointerSelectingRef","gridRows","navigableGridColumnIndices","getGridCoordinate","selectedBounds","anchorRow","focusRow","anchorColumn","focusColumn","handleGridCellFocus","selectGridCell","extend","focus","anchor","handleGridCellPointerDown","handleGridCellPointerEnter","stopSelecting","frame","moveGridFocus","pageRows","lastRow","currentColumnPosition","lastColumnPosition","nextRow","nextColumnPosition","renderBodyRow","resolvedLoadingState","headerGroup","getHeaderLayout","summaryRow","summaryIndex","columnLayout","leafLayouts","fixedSide","edgeLayout"],"mappings":"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","file":"chunk-PRDXFLFB.js","sourcesContent":["import * as React from \"react\";\nimport type { CellContext } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableColumnType,\n DataTableEditableRowsConfig,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { getDataTableLeafColumns } from \"./data-table-utils\";\n\nexport function useRowEditing({\n columns,\n editableRows,\n onError,\n}: {\n columns: Array>;\n editableRows: DataTableEditableRowsConfig | undefined;\n onError?: (error: unknown, row: TData) => void;\n}) {\n const [editingRowId, setEditingRowId] = React.useState(null);\n const [draftValues, setDraftValues] = React.useState<\n Record\n >({});\n const draftValuesRef = React.useRef(draftValues);\n const [originalDraftValues, setOriginalDraftValues] = React.useState<\n Record\n >({});\n const [editErrors, setEditErrors] = React.useState>(\n {},\n );\n const [isSavingEdit, setIsSavingEdit] = React.useState(false);\n const isEditDirty = React.useMemo(\n () => !areDraftValuesEqual(draftValues, originalDraftValues),\n [draftValues, originalDraftValues],\n );\n\n React.useEffect(() => {\n draftValuesRef.current = draftValues;\n }, [draftValues]);\n\n const cancelEditing = React.useCallback(() => {\n setEditingRowId(null);\n setDraftValues({});\n setEditErrors({});\n setOriginalDraftValues({});\n }, []);\n\n const startEditingRow = React.useCallback(\n (row: TData, rowId: string) => {\n const initialValues =\n editableRows?.getInitialValues?.(row) ??\n defaultDraftValues(row, columns);\n setOriginalDraftValues({ ...initialValues });\n setDraftValues(initialValues);\n setEditErrors({});\n setEditingRowId(rowId);\n },\n [columns, editableRows],\n );\n\n const saveEdit = React.useCallback(\n async (row: TData) => {\n if (!editableRows) {\n return false;\n }\n\n setIsSavingEdit(true);\n const draftSnapshot = { ...draftValuesRef.current };\n let rollback: (() => void) | undefined;\n try {\n const validation = await editableRows.validateRow?.(\n row,\n draftSnapshot,\n );\n const validationErrors = normalizeEditValidationErrors(validation);\n if (Object.keys(validationErrors).length > 0) {\n setEditErrors(validationErrors);\n return false;\n }\n\n setEditErrors({});\n const optimisticResult = editableRows.onOptimisticUpdate?.(\n row,\n draftSnapshot,\n );\n rollback =\n typeof optimisticResult === \"function\"\n ? optimisticResult\n : undefined;\n await editableRows.onSaveRow(row, draftSnapshot);\n editableRows.onSaveSuccess?.(row, draftSnapshot);\n React.startTransition(cancelEditing);\n return true;\n } catch (error) {\n try {\n rollback?.();\n } catch {\n // Preserve the original save error for the public error callbacks.\n }\n editableRows.onSaveError?.(error, row, draftSnapshot);\n onError?.(error, row);\n return false;\n } finally {\n setIsSavingEdit(false);\n }\n },\n [cancelEditing, editableRows, onError],\n );\n const clearEditError = React.useCallback((columnId: string) => {\n setEditErrors((current) => {\n if (!current[columnId] && !current._row) {\n return current;\n }\n const next = { ...current };\n delete next[columnId];\n delete next._row;\n return next;\n });\n }, []);\n\n return {\n cancelEditing,\n clearEditError,\n draftValues,\n editErrors,\n editingRowId,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n setDraftValues,\n setEditingRowId,\n startEditingRow,\n };\n}\n\nfunction defaultDraftValues(\n row: TData,\n columns: Array>,\n) {\n return getDataTableLeafColumns(columns).reduce>(\n (draft, { column }) => {\n if (\"accessorKey\" in column && typeof column.accessorKey === \"string\") {\n draft[column.accessorKey] = (row as Record)[\n column.accessorKey\n ];\n }\n return draft;\n },\n {},\n );\n}\n\nexport function renderEditableCell(\n context: CellContext,\n draftValues: Record,\n setDraftValues: React.Dispatch>>,\n components: Pick,\n editing?: {\n cancel: () => void;\n commit: () => void;\n errors: Record;\n isDirty: boolean;\n isPending: boolean;\n cancelOnEscape: boolean;\n commitOnEnter: boolean;\n onValueChange: (columnId: string) => void;\n },\n) {\n const { Checkbox, Input } = components;\n const column = context.column.columnDef as DataTableColumnDef;\n const meta = column.meta;\n const accessorKey =\n \"accessorKey\" in column && typeof column.accessorKey === \"string\"\n ? column.accessorKey\n : context.column.id;\n const draftValue = draftValues[accessorKey];\n const error =\n editing?.errors[accessorKey] ??\n editing?.errors[context.column.id] ??\n editing?.errors._row;\n const setDraftValue = (value: unknown) => {\n editing?.onValueChange(accessorKey);\n setDraftValues((current) => ({\n ...current,\n [accessorKey]: value,\n }));\n };\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === \"Escape\" && editing?.cancelOnEscape) {\n event.preventDefault();\n editing.cancel();\n } else if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n editing?.commitOnEnter\n ) {\n event.preventDefault();\n editing.commit();\n }\n };\n\n if (meta?.renderEditCell) {\n return meta.renderEditCell({\n cell: context,\n row: context.row.original,\n value: context.getValue(),\n draftValue,\n error,\n isDirty: editing?.isDirty ?? false,\n isPending: editing?.isPending ?? false,\n setDraftValue,\n });\n }\n\n const inputType = getEditableInputType(meta?.type, draftValue);\n\n if (typeof draftValue === \"boolean\") {\n return (\n
    \n {\n setDraftValue(checked === true);\n }}\n onKeyDown={handleKeyDown}\n />\n {error ? (\n \n {error}\n \n ) : null}\n
    \n );\n }\n\n return (\n
    \n ) => {\n const rawValue = event.target.value;\n const parsedValue = meta?.parseEditValue\n ? meta.parseEditValue(rawValue, context)\n : parseEditableInputValue(rawValue, inputType, draftValue);\n setDraftValue(parsedValue);\n }}\n onKeyDown={handleKeyDown}\n />\n {error ? (\n \n {error}\n \n ) : null}\n
    \n );\n}\n\nfunction normalizeEditValidationErrors(\n value: void | string | Record,\n) {\n if (!value) {\n return {};\n }\n return typeof value === \"string\" ? { _row: value } : value;\n}\n\nfunction areDraftValuesEqual(\n left: Record,\n right: Record,\n) {\n const keys = new Set([...Object.keys(left), ...Object.keys(right)]);\n return Array.from(keys).every((key) => Object.is(left[key], right[key]));\n}\n\nfunction getEditableInputType(\n type: DataTableColumnType | undefined,\n value: unknown,\n) {\n if (type === \"numeric\" || typeof value === \"number\") {\n return \"number\";\n }\n\n if (type === \"date\" || value instanceof Date) {\n return \"datetime-local\";\n }\n\n return \"text\";\n}\n\nfunction getEditableInputValue(value: unknown, inputType = \"text\") {\n if (value == null) {\n return \"\";\n }\n\n if (value instanceof Date) {\n return inputType === \"datetime-local\"\n ? value.toISOString().slice(0, 16)\n : value.toISOString();\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n return \"\";\n}\n\nfunction parseEditableInputValue(\n value: string,\n inputType: string,\n previousValue: unknown,\n) {\n if (inputType === \"number\") {\n return value === \"\" ? null : Number(value);\n }\n\n if (inputType === \"datetime-local\") {\n if (!value) {\n return null;\n }\n return previousValue instanceof Date ? new Date(value) : value;\n }\n\n return value;\n}\n","import * as React from \"react\";\n\nconst DataTableVirtualRowMeasurementContext = React.createContext<\n ((element: HTMLTableRowElement | null) => void) | undefined\n>(undefined);\n\nexport function DataTableVirtualRowMeasurementProvider({\n children,\n measureRow,\n}: {\n children: React.ReactNode;\n measureRow: ((element: HTMLTableRowElement | null) => void) | undefined;\n}) {\n return (\n \n {children}\n \n );\n}\n\nexport function useDataTableVirtualRowMeasurement():\n | ((element: HTMLTableRowElement | null) => void)\n | undefined {\n return React.useContext(DataTableVirtualRowMeasurementContext);\n}\n","import * as React from \"react\";\nimport { flexRender, type CellContext } from \"@tanstack/react-table\";\nimport { IconClock } from \"../icons\";\nimport type {\n DataTableCellOverflow,\n DataTableColumnDef,\n} from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nexport function renderDataTableCellContent(\n context: CellContext,\n classNames?: DataTableUiClassNames,\n options?: {\n hasCustomCell?: boolean;\n useCustomOverflowDefaults?: boolean;\n },\n) {\n const column = context.column.columnDef as DataTableColumnDef;\n const meta = column.meta;\n const value = context.getValue();\n const hasCustomCell = options?.hasCustomCell ?? false;\n const renderedCellContent = hasCustomCell && column.cell\n ? flexRender(column.cell, context)\n : undefined;\n const hasComplexRenderedContent = isComplexRenderedCellContent(\n renderedCellContent,\n );\n const resolvedOverflow = resolveDataTableCellOverflow({\n context,\n useCustomOverflowDefaults: options?.useCustomOverflowDefaults ?? false,\n value,\n });\n\n if (meta?.type === \"date\" && !hasCustomCell) {\n return (\n \n \n {formatDateValue(value)}\n \n );\n }\n\n const content =\n renderedCellContent !== undefined &&\n renderedCellContent !== null &&\n renderedCellContent !== \"\"\n ? renderedCellContent\n : value == null || value === \"\"\n ? -\n : formatCellValue(value);\n\n return (\n *]:max-w-full [&>*]:min-w-0\",\n )}\n >\n {content}\n \n );\n}\n\nfunction resolveDataTableCellOverflow({\n context,\n useCustomOverflowDefaults,\n value,\n}: {\n context: CellContext;\n useCustomOverflowDefaults: boolean;\n value: unknown;\n}): DataTableCellOverflow {\n const column = context.column.columnDef as DataTableColumnDef;\n const resolvedOverflow =\n typeof column.meta?.overflow === \"function\"\n ? column.meta.overflow({\n row: context.row.original,\n value,\n })\n : column.meta?.overflow;\n\n if (resolvedOverflow) {\n return resolvedOverflow;\n }\n\n return useCustomOverflowDefaults ? \"clip\" : \"truncate\";\n}\n\nfunction getCellOverflowClassName(overflow: DataTableCellOverflow) {\n switch (overflow) {\n case \"clip\":\n return \"block overflow-hidden whitespace-nowrap\";\n case \"wrap\":\n return \"block overflow-hidden whitespace-normal break-words\";\n case \"visible\":\n return \"block overflow-visible whitespace-normal\";\n case \"truncate\":\n default:\n return \"block overflow-hidden text-ellipsis whitespace-nowrap\";\n }\n}\n\nfunction isComplexRenderedCellContent(content: React.ReactNode) {\n if (content == null) {\n return false;\n }\n\n return (\n React.isValidElement(content) ||\n Array.isArray(content) ||\n typeof content === \"object\"\n );\n}\n\nfunction formatDateValue(value: unknown) {\n if (typeof value === \"number\") {\n return new Date(value * 1000).toLocaleString();\n }\n\n if (typeof value === \"string\" && value) {\n return value;\n }\n\n return \"-\";\n}\n\nfunction formatCellValue(value: unknown) {\n if (value instanceof Date) {\n return value.toLocaleString();\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n try {\n return JSON.stringify(value);\n } catch {\n return \"-\";\n }\n}\n","import * as React from \"react\";\nimport { flexRender, type Cell, type Row } from \"@tanstack/react-table\";\nimport type { RowPinningPosition } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableDensity,\n DataTableProps,\n DataTableRowLoadingState,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { renderDataTableCellContent } from \"./data-table-cell-content\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport {\n getDensityCellClassName,\n isDataTableInteractiveTarget,\n isDataTableLoadingRow,\n} from \"./data-table-utils\";\nimport { renderEditableCell } from \"./use-row-editing\";\nimport { useDataTableVirtualRowMeasurement } from \"./data-table-virtual-row-measurement\";\nimport { cellAlignClassName, hideOnClassName } from \"../types\";\n\nexport type DataTableRowEditingContext = {\n cancel: () => void;\n clearError: (columnId: string) => void;\n commit: (row: TData) => void;\n errors: Record;\n isDirty: boolean;\n isPending: boolean;\n cancelOnEscape: boolean;\n commitOnEnter: boolean;\n};\n\ntype DataTableBodyRowProps = {\n columnLayouts: ReadonlyMap;\n components: Pick<\n DataTableUiKit,\n \"Checkbox\" | \"Input\" | \"Skeleton\" | \"TableCell\" | \"TableRow\"\n >;\n currentDensity: DataTableDensity;\n draftValues: Record;\n editingContext?: DataTableRowEditingContext;\n dragAndDrop: DataTableProps[\"dragAndDrop\"];\n explicitCustomCellColumnIds: ReadonlySet;\n getRowClassName: DataTableProps[\"getRowClassName\"];\n groupToggleLabel: string;\n gridMode: boolean;\n gridRowAriaIndex: number;\n gridRowIndex: number;\n activeGridCell: { row: number; column: number };\n cellSelectionEnabled: boolean;\n isGridCellSelected: (row: number, column: number) => boolean;\n onGridCellFocus: (cell: { row: number; column: number }) => void;\n onGridCellKeyDown: (\n event: React.KeyboardEvent,\n row: number,\n column: number,\n ) => void;\n onGridCellPointerDown: (\n event: React.PointerEvent,\n row: number,\n column: number,\n ) => void;\n onGridCellPointerEnter: (\n event: React.PointerEvent,\n row: number,\n column: number,\n ) => void;\n isDraggable: boolean;\n isDetailExpanded: boolean;\n isEditing: boolean;\n isExpanded: boolean;\n isInitialLoadingRow: boolean;\n isSelected: boolean;\n loadingState: DataTableRowLoadingState | undefined;\n onRowClick: DataTableProps[\"onRowClick\"];\n pinnedPosition?: Exclude;\n originalRow: TData;\n detailPanel: DataTableProps[\"detailPanel\"];\n row: Row;\n rowIndex: number;\n setDraftValues: React.Dispatch>>;\n stripedRows: boolean;\n uiClassNames: DataTableUiClassNames;\n visibleCells: Array>;\n visibleLeafColumnCount: number;\n};\n\nfunction DataTableBodyRowInner({\n columnLayouts,\n components,\n currentDensity,\n draftValues,\n editingContext,\n dragAndDrop,\n explicitCustomCellColumnIds,\n getRowClassName,\n groupToggleLabel,\n gridMode,\n gridRowAriaIndex,\n gridRowIndex,\n activeGridCell,\n cellSelectionEnabled,\n isGridCellSelected,\n onGridCellFocus,\n onGridCellKeyDown,\n onGridCellPointerDown,\n onGridCellPointerEnter,\n isDraggable,\n isDetailExpanded,\n isEditing,\n isExpanded,\n isInitialLoadingRow,\n isSelected,\n loadingState,\n onRowClick,\n pinnedPosition,\n originalRow,\n detailPanel,\n row,\n rowIndex,\n setDraftValues,\n stripedRows,\n uiClassNames,\n visibleCells,\n visibleLeafColumnCount,\n}: DataTableBodyRowProps) {\n const { Checkbox, Input, Skeleton, TableCell, TableRow } = components;\n const virtualRowMeasurement = useDataTableVirtualRowMeasurement();\n const measureElement = pinnedPosition ? undefined : virtualRowMeasurement;\n const firstDataColumnId = visibleCells.find(\n (cell) => !columnLayouts.get(cell.column.id)?.isUtilityColumn,\n )?.column.id;\n const spacerColumnIndex = visibleCells.findIndex(\n (cell) => cell.column.id === \"__spacer__\",\n );\n\n return (\n \n 0 ? row.depth : undefined\n }\n data-dtp-slot={\n pinnedPosition ? \"data-table-pinned-row\" : \"data-table-row\"\n }\n data-row-pinned={pinnedPosition}\n data-row-grouped={row.getIsGrouped() || undefined}\n draggable={isInitialLoadingRow ? false : isDraggable}\n data-loading={loadingState?.isLoading || undefined}\n data-row-index={isInitialLoadingRow ? undefined : rowIndex}\n data-row-parity={\n stripedRows && !isInitialLoadingRow\n ? rowIndex % 2 === 0\n ? \"odd\"\n : \"even\"\n : undefined\n }\n data-state={\n isInitialLoadingRow ? undefined : isSelected ? \"selected\" : undefined\n }\n role={gridMode ? \"row\" : undefined}\n aria-rowindex={gridMode ? gridRowAriaIndex : undefined}\n tabIndex={\n !gridMode && onRowClick && !isInitialLoadingRow ? 0 : undefined\n }\n className={cn(\n !isInitialLoadingRow &&\n getRowClassName?.(originalRow, {\n row: originalRow,\n rowId: row.id,\n rowIndex,\n isEditing,\n isExpanded,\n isLoading: Boolean(loadingState?.isLoading),\n isSelected,\n pinnedPosition: pinnedPosition ?? false,\n }),\n uiClassNames.row,\n pinnedPosition === \"top\" &&\n cn(\"border-b-2\", uiClassNames.rowPinnedTop),\n pinnedPosition === \"bottom\" &&\n cn(\"border-t-2\", uiClassNames.rowPinnedBottom),\n stripedRows &&\n !isInitialLoadingRow &&\n (rowIndex % 2 === 0\n ? uiClassNames.rowOdd\n : uiClassNames.rowEven),\n isSelected && !isInitialLoadingRow && uiClassNames.rowSelected,\n onRowClick && !isInitialLoadingRow && \"cursor-pointer\",\n isInitialLoadingRow && \"pointer-events-none\",\n )}\n onClick={(event: React.MouseEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) {\n return;\n }\n\n if (gridMode && cellSelectionEnabled) return;\n\n void onRowClick?.({ row: originalRow, rowId: row.id });\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (\n isInitialLoadingRow ||\n !onRowClick ||\n (event.key !== \"Enter\" && event.key !== \" \")\n ) {\n return;\n }\n\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) {\n return;\n }\n\n event.preventDefault();\n void onRowClick({ row: originalRow, rowId: row.id });\n }}\n onDragStart={(event: React.DragEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n dragAndDrop?.onRowDragStart?.({\n row: originalRow,\n rowId: row.id,\n event,\n });\n }}\n onDragEnd={(event: React.DragEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n dragAndDrop?.onRowDragEnd?.({\n row: originalRow,\n rowId: row.id,\n event,\n });\n }}\n >\n {visibleCells.map((cell, columnIndex) => {\n const meta = (\n cell.column.columnDef as DataTableColumnDef\n ).meta;\n const cellContext = cell.getContext();\n const value = cell.getValue();\n const layout = columnLayouts.get(cell.column.id);\n const isSelectionColumn = layout?.isSelectionColumn ?? false;\n const isExpansionColumn = layout?.isExpansionColumn ?? false;\n const isActionsColumn = layout?.isActionsColumn ?? false;\n const isSpacerColumn = layout?.isSpacerColumn ?? false;\n const gridColumnAriaIndex =\n columnIndex +\n 1 -\n (spacerColumnIndex >= 0 && spacerColumnIndex < columnIndex ? 1 : 0);\n const hideClassName = hideOnClassName(meta?.hideOn);\n const cellClassName =\n isInitialLoadingRow || isDataTableLoadingRow(originalRow)\n ? undefined\n : typeof meta?.cellClassName === \"function\"\n ? meta.cellClassName({\n row: originalRow,\n value,\n })\n : meta?.cellClassName;\n const isCellSelected =\n gridMode && cellSelectionEnabled &&\n !isInitialLoadingRow &&\n !isSpacerColumn &&\n isGridCellSelected(gridRowIndex, columnIndex);\n\n return (\n onGridCellFocus({ row: gridRowIndex, column: columnIndex })\n : undefined\n }\n onKeyDown={\n gridMode && !isSpacerColumn\n ? (event: React.KeyboardEvent) => {\n if (event.target !== event.currentTarget) {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.currentTarget.focus();\n }\n return;\n }\n onGridCellKeyDown(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n onPointerDown={\n gridMode &&\n cellSelectionEnabled &&\n !layout?.isUtilityColumn &&\n !isSpacerColumn\n ? (event: React.PointerEvent) => {\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) return;\n event.currentTarget.focus();\n onGridCellPointerDown(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n onPointerEnter={\n gridMode &&\n cellSelectionEnabled &&\n !layout?.isUtilityColumn &&\n !isSpacerColumn\n ? (event: React.PointerEvent) => {\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) return;\n onGridCellPointerEnter(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n className={cn(\n \"border-b\",\n getDensityCellClassName(currentDensity),\n uiClassNames.cellBorder,\n isCellSelected && uiClassNames.cellSelected,\n layout?.utilityClassName,\n layout?.isSpacerColumn && \"border-b-0 bg-transparent! p-0\",\n layout?.pinnedClassName,\n hideClassName,\n cellAlignClassName(cellContext),\n meta?.responsiveClassName,\n cellClassName,\n )}\n style={layout?.cellStyle}\n >\n 0 && cell.column.id === firstDataColumnId\n ? { paddingInlineStart: `${row.depth}rem` }\n : undefined\n }\n >\n {isSpacerColumn ? null : loadingState?.isLoading ? (\n (meta?.skeleton?.(cellContext) ??\n loadingState.skeleton ?? (\n \n ))\n ) : isEditing &&\n cell.column.id !== \"__select__\" &&\n cell.column.id !== \"__expand__\" &&\n cell.column.id !== \"__actions__\" ? (\n renderEditableCell(\n cellContext,\n draftValues,\n setDraftValues,\n {\n Checkbox,\n Input,\n },\n editingContext\n ? {\n cancel: editingContext.cancel,\n cancelOnEscape: editingContext.cancelOnEscape,\n commit: () => editingContext.commit(originalRow),\n commitOnEnter: editingContext.commitOnEnter,\n errors: editingContext.errors,\n isDirty: editingContext.isDirty,\n isPending: editingContext.isPending,\n onValueChange: editingContext.clearError,\n }\n : undefined,\n )\n ) : row.getIsGrouped() && cell.getIsPlaceholder() ? null : row.getIsGrouped() && cell.getIsGrouped() ? (\n row.toggleExpanded()}\n aria-expanded={row.getIsExpanded()}\n aria-label={groupToggleLabel}\n >\n \n {renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell:\n explicitCustomCellColumnIds.has(cell.column.id),\n useCustomOverflowDefaults:\n explicitCustomCellColumnIds.has(cell.column.id),\n })}\n \n \n ({row.subRows.length})\n \n \n ) : row.getIsGrouped() && cell.getIsAggregated() ? (\n cell.column.columnDef.aggregatedCell\n ? flexRender(cell.column.columnDef.aggregatedCell, cellContext)\n : renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell: false,\n useCustomOverflowDefaults: false,\n })\n ) : (\n renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell:\n explicitCustomCellColumnIds.has(cell.column.id) ||\n isSelectionColumn ||\n isExpansionColumn ||\n isActionsColumn ||\n isSpacerColumn,\n useCustomOverflowDefaults:\n explicitCustomCellColumnIds.has(cell.column.id) ||\n isSelectionColumn ||\n isExpansionColumn ||\n isActionsColumn ||\n isSpacerColumn,\n })\n )}\n \n \n );\n })}\n \n {!isInitialLoadingRow && detailPanel && isDetailExpanded ? (\n \n \n {detailPanel.render({\n row: originalRow,\n rowId: row.id,\n tableRow: row,\n })}\n \n \n ) : null}\n \n );\n}\n\nfunction areDataTableBodyRowsEqual(\n previous: DataTableBodyRowProps,\n next: DataTableBodyRowProps,\n) {\n return (\n previous.row.id === next.row.id &&\n previous.row.original === next.row.original &&\n previous.rowIndex === next.rowIndex &&\n previous.isSelected === next.isSelected &&\n previous.isInitialLoadingRow === next.isInitialLoadingRow &&\n previous.isEditing === next.isEditing &&\n (!previous.isEditing || previous.editingContext === next.editingContext) &&\n previous.isExpanded === next.isExpanded &&\n previous.isDraggable === next.isDraggable &&\n sameLoadingState(previous.loadingState, next.loadingState) &&\n sameVisibleCells(previous.visibleCells, next.visibleCells) &&\n previous.components === next.components &&\n sameColumnLayouts(\n previous.columnLayouts,\n next.columnLayouts,\n next.visibleCells,\n ) &&\n previous.currentDensity === next.currentDensity &&\n previous.detailPanel === next.detailPanel &&\n previous.isDetailExpanded === next.isDetailExpanded &&\n previous.pinnedPosition === next.pinnedPosition &&\n previous.onRowClick === next.onRowClick &&\n previous.dragAndDrop === next.dragAndDrop &&\n previous.getRowClassName === next.getRowClassName &&\n previous.groupToggleLabel === next.groupToggleLabel &&\n previous.gridMode === next.gridMode &&\n (!next.gridMode ||\n (previous.gridRowAriaIndex === next.gridRowAriaIndex &&\n previous.gridRowIndex === next.gridRowIndex &&\n previous.activeGridCell.row === next.activeGridCell.row &&\n previous.activeGridCell.column === next.activeGridCell.column &&\n previous.cellSelectionEnabled === next.cellSelectionEnabled &&\n previous.isGridCellSelected === next.isGridCellSelected &&\n previous.onGridCellFocus === next.onGridCellFocus &&\n previous.onGridCellKeyDown === next.onGridCellKeyDown &&\n previous.onGridCellPointerDown === next.onGridCellPointerDown &&\n previous.onGridCellPointerEnter === next.onGridCellPointerEnter)) &&\n previous.stripedRows === next.stripedRows &&\n previous.uiClassNames === next.uiClassNames &&\n previous.explicitCustomCellColumnIds === next.explicitCustomCellColumnIds &&\n (!previous.isEditing || previous.draftValues === next.draftValues)\n );\n}\n\nfunction sameLoadingState(\n previous: DataTableRowLoadingState | undefined,\n next: DataTableRowLoadingState | undefined,\n) {\n return (\n previous?.isLoading === next?.isLoading &&\n previous?.skeleton === next?.skeleton\n );\n}\n\nfunction sameVisibleCells(\n previous: Array>,\n next: Array>,\n) {\n return (\n previous.length === next.length &&\n previous.every((cell, index) => {\n const nextCell = next[index];\n return nextCell?.id === cell.id && nextCell.column.id === cell.column.id;\n })\n );\n}\n\nfunction sameColumnLayouts(\n previous: ReadonlyMap,\n next: ReadonlyMap,\n cells: Array>,\n) {\n return cells.every((cell) => {\n const previousLayout = previous.get(cell.column.id);\n const nextLayout = next.get(cell.column.id);\n\n return (\n previousLayout?.fixedSide === nextLayout?.fixedSide &&\n previousLayout?.isActionsColumn === nextLayout?.isActionsColumn &&\n previousLayout?.isExpansionColumn === nextLayout?.isExpansionColumn &&\n previousLayout?.isSelectionColumn === nextLayout?.isSelectionColumn &&\n previousLayout?.isSpacerColumn === nextLayout?.isSpacerColumn &&\n previousLayout?.isUtilityColumn === nextLayout?.isUtilityColumn &&\n previousLayout?.pinnedClassName === nextLayout?.pinnedClassName &&\n previousLayout?.utilityClassName === nextLayout?.utilityClassName &&\n sameCellStyle(previousLayout?.cellStyle, nextLayout?.cellStyle)\n );\n });\n}\n\nfunction sameCellStyle(\n previous: React.CSSProperties | undefined,\n next: React.CSSProperties | undefined,\n) {\n return (\n previous?.width === next?.width &&\n previous?.minWidth === next?.minWidth &&\n previous?.maxWidth === next?.maxWidth &&\n previous?.left === next?.left &&\n previous?.right === next?.right\n );\n}\n\nexport const DataTableBodyRow = React.memo(\n DataTableBodyRowInner,\n areDataTableBodyRowsEqual,\n) as typeof DataTableBodyRowInner;\n","import * as React from \"react\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { IconChevronDown, IconSelector } from \"../icons\";\nimport type { Header, SortingState } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableColumnGroupDef,\n DataTableDensity,\n DataTableProps,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport {\n getDensityHeaderClassName,\n isUtilityColumnId,\n} from \"./data-table-utils\";\nimport { headerAlignClassName, hideOnClassName } from \"../types\";\n\ntype DataTableHeaderCellProps = {\n columnGroupHeaderHeight: DataTableProps[\"columnGroupHeaderHeight\"];\n currentDensity: DataTableDensity;\n currentSorting: SortingState;\n dir: NonNullable[\"dir\"]>;\n draggedColumnIdRef: React.MutableRefObject;\n enableColumnReordering: boolean;\n enableColumnResizing: boolean;\n gridColumnIndex?: number;\n gridMode: boolean;\n header: Header;\n headerGroupHeaders: Array>;\n layout: DataTableColumnLayout;\n primeColumnForResize: (columnId: string, currentSize: number) => void;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n resizeColumnLabel: string;\n resetColumnSize: (columnId: string) => void;\n // Rendered through flexRender inside the header def; carried as a prop so\n // the memo comparator re-renders the selection header when it changes.\n selectionState?: boolean | \"indeterminate\";\n TableHead: DataTableUiKit[\"TableHead\"];\n uiClassNames: DataTableUiClassNames;\n};\n\nfunction DataTableHeaderCellInner({\n columnGroupHeaderHeight,\n currentDensity,\n currentSorting,\n dir,\n draggedColumnIdRef,\n enableColumnReordering,\n enableColumnResizing,\n gridColumnIndex,\n gridMode,\n header,\n headerGroupHeaders,\n layout,\n primeColumnForResize,\n reorderColumn,\n resizeColumnLabel,\n resetColumnSize,\n TableHead,\n uiClassNames,\n}: DataTableHeaderCellProps) {\n const meta = (header.column.columnDef as DataTableColumnDef)\n .meta;\n const headerContentId = React.useId();\n const isColumnGroup =\n !header.isPlaceholder && header.subHeaders.length > 0;\n const groupDefinition = isColumnGroup\n ? (header.column.columnDef as DataTableColumnGroupDef)\n : undefined;\n const canSort = header.column.getCanSort();\n const sortingState = header.column.getIsSorted();\n const sortingIndex = currentSorting.findIndex(\n (sort) => sort.id === header.column.id,\n );\n const canReorderColumn =\n enableColumnReordering &&\n !header.isPlaceholder &&\n !isColumnGroup &&\n !layout.isUtilityColumn &&\n !layout.isSpacerColumn;\n const hideClassName = hideOnClassName(meta?.hideOn);\n\n return (\n ) => {\n draggedColumnIdRef.current = header.column.id;\n event.dataTransfer.effectAllowed = \"move\";\n }\n : undefined\n }\n onDragOver={\n canReorderColumn\n ? (event: React.DragEvent) => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n }\n : undefined\n }\n onDrop={\n canReorderColumn\n ? (event: React.DragEvent) => {\n event.preventDefault();\n const sourceColumnId = draggedColumnIdRef.current;\n draggedColumnIdRef.current = null;\n if (sourceColumnId) {\n reorderColumn(sourceColumnId, header.column.id);\n }\n }\n : undefined\n }\n onKeyDown={\n canReorderColumn\n ? (event: React.KeyboardEvent) => {\n if (\n !event.altKey ||\n (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\")\n ) {\n return;\n }\n\n event.preventDefault();\n const headers = headerGroupHeaders.filter(\n (item) =>\n !isUtilityColumnId(item.column.id) &&\n item.column.id !== \"__spacer__\",\n );\n const currentIndex = headers.findIndex(\n (item) => item.column.id === header.column.id,\n );\n const target =\n headers[\n (event.key === \"ArrowLeft\") !== (dir === \"rtl\")\n ? currentIndex - 1\n : currentIndex + 1\n ];\n if (target) {\n reorderColumn(header.column.id, target.column.id);\n }\n }\n : undefined\n }\n >\n {header.isPlaceholder ? null : canSort ? (\n \n \n {flexRender(header.column.columnDef.header, header.getContext())}\n \n {sortingState ? (\n <>\n \n {currentSorting.length > 1 && sortingIndex >= 0 ? (\n \n {sortingIndex + 1}\n \n ) : null}\n \n ) : (\n \n )}\n \n ) : (\n layout.isUtilityColumn || layout.isSpacerColumn ? (\n flexRender(header.column.columnDef.header, header.getContext())\n ) : (\n \n {flexRender(header.column.columnDef.header, header.getContext())}\n \n )\n )}\n\n {enableColumnResizing &&\n !header.isPlaceholder &&\n header.column.getCanResize() ? (\n {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n resetColumnSize(leafHeader.column.id);\n }\n }}\n onMouseDown={(event) => {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n primeColumnForResize(\n leafHeader.column.id,\n leafHeader.getSize(),\n );\n }\n header.getResizeHandler()(event);\n }}\n onTouchStart={(event) => {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n primeColumnForResize(\n leafHeader.column.id,\n leafHeader.getSize(),\n );\n }\n header.getResizeHandler()(event);\n }}\n onKeyDown={(event) => {\n if (event.altKey) {\n return;\n }\n if (event.key === \"Home\") {\n event.preventDefault();\n for (const leafHeader of getResizableLeafHeaders(header)) {\n resetColumnSize(leafHeader.column.id);\n }\n return;\n }\n if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n const grows =\n (event.key === \"ArrowRight\") !== (dir === \"rtl\");\n resizeHeaderBy(\n header,\n (grows ? 1 : -1) * (event.shiftKey ? 25 : 10),\n );\n }}\n className={cn(\n \"absolute inset-y-0 z-50 h-full w-3 cursor-col-resize touch-none select-none ltr:right-0 ltr:translate-x-1/2 rtl:left-0 rtl:-translate-x-1/2 after:absolute after:top-0 after:left-1/2 after:h-full after:w-px after:-translate-x-1/2\",\n uiClassNames.resizeHandle ??\n \"after:bg-current after:opacity-20 hover:after:opacity-70\",\n header.column.getIsResizing() &&\n (uiClassNames.resizeHandleActive ?? \"after:opacity-100\"),\n )}\n />\n ) : null}\n \n );\n}\n\nfunction areDataTableHeaderCellsEqual(\n previous: DataTableHeaderCellProps,\n next: DataTableHeaderCellProps,\n) {\n return (\n previous.header.id === next.header.id &&\n previous.header.column.id === next.header.column.id &&\n previous.header.column.columnDef === next.header.column.columnDef &&\n previous.header.colSpan === next.header.colSpan &&\n previous.header.isPlaceholder === next.header.isPlaceholder &&\n sameSubHeaders(previous.header, next.header) &&\n previous.currentDensity === next.currentDensity &&\n previous.columnGroupHeaderHeight === next.columnGroupHeaderHeight &&\n previous.dir === next.dir &&\n previous.enableColumnReordering === next.enableColumnReordering &&\n previous.enableColumnResizing === next.enableColumnResizing &&\n previous.gridMode === next.gridMode &&\n previous.gridColumnIndex === next.gridColumnIndex &&\n previous.TableHead === next.TableHead &&\n previous.uiClassNames === next.uiClassNames &&\n previous.draggedColumnIdRef === next.draggedColumnIdRef &&\n previous.primeColumnForResize === next.primeColumnForResize &&\n previous.reorderColumn === next.reorderColumn &&\n previous.resizeColumnLabel === next.resizeColumnLabel &&\n previous.resetColumnSize === next.resetColumnSize &&\n previous.selectionState === next.selectionState &&\n sameSorting(previous.currentSorting, next.currentSorting) &&\n sameHeaderGroupHeaders(\n previous.headerGroupHeaders,\n next.headerGroupHeaders,\n ) &&\n sameHeaderLayout(previous.layout, next.layout)\n );\n}\n\nfunction getResizableLeafHeaders(header: Header) {\n if (!header.subHeaders.length) {\n return [header];\n }\n\n return header\n .getLeafHeaders()\n .filter((leafHeader) => !leafHeader.subHeaders.length);\n}\n\nfunction getHeaderMinimumSize(header: Header) {\n return getResizableLeafHeaders(header).reduce(\n (total, leafHeader) =>\n total + (leafHeader.column.columnDef.minSize ?? 20),\n 0,\n );\n}\n\nfunction getHeaderMaximumSize(header: Header) {\n return getResizableLeafHeaders(header).reduce(\n (total, leafHeader) =>\n total + (leafHeader.column.columnDef.maxSize ?? Number.MAX_SAFE_INTEGER),\n 0,\n );\n}\n\nfunction resizeHeaderBy(\n header: Header,\n delta: number,\n) {\n const leafHeaders = getResizableLeafHeaders(header);\n const deltaPerLeaf = delta / leafHeaders.length;\n header.getContext().table.setColumnSizing((current) => {\n const next = { ...current };\n\n for (const leafHeader of leafHeaders) {\n const column = leafHeader.column;\n const minimum = column.columnDef.minSize ?? 20;\n const maximum =\n column.columnDef.maxSize ?? Number.MAX_SAFE_INTEGER;\n next[column.id] = Math.min(\n maximum,\n Math.max(minimum, column.getSize() + deltaPerLeaf),\n );\n }\n\n return next;\n });\n}\n\nfunction sameSubHeaders(\n previous: Header,\n next: Header,\n) {\n return (\n previous.subHeaders.length === next.subHeaders.length &&\n previous.subHeaders.every(\n (header, index) => next.subHeaders[index]?.id === header.id,\n )\n );\n}\n\nfunction sameSorting(previous: SortingState, next: SortingState) {\n return (\n previous.length === next.length &&\n previous.every((sort, index) => {\n const nextSort = next[index];\n return nextSort?.id === sort.id && nextSort.desc === sort.desc;\n })\n );\n}\n\nfunction sameHeaderGroupHeaders(\n previous: Array>,\n next: Array>,\n) {\n return (\n previous.length === next.length &&\n previous.every((header, index) => next[index]?.id === header.id)\n );\n}\n\nfunction sameHeaderLayout(\n previous: DataTableColumnLayout,\n next: DataTableColumnLayout,\n) {\n return (\n previous.fixedSide === next.fixedSide &&\n previous.isSpacerColumn === next.isSpacerColumn &&\n previous.isUtilityColumn === next.isUtilityColumn &&\n previous.pinnedClassName === next.pinnedClassName &&\n previous.utilityClassName === next.utilityClassName &&\n previous.headerStyle?.width === next.headerStyle?.width &&\n previous.headerStyle?.minWidth === next.headerStyle?.minWidth &&\n previous.headerStyle?.maxWidth === next.headerStyle?.maxWidth &&\n previous.headerStyle?.left === next.headerStyle?.left &&\n previous.headerStyle?.right === next.headerStyle?.right\n );\n}\n\nexport const DataTableHeaderCell = React.memo(\n DataTableHeaderCellInner,\n areDataTableHeaderCellsEqual,\n) as typeof DataTableHeaderCellInner;\n","import * as React from \"react\";\nimport type {\n Column,\n ExpandedState,\n Header,\n RowPinningPosition,\n Row,\n Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableDensity,\n DataTableCellSelection,\n DataTableProps,\n DataTableRowLoadingState,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport {\n DataTableBodyRow,\n type DataTableRowEditingContext,\n} from \"./data-table-body-row\";\nimport { DataTableHeaderCell } from \"./data-table-header-cell\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport { isDataTableLoadingRow, isUtilityColumnId } from \"./data-table-utils\";\nimport type { DataTableLabels } from \"../types\";\n\nexport type DataTableTablePanelProps = {\n ariaDescribedBy: string | undefined;\n ariaLabelledBy: string | undefined;\n bodyRowComponents: Pick<\n DataTableUiKit,\n \"Checkbox\" | \"Input\" | \"Skeleton\" | \"TableCell\" | \"TableRow\"\n >;\n cellSelection: DataTableCellSelection | null;\n cellSelectionEnabled: boolean;\n columnLayouts: ReadonlyMap;\n columnGroupHeaderHeight: DataTableProps[\"columnGroupHeaderHeight\"];\n currentDensity: DataTableDensity;\n currentDetailExpanded: ExpandedState;\n currentSorting: DataTableProps[\"sorting\"];\n dir: NonNullable[\"dir\"]>;\n DataTableEmptyState: React.ElementType;\n dragAndDrop: DataTableProps[\"dragAndDrop\"];\n draggedColumnIdRef: React.RefObject;\n draftValues: Record;\n editingRowId: string | null;\n editingContext?: DataTableRowEditingContext;\n emptyNode: React.ReactNode;\n enableColumnReordering: boolean;\n enableColumnResizing: boolean;\n explicitCustomCellColumnIds: ReadonlySet;\n fillMinWidth: number;\n flexGrow: boolean;\n gridMode: boolean;\n gridPageSize?: number;\n gridRowOffset: number;\n onGridActiveRowIndexChange?: (rowIndex: number) => void;\n onCellSelectionChange: (selection: DataTableCellSelection | null) => void;\n getColumnLayout: (columnId: string) => DataTableColumnLayout;\n getRowClassName: DataTableProps[\"getRowClassName\"];\n getRowLoadingState: DataTableProps[\"getRowLoadingState\"];\n infiniteScroll: DataTableProps[\"infiniteScroll\"];\n layoutMode: \"fill\" | \"fit\";\n localSearchValue: string;\n onRowClick: DataTableProps[\"onRowClick\"];\n primeColumnForResize: (columnId: string, currentSize: number) => void;\n renderedRows: Array>;\n detailPanel: DataTableProps[\"detailPanel\"];\n topPinnedRows: Array>;\n bottomPinnedRows: Array>;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n resetColumnSize: (columnId: string) => void;\n resolvedLabels: DataTableLabels;\n rowsToRender: Array<{ row: Row; rowIndex: number }>;\n ScrollArea: DataTableUiKit[\"ScrollArea\"];\n ScrollBar: DataTableUiKit[\"ScrollBar\"];\n scrollbarVisibility: DataTableProps[\"scrollbarVisibility\"];\n sentinelRef: React.RefObject;\n setDraftValues: React.Dispatch>>;\n shouldRenderInitialLoading: boolean;\n stateOverlayNode?: React.ReactNode;\n stickyHeader: boolean;\n stripedRows: boolean;\n summaryRows: NonNullable[\"summaryRows\"]>;\n table: TanStackTable;\n tableClassName: string | undefined;\n tableContainerClassName: string | undefined;\n Table: DataTableUiKit[\"Table\"];\n TableBody: DataTableUiKit[\"TableBody\"];\n TableCell: DataTableUiKit[\"TableCell\"];\n TableFooter: DataTableUiKit[\"TableFooter\"];\n TableHead: DataTableUiKit[\"TableHead\"];\n TableHeader: DataTableUiKit[\"TableHeader\"];\n TableRow: DataTableUiKit[\"TableRow\"];\n tableScrollContainerRef: React.RefObject;\n tableScrollElement?: HTMLElement | null;\n totalRowCount?: number;\n uiClassNames: DataTableUiClassNames;\n viewportHeight?: number;\n virtualization?: DataTableProps[\"virtualization\"];\n virtualPaddingBottom: number;\n virtualPaddingTop: number;\n visibleLeafColumnCount: number;\n visibleLeafColumns: Array>;\n};\n\nexport function DataTableTablePanel({\n ariaDescribedBy,\n ariaLabelledBy,\n bodyRowComponents,\n cellSelection,\n cellSelectionEnabled,\n columnLayouts,\n columnGroupHeaderHeight,\n currentDensity,\n currentDetailExpanded,\n currentSorting = [],\n dir,\n DataTableEmptyState,\n dragAndDrop,\n draggedColumnIdRef,\n draftValues,\n editingRowId,\n editingContext,\n emptyNode,\n enableColumnReordering,\n enableColumnResizing,\n explicitCustomCellColumnIds,\n fillMinWidth,\n flexGrow,\n gridMode,\n gridPageSize,\n gridRowOffset,\n onGridActiveRowIndexChange,\n onCellSelectionChange,\n getColumnLayout,\n getRowClassName,\n getRowLoadingState,\n infiniteScroll,\n layoutMode,\n localSearchValue,\n onRowClick,\n primeColumnForResize,\n renderedRows,\n detailPanel,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n resetColumnSize,\n resolvedLabels,\n rowsToRender,\n ScrollArea,\n ScrollBar,\n scrollbarVisibility,\n sentinelRef,\n setDraftValues,\n shouldRenderInitialLoading,\n stateOverlayNode,\n stickyHeader,\n stripedRows,\n summaryRows,\n table,\n tableClassName,\n tableContainerClassName,\n Table,\n TableBody,\n TableCell,\n TableFooter = \"tfoot\",\n TableHead,\n TableHeader,\n TableRow,\n tableScrollContainerRef,\n tableScrollElement,\n totalRowCount,\n uiClassNames,\n virtualPaddingBottom,\n virtualPaddingTop,\n visibleLeafColumnCount,\n visibleLeafColumns,\n}: DataTableTablePanelProps) {\n const selectionState: boolean | \"indeterminate\" =\n table.getIsAllPageRowsSelected()\n ? true\n : table.getIsSomePageRowsSelected()\n ? \"indeterminate\"\n : false;\n const filteredRows = table.getFilteredRowModel().rows;\n const summarySourceRows = React.useMemo(\n () =>\n summaryRows.length\n ? filteredRows.map((row) => row.original)\n : [],\n [filteredRows, summaryRows.length],\n );\n const headerRowCount = table.getHeaderGroups().length;\n const displayRowCount =\n topPinnedRows.length + renderedRows.length + bottomPinnedRows.length;\n const [activeCell, setActiveCell] = React.useState({ row: 0, column: 0 });\n const shouldRestoreGridFocusRef = React.useRef(false);\n const pointerSelectingRef = React.useRef(false);\n const gridRows = React.useMemo(\n () => [...topPinnedRows, ...renderedRows, ...bottomPinnedRows],\n [bottomPinnedRows, renderedRows, topPinnedRows],\n );\n const navigableGridColumnIndices = React.useMemo(\n () =>\n visibleLeafColumns.flatMap((column, index) =>\n column.id === \"__spacer__\" ? [] : [index],\n ),\n [visibleLeafColumns],\n );\n const getGridCoordinate = React.useCallback(\n (rowIndex: number, columnIndex: number) => {\n const row = gridRows[rowIndex];\n const column = visibleLeafColumns[columnIndex];\n return row &&\n column &&\n !isUtilityColumnId(column.id) &&\n column.id !== \"__spacer__\"\n ? { rowId: row.id, columnId: column.id }\n : undefined;\n },\n [gridRows, visibleLeafColumns],\n );\n const selectedBounds = React.useMemo(() => {\n if (!cellSelection) return undefined;\n const anchorRow = gridRows.findIndex((row) => row.id === cellSelection.anchor.rowId);\n const focusRow = gridRows.findIndex((row) => row.id === cellSelection.focus.rowId);\n const anchorColumn = visibleLeafColumns.findIndex(\n (column) => column.id === cellSelection.anchor.columnId,\n );\n const focusColumn = visibleLeafColumns.findIndex(\n (column) => column.id === cellSelection.focus.columnId,\n );\n if (anchorRow < 0 || focusRow < 0 || anchorColumn < 0 || focusColumn < 0) return undefined;\n return {\n firstRow: Math.min(anchorRow, focusRow),\n lastRow: Math.max(anchorRow, focusRow),\n firstColumn: Math.min(anchorColumn, focusColumn),\n lastColumn: Math.max(anchorColumn, focusColumn),\n };\n }, [cellSelection, gridRows, visibleLeafColumns]);\n const isGridCellSelected = React.useCallback(\n (rowIndex: number, columnIndex: number) =>\n Boolean(\n selectedBounds &&\n rowIndex >= selectedBounds.firstRow &&\n rowIndex <= selectedBounds.lastRow &&\n columnIndex >= selectedBounds.firstColumn &&\n columnIndex <= selectedBounds.lastColumn,\n ),\n [selectedBounds],\n );\n const handleGridCellFocus = React.useCallback(\n (cell: { row: number; column: number }) => {\n shouldRestoreGridFocusRef.current = true;\n setActiveCell(cell);\n },\n [],\n );\n const selectGridCell = React.useCallback(\n (rowIndex: number, columnIndex: number, extend: boolean) => {\n if (!cellSelectionEnabled) return;\n const focus = getGridCoordinate(rowIndex, columnIndex);\n if (!focus) return;\n const anchor =\n extend && cellSelection?.anchor\n ? cellSelection.anchor\n : focus;\n onCellSelectionChange({ anchor, focus });\n },\n [cellSelection, cellSelectionEnabled, getGridCoordinate, onCellSelectionChange],\n );\n const handleGridCellPointerDown = React.useCallback(\n (event: React.PointerEvent, rowIndex: number, columnIndex: number) => {\n if (!cellSelectionEnabled || event.button !== 0) return;\n // Keep native text/image dragging from taking ownership of the pointer\n // stream before the range reaches its destination cell.\n event.preventDefault();\n pointerSelectingRef.current = true;\n selectGridCell(rowIndex, columnIndex, event.shiftKey);\n },\n [cellSelectionEnabled, selectGridCell],\n );\n const handleGridCellPointerEnter = React.useCallback(\n (event: React.PointerEvent, rowIndex: number, columnIndex: number) => {\n if (!cellSelectionEnabled || !pointerSelectingRef.current || event.buttons !== 1) return;\n selectGridCell(rowIndex, columnIndex, true);\n },\n [cellSelectionEnabled, selectGridCell],\n );\n React.useEffect(() => {\n const stopSelecting = () => { pointerSelectingRef.current = false; };\n window.addEventListener(\"pointerup\", stopSelecting);\n return () => window.removeEventListener(\"pointerup\", stopSelecting);\n }, []);\n\n // Keep focus on the roving cell after sorting, filtering, or a virtual row\n // range changes. A missing target is normal while a virtualizer is rendering.\n React.useEffect(() => {\n if (!gridMode) return;\n onGridActiveRowIndexChange?.(activeCell.row);\n const frame = requestAnimationFrame(() => {\n const cells = tableScrollContainerRef.current?.querySelectorAll(\n '[data-dtp-grid-cell=\"true\"]',\n );\n const target = Array.from(cells ?? []).find(\n (cell) =>\n Number(cell.dataset.gridRowIndex) === activeCell.row &&\n Number(cell.dataset.gridColumnIndex) === activeCell.column,\n );\n if (target && shouldRestoreGridFocusRef.current) {\n target.focus();\n }\n });\n return () => cancelAnimationFrame(frame);\n }, [activeCell, gridMode, onGridActiveRowIndexChange, tableScrollContainerRef]);\n\n const moveGridFocus = React.useCallback(\n (event: React.KeyboardEvent, row: number, column: number) => {\n if (event.defaultPrevented || event.target !== event.currentTarget) return;\n const pageRows = Math.max(\n 1,\n gridPageSize ?? (\n Math.floor(\n (tableScrollElement?.clientHeight || 0) /\n Math.max(1, (tableScrollElement?.querySelector(\"tr\") as HTMLElement | null)?.offsetHeight || 48),\n ) || 10),\n );\n const lastRow = Math.max(0, displayRowCount - 1);\n const currentColumnPosition = Math.max(\n 0,\n navigableGridColumnIndices.indexOf(column),\n );\n const lastColumnPosition = Math.max(\n 0,\n navigableGridColumnIndices.length - 1,\n );\n let nextRow = row;\n let nextColumnPosition = currentColumnPosition;\n switch (event.key) {\n case \"ArrowUp\": nextRow--; break;\n case \"ArrowDown\": nextRow++; break;\n case \"ArrowLeft\": nextColumnPosition--; break;\n case \"ArrowRight\": nextColumnPosition++; break;\n case \"Home\":\n if (event.ctrlKey || event.metaKey) nextRow = 0;\n nextColumnPosition = 0;\n break;\n case \"End\":\n if (event.ctrlKey || event.metaKey) nextRow = lastRow;\n nextColumnPosition = lastColumnPosition;\n break;\n case \"PageUp\": nextRow -= pageRows; break;\n case \"PageDown\": nextRow += pageRows; break;\n default: return;\n }\n event.preventDefault();\n const nextCell = {\n row: Math.min(lastRow, Math.max(0, nextRow)),\n column:\n navigableGridColumnIndices[\n Math.min(\n lastColumnPosition,\n Math.max(0, nextColumnPosition),\n )\n ] ?? 0,\n };\n setActiveCell(nextCell);\n if (event.shiftKey && cellSelectionEnabled) {\n const focus = getGridCoordinate(nextCell.row, nextCell.column);\n const anchor =\n cellSelection?.anchor ?? getGridCoordinate(row, column) ?? focus;\n if (anchor && focus) onCellSelectionChange({ anchor, focus });\n }\n },\n [\n cellSelection,\n cellSelectionEnabled,\n displayRowCount,\n getGridCoordinate,\n gridPageSize,\n navigableGridColumnIndices,\n onCellSelectionChange,\n tableScrollElement,\n ],\n );\n const renderBodyRow = (\n row: Row,\n rowIndex: number,\n pinnedPosition?: Exclude,\n ) => {\n const originalRow = row.original;\n const isInitialLoadingRow = isDataTableLoadingRow(originalRow);\n const loadingState = isInitialLoadingRow\n ? { isLoading: true }\n : getRowLoadingState?.(originalRow, rowIndex);\n const resolvedLoadingState: DataTableRowLoadingState | undefined =\n typeof loadingState === \"boolean\"\n ? { isLoading: loadingState }\n : loadingState;\n const isDraggable = isInitialLoadingRow\n ? false\n : (dragAndDrop?.getRowDraggable?.(originalRow) ?? false);\n\n return (\n \n );\n };\n\n return (\n \n \n \n
    \n \n \n {table.getVisibleLeafColumns().map((column) => {\n const layout = getColumnLayout(column.id);\n return ;\n })}\n \n \n {table.getHeaderGroups().map((headerGroup) => (\n \n {headerGroup.headers.map((header) => (\n column.id !== \"__spacer__\",\n )\n .findIndex(\n (column) =>\n column.id === header.column.id,\n ) + 1\n }\n />\n ))}\n \n ))}\n \n \n {topPinnedRows.length || renderedRows.length || bottomPinnedRows.length ? (\n <>\n {topPinnedRows.map((row, index) =>\n renderBodyRow(row, index, \"top\"),\n )}\n {virtualPaddingTop > 0 ? (\n \n \n \n ) : null}\n {rowsToRender.map(({ row, rowIndex }) =>\n renderBodyRow(row, rowIndex + topPinnedRows.length),\n )}\n {virtualPaddingBottom > 0 ? (\n \n \n \n ) : null}\n {bottomPinnedRows.map((row, index) =>\n renderBodyRow(\n row,\n topPinnedRows.length + renderedRows.length + index,\n \"bottom\",\n ),\n )}\n \n ) : (\n \n \n
    \n {emptyNode ?? (\n \n )}\n
    \n \n
    \n )}\n
    \n {summaryRows.length ? (\n \n {summaryRows.map((summaryRow, summaryIndex) => (\n \n {visibleLeafColumns.map((column, index) => {\n const layout = getColumnLayout(column.id);\n const content = layout.isSpacerColumn\n ? null\n : (summaryRow.cells[column.id] ??\n (index === 0 ? summaryRow.label : null));\n return (\n \n {typeof content === \"function\"\n ? content({\n rows: summarySourceRows,\n columnId: column.id,\n })\n : content}\n \n );\n })}\n \n ))}\n \n ) : null}\n \n
    \n\n {infiniteScroll?.enabled &&\n renderedRows.length &&\n !shouldRenderInitialLoading ? (\n
    \n
    \n
    \n ) : null}\n \n \n
    \n {stateOverlayNode}\n \n );\n}\n\nfunction getHeaderLayout(\n header: Header,\n getColumnLayout: (columnId: string) => DataTableColumnLayout,\n) {\n const columnLayout = getColumnLayout(header.column.id);\n if (header.isPlaceholder || !header.subHeaders.length) {\n return columnLayout;\n }\n\n const leafLayouts = header\n .getLeafHeaders()\n .filter((leafHeader) => !leafHeader.subHeaders.length)\n .map((leafHeader) => getColumnLayout(leafHeader.column.id));\n const fixedSide = leafLayouts[0]?.fixedSide;\n\n if (\n !fixedSide ||\n !leafLayouts.every((layout) => layout.fixedSide === fixedSide)\n ) {\n return columnLayout;\n }\n\n const edgeLayout =\n fixedSide === \"left\" ? leafLayouts[0] : leafLayouts.at(-1);\n\n return {\n ...columnLayout,\n fixedSide,\n headerStyle: edgeLayout?.headerStyle\n ? {\n left: edgeLayout.headerStyle.left,\n right: edgeLayout.headerStyle.right,\n }\n : undefined,\n pinnedClassName: edgeLayout?.pinnedClassName,\n };\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-QFLMV3CT.js b/dist/chunk-QFLMV3CT.js deleted file mode 100644 index 07323ad..0000000 --- a/dist/chunk-QFLMV3CT.js +++ /dev/null @@ -1,2 +0,0 @@ -import {a as a$1}from'./chunk-K7SNDVV2.js';import {a}from'./chunk-YPKN2W27.js';import {j}from'./chunk-JNI3CH7M.js';function b(r){return j(r,{CardPanel:a$1,TablePanel:a})}export{b as a};//# sourceMappingURL=chunk-QFLMV3CT.js.map -//# sourceMappingURL=chunk-QFLMV3CT.js.map \ No newline at end of file diff --git a/dist/chunk-2NQXDLBI.js b/dist/chunk-RS7MSX54.js similarity index 97% rename from dist/chunk-2NQXDLBI.js rename to dist/chunk-RS7MSX54.js index e5a46e8..dec609e 100644 --- a/dist/chunk-2NQXDLBI.js +++ b/dist/chunk-RS7MSX54.js @@ -1,2 +1,2 @@ -import {X as X$1,a as a$1,c,e,g,h,i,j as j$1,k,l,m,n,p,o,q as q$1,u,s,z as z$1,w,y,x,H,I,J as J$1,L,K as K$1,M,b,N as N$1,R,T,W as W$1}from'./chunk-7FUCHMMB.js';import {a}from'./chunk-XTVBESM5.js';import'react';import {jsx}from'react/jsx-runtime';function r(H,L){return function({className:A,...R}){return jsx(H,{className:a(L,A),...R})}}var U=r(a$1,"rounded-md text-foreground data-[variant=default]:border-primary data-[variant=default]:bg-primary data-[variant=default]:text-primary-foreground data-[variant=outline]:border-input data-[variant=outline]:bg-card data-[variant=outline]:hover:bg-accent data-[variant=outline]:hover:text-accent-foreground data-[variant=secondary]:border-secondary data-[variant=secondary]:bg-secondary data-[variant=secondary]:text-secondary-foreground data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:hover:bg-accent data-[variant=ghost]:hover:text-accent-foreground data-[variant=destructive]:border-destructive data-[variant=destructive]:bg-destructive data-[variant=destructive]:text-destructive-foreground data-[variant=link]:border-transparent data-[variant=link]:bg-transparent"),N=r(c,"rounded-xl border-border bg-card text-card-foreground shadow-sm ring-0"),z=r(e,"text-muted-foreground"),K=r(g,"border-t border-border/60 bg-muted/50"),_=r(h,"border-input bg-card ring-ring/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-checked:ring-primary"),O=r(i,"border-border bg-popover text-popover-foreground shadow-md"),V=r(j$1,"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10"),W=r(k,"focus:bg-accent focus:text-accent-foreground"),q=r(l,"focus:bg-accent focus:text-accent-foreground"),J=r(m,"text-muted-foreground"),Q=r(n,"bg-border"),X=r(p,"border-border bg-popover text-popover-foreground shadow-md"),Y=r(o,"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground"),Z=r(q$1,"rounded-2xl border-border/60 bg-background/70"),$=r(u,"text-muted-foreground"),j=r(s,"[&[data-variant=icon]]:bg-muted [&[data-variant=icon]]:text-foreground"),rr=r(z$1,"rounded-md border-input bg-card text-foreground placeholder:text-muted-foreground"),er=r(w,"rounded-md border-input bg-card text-foreground"),tr=r(y,"text-muted-foreground"),or=r(x,"bg-transparent"),ar=r(H,"[&>[data-slot=scroll-area-thumb]]:bg-border"),nr=r(I,"rounded-md border-input bg-card text-foreground"),dr=r(J$1,"border-border bg-popover text-popover-foreground shadow-md"),ir=r(L,"focus:bg-accent focus:text-accent-foreground"),cr=r(K$1,"text-muted-foreground"),ur=r(M,"bg-border"),pr=r(b,"bg-border"),br=r(N$1,"bg-muted"),sr=r(R,"border-border bg-muted/50"),gr=r(T,"text-foreground"),mr=r(W$1,"bg-foreground text-background ring-1 ring-foreground/10 [&>svg]:bg-foreground [&>svg]:fill-foreground"),xr={...X$1,rootClassName:"dtp-shadcn",classNames:{card:"hover:bg-muted/50 data-[state=selected]:bg-primary/10",cardGrid:"bg-transparent",cardItem:"min-w-0",cardOverlay:"from-background/95 via-background/85 to-transparent",cardScrollArea:"bg-transparent",cardSelected:"bg-primary/10 ring-primary",cardUnselected:"border-border",cardViewport:"bg-transparent",cellBorder:"border-border/40",cellSelected:"!bg-primary/10 ring-1 ring-inset ring-primary/40",columnGroupHeader:"bg-muted/50 font-semibold",dragActive:"rounded-md border-dashed border-primary",emptyState:"border-border/60 bg-background/70",footer:"border-border bg-card",headerSortIcon:"text-muted-foreground",mutedText:"text-muted-foreground",paginationSelectTrigger:"border-input bg-card",paginationTotal:"text-muted-foreground",pinnedColumn:"border-border",pinnedUtilityColumn:"bg-card",resizeHandle:"after:bg-border hover:after:bg-primary",resizeHandleActive:"after:bg-primary",row:"hover:bg-muted/50 data-[state=selected]:!bg-primary/10",rowSelected:"!bg-primary/10",tableContainer:"border-border bg-card text-card-foreground",tableStickyHeader:"sticky top-0 z-30 bg-card/95 backdrop-blur [&_th]:border-border [&_th]:bg-card/95",toolbarCompactIconButton:"size-7",toolbarIconButton:"text-muted-foreground hover:text-foreground",toolbarInputButton:"border-input bg-card"},Button:U,Card:N,CardDescription:z,CardFooter:K,Checkbox:_,DropdownMenuCheckboxItem:W,DropdownMenuContent:O,DropdownMenuItem:V,DropdownMenuLabel:J,DropdownMenuRadioItem:q,DropdownMenuSeparator:Q,DropdownMenuSubContent:X,DropdownMenuSubTrigger:Y,Empty:Z,EmptyDescription:$,EmptyMedia:j,Input:rr,InputGroup:er,InputGroupAddon:tr,InputGroupInput:or,ScrollBar:ar,SelectContent:dr,SelectItem:ir,SelectLabel:cr,SelectSeparator:ur,SelectTrigger:nr,Separator:pr,Skeleton:br,TableFooter:sr,TableHead:gr,TooltipContent:mr};export{xr as a};//# sourceMappingURL=chunk-2NQXDLBI.js.map -//# sourceMappingURL=chunk-2NQXDLBI.js.map \ No newline at end of file +import {X as X$1,a as a$1,c,e,g,h,i,j as j$1,k,l,m,n,p,o,q as q$1,u,s,z as z$1,w,y,x,H,I,J as J$1,L,K as K$1,M,b,N as N$1,R,T,W as W$1}from'./chunk-VSIOOKCO.js';import {a}from'./chunk-XTVBESM5.js';import'react';import {jsx}from'react/jsx-runtime';function r(H,L){return function({className:A,...R}){return jsx(H,{className:a(L,A),...R})}}var U=r(a$1,"rounded-md text-foreground data-[variant=default]:border-primary data-[variant=default]:bg-primary data-[variant=default]:text-primary-foreground data-[variant=outline]:border-input data-[variant=outline]:bg-card data-[variant=outline]:hover:bg-accent data-[variant=outline]:hover:text-accent-foreground data-[variant=secondary]:border-secondary data-[variant=secondary]:bg-secondary data-[variant=secondary]:text-secondary-foreground data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:hover:bg-accent data-[variant=ghost]:hover:text-accent-foreground data-[variant=destructive]:border-destructive data-[variant=destructive]:bg-destructive data-[variant=destructive]:text-destructive-foreground data-[variant=link]:border-transparent data-[variant=link]:bg-transparent"),N=r(c,"rounded-xl border-border bg-card text-card-foreground shadow-sm ring-0"),z=r(e,"text-muted-foreground"),K=r(g,"border-t border-border/60 bg-muted/50"),_=r(h,"border-input bg-card ring-ring/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-checked:ring-primary"),O=r(i,"border-border bg-popover text-popover-foreground shadow-md"),V=r(j$1,"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10"),W=r(k,"focus:bg-accent focus:text-accent-foreground"),q=r(l,"focus:bg-accent focus:text-accent-foreground"),J=r(m,"text-muted-foreground"),Q=r(n,"bg-border"),X=r(p,"border-border bg-popover text-popover-foreground shadow-md"),Y=r(o,"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground"),Z=r(q$1,"rounded-2xl border-border/60 bg-background/70"),$=r(u,"text-muted-foreground"),j=r(s,"[&[data-variant=icon]]:bg-muted [&[data-variant=icon]]:text-foreground"),rr=r(z$1,"rounded-md border-input bg-card text-foreground placeholder:text-muted-foreground"),er=r(w,"rounded-md border-input bg-card text-foreground"),tr=r(y,"text-muted-foreground"),or=r(x,"bg-transparent"),ar=r(H,"[&>[data-slot=scroll-area-thumb]]:bg-border"),nr=r(I,"rounded-md border-input bg-card text-foreground"),dr=r(J$1,"border-border bg-popover text-popover-foreground shadow-md"),ir=r(L,"focus:bg-accent focus:text-accent-foreground"),cr=r(K$1,"text-muted-foreground"),ur=r(M,"bg-border"),pr=r(b,"bg-border"),br=r(N$1,"bg-muted"),sr=r(R,"border-border bg-muted/50"),gr=r(T,"text-foreground"),mr=r(W$1,"bg-foreground text-background ring-1 ring-foreground/10 [&>svg]:bg-foreground [&>svg]:fill-foreground"),xr={...X$1,rootClassName:"dtp-shadcn",classNames:{card:"hover:bg-muted/50 data-[state=selected]:bg-primary/10",cardGrid:"bg-transparent",cardItem:"min-w-0",cardOverlay:"from-background/95 via-background/85 to-transparent",cardScrollArea:"bg-transparent",cardSelected:"bg-primary/10 ring-primary",cardUnselected:"border-border",cardViewport:"bg-transparent",cellBorder:"border-border/40",cellSelected:"!bg-primary/10 ring-1 ring-inset ring-primary/40",columnGroupHeader:"bg-muted/50 font-semibold",dragActive:"rounded-md border-dashed border-primary",emptyState:"border-border/60 bg-background/70",footer:"border-border bg-card",headerSortIcon:"text-muted-foreground",mutedText:"text-muted-foreground",paginationSelectTrigger:"border-input bg-card",paginationTotal:"text-muted-foreground",pinnedColumn:"border-border",pinnedUtilityColumn:"bg-card",resizeHandle:"after:bg-border hover:after:bg-primary",resizeHandleActive:"after:bg-primary",row:"hover:bg-muted/50 data-[state=selected]:!bg-primary/10",rowSelected:"!bg-primary/10",tableContainer:"border-border bg-card text-card-foreground",tableStickyHeader:"sticky top-0 z-30 bg-card/95 backdrop-blur [&_th]:border-border [&_th]:bg-card/95",toolbarCompactIconButton:"size-7",toolbarIconButton:"text-muted-foreground hover:text-foreground",toolbarInputButton:"border-input bg-card"},Button:U,Card:N,CardDescription:z,CardFooter:K,Checkbox:_,DropdownMenuCheckboxItem:W,DropdownMenuContent:O,DropdownMenuItem:V,DropdownMenuLabel:J,DropdownMenuRadioItem:q,DropdownMenuSeparator:Q,DropdownMenuSubContent:X,DropdownMenuSubTrigger:Y,Empty:Z,EmptyDescription:$,EmptyMedia:j,Input:rr,InputGroup:er,InputGroupAddon:tr,InputGroupInput:or,ScrollBar:ar,SelectContent:dr,SelectItem:ir,SelectLabel:cr,SelectSeparator:ur,SelectTrigger:nr,Separator:pr,Skeleton:br,TableFooter:sr,TableHead:gr,TooltipContent:mr};export{xr as a};//# sourceMappingURL=chunk-RS7MSX54.js.map +//# sourceMappingURL=chunk-RS7MSX54.js.map \ No newline at end of file diff --git a/dist/chunk-2NQXDLBI.js.map b/dist/chunk-RS7MSX54.js.map similarity index 99% rename from dist/chunk-2NQXDLBI.js.map rename to dist/chunk-RS7MSX54.js.map index 620b6be..f1ad0ad 100644 --- a/dist/chunk-2NQXDLBI.js.map +++ b/dist/chunk-RS7MSX54.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/adapters/shadcn/index.tsx"],"names":["withClassName","Component","defaultClassName","className","props","jsx","cn","ShadcnButton","Button","ShadcnCard","Card","ShadcnCardDescription","CardDescription","ShadcnCardFooter","CardFooter","ShadcnCheckbox","Checkbox","ShadcnDropdownMenuContent","DropdownMenuContent","ShadcnDropdownMenuItem","DropdownMenuItem","ShadcnDropdownMenuCheckboxItem","DropdownMenuCheckboxItem","ShadcnDropdownMenuRadioItem","DropdownMenuRadioItem","ShadcnDropdownMenuLabel","DropdownMenuLabel","ShadcnDropdownMenuSeparator","DropdownMenuSeparator","ShadcnDropdownMenuSubContent","DropdownMenuSubContent","ShadcnDropdownMenuSubTrigger","DropdownMenuSubTrigger","ShadcnEmpty","Empty","ShadcnEmptyDescription","EmptyDescription","ShadcnEmptyMedia","EmptyMedia","ShadcnInput","Input","ShadcnInputGroup","InputGroup","ShadcnInputGroupAddon","InputGroupAddon","ShadcnInputGroupInput","InputGroupInput","ShadcnScrollBar","ScrollBar","ShadcnSelectTrigger","SelectTrigger","ShadcnSelectContent","SelectContent","ShadcnSelectItem","SelectItem","ShadcnSelectLabel","SelectLabel","ShadcnSelectSeparator","SelectSeparator","ShadcnSeparator","Separator","ShadcnSkeleton","Skeleton","ShadcnTableFooter","TableFooter","ShadcnTableHead","TableHead","ShadcnTooltipContent","TooltipContent","shadcnUiKit","primitiveUiKit"],"mappings":"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","file":"chunk-2NQXDLBI.js","sourcesContent":["import * as React from \"react\";\nimport type { DataTableUiKit } from \"../../core/ui-kit\";\nimport {\n Button as PrimitiveButton,\n Card as PrimitiveCard,\n CardDescription as PrimitiveCardDescription,\n CardFooter as PrimitiveCardFooter,\n Checkbox as PrimitiveCheckbox,\n DropdownMenuCheckboxItem as PrimitiveDropdownMenuCheckboxItem,\n DropdownMenuContent as PrimitiveDropdownMenuContent,\n DropdownMenuItem as PrimitiveDropdownMenuItem,\n DropdownMenuLabel as PrimitiveDropdownMenuLabel,\n DropdownMenuRadioItem as PrimitiveDropdownMenuRadioItem,\n DropdownMenuSeparator as PrimitiveDropdownMenuSeparator,\n DropdownMenuSubContent as PrimitiveDropdownMenuSubContent,\n DropdownMenuSubTrigger as PrimitiveDropdownMenuSubTrigger,\n Empty as PrimitiveEmpty,\n EmptyDescription as PrimitiveEmptyDescription,\n EmptyMedia as PrimitiveEmptyMedia,\n Input as PrimitiveInput,\n InputGroup as PrimitiveInputGroup,\n InputGroupAddon as PrimitiveInputGroupAddon,\n InputGroupInput as PrimitiveInputGroupInput,\n ScrollBar as PrimitiveScrollBar,\n SelectContent as PrimitiveSelectContent,\n SelectItem as PrimitiveSelectItem,\n SelectLabel as PrimitiveSelectLabel,\n SelectSeparator as PrimitiveSelectSeparator,\n SelectTrigger as PrimitiveSelectTrigger,\n Separator as PrimitiveSeparator,\n Skeleton as PrimitiveSkeleton,\n TableFooter as PrimitiveTableFooter,\n TableHead as PrimitiveTableHead,\n TooltipContent as PrimitiveTooltipContent,\n primitiveUiKit,\n} from \"../../core/primitive-ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nfunction withClassName(\n Component: React.ComponentType,\n defaultClassName: string,\n) {\n return function Wrapped({ className, ...props }: TProps) {\n return (\n \n );\n };\n}\n\nconst ShadcnButton = withClassName(\n PrimitiveButton,\n \"rounded-md text-foreground data-[variant=default]:border-primary data-[variant=default]:bg-primary data-[variant=default]:text-primary-foreground data-[variant=outline]:border-input data-[variant=outline]:bg-card data-[variant=outline]:hover:bg-accent data-[variant=outline]:hover:text-accent-foreground data-[variant=secondary]:border-secondary data-[variant=secondary]:bg-secondary data-[variant=secondary]:text-secondary-foreground data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:hover:bg-accent data-[variant=ghost]:hover:text-accent-foreground data-[variant=destructive]:border-destructive data-[variant=destructive]:bg-destructive data-[variant=destructive]:text-destructive-foreground data-[variant=link]:border-transparent data-[variant=link]:bg-transparent\",\n);\nconst ShadcnCard = withClassName(\n PrimitiveCard,\n \"rounded-xl border-border bg-card text-card-foreground shadow-sm ring-0\",\n);\nconst ShadcnCardDescription = withClassName(\n PrimitiveCardDescription,\n \"text-muted-foreground\",\n);\nconst ShadcnCardFooter = withClassName(\n PrimitiveCardFooter,\n \"border-t border-border/60 bg-muted/50\",\n);\nconst ShadcnCheckbox = withClassName(\n PrimitiveCheckbox,\n \"border-input bg-card ring-ring/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-checked:ring-primary\",\n);\nconst ShadcnDropdownMenuContent = withClassName(\n PrimitiveDropdownMenuContent,\n \"border-border bg-popover text-popover-foreground shadow-md\",\n);\nconst ShadcnDropdownMenuItem = withClassName(\n PrimitiveDropdownMenuItem,\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10\",\n);\nconst ShadcnDropdownMenuCheckboxItem = withClassName(\n PrimitiveDropdownMenuCheckboxItem,\n \"focus:bg-accent focus:text-accent-foreground\",\n);\nconst ShadcnDropdownMenuRadioItem = withClassName(\n PrimitiveDropdownMenuRadioItem,\n \"focus:bg-accent focus:text-accent-foreground\",\n);\nconst ShadcnDropdownMenuLabel = withClassName(\n PrimitiveDropdownMenuLabel,\n \"text-muted-foreground\",\n);\nconst ShadcnDropdownMenuSeparator = withClassName(\n PrimitiveDropdownMenuSeparator,\n \"bg-border\",\n);\nconst ShadcnDropdownMenuSubContent = withClassName(\n PrimitiveDropdownMenuSubContent,\n \"border-border bg-popover text-popover-foreground shadow-md\",\n);\nconst ShadcnDropdownMenuSubTrigger = withClassName(\n PrimitiveDropdownMenuSubTrigger,\n \"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground\",\n);\nconst ShadcnEmpty = withClassName(\n PrimitiveEmpty,\n \"rounded-2xl border-border/60 bg-background/70\",\n);\nconst ShadcnEmptyDescription = withClassName(\n PrimitiveEmptyDescription,\n \"text-muted-foreground\",\n);\nconst ShadcnEmptyMedia = withClassName(\n PrimitiveEmptyMedia,\n \"[&[data-variant=icon]]:bg-muted [&[data-variant=icon]]:text-foreground\",\n);\nconst ShadcnInput = withClassName(\n PrimitiveInput,\n \"rounded-md border-input bg-card text-foreground placeholder:text-muted-foreground\",\n);\nconst ShadcnInputGroup = withClassName(\n PrimitiveInputGroup,\n \"rounded-md border-input bg-card text-foreground\",\n);\nconst ShadcnInputGroupAddon = withClassName(\n PrimitiveInputGroupAddon,\n \"text-muted-foreground\",\n);\nconst ShadcnInputGroupInput = withClassName(\n PrimitiveInputGroupInput,\n \"bg-transparent\",\n);\nconst ShadcnScrollBar = withClassName(\n PrimitiveScrollBar,\n \"[&>[data-slot=scroll-area-thumb]]:bg-border\",\n);\nconst ShadcnSelectTrigger = withClassName(\n PrimitiveSelectTrigger,\n \"rounded-md border-input bg-card text-foreground\",\n);\nconst ShadcnSelectContent = withClassName(\n PrimitiveSelectContent,\n \"border-border bg-popover text-popover-foreground shadow-md\",\n);\nconst ShadcnSelectItem = withClassName(\n PrimitiveSelectItem,\n \"focus:bg-accent focus:text-accent-foreground\",\n);\nconst ShadcnSelectLabel = withClassName(\n PrimitiveSelectLabel,\n \"text-muted-foreground\",\n);\nconst ShadcnSelectSeparator = withClassName(\n PrimitiveSelectSeparator,\n \"bg-border\",\n);\nconst ShadcnSeparator = withClassName(PrimitiveSeparator, \"bg-border\");\nconst ShadcnSkeleton = withClassName(PrimitiveSkeleton, \"bg-muted\");\nconst ShadcnTableFooter = withClassName(\n PrimitiveTableFooter,\n \"border-border bg-muted/50\",\n);\nconst ShadcnTableHead = withClassName(\n PrimitiveTableHead,\n \"text-foreground\",\n);\nconst ShadcnTooltipContent = withClassName(\n PrimitiveTooltipContent,\n \"bg-foreground text-background ring-1 ring-foreground/10 [&>svg]:bg-foreground [&>svg]:fill-foreground\",\n);\n\nexport const shadcnUiKit: DataTableUiKit = {\n ...primitiveUiKit,\n rootClassName: \"dtp-shadcn\",\n classNames: {\n card: \"hover:bg-muted/50 data-[state=selected]:bg-primary/10\",\n cardGrid: \"bg-transparent\",\n cardItem: \"min-w-0\",\n cardOverlay: \"from-background/95 via-background/85 to-transparent\",\n cardScrollArea: \"bg-transparent\",\n cardSelected: \"bg-primary/10 ring-primary\",\n cardUnselected: \"border-border\",\n cardViewport: \"bg-transparent\",\n cellBorder: \"border-border/40\",\n cellSelected: \"!bg-primary/10 ring-1 ring-inset ring-primary/40\",\n columnGroupHeader: \"bg-muted/50 font-semibold\",\n dragActive: \"rounded-md border-dashed border-primary\",\n emptyState: \"border-border/60 bg-background/70\",\n footer: \"border-border bg-card\",\n headerSortIcon: \"text-muted-foreground\",\n mutedText: \"text-muted-foreground\",\n paginationSelectTrigger: \"border-input bg-card\",\n paginationTotal: \"text-muted-foreground\",\n pinnedColumn: \"border-border\",\n pinnedUtilityColumn: \"bg-card\",\n resizeHandle: \"after:bg-border hover:after:bg-primary\",\n resizeHandleActive: \"after:bg-primary\",\n row: \"hover:bg-muted/50 data-[state=selected]:!bg-primary/10\",\n rowSelected: \"!bg-primary/10\",\n tableContainer: \"border-border bg-card text-card-foreground\",\n tableStickyHeader:\n \"sticky top-0 z-30 bg-card/95 backdrop-blur [&_th]:border-border [&_th]:bg-card/95\",\n toolbarCompactIconButton: \"size-7\",\n toolbarIconButton: \"text-muted-foreground hover:text-foreground\",\n toolbarInputButton: \"border-input bg-card\",\n },\n Button: ShadcnButton,\n Card: ShadcnCard,\n CardDescription: ShadcnCardDescription,\n CardFooter: ShadcnCardFooter,\n Checkbox: ShadcnCheckbox,\n DropdownMenuCheckboxItem: ShadcnDropdownMenuCheckboxItem,\n DropdownMenuContent: ShadcnDropdownMenuContent,\n DropdownMenuItem: ShadcnDropdownMenuItem,\n DropdownMenuLabel: ShadcnDropdownMenuLabel,\n DropdownMenuRadioItem: ShadcnDropdownMenuRadioItem,\n DropdownMenuSeparator: ShadcnDropdownMenuSeparator,\n DropdownMenuSubContent: ShadcnDropdownMenuSubContent,\n DropdownMenuSubTrigger: ShadcnDropdownMenuSubTrigger,\n Empty: ShadcnEmpty,\n EmptyDescription: ShadcnEmptyDescription,\n EmptyMedia: ShadcnEmptyMedia,\n Input: ShadcnInput,\n InputGroup: ShadcnInputGroup,\n InputGroupAddon: ShadcnInputGroupAddon,\n InputGroupInput: ShadcnInputGroupInput,\n ScrollBar: ShadcnScrollBar,\n SelectContent: ShadcnSelectContent,\n SelectItem: ShadcnSelectItem,\n SelectLabel: ShadcnSelectLabel,\n SelectSeparator: ShadcnSelectSeparator,\n SelectTrigger: ShadcnSelectTrigger,\n Separator: ShadcnSeparator,\n Skeleton: ShadcnSkeleton,\n TableFooter: ShadcnTableFooter,\n TableHead: ShadcnTableHead,\n TooltipContent: ShadcnTooltipContent,\n};\n"]} \ No newline at end of file +{"version":3,"sources":["../src/adapters/shadcn/index.tsx"],"names":["withClassName","Component","defaultClassName","className","props","jsx","cn","ShadcnButton","Button","ShadcnCard","Card","ShadcnCardDescription","CardDescription","ShadcnCardFooter","CardFooter","ShadcnCheckbox","Checkbox","ShadcnDropdownMenuContent","DropdownMenuContent","ShadcnDropdownMenuItem","DropdownMenuItem","ShadcnDropdownMenuCheckboxItem","DropdownMenuCheckboxItem","ShadcnDropdownMenuRadioItem","DropdownMenuRadioItem","ShadcnDropdownMenuLabel","DropdownMenuLabel","ShadcnDropdownMenuSeparator","DropdownMenuSeparator","ShadcnDropdownMenuSubContent","DropdownMenuSubContent","ShadcnDropdownMenuSubTrigger","DropdownMenuSubTrigger","ShadcnEmpty","Empty","ShadcnEmptyDescription","EmptyDescription","ShadcnEmptyMedia","EmptyMedia","ShadcnInput","Input","ShadcnInputGroup","InputGroup","ShadcnInputGroupAddon","InputGroupAddon","ShadcnInputGroupInput","InputGroupInput","ShadcnScrollBar","ScrollBar","ShadcnSelectTrigger","SelectTrigger","ShadcnSelectContent","SelectContent","ShadcnSelectItem","SelectItem","ShadcnSelectLabel","SelectLabel","ShadcnSelectSeparator","SelectSeparator","ShadcnSeparator","Separator","ShadcnSkeleton","Skeleton","ShadcnTableFooter","TableFooter","ShadcnTableHead","TableHead","ShadcnTooltipContent","TooltipContent","shadcnUiKit","primitiveUiKit"],"mappings":"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","file":"chunk-RS7MSX54.js","sourcesContent":["import * as React from \"react\";\nimport type { DataTableUiKit } from \"../../core/ui-kit\";\nimport {\n Button as PrimitiveButton,\n Card as PrimitiveCard,\n CardDescription as PrimitiveCardDescription,\n CardFooter as PrimitiveCardFooter,\n Checkbox as PrimitiveCheckbox,\n DropdownMenuCheckboxItem as PrimitiveDropdownMenuCheckboxItem,\n DropdownMenuContent as PrimitiveDropdownMenuContent,\n DropdownMenuItem as PrimitiveDropdownMenuItem,\n DropdownMenuLabel as PrimitiveDropdownMenuLabel,\n DropdownMenuRadioItem as PrimitiveDropdownMenuRadioItem,\n DropdownMenuSeparator as PrimitiveDropdownMenuSeparator,\n DropdownMenuSubContent as PrimitiveDropdownMenuSubContent,\n DropdownMenuSubTrigger as PrimitiveDropdownMenuSubTrigger,\n Empty as PrimitiveEmpty,\n EmptyDescription as PrimitiveEmptyDescription,\n EmptyMedia as PrimitiveEmptyMedia,\n Input as PrimitiveInput,\n InputGroup as PrimitiveInputGroup,\n InputGroupAddon as PrimitiveInputGroupAddon,\n InputGroupInput as PrimitiveInputGroupInput,\n ScrollBar as PrimitiveScrollBar,\n SelectContent as PrimitiveSelectContent,\n SelectItem as PrimitiveSelectItem,\n SelectLabel as PrimitiveSelectLabel,\n SelectSeparator as PrimitiveSelectSeparator,\n SelectTrigger as PrimitiveSelectTrigger,\n Separator as PrimitiveSeparator,\n Skeleton as PrimitiveSkeleton,\n TableFooter as PrimitiveTableFooter,\n TableHead as PrimitiveTableHead,\n TooltipContent as PrimitiveTooltipContent,\n primitiveUiKit,\n} from \"../../core/primitive-ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nfunction withClassName(\n Component: React.ComponentType,\n defaultClassName: string,\n) {\n return function Wrapped({ className, ...props }: TProps) {\n return (\n \n );\n };\n}\n\nconst ShadcnButton = withClassName(\n PrimitiveButton,\n \"rounded-md text-foreground data-[variant=default]:border-primary data-[variant=default]:bg-primary data-[variant=default]:text-primary-foreground data-[variant=outline]:border-input data-[variant=outline]:bg-card data-[variant=outline]:hover:bg-accent data-[variant=outline]:hover:text-accent-foreground data-[variant=secondary]:border-secondary data-[variant=secondary]:bg-secondary data-[variant=secondary]:text-secondary-foreground data-[variant=ghost]:border-transparent data-[variant=ghost]:bg-transparent data-[variant=ghost]:hover:bg-accent data-[variant=ghost]:hover:text-accent-foreground data-[variant=destructive]:border-destructive data-[variant=destructive]:bg-destructive data-[variant=destructive]:text-destructive-foreground data-[variant=link]:border-transparent data-[variant=link]:bg-transparent\",\n);\nconst ShadcnCard = withClassName(\n PrimitiveCard,\n \"rounded-xl border-border bg-card text-card-foreground shadow-sm ring-0\",\n);\nconst ShadcnCardDescription = withClassName(\n PrimitiveCardDescription,\n \"text-muted-foreground\",\n);\nconst ShadcnCardFooter = withClassName(\n PrimitiveCardFooter,\n \"border-t border-border/60 bg-muted/50\",\n);\nconst ShadcnCheckbox = withClassName(\n PrimitiveCheckbox,\n \"border-input bg-card ring-ring/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-checked:ring-primary\",\n);\nconst ShadcnDropdownMenuContent = withClassName(\n PrimitiveDropdownMenuContent,\n \"border-border bg-popover text-popover-foreground shadow-md\",\n);\nconst ShadcnDropdownMenuItem = withClassName(\n PrimitiveDropdownMenuItem,\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10\",\n);\nconst ShadcnDropdownMenuCheckboxItem = withClassName(\n PrimitiveDropdownMenuCheckboxItem,\n \"focus:bg-accent focus:text-accent-foreground\",\n);\nconst ShadcnDropdownMenuRadioItem = withClassName(\n PrimitiveDropdownMenuRadioItem,\n \"focus:bg-accent focus:text-accent-foreground\",\n);\nconst ShadcnDropdownMenuLabel = withClassName(\n PrimitiveDropdownMenuLabel,\n \"text-muted-foreground\",\n);\nconst ShadcnDropdownMenuSeparator = withClassName(\n PrimitiveDropdownMenuSeparator,\n \"bg-border\",\n);\nconst ShadcnDropdownMenuSubContent = withClassName(\n PrimitiveDropdownMenuSubContent,\n \"border-border bg-popover text-popover-foreground shadow-md\",\n);\nconst ShadcnDropdownMenuSubTrigger = withClassName(\n PrimitiveDropdownMenuSubTrigger,\n \"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground\",\n);\nconst ShadcnEmpty = withClassName(\n PrimitiveEmpty,\n \"rounded-2xl border-border/60 bg-background/70\",\n);\nconst ShadcnEmptyDescription = withClassName(\n PrimitiveEmptyDescription,\n \"text-muted-foreground\",\n);\nconst ShadcnEmptyMedia = withClassName(\n PrimitiveEmptyMedia,\n \"[&[data-variant=icon]]:bg-muted [&[data-variant=icon]]:text-foreground\",\n);\nconst ShadcnInput = withClassName(\n PrimitiveInput,\n \"rounded-md border-input bg-card text-foreground placeholder:text-muted-foreground\",\n);\nconst ShadcnInputGroup = withClassName(\n PrimitiveInputGroup,\n \"rounded-md border-input bg-card text-foreground\",\n);\nconst ShadcnInputGroupAddon = withClassName(\n PrimitiveInputGroupAddon,\n \"text-muted-foreground\",\n);\nconst ShadcnInputGroupInput = withClassName(\n PrimitiveInputGroupInput,\n \"bg-transparent\",\n);\nconst ShadcnScrollBar = withClassName(\n PrimitiveScrollBar,\n \"[&>[data-slot=scroll-area-thumb]]:bg-border\",\n);\nconst ShadcnSelectTrigger = withClassName(\n PrimitiveSelectTrigger,\n \"rounded-md border-input bg-card text-foreground\",\n);\nconst ShadcnSelectContent = withClassName(\n PrimitiveSelectContent,\n \"border-border bg-popover text-popover-foreground shadow-md\",\n);\nconst ShadcnSelectItem = withClassName(\n PrimitiveSelectItem,\n \"focus:bg-accent focus:text-accent-foreground\",\n);\nconst ShadcnSelectLabel = withClassName(\n PrimitiveSelectLabel,\n \"text-muted-foreground\",\n);\nconst ShadcnSelectSeparator = withClassName(\n PrimitiveSelectSeparator,\n \"bg-border\",\n);\nconst ShadcnSeparator = withClassName(PrimitiveSeparator, \"bg-border\");\nconst ShadcnSkeleton = withClassName(PrimitiveSkeleton, \"bg-muted\");\nconst ShadcnTableFooter = withClassName(\n PrimitiveTableFooter,\n \"border-border bg-muted/50\",\n);\nconst ShadcnTableHead = withClassName(\n PrimitiveTableHead,\n \"text-foreground\",\n);\nconst ShadcnTooltipContent = withClassName(\n PrimitiveTooltipContent,\n \"bg-foreground text-background ring-1 ring-foreground/10 [&>svg]:bg-foreground [&>svg]:fill-foreground\",\n);\n\nexport const shadcnUiKit: DataTableUiKit = {\n ...primitiveUiKit,\n rootClassName: \"dtp-shadcn\",\n classNames: {\n card: \"hover:bg-muted/50 data-[state=selected]:bg-primary/10\",\n cardGrid: \"bg-transparent\",\n cardItem: \"min-w-0\",\n cardOverlay: \"from-background/95 via-background/85 to-transparent\",\n cardScrollArea: \"bg-transparent\",\n cardSelected: \"bg-primary/10 ring-primary\",\n cardUnselected: \"border-border\",\n cardViewport: \"bg-transparent\",\n cellBorder: \"border-border/40\",\n cellSelected: \"!bg-primary/10 ring-1 ring-inset ring-primary/40\",\n columnGroupHeader: \"bg-muted/50 font-semibold\",\n dragActive: \"rounded-md border-dashed border-primary\",\n emptyState: \"border-border/60 bg-background/70\",\n footer: \"border-border bg-card\",\n headerSortIcon: \"text-muted-foreground\",\n mutedText: \"text-muted-foreground\",\n paginationSelectTrigger: \"border-input bg-card\",\n paginationTotal: \"text-muted-foreground\",\n pinnedColumn: \"border-border\",\n pinnedUtilityColumn: \"bg-card\",\n resizeHandle: \"after:bg-border hover:after:bg-primary\",\n resizeHandleActive: \"after:bg-primary\",\n row: \"hover:bg-muted/50 data-[state=selected]:!bg-primary/10\",\n rowSelected: \"!bg-primary/10\",\n tableContainer: \"border-border bg-card text-card-foreground\",\n tableStickyHeader:\n \"sticky top-0 z-30 bg-card/95 backdrop-blur [&_th]:border-border [&_th]:bg-card/95\",\n toolbarCompactIconButton: \"size-7\",\n toolbarIconButton: \"text-muted-foreground hover:text-foreground\",\n toolbarInputButton: \"border-input bg-card\",\n },\n Button: ShadcnButton,\n Card: ShadcnCard,\n CardDescription: ShadcnCardDescription,\n CardFooter: ShadcnCardFooter,\n Checkbox: ShadcnCheckbox,\n DropdownMenuCheckboxItem: ShadcnDropdownMenuCheckboxItem,\n DropdownMenuContent: ShadcnDropdownMenuContent,\n DropdownMenuItem: ShadcnDropdownMenuItem,\n DropdownMenuLabel: ShadcnDropdownMenuLabel,\n DropdownMenuRadioItem: ShadcnDropdownMenuRadioItem,\n DropdownMenuSeparator: ShadcnDropdownMenuSeparator,\n DropdownMenuSubContent: ShadcnDropdownMenuSubContent,\n DropdownMenuSubTrigger: ShadcnDropdownMenuSubTrigger,\n Empty: ShadcnEmpty,\n EmptyDescription: ShadcnEmptyDescription,\n EmptyMedia: ShadcnEmptyMedia,\n Input: ShadcnInput,\n InputGroup: ShadcnInputGroup,\n InputGroupAddon: ShadcnInputGroupAddon,\n InputGroupInput: ShadcnInputGroupInput,\n ScrollBar: ShadcnScrollBar,\n SelectContent: ShadcnSelectContent,\n SelectItem: ShadcnSelectItem,\n SelectLabel: ShadcnSelectLabel,\n SelectSeparator: ShadcnSelectSeparator,\n SelectTrigger: ShadcnSelectTrigger,\n Separator: ShadcnSeparator,\n Skeleton: ShadcnSkeleton,\n TableFooter: ShadcnTableFooter,\n TableHead: ShadcnTableHead,\n TooltipContent: ShadcnTooltipContent,\n};\n"]} \ No newline at end of file diff --git a/dist/chunk-THSY57Y7.js b/dist/chunk-THSY57Y7.js deleted file mode 100644 index b654a3f..0000000 --- a/dist/chunk-THSY57Y7.js +++ /dev/null @@ -1,2 +0,0 @@ -import {d,z,x,w,y,j}from'./chunk-4P45F2OY.js';import {c,t,i}from'./chunk-CVR2ZXHQ.js';import {h,g,f}from'./chunk-KDHJA6AH.js';import {a}from'./chunk-XTVBESM5.js';import*as N from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {flexRender}from'@tanstack/react-table';function dt({columns:e,editableRows:a,onError:i}){let[o,n]=N.useState(null),[u,D]=N.useState({}),T=N.useRef(u),[R,t]=N.useState({}),[I,m]=N.useState({}),[x,L]=N.useState(false),B=N.useMemo(()=>!xa(u,R),[u,R]);N.useEffect(()=>{T.current=u;},[u]);let h=N.useCallback(()=>{n(null),D({}),m({}),t({});},[]),V=N.useCallback((k,f)=>{let S=a?.getInitialValues?.(k)??Ia(k,e);t({...S}),D(S),m({}),n(f);},[e,a]),M=N.useCallback(async k=>{if(!a)return false;L(true);let f={...T.current},S;try{let A=await a.validateRow?.(k,f),r=La(A);if(Object.keys(r).length>0)return m(r),!1;m({});let K=a.onOptimisticUpdate?.(k,f);return S=typeof K=="function"?K:void 0,await a.onSaveRow(k,f),a.onSaveSuccess?.(k,f),N.startTransition(h),!0}catch(A){try{S?.();}catch{}return a.onSaveError?.(A,k,f),i?.(A,k),false}finally{L(false);}},[h,a,i]),v=N.useCallback(k=>{m(f=>{if(!f[k]&&!f._row)return f;let S={...f};return delete S[k],delete S._row,S});},[]);return {cancelEditing:h,clearEditError:v,draftValues:u,editErrors:I,editingRowId:o,isEditDirty:B,isSavingEdit:x,saveEdit:M,setDraftValues:D,setEditingRowId:n,startEditingRow:V}}function Ia(e,a){return j(a).reduce((i,{column:o})=>("accessorKey"in o&&typeof o.accessorKey=="string"&&(i[o.accessorKey]=e[o.accessorKey]),i),{})}function fa(e,a,i,o,n){let{Checkbox:u,Input:D}=o,T=e.column.columnDef,R=T.meta,t="accessorKey"in T&&typeof T.accessorKey=="string"?T.accessorKey:e.column.id,I=a[t],m=n?.errors[t]??n?.errors[e.column.id]??n?.errors._row,x=h=>{n?.onValueChange(t),i(V=>({...V,[t]:h}));},L=h=>{h.key==="Escape"&&n?.cancelOnEscape?(h.preventDefault(),n.cancel()):h.key==="Enter"&&!h.shiftKey&&n?.commitOnEnter&&(h.preventDefault(),n.commit());};if(R?.renderEditCell)return R.renderEditCell({cell:e,row:e.row.original,value:e.getValue(),draftValue:I,error:m,isDirty:n?.isDirty??false,isPending:n?.isPending??false,setDraftValue:x});let B=Aa(R?.type,I);return typeof I=="boolean"?jsxs("div",{className:"min-w-0",children:[jsx(u,{"aria-invalid":!!m||void 0,checked:I,disabled:n?.isPending,onCheckedChange:h=>{x(h===true);},onKeyDown:L}),m?jsx("span",{className:"mt-1 block text-xs text-destructive",role:"alert",children:m}):null]}):jsxs("div",{className:"min-w-0",children:[jsx(D,{"aria-invalid":!!m||void 0,disabled:n?.isPending,type:B,value:R?.formatEditValue?R.formatEditValue(I,e):Ga(I,B),onChange:h=>{let V=h.target.value,M=R?.parseEditValue?R.parseEditValue(V,e):Ka(V,B,I);x(M);},onKeyDown:L}),m?jsx("span",{className:"mt-1 block text-xs text-destructive",role:"alert",children:m}):null]})}function La(e){return e?typeof e=="string"?{_row:e}:e:{}}function xa(e,a){let i=new Set([...Object.keys(e),...Object.keys(a)]);return Array.from(i).every(o=>Object.is(e[o],a[o]))}function Aa(e,a){return e==="numeric"||typeof a=="number"?"number":e==="date"||a instanceof Date?"datetime-local":"text"}function Ga(e,a="text"){return e==null?"":e instanceof Date?a==="datetime-local"?e.toISOString().slice(0,16):e.toISOString():typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"?String(e):""}function Ka(e,a,i){return a==="number"?e===""?null:Number(e):a==="datetime-local"?e?i instanceof Date?new Date(e):e:null:e}var ba=N.createContext(void 0);function mt({children:e,measureRow:a}){return jsx(ba.Provider,{value:a,children:e})}function ga(){return N.useContext(ba)}function Ae(e,a$1,i$1){let o=e.column.columnDef,n=o.meta,u=e.getValue(),D=i$1?.hasCustomCell??false,T=D&&o.cell?flexRender(o.cell,e):void 0,R=Oa(T),t=Ma({context:e,useCustomOverflowDefaults:i$1?.useCustomOverflowDefaults??false,value:u});if(n?.type==="date"&&!D)return jsxs("div",{"data-dtp-slot":"data-table-cell-content","data-dtp-overflow":t,className:a(Da(t),"flex w-full min-w-0 items-center justify-end gap-2"),children:[jsx(i,{className:a("shrink-0",a$1?.mutedText??"opacity-70")}),jsx("span",{className:"min-w-0 truncate",children:Ua(u)})]});let I=T!=null&&T!==""?T:u==null||u===""?jsx("span",{className:a$1?.mutedText??"opacity-70",children:"-"}):_a(u);return jsx("div",{"data-dtp-slot":"data-table-cell-content","data-dtp-overflow":t,className:a(Da(t),"w-full min-w-0 max-w-full",R&&"[&>*]:max-w-full [&>*]:min-w-0"),children:I})}function Ma({context:e,useCustomOverflowDefaults:a,value:i}){let o=e.column.columnDef,n=typeof o.meta?.overflow=="function"?o.meta.overflow({row:e.row.original,value:i}):o.meta?.overflow;return n||(a?"clip":"truncate")}function Da(e){switch(e){case "clip":return "block overflow-hidden whitespace-nowrap";case "wrap":return "block overflow-hidden whitespace-normal break-words";case "visible":return "block overflow-visible whitespace-normal";default:return "block overflow-hidden text-ellipsis whitespace-nowrap"}}function Oa(e){return e==null?false:N.isValidElement(e)||Array.isArray(e)||typeof e=="object"}function Ua(e){return typeof e=="number"?new Date(e*1e3).toLocaleString():typeof e=="string"&&e?e:"-"}function _a(e){if(e instanceof Date)return e.toLocaleString();if(typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")return String(e);try{return JSON.stringify(e)}catch{return "-"}}function Fa({columnLayouts:e,components:a$1,currentDensity:i,draftValues:o,editingContext:n,dragAndDrop:u,explicitCustomCellColumnIds:D,getRowClassName:T,groupToggleLabel:R,gridMode:t,gridRowAriaIndex:I,gridRowIndex:m,activeGridCell:x$1,cellSelectionEnabled:L,isGridCellSelected:B,onGridCellFocus:h$1,onGridCellKeyDown:V,onGridCellPointerDown:M,onGridCellPointerEnter:v,isDraggable:k,isDetailExpanded:f,isEditing:S,isExpanded:A,isInitialLoadingRow:r,isSelected:K,loadingState:z$1,onRowClick:F,pinnedPosition:d$1,originalRow:b,detailPanel:q,row:C,rowIndex:O,setDraftValues:Ce,stripedRows:ce,uiClassNames:G,visibleCells:ye,visibleLeafColumnCount:ee}){let{Checkbox:Ve,Input:$,Skeleton:ae,TableCell:we,TableRow:Re}=a$1,X=ga(),he=d$1?void 0:X,Me=ye.find(c=>!e.get(c.column.id)?.isUtilityColumn)?.column.id;return jsxs(N.Fragment,{children:[jsx(Re,{ref:he,"data-row-id":C.id,"data-index":he?O:void 0,"data-tree-depth":!r&&C.depth>0?C.depth:void 0,"data-dtp-slot":d$1?"data-table-pinned-row":"data-table-row","data-row-pinned":d$1,"data-row-grouped":C.getIsGrouped()||void 0,draggable:r?false:k,"data-loading":z$1?.isLoading||void 0,"data-row-index":r?void 0:O,"data-row-parity":ce&&!r?O%2===0?"odd":"even":void 0,"data-state":r?void 0:K?"selected":void 0,role:t?"row":void 0,"aria-rowindex":t?I:void 0,tabIndex:!t&&F&&!r?0:void 0,className:a(!r&&T?.(b,{row:b,rowId:C.id,rowIndex:O,isEditing:S,isExpanded:A,isLoading:!!z$1?.isLoading,isSelected:K,pinnedPosition:d$1??false}),G.row,d$1==="top"&&a("border-b-2",G.rowPinnedTop),d$1==="bottom"&&a("border-t-2",G.rowPinnedBottom),ce&&!r&&(O%2===0?G.rowOdd:G.rowEven),K&&!r&&G.rowSelected,F&&!r&&"cursor-pointer",r&&"pointer-events-none"),onClick:c=>{r||x(c.target,c.currentTarget)||t&&L||F?.({row:b,rowId:C.id});},onKeyDown:c=>{r||!F||c.key!=="Enter"&&c.key!==" "||x(c.target,c.currentTarget)||(c.preventDefault(),F({row:b,rowId:C.id}));},onDragStart:c=>{r||u?.onRowDragStart?.({row:b,rowId:C.id,event:c});},onDragEnd:c=>{r||u?.onRowDragEnd?.({row:b,rowId:C.id,event:c});},children:ye.map((c,W)=>{let j=c.column.columnDef.meta,J=c.getContext(),Oe=c.getValue(),U=e.get(c.column.id),me=U?.isSelectionColumn??false,Q=U?.isExpansionColumn??false,_=U?.isActionsColumn??false,ie=U?.isSpacerColumn??false,Ue=h(j?.hideOn),_e=r||d(b)?void 0:typeof j?.cellClassName=="function"?j.cellClassName({row:b,value:Oe}):j?.cellClassName,fe=t&&L&&!r&&B(m,W);return jsx(we,{role:t?"gridcell":void 0,"aria-colindex":t?W+1:void 0,"aria-selected":t&&!r?L?fe:K:void 0,"data-dtp-cell-selected":fe||void 0,"data-dtp-grid-cell":t?"true":void 0,"data-grid-row-index":t?m:void 0,"data-grid-column-index":t?W:void 0,tabIndex:t&&!r?x$1.row===m&&x$1.column===W?0:-1:void 0,onFocus:t?()=>h$1({row:m,column:W}):void 0,onKeyDown:t?E=>{if(E.target!==E.currentTarget){E.key==="Escape"&&(E.preventDefault(),E.currentTarget.focus());return}V(E,m,W);}:void 0,onPointerDown:t&&L&&!U?.isUtilityColumn&&!ie?E=>{x(E.target,E.currentTarget)||(E.currentTarget.focus(),M(E,m,W));}:void 0,onPointerEnter:t&&L&&!U?.isUtilityColumn&&!ie?E=>{x(E.target,E.currentTarget)||v(E,m,W);}:void 0,className:a("border-b",z(i),G.cellBorder,fe&&G.cellSelected,U?.utilityClassName,U?.isSpacerColumn&&"border-b-0 bg-transparent p-0",U?.pinnedClassName,Ue,g(J),j?.responsiveClassName,_e),style:U?.cellStyle,children:jsx("div",{"data-row-click-ignore":me||Q||_?"true":void 0,className:"min-w-0 max-w-full",style:C.depth>0&&c.column.id===Me?{paddingInlineStart:`${C.depth}rem`}:void 0,children:z$1?.isLoading?j?.skeleton?.(J)??z$1.skeleton??jsx(ae,{className:a("h-4 rounded",j?.type==="numeric"?"ml-auto w-16":j?.type==="date"?"ml-auto w-28":"w-full")}):S&&c.column.id!=="__select__"&&c.column.id!=="__expand__"&&c.column.id!=="__actions__"?fa(J,o,Ce,{Checkbox:Ve,Input:$},n?{cancel:n.cancel,cancelOnEscape:n.cancelOnEscape,commit:()=>n.commit(b),commitOnEnter:n.commitOnEnter,errors:n.errors,isDirty:n.isDirty,isPending:n.isPending,onValueChange:n.clearError}:void 0):C.getIsGrouped()&&c.getIsPlaceholder()?null:C.getIsGrouped()&&c.getIsGrouped()?jsxs("button",{type:"button",className:"inline-flex min-w-0 items-center gap-1 text-left font-medium",onClick:()=>C.toggleExpanded(),"aria-expanded":C.getIsExpanded(),"aria-label":R,children:[jsx("span",{"aria-hidden":"true",children:Ae(J,G,{hasCustomCell:D.has(c.column.id),useCustomOverflowDefaults:D.has(c.column.id)})}),jsxs("span",{className:"shrink-0 opacity-70",children:["(",C.subRows.length,")"]})]}):C.getIsGrouped()&&c.getIsAggregated()?c.column.columnDef.aggregatedCell?flexRender(c.column.columnDef.aggregatedCell,J):Ae(J,G,{hasCustomCell:false,useCustomOverflowDefaults:false}):Ae(J,G,{hasCustomCell:D.has(c.column.id)||me||Q||_||ie,useCustomOverflowDefaults:D.has(c.column.id)||me||Q||_||ie})})},c.id)})}),!r&&q&&f?jsx(Re,{"data-dtp-slot":"data-table-detail-panel-row","data-row-pinned":d$1,children:jsx(we,{colSpan:Math.max(1,ee),className:a("border-b",z(i),G.cellBorder),children:q.render({row:b,rowId:C.id,tableRow:C})})}):null]})}function Wa(e,a){return e.row.id===a.row.id&&e.row.original===a.row.original&&e.rowIndex===a.rowIndex&&e.isSelected===a.isSelected&&e.isInitialLoadingRow===a.isInitialLoadingRow&&e.isEditing===a.isEditing&&(!e.isEditing||e.editingContext===a.editingContext)&&e.isExpanded===a.isExpanded&&e.isDraggable===a.isDraggable&&ja(e.loadingState,a.loadingState)&&qa(e.visibleCells,a.visibleCells)&&e.components===a.components&&$a(e.columnLayouts,a.columnLayouts,a.visibleCells)&&e.currentDensity===a.currentDensity&&e.detailPanel===a.detailPanel&&e.isDetailExpanded===a.isDetailExpanded&&e.pinnedPosition===a.pinnedPosition&&e.onRowClick===a.onRowClick&&e.dragAndDrop===a.dragAndDrop&&e.getRowClassName===a.getRowClassName&&e.groupToggleLabel===a.groupToggleLabel&&e.gridMode===a.gridMode&&(!a.gridMode||e.gridRowAriaIndex===a.gridRowAriaIndex&&e.gridRowIndex===a.gridRowIndex&&e.activeGridCell.row===a.activeGridCell.row&&e.activeGridCell.column===a.activeGridCell.column&&e.cellSelectionEnabled===a.cellSelectionEnabled&&e.isGridCellSelected===a.isGridCellSelected&&e.onGridCellFocus===a.onGridCellFocus&&e.onGridCellKeyDown===a.onGridCellKeyDown&&e.onGridCellPointerDown===a.onGridCellPointerDown&&e.onGridCellPointerEnter===a.onGridCellPointerEnter)&&e.stripedRows===a.stripedRows&&e.uiClassNames===a.uiClassNames&&e.explicitCustomCellColumnIds===a.explicitCustomCellColumnIds&&(!e.isEditing||e.draftValues===a.draftValues)}function ja(e,a){return e?.isLoading===a?.isLoading&&e?.skeleton===a?.skeleton}function qa(e,a){return e.length===a.length&&e.every((i,o)=>{let n=a[o];return n?.id===i.id&&n.column.id===i.column.id})}function $a(e,a,i){return i.every(o=>{let n=e.get(o.column.id),u=a.get(o.column.id);return n?.fixedSide===u?.fixedSide&&n?.isActionsColumn===u?.isActionsColumn&&n?.isExpansionColumn===u?.isExpansionColumn&&n?.isSelectionColumn===u?.isSelectionColumn&&n?.isSpacerColumn===u?.isSpacerColumn&&n?.isUtilityColumn===u?.isUtilityColumn&&n?.pinnedClassName===u?.pinnedClassName&&n?.utilityClassName===u?.utilityClassName&&Xa(n?.cellStyle,u?.cellStyle)})}function Xa(e,a){return e?.width===a?.width&&e?.minWidth===a?.minWidth&&e?.maxWidth===a?.maxWidth&&e?.left===a?.left&&e?.right===a?.right}var Ta=N.memo(Fa,Wa);function Ja({columnGroupHeaderHeight:e,currentDensity:a$1,currentSorting:i,dir:o,draggedColumnIdRef:n,enableColumnReordering:u,enableColumnResizing:D,gridColumnIndex:T,gridMode:R,header:t$1,headerGroupHeaders:I,layout:m,primeColumnForResize:x,reorderColumn:L,resizeColumnLabel:B,resetColumnSize:h$1,TableHead:V,uiClassNames:M}){let v=t$1.column.columnDef.meta,k=N.useId(),f$1=!t$1.isPlaceholder&&t$1.subHeaders.length>0,S=f$1?t$1.column.columnDef:void 0,A=t$1.column.getCanSort(),r=t$1.column.getIsSorted(),K=i.findIndex(d=>d.id===t$1.column.id),z=u&&!t$1.isPlaceholder&&!f$1&&!m.isUtilityColumn&&!m.isSpacerColumn,F=h(v?.hideOn);return jsxs(V,{colSpan:t$1.colSpan,scope:t$1.isPlaceholder?void 0:f$1?"colgroup":"col",role:R?"columnheader":void 0,"aria-colindex":R?T:void 0,"aria-hidden":t$1.isPlaceholder||void 0,"aria-description":f$1?S?.description:void 0,"aria-labelledby":!t$1.isPlaceholder&&!m.isUtilityColumn&&!m.isSpacerColumn?k:void 0,"data-column-id":t$1.column.id,"data-column-group-id":f$1?S?.id:void 0,"data-header-depth":t$1.depth,"data-dtp-slot":f$1?"data-table-column-group-header":"data-table-column-header",className:a("relative border-b",y(a$1),f$1&&M.columnGroupHeader,m.utilityClassName,m.isSpacerColumn&&"border-b-1 bg-transparent p-0",m.pinnedClassName,F,f(t$1.getContext()),v?.headerClassName,f$1&&S?.headerClassName,v?.responsiveClassName),style:{...v?.headerStyle,...f$1?S?.headerStyle:void 0,...f$1&&(S?.headerHeight??e)!==void 0?{height:S?.headerHeight??e}:void 0,...m.headerStyle},title:f$1?S?.description:void 0,"aria-sort":r==="asc"?"ascending":r==="desc"?"descending":A?"none":void 0,draggable:z,tabIndex:z&&!A&&!(D&&t$1.column.getCanResize())?0:void 0,onDragStart:z?d=>{n.current=t$1.column.id,d.dataTransfer.effectAllowed="move";}:void 0,onDragOver:z?d=>{d.preventDefault(),d.dataTransfer.dropEffect="move";}:void 0,onDrop:z?d=>{d.preventDefault();let b=n.current;n.current=null,b&&L(b,t$1.column.id);}:void 0,onKeyDown:z?d=>{if(!d.altKey||d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;d.preventDefault();let b=I.filter(O=>!w(O.column.id)&&O.column.id!=="__spacer__"),q=b.findIndex(O=>O.column.id===t$1.column.id),C=b[d.key==="ArrowLeft"!=(o==="rtl")?q-1:q+1];C&&L(t$1.column.id,C.column.id);}:void 0,children:[t$1.isPlaceholder?null:A?jsxs("button",{type:"button",className:a("flex w-full items-center gap-2 font-medium",f(t$1.getContext())),onClick:t$1.column.getToggleSortingHandler(),children:[jsx("span",{id:k,className:"truncate",children:flexRender(t$1.column.columnDef.header,t$1.getContext())}),r?jsxs(Fragment,{children:[jsx(c,{className:a("size-4 shrink-0 transition-transform",r==="desc"?"rotate-0":"rotate-180")}),i.length>1&&K>=0?jsx("span",{className:"inline-flex size-4 shrink-0 items-center justify-center rounded-full text-[10px] leading-none",children:K+1}):null]}):jsx(t,{className:a("size-4 shrink-0",M.headerSortIcon??"opacity-70")})]}):m.isUtilityColumn||m.isSpacerColumn?flexRender(t$1.column.columnDef.header,t$1.getContext()):jsx("span",{id:k,children:flexRender(t$1.column.columnDef.header,t$1.getContext())}),D&&!t$1.isPlaceholder&&t$1.column.getCanResize()?jsx("div",{"aria-label":B,"aria-orientation":"vertical","aria-valuemax":Za(t$1),"aria-valuemin":Ya(t$1),"aria-valuenow":Math.round(t$1.getSize()),role:"separator",tabIndex:0,onDoubleClick:()=>{for(let d of re(t$1))h$1(d.column.id);},onMouseDown:d=>{for(let b of re(t$1))x(b.column.id,b.getSize());t$1.getResizeHandler()(d);},onTouchStart:d=>{for(let b of re(t$1))x(b.column.id,b.getSize());t$1.getResizeHandler()(d);},onKeyDown:d=>{if(d.altKey)return;if(d.key==="Home"){d.preventDefault();for(let q of re(t$1))h$1(q.column.id);return}if(d.key!=="ArrowLeft"&&d.key!=="ArrowRight")return;d.preventDefault(),d.stopPropagation();let b=d.key==="ArrowRight"!=(o==="rtl");et(t$1,(b?1:-1)*(d.shiftKey?25:10));},className:a("absolute inset-y-0 z-50 h-full w-3 cursor-col-resize touch-none select-none ltr:right-0 ltr:translate-x-1/2 rtl:left-0 rtl:-translate-x-1/2 after:absolute after:top-0 after:left-1/2 after:h-full after:w-px after:-translate-x-1/2",M.resizeHandle??"after:bg-current after:opacity-20 hover:after:opacity-70",t$1.column.getIsResizing()&&(M.resizeHandleActive??"after:opacity-100"))}):null]},t$1.id)}function Qa(e,a){return e.header.id===a.header.id&&e.header.column.id===a.header.column.id&&e.header.column.columnDef===a.header.column.columnDef&&e.header.colSpan===a.header.colSpan&&e.header.isPlaceholder===a.header.isPlaceholder&&at(e.header,a.header)&&e.currentDensity===a.currentDensity&&e.columnGroupHeaderHeight===a.columnGroupHeaderHeight&&e.dir===a.dir&&e.enableColumnReordering===a.enableColumnReordering&&e.enableColumnResizing===a.enableColumnResizing&&e.gridMode===a.gridMode&&e.gridColumnIndex===a.gridColumnIndex&&e.TableHead===a.TableHead&&e.uiClassNames===a.uiClassNames&&e.draggedColumnIdRef===a.draggedColumnIdRef&&e.primeColumnForResize===a.primeColumnForResize&&e.reorderColumn===a.reorderColumn&&e.resizeColumnLabel===a.resizeColumnLabel&&e.resetColumnSize===a.resetColumnSize&&e.selectionState===a.selectionState&&tt(e.currentSorting,a.currentSorting)&&nt(e.headerGroupHeaders,a.headerGroupHeaders)&<(e.layout,a.layout)}function re(e){return e.subHeaders.length?e.getLeafHeaders().filter(a=>!a.subHeaders.length):[e]}function Ya(e){return re(e).reduce((a,i)=>a+(i.column.columnDef.minSize??20),0)}function Za(e){return re(e).reduce((a,i)=>a+(i.column.columnDef.maxSize??Number.MAX_SAFE_INTEGER),0)}function et(e,a){let i=re(e),o=a/i.length;e.getContext().table.setColumnSizing(n=>{let u={...n};for(let D of i){let T=D.column,R=T.columnDef.minSize??20,t=T.columnDef.maxSize??Number.MAX_SAFE_INTEGER;u[T.id]=Math.min(t,Math.max(R,T.getSize()+o));}return u});}function at(e,a){return e.subHeaders.length===a.subHeaders.length&&e.subHeaders.every((i,o)=>a.subHeaders[o]?.id===i.id)}function tt(e,a){return e.length===a.length&&e.every((i,o)=>{let n=a[o];return n?.id===i.id&&n.desc===i.desc})}function nt(e,a){return e.length===a.length&&e.every((i,o)=>a[o]?.id===i.id)}function lt(e,a){return e.fixedSide===a.fixedSide&&e.isSpacerColumn===a.isSpacerColumn&&e.isUtilityColumn===a.isUtilityColumn&&e.pinnedClassName===a.pinnedClassName&&e.utilityClassName===a.utilityClassName&&e.headerStyle?.width===a.headerStyle?.width&&e.headerStyle?.minWidth===a.headerStyle?.minWidth&&e.headerStyle?.maxWidth===a.headerStyle?.maxWidth&&e.headerStyle?.left===a.headerStyle?.left&&e.headerStyle?.right===a.headerStyle?.right}var Ca=N.memo(Ja,Qa);function Ut({ariaDescribedBy:e,ariaLabelledBy:a$1,bodyRowComponents:i,cellSelection:o,cellSelectionEnabled:n,columnLayouts:u,columnGroupHeaderHeight:D,currentDensity:T,currentDetailExpanded:R,currentSorting:t=[],dir:I,DataTableEmptyState:m,dragAndDrop:x,draggedColumnIdRef:L,draftValues:B,editingRowId:h,editingContext:V,emptyNode:M,enableColumnReordering:v,enableColumnResizing:k,explicitCustomCellColumnIds:f,fillMinWidth:S,flexGrow:A,gridMode:r,gridPageSize:K,gridRowOffset:z,onGridActiveRowIndexChange:F,onCellSelectionChange:d$1,getColumnLayout:b,getRowClassName:q,getRowLoadingState:C,infiniteScroll:O,layoutMode:Ce,localSearchValue:ce,onRowClick:G,primeColumnForResize:ye,renderedRows:ee,detailPanel:Ve,topPinnedRows:$,bottomPinnedRows:ae,reorderColumn:we,resetColumnSize:Re,resolvedLabels:X,rowsToRender:he,ScrollArea:Me,ScrollBar:c,sentinelRef:W,setDraftValues:j,shouldRenderInitialLoading:J,stateOverlayNode:Oe,stickyHeader:U,stripedRows:me,summaryRows:Q,table:_,tableClassName:ie,tableContainerClassName:Ue,Table:_e,TableBody:fe,TableCell:E,TableFooter:ya="tfoot",TableHead:wa,TableHeader:Ra,TableRow:be,tableScrollContainerRef:Be,tableScrollElement:ve,totalRowCount:Ze,uiClassNames:te,virtualPaddingBottom:ea,virtualPaddingTop:aa,visibleLeafColumnCount:ne,visibleLeafColumns:se}){let ha=_.getIsAllPageRowsSelected()?true:_.getIsSomePageRowsSelected()?"indeterminate":false,ta=_.getFilteredRowModel().rows,Sa=N.useMemo(()=>Q.length?ta.map(l=>l.original):[],[ta,Q.length]),Se=_.getHeaderGroups().length,ke=$.length+ee.length+ae.length,[ge,na]=N.useState({row:0,column:0}),la=N.useRef(false),Fe=N.useRef(false),De=N.useMemo(()=>[...$,...ee,...ae],[ae,ee,$]),pe=N.useCallback((l,s)=>{let g=De[l],p=se[s];return g&&p&&!w(p.id)&&p.id!=="__spacer__"?{rowId:g.id,columnId:p.id}:void 0},[De,se]),de=N.useMemo(()=>{if(!o)return;let l=De.findIndex(H=>H.id===o.anchor.rowId),s=De.findIndex(H=>H.id===o.focus.rowId),g=se.findIndex(H=>H.id===o.anchor.columnId),p=se.findIndex(H=>H.id===o.focus.columnId);if(!(l<0||s<0||g<0||p<0))return {firstRow:Math.min(l,s),lastRow:Math.max(l,s),firstColumn:Math.min(g,p),lastColumn:Math.max(g,p)}},[o,De,se]),ka=N.useCallback((l,s)=>!!(de&&l>=de.firstRow&&l<=de.lastRow&&s>=de.firstColumn&&s<=de.lastColumn),[de]),Ea=N.useCallback(l=>{la.current=true,na(l);},[]),Ee=N.useCallback((l,s,g)=>{if(!n)return;let p=pe(l,s);if(!p)return;let H=g&&o?.anchor?o.anchor:p;d$1({anchor:H,focus:p});},[o,n,pe,d$1]),Ha=N.useCallback((l,s,g)=>{!n||l.button!==0||(l.preventDefault(),Fe.current=true,Ee(s,g,l.shiftKey));},[n,Ee]),Na=N.useCallback((l,s,g)=>{!n||!Fe.current||l.buttons!==1||Ee(s,g,true);},[n,Ee]);N.useEffect(()=>{let l=()=>{Fe.current=false;};return window.addEventListener("pointerup",l),()=>window.removeEventListener("pointerup",l)},[]),N.useEffect(()=>{if(!r)return;F?.(ge.row);let l=requestAnimationFrame(()=>{let s=Be.current?.querySelectorAll('[data-dtp-grid-cell="true"]'),g=Array.from(s??[]).find(p=>Number(p.dataset.gridRowIndex)===ge.row&&Number(p.dataset.gridColumnIndex)===ge.column);g&&la.current&&g.focus();});return ()=>cancelAnimationFrame(l)},[ge,r,F,Be]);let Pa=N.useCallback((l,s,g)=>{if(l.defaultPrevented||l.target!==l.currentTarget)return;let p=Math.max(1,K??(Math.floor((ve?.clientHeight||0)/Math.max(1,ve?.querySelector("tr")?.offsetHeight||48))||10)),H=Math.max(0,ke-1),le=Math.max(0,ne-1),Y=s,Z=g;switch(l.key){case "ArrowUp":Y--;break;case "ArrowDown":Y++;break;case "ArrowLeft":Z--;break;case "ArrowRight":Z++;break;case "Home":(l.ctrlKey||l.metaKey)&&(Y=0),Z=0;break;case "End":(l.ctrlKey||l.metaKey)&&(Y=H),Z=le;break;case "PageUp":Y-=p;break;case "PageDown":Y+=p;break;default:return}l.preventDefault();let je={row:Math.min(H,Math.max(0,Y)),column:Math.min(le,Math.max(0,Z))};if(na(je),l.shiftKey&&n){let qe=pe(je.row,je.column),oa=o?.anchor??pe(s,g)??qe;oa&&qe&&d$1({anchor:oa,focus:qe});}},[o,n,ke,pe,K,d$1,ve,ne]),We=(l,s,g)=>{let p=l.original,H=d(p),le=H?{isLoading:true}:C?.(p,s),Y=typeof le=="boolean"?{isLoading:le}:le,Z=H?false:x?.getRowDraggable?.(p)??false;return jsx(Ta,{columnLayouts:u,components:i,currentDensity:T,draftValues:B,editingContext:V,dragAndDrop:x,explicitCustomCellColumnIds:f,getRowClassName:q,groupToggleLabel:l.getIsExpanded()?X.collapseRow:X.expandRow,isDraggable:Z,isDetailExpanded:R===true||!!R[l.id],isEditing:h===l.id,isExpanded:l.getIsExpanded(),isInitialLoadingRow:H,isSelected:l.getIsSelected(),loadingState:Y,onRowClick:G,originalRow:p,pinnedPosition:g,detailPanel:Ve,row:l,rowIndex:s,setDraftValues:j,stripedRows:me,uiClassNames:te,visibleCells:l.getVisibleCells(),visibleLeafColumnCount:ne,gridMode:r,gridRowIndex:s,gridRowAriaIndex:Se+z+s+1,activeGridCell:ge,cellSelectionEnabled:n,isGridCellSelected:ka,onGridCellFocus:Ea,onGridCellKeyDown:Pa,onGridCellPointerDown:Ha,onGridCellPointerEnter:Na},`${g??"center"}-${l.id}`)};return jsxs("div",{"data-dtp-slot":"data-table-table-shell",className:a("relative box-border border-2 border-transparent transition-colors",A?"flex min-h-0 flex-1 flex-col":"h-full",x?.isDragging&&(te.dragActive??"rounded-md border-dashed")),children:[jsx("div",{ref:Be,className:a(A?"flex min-h-0 flex-1 flex-col":"h-full"),children:jsxs(Me,{className:a("rounded-md border",A?"min-h-0 flex-1":"h-full",te.tableContainer,te.tableScrollArea,Ue),children:[jsx("div",{className:"min-h-full",children:jsxs(_e,{"aria-describedby":e,"aria-labelledby":a$1,role:r?"grid":void 0,"aria-colcount":r?ne:void 0,"aria-rowcount":r?Se+(Ze??ke)+Q.length:void 0,className:a("w-full table-fixed border-separate border-spacing-0",ie),style:{minWidth:Ce==="fill"&&S||void 0,width:Ce==="fit"?_.getTotalSize():"100%"},children:[jsx("colgroup",{children:_.getVisibleLeafColumns().map(l=>{let s=b(l.id);return jsx("col",{style:s.colStyle},l.id)})}),jsx(Ra,{role:r?"rowgroup":void 0,className:a(U?te.tableStickyHeader??"sticky top-0 z-30 backdrop-blur":void 0),children:_.getHeaderGroups().map(l=>jsx(be,{role:r?"row":void 0,"aria-rowindex":r?l.depth+1:void 0,children:l.headers.map(s=>jsx(Ca,{columnGroupHeaderHeight:D,currentDensity:T,currentSorting:t,dir:I,draggedColumnIdRef:L,enableColumnReordering:v,enableColumnResizing:k,header:s,headerGroupHeaders:l.headers,layout:rt(s,b),primeColumnForResize:ye,reorderColumn:we,resizeColumnLabel:X.resizeColumn(typeof s.column.columnDef.header=="string"?s.column.columnDef.header:s.column.id),resetColumnSize:Re,selectionState:s.column.id==="__select__"?ha:void 0,TableHead:wa,uiClassNames:te,gridMode:r,gridColumnIndex:s.isPlaceholder||s.subHeaders.length?void 0:_.getVisibleLeafColumns().findIndex(g=>g.id===s.column.id)+1},s.id))},l.id))}),jsx(fe,{role:r?"rowgroup":void 0,children:$.length||ee.length||ae.length?jsxs(Fragment,{children:[$.map((l,s)=>We(l,s,"top")),aa>0?jsx(be,{"aria-hidden":"true",role:r?"presentation":void 0,children:jsx(E,{colSpan:Math.max(1,ne),className:"border-b-0 p-0",style:{height:aa}})}):null,he.map(({row:l,rowIndex:s})=>We(l,s+$.length)),ea>0?jsx(be,{"aria-hidden":"true",role:r?"presentation":void 0,children:jsx(E,{colSpan:Math.max(1,ne),className:"border-b-0 p-0",style:{height:ea}})}):null,ae.map((l,s)=>We(l,$.length+ee.length+s,"bottom"))]}):jsx(be,{role:r?"row":void 0,"aria-rowindex":r?Se+1:void 0,children:jsx(E,{role:r?"gridcell":void 0,"aria-colindex":r?1:void 0,colSpan:Math.max(1,ne),className:"h-full grow",children:jsx("div",{className:"flex h-full min-h-full w-full grow items-center justify-center",children:M??jsx(m,{title:ce?X.noMatchingRowsTitle:X.noRowsTitle,description:ce?X.noMatchingRowsDescription:X.noRowsDescription})})})})}),Q.length?jsx(ya,{role:r?"rowgroup":void 0,children:Q.map((l,s)=>jsx(be,{role:r?"row":void 0,"aria-rowindex":r?Se+(Ze??ke)+s+1:void 0,children:se.map((g,p)=>{let H=l.cells[g.id]??(p===0?l.label:null);return jsx(E,{role:r?"gridcell":void 0,"aria-colindex":r?p+1:void 0,className:a("border-b font-medium",te.cellBorder),children:typeof H=="function"?H({rows:Sa,columnId:g.id}):H},`${l.key}-${g.id}`)})},l.key))}):null]})}),O?.enabled&&ee.length&&!J?jsx("div",{className:"px-4 pb-4",children:jsx("div",{ref:W,className:"h-4 w-full"})}):null,jsx(c,{orientation:"horizontal"})]})}),Oe]})}function rt(e,a){let i=a(e.column.id);if(e.isPlaceholder||!e.subHeaders.length)return i;let o=e.getLeafHeaders().filter(D=>!D.subHeaders.length).map(D=>a(D.column.id)),n=o[0]?.fixedSide;if(!n||!o.every(D=>D.fixedSide===n))return i;let u=n==="left"?o[0]:o.at(-1);return {...i,fixedSide:n,headerStyle:u?.headerStyle?{left:u.headerStyle.left,right:u.headerStyle.right}:void 0,pinnedClassName:u?.pinnedClassName}}export{dt as a,mt as b,Ta as c,Ca as d,Ut as e};//# sourceMappingURL=chunk-THSY57Y7.js.map -//# sourceMappingURL=chunk-THSY57Y7.js.map \ No newline at end of file diff --git a/dist/chunk-THSY57Y7.js.map b/dist/chunk-THSY57Y7.js.map deleted file mode 100644 index f2f1a33..0000000 --- a/dist/chunk-THSY57Y7.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/core/data-table/use-row-editing.tsx","../src/core/data-table/data-table-virtual-row-measurement.tsx","../src/core/data-table/data-table-cell-content.tsx","../src/core/data-table/data-table-body-row.tsx","../src/core/data-table/data-table-header-cell.tsx","../src/core/data-table/data-table-table-panel.tsx"],"names":["useRowEditing","columns","editableRows","onError","editingRowId","setEditingRowId","P","draftValues","setDraftValues","draftValuesRef","originalDraftValues","setOriginalDraftValues","editErrors","setEditErrors","isSavingEdit","setIsSavingEdit","isEditDirty","areDraftValuesEqual","cancelEditing","startEditingRow","row","rowId","initialValues","defaultDraftValues","saveEdit","draftSnapshot","rollback","validation","validationErrors","normalizeEditValidationErrors","optimisticResult","error","clearEditError","columnId","current","next","getDataTableLeafColumns","draft","column","renderEditableCell","context","components","editing","Checkbox","Input","meta","accessorKey","draftValue","setDraftValue","value","handleKeyDown","event","inputType","getEditableInputType","jsxs","jsx","checked","getEditableInputValue","rawValue","parsedValue","parseEditableInputValue","left","right","keys","key","type","previousValue","DataTableVirtualRowMeasurementContext","Le","DataTableVirtualRowMeasurementProvider","children","measureRow","useDataTableVirtualRowMeasurement","renderDataTableCellContent","classNames","options","hasCustomCell","renderedCellContent","flexRender","hasComplexRenderedContent","isComplexRenderedCellContent","resolvedOverflow","resolveDataTableCellOverflow","cn","getCellOverflowClassName","IconClock","formatDateValue","content","formatCellValue","useCustomOverflowDefaults","overflow","pa","DataTableBodyRowInner","columnLayouts","currentDensity","editingContext","dragAndDrop","explicitCustomCellColumnIds","getRowClassName","groupToggleLabel","gridMode","gridRowAriaIndex","gridRowIndex","activeGridCell","cellSelectionEnabled","isGridCellSelected","onGridCellFocus","onGridCellKeyDown","onGridCellPointerDown","onGridCellPointerEnter","isDraggable","isDetailExpanded","isEditing","isExpanded","isInitialLoadingRow","isSelected","loadingState","onRowClick","pinnedPosition","originalRow","detailPanel","rowIndex","stripedRows","uiClassNames","visibleCells","visibleLeafColumnCount","Skeleton","TableCell","TableRow","virtualRowMeasurement","measureElement","firstDataColumnId","cell","Ge","isDataTableInteractiveTarget","columnIndex","cellContext","layout","isSelectionColumn","isExpansionColumn","isActionsColumn","isSpacerColumn","hideClassName","hideOnClassName","cellClassName","isDataTableLoadingRow","isCellSelected","getDensityCellClassName","cellAlignClassName","areDataTableBodyRowsEqual","previous","sameLoadingState","sameVisibleCells","sameColumnLayouts","index","nextCell","cells","previousLayout","nextLayout","sameCellStyle","DataTableBodyRow","DataTableHeaderCellInner","columnGroupHeaderHeight","currentSorting","dir","draggedColumnIdRef","enableColumnReordering","enableColumnResizing","gridColumnIndex","header","headerGroupHeaders","primeColumnForResize","reorderColumn","resizeColumnLabel","resetColumnSize","TableHead","headerContentId","Ke","isColumnGroup","groupDefinition","canSort","sortingState","sortingIndex","sort","canReorderColumn","getDensityHeaderClassName","headerAlignClassName","sourceColumnId","headers","item","isUtilityColumnId","currentIndex","target","Fragment","IconChevronDown","IconSelector","getHeaderMaximumSize","getHeaderMinimumSize","leafHeader","getResizableLeafHeaders","grows","resizeHeaderBy","areDataTableHeaderCellsEqual","sameSubHeaders","sameSorting","sameHeaderGroupHeaders","sameHeaderLayout","total","delta","leafHeaders","deltaPerLeaf","minimum","maximum","nextSort","DataTableHeaderCell","DataTableTablePanel","ariaDescribedBy","ariaLabelledBy","bodyRowComponents","cellSelection","currentDetailExpanded","DataTableEmptyState","emptyNode","fillMinWidth","flexGrow","gridPageSize","gridRowOffset","onGridActiveRowIndexChange","onCellSelectionChange","getColumnLayout","getRowLoadingState","infiniteScroll","layoutMode","localSearchValue","renderedRows","topPinnedRows","bottomPinnedRows","resolvedLabels","rowsToRender","ScrollArea","ScrollBar","sentinelRef","shouldRenderInitialLoading","stateOverlayNode","stickyHeader","summaryRows","table","tableClassName","tableContainerClassName","Table","TableBody","TableFooter","TableHeader","tableScrollContainerRef","tableScrollElement","totalRowCount","virtualPaddingBottom","virtualPaddingTop","visibleLeafColumns","selectionState","filteredRows","summarySourceRows","headerRowCount","displayRowCount","activeCell","setActiveCell","shouldRestoreGridFocusRef","pointerSelectingRef","gridRows","getGridCoordinate","selectedBounds","anchorRow","focusRow","anchorColumn","focusColumn","handleGridCellFocus","selectGridCell","extend","focus","anchor","handleGridCellPointerDown","handleGridCellPointerEnter","stopSelecting","frame","moveGridFocus","pageRows","lastRow","lastColumn","nextRow","nextColumn","renderBodyRow","resolvedLoadingState","headerGroup","getHeaderLayout","summaryRow","summaryIndex","columnLayout","leafLayouts","fixedSide","edgeLayout"],"mappings":"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","file":"chunk-THSY57Y7.js","sourcesContent":["import * as React from \"react\";\nimport type { CellContext } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableColumnType,\n DataTableEditableRowsConfig,\n} from \"../types\";\nimport type { DataTableUiKit } from \"../ui-kit\";\nimport { getDataTableLeafColumns } from \"./data-table-utils\";\n\nexport function useRowEditing({\n columns,\n editableRows,\n onError,\n}: {\n columns: Array>;\n editableRows: DataTableEditableRowsConfig | undefined;\n onError?: (error: unknown, row: TData) => void;\n}) {\n const [editingRowId, setEditingRowId] = React.useState(null);\n const [draftValues, setDraftValues] = React.useState<\n Record\n >({});\n const draftValuesRef = React.useRef(draftValues);\n const [originalDraftValues, setOriginalDraftValues] = React.useState<\n Record\n >({});\n const [editErrors, setEditErrors] = React.useState>(\n {},\n );\n const [isSavingEdit, setIsSavingEdit] = React.useState(false);\n const isEditDirty = React.useMemo(\n () => !areDraftValuesEqual(draftValues, originalDraftValues),\n [draftValues, originalDraftValues],\n );\n\n React.useEffect(() => {\n draftValuesRef.current = draftValues;\n }, [draftValues]);\n\n const cancelEditing = React.useCallback(() => {\n setEditingRowId(null);\n setDraftValues({});\n setEditErrors({});\n setOriginalDraftValues({});\n }, []);\n\n const startEditingRow = React.useCallback(\n (row: TData, rowId: string) => {\n const initialValues =\n editableRows?.getInitialValues?.(row) ??\n defaultDraftValues(row, columns);\n setOriginalDraftValues({ ...initialValues });\n setDraftValues(initialValues);\n setEditErrors({});\n setEditingRowId(rowId);\n },\n [columns, editableRows],\n );\n\n const saveEdit = React.useCallback(\n async (row: TData) => {\n if (!editableRows) {\n return false;\n }\n\n setIsSavingEdit(true);\n const draftSnapshot = { ...draftValuesRef.current };\n let rollback: (() => void) | undefined;\n try {\n const validation = await editableRows.validateRow?.(\n row,\n draftSnapshot,\n );\n const validationErrors = normalizeEditValidationErrors(validation);\n if (Object.keys(validationErrors).length > 0) {\n setEditErrors(validationErrors);\n return false;\n }\n\n setEditErrors({});\n const optimisticResult = editableRows.onOptimisticUpdate?.(\n row,\n draftSnapshot,\n );\n rollback =\n typeof optimisticResult === \"function\"\n ? optimisticResult\n : undefined;\n await editableRows.onSaveRow(row, draftSnapshot);\n editableRows.onSaveSuccess?.(row, draftSnapshot);\n React.startTransition(cancelEditing);\n return true;\n } catch (error) {\n try {\n rollback?.();\n } catch {\n // Preserve the original save error for the public error callbacks.\n }\n editableRows.onSaveError?.(error, row, draftSnapshot);\n onError?.(error, row);\n return false;\n } finally {\n setIsSavingEdit(false);\n }\n },\n [cancelEditing, editableRows, onError],\n );\n const clearEditError = React.useCallback((columnId: string) => {\n setEditErrors((current) => {\n if (!current[columnId] && !current._row) {\n return current;\n }\n const next = { ...current };\n delete next[columnId];\n delete next._row;\n return next;\n });\n }, []);\n\n return {\n cancelEditing,\n clearEditError,\n draftValues,\n editErrors,\n editingRowId,\n isEditDirty,\n isSavingEdit,\n saveEdit,\n setDraftValues,\n setEditingRowId,\n startEditingRow,\n };\n}\n\nfunction defaultDraftValues(\n row: TData,\n columns: Array>,\n) {\n return getDataTableLeafColumns(columns).reduce>(\n (draft, { column }) => {\n if (\"accessorKey\" in column && typeof column.accessorKey === \"string\") {\n draft[column.accessorKey] = (row as Record)[\n column.accessorKey\n ];\n }\n return draft;\n },\n {},\n );\n}\n\nexport function renderEditableCell(\n context: CellContext,\n draftValues: Record,\n setDraftValues: React.Dispatch>>,\n components: Pick,\n editing?: {\n cancel: () => void;\n commit: () => void;\n errors: Record;\n isDirty: boolean;\n isPending: boolean;\n cancelOnEscape: boolean;\n commitOnEnter: boolean;\n onValueChange: (columnId: string) => void;\n },\n) {\n const { Checkbox, Input } = components;\n const column = context.column.columnDef as DataTableColumnDef;\n const meta = column.meta;\n const accessorKey =\n \"accessorKey\" in column && typeof column.accessorKey === \"string\"\n ? column.accessorKey\n : context.column.id;\n const draftValue = draftValues[accessorKey];\n const error =\n editing?.errors[accessorKey] ??\n editing?.errors[context.column.id] ??\n editing?.errors._row;\n const setDraftValue = (value: unknown) => {\n editing?.onValueChange(accessorKey);\n setDraftValues((current) => ({\n ...current,\n [accessorKey]: value,\n }));\n };\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === \"Escape\" && editing?.cancelOnEscape) {\n event.preventDefault();\n editing.cancel();\n } else if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n editing?.commitOnEnter\n ) {\n event.preventDefault();\n editing.commit();\n }\n };\n\n if (meta?.renderEditCell) {\n return meta.renderEditCell({\n cell: context,\n row: context.row.original,\n value: context.getValue(),\n draftValue,\n error,\n isDirty: editing?.isDirty ?? false,\n isPending: editing?.isPending ?? false,\n setDraftValue,\n });\n }\n\n const inputType = getEditableInputType(meta?.type, draftValue);\n\n if (typeof draftValue === \"boolean\") {\n return (\n
    \n {\n setDraftValue(checked === true);\n }}\n onKeyDown={handleKeyDown}\n />\n {error ? (\n \n {error}\n \n ) : null}\n
    \n );\n }\n\n return (\n
    \n ) => {\n const rawValue = event.target.value;\n const parsedValue = meta?.parseEditValue\n ? meta.parseEditValue(rawValue, context)\n : parseEditableInputValue(rawValue, inputType, draftValue);\n setDraftValue(parsedValue);\n }}\n onKeyDown={handleKeyDown}\n />\n {error ? (\n \n {error}\n \n ) : null}\n
    \n );\n}\n\nfunction normalizeEditValidationErrors(\n value: void | string | Record,\n) {\n if (!value) {\n return {};\n }\n return typeof value === \"string\" ? { _row: value } : value;\n}\n\nfunction areDraftValuesEqual(\n left: Record,\n right: Record,\n) {\n const keys = new Set([...Object.keys(left), ...Object.keys(right)]);\n return Array.from(keys).every((key) => Object.is(left[key], right[key]));\n}\n\nfunction getEditableInputType(\n type: DataTableColumnType | undefined,\n value: unknown,\n) {\n if (type === \"numeric\" || typeof value === \"number\") {\n return \"number\";\n }\n\n if (type === \"date\" || value instanceof Date) {\n return \"datetime-local\";\n }\n\n return \"text\";\n}\n\nfunction getEditableInputValue(value: unknown, inputType = \"text\") {\n if (value == null) {\n return \"\";\n }\n\n if (value instanceof Date) {\n return inputType === \"datetime-local\"\n ? value.toISOString().slice(0, 16)\n : value.toISOString();\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n return \"\";\n}\n\nfunction parseEditableInputValue(\n value: string,\n inputType: string,\n previousValue: unknown,\n) {\n if (inputType === \"number\") {\n return value === \"\" ? null : Number(value);\n }\n\n if (inputType === \"datetime-local\") {\n if (!value) {\n return null;\n }\n return previousValue instanceof Date ? new Date(value) : value;\n }\n\n return value;\n}\n","import * as React from \"react\";\n\nconst DataTableVirtualRowMeasurementContext = React.createContext<\n ((element: HTMLTableRowElement | null) => void) | undefined\n>(undefined);\n\nexport function DataTableVirtualRowMeasurementProvider({\n children,\n measureRow,\n}: {\n children: React.ReactNode;\n measureRow: ((element: HTMLTableRowElement | null) => void) | undefined;\n}) {\n return (\n \n {children}\n \n );\n}\n\nexport function useDataTableVirtualRowMeasurement():\n | ((element: HTMLTableRowElement | null) => void)\n | undefined {\n return React.useContext(DataTableVirtualRowMeasurementContext);\n}\n","import * as React from \"react\";\nimport { flexRender, type CellContext } from \"@tanstack/react-table\";\nimport { IconClock } from \"../icons\";\nimport type {\n DataTableCellOverflow,\n DataTableColumnDef,\n} from \"../types\";\nimport type { DataTableUiClassNames } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\n\nexport function renderDataTableCellContent(\n context: CellContext,\n classNames?: DataTableUiClassNames,\n options?: {\n hasCustomCell?: boolean;\n useCustomOverflowDefaults?: boolean;\n },\n) {\n const column = context.column.columnDef as DataTableColumnDef;\n const meta = column.meta;\n const value = context.getValue();\n const hasCustomCell = options?.hasCustomCell ?? false;\n const renderedCellContent = hasCustomCell && column.cell\n ? flexRender(column.cell, context)\n : undefined;\n const hasComplexRenderedContent = isComplexRenderedCellContent(\n renderedCellContent,\n );\n const resolvedOverflow = resolveDataTableCellOverflow({\n context,\n useCustomOverflowDefaults: options?.useCustomOverflowDefaults ?? false,\n value,\n });\n\n if (meta?.type === \"date\" && !hasCustomCell) {\n return (\n \n \n {formatDateValue(value)}\n \n );\n }\n\n const content =\n renderedCellContent !== undefined &&\n renderedCellContent !== null &&\n renderedCellContent !== \"\"\n ? renderedCellContent\n : value == null || value === \"\"\n ? -\n : formatCellValue(value);\n\n return (\n *]:max-w-full [&>*]:min-w-0\",\n )}\n >\n {content}\n \n );\n}\n\nfunction resolveDataTableCellOverflow({\n context,\n useCustomOverflowDefaults,\n value,\n}: {\n context: CellContext;\n useCustomOverflowDefaults: boolean;\n value: unknown;\n}): DataTableCellOverflow {\n const column = context.column.columnDef as DataTableColumnDef;\n const resolvedOverflow =\n typeof column.meta?.overflow === \"function\"\n ? column.meta.overflow({\n row: context.row.original,\n value,\n })\n : column.meta?.overflow;\n\n if (resolvedOverflow) {\n return resolvedOverflow;\n }\n\n return useCustomOverflowDefaults ? \"clip\" : \"truncate\";\n}\n\nfunction getCellOverflowClassName(overflow: DataTableCellOverflow) {\n switch (overflow) {\n case \"clip\":\n return \"block overflow-hidden whitespace-nowrap\";\n case \"wrap\":\n return \"block overflow-hidden whitespace-normal break-words\";\n case \"visible\":\n return \"block overflow-visible whitespace-normal\";\n case \"truncate\":\n default:\n return \"block overflow-hidden text-ellipsis whitespace-nowrap\";\n }\n}\n\nfunction isComplexRenderedCellContent(content: React.ReactNode) {\n if (content == null) {\n return false;\n }\n\n return (\n React.isValidElement(content) ||\n Array.isArray(content) ||\n typeof content === \"object\"\n );\n}\n\nfunction formatDateValue(value: unknown) {\n if (typeof value === \"number\") {\n return new Date(value * 1000).toLocaleString();\n }\n\n if (typeof value === \"string\" && value) {\n return value;\n }\n\n return \"-\";\n}\n\nfunction formatCellValue(value: unknown) {\n if (value instanceof Date) {\n return value.toLocaleString();\n }\n\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\" ||\n typeof value === \"bigint\"\n ) {\n return String(value);\n }\n\n try {\n return JSON.stringify(value);\n } catch {\n return \"-\";\n }\n}\n","import * as React from \"react\";\nimport { flexRender, type Cell, type Row } from \"@tanstack/react-table\";\nimport type { RowPinningPosition } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableDensity,\n DataTableProps,\n DataTableRowLoadingState,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport { renderDataTableCellContent } from \"./data-table-cell-content\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport {\n getDensityCellClassName,\n isDataTableInteractiveTarget,\n isDataTableLoadingRow,\n} from \"./data-table-utils\";\nimport { renderEditableCell } from \"./use-row-editing\";\nimport { useDataTableVirtualRowMeasurement } from \"./data-table-virtual-row-measurement\";\nimport { cellAlignClassName, hideOnClassName } from \"../types\";\n\nexport type DataTableRowEditingContext = {\n cancel: () => void;\n clearError: (columnId: string) => void;\n commit: (row: TData) => void;\n errors: Record;\n isDirty: boolean;\n isPending: boolean;\n cancelOnEscape: boolean;\n commitOnEnter: boolean;\n};\n\ntype DataTableBodyRowProps = {\n columnLayouts: ReadonlyMap;\n components: Pick<\n DataTableUiKit,\n \"Checkbox\" | \"Input\" | \"Skeleton\" | \"TableCell\" | \"TableRow\"\n >;\n currentDensity: DataTableDensity;\n draftValues: Record;\n editingContext?: DataTableRowEditingContext;\n dragAndDrop: DataTableProps[\"dragAndDrop\"];\n explicitCustomCellColumnIds: ReadonlySet;\n getRowClassName: DataTableProps[\"getRowClassName\"];\n groupToggleLabel: string;\n gridMode: boolean;\n gridRowAriaIndex: number;\n gridRowIndex: number;\n activeGridCell: { row: number; column: number };\n cellSelectionEnabled: boolean;\n isGridCellSelected: (row: number, column: number) => boolean;\n onGridCellFocus: (cell: { row: number; column: number }) => void;\n onGridCellKeyDown: (\n event: React.KeyboardEvent,\n row: number,\n column: number,\n ) => void;\n onGridCellPointerDown: (\n event: React.PointerEvent,\n row: number,\n column: number,\n ) => void;\n onGridCellPointerEnter: (\n event: React.PointerEvent,\n row: number,\n column: number,\n ) => void;\n isDraggable: boolean;\n isDetailExpanded: boolean;\n isEditing: boolean;\n isExpanded: boolean;\n isInitialLoadingRow: boolean;\n isSelected: boolean;\n loadingState: DataTableRowLoadingState | undefined;\n onRowClick: DataTableProps[\"onRowClick\"];\n pinnedPosition?: Exclude;\n originalRow: TData;\n detailPanel: DataTableProps[\"detailPanel\"];\n row: Row;\n rowIndex: number;\n setDraftValues: React.Dispatch>>;\n stripedRows: boolean;\n uiClassNames: DataTableUiClassNames;\n visibleCells: Array>;\n visibleLeafColumnCount: number;\n};\n\nfunction DataTableBodyRowInner({\n columnLayouts,\n components,\n currentDensity,\n draftValues,\n editingContext,\n dragAndDrop,\n explicitCustomCellColumnIds,\n getRowClassName,\n groupToggleLabel,\n gridMode,\n gridRowAriaIndex,\n gridRowIndex,\n activeGridCell,\n cellSelectionEnabled,\n isGridCellSelected,\n onGridCellFocus,\n onGridCellKeyDown,\n onGridCellPointerDown,\n onGridCellPointerEnter,\n isDraggable,\n isDetailExpanded,\n isEditing,\n isExpanded,\n isInitialLoadingRow,\n isSelected,\n loadingState,\n onRowClick,\n pinnedPosition,\n originalRow,\n detailPanel,\n row,\n rowIndex,\n setDraftValues,\n stripedRows,\n uiClassNames,\n visibleCells,\n visibleLeafColumnCount,\n}: DataTableBodyRowProps) {\n const { Checkbox, Input, Skeleton, TableCell, TableRow } = components;\n const virtualRowMeasurement = useDataTableVirtualRowMeasurement();\n const measureElement = pinnedPosition ? undefined : virtualRowMeasurement;\n const firstDataColumnId = visibleCells.find(\n (cell) => !columnLayouts.get(cell.column.id)?.isUtilityColumn,\n )?.column.id;\n\n return (\n \n 0 ? row.depth : undefined\n }\n data-dtp-slot={\n pinnedPosition ? \"data-table-pinned-row\" : \"data-table-row\"\n }\n data-row-pinned={pinnedPosition}\n data-row-grouped={row.getIsGrouped() || undefined}\n draggable={isInitialLoadingRow ? false : isDraggable}\n data-loading={loadingState?.isLoading || undefined}\n data-row-index={isInitialLoadingRow ? undefined : rowIndex}\n data-row-parity={\n stripedRows && !isInitialLoadingRow\n ? rowIndex % 2 === 0\n ? \"odd\"\n : \"even\"\n : undefined\n }\n data-state={\n isInitialLoadingRow ? undefined : isSelected ? \"selected\" : undefined\n }\n role={gridMode ? \"row\" : undefined}\n aria-rowindex={gridMode ? gridRowAriaIndex : undefined}\n tabIndex={\n !gridMode && onRowClick && !isInitialLoadingRow ? 0 : undefined\n }\n className={cn(\n !isInitialLoadingRow &&\n getRowClassName?.(originalRow, {\n row: originalRow,\n rowId: row.id,\n rowIndex,\n isEditing,\n isExpanded,\n isLoading: Boolean(loadingState?.isLoading),\n isSelected,\n pinnedPosition: pinnedPosition ?? false,\n }),\n uiClassNames.row,\n pinnedPosition === \"top\" &&\n cn(\"border-b-2\", uiClassNames.rowPinnedTop),\n pinnedPosition === \"bottom\" &&\n cn(\"border-t-2\", uiClassNames.rowPinnedBottom),\n stripedRows &&\n !isInitialLoadingRow &&\n (rowIndex % 2 === 0\n ? uiClassNames.rowOdd\n : uiClassNames.rowEven),\n isSelected && !isInitialLoadingRow && uiClassNames.rowSelected,\n onRowClick && !isInitialLoadingRow && \"cursor-pointer\",\n isInitialLoadingRow && \"pointer-events-none\",\n )}\n onClick={(event: React.MouseEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) {\n return;\n }\n\n if (gridMode && cellSelectionEnabled) return;\n\n void onRowClick?.({ row: originalRow, rowId: row.id });\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n if (\n isInitialLoadingRow ||\n !onRowClick ||\n (event.key !== \"Enter\" && event.key !== \" \")\n ) {\n return;\n }\n\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) {\n return;\n }\n\n event.preventDefault();\n void onRowClick({ row: originalRow, rowId: row.id });\n }}\n onDragStart={(event: React.DragEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n dragAndDrop?.onRowDragStart?.({\n row: originalRow,\n rowId: row.id,\n event,\n });\n }}\n onDragEnd={(event: React.DragEvent) => {\n if (isInitialLoadingRow) {\n return;\n }\n\n dragAndDrop?.onRowDragEnd?.({\n row: originalRow,\n rowId: row.id,\n event,\n });\n }}\n >\n {visibleCells.map((cell, columnIndex) => {\n const meta = (\n cell.column.columnDef as DataTableColumnDef\n ).meta;\n const cellContext = cell.getContext();\n const value = cell.getValue();\n const layout = columnLayouts.get(cell.column.id);\n const isSelectionColumn = layout?.isSelectionColumn ?? false;\n const isExpansionColumn = layout?.isExpansionColumn ?? false;\n const isActionsColumn = layout?.isActionsColumn ?? false;\n const isSpacerColumn = layout?.isSpacerColumn ?? false;\n const hideClassName = hideOnClassName(meta?.hideOn);\n const cellClassName =\n isInitialLoadingRow || isDataTableLoadingRow(originalRow)\n ? undefined\n : typeof meta?.cellClassName === \"function\"\n ? meta.cellClassName({\n row: originalRow,\n value,\n })\n : meta?.cellClassName;\n const isCellSelected =\n gridMode && cellSelectionEnabled &&\n !isInitialLoadingRow &&\n isGridCellSelected(gridRowIndex, columnIndex);\n\n return (\n onGridCellFocus({ row: gridRowIndex, column: columnIndex })\n : undefined\n }\n onKeyDown={\n gridMode\n ? (event: React.KeyboardEvent) => {\n if (event.target !== event.currentTarget) {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.currentTarget.focus();\n }\n return;\n }\n onGridCellKeyDown(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n onPointerDown={\n gridMode &&\n cellSelectionEnabled &&\n !layout?.isUtilityColumn &&\n !isSpacerColumn\n ? (event: React.PointerEvent) => {\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) return;\n event.currentTarget.focus();\n onGridCellPointerDown(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n onPointerEnter={\n gridMode &&\n cellSelectionEnabled &&\n !layout?.isUtilityColumn &&\n !isSpacerColumn\n ? (event: React.PointerEvent) => {\n if (isDataTableInteractiveTarget(event.target, event.currentTarget)) return;\n onGridCellPointerEnter(event, gridRowIndex, columnIndex);\n }\n : undefined\n }\n className={cn(\n \"border-b\",\n getDensityCellClassName(currentDensity),\n uiClassNames.cellBorder,\n isCellSelected && uiClassNames.cellSelected,\n layout?.utilityClassName,\n layout?.isSpacerColumn && \"border-b-0 bg-transparent p-0\",\n layout?.pinnedClassName,\n hideClassName,\n cellAlignClassName(cellContext),\n meta?.responsiveClassName,\n cellClassName,\n )}\n style={layout?.cellStyle}\n >\n 0 && cell.column.id === firstDataColumnId\n ? { paddingInlineStart: `${row.depth}rem` }\n : undefined\n }\n >\n {loadingState?.isLoading ? (\n (meta?.skeleton?.(cellContext) ??\n loadingState.skeleton ?? (\n \n ))\n ) : isEditing &&\n cell.column.id !== \"__select__\" &&\n cell.column.id !== \"__expand__\" &&\n cell.column.id !== \"__actions__\" ? (\n renderEditableCell(\n cellContext,\n draftValues,\n setDraftValues,\n {\n Checkbox,\n Input,\n },\n editingContext\n ? {\n cancel: editingContext.cancel,\n cancelOnEscape: editingContext.cancelOnEscape,\n commit: () => editingContext.commit(originalRow),\n commitOnEnter: editingContext.commitOnEnter,\n errors: editingContext.errors,\n isDirty: editingContext.isDirty,\n isPending: editingContext.isPending,\n onValueChange: editingContext.clearError,\n }\n : undefined,\n )\n ) : row.getIsGrouped() && cell.getIsPlaceholder() ? null : row.getIsGrouped() && cell.getIsGrouped() ? (\n row.toggleExpanded()}\n aria-expanded={row.getIsExpanded()}\n aria-label={groupToggleLabel}\n >\n \n {renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell:\n explicitCustomCellColumnIds.has(cell.column.id),\n useCustomOverflowDefaults:\n explicitCustomCellColumnIds.has(cell.column.id),\n })}\n \n \n ({row.subRows.length})\n \n \n ) : row.getIsGrouped() && cell.getIsAggregated() ? (\n cell.column.columnDef.aggregatedCell\n ? flexRender(cell.column.columnDef.aggregatedCell, cellContext)\n : renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell: false,\n useCustomOverflowDefaults: false,\n })\n ) : (\n renderDataTableCellContent(cellContext, uiClassNames, {\n hasCustomCell:\n explicitCustomCellColumnIds.has(cell.column.id) ||\n isSelectionColumn ||\n isExpansionColumn ||\n isActionsColumn ||\n isSpacerColumn,\n useCustomOverflowDefaults:\n explicitCustomCellColumnIds.has(cell.column.id) ||\n isSelectionColumn ||\n isExpansionColumn ||\n isActionsColumn ||\n isSpacerColumn,\n })\n )}\n \n \n );\n })}\n \n {!isInitialLoadingRow && detailPanel && isDetailExpanded ? (\n \n \n {detailPanel.render({\n row: originalRow,\n rowId: row.id,\n tableRow: row,\n })}\n \n \n ) : null}\n \n );\n}\n\nfunction areDataTableBodyRowsEqual(\n previous: DataTableBodyRowProps,\n next: DataTableBodyRowProps,\n) {\n return (\n previous.row.id === next.row.id &&\n previous.row.original === next.row.original &&\n previous.rowIndex === next.rowIndex &&\n previous.isSelected === next.isSelected &&\n previous.isInitialLoadingRow === next.isInitialLoadingRow &&\n previous.isEditing === next.isEditing &&\n (!previous.isEditing || previous.editingContext === next.editingContext) &&\n previous.isExpanded === next.isExpanded &&\n previous.isDraggable === next.isDraggable &&\n sameLoadingState(previous.loadingState, next.loadingState) &&\n sameVisibleCells(previous.visibleCells, next.visibleCells) &&\n previous.components === next.components &&\n sameColumnLayouts(\n previous.columnLayouts,\n next.columnLayouts,\n next.visibleCells,\n ) &&\n previous.currentDensity === next.currentDensity &&\n previous.detailPanel === next.detailPanel &&\n previous.isDetailExpanded === next.isDetailExpanded &&\n previous.pinnedPosition === next.pinnedPosition &&\n previous.onRowClick === next.onRowClick &&\n previous.dragAndDrop === next.dragAndDrop &&\n previous.getRowClassName === next.getRowClassName &&\n previous.groupToggleLabel === next.groupToggleLabel &&\n previous.gridMode === next.gridMode &&\n (!next.gridMode ||\n (previous.gridRowAriaIndex === next.gridRowAriaIndex &&\n previous.gridRowIndex === next.gridRowIndex &&\n previous.activeGridCell.row === next.activeGridCell.row &&\n previous.activeGridCell.column === next.activeGridCell.column &&\n previous.cellSelectionEnabled === next.cellSelectionEnabled &&\n previous.isGridCellSelected === next.isGridCellSelected &&\n previous.onGridCellFocus === next.onGridCellFocus &&\n previous.onGridCellKeyDown === next.onGridCellKeyDown &&\n previous.onGridCellPointerDown === next.onGridCellPointerDown &&\n previous.onGridCellPointerEnter === next.onGridCellPointerEnter)) &&\n previous.stripedRows === next.stripedRows &&\n previous.uiClassNames === next.uiClassNames &&\n previous.explicitCustomCellColumnIds === next.explicitCustomCellColumnIds &&\n (!previous.isEditing || previous.draftValues === next.draftValues)\n );\n}\n\nfunction sameLoadingState(\n previous: DataTableRowLoadingState | undefined,\n next: DataTableRowLoadingState | undefined,\n) {\n return (\n previous?.isLoading === next?.isLoading &&\n previous?.skeleton === next?.skeleton\n );\n}\n\nfunction sameVisibleCells(\n previous: Array>,\n next: Array>,\n) {\n return (\n previous.length === next.length &&\n previous.every((cell, index) => {\n const nextCell = next[index];\n return nextCell?.id === cell.id && nextCell.column.id === cell.column.id;\n })\n );\n}\n\nfunction sameColumnLayouts(\n previous: ReadonlyMap,\n next: ReadonlyMap,\n cells: Array>,\n) {\n return cells.every((cell) => {\n const previousLayout = previous.get(cell.column.id);\n const nextLayout = next.get(cell.column.id);\n\n return (\n previousLayout?.fixedSide === nextLayout?.fixedSide &&\n previousLayout?.isActionsColumn === nextLayout?.isActionsColumn &&\n previousLayout?.isExpansionColumn === nextLayout?.isExpansionColumn &&\n previousLayout?.isSelectionColumn === nextLayout?.isSelectionColumn &&\n previousLayout?.isSpacerColumn === nextLayout?.isSpacerColumn &&\n previousLayout?.isUtilityColumn === nextLayout?.isUtilityColumn &&\n previousLayout?.pinnedClassName === nextLayout?.pinnedClassName &&\n previousLayout?.utilityClassName === nextLayout?.utilityClassName &&\n sameCellStyle(previousLayout?.cellStyle, nextLayout?.cellStyle)\n );\n });\n}\n\nfunction sameCellStyle(\n previous: React.CSSProperties | undefined,\n next: React.CSSProperties | undefined,\n) {\n return (\n previous?.width === next?.width &&\n previous?.minWidth === next?.minWidth &&\n previous?.maxWidth === next?.maxWidth &&\n previous?.left === next?.left &&\n previous?.right === next?.right\n );\n}\n\nexport const DataTableBodyRow = React.memo(\n DataTableBodyRowInner,\n areDataTableBodyRowsEqual,\n) as typeof DataTableBodyRowInner;\n","import * as React from \"react\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { IconChevronDown, IconSelector } from \"../icons\";\nimport type { Header, SortingState } from \"@tanstack/react-table\";\nimport type {\n DataTableColumnDef,\n DataTableColumnGroupDef,\n DataTableDensity,\n DataTableProps,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport {\n getDensityHeaderClassName,\n isUtilityColumnId,\n} from \"./data-table-utils\";\nimport { headerAlignClassName, hideOnClassName } from \"../types\";\n\ntype DataTableHeaderCellProps = {\n columnGroupHeaderHeight: DataTableProps[\"columnGroupHeaderHeight\"];\n currentDensity: DataTableDensity;\n currentSorting: SortingState;\n dir: NonNullable[\"dir\"]>;\n draggedColumnIdRef: React.MutableRefObject;\n enableColumnReordering: boolean;\n enableColumnResizing: boolean;\n gridColumnIndex?: number;\n gridMode: boolean;\n header: Header;\n headerGroupHeaders: Array>;\n layout: DataTableColumnLayout;\n primeColumnForResize: (columnId: string, currentSize: number) => void;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n resizeColumnLabel: string;\n resetColumnSize: (columnId: string) => void;\n // Rendered through flexRender inside the header def; carried as a prop so\n // the memo comparator re-renders the selection header when it changes.\n selectionState?: boolean | \"indeterminate\";\n TableHead: DataTableUiKit[\"TableHead\"];\n uiClassNames: DataTableUiClassNames;\n};\n\nfunction DataTableHeaderCellInner({\n columnGroupHeaderHeight,\n currentDensity,\n currentSorting,\n dir,\n draggedColumnIdRef,\n enableColumnReordering,\n enableColumnResizing,\n gridColumnIndex,\n gridMode,\n header,\n headerGroupHeaders,\n layout,\n primeColumnForResize,\n reorderColumn,\n resizeColumnLabel,\n resetColumnSize,\n TableHead,\n uiClassNames,\n}: DataTableHeaderCellProps) {\n const meta = (header.column.columnDef as DataTableColumnDef)\n .meta;\n const headerContentId = React.useId();\n const isColumnGroup =\n !header.isPlaceholder && header.subHeaders.length > 0;\n const groupDefinition = isColumnGroup\n ? (header.column.columnDef as DataTableColumnGroupDef)\n : undefined;\n const canSort = header.column.getCanSort();\n const sortingState = header.column.getIsSorted();\n const sortingIndex = currentSorting.findIndex(\n (sort) => sort.id === header.column.id,\n );\n const canReorderColumn =\n enableColumnReordering &&\n !header.isPlaceholder &&\n !isColumnGroup &&\n !layout.isUtilityColumn &&\n !layout.isSpacerColumn;\n const hideClassName = hideOnClassName(meta?.hideOn);\n\n return (\n ) => {\n draggedColumnIdRef.current = header.column.id;\n event.dataTransfer.effectAllowed = \"move\";\n }\n : undefined\n }\n onDragOver={\n canReorderColumn\n ? (event: React.DragEvent) => {\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n }\n : undefined\n }\n onDrop={\n canReorderColumn\n ? (event: React.DragEvent) => {\n event.preventDefault();\n const sourceColumnId = draggedColumnIdRef.current;\n draggedColumnIdRef.current = null;\n if (sourceColumnId) {\n reorderColumn(sourceColumnId, header.column.id);\n }\n }\n : undefined\n }\n onKeyDown={\n canReorderColumn\n ? (event: React.KeyboardEvent) => {\n if (\n !event.altKey ||\n (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\")\n ) {\n return;\n }\n\n event.preventDefault();\n const headers = headerGroupHeaders.filter(\n (item) =>\n !isUtilityColumnId(item.column.id) &&\n item.column.id !== \"__spacer__\",\n );\n const currentIndex = headers.findIndex(\n (item) => item.column.id === header.column.id,\n );\n const target =\n headers[\n (event.key === \"ArrowLeft\") !== (dir === \"rtl\")\n ? currentIndex - 1\n : currentIndex + 1\n ];\n if (target) {\n reorderColumn(header.column.id, target.column.id);\n }\n }\n : undefined\n }\n >\n {header.isPlaceholder ? null : canSort ? (\n \n \n {flexRender(header.column.columnDef.header, header.getContext())}\n \n {sortingState ? (\n <>\n \n {currentSorting.length > 1 && sortingIndex >= 0 ? (\n \n {sortingIndex + 1}\n \n ) : null}\n \n ) : (\n \n )}\n \n ) : (\n layout.isUtilityColumn || layout.isSpacerColumn ? (\n flexRender(header.column.columnDef.header, header.getContext())\n ) : (\n \n {flexRender(header.column.columnDef.header, header.getContext())}\n \n )\n )}\n\n {enableColumnResizing &&\n !header.isPlaceholder &&\n header.column.getCanResize() ? (\n {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n resetColumnSize(leafHeader.column.id);\n }\n }}\n onMouseDown={(event) => {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n primeColumnForResize(\n leafHeader.column.id,\n leafHeader.getSize(),\n );\n }\n header.getResizeHandler()(event);\n }}\n onTouchStart={(event) => {\n for (const leafHeader of getResizableLeafHeaders(header)) {\n primeColumnForResize(\n leafHeader.column.id,\n leafHeader.getSize(),\n );\n }\n header.getResizeHandler()(event);\n }}\n onKeyDown={(event) => {\n if (event.altKey) {\n return;\n }\n if (event.key === \"Home\") {\n event.preventDefault();\n for (const leafHeader of getResizableLeafHeaders(header)) {\n resetColumnSize(leafHeader.column.id);\n }\n return;\n }\n if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n const grows =\n (event.key === \"ArrowRight\") !== (dir === \"rtl\");\n resizeHeaderBy(\n header,\n (grows ? 1 : -1) * (event.shiftKey ? 25 : 10),\n );\n }}\n className={cn(\n \"absolute inset-y-0 z-50 h-full w-3 cursor-col-resize touch-none select-none ltr:right-0 ltr:translate-x-1/2 rtl:left-0 rtl:-translate-x-1/2 after:absolute after:top-0 after:left-1/2 after:h-full after:w-px after:-translate-x-1/2\",\n uiClassNames.resizeHandle ??\n \"after:bg-current after:opacity-20 hover:after:opacity-70\",\n header.column.getIsResizing() &&\n (uiClassNames.resizeHandleActive ?? \"after:opacity-100\"),\n )}\n />\n ) : null}\n \n );\n}\n\nfunction areDataTableHeaderCellsEqual(\n previous: DataTableHeaderCellProps,\n next: DataTableHeaderCellProps,\n) {\n return (\n previous.header.id === next.header.id &&\n previous.header.column.id === next.header.column.id &&\n previous.header.column.columnDef === next.header.column.columnDef &&\n previous.header.colSpan === next.header.colSpan &&\n previous.header.isPlaceholder === next.header.isPlaceholder &&\n sameSubHeaders(previous.header, next.header) &&\n previous.currentDensity === next.currentDensity &&\n previous.columnGroupHeaderHeight === next.columnGroupHeaderHeight &&\n previous.dir === next.dir &&\n previous.enableColumnReordering === next.enableColumnReordering &&\n previous.enableColumnResizing === next.enableColumnResizing &&\n previous.gridMode === next.gridMode &&\n previous.gridColumnIndex === next.gridColumnIndex &&\n previous.TableHead === next.TableHead &&\n previous.uiClassNames === next.uiClassNames &&\n previous.draggedColumnIdRef === next.draggedColumnIdRef &&\n previous.primeColumnForResize === next.primeColumnForResize &&\n previous.reorderColumn === next.reorderColumn &&\n previous.resizeColumnLabel === next.resizeColumnLabel &&\n previous.resetColumnSize === next.resetColumnSize &&\n previous.selectionState === next.selectionState &&\n sameSorting(previous.currentSorting, next.currentSorting) &&\n sameHeaderGroupHeaders(\n previous.headerGroupHeaders,\n next.headerGroupHeaders,\n ) &&\n sameHeaderLayout(previous.layout, next.layout)\n );\n}\n\nfunction getResizableLeafHeaders(header: Header) {\n if (!header.subHeaders.length) {\n return [header];\n }\n\n return header\n .getLeafHeaders()\n .filter((leafHeader) => !leafHeader.subHeaders.length);\n}\n\nfunction getHeaderMinimumSize(header: Header) {\n return getResizableLeafHeaders(header).reduce(\n (total, leafHeader) =>\n total + (leafHeader.column.columnDef.minSize ?? 20),\n 0,\n );\n}\n\nfunction getHeaderMaximumSize(header: Header) {\n return getResizableLeafHeaders(header).reduce(\n (total, leafHeader) =>\n total + (leafHeader.column.columnDef.maxSize ?? Number.MAX_SAFE_INTEGER),\n 0,\n );\n}\n\nfunction resizeHeaderBy(\n header: Header,\n delta: number,\n) {\n const leafHeaders = getResizableLeafHeaders(header);\n const deltaPerLeaf = delta / leafHeaders.length;\n header.getContext().table.setColumnSizing((current) => {\n const next = { ...current };\n\n for (const leafHeader of leafHeaders) {\n const column = leafHeader.column;\n const minimum = column.columnDef.minSize ?? 20;\n const maximum =\n column.columnDef.maxSize ?? Number.MAX_SAFE_INTEGER;\n next[column.id] = Math.min(\n maximum,\n Math.max(minimum, column.getSize() + deltaPerLeaf),\n );\n }\n\n return next;\n });\n}\n\nfunction sameSubHeaders(\n previous: Header,\n next: Header,\n) {\n return (\n previous.subHeaders.length === next.subHeaders.length &&\n previous.subHeaders.every(\n (header, index) => next.subHeaders[index]?.id === header.id,\n )\n );\n}\n\nfunction sameSorting(previous: SortingState, next: SortingState) {\n return (\n previous.length === next.length &&\n previous.every((sort, index) => {\n const nextSort = next[index];\n return nextSort?.id === sort.id && nextSort.desc === sort.desc;\n })\n );\n}\n\nfunction sameHeaderGroupHeaders(\n previous: Array>,\n next: Array>,\n) {\n return (\n previous.length === next.length &&\n previous.every((header, index) => next[index]?.id === header.id)\n );\n}\n\nfunction sameHeaderLayout(\n previous: DataTableColumnLayout,\n next: DataTableColumnLayout,\n) {\n return (\n previous.fixedSide === next.fixedSide &&\n previous.isSpacerColumn === next.isSpacerColumn &&\n previous.isUtilityColumn === next.isUtilityColumn &&\n previous.pinnedClassName === next.pinnedClassName &&\n previous.utilityClassName === next.utilityClassName &&\n previous.headerStyle?.width === next.headerStyle?.width &&\n previous.headerStyle?.minWidth === next.headerStyle?.minWidth &&\n previous.headerStyle?.maxWidth === next.headerStyle?.maxWidth &&\n previous.headerStyle?.left === next.headerStyle?.left &&\n previous.headerStyle?.right === next.headerStyle?.right\n );\n}\n\nexport const DataTableHeaderCell = React.memo(\n DataTableHeaderCellInner,\n areDataTableHeaderCellsEqual,\n) as typeof DataTableHeaderCellInner;\n","import * as React from \"react\";\nimport type {\n Column,\n ExpandedState,\n Header,\n RowPinningPosition,\n Row,\n Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport type {\n DataTableDensity,\n DataTableCellSelection,\n DataTableProps,\n DataTableRowLoadingState,\n} from \"../types\";\nimport type { DataTableUiClassNames, DataTableUiKit } from \"../ui-kit\";\nimport { cn } from \"../../lib/utils\";\nimport {\n DataTableBodyRow,\n type DataTableRowEditingContext,\n} from \"./data-table-body-row\";\nimport { DataTableHeaderCell } from \"./data-table-header-cell\";\nimport type { DataTableColumnLayout } from \"./use-column-layout\";\nimport { isDataTableLoadingRow, isUtilityColumnId } from \"./data-table-utils\";\nimport type { DataTableLabels } from \"../types\";\n\nexport type DataTableTablePanelProps = {\n ariaDescribedBy: string | undefined;\n ariaLabelledBy: string | undefined;\n bodyRowComponents: Pick<\n DataTableUiKit,\n \"Checkbox\" | \"Input\" | \"Skeleton\" | \"TableCell\" | \"TableRow\"\n >;\n cellSelection: DataTableCellSelection | null;\n cellSelectionEnabled: boolean;\n columnLayouts: ReadonlyMap;\n columnGroupHeaderHeight: DataTableProps[\"columnGroupHeaderHeight\"];\n currentDensity: DataTableDensity;\n currentDetailExpanded: ExpandedState;\n currentSorting: DataTableProps[\"sorting\"];\n dir: NonNullable[\"dir\"]>;\n DataTableEmptyState: React.ElementType;\n dragAndDrop: DataTableProps[\"dragAndDrop\"];\n draggedColumnIdRef: React.RefObject;\n draftValues: Record;\n editingRowId: string | null;\n editingContext?: DataTableRowEditingContext;\n emptyNode: React.ReactNode;\n enableColumnReordering: boolean;\n enableColumnResizing: boolean;\n explicitCustomCellColumnIds: ReadonlySet;\n fillMinWidth: number;\n flexGrow: boolean;\n gridMode: boolean;\n gridPageSize?: number;\n gridRowOffset: number;\n onGridActiveRowIndexChange?: (rowIndex: number) => void;\n onCellSelectionChange: (selection: DataTableCellSelection | null) => void;\n getColumnLayout: (columnId: string) => DataTableColumnLayout;\n getRowClassName: DataTableProps[\"getRowClassName\"];\n getRowLoadingState: DataTableProps[\"getRowLoadingState\"];\n infiniteScroll: DataTableProps[\"infiniteScroll\"];\n layoutMode: \"fill\" | \"fit\";\n localSearchValue: string;\n onRowClick: DataTableProps[\"onRowClick\"];\n primeColumnForResize: (columnId: string, currentSize: number) => void;\n renderedRows: Array>;\n detailPanel: DataTableProps[\"detailPanel\"];\n topPinnedRows: Array>;\n bottomPinnedRows: Array>;\n reorderColumn: (sourceColumnId: string, targetColumnId: string) => void;\n resetColumnSize: (columnId: string) => void;\n resolvedLabels: DataTableLabels;\n rowsToRender: Array<{ row: Row; rowIndex: number }>;\n ScrollArea: DataTableUiKit[\"ScrollArea\"];\n ScrollBar: DataTableUiKit[\"ScrollBar\"];\n sentinelRef: React.RefObject;\n setDraftValues: React.Dispatch>>;\n shouldRenderInitialLoading: boolean;\n stateOverlayNode?: React.ReactNode;\n stickyHeader: boolean;\n stripedRows: boolean;\n summaryRows: NonNullable[\"summaryRows\"]>;\n table: TanStackTable;\n tableClassName: string | undefined;\n tableContainerClassName: string | undefined;\n Table: DataTableUiKit[\"Table\"];\n TableBody: DataTableUiKit[\"TableBody\"];\n TableCell: DataTableUiKit[\"TableCell\"];\n TableFooter: DataTableUiKit[\"TableFooter\"];\n TableHead: DataTableUiKit[\"TableHead\"];\n TableHeader: DataTableUiKit[\"TableHeader\"];\n TableRow: DataTableUiKit[\"TableRow\"];\n tableScrollContainerRef: React.RefObject;\n tableScrollElement?: HTMLElement | null;\n totalRowCount?: number;\n uiClassNames: DataTableUiClassNames;\n viewportHeight?: number;\n virtualization?: DataTableProps[\"virtualization\"];\n virtualPaddingBottom: number;\n virtualPaddingTop: number;\n visibleLeafColumnCount: number;\n visibleLeafColumns: Array>;\n};\n\nexport function DataTableTablePanel({\n ariaDescribedBy,\n ariaLabelledBy,\n bodyRowComponents,\n cellSelection,\n cellSelectionEnabled,\n columnLayouts,\n columnGroupHeaderHeight,\n currentDensity,\n currentDetailExpanded,\n currentSorting = [],\n dir,\n DataTableEmptyState,\n dragAndDrop,\n draggedColumnIdRef,\n draftValues,\n editingRowId,\n editingContext,\n emptyNode,\n enableColumnReordering,\n enableColumnResizing,\n explicitCustomCellColumnIds,\n fillMinWidth,\n flexGrow,\n gridMode,\n gridPageSize,\n gridRowOffset,\n onGridActiveRowIndexChange,\n onCellSelectionChange,\n getColumnLayout,\n getRowClassName,\n getRowLoadingState,\n infiniteScroll,\n layoutMode,\n localSearchValue,\n onRowClick,\n primeColumnForResize,\n renderedRows,\n detailPanel,\n topPinnedRows,\n bottomPinnedRows,\n reorderColumn,\n resetColumnSize,\n resolvedLabels,\n rowsToRender,\n ScrollArea,\n ScrollBar,\n sentinelRef,\n setDraftValues,\n shouldRenderInitialLoading,\n stateOverlayNode,\n stickyHeader,\n stripedRows,\n summaryRows,\n table,\n tableClassName,\n tableContainerClassName,\n Table,\n TableBody,\n TableCell,\n TableFooter = \"tfoot\",\n TableHead,\n TableHeader,\n TableRow,\n tableScrollContainerRef,\n tableScrollElement,\n totalRowCount,\n uiClassNames,\n virtualPaddingBottom,\n virtualPaddingTop,\n visibleLeafColumnCount,\n visibleLeafColumns,\n}: DataTableTablePanelProps) {\n const selectionState: boolean | \"indeterminate\" =\n table.getIsAllPageRowsSelected()\n ? true\n : table.getIsSomePageRowsSelected()\n ? \"indeterminate\"\n : false;\n const filteredRows = table.getFilteredRowModel().rows;\n const summarySourceRows = React.useMemo(\n () =>\n summaryRows.length\n ? filteredRows.map((row) => row.original)\n : [],\n [filteredRows, summaryRows.length],\n );\n const headerRowCount = table.getHeaderGroups().length;\n const displayRowCount =\n topPinnedRows.length + renderedRows.length + bottomPinnedRows.length;\n const [activeCell, setActiveCell] = React.useState({ row: 0, column: 0 });\n const shouldRestoreGridFocusRef = React.useRef(false);\n const pointerSelectingRef = React.useRef(false);\n const gridRows = React.useMemo(\n () => [...topPinnedRows, ...renderedRows, ...bottomPinnedRows],\n [bottomPinnedRows, renderedRows, topPinnedRows],\n );\n const getGridCoordinate = React.useCallback(\n (rowIndex: number, columnIndex: number) => {\n const row = gridRows[rowIndex];\n const column = visibleLeafColumns[columnIndex];\n return row &&\n column &&\n !isUtilityColumnId(column.id) &&\n column.id !== \"__spacer__\"\n ? { rowId: row.id, columnId: column.id }\n : undefined;\n },\n [gridRows, visibleLeafColumns],\n );\n const selectedBounds = React.useMemo(() => {\n if (!cellSelection) return undefined;\n const anchorRow = gridRows.findIndex((row) => row.id === cellSelection.anchor.rowId);\n const focusRow = gridRows.findIndex((row) => row.id === cellSelection.focus.rowId);\n const anchorColumn = visibleLeafColumns.findIndex(\n (column) => column.id === cellSelection.anchor.columnId,\n );\n const focusColumn = visibleLeafColumns.findIndex(\n (column) => column.id === cellSelection.focus.columnId,\n );\n if (anchorRow < 0 || focusRow < 0 || anchorColumn < 0 || focusColumn < 0) return undefined;\n return {\n firstRow: Math.min(anchorRow, focusRow),\n lastRow: Math.max(anchorRow, focusRow),\n firstColumn: Math.min(anchorColumn, focusColumn),\n lastColumn: Math.max(anchorColumn, focusColumn),\n };\n }, [cellSelection, gridRows, visibleLeafColumns]);\n const isGridCellSelected = React.useCallback(\n (rowIndex: number, columnIndex: number) =>\n Boolean(\n selectedBounds &&\n rowIndex >= selectedBounds.firstRow &&\n rowIndex <= selectedBounds.lastRow &&\n columnIndex >= selectedBounds.firstColumn &&\n columnIndex <= selectedBounds.lastColumn,\n ),\n [selectedBounds],\n );\n const handleGridCellFocus = React.useCallback(\n (cell: { row: number; column: number }) => {\n shouldRestoreGridFocusRef.current = true;\n setActiveCell(cell);\n },\n [],\n );\n const selectGridCell = React.useCallback(\n (rowIndex: number, columnIndex: number, extend: boolean) => {\n if (!cellSelectionEnabled) return;\n const focus = getGridCoordinate(rowIndex, columnIndex);\n if (!focus) return;\n const anchor =\n extend && cellSelection?.anchor\n ? cellSelection.anchor\n : focus;\n onCellSelectionChange({ anchor, focus });\n },\n [cellSelection, cellSelectionEnabled, getGridCoordinate, onCellSelectionChange],\n );\n const handleGridCellPointerDown = React.useCallback(\n (event: React.PointerEvent, rowIndex: number, columnIndex: number) => {\n if (!cellSelectionEnabled || event.button !== 0) return;\n // Keep native text/image dragging from taking ownership of the pointer\n // stream before the range reaches its destination cell.\n event.preventDefault();\n pointerSelectingRef.current = true;\n selectGridCell(rowIndex, columnIndex, event.shiftKey);\n },\n [cellSelectionEnabled, selectGridCell],\n );\n const handleGridCellPointerEnter = React.useCallback(\n (event: React.PointerEvent, rowIndex: number, columnIndex: number) => {\n if (!cellSelectionEnabled || !pointerSelectingRef.current || event.buttons !== 1) return;\n selectGridCell(rowIndex, columnIndex, true);\n },\n [cellSelectionEnabled, selectGridCell],\n );\n React.useEffect(() => {\n const stopSelecting = () => { pointerSelectingRef.current = false; };\n window.addEventListener(\"pointerup\", stopSelecting);\n return () => window.removeEventListener(\"pointerup\", stopSelecting);\n }, []);\n\n // Keep focus on the roving cell after sorting, filtering, or a virtual row\n // range changes. A missing target is normal while a virtualizer is rendering.\n React.useEffect(() => {\n if (!gridMode) return;\n onGridActiveRowIndexChange?.(activeCell.row);\n const frame = requestAnimationFrame(() => {\n const cells = tableScrollContainerRef.current?.querySelectorAll(\n '[data-dtp-grid-cell=\"true\"]',\n );\n const target = Array.from(cells ?? []).find(\n (cell) =>\n Number(cell.dataset.gridRowIndex) === activeCell.row &&\n Number(cell.dataset.gridColumnIndex) === activeCell.column,\n );\n if (target && shouldRestoreGridFocusRef.current) {\n target.focus();\n }\n });\n return () => cancelAnimationFrame(frame);\n }, [activeCell, gridMode, onGridActiveRowIndexChange, tableScrollContainerRef]);\n\n const moveGridFocus = React.useCallback(\n (event: React.KeyboardEvent, row: number, column: number) => {\n if (event.defaultPrevented || event.target !== event.currentTarget) return;\n const pageRows = Math.max(\n 1,\n gridPageSize ?? (\n Math.floor(\n (tableScrollElement?.clientHeight || 0) /\n Math.max(1, (tableScrollElement?.querySelector(\"tr\") as HTMLElement | null)?.offsetHeight || 48),\n ) || 10),\n );\n const lastRow = Math.max(0, displayRowCount - 1);\n const lastColumn = Math.max(0, visibleLeafColumnCount - 1);\n let nextRow = row;\n let nextColumn = column;\n switch (event.key) {\n case \"ArrowUp\": nextRow--; break;\n case \"ArrowDown\": nextRow++; break;\n case \"ArrowLeft\": nextColumn--; break;\n case \"ArrowRight\": nextColumn++; break;\n case \"Home\":\n if (event.ctrlKey || event.metaKey) { nextRow = 0; nextColumn = 0; } else nextColumn = 0;\n break;\n case \"End\":\n if (event.ctrlKey || event.metaKey) { nextRow = lastRow; nextColumn = lastColumn; } else nextColumn = lastColumn;\n break;\n case \"PageUp\": nextRow -= pageRows; break;\n case \"PageDown\": nextRow += pageRows; break;\n default: return;\n }\n event.preventDefault();\n const nextCell = {\n row: Math.min(lastRow, Math.max(0, nextRow)),\n column: Math.min(lastColumn, Math.max(0, nextColumn)),\n };\n setActiveCell(nextCell);\n if (event.shiftKey && cellSelectionEnabled) {\n const focus = getGridCoordinate(nextCell.row, nextCell.column);\n const anchor =\n cellSelection?.anchor ?? getGridCoordinate(row, column) ?? focus;\n if (anchor && focus) onCellSelectionChange({ anchor, focus });\n }\n },\n [\n cellSelection,\n cellSelectionEnabled,\n displayRowCount,\n getGridCoordinate,\n gridPageSize,\n onCellSelectionChange,\n tableScrollElement,\n visibleLeafColumnCount,\n ],\n );\n const renderBodyRow = (\n row: Row,\n rowIndex: number,\n pinnedPosition?: Exclude,\n ) => {\n const originalRow = row.original;\n const isInitialLoadingRow = isDataTableLoadingRow(originalRow);\n const loadingState = isInitialLoadingRow\n ? { isLoading: true }\n : getRowLoadingState?.(originalRow, rowIndex);\n const resolvedLoadingState: DataTableRowLoadingState | undefined =\n typeof loadingState === \"boolean\"\n ? { isLoading: loadingState }\n : loadingState;\n const isDraggable = isInitialLoadingRow\n ? false\n : (dragAndDrop?.getRowDraggable?.(originalRow) ?? false);\n\n return (\n \n );\n };\n\n return (\n \n \n \n
    \n \n \n {table.getVisibleLeafColumns().map((column) => {\n const layout = getColumnLayout(column.id);\n return ;\n })}\n \n \n {table.getHeaderGroups().map((headerGroup) => (\n \n {headerGroup.headers.map((header) => (\n column.id === header.column.id,\n ) + 1\n }\n />\n ))}\n \n ))}\n \n \n {topPinnedRows.length || renderedRows.length || bottomPinnedRows.length ? (\n <>\n {topPinnedRows.map((row, index) =>\n renderBodyRow(row, index, \"top\"),\n )}\n {virtualPaddingTop > 0 ? (\n \n \n \n ) : null}\n {rowsToRender.map(({ row, rowIndex }) =>\n renderBodyRow(row, rowIndex + topPinnedRows.length),\n )}\n {virtualPaddingBottom > 0 ? (\n \n \n \n ) : null}\n {bottomPinnedRows.map((row, index) =>\n renderBodyRow(\n row,\n topPinnedRows.length + renderedRows.length + index,\n \"bottom\",\n ),\n )}\n \n ) : (\n \n \n
    \n {emptyNode ?? (\n \n )}\n
    \n \n
    \n )}\n
    \n {summaryRows.length ? (\n \n {summaryRows.map((summaryRow, summaryIndex) => (\n \n {visibleLeafColumns.map((column, index) => {\n const content =\n summaryRow.cells[column.id] ??\n (index === 0 ? summaryRow.label : null);\n return (\n \n {typeof content === \"function\"\n ? content({\n rows: summarySourceRows,\n columnId: column.id,\n })\n : content}\n \n );\n })}\n \n ))}\n \n ) : null}\n \n
    \n\n {infiniteScroll?.enabled &&\n renderedRows.length &&\n !shouldRenderInitialLoading ? (\n
    \n
    \n
    \n ) : null}\n \n \n
    \n {stateOverlayNode}\n \n );\n}\n\nfunction getHeaderLayout(\n header: Header,\n getColumnLayout: (columnId: string) => DataTableColumnLayout,\n) {\n const columnLayout = getColumnLayout(header.column.id);\n if (header.isPlaceholder || !header.subHeaders.length) {\n return columnLayout;\n }\n\n const leafLayouts = header\n .getLeafHeaders()\n .filter((leafHeader) => !leafHeader.subHeaders.length)\n .map((leafHeader) => getColumnLayout(leafHeader.column.id));\n const fixedSide = leafLayouts[0]?.fixedSide;\n\n if (\n !fixedSide ||\n !leafLayouts.every((layout) => layout.fixedSide === fixedSide)\n ) {\n return columnLayout;\n }\n\n const edgeLayout =\n fixedSide === \"left\" ? leafLayouts[0] : leafLayouts.at(-1);\n\n return {\n ...columnLayout,\n fixedSide,\n headerStyle: edgeLayout?.headerStyle\n ? {\n left: edgeLayout.headerStyle.left,\n right: edgeLayout.headerStyle.right,\n }\n : undefined,\n pinnedClassName: edgeLayout?.pinnedClassName,\n };\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-VGMTY7KM.js b/dist/chunk-VGMTY7KM.js new file mode 100644 index 0000000..2d5ae46 --- /dev/null +++ b/dist/chunk-VGMTY7KM.js @@ -0,0 +1,2 @@ +import {a as a$1}from'./chunk-B6JTUAWE.js';import {a}from'./chunk-W7VNQT7O.js';import {j}from'./chunk-I3CW6DTA.js';function b(r){return j(r,{CardPanel:a$1,TablePanel:a})}export{b as a};//# sourceMappingURL=chunk-VGMTY7KM.js.map +//# sourceMappingURL=chunk-VGMTY7KM.js.map \ No newline at end of file diff --git a/dist/chunk-QFLMV3CT.js.map b/dist/chunk-VGMTY7KM.js.map similarity index 92% rename from dist/chunk-QFLMV3CT.js.map rename to dist/chunk-VGMTY7KM.js.map index db44c7c..e35b609 100644 --- a/dist/chunk-QFLMV3CT.js.map +++ b/dist/chunk-VGMTY7KM.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/core/data-table/create-virtual-data-table.ts"],"names":["createVirtualDataTable","ui","createDataTableWithPanels","DataTableVirtualCardPanel","DataTableVirtualTablePanel"],"mappings":"mHAKO,SAASA,CAAAA,CAAuBC,CAAAA,CAAoB,CACzD,OAAOC,CAAAA,CAA0BD,CAAAA,CAAI,CACnC,SAAA,CAAWE,GAAAA,CACX,UAAA,CAAYC,CACd,CAAC,CACH","file":"chunk-QFLMV3CT.js","sourcesContent":["import type { DataTableUiKit } from \"../ui-kit\";\nimport { createDataTableWithPanels } from \"./create-data-table\";\nimport { DataTableVirtualCardPanel } from \"./data-table-virtual-card-panel\";\nimport { DataTableVirtualTablePanel } from \"./data-table-virtual-table-panel\";\n\nexport function createVirtualDataTable(ui: DataTableUiKit) {\n return createDataTableWithPanels(ui, {\n CardPanel: DataTableVirtualCardPanel,\n TablePanel: DataTableVirtualTablePanel,\n });\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/core/data-table/create-virtual-data-table.ts"],"names":["createVirtualDataTable","ui","createDataTableWithPanels","DataTableVirtualCardPanel","DataTableVirtualTablePanel"],"mappings":"mHAKO,SAASA,CAAAA,CAAuBC,CAAAA,CAAoB,CACzD,OAAOC,CAAAA,CAA0BD,CAAAA,CAAI,CACnC,SAAA,CAAWE,GAAAA,CACX,UAAA,CAAYC,CACd,CAAC,CACH","file":"chunk-VGMTY7KM.js","sourcesContent":["import type { DataTableUiKit } from \"../ui-kit\";\nimport { createDataTableWithPanels } from \"./create-data-table\";\nimport { DataTableVirtualCardPanel } from \"./data-table-virtual-card-panel\";\nimport { DataTableVirtualTablePanel } from \"./data-table-virtual-table-panel\";\n\nexport function createVirtualDataTable(ui: DataTableUiKit) {\n return createDataTableWithPanels(ui, {\n CardPanel: DataTableVirtualCardPanel,\n TablePanel: DataTableVirtualTablePanel,\n });\n}\n"]} \ No newline at end of file diff --git a/dist/chunk-7FUCHMMB.js b/dist/chunk-VSIOOKCO.js similarity index 66% rename from dist/chunk-7FUCHMMB.js rename to dist/chunk-VSIOOKCO.js index f5db9d9..086623d 100644 --- a/dist/chunk-7FUCHMMB.js +++ b/dist/chunk-VSIOOKCO.js @@ -1,2 +1,2 @@ -import {o,n,b,e,d,g as g$1,h as h$1,k as k$1,t,f,c}from'./chunk-CVR2ZXHQ.js';import {a}from'./chunk-XTVBESM5.js';import*as M from'react';import {cva}from'class-variance-authority';import {Slot,Separator,Checkbox,DropdownMenu,ScrollArea,Select,Tooltip}from'radix-ui';import {jsx,jsxs}from'react/jsx-runtime';var ce=cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:outline-none active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"",outline:"",secondary:"",ghost:"",destructive:"",link:"underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function g({className:t,variant:e="default",size:n="default",asChild:a$1=false,...s}){let d=a$1?Slot.Root:"button";return jsx(d,{"data-slot":"button","data-variant":e,"data-size":n,className:a(ce({variant:e,size:n,className:t})),...s})}function N({className:t,orientation:e="horizontal",decorative:n=true,...a$1}){return jsx(Separator.Root,{"data-slot":"separator",decorative:n,orientation:e,className:a("shrink-0 data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",t),...a$1})}var ve=cva("flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!"}},defaultVariants:{orientation:"horizontal"}});function Y({className:t,orientation:e,...n}){return jsx("div",{role:"group","data-slot":"button-group","data-orientation":e,className:a(ve({orientation:e}),t),...n})}function Z({className:t,asChild:e=false,...n}){let a$1=e?Slot.Root:"div";return jsx(a$1,{className:a("flex items-center gap-2 rounded-lg border px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",t),...n})}function $({className:t,orientation:e="vertical",...n}){return jsx(N,{"data-slot":"button-group-separator",orientation:e,className:a("relative self-stretch data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto",t),...n})}function tt({className:t,size:e="default",...n}){return jsx("div",{"data-slot":"card","data-size":e,className:a("group/card flex flex-col gap-4 overflow-hidden rounded-xl border py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",t),...n})}function et({className:t,...e}){return jsx("div",{"data-slot":"card-header",className:a("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",t),...e})}function ot({className:t,...e}){return jsx("div",{"data-slot":"card-title",className:a("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",t),...e})}function nt({className:t,...e}){return jsx("div",{"data-slot":"card-description",className:a("text-sm opacity-80",t),...e})}function at({className:t,...e}){return jsx("div",{"data-slot":"card-action",className:a("col-start-2 row-span-2 row-start-1 self-start justify-self-end",t),...e})}function rt({className:t,...e}){return jsx("div",{"data-slot":"card-content",className:a("px-4 group-data-[size=sm]/card:px-3",t),...e})}function it({className:t,...e}){return jsx("div",{"data-slot":"card-footer",className:a("flex items-center rounded-b-xl border-t p-4 group-data-[size=sm]/card:p-3",t),...e})}function lt({className:t,...e}){return jsx(Checkbox.Root,{"data-slot":"checkbox",className:a("peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border ring-2 transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-checked:ring-2",t),...e,children:jsx(Checkbox.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none [&>svg]:size-3.5",children:jsx(b,{})})})}function dt({...t}){return jsx(DropdownMenu.Root,{"data-slot":"dropdown-menu",...t})}function pt({...t}){return jsx(DropdownMenu.Portal,{"data-slot":"dropdown-menu-portal",...t})}function ct({...t}){return jsx(DropdownMenu.Trigger,{"data-slot":"dropdown-menu-trigger",...t})}function ut({className:t,align:e="start",sideOffset:n=4,...a$1}){return jsx(DropdownMenu.Portal,{children:jsx(DropdownMenu.Content,{"data-slot":"dropdown-menu-content",sideOffset:n,align:e,className:a("relative z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) animate-none! overflow-x-hidden overflow-y-auto rounded-lg border p-1 shadow-md duration-100 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",t),...a$1})})}function mt({...t}){return jsx(DropdownMenu.Group,{"data-slot":"dropdown-menu-group",...t})}function ft({className:t,inset:e,variant:n="default",...a$1}){return jsx(DropdownMenu.Item,{"data-slot":"dropdown-menu-item","data-inset":e,"data-variant":n,className:a("group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:outline-none data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...a$1})}function gt({className:t,children:e,checked:n,inset:a$1,...s}){return jsxs(DropdownMenu.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item","data-inset":a$1,className:a("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:outline-none data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),checked:n,...s,children:[jsx("span",{className:"pointer-events-none absolute right-2 flex items-center justify-center","data-slot":"dropdown-menu-checkbox-item-indicator",children:jsx(DropdownMenu.ItemIndicator,{children:jsx(b,{})})}),e]})}function bt({...t}){return jsx(DropdownMenu.RadioGroup,{"data-slot":"dropdown-menu-radio-group",...t})}function vt({className:t,children:e,inset:n,...a$1}){return jsxs(DropdownMenu.RadioItem,{"data-slot":"dropdown-menu-radio-item","data-inset":n,className:a("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:outline-none data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...a$1,children:[jsx("span",{className:"pointer-events-none absolute right-2 flex items-center justify-center","data-slot":"dropdown-menu-radio-item-indicator",children:jsx(DropdownMenu.ItemIndicator,{children:jsx(b,{})})}),e]})}function ht({className:t,inset:e,...n}){return jsx(DropdownMenu.Label,{"data-slot":"dropdown-menu-label","data-inset":e,className:a("px-1.5 py-1 text-xs font-medium opacity-80 data-inset:pl-7",t),...n})}function xt({className:t,...e}){return jsx(DropdownMenu.Separator,{"data-slot":"dropdown-menu-separator",className:a("-mx-1 my-1 h-px",t),...e})}function Pt({className:t,...e}){return jsx("span",{"data-slot":"dropdown-menu-shortcut",className:a("ml-auto text-xs tracking-widest opacity-75",t),...e})}function wt({...t}){return jsx(DropdownMenu.Sub,{"data-slot":"dropdown-menu-sub",...t})}function yt({className:t,inset:e$1,children:n,...a$1}){return jsxs(DropdownMenu.SubTrigger,{"data-slot":"dropdown-menu-sub-trigger","data-inset":e$1,className:a("flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:outline-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...a$1,children:[n,jsx(e,{className:"ml-auto"})]})}function Ct({className:t,...e}){return jsx(DropdownMenu.SubContent,{"data-slot":"dropdown-menu-sub-content",className:a("relative z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) animate-none! overflow-hidden rounded-lg border p-1 shadow-lg duration-100 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",t),...e})}function Rt({className:t,...e}){return jsx("div",{"data-slot":"empty",className:a("flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border-dashed p-6 text-center text-balance",t),...e})}function St({className:t,...e}){return jsx("div",{"data-slot":"empty-header",className:a("flex max-w-sm flex-col items-center gap-2",t),...e})}var xe=cva("mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",icon:"flex size-8 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-4"}},defaultVariants:{variant:"default"}});function zt({className:t,variant:e="default",...n}){return jsx("div",{"data-slot":"empty-icon","data-variant":e,className:a(xe({variant:e,className:t})),...n})}function Nt({className:t,...e}){return jsx("div",{"data-slot":"empty-title",className:a("font-heading text-sm font-medium tracking-tight",t),...e})}function It({className:t,...e}){return jsx("div",{"data-slot":"empty-description",className:a("text-sm/relaxed opacity-80 [&>a]:underline [&>a]:underline-offset-4",t),...e})}function kt({className:t,...e}){return jsx("div",{"data-slot":"empty-content",className:a("flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm text-balance",t),...e})}var I="h-8 w-full min-w-0 rounded-lg border px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-70 focus-visible:outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 @min-[768px]/data-table:text-sm";function k({className:t,...e}){return jsx("div",{role:"group","data-slot":"input-group",className:a("group/input-group flex w-full min-w-0 items-stretch rounded-lg border transition-colors outline-none focus-within:outline-none has-[>[data-slot=input-group-addon][data-align=block-start]]:flex-col has-[>[data-slot=input-group-addon][data-align=block-end]]:flex-col has-[>[data-slot=input-group-control]:disabled]:cursor-not-allowed has-[>[data-slot=input-group-control]:disabled]:opacity-50",t),...e})}var P=M.forwardRef(function({className:e,...n},a$1){return jsx("input",{ref:a$1,"data-slot":"input-group-control",type:n.type,className:a(I,"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:border-0 focus-visible:ring-0",e),...n})});function T({align:t="inline-start",className:e,...n}){return jsx("div",{"data-slot":"input-group-addon","data-align":t,className:a("flex shrink-0 items-center gap-1.5 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",t==="inline-start"&&"order-first pl-2.5 pr-1",t==="inline-end"&&"order-last pl-1 pr-2.5",t==="block-start"&&"order-first w-full justify-between border-b px-2.5 py-1.5 text-sm",t==="block-end"&&"order-last w-full justify-between border-t px-2.5 py-1.5 text-sm",e),...n})}function Dt({className:t,...e}){return jsx("span",{"data-slot":"input-group-text",className:a("whitespace-nowrap text-sm",t),...e})}P.displayName="InputGroupInput";var A=M.forwardRef(function({className:e,passwordToggle:n$1=false,type:a$1,...s},d){let[S,le]=M.useState(false);return n$1&&a$1==="password"?jsxs(k,{className:e,children:[jsx(P,{ref:d,type:S?"text":"password","data-slot":"input-group-control",className:"pr-0",...s}),jsx(T,{align:"inline-end",children:jsx(g,{type:"button",variant:"ghost",size:"icon-xs","aria-label":S?"Hide password":"Show password","aria-pressed":S,className:"hover:bg-transparent",onMouseDown:G=>G.preventDefault(),onClick:()=>le(G=>!G),children:S?jsx(o,{"data-icon":"inline-start"}):jsx(n,{"data-icon":"inline-start"})})})]}):jsx("input",{ref:d,type:a$1,"data-slot":"input",className:a(I,e),...s})});A.displayName="Input";function Mt({className:t,...e}){return jsx("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:a("mx-auto flex w-full justify-center",t),...e})}function Gt({className:t,...e}){return jsx("ul",{"data-slot":"pagination-content",className:a("flex items-center gap-1",t),...e})}function _t({...t}){return jsx("li",{"data-slot":"pagination-item",...t})}function h({className:t,isActive:e,disabled:n=false,variant:a$1,size:s="icon",...d}){return jsx(g,{asChild:true,variant:a$1??(e?"outline":"ghost"),size:s,className:a(n&&"pointer-events-none opacity-50",t),children:jsx("a",{"aria-current":e?"page":void 0,"aria-disabled":n?true:void 0,"data-slot":"pagination-link","data-active":e,tabIndex:n?-1:d.tabIndex,...d})})}function Bt({className:t,disabled:e,showText:n=true,size:a$1="default",text:s="Previous",...d$1}){return jsxs(h,{"aria-label":"Go to previous page",disabled:e,size:a$1,variant:"outline",className:a("pl-1.5!",t),...d$1,children:[jsx(d,{"data-icon":"inline-start"}),n?jsx("span",{className:"hidden @min-[640px]/data-table:block",children:s}):null]})}function Lt({className:t,disabled:e,showText:n=true,size:a$1="default",text:s="First",...d}){return jsxs(h,{"aria-label":"Go to first page",disabled:e,size:a$1,variant:"outline",className:a("pl-1.5!",t),...d,children:[jsx(g$1,{"data-icon":"inline-start"}),n?jsx("span",{className:"hidden @min-[640px]/data-table:block",children:s}):null]})}function At({className:t,disabled:e$1,showText:n=true,size:a$1="default",text:s="Next",...d}){return jsxs(h,{"aria-label":"Go to next page",disabled:e$1,size:a$1,variant:"outline",className:a("pr-1.5!",t),...d,children:[n?jsx("span",{className:"hidden @min-[640px]/data-table:block",children:s}):null,jsx(e,{"data-icon":"inline-end"})]})}function Vt({className:t,disabled:e,showText:n=true,size:a$1="default",text:s="Last",...d}){return jsxs(h,{"aria-label":"Go to last page",disabled:e,size:a$1,variant:"outline",className:a("pr-1.5!",t),...d,children:[n?jsx("span",{className:"hidden @min-[640px]/data-table:block",children:s}):null,jsx(h$1,{"data-icon":"inline-end"})]})}function Et({className:t,text:e="More pages",...n}){return jsxs("span",{"aria-hidden":true,"data-slot":"pagination-ellipsis",className:a("flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4",t),...n,children:[jsx(k$1,{}),jsx("span",{className:"sr-only",children:e})]})}function Ht({className:t,children:e,...n}){return jsxs(ScrollArea.Root,{"data-slot":"scroll-area",className:a("relative",t),...n,children:[jsx(ScrollArea.Viewport,{"data-slot":"scroll-area-viewport",className:"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:outline-none",children:e}),jsx(V,{className:"z-100"}),jsx(ScrollArea.Corner,{})]})}function V({className:t,orientation:e="vertical",...n}){return jsx(ScrollArea.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar","data-orientation":e,orientation:e,className:a("flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent",t),...n,children:jsx(ScrollArea.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-full"})})}function Ut({...t}){return jsx(Select.Root,{"data-slot":"select",...t})}function Ft({className:t,...e}){return jsx(Select.Group,{"data-slot":"select-group",className:a("scroll-my-1 p-1",t),...e})}function Kt({...t}){return jsx(Select.Value,{"data-slot":"select-value",...t})}function Ot({className:t$1,size:e="default",children:n,...a$1}){return jsxs(Select.Trigger,{"data-slot":"select-trigger","data-size":e,className:a("flex w-fit items-center justify-between gap-1.5 rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t$1),...a$1,children:[n,jsx(Select.Icon,{asChild:true,children:jsx(t,{className:"pointer-events-none size-4"})})]})}function jt({className:t,children:e,position:n="item-aligned",align:a$1="center",...s}){return jsx(Select.Portal,{children:jsxs(Select.Content,{"data-slot":"select-content","data-align-trigger":n==="item-aligned",className:a("relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) animate-none! overflow-x-hidden overflow-y-auto rounded-lg border shadow-md duration-100 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:n,align:a$1,...s,children:[jsx(E,{}),jsx(Select.Viewport,{"data-position":n,className:a("data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)",n==="popper"&&""),children:e}),jsx(H,{})]})})}function qt({className:t,...e}){return jsx(Select.Label,{"data-slot":"select-label",className:a("px-1.5 py-1 text-xs opacity-80",t),...e})}function Jt({className:t,children:e,...n}){return jsxs(Select.Item,{"data-slot":"select-item",className:a("relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:outline-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...n,children:[jsx("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center",children:jsx(Select.ItemIndicator,{children:jsx(b,{className:"pointer-events-none"})})}),jsx(Select.ItemText,{children:e})]})}function Qt({className:t,...e}){return jsx(Select.Separator,{"data-slot":"select-separator",className:a("pointer-events-none -mx-1 my-1 h-px",t),...e})}function E({className:t,...e}){return jsx(Select.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:a("z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4",t),...e,children:jsx(f,{})})}function H({className:t,...e}){return jsx(Select.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:a("z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4",t),...e,children:jsx(c,{})})}function Wt({className:t,...e}){return jsx("div",{"data-slot":"skeleton",className:a("animate-pulse rounded-md",t),...e})}function Xt({className:t,...e}){return jsx("table",{"data-slot":"table",className:a("w-full border-collapse caption-bottom text-sm",t),...e})}function Yt({className:t,...e}){return jsx("thead",{"data-slot":"table-header",className:a("[&_tr]:border-b",t),...e})}function Zt({className:t,...e}){return jsx("tbody",{"data-slot":"table-body",className:a("[&_tr:last-child]:border-0",t),...e})}function $t({className:t,...e}){return jsx("tfoot",{"data-slot":"table-footer",className:a("border-t font-medium [&>tr]:last:border-b-0",t),...e})}function te({className:t,...e}){return jsx("tr",{"data-slot":"table-row",className:a("border-b transition-colors",t),...e})}function ee({className:t,...e}){return jsx("th",{"data-slot":"table-head",className:a("h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0",t),...e})}function oe({className:t,...e}){return jsx("td",{"data-slot":"table-cell",className:a("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",t),...e})}function ne({className:t,...e}){return jsx("caption",{"data-slot":"table-caption",className:a("mt-4 text-sm opacity-80",t),...e})}function ae({delayDuration:t=0,...e}){return jsx(Tooltip.Provider,{"data-slot":"tooltip-provider",delayDuration:t,...e})}function re({...t}){return jsx(Tooltip.Root,{"data-slot":"tooltip",...t})}function ie({...t}){return jsx(Tooltip.Trigger,{"data-slot":"tooltip-trigger",...t})}function se({className:t,sideOffset:e=0,children:n,...a$1}){return jsx(Tooltip.Portal,{children:jsxs(Tooltip.Content,{"data-slot":"tooltip-content",sideOffset:e,className:a("z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-md border px-3 py-1.5 text-xs has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",t),...a$1,children:[n,jsx(Tooltip.Arrow,{className:"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}var un={Button:g,ButtonGroup:Y,ButtonGroupSeparator:$,ButtonGroupText:Z,Card:tt,CardAction:at,CardContent:rt,CardDescription:nt,CardFooter:it,CardHeader:et,CardTitle:ot,Checkbox:lt,DropdownMenu:dt,DropdownMenuCheckboxItem:gt,DropdownMenuContent:ut,DropdownMenuGroup:mt,DropdownMenuItem:ft,DropdownMenuLabel:ht,DropdownMenuPortal:pt,DropdownMenuRadioGroup:bt,DropdownMenuRadioItem:vt,DropdownMenuSeparator:xt,DropdownMenuShortcut:Pt,DropdownMenuSub:wt,DropdownMenuSubContent:Ct,DropdownMenuSubTrigger:yt,DropdownMenuTrigger:ct,Empty:Rt,EmptyContent:kt,EmptyDescription:It,EmptyHeader:St,EmptyMedia:zt,EmptyTitle:Nt,Input:A,InputGroup:k,InputGroupAddon:T,InputGroupInput:P,InputGroupText:Dt,Pagination:Mt,PaginationContent:Gt,PaginationEllipsis:Et,PaginationFirst:Lt,PaginationItem:_t,PaginationLast:Vt,PaginationLink:h,PaginationNext:At,PaginationPrevious:Bt,ScrollArea:Ht,ScrollBar:V,Select:Ut,SelectContent:jt,SelectGroup:Ft,SelectItem:Jt,SelectLabel:qt,SelectScrollDownButton:H,SelectScrollUpButton:E,SelectSeparator:Qt,SelectTrigger:Ot,SelectValue:Kt,Separator:N,Skeleton:Wt,Table:Xt,TableBody:Zt,TableCaption:ne,TableCell:oe,TableFooter:$t,TableHead:ee,TableHeader:Yt,TableRow:te,Tooltip:re,TooltipContent:se,TooltipProvider:ae,TooltipTrigger:ie};export{Mt as A,h as B,Bt as C,Lt as D,At as E,Vt as F,Ht as G,V as H,Ot as I,jt as J,qt as K,Jt as L,Qt as M,Wt as N,Xt as O,Yt as P,Zt as Q,$t as R,te as S,ee as T,oe as U,ne as V,se as W,un as X,g as a,N as b,tt as c,et as d,nt as e,rt as f,it as g,lt as h,ut as i,ft as j,gt as k,vt as l,ht as m,xt as n,yt as o,Ct as p,Rt as q,St as r,zt as s,Nt as t,It as u,kt as v,k as w,P as x,T as y,A as z};//# sourceMappingURL=chunk-7FUCHMMB.js.map -//# sourceMappingURL=chunk-7FUCHMMB.js.map \ No newline at end of file +import {o,n,b,e,d,g as g$1,h as h$1,k as k$1,t,f,c}from'./chunk-CVR2ZXHQ.js';import {a}from'./chunk-XTVBESM5.js';import*as M from'react';import {cva}from'class-variance-authority';import {Slot,Separator,Checkbox,DropdownMenu,ScrollArea,Select,Tooltip}from'radix-ui';import {jsx,jsxs}from'react/jsx-runtime';var ce=cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:outline-none active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"",outline:"",secondary:"",ghost:"",destructive:"",link:"underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function g({className:t,variant:e="default",size:n="default",asChild:a$1=false,...s}){let d=a$1?Slot.Root:"button";return jsx(d,{"data-slot":"button","data-variant":e,"data-size":n,className:a(ce({variant:e,size:n,className:t})),...s})}function N({className:t,orientation:e="horizontal",decorative:n=true,...a$1}){return jsx(Separator.Root,{"data-slot":"separator",decorative:n,orientation:e,className:a("shrink-0 data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",t),...a$1})}var ve=cva("flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!"}},defaultVariants:{orientation:"horizontal"}});function Y({className:t,orientation:e,...n}){return jsx("div",{role:"group","data-slot":"button-group","data-orientation":e,className:a(ve({orientation:e}),t),...n})}function Z({className:t,asChild:e=false,...n}){let a$1=e?Slot.Root:"div";return jsx(a$1,{className:a("flex items-center gap-2 rounded-lg border px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",t),...n})}function $({className:t,orientation:e="vertical",...n}){return jsx(N,{"data-slot":"button-group-separator",orientation:e,className:a("relative self-stretch data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto",t),...n})}function tt({className:t,size:e="default",...n}){return jsx("div",{"data-slot":"card","data-size":e,className:a("group/card flex flex-col gap-4 overflow-hidden rounded-xl border py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",t),...n})}function et({className:t,...e}){return jsx("div",{"data-slot":"card-header",className:a("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",t),...e})}function ot({className:t,...e}){return jsx("div",{"data-slot":"card-title",className:a("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",t),...e})}function nt({className:t,...e}){return jsx("div",{"data-slot":"card-description",className:a("text-sm opacity-80",t),...e})}function at({className:t,...e}){return jsx("div",{"data-slot":"card-action",className:a("col-start-2 row-span-2 row-start-1 self-start justify-self-end",t),...e})}function rt({className:t,...e}){return jsx("div",{"data-slot":"card-content",className:a("px-4 group-data-[size=sm]/card:px-3",t),...e})}function it({className:t,...e}){return jsx("div",{"data-slot":"card-footer",className:a("flex items-center rounded-b-xl border-t p-4 group-data-[size=sm]/card:p-3",t),...e})}function lt({className:t,...e}){return jsx(Checkbox.Root,{"data-slot":"checkbox",className:a("peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border ring-2 transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-checked:ring-2",t),...e,children:jsx(Checkbox.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none [&>svg]:size-3.5",children:jsx(b,{})})})}function dt({...t}){return jsx(DropdownMenu.Root,{"data-slot":"dropdown-menu",...t})}function pt({...t}){return jsx(DropdownMenu.Portal,{"data-slot":"dropdown-menu-portal",...t})}function ct({...t}){return jsx(DropdownMenu.Trigger,{"data-slot":"dropdown-menu-trigger",...t})}function ut({className:t,align:e="start",sideOffset:n=4,...a$1}){return jsx(DropdownMenu.Portal,{children:jsx(DropdownMenu.Content,{"data-slot":"dropdown-menu-content",sideOffset:n,align:e,className:a("relative z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) animate-none! overflow-x-hidden overflow-y-auto rounded-lg border p-1 shadow-md duration-100 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",t),...a$1})})}function mt({...t}){return jsx(DropdownMenu.Group,{"data-slot":"dropdown-menu-group",...t})}function ft({className:t,inset:e,variant:n="default",...a$1}){return jsx(DropdownMenu.Item,{"data-slot":"dropdown-menu-item","data-inset":e,"data-variant":n,className:a("group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:outline-none data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...a$1})}function gt({className:t,children:e,checked:n,inset:a$1,...s}){return jsxs(DropdownMenu.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item","data-inset":a$1,className:a("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:outline-none data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),checked:n,...s,children:[jsx("span",{className:"pointer-events-none absolute right-2 flex items-center justify-center","data-slot":"dropdown-menu-checkbox-item-indicator",children:jsx(DropdownMenu.ItemIndicator,{children:jsx(b,{})})}),e]})}function bt({...t}){return jsx(DropdownMenu.RadioGroup,{"data-slot":"dropdown-menu-radio-group",...t})}function vt({className:t,children:e,inset:n,...a$1}){return jsxs(DropdownMenu.RadioItem,{"data-slot":"dropdown-menu-radio-item","data-inset":n,className:a("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:outline-none data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...a$1,children:[jsx("span",{className:"pointer-events-none absolute right-2 flex items-center justify-center","data-slot":"dropdown-menu-radio-item-indicator",children:jsx(DropdownMenu.ItemIndicator,{children:jsx(b,{})})}),e]})}function ht({className:t,inset:e,...n}){return jsx(DropdownMenu.Label,{"data-slot":"dropdown-menu-label","data-inset":e,className:a("px-1.5 py-1 text-xs font-medium opacity-80 data-inset:pl-7",t),...n})}function xt({className:t,...e}){return jsx(DropdownMenu.Separator,{"data-slot":"dropdown-menu-separator",className:a("-mx-1 my-1 h-px",t),...e})}function Pt({className:t,...e}){return jsx("span",{"data-slot":"dropdown-menu-shortcut",className:a("ml-auto text-xs tracking-widest opacity-75",t),...e})}function wt({...t}){return jsx(DropdownMenu.Sub,{"data-slot":"dropdown-menu-sub",...t})}function yt({className:t,inset:e$1,children:n,...a$1}){return jsxs(DropdownMenu.SubTrigger,{"data-slot":"dropdown-menu-sub-trigger","data-inset":e$1,className:a("flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:outline-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...a$1,children:[n,jsx(e,{className:"ml-auto"})]})}function Ct({className:t,...e}){return jsx(DropdownMenu.SubContent,{"data-slot":"dropdown-menu-sub-content",className:a("relative z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) animate-none! overflow-hidden rounded-lg border p-1 shadow-lg duration-100 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",t),...e})}function Rt({className:t,...e}){return jsx("div",{"data-slot":"empty",className:a("flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 rounded-xl border-dashed p-6 text-center text-balance",t),...e})}function St({className:t,...e}){return jsx("div",{"data-slot":"empty-header",className:a("flex max-w-sm flex-col items-center gap-2",t),...e})}var xe=cva("mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",icon:"flex size-8 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-4"}},defaultVariants:{variant:"default"}});function zt({className:t,variant:e="default",...n}){return jsx("div",{"data-slot":"empty-icon","data-variant":e,className:a(xe({variant:e,className:t})),...n})}function Nt({className:t,...e}){return jsx("div",{"data-slot":"empty-title",className:a("font-heading text-sm font-medium tracking-tight",t),...e})}function It({className:t,...e}){return jsx("div",{"data-slot":"empty-description",className:a("text-sm/relaxed opacity-80 [&>a]:underline [&>a]:underline-offset-4",t),...e})}function kt({className:t,...e}){return jsx("div",{"data-slot":"empty-content",className:a("flex w-full max-w-sm min-w-0 flex-col items-center gap-2.5 text-sm text-balance",t),...e})}var I="h-8 w-full min-w-0 rounded-lg border px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-70 focus-visible:outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 @min-[768px]/data-table:text-sm";function k({className:t,...e}){return jsx("div",{role:"group","data-slot":"input-group",className:a("group/input-group flex w-full min-w-0 items-stretch rounded-lg border transition-colors outline-none focus-within:outline-none has-[>[data-slot=input-group-addon][data-align=block-start]]:flex-col has-[>[data-slot=input-group-addon][data-align=block-end]]:flex-col has-[>[data-slot=input-group-control]:disabled]:cursor-not-allowed has-[>[data-slot=input-group-control]:disabled]:opacity-50",t),...e})}var P=M.forwardRef(function({className:e,...n},a$1){return jsx("input",{ref:a$1,"data-slot":"input-group-control",type:n.type,className:a(I,"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:border-0 focus-visible:ring-0",e),...n})});function T({align:t="inline-start",className:e,...n}){return jsx("div",{"data-slot":"input-group-addon","data-align":t,className:a("flex shrink-0 items-center gap-1.5 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",t==="inline-start"&&"order-first pl-2.5 pr-1",t==="inline-end"&&"order-last pl-1 pr-2.5",t==="block-start"&&"order-first w-full justify-between border-b px-2.5 py-1.5 text-sm",t==="block-end"&&"order-last w-full justify-between border-t px-2.5 py-1.5 text-sm",e),...n})}function Dt({className:t,...e}){return jsx("span",{"data-slot":"input-group-text",className:a("whitespace-nowrap text-sm",t),...e})}P.displayName="InputGroupInput";var A=M.forwardRef(function({className:e,passwordToggle:n$1=false,type:a$1,...s},d){let[S,le]=M.useState(false);return n$1&&a$1==="password"?jsxs(k,{className:e,children:[jsx(P,{ref:d,type:S?"text":"password","data-slot":"input-group-control",className:"pr-0",...s}),jsx(T,{align:"inline-end",children:jsx(g,{type:"button",variant:"ghost",size:"icon-xs","aria-label":S?"Hide password":"Show password","aria-pressed":S,className:"hover:bg-transparent",onMouseDown:G=>G.preventDefault(),onClick:()=>le(G=>!G),children:S?jsx(o,{"data-icon":"inline-start"}):jsx(n,{"data-icon":"inline-start"})})})]}):jsx("input",{ref:d,type:a$1,"data-slot":"input",className:a(I,e),...s})});A.displayName="Input";function Mt({className:t,...e}){return jsx("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:a("mx-auto flex w-full justify-center",t),...e})}function Gt({className:t,...e}){return jsx("ul",{"data-slot":"pagination-content",className:a("flex items-center gap-1",t),...e})}function _t({...t}){return jsx("li",{"data-slot":"pagination-item",...t})}function h({className:t,isActive:e,disabled:n=false,variant:a$1,size:s="icon",...d}){return jsx(g,{asChild:true,variant:a$1??(e?"outline":"ghost"),size:s,className:a(n&&"pointer-events-none opacity-50",t),children:jsx("a",{"aria-current":e?"page":void 0,"aria-disabled":n?true:void 0,"data-slot":"pagination-link","data-active":e,tabIndex:n?-1:d.tabIndex,...d})})}function Bt({className:t,disabled:e,showText:n=true,size:a$1="default",text:s="Previous",...d$1}){return jsxs(h,{"aria-label":"Go to previous page",disabled:e,size:a$1,variant:"outline",className:a("pl-1.5!",t),...d$1,children:[jsx(d,{"data-icon":"inline-start"}),n?jsx("span",{className:"hidden @min-[640px]/data-table:block",children:s}):null]})}function Lt({className:t,disabled:e,showText:n=true,size:a$1="default",text:s="First",...d}){return jsxs(h,{"aria-label":"Go to first page",disabled:e,size:a$1,variant:"outline",className:a("pl-1.5!",t),...d,children:[jsx(g$1,{"data-icon":"inline-start"}),n?jsx("span",{className:"hidden @min-[640px]/data-table:block",children:s}):null]})}function At({className:t,disabled:e$1,showText:n=true,size:a$1="default",text:s="Next",...d}){return jsxs(h,{"aria-label":"Go to next page",disabled:e$1,size:a$1,variant:"outline",className:a("pr-1.5!",t),...d,children:[n?jsx("span",{className:"hidden @min-[640px]/data-table:block",children:s}):null,jsx(e,{"data-icon":"inline-end"})]})}function Vt({className:t,disabled:e,showText:n=true,size:a$1="default",text:s="Last",...d}){return jsxs(h,{"aria-label":"Go to last page",disabled:e,size:a$1,variant:"outline",className:a("pr-1.5!",t),...d,children:[n?jsx("span",{className:"hidden @min-[640px]/data-table:block",children:s}):null,jsx(h$1,{"data-icon":"inline-end"})]})}function Et({className:t,text:e="More pages",...n}){return jsxs("span",{"aria-hidden":true,"data-slot":"pagination-ellipsis",className:a("flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4",t),...n,children:[jsx(k$1,{}),jsx("span",{className:"sr-only",children:e})]})}function Ht({className:t,children:e,...n}){return jsxs(ScrollArea.Root,{"data-slot":"scroll-area",className:a("relative",t),...n,children:[jsx(ScrollArea.Viewport,{"data-slot":"scroll-area-viewport",className:"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:outline-none",children:e}),jsx(V,{}),jsx(ScrollArea.Corner,{"data-slot":"scroll-area-corner",className:"z-100"})]})}function V({className:t,orientation:e="vertical",...n}){return jsx(ScrollArea.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar","data-orientation":e,orientation:e,className:a("z-100 flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent",t),...n,children:jsx(ScrollArea.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-full"})})}function Ut({...t}){return jsx(Select.Root,{"data-slot":"select",...t})}function Ft({className:t,...e}){return jsx(Select.Group,{"data-slot":"select-group",className:a("scroll-my-1 p-1",t),...e})}function Kt({...t}){return jsx(Select.Value,{"data-slot":"select-value",...t})}function Ot({className:t$1,size:e="default",children:n,...a$1}){return jsxs(Select.Trigger,{"data-slot":"select-trigger","data-size":e,className:a("flex w-fit items-center justify-between gap-1.5 rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t$1),...a$1,children:[n,jsx(Select.Icon,{asChild:true,children:jsx(t,{className:"pointer-events-none size-4"})})]})}function jt({className:t,children:e,position:n="item-aligned",align:a$1="center",...s}){return jsx(Select.Portal,{children:jsxs(Select.Content,{"data-slot":"select-content","data-align-trigger":n==="item-aligned",className:a("relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) animate-none! overflow-x-hidden overflow-y-auto rounded-lg border shadow-md duration-100 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:n,align:a$1,...s,children:[jsx(E,{}),jsx(Select.Viewport,{"data-position":n,className:a("data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)",n==="popper"&&""),children:e}),jsx(H,{})]})})}function qt({className:t,...e}){return jsx(Select.Label,{"data-slot":"select-label",className:a("px-1.5 py-1 text-xs opacity-80",t),...e})}function Jt({className:t,children:e,...n}){return jsxs(Select.Item,{"data-slot":"select-item",className:a("relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:outline-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...n,children:[jsx("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center",children:jsx(Select.ItemIndicator,{children:jsx(b,{className:"pointer-events-none"})})}),jsx(Select.ItemText,{children:e})]})}function Qt({className:t,...e}){return jsx(Select.Separator,{"data-slot":"select-separator",className:a("pointer-events-none -mx-1 my-1 h-px",t),...e})}function E({className:t,...e}){return jsx(Select.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:a("z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4",t),...e,children:jsx(f,{})})}function H({className:t,...e}){return jsx(Select.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:a("z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4",t),...e,children:jsx(c,{})})}function Wt({className:t,...e}){return jsx("div",{"data-slot":"skeleton",className:a("animate-pulse rounded-md",t),...e})}function Xt({className:t,...e}){return jsx("table",{"data-slot":"table",className:a("w-full border-collapse caption-bottom text-sm",t),...e})}function Yt({className:t,...e}){return jsx("thead",{"data-slot":"table-header",className:a("[&_tr]:border-b",t),...e})}function Zt({className:t,...e}){return jsx("tbody",{"data-slot":"table-body",className:a("[&_tr:last-child]:border-0",t),...e})}function $t({className:t,...e}){return jsx("tfoot",{"data-slot":"table-footer",className:a("border-t font-medium [&>tr]:last:border-b-0",t),...e})}function te({className:t,...e}){return jsx("tr",{"data-slot":"table-row",className:a("border-b transition-colors",t),...e})}function ee({className:t,...e}){return jsx("th",{"data-slot":"table-head",className:a("h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0",t),...e})}function oe({className:t,...e}){return jsx("td",{"data-slot":"table-cell",className:a("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",t),...e})}function ne({className:t,...e}){return jsx("caption",{"data-slot":"table-caption",className:a("mt-4 text-sm opacity-80",t),...e})}function ae({delayDuration:t=0,...e}){return jsx(Tooltip.Provider,{"data-slot":"tooltip-provider",delayDuration:t,...e})}function re({...t}){return jsx(Tooltip.Root,{"data-slot":"tooltip",...t})}function ie({...t}){return jsx(Tooltip.Trigger,{"data-slot":"tooltip-trigger",...t})}function se({className:t,sideOffset:e=0,children:n,...a$1}){return jsx(Tooltip.Portal,{children:jsxs(Tooltip.Content,{"data-slot":"tooltip-content",sideOffset:e,className:a("z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-md border px-3 py-1.5 text-xs has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",t),...a$1,children:[n,jsx(Tooltip.Arrow,{className:"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}var un={Button:g,ButtonGroup:Y,ButtonGroupSeparator:$,ButtonGroupText:Z,Card:tt,CardAction:at,CardContent:rt,CardDescription:nt,CardFooter:it,CardHeader:et,CardTitle:ot,Checkbox:lt,DropdownMenu:dt,DropdownMenuCheckboxItem:gt,DropdownMenuContent:ut,DropdownMenuGroup:mt,DropdownMenuItem:ft,DropdownMenuLabel:ht,DropdownMenuPortal:pt,DropdownMenuRadioGroup:bt,DropdownMenuRadioItem:vt,DropdownMenuSeparator:xt,DropdownMenuShortcut:Pt,DropdownMenuSub:wt,DropdownMenuSubContent:Ct,DropdownMenuSubTrigger:yt,DropdownMenuTrigger:ct,Empty:Rt,EmptyContent:kt,EmptyDescription:It,EmptyHeader:St,EmptyMedia:zt,EmptyTitle:Nt,Input:A,InputGroup:k,InputGroupAddon:T,InputGroupInput:P,InputGroupText:Dt,Pagination:Mt,PaginationContent:Gt,PaginationEllipsis:Et,PaginationFirst:Lt,PaginationItem:_t,PaginationLast:Vt,PaginationLink:h,PaginationNext:At,PaginationPrevious:Bt,ScrollArea:Ht,ScrollBar:V,Select:Ut,SelectContent:jt,SelectGroup:Ft,SelectItem:Jt,SelectLabel:qt,SelectScrollDownButton:H,SelectScrollUpButton:E,SelectSeparator:Qt,SelectTrigger:Ot,SelectValue:Kt,Separator:N,Skeleton:Wt,Table:Xt,TableBody:Zt,TableCaption:ne,TableCell:oe,TableFooter:$t,TableHead:ee,TableHeader:Yt,TableRow:te,Tooltip:re,TooltipContent:se,TooltipProvider:ae,TooltipTrigger:ie};export{Mt as A,h as B,Bt as C,Lt as D,At as E,Vt as F,Ht as G,V as H,Ot as I,jt as J,qt as K,Jt as L,Qt as M,Wt as N,Xt as O,Yt as P,Zt as Q,$t as R,te as S,ee as T,oe as U,ne as V,se as W,un as X,g as a,N as b,tt as c,et as d,nt as e,rt as f,it as g,lt as h,ut as i,ft as j,gt as k,vt as l,ht as m,xt as n,yt as o,Ct as p,Rt as q,St as r,zt as s,Nt as t,It as u,kt as v,k as w,P as x,T as y,A as z};//# sourceMappingURL=chunk-VSIOOKCO.js.map +//# sourceMappingURL=chunk-VSIOOKCO.js.map \ No newline at end of file diff --git a/dist/chunk-VSIOOKCO.js.map b/dist/chunk-VSIOOKCO.js.map new file mode 100644 index 0000000..64225ba --- /dev/null +++ b/dist/chunk-VSIOOKCO.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/components/ui/button.tsx","../src/components/ui/separator.tsx","../src/components/ui/button-group.tsx","../src/components/ui/card.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/empty.tsx","../src/components/ui/input-base.ts","../src/components/ui/input-group.tsx","../src/components/ui/input.tsx","../src/components/ui/pagination.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/select.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/table.tsx","../src/components/ui/tooltip.tsx","../src/core/primitive-ui-kit.ts"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn","Separator","orientation","decorative","SeparatorPrimitive","buttonGroupVariants","ButtonGroup","ButtonGroupText","ButtonGroupSeparator","Card","CardHeader","CardTitle","CardDescription","CardAction","CardContent","CardFooter","Checkbox","CheckboxPrimitive","IconCheck","DropdownMenu","DropdownMenuPrimitive","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","align","sideOffset","DropdownMenuGroup","DropdownMenuItem","inset","DropdownMenuCheckboxItem","children","checked","jsxs","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","DropdownMenuSubTrigger","IconChevronRight","DropdownMenuSubContent","Empty","EmptyHeader","emptyMediaVariants","EmptyMedia","EmptyTitle","EmptyDescription","EmptyContent","inputClassName","InputGroup","InputGroupInput","Tt","ref","InputGroupAddon","InputGroupText","Input","passwordToggle","type","showPassword","setShowPassword","event","current","IconEyeOff","IconEye","Pagination","PaginationContent","PaginationItem","PaginationLink","isActive","disabled","PaginationPrevious","showText","text","IconChevronLeft","PaginationFirst","IconChevronsLeft","PaginationNext","PaginationLast","IconChevronsRight","PaginationEllipsis","IconDots","ScrollArea","ScrollAreaPrimitive","ScrollBar","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","IconSelector","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectLabel","SelectItem","SelectSeparator","IconChevronUp","IconChevronDown","Skeleton","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","TooltipProvider","delayDuration","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","primitiveUiKit"],"mappings":"mTAMA,IAAMA,GAAiBC,GAAAA,CACrB,0YAAA,CACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,QAAS,EAAA,CACT,OAAA,CAAS,EAAA,CACT,SAAA,CAAW,GACX,KAAA,CAAO,EAAA,CACP,WAAA,CAAa,EAAA,CACb,KAAM,oCACR,CAAA,CACA,KAAM,CACJ,OAAA,CACE,uFACF,EAAA,CAAI,+MAAA,CACJ,EAAA,CAAI,yNAAA,CACJ,GAAI,sFAAA,CACJ,IAAA,CAAM,QAAA,CACN,SAAA,CACE,0HACF,SAAA,CACE,oFAAA,CACF,SAAA,CAAW,QACb,CACF,CAAA,CACA,eAAA,CAAiB,CACf,OAAA,CAAS,SAAA,CACT,KAAM,SACR,CACF,CACF,CAAA,CAEA,SAASC,CAAAA,CAAO,CACd,UAAAC,CAAAA,CACA,OAAA,CAAAC,EAAU,SAAA,CACV,IAAA,CAAAC,CAAAA,CAAO,SAAA,CACP,QAAAC,GAAAA,CAAU,KAAA,CACV,GAAGC,CACL,CAAA,CAGK,CACH,IAAMC,CAAAA,CAAOF,GAAAA,CAAUG,IAAAA,CAAK,KAAO,QAAA,CAEnC,OACEC,GAAAA,CAACF,CAAAA,CAAA,CACC,WAAA,CAAU,QAAA,CACV,cAAA,CAAcJ,CAAAA,CACd,YAAWC,CAAAA,CACX,SAAA,CAAWM,EAAGX,EAAAA,CAAe,CAAE,QAAAI,CAAAA,CAAS,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAF,CAAU,CAAC,CAAC,EACzD,GAAGI,CAAAA,CACN,CAEJ,CCvDA,SAASK,CAAAA,CAAU,CACjB,SAAA,CAAAT,CAAAA,CACA,WAAA,CAAAU,CAAAA,CAAc,aACd,UAAA,CAAAC,CAAAA,CAAa,KACb,GAAGP,GACL,EAAyD,CACvD,OACEG,GAAAA,CAACK,SAAAA,CAAmB,KAAnB,CACC,WAAA,CAAU,YACV,UAAA,CAAYD,CAAAA,CACZ,YAAaD,CAAAA,CACb,SAAA,CAAWF,CAAAA,CACT,oGAAA,CACAR,CACF,CAAA,CACC,GAAGI,IACN,CAEJ,CCjBA,IAAMS,EAAAA,CAAsBf,IAC1B,0RAAA,CACA,CACE,QAAA,CAAU,CACR,YAAa,CACX,UAAA,CACE,uKAAA,CACF,QAAA,CACE,gLACJ,CACF,CAAA,CACA,gBAAiB,CACf,WAAA,CAAa,YACf,CACF,CACF,CAAA,CAEA,SAASgB,EAAY,CACnB,SAAA,CAAAd,CAAAA,CACA,WAAA,CAAAU,EACA,GAAGN,CACL,CAAA,CAA2E,CACzE,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,KAAK,OAAA,CACL,WAAA,CAAU,eACV,kBAAA,CAAkBG,CAAAA,CAClB,SAAA,CAAWF,CAAAA,CAAGK,GAAoB,CAAE,WAAA,CAAAH,CAAY,CAAC,EAAGV,CAAS,CAAA,CAC5D,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASW,EAAgB,CACvB,SAAA,CAAAf,EACA,OAAA,CAAAG,CAAAA,CAAU,KAAA,CACV,GAAGC,CACL,CAAA,CAEG,CACD,IAAMC,GAAAA,CAAOF,CAAAA,CAAUG,KAAK,IAAA,CAAO,KAAA,CAEnC,OACEC,GAAAA,CAACF,IAAA,CACC,SAAA,CAAWG,EACT,uIAAA,CACAR,CACF,EACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASY,CAAAA,CAAqB,CAC5B,SAAA,CAAAhB,CAAAA,CACA,YAAAU,CAAAA,CAAc,UAAA,CACd,GAAGN,CACL,EAA2C,CACzC,OACEG,IAACE,CAAAA,CAAA,CACC,YAAU,wBAAA,CACV,WAAA,CAAaC,CAAAA,CACb,SAAA,CAAWF,EACT,6GAAA,CACAR,CACF,EACC,GAAGI,CAAAA,CACN,CAEJ,CCvEA,SAASa,GAAK,CACZ,SAAA,CAAAjB,EACA,IAAA,CAAAE,CAAAA,CAAO,SAAA,CACP,GAAGE,CACL,CAAA,CAA8D,CAC5D,OACEG,GAAAA,CAAC,OACC,WAAA,CAAU,MAAA,CACV,WAAA,CAAWL,CAAAA,CACX,UAAWM,CAAAA,CACT,6SAAA,CACAR,CACF,CAAA,CACC,GAAGI,EACN,CAEJ,CAEA,SAASc,EAAAA,CAAW,CAAE,SAAA,CAAAlB,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAgC,CACxE,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,WAAA,CAAU,cACV,SAAA,CAAWC,CAAAA,CACT,qSACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASe,GAAU,CAAE,SAAA,CAAAnB,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAgC,CACvE,OACEG,GAAAA,CAAC,OACC,WAAA,CAAU,YAAA,CACV,UAAWC,CAAAA,CACT,mFAAA,CACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASgB,EAAAA,CAAgB,CAAE,SAAA,CAAApB,EAAW,GAAGI,CAAM,CAAA,CAAgC,CAC7E,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,YAAU,kBAAA,CACV,SAAA,CAAWC,EAAG,oBAAA,CAAsBR,CAAS,CAAA,CAC5C,GAAGI,EACN,CAEJ,CAEA,SAASiB,EAAAA,CAAW,CAAE,SAAA,CAAArB,CAAAA,CAAW,GAAGI,CAAM,EAAgC,CACxE,OACEG,IAAC,KAAA,CAAA,CACC,WAAA,CAAU,cACV,SAAA,CAAWC,CAAAA,CACT,gEAAA,CACAR,CACF,EACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASkB,GAAY,CAAE,SAAA,CAAAtB,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAgC,CACzE,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,YAAU,cAAA,CACV,SAAA,CAAWC,CAAAA,CAAG,qCAAA,CAAuCR,CAAS,CAAA,CAC7D,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASmB,EAAAA,CAAW,CAAE,SAAA,CAAAvB,EAAW,GAAGI,CAAM,EAAgC,CACxE,OACEG,IAAC,KAAA,CAAA,CACC,WAAA,CAAU,aAAA,CACV,SAAA,CAAWC,EACT,2EAAA,CACAR,CACF,EACC,GAAGI,CAAAA,CACN,CAEJ,CCtFA,SAASoB,EAAAA,CAAS,CAChB,SAAA,CAAAxB,CAAAA,CACA,GAAGI,CACL,CAAA,CAAwD,CACtD,OACEG,IAACkB,QAAAA,CAAkB,IAAA,CAAlB,CACC,WAAA,CAAU,WACV,SAAA,CAAWjB,CAAAA,CACT,gTACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CAEJ,QAAA,CAAAG,GAAAA,CAACkB,QAAAA,CAAkB,UAAlB,CACC,WAAA,CAAU,qBACV,SAAA,CAAU,yEAAA,CAEV,SAAAlB,GAAAA,CAACmB,CAAAA,CAAA,EAAU,CAAA,CACb,EACF,CAEJ,CCnBA,SAASC,EAAAA,CAAa,CACpB,GAAGvB,CACL,CAAA,CAA4D,CAC1D,OAAOG,GAAAA,CAACqB,YAAAA,CAAsB,KAAtB,CAA2B,WAAA,CAAU,gBAAiB,GAAGxB,CAAAA,CAAO,CAC1E,CAEA,SAASyB,EAAAA,CAAmB,CAC1B,GAAGzB,CACL,CAAA,CAA8D,CAC5D,OACEG,GAAAA,CAACqB,YAAAA,CAAsB,MAAA,CAAtB,CAA6B,WAAA,CAAU,sBAAA,CAAwB,GAAGxB,CAAAA,CAAO,CAE9E,CAEA,SAAS0B,EAAAA,CAAoB,CAC3B,GAAG1B,CACL,CAAA,CAA+D,CAC7D,OACEG,GAAAA,CAACqB,aAAsB,OAAA,CAAtB,CACC,WAAA,CAAU,uBAAA,CACT,GAAGxB,CAAAA,CACN,CAEJ,CAEA,SAAS2B,EAAAA,CAAoB,CAC3B,SAAA,CAAA/B,CAAAA,CACA,KAAA,CAAAgC,CAAAA,CAAQ,QACR,UAAA,CAAAC,CAAAA,CAAa,EACb,GAAG7B,GACL,EAA+D,CAC7D,OACEG,GAAAA,CAACqB,YAAAA,CAAsB,OAAtB,CACC,QAAA,CAAArB,IAACqB,YAAAA,CAAsB,OAAA,CAAtB,CACC,WAAA,CAAU,uBAAA,CACV,UAAA,CAAYK,CAAAA,CACZ,MAAOD,CAAAA,CACP,SAAA,CAAWxB,CAAAA,CACT,grBAAA,CACAR,CACF,CAAA,CACC,GAAGI,GAAAA,CACN,CAAA,CACF,CAEJ,CAEA,SAAS8B,GAAkB,CACzB,GAAG9B,CACL,CAAA,CAA6D,CAC3D,OACEG,GAAAA,CAACqB,aAAsB,KAAA,CAAtB,CAA4B,YAAU,qBAAA,CAAuB,GAAGxB,EAAO,CAE5E,CAEA,SAAS+B,EAAAA,CAAiB,CACxB,SAAA,CAAAnC,CAAAA,CACA,MAAAoC,CAAAA,CACA,OAAA,CAAAnC,EAAU,SAAA,CACV,GAAGG,GACL,CAAA,CAGG,CACD,OACEG,GAAAA,CAACqB,YAAAA,CAAsB,IAAA,CAAtB,CACC,WAAA,CAAU,oBAAA,CACV,YAAA,CAAYQ,CAAAA,CACZ,eAAcnC,CAAAA,CACd,SAAA,CAAWO,EACT,sTAAA,CACAR,CACF,EACC,GAAGI,GAAAA,CACN,CAEJ,CAEA,SAASiC,EAAAA,CAAyB,CAChC,UAAArC,CAAAA,CACA,QAAA,CAAAsC,EACA,OAAA,CAAAC,CAAAA,CACA,KAAA,CAAAH,GAAAA,CACA,GAAGhC,CACL,CAAA,CAEG,CACD,OACEoC,IAAAA,CAACZ,aAAsB,YAAA,CAAtB,CACC,WAAA,CAAU,6BAAA,CACV,aAAYQ,GAAAA,CACZ,SAAA,CAAW5B,CAAAA,CACT,kSAAA,CACAR,CACF,CAAA,CACA,OAAA,CAASuC,CAAAA,CACR,GAAGnC,EAEJ,QAAA,CAAA,CAAAG,GAAAA,CAAC,QACC,SAAA,CAAU,uEAAA,CACV,YAAU,uCAAA,CAEV,QAAA,CAAAA,GAAAA,CAACqB,YAAAA,CAAsB,cAAtB,CACC,QAAA,CAAArB,GAAAA,CAACmB,CAAAA,CAAA,EAAU,CAAA,CACb,CAAA,CACF,CAAA,CACCY,CAAAA,CAAAA,CACH,CAEJ,CAEA,SAASG,GAAuB,CAC9B,GAAGrC,CACL,CAAA,CAAkE,CAChE,OACEG,GAAAA,CAACqB,aAAsB,UAAA,CAAtB,CACC,WAAA,CAAU,2BAAA,CACT,GAAGxB,CAAAA,CACN,CAEJ,CAEA,SAASsC,GAAsB,CAC7B,SAAA,CAAA1C,EACA,QAAA,CAAAsC,CAAAA,CACA,MAAAF,CAAAA,CACA,GAAGhC,GACL,CAAA,CAEG,CACD,OACEoC,IAAAA,CAACZ,aAAsB,SAAA,CAAtB,CACC,YAAU,0BAAA,CACV,YAAA,CAAYQ,CAAAA,CACZ,SAAA,CAAW5B,EACT,kSAAA,CACAR,CACF,EACC,GAAGI,GAAAA,CAEJ,UAAAG,GAAAA,CAAC,MAAA,CAAA,CACC,SAAA,CAAU,uEAAA,CACV,YAAU,oCAAA,CAEV,QAAA,CAAAA,GAAAA,CAACqB,YAAAA,CAAsB,cAAtB,CACC,QAAA,CAAArB,GAAAA,CAACmB,CAAAA,CAAA,EAAU,CAAA,CACb,CAAA,CACF,EACCY,CAAAA,CAAAA,CACH,CAEJ,CAEA,SAASK,EAAAA,CAAkB,CACzB,SAAA,CAAA3C,EACA,KAAA,CAAAoC,CAAAA,CACA,GAAGhC,CACL,CAAA,CAEG,CACD,OACEG,GAAAA,CAACqB,YAAAA,CAAsB,KAAA,CAAtB,CACC,WAAA,CAAU,qBAAA,CACV,aAAYQ,CAAAA,CACZ,SAAA,CAAW5B,EACT,4DAAA,CACAR,CACF,CAAA,CACC,GAAGI,EACN,CAEJ,CAEA,SAASwC,EAAAA,CAAsB,CAC7B,SAAA,CAAA5C,CAAAA,CACA,GAAGI,CACL,EAAiE,CAC/D,OACEG,IAACqB,YAAAA,CAAsB,SAAA,CAAtB,CACC,WAAA,CAAU,yBAAA,CACV,SAAA,CAAWpB,CAAAA,CAAG,kBAAmBR,CAAS,CAAA,CACzC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASyC,EAAAA,CAAqB,CAC5B,SAAA,CAAA7C,EACA,GAAGI,CACL,EAAiC,CAC/B,OACEG,IAAC,MAAA,CAAA,CACC,WAAA,CAAU,wBAAA,CACV,SAAA,CAAWC,EACT,4CAAA,CACAR,CACF,CAAA,CACC,GAAGI,EACN,CAEJ,CAEA,SAAS0C,EAAAA,CAAgB,CACvB,GAAG1C,CACL,EAA2D,CACzD,OAAOG,IAACqB,YAAAA,CAAsB,GAAA,CAAtB,CAA0B,WAAA,CAAU,oBAAqB,GAAGxB,CAAAA,CAAO,CAC7E,CAEA,SAAS2C,EAAAA,CAAuB,CAC9B,SAAA,CAAA/C,CAAAA,CACA,MAAAoC,GAAAA,CACA,QAAA,CAAAE,EACA,GAAGlC,GACL,EAEG,CACD,OACEoC,IAAAA,CAACZ,YAAAA,CAAsB,WAAtB,CACC,WAAA,CAAU,2BAAA,CACV,YAAA,CAAYQ,IACZ,SAAA,CAAW5B,CAAAA,CACT,yNAAA,CACAR,CACF,EACC,GAAGI,GAAAA,CAEH,UAAAkC,CAAAA,CACD/B,GAAAA,CAACyC,EAAA,CAAiB,SAAA,CAAU,SAAA,CAAU,CAAA,CAAA,CACxC,CAEJ,CAEA,SAASC,GAAuB,CAC9B,SAAA,CAAAjD,EACA,GAAGI,CACL,CAAA,CAAkE,CAChE,OACEG,GAAAA,CAACqB,YAAAA,CAAsB,WAAtB,CACC,WAAA,CAAU,4BACV,SAAA,CAAWpB,CAAAA,CACT,+hBAAA,CACAR,CACF,EACC,GAAGI,CAAAA,CACN,CAEJ,CC1PA,SAAS8C,GAAM,CAAE,SAAA,CAAAlD,EAAW,GAAGI,CAAM,CAAA,CAAgC,CACnE,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,YAAU,OAAA,CACV,SAAA,CAAWC,EACT,6HAAA,CACAR,CACF,CAAA,CACC,GAAGI,EACN,CAEJ,CAEA,SAAS+C,EAAAA,CAAY,CAAE,UAAAnD,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAgC,CACzE,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,WAAA,CAAU,eACV,SAAA,CAAWC,CAAAA,CAAG,2CAAA,CAA6CR,CAAS,EACnE,GAAGI,CAAAA,CACN,CAEJ,CAEA,IAAMgD,GAAqBtD,GAAAA,CACzB,6FAAA,CACA,CACE,QAAA,CAAU,CACR,OAAA,CAAS,CACP,QAAS,gBAAA,CACT,IAAA,CAAM,kGACR,CACF,CAAA,CACA,eAAA,CAAiB,CACf,QAAS,SACX,CACF,CACF,CAAA,CAEA,SAASuD,GAAW,CAClB,SAAA,CAAArD,CAAAA,CACA,OAAA,CAAAC,EAAU,SAAA,CACV,GAAGG,CACL,CAAA,CAA0E,CACxE,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,WAAA,CAAU,aACV,cAAA,CAAcN,CAAAA,CACd,UAAWO,CAAAA,CAAG4C,EAAAA,CAAmB,CAAE,OAAA,CAAAnD,CAAAA,CAAS,SAAA,CAAAD,CAAU,CAAC,CAAC,CAAA,CACvD,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASkD,EAAAA,CAAW,CAAE,UAAAtD,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAgC,CACxE,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,WAAA,CAAU,aAAA,CACV,UAAWC,CAAAA,CACT,iDAAA,CACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASmD,GAAiB,CAAE,SAAA,CAAAvD,EAAW,GAAGI,CAAM,EAA8B,CAC5E,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,YAAU,mBAAA,CACV,SAAA,CAAWC,EACT,qEAAA,CACAR,CACF,EACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASoD,EAAAA,CAAa,CAAE,UAAAxD,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAgC,CAC1E,OACEG,GAAAA,CAAC,OACC,WAAA,CAAU,eAAA,CACV,SAAA,CAAWC,CAAAA,CACT,kFACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CACN,CAEJ,CC9FO,IAAMqD,EACX,oVAAA,CCUF,SAASC,CAAAA,CAAW,CAClB,UAAA1D,CAAAA,CACA,GAAGI,CACL,CAAA,CAAgC,CAC9B,OACEG,GAAAA,CAAC,OACC,IAAA,CAAK,OAAA,CACL,YAAU,aAAA,CACV,SAAA,CAAWC,CAAAA,CACT,wYAAA,CACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,IAAMuD,CAAAA,CAAwBC,CAAA,CAAA,UAAA,CAG5B,SAAyB,CAAE,SAAA,CAAA5D,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAGyD,IAAK,CACvD,OACEtD,GAAAA,CAAC,OAAA,CAAA,CACC,IAAKsD,GAAAA,CACL,WAAA,CAAU,sBACV,IAAA,CAAMzD,CAAAA,CAAM,KACZ,SAAA,CAAWI,CAAAA,CACTiD,CAAAA,CACA,qGAAA,CACAzD,CACF,CAAA,CACC,GAAGI,EACN,CAEJ,CAAC,EAMD,SAAS0D,CAAAA,CAAgB,CACvB,KAAA,CAAA9B,EAAQ,cAAA,CACR,SAAA,CAAAhC,CAAAA,CACA,GAAGI,CACL,CAAA,CAAyB,CACvB,OACEG,GAAAA,CAAC,OACC,WAAA,CAAU,mBAAA,CACV,aAAYyB,CAAAA,CACZ,SAAA,CAAWxB,EACT,qGAAA,CACAwB,CAAAA,GAAU,cAAA,EAAkB,yBAAA,CAC5BA,IAAU,YAAA,EAAgB,wBAAA,CAC1BA,IAAU,aAAA,EACR,mEAAA,CACFA,IAAU,WAAA,EACR,kEAAA,CACFhC,CACF,CAAA,CACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAAS2D,EAAAA,CAAe,CACtB,SAAA,CAAA/D,CAAAA,CACA,GAAGI,CACL,EAAiC,CAC/B,OACEG,GAAAA,CAAC,MAAA,CAAA,CACC,YAAU,kBAAA,CACV,SAAA,CAAWC,CAAAA,CAAG,2BAAA,CAA6BR,CAAS,CAAA,CACnD,GAAGI,EACN,CAEJ,CAEAuD,EAAgB,WAAA,CAAc,iBAAA,KC5ExBK,CAAAA,CAAc,CAAA,CAAA,UAAA,CAAyC,SAC3D,CAAE,SAAA,CAAAhE,CAAAA,CAAW,cAAA,CAAAiE,IAAiB,KAAA,CAAO,IAAA,CAAAC,IAAM,GAAG9D,CAAM,EACpDyD,CAAAA,CACA,CACA,GAAM,CAACM,EAAcC,EAAe,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,KAAK,EAG5D,OAF0BH,GAAAA,EAAkBC,GAAAA,GAAS,UAAA,CAenD1B,KAACkB,CAAAA,CAAA,CAAW,UAAW1D,CAAAA,CACrB,QAAA,CAAA,CAAAO,IAACoD,CAAAA,CAAA,CACC,GAAA,CAAKE,CAAAA,CACL,KAAMM,CAAAA,CAAe,MAAA,CAAS,WAC9B,WAAA,CAAU,qBAAA,CACV,UAAU,MAAA,CACT,GAAG/D,CAAAA,CACN,CAAA,CACAG,IAACuD,CAAAA,CAAA,CAAgB,MAAM,YAAA,CACrB,QAAA,CAAAvD,IAACR,CAAAA,CAAA,CACC,IAAA,CAAK,QAAA,CACL,QAAQ,OAAA,CACR,IAAA,CAAK,SAAA,CACL,YAAA,CAAYoE,EAAe,eAAA,CAAkB,eAAA,CAC7C,cAAA,CAAcA,CAAAA,CACd,UAAU,sBAAA,CACV,WAAA,CAAcE,GAAUA,CAAAA,CAAM,cAAA,GAC9B,OAAA,CAAS,IAAMD,EAAAA,CAAiBE,CAAAA,EAAY,CAACA,CAAO,CAAA,CAEnD,SAAAH,CAAAA,CACC5D,GAAAA,CAACgE,EAAA,CAAW,WAAA,CAAU,cAAA,CAAe,CAAA,CAErChE,IAACiE,CAAAA,CAAA,CAAQ,YAAU,cAAA,CAAe,CAAA,CAEtC,EACF,CAAA,CAAA,CACF,CAAA,CArCEjE,GAAAA,CAAC,OAAA,CAAA,CACC,IAAKsD,CAAAA,CACL,IAAA,CAAMK,GAAAA,CACN,WAAA,CAAU,QACV,SAAA,CAAW1D,CAAAA,CAAGiD,CAAAA,CAAgBzD,CAAS,EACtC,GAAGI,CAAAA,CACN,CAiCN,CAAC,EAED4D,EAAM,WAAA,CAAc,OAAA,CClDpB,SAASS,EAAAA,CAAW,CAAE,SAAA,CAAAzE,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAgC,CACxE,OACEG,GAAAA,CAAC,OACC,IAAA,CAAK,YAAA,CACL,YAAA,CAAW,YAAA,CACX,YAAU,YAAA,CACV,SAAA,CAAWC,CAAAA,CAAG,oCAAA,CAAsCR,CAAS,CAAA,CAC5D,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASsE,EAAAA,CAAkB,CACzB,SAAA,CAAA1E,CAAAA,CACA,GAAGI,CACL,CAAA,CAA+B,CAC7B,OACEG,IAAC,IAAA,CAAA,CACC,WAAA,CAAU,qBACV,SAAA,CAAWC,CAAAA,CAAG,0BAA2BR,CAAS,CAAA,CACjD,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASuE,GAAe,CAAE,GAAGvE,CAAM,CAAA,CAA+B,CAChE,OAAOG,GAAAA,CAAC,MAAG,WAAA,CAAU,iBAAA,CAAmB,GAAGH,CAAAA,CAAO,CACpD,CASA,SAASwE,CAAAA,CAAe,CACtB,UAAA5E,CAAAA,CACA,QAAA,CAAA6E,EACA,QAAA,CAAAC,CAAAA,CAAW,MACX,OAAA,CAAA7E,GAAAA,CACA,IAAA,CAAAC,CAAAA,CAAO,OACP,GAAGE,CACL,EAAwB,CACtB,OACEG,IAACR,CAAAA,CAAA,CACC,OAAA,CAAO,IAAA,CACP,QAASE,GAAAA,GAAY4E,CAAAA,CAAW,UAAY,OAAA,CAAA,CAC5C,IAAA,CAAM3E,EACN,SAAA,CAAWM,CAAAA,CAAGsE,CAAAA,EAAY,gCAAA,CAAkC9E,CAAS,CAAA,CAErE,QAAA,CAAAO,GAAAA,CAAC,GAAA,CAAA,CACC,eAAcsE,CAAAA,CAAW,MAAA,CAAS,MAAA,CAClC,eAAA,CAAeC,EAAW,IAAA,CAAO,MAAA,CACjC,YAAU,iBAAA,CACV,aAAA,CAAaD,EACb,QAAA,CAAUC,CAAAA,CAAW,EAAA,CAAK1E,CAAAA,CAAM,SAC/B,GAAGA,CAAAA,CACN,EACF,CAEJ,CAEA,SAAS2E,EAAAA,CAAmB,CAC1B,SAAA,CAAA/E,CAAAA,CACA,SAAA8E,CAAAA,CACA,QAAA,CAAAE,EAAW,IAAA,CACX,IAAA,CAAA9E,IAAO,SAAA,CACP,IAAA,CAAA+E,CAAAA,CAAO,UAAA,CACP,GAAG7E,GACL,CAAA,CAGG,CACD,OACEoC,KAACoC,CAAAA,CAAA,CACC,YAAA,CAAW,qBAAA,CACX,SAAUE,CAAAA,CACV,IAAA,CAAM5E,IACN,OAAA,CAAQ,SAAA,CACR,UAAWM,CAAAA,CAAG,SAAA,CAAWR,CAAS,CAAA,CACjC,GAAGI,GAAAA,CAEJ,QAAA,CAAA,CAAAG,GAAAA,CAAC2E,CAAAA,CAAA,CAAgB,WAAA,CAAU,cAAA,CAAe,CAAA,CACzCF,CAAAA,CACCzE,IAAC,MAAA,CAAA,CAAK,SAAA,CAAU,uCAAwC,QAAA,CAAA0E,CAAAA,CAAK,EAC3D,IAAA,CAAA,CACN,CAEJ,CAEA,SAASE,GAAgB,CACvB,SAAA,CAAAnF,CAAAA,CACA,QAAA,CAAA8E,EACA,QAAA,CAAAE,CAAAA,CAAW,IAAA,CACX,IAAA,CAAA9E,IAAO,SAAA,CACP,IAAA,CAAA+E,EAAO,OAAA,CACP,GAAG7E,CACL,CAAA,CAGG,CACD,OACEoC,IAAAA,CAACoC,EAAA,CACC,YAAA,CAAW,mBACX,QAAA,CAAUE,CAAAA,CACV,KAAM5E,GAAAA,CACN,OAAA,CAAQ,SAAA,CACR,SAAA,CAAWM,EAAG,SAAA,CAAWR,CAAS,EACjC,GAAGI,CAAAA,CAEJ,UAAAG,GAAAA,CAAC6E,GAAAA,CAAA,CAAiB,WAAA,CAAU,eAAe,CAAA,CAC1CJ,CAAAA,CACCzE,GAAAA,CAAC,MAAA,CAAA,CAAK,UAAU,sCAAA,CAAwC,QAAA,CAAA0E,CAAAA,CAAK,CAAA,CAC3D,MACN,CAEJ,CAEA,SAASI,EAAAA,CAAe,CACtB,UAAArF,CAAAA,CACA,QAAA,CAAA8E,GAAAA,CACA,QAAA,CAAAE,EAAW,IAAA,CACX,IAAA,CAAA9E,IAAO,SAAA,CACP,IAAA,CAAA+E,EAAO,MAAA,CACP,GAAG7E,CACL,CAAA,CAGG,CACD,OACEoC,IAAAA,CAACoC,EAAA,CACC,YAAA,CAAW,kBACX,QAAA,CAAUE,GAAAA,CACV,IAAA,CAAM5E,GAAAA,CACN,QAAQ,SAAA,CACR,SAAA,CAAWM,CAAAA,CAAG,SAAA,CAAWR,CAAS,CAAA,CACjC,GAAGI,CAAAA,CAEH,QAAA,CAAA,CAAA4E,EACCzE,GAAAA,CAAC,MAAA,CAAA,CAAK,UAAU,sCAAA,CAAwC,QAAA,CAAA0E,EAAK,CAAA,CAC3D,IAAA,CACJ1E,GAAAA,CAACyC,CAAAA,CAAA,CAAiB,WAAA,CAAU,YAAA,CAAa,GAC3C,CAEJ,CAEA,SAASsC,EAAAA,CAAe,CACtB,SAAA,CAAAtF,CAAAA,CACA,SAAA8E,CAAAA,CACA,QAAA,CAAAE,EAAW,IAAA,CACX,IAAA,CAAA9E,IAAO,SAAA,CACP,IAAA,CAAA+E,CAAAA,CAAO,MAAA,CACP,GAAG7E,CACL,CAAA,CAGG,CACD,OACEoC,KAACoC,CAAAA,CAAA,CACC,YAAA,CAAW,iBAAA,CACX,SAAUE,CAAAA,CACV,IAAA,CAAM5E,IACN,OAAA,CAAQ,SAAA,CACR,UAAWM,CAAAA,CAAG,SAAA,CAAWR,CAAS,CAAA,CACjC,GAAGI,CAAAA,CAEH,QAAA,CAAA,CAAA4E,CAAAA,CACCzE,GAAAA,CAAC,QAAK,SAAA,CAAU,sCAAA,CAAwC,QAAA,CAAA0E,CAAAA,CAAK,EAC3D,IAAA,CACJ1E,GAAAA,CAACgF,IAAA,CAAkB,WAAA,CAAU,aAAa,CAAA,CAAA,CAC5C,CAEJ,CAEA,SAASC,GAAmB,CAC1B,SAAA,CAAAxF,CAAAA,CACA,IAAA,CAAAiF,EAAO,YAAA,CACP,GAAG7E,CACL,CAAA,CAAqD,CACnD,OACEoC,IAAAA,CAAC,QACC,aAAA,CAAW,IAAA,CACX,YAAU,qBAAA,CACV,SAAA,CAAWhC,CAAAA,CACT,8EAAA,CACAR,CACF,CAAA,CACC,GAAGI,EAEJ,QAAA,CAAA,CAAAG,GAAAA,CAACkF,IAAA,EAAS,CAAA,CACVlF,GAAAA,CAAC,MAAA,CAAA,CAAK,UAAU,SAAA,CAAW,QAAA,CAAA0E,EAAK,CAAA,CAAA,CAClC,CAEJ,CCzMA,SAASS,EAAAA,CAAW,CAClB,SAAA,CAAA1F,CAAAA,CACA,SAAAsC,CAAAA,CACA,GAAGlC,CACL,CAAA,CAA0D,CACxD,OACEoC,IAAAA,CAACmD,WAAoB,IAAA,CAApB,CACC,YAAU,aAAA,CACV,SAAA,CAAWnF,EAAG,UAAA,CAAYR,CAAS,CAAA,CAClC,GAAGI,EAEJ,QAAA,CAAA,CAAAG,GAAAA,CAACoF,WAAoB,QAAA,CAApB,CACC,YAAU,sBAAA,CACV,SAAA,CAAU,mGAAA,CAET,QAAA,CAAArD,EACH,CAAA,CACA/B,GAAAA,CAACqF,CAAAA,CAAA,EAAU,EACXrF,GAAAA,CAACoF,UAAAA,CAAoB,MAAA,CAApB,CACC,YAAU,oBAAA,CACV,SAAA,CAAU,QACZ,CAAA,CAAA,CACF,CAEJ,CAEA,SAASC,CAAAA,CAAU,CACjB,SAAA,CAAA5F,EACA,WAAA,CAAAU,CAAAA,CAAc,WACd,GAAGN,CACL,EAAyE,CACvE,OACEG,GAAAA,CAACoF,UAAAA,CAAoB,oBAApB,CACC,WAAA,CAAU,wBACV,kBAAA,CAAkBjF,CAAAA,CAClB,YAAaA,CAAAA,CACb,SAAA,CAAWF,CAAAA,CACT,0QAAA,CACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CAEJ,QAAA,CAAAG,IAACoF,UAAAA,CAAoB,eAAA,CAApB,CACC,WAAA,CAAU,oBACV,SAAA,CAAU,8BAAA,CACZ,EACF,CAEJ,CCxCA,SAASE,EAAAA,CAAO,CACd,GAAGzF,CACL,EAAsD,CACpD,OAAOG,IAACuF,MAAAA,CAAgB,IAAA,CAAhB,CAAqB,WAAA,CAAU,QAAA,CAAU,GAAG1F,CAAAA,CAAO,CAC7D,CAEA,SAAS2F,EAAAA,CAAY,CACnB,UAAA/F,CAAAA,CACA,GAAGI,CACL,CAAA,CAAuD,CACrD,OACEG,GAAAA,CAACuF,OAAgB,KAAA,CAAhB,CACC,YAAU,cAAA,CACV,SAAA,CAAWtF,CAAAA,CAAG,iBAAA,CAAmBR,CAAS,CAAA,CACzC,GAAGI,EACN,CAEJ,CAEA,SAAS4F,EAAAA,CAAY,CACnB,GAAG5F,CACL,EAAuD,CACrD,OAAOG,IAACuF,MAAAA,CAAgB,KAAA,CAAhB,CAAsB,WAAA,CAAU,cAAA,CAAgB,GAAG1F,CAAAA,CAAO,CACpE,CAEA,SAAS6F,EAAAA,CAAc,CACrB,UAAAjG,GAAAA,CACA,IAAA,CAAAE,CAAAA,CAAO,SAAA,CACP,SAAAoC,CAAAA,CACA,GAAGlC,GACL,CAAA,CAEG,CACD,OACEoC,IAAAA,CAACsD,MAAAA,CAAgB,OAAA,CAAhB,CACC,YAAU,gBAAA,CACV,WAAA,CAAW5F,EACX,SAAA,CAAWM,CAAAA,CACT,wjBACAR,GACF,CAAA,CACC,GAAGI,GAAAA,CAEH,UAAAkC,CAAAA,CACD/B,GAAAA,CAACuF,OAAgB,IAAA,CAAhB,CAAqB,QAAO,IAAA,CAC3B,QAAA,CAAAvF,GAAAA,CAAC2F,CAAAA,CAAA,CAAa,SAAA,CAAU,4BAAA,CAA6B,CAAA,CACvD,CAAA,CAAA,CACF,CAEJ,CAEA,SAASC,EAAAA,CAAc,CACrB,UAAAnG,CAAAA,CACA,QAAA,CAAAsC,EACA,QAAA,CAAA8D,CAAAA,CAAW,eACX,KAAA,CAAApE,GAAAA,CAAQ,QAAA,CACR,GAAG5B,CACL,CAAA,CAAyD,CACvD,OACEG,GAAAA,CAACuF,MAAAA,CAAgB,OAAhB,CACC,QAAA,CAAAtD,IAAAA,CAACsD,MAAAA,CAAgB,QAAhB,CACC,WAAA,CAAU,iBACV,oBAAA,CAAoBM,CAAAA,GAAa,eACjC,SAAA,CAAW5F,CAAAA,CACT,ynBAAA,CACA4F,CAAAA,GAAa,UACX,iIAAA,CACFpG,CACF,CAAA,CACA,QAAA,CAAUoG,EACV,KAAA,CAAOpE,GAAAA,CACN,GAAG5B,CAAAA,CAEJ,UAAAG,GAAAA,CAAC8F,CAAAA,CAAA,EAAqB,CAAA,CACtB9F,GAAAA,CAACuF,OAAgB,QAAA,CAAhB,CACC,eAAA,CAAeM,CAAAA,CACf,UAAW5F,CAAAA,CACT,oJAAA,CACA4F,CAAAA,GAAa,QAAA,EAAY,EAC3B,CAAA,CAEC,QAAA,CAAA9D,CAAAA,CACH,CAAA,CACA/B,IAAC+F,CAAAA,CAAA,EAAuB,GAC1B,CAAA,CACF,CAEJ,CAEA,SAASC,EAAAA,CAAY,CACnB,SAAA,CAAAvG,EACA,GAAGI,CACL,CAAA,CAAuD,CACrD,OACEG,GAAAA,CAACuF,MAAAA,CAAgB,KAAA,CAAhB,CACC,YAAU,cAAA,CACV,SAAA,CAAWtF,EAAG,gCAAA,CAAkCR,CAAS,EACxD,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASoG,EAAAA,CAAW,CAClB,UAAAxG,CAAAA,CACA,QAAA,CAAAsC,EACA,GAAGlC,CACL,CAAA,CAAsD,CACpD,OACEoC,IAAAA,CAACsD,MAAAA,CAAgB,KAAhB,CACC,WAAA,CAAU,cACV,SAAA,CAAWtF,CAAAA,CACT,2VAAA,CACAR,CACF,EACC,GAAGI,CAAAA,CAEJ,QAAA,CAAA,CAAAG,GAAAA,CAAC,QAAK,SAAA,CAAU,8EAAA,CACd,QAAA,CAAAA,GAAAA,CAACuF,OAAgB,aAAA,CAAhB,CACC,SAAAvF,GAAAA,CAACmB,CAAAA,CAAA,CAAU,SAAA,CAAU,qBAAA,CAAsB,CAAA,CAC7C,CAAA,CACF,EACAnB,GAAAA,CAACuF,MAAAA,CAAgB,SAAhB,CAA0B,QAAA,CAAAxD,EAAS,CAAA,CAAA,CACtC,CAEJ,CAEA,SAASmE,GAAgB,CACvB,SAAA,CAAAzG,EACA,GAAGI,CACL,EAA2D,CACzD,OACEG,GAAAA,CAACuF,MAAAA,CAAgB,UAAhB,CACC,WAAA,CAAU,kBAAA,CACV,SAAA,CAAWtF,EAAG,qCAAA,CAAuCR,CAAS,CAAA,CAC7D,GAAGI,EACN,CAEJ,CAEA,SAASiG,CAAAA,CAAqB,CAC5B,UAAArG,CAAAA,CACA,GAAGI,CACL,CAAA,CAAgE,CAC9D,OACEG,GAAAA,CAACuF,OAAgB,cAAA,CAAhB,CACC,YAAU,yBAAA,CACV,SAAA,CAAWtF,CAAAA,CACT,gGAAA,CACAR,CACF,CAAA,CACC,GAAGI,EAEJ,QAAA,CAAAG,GAAAA,CAACmG,EAAA,EAAc,CAAA,CACjB,CAEJ,CAEA,SAASJ,CAAAA,CAAuB,CAC9B,SAAA,CAAAtG,CAAAA,CACA,GAAGI,CACL,CAAA,CAAkE,CAChE,OACEG,IAACuF,MAAAA,CAAgB,gBAAA,CAAhB,CACC,WAAA,CAAU,2BAAA,CACV,UAAWtF,CAAAA,CACT,gGAAA,CACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CAEJ,QAAA,CAAAG,GAAAA,CAACoG,CAAAA,CAAA,EAAgB,CAAA,CACnB,CAEJ,CCxLA,SAASC,GAAS,CAAE,SAAA,CAAA5G,EAAW,GAAGI,CAAM,CAAA,CAAgC,CACtE,OACEG,GAAAA,CAAC,KAAA,CAAA,CACC,WAAA,CAAU,UAAA,CACV,UAAWC,CAAAA,CAAG,0BAAA,CAA4BR,CAAS,CAAA,CAClD,GAAGI,CAAAA,CACN,CAEJ,CCNA,SAASyG,EAAAA,CAAM,CAAE,SAAA,CAAA7G,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAkC,CACrE,OACEG,GAAAA,CAAC,OAAA,CAAA,CACC,WAAA,CAAU,QACV,SAAA,CAAWC,CAAAA,CAAG,gDAAiDR,CAAS,CAAA,CACvE,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAAS0G,GAAY,CAAE,SAAA,CAAA9G,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAkC,CAC3E,OACEG,GAAAA,CAAC,SACC,WAAA,CAAU,cAAA,CACV,UAAWC,CAAAA,CAAG,iBAAA,CAAmBR,CAAS,CAAA,CACzC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAAS2G,EAAAA,CAAU,CAAE,SAAA,CAAA/G,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAkC,CACzE,OACEG,IAAC,OAAA,CAAA,CACC,WAAA,CAAU,aACV,SAAA,CAAWC,CAAAA,CAAG,6BAA8BR,CAAS,CAAA,CACpD,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAAS4G,EAAAA,CAAY,CAAE,UAAAhH,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAAkC,CAC3E,OACEG,GAAAA,CAAC,SACC,WAAA,CAAU,cAAA,CACV,UAAWC,CAAAA,CACT,6CAAA,CACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAAS6G,EAAAA,CAAS,CAAE,SAAA,CAAAjH,CAAAA,CAAW,GAAGI,CAAM,EAA+B,CACrE,OACEG,IAAC,IAAA,CAAA,CACC,WAAA,CAAU,YACV,SAAA,CAAWC,CAAAA,CACT,4BAAA,CACAR,CACF,EACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAAS8G,EAAAA,CAAU,CAAE,SAAA,CAAAlH,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAA+B,CACtE,OACEG,GAAAA,CAAC,MACC,WAAA,CAAU,YAAA,CACV,SAAA,CAAWC,CAAAA,CACT,+FACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAAS+G,EAAAA,CAAU,CAAE,UAAAnH,CAAAA,CAAW,GAAGI,CAAM,CAAA,CAA+B,CACtE,OACEG,GAAAA,CAAC,IAAA,CAAA,CACC,WAAA,CAAU,YAAA,CACV,UAAWC,CAAAA,CACT,kEAAA,CACAR,CACF,CAAA,CACC,GAAGI,CAAAA,CACN,CAEJ,CAEA,SAASgH,GAAa,CACpB,SAAA,CAAApH,EACA,GAAGI,CACL,EAAoC,CAClC,OACEG,GAAAA,CAAC,SAAA,CAAA,CACC,YAAU,eAAA,CACV,SAAA,CAAWC,EAAG,yBAAA,CAA2BR,CAAS,EACjD,GAAGI,CAAAA,CACN,CAEJ,CC1FA,SAASiH,EAAAA,CAAgB,CACvB,aAAA,CAAAC,CAAAA,CAAgB,EAChB,GAAGlH,CACL,CAAA,CAA2D,CACzD,OACEG,GAAAA,CAACgH,OAAAA,CAAiB,SAAjB,CACC,WAAA,CAAU,mBACV,aAAA,CAAeD,CAAAA,CACd,GAAGlH,CAAAA,CACN,CAEJ,CAEA,SAASoH,GAAQ,CACf,GAAGpH,CACL,CAAA,CAAuD,CACrD,OAAOG,GAAAA,CAACgH,QAAiB,IAAA,CAAjB,CAAsB,YAAU,SAAA,CAAW,GAAGnH,EAAO,CAC/D,CAEA,SAASqH,EAAAA,CAAe,CACtB,GAAGrH,CACL,CAAA,CAA0D,CACxD,OAAOG,GAAAA,CAACgH,OAAAA,CAAiB,OAAA,CAAjB,CAAyB,YAAU,iBAAA,CAAmB,GAAGnH,EAAO,CAC1E,CAEA,SAASsH,EAAAA,CAAe,CACtB,SAAA,CAAA1H,CAAAA,CACA,WAAAiC,CAAAA,CAAa,CAAA,CACb,SAAAK,CAAAA,CACA,GAAGlC,GACL,CAAA,CAA0D,CACxD,OACEG,GAAAA,CAACgH,QAAiB,MAAA,CAAjB,CACC,SAAA/E,IAAAA,CAAC+E,OAAAA,CAAiB,QAAjB,CACC,WAAA,CAAU,iBAAA,CACV,UAAA,CAAYtF,EACZ,SAAA,CAAWzB,CAAAA,CACT,qqBAAA,CACAR,CACF,EACC,GAAGI,GAAAA,CAEH,QAAA,CAAA,CAAAkC,CAAAA,CACD/B,IAACgH,OAAAA,CAAiB,KAAA,CAAjB,CAAuB,SAAA,CAAU,sEAAA,CAAuE,GAC3G,CAAA,CACF,CAEJ,CCsCO,IAAMI,GAAiC,CAC5C,MAAA,CAAA5H,EACA,WAAA,CAAAe,CAAAA,CACA,qBAAAE,CAAAA,CACA,eAAA,CAAAD,CAAAA,CACA,IAAA,CAAAE,GACA,UAAA,CAAAI,EAAAA,CACA,YAAAC,EAAAA,CACA,eAAA,CAAAF,GACA,UAAA,CAAAG,EAAAA,CACA,UAAA,CAAAL,EAAAA,CACA,UAAAC,EAAAA,CACA,QAAA,CAAAK,EAAAA,CACA,YAAA,CAAAG,GACA,wBAAA,CAAAU,EAAAA,CACA,mBAAA,CAAAN,EAAAA,CACA,kBAAAG,EAAAA,CACA,gBAAA,CAAAC,GACA,iBAAA,CAAAQ,EAAAA,CACA,mBAAAd,EAAAA,CACA,sBAAA,CAAAY,EAAAA,CACA,qBAAA,CAAAC,GACA,qBAAA,CAAAE,EAAAA,CACA,qBAAAC,EAAAA,CACA,eAAA,CAAAC,GACA,sBAAA,CAAAG,EAAAA,CACA,sBAAA,CAAAF,EAAAA,CACA,oBAAAjB,EAAAA,CACA,KAAA,CAAAoB,GACA,YAAA,CAAAM,EAAAA,CACA,iBAAAD,EAAAA,CACA,WAAA,CAAAJ,EAAAA,CACA,UAAA,CAAAE,GACA,UAAA,CAAAC,EAAAA,CACA,KAAA,CAAAU,CAAAA,CACA,WAAAN,CAAAA,CACA,eAAA,CAAAI,CAAAA,CACA,eAAA,CAAAH,EACA,cAAA,CAAAI,EAAAA,CACA,WAAAU,EAAAA,CACA,iBAAA,CAAAC,GACA,kBAAA,CAAAc,EAAAA,CACA,eAAA,CAAAL,EAAAA,CACA,eAAAR,EAAAA,CACA,cAAA,CAAAW,GACA,cAAA,CAAAV,CAAAA,CACA,eAAAS,EAAAA,CACA,kBAAA,CAAAN,EAAAA,CACA,UAAA,CAAAW,GACA,SAAA,CAAAE,CAAAA,CACA,OAAAC,EAAAA,CACA,aAAA,CAAAM,GACA,WAAA,CAAAJ,EAAAA,CACA,UAAA,CAAAS,EAAAA,CACA,YAAAD,EAAAA,CACA,sBAAA,CAAAD,CAAAA,CACA,oBAAA,CAAAD,EACA,eAAA,CAAAI,EAAAA,CACA,aAAA,CAAAR,EAAAA,CACA,YAAAD,EAAAA,CACA,SAAA,CAAAvF,EACA,QAAA,CAAAmG,EAAAA,CACA,MAAAC,EAAAA,CACA,SAAA,CAAAE,EAAAA,CACA,YAAA,CAAAK,GACA,SAAA,CAAAD,EAAAA,CACA,YAAAH,EAAAA,CACA,SAAA,CAAAE,GACA,WAAA,CAAAJ,EAAAA,CACA,QAAA,CAAAG,EAAAA,CACA,QAAAO,EAAAA,CACA,cAAA,CAAAE,GACA,eAAA,CAAAL,EAAAA,CACA,eAAAI,EACF","file":"chunk-VSIOOKCO.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:outline-none active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"\",\n outline: \"\",\n secondary: \"\",\n ghost: \"\",\n destructive: \"\",\n link: \"underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot.Root : \"button\";\n\n return (\n \n );\n}\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport { Separator };\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Separator } from \"./separator\";\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n },\n);\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps) {\n return (\n \n );\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot.Root : \"div\";\n\n return (\n \n );\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Card({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n return (\n img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n","import * as React from \"react\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\nimport { IconCheck } from \"../../core/icons\";\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n svg]:size-3.5\"\n >\n \n \n \n );\n}\n\nexport { Checkbox };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\nimport { IconCheck, IconChevronRight } from \"../../core/icons\";\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuContent({\n className,\n align = \"start\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n \n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n}) {\n return (\n \n \n \n \n \n \n {children}\n \n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n}) {\n return (\n \n \n \n \n \n \n {children}\n \n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n}) {\n return (\n \n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n \n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps & {\n inset?: boolean;\n}) {\n return (\n \n {children}\n \n \n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n","import { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"flex size-8 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps) {\n return (\n \n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n};\n","export const inputClassName =\n \"h-8 w-full min-w-0 rounded-lg border px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-70 focus-visible:outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 @min-[768px]/data-table:text-sm\";\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { inputClassName } from \"./input-base\";\n\ntype InputGroupAddonAlign =\n | \"inline-start\"\n | \"inline-end\"\n | \"block-start\"\n | \"block-end\";\n\nfunction InputGroup({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n [data-slot=input-group-addon][data-align=block-start]]:flex-col has-[>[data-slot=input-group-addon][data-align=block-end]]:flex-col has-[>[data-slot=input-group-control]:disabled]:cursor-not-allowed has-[>[data-slot=input-group-control]:disabled]:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst InputGroupInput = React.forwardRef<\n HTMLInputElement,\n React.ComponentProps<\"input\">\n>(function InputGroupInput({ className, ...props }, ref) {\n return (\n \n );\n});\n\ntype InputGroupAddonProps = React.ComponentProps<\"div\"> & {\n align?: InputGroupAddonAlign;\n};\n\nfunction InputGroupAddon({\n align = \"inline-start\",\n className,\n ...props\n}: InputGroupAddonProps) {\n return (\n \n );\n}\n\nfunction InputGroupText({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n \n );\n}\n\nInputGroupInput.displayName = \"InputGroupInput\";\n\nexport { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText };\n","import * as React from \"react\";\nimport { IconEye, IconEyeOff } from \"../../core/icons\";\n\nimport { Button } from \"./button\";\nimport { inputClassName } from \"./input-base\";\nimport { InputGroup, InputGroupAddon, InputGroupInput } from \"./input-group\";\nimport { cn } from \"../../lib/utils\";\n\ntype InputProps = React.ComponentProps<\"input\"> & {\n passwordToggle?: boolean;\n};\n\nconst Input = React.forwardRef(function Input(\n { className, passwordToggle = false, type, ...props },\n ref,\n) {\n const [showPassword, setShowPassword] = React.useState(false);\n const canTogglePassword = passwordToggle && type === \"password\";\n\n if (!canTogglePassword) {\n return (\n \n );\n }\n\n return (\n \n \n \n event.preventDefault()}\n onClick={() => setShowPassword((current) => !current)}\n >\n {showPassword ? (\n \n ) : (\n \n )}\n \n \n \n );\n});\n\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"./button\";\nimport {\n IconChevronsLeft,\n IconChevronsRight,\n IconChevronLeft,\n IconChevronRight,\n IconDots,\n} from \"../../core/icons\";\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n \n );\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n \n );\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return
  • ;\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n disabled?: boolean;\n variant?: React.ComponentProps[\"variant\"];\n} & Pick, \"size\"> &\n React.ComponentProps<\"a\">;\n\nfunction PaginationLink({\n className,\n isActive,\n disabled = false,\n variant,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n \n \n \n );\n}\n\nfunction PaginationPrevious({\n className,\n disabled,\n showText = true,\n size = \"default\",\n text = \"Previous\",\n ...props\n}: React.ComponentProps & {\n showText?: boolean;\n text?: string;\n}) {\n return (\n \n \n {showText ? (\n {text}\n ) : null}\n \n );\n}\n\nfunction PaginationFirst({\n className,\n disabled,\n showText = true,\n size = \"default\",\n text = \"First\",\n ...props\n}: React.ComponentProps & {\n showText?: boolean;\n text?: string;\n}) {\n return (\n \n \n {showText ? (\n {text}\n ) : null}\n \n );\n}\n\nfunction PaginationNext({\n className,\n disabled,\n showText = true,\n size = \"default\",\n text = \"Next\",\n ...props\n}: React.ComponentProps & {\n showText?: boolean;\n text?: string;\n}) {\n return (\n \n {showText ? (\n {text}\n ) : null}\n \n \n );\n}\n\nfunction PaginationLast({\n className,\n disabled,\n showText = true,\n size = \"default\",\n text = \"Last\",\n ...props\n}: React.ComponentProps & {\n showText?: boolean;\n text?: string;\n}) {\n return (\n \n {showText ? (\n {text}\n ) : null}\n \n \n );\n}\n\nfunction PaginationEllipsis({\n className,\n text = \"More pages\",\n ...props\n}: React.ComponentProps<\"span\"> & { text?: string }) {\n return (\n \n \n {text}\n \n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n};\n","import * as React from \"react\";\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n \n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n );\n}\n\nexport { ScrollArea, ScrollBar };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\nimport {\n IconSelector,\n IconCheck,\n IconChevronUp,\n IconChevronDown,\n} from \"../../core/icons\";\n\nfunction Select({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction SelectGroup({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n \n {children}\n \n \n \n \n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n {children}\n \n \n \n \n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {children}\n \n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n","import { cn } from \"../../lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nexport { Skeleton };\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n \n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n \n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n \n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n \n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n \n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n \n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n \n );\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps) {\n return ;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps) {\n return (\n \n \n {children}\n \n \n \n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n","import type { DataTableUiKit } from \"./ui-kit\";\nimport { Button } from \"../components/ui/button\";\nimport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n} from \"../components/ui/button-group\";\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"../components/ui/card\";\nimport { Checkbox } from \"../components/ui/checkbox\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../components/ui/dropdown-menu\";\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"../components/ui/empty\";\nimport { Input } from \"../components/ui/input\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n InputGroupText,\n} from \"../components/ui/input-group\";\nimport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"../components/ui/pagination\";\nimport { ScrollArea, ScrollBar } from \"../components/ui/scroll-area\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n} from \"../components/ui/select\";\nimport { Separator } from \"../components/ui/separator\";\nimport { Skeleton } from \"../components/ui/skeleton\";\nimport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../components/ui/table\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../components/ui/tooltip\";\n\nexport const primitiveUiKit: DataTableUiKit = {\n Button,\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n Checkbox,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n InputGroupText,\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n ScrollArea,\n ScrollBar,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n Separator,\n Skeleton,\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n};\n\nexport {\n Button,\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n Checkbox,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n Input,\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n InputGroupText,\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationFirst,\n PaginationItem,\n PaginationLast,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n ScrollArea,\n ScrollBar,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n Separator,\n Skeleton,\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n};\n"]} \ No newline at end of file diff --git a/dist/chunk-YPKN2W27.js b/dist/chunk-W7VNQT7O.js similarity index 86% rename from dist/chunk-YPKN2W27.js rename to dist/chunk-W7VNQT7O.js index 396cd8f..a9728aa 100644 --- a/dist/chunk-YPKN2W27.js +++ b/dist/chunk-W7VNQT7O.js @@ -1,2 +1,2 @@ -import {b,e}from'./chunk-THSY57Y7.js';import*as i from'react';import {useVirtualizer}from'@tanstack/react-virtual';import {jsx}from'react/jsx-runtime';function V(t){let{renderedRows:n,shouldRenderInitialLoading:T,tableScrollElement:s,viewportHeight:w=0,virtualization:d}=t,l=typeof d=="object"?d:void 0,c=!T&&(d===true||l?.enabled===true),a=c&&!!s&&w>0,f=i.useCallback(e=>n[e]?.id??e,[n]),o=useVirtualizer({count:c?n.length:0,enabled:a,estimateSize:()=>l?.estimateRowHeight??48,getItemKey:f,getScrollElement:()=>s??null,overscan:l?.overscan??8}),u=a?o.getVirtualItems():[],h=a?u.flatMap(e=>{let r=n[e.index];return r?[{row:r,rowIndex:e.index}]:[]}):n.slice(0,Math.max(1,Math.floor(l?.fallbackRowCount??20))).map((e,r)=>({row:e,rowIndex:r})),m=a?u[0]?.start??0:0,P=a?Math.max(0,o.getTotalSize()-(u.at(-1)?.end??m)):0,v=i.useCallback(e=>{!t.gridMode||!a||o.scrollToIndex(Math.max(0,e-t.topPinnedRows.length),{align:"auto"});},[t.gridMode,t.topPinnedRows.length,o,a]),M=i.useCallback(e=>{e&&o.measureElement(e);},[o]);return jsx(b,{measureRow:a?M:void 0,children:jsx(e,{...t,rowsToRender:h,virtualPaddingBottom:P,virtualPaddingTop:m,onGridActiveRowIndexChange:v})})}export{V as a};//# sourceMappingURL=chunk-YPKN2W27.js.map -//# sourceMappingURL=chunk-YPKN2W27.js.map \ No newline at end of file +import {b,e}from'./chunk-PRDXFLFB.js';import*as i from'react';import {useVirtualizer}from'@tanstack/react-virtual';import {jsx}from'react/jsx-runtime';function V(t){let{renderedRows:n,shouldRenderInitialLoading:T,tableScrollElement:s,viewportHeight:w=0,virtualization:d}=t,l=typeof d=="object"?d:void 0,c=!T&&(d===true||l?.enabled===true),a=c&&!!s&&w>0,f=i.useCallback(e=>n[e]?.id??e,[n]),o=useVirtualizer({count:c?n.length:0,enabled:a,estimateSize:()=>l?.estimateRowHeight??48,getItemKey:f,getScrollElement:()=>s??null,overscan:l?.overscan??8}),u=a?o.getVirtualItems():[],h=a?u.flatMap(e=>{let r=n[e.index];return r?[{row:r,rowIndex:e.index}]:[]}):n.slice(0,Math.max(1,Math.floor(l?.fallbackRowCount??20))).map((e,r)=>({row:e,rowIndex:r})),m=a?u[0]?.start??0:0,P=a?Math.max(0,o.getTotalSize()-(u.at(-1)?.end??m)):0,v=i.useCallback(e=>{!t.gridMode||!a||o.scrollToIndex(Math.max(0,e-t.topPinnedRows.length),{align:"auto"});},[t.gridMode,t.topPinnedRows.length,o,a]),M=i.useCallback(e=>{e&&o.measureElement(e);},[o]);return jsx(b,{measureRow:a?M:void 0,children:jsx(e,{...t,rowsToRender:h,virtualPaddingBottom:P,virtualPaddingTop:m,onGridActiveRowIndexChange:v})})}export{V as a};//# sourceMappingURL=chunk-W7VNQT7O.js.map +//# sourceMappingURL=chunk-W7VNQT7O.js.map \ No newline at end of file diff --git a/dist/chunk-YPKN2W27.js.map b/dist/chunk-W7VNQT7O.js.map similarity index 99% rename from dist/chunk-YPKN2W27.js.map rename to dist/chunk-W7VNQT7O.js.map index cad24e0..9483f4c 100644 --- a/dist/chunk-YPKN2W27.js.map +++ b/dist/chunk-W7VNQT7O.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/core/data-table/data-table-virtual-table-panel.tsx"],"names":["DataTableVirtualTablePanel","props","renderedRows","shouldRenderInitialLoading","tableScrollElement","viewportHeight","virtualization","virtualizationConfig","enableVirtualization","shouldUseVirtualRows","getItemKey","index","rowVirtualizer","useVirtualizer","virtualItems","rowsToRender","virtualItem","row","rowIndex","virtualPaddingTop","virtualPaddingBottom","handleGridActiveRowIndexChange","gridRowIndex","measureRow","element","jsx","DataTableVirtualRowMeasurementProvider","DataTableTablePanel"],"mappings":"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","file":"chunk-YPKN2W27.js","sourcesContent":["import * as React from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { DataTableTablePanel } from \"./data-table-table-panel\";\nimport type { DataTableTablePanelProps } from \"./data-table-table-panel\";\nimport { DataTableVirtualRowMeasurementProvider } from \"./data-table-virtual-row-measurement\";\n\nexport function DataTableVirtualTablePanel(\n props: DataTableTablePanelProps,\n) {\n const {\n renderedRows,\n shouldRenderInitialLoading,\n tableScrollElement,\n viewportHeight = 0,\n virtualization,\n } = props;\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization : undefined;\n const enableVirtualization =\n !shouldRenderInitialLoading &&\n (virtualization === true || virtualizationConfig?.enabled === true);\n const shouldUseVirtualRows =\n enableVirtualization && Boolean(tableScrollElement) && viewportHeight > 0;\n const getItemKey = React.useCallback(\n (index: number) => renderedRows[index]?.id ?? index,\n [renderedRows],\n );\n\n // eslint-disable-next-line react-hooks/incompatible-library -- TanStack Virtual owns its instance functions.\n const rowVirtualizer = useVirtualizer({\n count: enableVirtualization ? renderedRows.length : 0,\n enabled: shouldUseVirtualRows,\n estimateSize: () => virtualizationConfig?.estimateRowHeight ?? 48,\n getItemKey,\n getScrollElement: () => tableScrollElement ?? null,\n overscan: virtualizationConfig?.overscan ?? 8,\n });\n const virtualItems = shouldUseVirtualRows\n ? rowVirtualizer.getVirtualItems()\n : [];\n const rowsToRender = shouldUseVirtualRows\n ? virtualItems.flatMap((virtualItem) => {\n const row = renderedRows[virtualItem.index];\n return row ? [{ row, rowIndex: virtualItem.index }] : [];\n })\n : renderedRows\n .slice(\n 0,\n Math.max(\n 1,\n Math.floor(virtualizationConfig?.fallbackRowCount ?? 20),\n ),\n )\n .map((row, rowIndex) => ({ row, rowIndex }));\n const virtualPaddingTop = shouldUseVirtualRows\n ? (virtualItems[0]?.start ?? 0)\n : 0;\n const virtualPaddingBottom = shouldUseVirtualRows\n ? Math.max(\n 0,\n rowVirtualizer.getTotalSize() -\n (virtualItems.at(-1)?.end ?? virtualPaddingTop),\n )\n : 0;\n const handleGridActiveRowIndexChange = React.useCallback(\n (gridRowIndex: number) => {\n if (!props.gridMode || !shouldUseVirtualRows) return;\n rowVirtualizer.scrollToIndex(\n Math.max(0, gridRowIndex - props.topPinnedRows.length),\n { align: \"auto\" },\n );\n },\n [\n props.gridMode,\n props.topPinnedRows.length,\n rowVirtualizer,\n shouldUseVirtualRows,\n ],\n );\n const measureRow = React.useCallback>(\n (element) => {\n if (element) {\n rowVirtualizer.measureElement(element);\n }\n },\n [rowVirtualizer],\n );\n\n return (\n \n \n \n );\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/core/data-table/data-table-virtual-table-panel.tsx"],"names":["DataTableVirtualTablePanel","props","renderedRows","shouldRenderInitialLoading","tableScrollElement","viewportHeight","virtualization","virtualizationConfig","enableVirtualization","shouldUseVirtualRows","getItemKey","index","rowVirtualizer","useVirtualizer","virtualItems","rowsToRender","virtualItem","row","rowIndex","virtualPaddingTop","virtualPaddingBottom","handleGridActiveRowIndexChange","gridRowIndex","measureRow","element","jsx","DataTableVirtualRowMeasurementProvider","DataTableTablePanel"],"mappings":"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","file":"chunk-W7VNQT7O.js","sourcesContent":["import * as React from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { DataTableTablePanel } from \"./data-table-table-panel\";\nimport type { DataTableTablePanelProps } from \"./data-table-table-panel\";\nimport { DataTableVirtualRowMeasurementProvider } from \"./data-table-virtual-row-measurement\";\n\nexport function DataTableVirtualTablePanel(\n props: DataTableTablePanelProps,\n) {\n const {\n renderedRows,\n shouldRenderInitialLoading,\n tableScrollElement,\n viewportHeight = 0,\n virtualization,\n } = props;\n const virtualizationConfig =\n typeof virtualization === \"object\" ? virtualization : undefined;\n const enableVirtualization =\n !shouldRenderInitialLoading &&\n (virtualization === true || virtualizationConfig?.enabled === true);\n const shouldUseVirtualRows =\n enableVirtualization && Boolean(tableScrollElement) && viewportHeight > 0;\n const getItemKey = React.useCallback(\n (index: number) => renderedRows[index]?.id ?? index,\n [renderedRows],\n );\n\n // eslint-disable-next-line react-hooks/incompatible-library -- TanStack Virtual owns its instance functions.\n const rowVirtualizer = useVirtualizer({\n count: enableVirtualization ? renderedRows.length : 0,\n enabled: shouldUseVirtualRows,\n estimateSize: () => virtualizationConfig?.estimateRowHeight ?? 48,\n getItemKey,\n getScrollElement: () => tableScrollElement ?? null,\n overscan: virtualizationConfig?.overscan ?? 8,\n });\n const virtualItems = shouldUseVirtualRows\n ? rowVirtualizer.getVirtualItems()\n : [];\n const rowsToRender = shouldUseVirtualRows\n ? virtualItems.flatMap((virtualItem) => {\n const row = renderedRows[virtualItem.index];\n return row ? [{ row, rowIndex: virtualItem.index }] : [];\n })\n : renderedRows\n .slice(\n 0,\n Math.max(\n 1,\n Math.floor(virtualizationConfig?.fallbackRowCount ?? 20),\n ),\n )\n .map((row, rowIndex) => ({ row, rowIndex }));\n const virtualPaddingTop = shouldUseVirtualRows\n ? (virtualItems[0]?.start ?? 0)\n : 0;\n const virtualPaddingBottom = shouldUseVirtualRows\n ? Math.max(\n 0,\n rowVirtualizer.getTotalSize() -\n (virtualItems.at(-1)?.end ?? virtualPaddingTop),\n )\n : 0;\n const handleGridActiveRowIndexChange = React.useCallback(\n (gridRowIndex: number) => {\n if (!props.gridMode || !shouldUseVirtualRows) return;\n rowVirtualizer.scrollToIndex(\n Math.max(0, gridRowIndex - props.topPinnedRows.length),\n { align: \"auto\" },\n );\n },\n [\n props.gridMode,\n props.topPinnedRows.length,\n rowVirtualizer,\n shouldUseVirtualRows,\n ],\n );\n const measureRow = React.useCallback>(\n (element) => {\n if (element) {\n rowVirtualizer.measureElement(element);\n }\n },\n [rowVirtualizer],\n );\n\n return (\n \n \n \n );\n}\n"]} \ No newline at end of file diff --git a/dist/data-table-clipboard-7IVWTPU3.js b/dist/data-table-clipboard-7IVWTPU3.js new file mode 100644 index 0000000..c7bb300 --- /dev/null +++ b/dist/data-table-clipboard-7IVWTPU3.js @@ -0,0 +1,6 @@ +import {x,q,C,m}from'./chunk-F2RBZWQV.js';import'./chunk-XTVBESM5.js';async function I({clipboard:i,cellSelection:c,table:t}){if(i===false)return;let e=i===true?{}:i,n=e.scope??"page",r=e.columns?new Set(e.columns):void 0,l=t.getVisibleLeafColumns(),s=l.filter(o=>!x(o.id)&&o.id!=="__spacer__"&&(!r||r.has(o.id))),a=n==="cellSelection"?y(t,l,c):void 0,m=a?.columns??s,C$1=n==="cellSelection"?a?.rows??[]:q(t,n),d=[];(e.includeHeaders??n!=="cellSelection")&&d.push(m.map(o=>typeof o.columnDef.header=="string"?o.columnDef.header:C(o.id)));for(let o of C$1)d.push(m.map(u=>{let b=o.getValue(u.id);return e.getCellValue?e.getCellValue({columnId:u.id,row:o.original,rowId:o.id,value:b}):b}));let T=e.delimiter??" ",f=d.map(o=>o.map(u=>D(u,T,e.escapeFormulaValues??true)).join(T)).join(` +`);return e.onCopy?await e.onCopy({rows:C$1.map(o=>o.original),scope:n,text:f}):typeof navigator<"u"&&typeof navigator.clipboard?.writeText=="function"&&await navigator.clipboard.writeText(f),f}function y(i,c,t){if(!t)return;let e=i.getRowModel().flatRows,n=e.findIndex(a=>a.id===t.anchor.rowId),r=e.findIndex(a=>a.id===t.focus.rowId),l=c.findIndex(a=>a.id===t.anchor.columnId),s=c.findIndex(a=>a.id===t.focus.columnId);if(!(n<0||r<0||l<0||s<0))return {rows:e.slice(Math.min(n,r),Math.max(n,r)+1),columns:c.slice(Math.min(l,s),Math.max(l,s)+1).filter(a=>!x(a.id)&&a.id!=="__spacer__")}}function S(i,c=" "){let t=[],e=[],n="",r=false;for(let l=0;l1||e[0]||t.length===0)&&t.push(e),t}function D(i,c,t){let e=m(i);return t&&typeof i=="string"&&/^[\t\r ]*[=+\-@]/.test(i)&&(e=`'${e}`),e.includes(c)||e.includes('"')||e.includes(` +`)||e.includes("\r")?`"${e.replace(/"/g,'""')}"`:e}export{I as copyDataTableToClipboard,S as parseDataTableClipboardText};//# sourceMappingURL=data-table-clipboard-7IVWTPU3.js.map +//# sourceMappingURL=data-table-clipboard-7IVWTPU3.js.map \ No newline at end of file diff --git a/dist/data-table-clipboard-SFXQFZS3.js.map b/dist/data-table-clipboard-7IVWTPU3.js.map similarity index 97% rename from dist/data-table-clipboard-SFXQFZS3.js.map rename to dist/data-table-clipboard-7IVWTPU3.js.map index 3c325e1..33d2805 100644 --- a/dist/data-table-clipboard-SFXQFZS3.js.map +++ b/dist/data-table-clipboard-7IVWTPU3.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/core/data-table/data-table-clipboard.ts"],"names":["copyDataTableToClipboard","clipboard","cellSelection","table","options","scope","requestedColumnIds","allVisibleColumns","visibleColumns","column","isUtilityColumnId","selectedRange","getDataTableCellSelectionRange","columns","rows","getDataTableExportRows","values","startCase","row","value","delimiter","text","escapeDelimitedCell","selection","anchorRow","focusRow","anchorColumn","focusColumn","parseDataTableClipboardText","quoted","index","character","nextCharacter","escapeFormulaValues","normalizeFilterValue"],"mappings":"sEAYA,eAAsBA,EAAgC,CACpD,SAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,EACA,KAAA,CAAAC,CACF,CAAA,CAIG,CACD,GAAIF,CAAAA,GAAc,KAAA,CAAO,OAEzB,IAAMG,CAAAA,CACJH,IAAc,IAAA,CAAO,EAAC,CAAIA,CAAAA,CACtBI,EAAQD,CAAAA,CAAQ,KAAA,EAAS,OACzBE,CAAAA,CAAqBF,CAAAA,CAAQ,QAC/B,IAAI,GAAA,CAAIA,CAAAA,CAAQ,OAAO,EACvB,MAAA,CACEG,CAAAA,CAAoBJ,EAAM,qBAAA,EAAsB,CAChDK,EAAiBD,CAAAA,CAAkB,MAAA,CACtCE,CAAAA,EACC,CAACC,EAAkBD,CAAAA,CAAO,EAAE,GAC5BA,CAAAA,CAAO,EAAA,GAAO,eACb,CAACH,CAAAA,EAAsBA,CAAAA,CAAmB,GAAA,CAAIG,EAAO,EAAE,CAAA,CAC5D,EACME,CAAAA,CACJN,CAAAA,GAAU,gBACNO,CAAAA,CAA+BT,CAAAA,CAAOI,CAAAA,CAAmBL,CAAa,EACtE,MAAA,CACAW,CAAAA,CAAUF,GAAe,OAAA,EAAWH,CAAAA,CACpCM,EACJT,CAAAA,GAAU,eAAA,CACLM,CAAAA,EAAe,IAAA,EAAQ,EAAC,CACzBI,CAAAA,CAAuBZ,EAAOE,CAAK,CAAA,CACnCW,EAAgC,EAAC,CAAA,CAEnCZ,CAAAA,CAAQ,cAAA,EAAkBC,IAAU,eAAA,GACtCW,CAAAA,CAAO,KACLH,CAAAA,CAAQ,GAAA,CAAKJ,GACX,OAAOA,CAAAA,CAAO,SAAA,CAAU,MAAA,EAAW,SAC/BA,CAAAA,CAAO,SAAA,CAAU,OACjBQ,CAAAA,CAAUR,CAAAA,CAAO,EAAE,CACzB,CACF,CAAA,CAGF,IAAA,IAAWS,KAAOJ,CAAAA,CAChBE,CAAAA,CAAO,KACLH,CAAAA,CAAQ,GAAA,CAAKJ,GAAW,CACtB,IAAMU,CAAAA,CAAQD,CAAAA,CAAI,SAAST,CAAAA,CAAO,EAAE,EACpC,OAAOL,CAAAA,CAAQ,aACXA,CAAAA,CAAQ,YAAA,CAAa,CACnB,QAAA,CAAUK,EAAO,EAAA,CACjB,GAAA,CAAKS,EAAI,QAAA,CACT,KAAA,CAAOA,EAAI,EAAA,CACX,KAAA,CAAAC,CACF,CAAC,EACDA,CACN,CAAC,CACH,CAAA,CAGF,IAAMC,EAAYhB,CAAAA,CAAQ,SAAA,EAAa,GAAA,CACjCiB,CAAAA,CAAOL,EACV,GAAA,CAAKE,CAAAA,EACJA,EACG,GAAA,CAAKC,CAAAA,EACJG,EACEH,CAAAA,CACAC,CAAAA,CACAhB,CAAAA,CAAQ,mBAAA,EAAuB,IACjC,CACF,CAAA,CACC,KAAKgB,CAAS,CACnB,EACC,IAAA,CAAK;AAAA,CAAI,CAAA,CAEZ,OAAIhB,CAAAA,CAAQ,MAAA,CACV,MAAMA,CAAAA,CAAQ,MAAA,CAAO,CACnB,IAAA,CAAMU,CAAAA,CAAK,GAAA,CAAKI,GAAQA,CAAAA,CAAI,QAAQ,CAAA,CACpC,KAAA,CAAAb,CAAAA,CACA,IAAA,CAAAgB,CACF,CAAC,CAAA,CAED,OAAO,SAAA,CAAc,GAAA,EACrB,OAAO,UAAU,SAAA,EAAW,SAAA,EAAc,UAAA,EAE1C,MAAM,SAAA,CAAU,SAAA,CAAU,UAAUA,CAAI,CAAA,CAGnCA,CACT,CAEA,SAAST,CAAAA,CACPT,EACAU,CAAAA,CACAU,CAAAA,CACA,CACA,GAAI,CAACA,CAAAA,CAAW,OAChB,IAAMT,CAAAA,CAAOX,CAAAA,CAAM,WAAA,EAAY,CAAE,QAAA,CAC3BqB,EAAYV,CAAAA,CAAK,SAAA,CAAWI,GAAQA,CAAAA,CAAI,EAAA,GAAOK,EAAU,MAAA,CAAO,KAAK,CAAA,CACrEE,CAAAA,CAAWX,CAAAA,CAAK,SAAA,CAAWI,GAAQA,CAAAA,CAAI,EAAA,GAAOK,CAAAA,CAAU,KAAA,CAAM,KAAK,CAAA,CACnEG,EAAeb,CAAAA,CAAQ,SAAA,CAC1BJ,CAAAA,EAAWA,CAAAA,CAAO,EAAA,GAAOc,CAAAA,CAAU,OAAO,QAC7C,CAAA,CACMI,CAAAA,CAAcd,CAAAA,CAAQ,SAAA,CACzBJ,CAAAA,EAAWA,EAAO,EAAA,GAAOc,CAAAA,CAAU,KAAA,CAAM,QAC5C,CAAA,CACA,GAAI,EAAAC,CAAAA,CAAY,CAAA,EAAKC,CAAAA,CAAW,CAAA,EAAKC,CAAAA,CAAe,CAAA,EAAKC,EAAc,CAAA,CAAA,CAGvE,OAAO,CACL,IAAA,CAAMb,CAAAA,CAAK,KAAA,CACT,KAAK,GAAA,CAAIU,CAAAA,CAAWC,CAAQ,CAAA,CAC5B,IAAA,CAAK,IAAID,CAAAA,CAAWC,CAAQ,CAAA,CAAI,CAClC,CAAA,CACA,OAAA,CAASZ,EACN,KAAA,CACC,IAAA,CAAK,GAAA,CAAIa,CAAAA,CAAcC,CAAW,CAAA,CAClC,KAAK,GAAA,CAAID,CAAAA,CAAcC,CAAW,CAAA,CAAI,CACxC,CAAA,CACC,OACElB,CAAAA,EACC,CAACC,CAAAA,CAAkBD,CAAAA,CAAO,EAAE,CAAA,EAAKA,EAAO,EAAA,GAAO,YACnD,CACJ,CACF,CAEO,SAASmB,EACdP,CAAAA,CACAD,CAAAA,CAAwB,GAAA,CACxB,CACA,IAAMN,CAAAA,CAA6B,EAAC,CAChCI,CAAAA,CAAqB,EAAC,CACtBC,CAAAA,CAAQ,EAAA,CACRU,EAAS,KAAA,CAEb,IAAA,IAASC,CAAAA,CAAQ,CAAA,CAAGA,CAAAA,CAAQT,CAAAA,CAAK,OAAQS,CAAAA,EAAS,CAAA,CAAG,CACnD,IAAMC,CAAAA,CAAYV,CAAAA,CAAKS,CAAK,CAAA,CACtBE,CAAAA,CAAgBX,CAAAA,CAAKS,CAAAA,CAAQ,CAAC,CAAA,CACpC,GAAIC,CAAAA,GAAc,GAAA,CAAK,CACjBF,CAAAA,EAAUG,CAAAA,GAAkB,GAAA,EAC9Bb,GAAS,GAAA,CACTW,CAAAA,EAAS,CAAA,EAETD,CAAAA,CAAS,CAACA,CAAAA,CAEZ,QACF,CACA,GAAI,CAACA,CAAAA,EAAUE,CAAAA,GAAcX,CAAAA,CAAW,CACtCF,CAAAA,CAAI,IAAA,CAAKC,CAAK,CAAA,CACdA,CAAAA,CAAQ,EAAA,CACR,QACF,CACA,GAAI,CAACU,CAAAA,GAAWE,CAAAA,GAAc;AAAA,CAAA,EAAQA,CAAAA,GAAc,IAAA,CAAA,CAAO,CACrDA,CAAAA,GAAc,MAAQC,CAAAA,GAAkB;AAAA,CAAA,GAAMF,CAAAA,EAAS,CAAA,CAAA,CAC3DZ,CAAAA,CAAI,IAAA,CAAKC,CAAK,CAAA,CACdL,CAAAA,CAAK,IAAA,CAAKI,CAAG,EACbA,CAAAA,CAAM,EAAC,CACPC,CAAAA,CAAQ,GACR,QACF,CACAA,CAAAA,EAASY,EACX,CAEA,OAAAb,CAAAA,CAAI,IAAA,CAAKC,CAAK,CAAA,CAAA,CACVD,CAAAA,CAAI,MAAA,CAAS,CAAA,EAAKA,EAAI,CAAC,CAAA,EAAKJ,CAAAA,CAAK,MAAA,GAAW,IAAGA,CAAAA,CAAK,IAAA,CAAKI,CAAG,CAAA,CACzDJ,CACT,CAEA,SAASQ,CAAAA,CACPH,EACAC,CAAAA,CACAa,CAAAA,CACA,CACA,IAAIZ,EAAOa,CAAAA,CAAqBf,CAAK,CAAA,CAQrC,OANEc,GACA,OAAOd,CAAAA,EAAU,QAAA,EACjB,kBAAA,CAAmB,KAAKA,CAAK,CAAA,GAE7BE,CAAAA,CAAO,CAAA,CAAA,EAAIA,CAAI,CAAA,CAAA,CAAA,CAGfA,CAAAA,CAAK,QAAA,CAASD,CAAS,GACvBC,CAAAA,CAAK,QAAA,CAAS,GAAG,CAAA,EACjBA,EAAK,QAAA,CAAS;AAAA,CAAI,CAAA,EAClBA,CAAAA,CAAK,QAAA,CAAS,IAAI,CAAA,CAEX,CAAA,CAAA,EAAIA,CAAAA,CAAK,OAAA,CAAQ,IAAA,CAAM,IAAI,CAAC,CAAA,CAAA,CAAA,CAE9BA,CACT","file":"data-table-clipboard-SFXQFZS3.js","sourcesContent":["import type { Column, Table as TanStackTable } from \"@tanstack/react-table\";\nimport type {\n DataTableCellSelection,\n DataTableClipboardCopyOptions,\n} from \"../types\";\nimport {\n getDataTableExportRows,\n isUtilityColumnId,\n normalizeFilterValue,\n startCase,\n} from \"./data-table-utils\";\n\nexport async function copyDataTableToClipboard({\n clipboard,\n cellSelection,\n table,\n}: {\n clipboard: boolean | DataTableClipboardCopyOptions;\n cellSelection?: DataTableCellSelection | null;\n table: TanStackTable;\n}) {\n if (clipboard === false) return undefined;\n\n const options: DataTableClipboardCopyOptions =\n clipboard === true ? {} : clipboard;\n const scope = options.scope ?? \"page\";\n const requestedColumnIds = options.columns\n ? new Set(options.columns)\n : undefined;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const visibleColumns = allVisibleColumns.filter(\n (column) =>\n !isUtilityColumnId(column.id) &&\n column.id !== \"__spacer__\" &&\n (!requestedColumnIds || requestedColumnIds.has(column.id)),\n );\n const selectedRange =\n scope === \"cellSelection\"\n ? getDataTableCellSelectionRange(table, allVisibleColumns, cellSelection)\n : undefined;\n const columns = selectedRange?.columns ?? visibleColumns;\n const rows =\n scope === \"cellSelection\"\n ? (selectedRange?.rows ?? [])\n : getDataTableExportRows(table, scope);\n const values: Array> = [];\n\n if (options.includeHeaders ?? scope !== \"cellSelection\") {\n values.push(\n columns.map((column) =>\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : startCase(column.id),\n ),\n );\n }\n\n for (const row of rows) {\n values.push(\n columns.map((column) => {\n const value = row.getValue(column.id);\n return options.getCellValue\n ? options.getCellValue({\n columnId: column.id,\n row: row.original,\n rowId: row.id,\n value,\n })\n : value;\n }),\n );\n }\n\n const delimiter = options.delimiter ?? \"\\t\";\n const text = values\n .map((row) =>\n row\n .map((value) =>\n escapeDelimitedCell(\n value,\n delimiter,\n options.escapeFormulaValues ?? true,\n ),\n )\n .join(delimiter),\n )\n .join(\"\\n\");\n\n if (options.onCopy) {\n await options.onCopy({\n rows: rows.map((row) => row.original),\n scope,\n text,\n });\n } else if (\n typeof navigator !== \"undefined\" &&\n typeof navigator.clipboard?.writeText === \"function\"\n ) {\n await navigator.clipboard.writeText(text);\n }\n\n return text;\n}\n\nfunction getDataTableCellSelectionRange(\n table: TanStackTable,\n columns: Array>,\n selection: DataTableCellSelection | null | undefined,\n) {\n if (!selection) return undefined;\n const rows = table.getRowModel().flatRows;\n const anchorRow = rows.findIndex((row) => row.id === selection.anchor.rowId);\n const focusRow = rows.findIndex((row) => row.id === selection.focus.rowId);\n const anchorColumn = columns.findIndex(\n (column) => column.id === selection.anchor.columnId,\n );\n const focusColumn = columns.findIndex(\n (column) => column.id === selection.focus.columnId,\n );\n if (anchorRow < 0 || focusRow < 0 || anchorColumn < 0 || focusColumn < 0) {\n return undefined;\n }\n return {\n rows: rows.slice(\n Math.min(anchorRow, focusRow),\n Math.max(anchorRow, focusRow) + 1,\n ),\n columns: columns\n .slice(\n Math.min(anchorColumn, focusColumn),\n Math.max(anchorColumn, focusColumn) + 1,\n )\n .filter(\n (column) =>\n !isUtilityColumnId(column.id) && column.id !== \"__spacer__\",\n ),\n };\n}\n\nexport function parseDataTableClipboardText(\n text: string,\n delimiter: \"\\t\" | \",\" = \"\\t\",\n) {\n const rows: Array> = [];\n let row: Array = [];\n let value = \"\";\n let quoted = false;\n\n for (let index = 0; index < text.length; index += 1) {\n const character = text[index];\n const nextCharacter = text[index + 1];\n if (character === '\"') {\n if (quoted && nextCharacter === '\"') {\n value += '\"';\n index += 1;\n } else {\n quoted = !quoted;\n }\n continue;\n }\n if (!quoted && character === delimiter) {\n row.push(value);\n value = \"\";\n continue;\n }\n if (!quoted && (character === \"\\n\" || character === \"\\r\")) {\n if (character === \"\\r\" && nextCharacter === \"\\n\") index += 1;\n row.push(value);\n rows.push(row);\n row = [];\n value = \"\";\n continue;\n }\n value += character;\n }\n\n row.push(value);\n if (row.length > 1 || row[0] || rows.length === 0) rows.push(row);\n return rows;\n}\n\nfunction escapeDelimitedCell(\n value: unknown,\n delimiter: string,\n escapeFormulaValues: boolean,\n) {\n let text = normalizeFilterValue(value);\n if (\n escapeFormulaValues &&\n typeof value === \"string\" &&\n /^[\\t\\r ]*[=+\\-@]/.test(value)\n ) {\n text = `'${text}`;\n }\n if (\n text.includes(delimiter) ||\n text.includes('\"') ||\n text.includes(\"\\n\") ||\n text.includes(\"\\r\")\n ) {\n return `\"${text.replace(/\"/g, '\"\"')}\"`;\n }\n return text;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/core/data-table/data-table-clipboard.ts"],"names":["copyDataTableToClipboard","clipboard","cellSelection","table","options","scope","requestedColumnIds","allVisibleColumns","visibleColumns","column","isUtilityColumnId","selectedRange","getDataTableCellSelectionRange","columns","rows","getDataTableExportRows","values","startCase","row","value","delimiter","text","escapeDelimitedCell","selection","anchorRow","focusRow","anchorColumn","focusColumn","parseDataTableClipboardText","quoted","index","character","nextCharacter","escapeFormulaValues","normalizeFilterValue"],"mappings":"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","file":"data-table-clipboard-7IVWTPU3.js","sourcesContent":["import type { Column, Table as TanStackTable } from \"@tanstack/react-table\";\nimport type {\n DataTableCellSelection,\n DataTableClipboardCopyOptions,\n} from \"../types\";\nimport {\n getDataTableExportRows,\n isUtilityColumnId,\n normalizeFilterValue,\n startCase,\n} from \"./data-table-utils\";\n\nexport async function copyDataTableToClipboard({\n clipboard,\n cellSelection,\n table,\n}: {\n clipboard: boolean | DataTableClipboardCopyOptions;\n cellSelection?: DataTableCellSelection | null;\n table: TanStackTable;\n}) {\n if (clipboard === false) return undefined;\n\n const options: DataTableClipboardCopyOptions =\n clipboard === true ? {} : clipboard;\n const scope = options.scope ?? \"page\";\n const requestedColumnIds = options.columns\n ? new Set(options.columns)\n : undefined;\n const allVisibleColumns = table.getVisibleLeafColumns();\n const visibleColumns = allVisibleColumns.filter(\n (column) =>\n !isUtilityColumnId(column.id) &&\n column.id !== \"__spacer__\" &&\n (!requestedColumnIds || requestedColumnIds.has(column.id)),\n );\n const selectedRange =\n scope === \"cellSelection\"\n ? getDataTableCellSelectionRange(table, allVisibleColumns, cellSelection)\n : undefined;\n const columns = selectedRange?.columns ?? visibleColumns;\n const rows =\n scope === \"cellSelection\"\n ? (selectedRange?.rows ?? [])\n : getDataTableExportRows(table, scope);\n const values: Array> = [];\n\n if (options.includeHeaders ?? scope !== \"cellSelection\") {\n values.push(\n columns.map((column) =>\n typeof column.columnDef.header === \"string\"\n ? column.columnDef.header\n : startCase(column.id),\n ),\n );\n }\n\n for (const row of rows) {\n values.push(\n columns.map((column) => {\n const value = row.getValue(column.id);\n return options.getCellValue\n ? options.getCellValue({\n columnId: column.id,\n row: row.original,\n rowId: row.id,\n value,\n })\n : value;\n }),\n );\n }\n\n const delimiter = options.delimiter ?? \"\\t\";\n const text = values\n .map((row) =>\n row\n .map((value) =>\n escapeDelimitedCell(\n value,\n delimiter,\n options.escapeFormulaValues ?? true,\n ),\n )\n .join(delimiter),\n )\n .join(\"\\n\");\n\n if (options.onCopy) {\n await options.onCopy({\n rows: rows.map((row) => row.original),\n scope,\n text,\n });\n } else if (\n typeof navigator !== \"undefined\" &&\n typeof navigator.clipboard?.writeText === \"function\"\n ) {\n await navigator.clipboard.writeText(text);\n }\n\n return text;\n}\n\nfunction getDataTableCellSelectionRange(\n table: TanStackTable,\n columns: Array>,\n selection: DataTableCellSelection | null | undefined,\n) {\n if (!selection) return undefined;\n const rows = table.getRowModel().flatRows;\n const anchorRow = rows.findIndex((row) => row.id === selection.anchor.rowId);\n const focusRow = rows.findIndex((row) => row.id === selection.focus.rowId);\n const anchorColumn = columns.findIndex(\n (column) => column.id === selection.anchor.columnId,\n );\n const focusColumn = columns.findIndex(\n (column) => column.id === selection.focus.columnId,\n );\n if (anchorRow < 0 || focusRow < 0 || anchorColumn < 0 || focusColumn < 0) {\n return undefined;\n }\n return {\n rows: rows.slice(\n Math.min(anchorRow, focusRow),\n Math.max(anchorRow, focusRow) + 1,\n ),\n columns: columns\n .slice(\n Math.min(anchorColumn, focusColumn),\n Math.max(anchorColumn, focusColumn) + 1,\n )\n .filter(\n (column) =>\n !isUtilityColumnId(column.id) && column.id !== \"__spacer__\",\n ),\n };\n}\n\nexport function parseDataTableClipboardText(\n text: string,\n delimiter: \"\\t\" | \",\" = \"\\t\",\n) {\n const rows: Array> = [];\n let row: Array = [];\n let value = \"\";\n let quoted = false;\n\n for (let index = 0; index < text.length; index += 1) {\n const character = text[index];\n const nextCharacter = text[index + 1];\n if (character === '\"') {\n if (quoted && nextCharacter === '\"') {\n value += '\"';\n index += 1;\n } else {\n quoted = !quoted;\n }\n continue;\n }\n if (!quoted && character === delimiter) {\n row.push(value);\n value = \"\";\n continue;\n }\n if (!quoted && (character === \"\\n\" || character === \"\\r\")) {\n if (character === \"\\r\" && nextCharacter === \"\\n\") index += 1;\n row.push(value);\n rows.push(row);\n row = [];\n value = \"\";\n continue;\n }\n value += character;\n }\n\n row.push(value);\n if (row.length > 1 || row[0] || rows.length === 0) rows.push(row);\n return rows;\n}\n\nfunction escapeDelimitedCell(\n value: unknown,\n delimiter: string,\n escapeFormulaValues: boolean,\n) {\n let text = normalizeFilterValue(value);\n if (\n escapeFormulaValues &&\n typeof value === \"string\" &&\n /^[\\t\\r ]*[=+\\-@]/.test(value)\n ) {\n text = `'${text}`;\n }\n if (\n text.includes(delimiter) ||\n text.includes('\"') ||\n text.includes(\"\\n\") ||\n text.includes(\"\\r\")\n ) {\n return `\"${text.replace(/\"/g, '\"\"')}\"`;\n }\n return text;\n}\n"]} \ No newline at end of file diff --git a/dist/data-table-clipboard-SFXQFZS3.js b/dist/data-table-clipboard-SFXQFZS3.js deleted file mode 100644 index 44256d4..0000000 --- a/dist/data-table-clipboard-SFXQFZS3.js +++ /dev/null @@ -1,6 +0,0 @@ -import {w,p,B,l}from'./chunk-4P45F2OY.js';import'./chunk-XTVBESM5.js';async function I({clipboard:i,cellSelection:c,table:t}){if(i===false)return;let e=i===true?{}:i,n=e.scope??"page",r=e.columns?new Set(e.columns):void 0,l=t.getVisibleLeafColumns(),s=l.filter(o=>!w(o.id)&&o.id!=="__spacer__"&&(!r||r.has(o.id))),a=n==="cellSelection"?y(t,l,c):void 0,m=a?.columns??s,C=n==="cellSelection"?a?.rows??[]:p(t,n),d=[];(e.includeHeaders??n!=="cellSelection")&&d.push(m.map(o=>typeof o.columnDef.header=="string"?o.columnDef.header:B(o.id)));for(let o of C)d.push(m.map(u=>{let b=o.getValue(u.id);return e.getCellValue?e.getCellValue({columnId:u.id,row:o.original,rowId:o.id,value:b}):b}));let T=e.delimiter??" ",f=d.map(o=>o.map(u=>D(u,T,e.escapeFormulaValues??true)).join(T)).join(` -`);return e.onCopy?await e.onCopy({rows:C.map(o=>o.original),scope:n,text:f}):typeof navigator<"u"&&typeof navigator.clipboard?.writeText=="function"&&await navigator.clipboard.writeText(f),f}function y(i,c,t){if(!t)return;let e=i.getRowModel().flatRows,n=e.findIndex(a=>a.id===t.anchor.rowId),r=e.findIndex(a=>a.id===t.focus.rowId),l=c.findIndex(a=>a.id===t.anchor.columnId),s=c.findIndex(a=>a.id===t.focus.columnId);if(!(n<0||r<0||l<0||s<0))return {rows:e.slice(Math.min(n,r),Math.max(n,r)+1),columns:c.slice(Math.min(l,s),Math.max(l,s)+1).filter(a=>!w(a.id)&&a.id!=="__spacer__")}}function S(i,c=" "){let t=[],e=[],n="",r=false;for(let l=0;l1||e[0]||t.length===0)&&t.push(e),t}function D(i,c,t){let e=l(i);return t&&typeof i=="string"&&/^[\t\r ]*[=+\-@]/.test(i)&&(e=`'${e}`),e.includes(c)||e.includes('"')||e.includes(` -`)||e.includes("\r")?`"${e.replace(/"/g,'""')}"`:e}export{I as copyDataTableToClipboard,S as parseDataTableClipboardText};//# sourceMappingURL=data-table-clipboard-SFXQFZS3.js.map -//# sourceMappingURL=data-table-clipboard-SFXQFZS3.js.map \ No newline at end of file diff --git a/dist/data-table-virtual-card-panel-3PHPB23A.js b/dist/data-table-virtual-card-panel-3PHPB23A.js new file mode 100644 index 0000000..1405201 --- /dev/null +++ b/dist/data-table-virtual-card-panel-3PHPB23A.js @@ -0,0 +1,2 @@ +export{a as DataTableVirtualCardPanel}from'./chunk-B6JTUAWE.js';import'./chunk-EJHT5JBZ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=data-table-virtual-card-panel-3PHPB23A.js.map +//# sourceMappingURL=data-table-virtual-card-panel-3PHPB23A.js.map \ No newline at end of file diff --git a/dist/data-table-virtual-card-panel-KF2P5D3K.js.map b/dist/data-table-virtual-card-panel-3PHPB23A.js.map similarity index 62% rename from dist/data-table-virtual-card-panel-KF2P5D3K.js.map rename to dist/data-table-virtual-card-panel-3PHPB23A.js.map index 18592d4..485290e 100644 --- a/dist/data-table-virtual-card-panel-KF2P5D3K.js.map +++ b/dist/data-table-virtual-card-panel-3PHPB23A.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"data-table-virtual-card-panel-KF2P5D3K.js"} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"data-table-virtual-card-panel-3PHPB23A.js"} \ No newline at end of file diff --git a/dist/data-table-virtual-card-panel-KF2P5D3K.js b/dist/data-table-virtual-card-panel-KF2P5D3K.js deleted file mode 100644 index d243d6e..0000000 --- a/dist/data-table-virtual-card-panel-KF2P5D3K.js +++ /dev/null @@ -1,2 +0,0 @@ -export{a as DataTableVirtualCardPanel}from'./chunk-K7SNDVV2.js';import'./chunk-EJHT5JBZ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=data-table-virtual-card-panel-KF2P5D3K.js.map -//# sourceMappingURL=data-table-virtual-card-panel-KF2P5D3K.js.map \ No newline at end of file diff --git a/dist/data-table-virtual-table-panel-GCAMBHTG.js b/dist/data-table-virtual-table-panel-GCAMBHTG.js deleted file mode 100644 index c75b69a..0000000 --- a/dist/data-table-virtual-table-panel-GCAMBHTG.js +++ /dev/null @@ -1,2 +0,0 @@ -export{a as DataTableVirtualTablePanel}from'./chunk-YPKN2W27.js';import'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=data-table-virtual-table-panel-GCAMBHTG.js.map -//# sourceMappingURL=data-table-virtual-table-panel-GCAMBHTG.js.map \ No newline at end of file diff --git a/dist/data-table-virtual-table-panel-ZOYCXFM5.js b/dist/data-table-virtual-table-panel-ZOYCXFM5.js new file mode 100644 index 0000000..1cd6bc5 --- /dev/null +++ b/dist/data-table-virtual-table-panel-ZOYCXFM5.js @@ -0,0 +1,2 @@ +export{a as DataTableVirtualTablePanel}from'./chunk-W7VNQT7O.js';import'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';//# sourceMappingURL=data-table-virtual-table-panel-ZOYCXFM5.js.map +//# sourceMappingURL=data-table-virtual-table-panel-ZOYCXFM5.js.map \ No newline at end of file diff --git a/dist/data-table-virtual-table-panel-GCAMBHTG.js.map b/dist/data-table-virtual-table-panel-ZOYCXFM5.js.map similarity index 62% rename from dist/data-table-virtual-table-panel-GCAMBHTG.js.map rename to dist/data-table-virtual-table-panel-ZOYCXFM5.js.map index 46555e0..4b66d53 100644 --- a/dist/data-table-virtual-table-panel-GCAMBHTG.js.map +++ b/dist/data-table-virtual-table-panel-ZOYCXFM5.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"data-table-virtual-table-panel-GCAMBHTG.js"} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"data-table-virtual-table-panel-ZOYCXFM5.js"} \ No newline at end of file diff --git a/dist/heroui-virtual.d.ts b/dist/heroui-virtual.d.ts index f97952a..e9ddc29 100644 --- a/dist/heroui-virtual.d.ts +++ b/dist/heroui-virtual.d.ts @@ -1,8 +1,8 @@ import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; diff --git a/dist/heroui-virtual.js b/dist/heroui-virtual.js index 29f578a..3976e47 100644 --- a/dist/heroui-virtual.js +++ b/dist/heroui-virtual.js @@ -1,2 +1,2 @@ -import {a as a$2}from'./chunk-KA26IREG.js';import {a as a$1}from'./chunk-QFLMV3CT.js';import'./chunk-K7SNDVV2.js';import'./chunk-YPKN2W27.js';import'./chunk-7FUCHMMB.js';import'./chunk-JNI3CH7M.js';import'./chunk-EJHT5JBZ.js';import'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';var a=a$1(a$2);export{a as DataTable};//# sourceMappingURL=heroui-virtual.js.map +import {a as a$2}from'./chunk-GIX7N3AJ.js';import {a as a$1}from'./chunk-VGMTY7KM.js';import'./chunk-B6JTUAWE.js';import'./chunk-W7VNQT7O.js';import'./chunk-VSIOOKCO.js';import'./chunk-I3CW6DTA.js';import'./chunk-EJHT5JBZ.js';import'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';var a=a$1(a$2);export{a as DataTable};//# sourceMappingURL=heroui-virtual.js.map //# sourceMappingURL=heroui-virtual.js.map \ No newline at end of file diff --git a/dist/heroui.d.ts b/dist/heroui.d.ts index f97952a..e9ddc29 100644 --- a/dist/heroui.d.ts +++ b/dist/heroui.d.ts @@ -1,8 +1,8 @@ import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; diff --git a/dist/heroui.js b/dist/heroui.js index 2ecd1f2..bba80b2 100644 --- a/dist/heroui.js +++ b/dist/heroui.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-KA26IREG.js';import'./chunk-7FUCHMMB.js';import {i}from'./chunk-JNI3CH7M.js';import'./chunk-EJHT5JBZ.js';import'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=heroui.js.map +import {a as a$1}from'./chunk-GIX7N3AJ.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-I3CW6DTA.js';import'./chunk-EJHT5JBZ.js';import'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=heroui.js.map //# sourceMappingURL=heroui.js.map \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index f97952a..e9ddc29 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,8 +1,8 @@ import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; diff --git a/dist/index.js b/dist/index.js index 4d67912..2716bc8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-2NQXDLBI.js';import'./chunk-7FUCHMMB.js';import {i}from'./chunk-JNI3CH7M.js';import'./chunk-EJHT5JBZ.js';import'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=index.js.map +import {a as a$1}from'./chunk-RS7MSX54.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-I3CW6DTA.js';import'./chunk-EJHT5JBZ.js';import'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/thegridcn-virtual.d.ts b/dist/thegridcn-virtual.d.ts index f97952a..e9ddc29 100644 --- a/dist/thegridcn-virtual.d.ts +++ b/dist/thegridcn-virtual.d.ts @@ -1,8 +1,8 @@ import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; diff --git a/dist/thegridcn-virtual.js b/dist/thegridcn-virtual.js index 47c76ff..16153cc 100644 --- a/dist/thegridcn-virtual.js +++ b/dist/thegridcn-virtual.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-QFLMV3CT.js';import'./chunk-K7SNDVV2.js';import'./chunk-YPKN2W27.js';import {a as a$2}from'./chunk-S4J2MG4T.js';import'./chunk-7FUCHMMB.js';import'./chunk-JNI3CH7M.js';import'./chunk-EJHT5JBZ.js';import'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';var a=a$1(a$2);export{a as DataTable};//# sourceMappingURL=thegridcn-virtual.js.map +import {a as a$1}from'./chunk-VGMTY7KM.js';import'./chunk-B6JTUAWE.js';import'./chunk-W7VNQT7O.js';import {a as a$2}from'./chunk-2JHOYUSH.js';import'./chunk-VSIOOKCO.js';import'./chunk-I3CW6DTA.js';import'./chunk-EJHT5JBZ.js';import'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';var a=a$1(a$2);export{a as DataTable};//# sourceMappingURL=thegridcn-virtual.js.map //# sourceMappingURL=thegridcn-virtual.js.map \ No newline at end of file diff --git a/dist/thegridcn.d.ts b/dist/thegridcn.d.ts index f97952a..e9ddc29 100644 --- a/dist/thegridcn.d.ts +++ b/dist/thegridcn.d.ts @@ -1,8 +1,8 @@ import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; diff --git a/dist/thegridcn.js b/dist/thegridcn.js index d2cc296..ad133ef 100644 --- a/dist/thegridcn.js +++ b/dist/thegridcn.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-S4J2MG4T.js';import'./chunk-7FUCHMMB.js';import {i}from'./chunk-JNI3CH7M.js';import'./chunk-EJHT5JBZ.js';import'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=thegridcn.js.map +import {a as a$1}from'./chunk-2JHOYUSH.js';import'./chunk-VSIOOKCO.js';import {i}from'./chunk-I3CW6DTA.js';import'./chunk-EJHT5JBZ.js';import'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';var a=i(a$1);export{a as DataTable};//# sourceMappingURL=thegridcn.js.map //# sourceMappingURL=thegridcn.js.map \ No newline at end of file diff --git a/dist/types.d.ts b/dist/types.d.ts index 5100609..03e087e 100644 --- a/dist/types.d.ts +++ b/dist/types.d.ts @@ -607,6 +607,7 @@ type DataTableRowClassNameContext = { isSelected: boolean; pinnedPosition: false | "top" | "bottom"; }; +type DataTableScrollbarVisibility = "auto" | "always" | "scroll" | "hover"; type DataTableProps = { columns: Array>; data: Array; @@ -747,6 +748,8 @@ type DataTableProps = { columnResizeMode?: "onChange" | "onEnd"; layoutMode?: "fill" | "fit"; stickyHeader?: boolean; + /** Controls when scrollbars are visible. Defaults to `"hover"`. */ + scrollbarVisibility?: DataTableScrollbarVisibility; showFooter?: boolean; showToolbar?: boolean; dir?: "ltr" | "rtl"; @@ -784,4 +787,4 @@ declare function hideOnClassName(hideOn: DataTableContainerBreakpoint | Array | undefined, containerWidth: number): boolean; declare function rowSelectionStateFromRows(rows: Array>): TData[]; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, type DataTableAccessibilityOptions, type DataTableActionErrorContext, type DataTableActionErrorSource, type DataTableAlign, type DataTableApi, type DataTableAutoPageSizeConfig, type DataTableCardRendererProps, type DataTableCardSizing, type DataTableCardVirtualizationConfig, type DataTableCellCoordinate, type DataTableCellEditRenderProps, type DataTableCellOverflow, type DataTableCellSelection, type DataTableClipboardConfig, type DataTableClipboardCopyOptions, type DataTableClipboardCopyScope, type DataTableClipboardPasteContext, type DataTableColumnDef, type DataTableColumnFilterConfig, type DataTableColumnFilterOperator, type DataTableColumnFilterOption, type DataTableColumnFilterRangeValue, type DataTableColumnFilterType, type DataTableColumnFixed, type DataTableColumnGroupDef, type DataTableColumnMeta, type DataTableColumnPrefs, type DataTableColumnType, type DataTableColumnVisibilityOption, type DataTableContainerBreakpoint, type DataTableCsvExportOptions, type DataTableCsvExportScope, type DataTableDensity, type DataTableDetailPanel, type DataTableDragAndDropConfig, type DataTableEditableRowsConfig, type DataTableEmptyStateContext, type DataTableExpandedRowProps, type DataTableFacetedFilterOptions, type DataTableFileUploadConfig, type DataTableGridCommandContext, type DataTableGridCommands, type DataTableHiddenRowsConfig, type DataTableInfiniteScroll, type DataTableInitialState, type DataTableInteractiveGridOptions, type DataTableLabels, type DataTableLoadingState, type DataTablePersistenceConfig, type DataTablePersistenceOperation, type DataTablePersistencePayload, type DataTablePersistenceSlice, type DataTablePersistenceStorage, type DataTableProps, type DataTableResetOptions, type DataTableRowAction, type DataTableRowClassNameContext, type DataTableRowLoadingState, type DataTableSavedView, type DataTableSavedViewSlice, type DataTableSavedViewsChangeOperation, type DataTableSavedViewsConfig, type DataTableSavedViewsPayload, type DataTableSelectionAction, type DataTableSelectionActionContext, type DataTableState, type DataTableStateOverlay, type DataTableStateOverlayContext, type DataTableSummaryRow, type DataTableToolbarAction, type DataTableToolbarDataOperations, type DataTableToolbarVisibility, type DataTableViewMode, type DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows }; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, type DataTableAccessibilityOptions, type DataTableActionErrorContext, type DataTableActionErrorSource, type DataTableAlign, type DataTableApi, type DataTableAutoPageSizeConfig, type DataTableCardRendererProps, type DataTableCardSizing, type DataTableCardVirtualizationConfig, type DataTableCellCoordinate, type DataTableCellEditRenderProps, type DataTableCellOverflow, type DataTableCellSelection, type DataTableClipboardConfig, type DataTableClipboardCopyOptions, type DataTableClipboardCopyScope, type DataTableClipboardPasteContext, type DataTableColumnDef, type DataTableColumnFilterConfig, type DataTableColumnFilterOperator, type DataTableColumnFilterOption, type DataTableColumnFilterRangeValue, type DataTableColumnFilterType, type DataTableColumnFixed, type DataTableColumnGroupDef, type DataTableColumnMeta, type DataTableColumnPrefs, type DataTableColumnType, type DataTableColumnVisibilityOption, type DataTableContainerBreakpoint, type DataTableCsvExportOptions, type DataTableCsvExportScope, type DataTableDensity, type DataTableDetailPanel, type DataTableDragAndDropConfig, type DataTableEditableRowsConfig, type DataTableEmptyStateContext, type DataTableExpandedRowProps, type DataTableFacetedFilterOptions, type DataTableFileUploadConfig, type DataTableGridCommandContext, type DataTableGridCommands, type DataTableHiddenRowsConfig, type DataTableInfiniteScroll, type DataTableInitialState, type DataTableInteractiveGridOptions, type DataTableLabels, type DataTableLoadingState, type DataTablePersistenceConfig, type DataTablePersistenceOperation, type DataTablePersistencePayload, type DataTablePersistenceSlice, type DataTablePersistenceStorage, type DataTableProps, type DataTableResetOptions, type DataTableRowAction, type DataTableRowClassNameContext, type DataTableRowLoadingState, type DataTableSavedView, type DataTableSavedViewSlice, type DataTableSavedViewsChangeOperation, type DataTableSavedViewsConfig, type DataTableSavedViewsPayload, type DataTableScrollbarVisibility, type DataTableSelectionAction, type DataTableSelectionActionContext, type DataTableState, type DataTableStateOverlay, type DataTableStateOverlayContext, type DataTableSummaryRow, type DataTableToolbarAction, type DataTableToolbarDataOperations, type DataTableToolbarVisibility, type DataTableViewMode, type DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows }; diff --git a/dist/virtual.d.ts b/dist/virtual.d.ts index f97952a..e9ddc29 100644 --- a/dist/virtual.d.ts +++ b/dist/virtual.d.ts @@ -1,8 +1,8 @@ import * as React from 'react'; import { DataTableProps } from './types.js'; -export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; +export { DATA_TABLE_CONTAINER_BREAKPOINT_WIDTHS, DataTableAccessibilityOptions, DataTableActionErrorContext, DataTableActionErrorSource, DataTableAlign, DataTableApi, DataTableAutoPageSizeConfig, DataTableCardRendererProps, DataTableCardSizing, DataTableCardVirtualizationConfig, DataTableCellCoordinate, DataTableCellEditRenderProps, DataTableCellOverflow, DataTableCellSelection, DataTableClipboardConfig, DataTableClipboardCopyOptions, DataTableClipboardCopyScope, DataTableClipboardPasteContext, DataTableColumnDef, DataTableColumnFilterConfig, DataTableColumnFilterOperator, DataTableColumnFilterOption, DataTableColumnFilterRangeValue, DataTableColumnFilterType, DataTableColumnFixed, DataTableColumnGroupDef, DataTableColumnMeta, DataTableColumnPrefs, DataTableColumnType, DataTableColumnVisibilityOption, DataTableContainerBreakpoint, DataTableCsvExportOptions, DataTableCsvExportScope, DataTableDensity, DataTableDetailPanel, DataTableDragAndDropConfig, DataTableEditableRowsConfig, DataTableEmptyStateContext, DataTableExpandedRowProps, DataTableFacetedFilterOptions, DataTableFileUploadConfig, DataTableGridCommandContext, DataTableGridCommands, DataTableHiddenRowsConfig, DataTableInfiniteScroll, DataTableInitialState, DataTableInteractiveGridOptions, DataTableLabels, DataTableLoadingState, DataTablePersistenceConfig, DataTablePersistenceOperation, DataTablePersistencePayload, DataTablePersistenceSlice, DataTablePersistenceStorage, DataTableResetOptions, DataTableRowAction, DataTableRowClassNameContext, DataTableRowLoadingState, DataTableSavedView, DataTableSavedViewSlice, DataTableSavedViewsChangeOperation, DataTableSavedViewsConfig, DataTableSavedViewsPayload, DataTableScrollbarVisibility, DataTableSelectionAction, DataTableSelectionActionContext, DataTableState, DataTableStateOverlay, DataTableStateOverlayContext, DataTableSummaryRow, DataTableToolbarAction, DataTableToolbarDataOperations, DataTableToolbarVisibility, DataTableViewMode, DataTableVirtualizationConfig, alignClassName, canEditRow, canUseRowAction, cellAlignClassName, headerAlignClassName, hideOnClassName, isHiddenAtContainerWidth, isRowVisible, resolveColumnAlign, resolveRowActionLabel, rowSelectionStateFromRows } from './types.js'; import '@tanstack/react-table'; -declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; +declare const DataTable: ({ columns, data, getRowId, children, title, description, toolbarQueryValue, onToolbarQueryValueChange, toolbarQueryPlaceholder, toolbarQueryDebounceMs, manualFiltering, enableToolbarQueryFiltering, globalFilterFn, columnFilters, onColumnFiltersChange, enableColumnFilters, customToolbar, compactToolbar, rowsPerPageOptions, totalRowCount, hasNextPage, sorting, onSortingChange, manualSorting, grouping, onGroupingChange, manualGrouping, enableGrouping, groupedColumnMode, aggregationFns, pageIndex, pageSize, autoPageSize, onPageIndexChange, onPageSizeChange, pageCount, manualPagination, rowSelection, onRowSelectionChange, enableRowSelection, enableMultiRowSelection, enableSubRowSelection, getRowCanSelect, rowSelectionSelectAllScope, expanded, onExpandedChange, getSubRows, manualExpanding, paginateExpandedRows, filterFromLeafRows, maxLeafRowFilterDepth, detailPanel, getRowCanExpand, renderExpandedRow, columnOrder, onColumnOrderChange, enableColumnReordering, columnGroupHeaderHeight, columnPinning, onColumnPinningChange, enableColumnPinning, rowPinning, onRowPinningChange, enableRowPinning, keepPinnedRows, toolbarActions, selectionActions, rowActions, csvExport, clipboard, enableCellSelection, cellSelection, defaultCellSelection, onCellSelectionChange, gridCommands, density, onDensityChange, enableDensityToggle, columnPrefsKey, persistence, savedViews, toolbarDataOperations, initialState, state: unifiedState, onStateChange, apiRef, labels, summaryRows, cardRenderer, cardSizing, cardGridClassName, cardClassName, viewMode, onViewModeChange, enableViewToggle, enablePrint, enableFullscreen, emptyState, stateOverlay, isLoading, loadingRowCount, getRowLoadingState, hiddenRows, showHiddenRows, onShowHiddenRowsChange, infiniteScroll, editableRows, columnVisibility, onColumnVisibilityChange, columnSizing, onColumnSizingChange, enableColumnResizing, columnResizeMode, layoutMode, stickyHeader, scrollbarVisibility, showFooter, showToolbar, dir, flexGrow, toolbarVisibility, className, tableClassName, tableContainerClassName, stripedRows, getRowClassName, onRowClick, onActionError, dragAndDrop, fileUpload, virtualization, accessibility, interactiveGrid, }: DataTableProps) => React.JSX.Element; export { DataTable, DataTableProps }; diff --git a/dist/virtual.js b/dist/virtual.js index 6619d83..ea6ec82 100644 --- a/dist/virtual.js +++ b/dist/virtual.js @@ -1,2 +1,2 @@ -import {a as a$1}from'./chunk-2NQXDLBI.js';import {a}from'./chunk-QFLMV3CT.js';import'./chunk-K7SNDVV2.js';import'./chunk-YPKN2W27.js';import'./chunk-7FUCHMMB.js';import'./chunk-JNI3CH7M.js';import'./chunk-EJHT5JBZ.js';import'./chunk-THSY57Y7.js';import'./chunk-4P45F2OY.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-KDHJA6AH.js';import'./chunk-XTVBESM5.js';var o=a(a$1);export{o as DataTable};//# sourceMappingURL=virtual.js.map +import {a as a$1}from'./chunk-RS7MSX54.js';import {a}from'./chunk-VGMTY7KM.js';import'./chunk-B6JTUAWE.js';import'./chunk-W7VNQT7O.js';import'./chunk-VSIOOKCO.js';import'./chunk-I3CW6DTA.js';import'./chunk-EJHT5JBZ.js';import'./chunk-PRDXFLFB.js';import'./chunk-F2RBZWQV.js';import'./chunk-CVR2ZXHQ.js';import'./chunk-O6MUTKGE.js';import'./chunk-XTVBESM5.js';var o=a(a$1);export{o as DataTable};//# sourceMappingURL=virtual.js.map //# sourceMappingURL=virtual.js.map \ No newline at end of file diff --git a/docs/API.md b/docs/API.md index 0b776b8..11ea6d7 100644 --- a/docs/API.md +++ b/docs/API.md @@ -933,11 +933,18 @@ an application-owned undo history. | `onColumnSizingChange` | `(sizing: ColumnSizingState) => void` | `undefined` | Controlled sizing callback. | | `layoutMode` | `"fill" \| "fit"` | `"fill"` | `fill` stretches the table to the container; `fit` sizes to content width. | | `stickyHeader` | `boolean` | `true` | Makes the table header sticky inside the scroll area. | +| `scrollbarVisibility` | `"auto" \| "always" \| "scroll" \| "hover"` | `"hover"` | Controls when table and card scrollbars are visible. Use `"always"` when persistent scrollbars are required. | Pinned regions are rendered in table view only. Card view keeps pinned rows in its ordinary card order, and server/manual pagination can render a pinned row only when that record is included in the supplied `data` window. +In `layoutMode="fill"`, a genuine flexible data column consumes unused width. +When every currently visible data column has a configured or user-sized fixed +width, the table inserts an internal transparent spacer after the data columns +and before the actions column instead. Fixed columns retain their widths, and +their combined minimum width still causes horizontal overflow when necessary. + The default persistence envelope is: ```ts diff --git a/docs/Migration.md b/docs/Migration.md index dd25378..fd9eaeb 100644 --- a/docs/Migration.md +++ b/docs/Migration.md @@ -1,5 +1,24 @@ # Migration Guide +## 4.5.0 additive layout release + +Version 4.5.0 removes no public prop, type, or package entrypoint. Existing +tables retain hover-only scrollbars by default; set +`scrollbarVisibility="always"` on data tables that require persistent +horizontal and vertical scrollbars. + +Fixed-width `layoutMode="fill"` tables no longer stretch their last visible +data column. When all currently visible data columns are fixed, the table +automatically creates a transparent flexible spacer after the data columns and +before right-pinned row actions. Applications should not define, order, pin, +export, or otherwise reference the reserved `__spacer__` column. + +The spacer decision follows current `columnVisibility`, including leaves in +grouped definitions and responsive visibility. Restoring a genuine flexible +data column removes the spacer. If fixed column minimums exceed the viewport, +the table keeps their widths and scrolls horizontally rather than compressing +them. These rules are the same for standard and virtual table adapters. + ## 4.4.0 additive modernization release Version 4.4.0 removes no public prop, type, or package entrypoint. A 4.3 table diff --git a/docs/Roadmap.md b/docs/Roadmap.md index 3d0ea45..2c7ffb6 100644 --- a/docs/Roadmap.md +++ b/docs/Roadmap.md @@ -16,11 +16,11 @@ Audit baseline: Current implementation baseline: -- package version: 4.4.0 +- package version: 4.5.0 - React/React DOM peers: 19.2.8 - TanStack Table: 8.21.3 - TanStack Virtual: 3.14.8 -- validation: 310 unit/integration tests, enforced coverage and declaration +- validation: 317 unit/integration tests, enforced coverage and declaration snapshots, SSR/hydration tests, a packed-consumer build, and six adapter/theme Playwright screenshot and axe cases - toolchain: TypeScript 7 CLI with the official TypeScript 6 compiler-API diff --git a/package.json b/package.json index a7a491a..01a07cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "data-table-pro", - "version": "4.4.0", + "version": "4.5.0", "description": "Reusable React data table library with shadcn, HeroUI, and The Gridcn adapters.", "type": "module", "license": "MIT", diff --git a/src/components/ui/scroll-area.tsx b/src/components/ui/scroll-area.tsx index cd36a8a..afc7fbd 100644 --- a/src/components/ui/scroll-area.tsx +++ b/src/components/ui/scroll-area.tsx @@ -20,8 +20,11 @@ function ScrollArea({ > {children} - - + + ); } @@ -37,7 +40,7 @@ function ScrollBar({ data-orientation={orientation} orientation={orientation} className={cn( - "flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent", + "z-100 flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent", className, )} {...props} diff --git a/src/core/data-table/create-data-table.test.tsx b/src/core/data-table/create-data-table.test.tsx index 4e08ef3..5323de4 100644 --- a/src/core/data-table/create-data-table.test.tsx +++ b/src/core/data-table/create-data-table.test.tsx @@ -21,12 +21,14 @@ import type { ExpandedState } from "@tanstack/react-table"; import { createDataTable } from "./create-data-table"; import * as RootEntry from "../../index"; import { DataTable as ShadcnDataTable } from "../../index"; +import { DataTable as VirtualShadcnDataTable } from "../../entries/virtual"; import * as HeroEntry from "../../entries/heroui"; import { DataTable as HeroDataTable } from "../../entries/heroui"; import * as GridEntry from "../../entries/thegridcn"; import { DataTable as GridDataTable } from "../../entries/thegridcn"; import { useDataTableUrlState as useDataTableUrlStateEntry } from "../../entries/url-state"; import type { + DataTableApi, DataTableColumnDef, DataTableColumnGroupDef, DataTableProps, @@ -202,6 +204,72 @@ describe("DataTable adapter providers", () => { expect(scrollArea?.className).not.toContain("bg-surface"); }); + it("renders persistent scrollbars with fixed columns and a bottom-pinned row", () => { + const overflowRows = Array.from({ length: 20 }, (_, index) => ({ + id: String(index + 1), + name: `Record ${index + 1}`, + })); + const { container } = render( + row.name, + size: 240, + }, + { + id: "detail-b", + header: "Detail B", + accessorFn: (row) => row.name, + size: 240, + }, + ]} + data={overflowRows} + getRowId={(row) => row.id} + layoutMode="fit" + rowActions={[ + { + key: "open", + label: "Open", + onClick: vi.fn(), + }, + ]} + rowPinning={{ top: [], bottom: ["20"] }} + scrollbarVisibility="always" + tableContainerClassName="h-40 w-96" + />, + ); + + const scrollbars = container.querySelectorAll( + '[data-slot="scroll-area-scrollbar"]', + ); + const fixedLeftHeader = container.querySelector( + 'thead [data-column-id="name"]', + ); + const fixedActionsHeader = container.querySelector( + 'thead [data-column-id="__actions__"]', + ); + const bottomPinnedRow = container.querySelector( + '[data-dtp-slot="data-table-pinned-row"][data-row-pinned="bottom"]', + ); + + expect(scrollbars).toHaveLength(2); + for (const scrollbar of scrollbars) { + expect(scrollbar.className).toContain("z-100"); + expect(scrollbar.dataset.state).toBe("visible"); + } + expect(fixedLeftHeader?.className).toContain("sticky"); + expect(fixedActionsHeader?.className).toContain("sticky"); + expect(bottomPinnedRow?.textContent).toContain("Record 20"); + }); + it("keeps The Gridcn output free of shadcn token aliases", () => { const { container } = render( { - renderTable({ + it("places a fill spacer between fixed data columns and actions", () => { + const { container } = renderTable({ columns: [ { accessorKey: "name", header: "Name", size: 120, + minSize: 120, + maxSize: 120, }, { id: "role", header: "Role", accessorFn: () => "Admin", size: 160, + minSize: 160, + maxSize: 160, }, ], rowActions: [ @@ -2313,18 +2385,30 @@ for (const suite of suites) { ], }); - const headers = screen.getAllByRole("columnheader"); - expect(headers).toHaveLength(3); - expect(headers[2]?.textContent).toContain("Actions"); + const headers = Array.from( + container.querySelectorAll( + "thead tr:last-child [data-column-id]", + ), + ); + expect(headers.map((header) => header.dataset.columnId)).toEqual([ + "name", + "role", + "__spacer__", + "__actions__", + ]); expect( screen.getByRole("columnheader", { name: "Name" }).style.width, ).toBe("120px"); expect( screen.getByRole("columnheader", { name: "Role" }).style.width, - ).toBe(""); + ).toBe("160px"); expect( screen.getByRole("columnheader", { name: "Role" }).style.minWidth, ).toBe("160px"); + expect(headers[2]?.className).toContain("border-b-0"); + expect(headers[2]?.textContent).toBe(""); + expect(headers[3]?.className).toContain("sticky"); + expect(headers[3]?.style.right).toBe("0px"); }); it("shows the selected record count in the toolbar", () => { @@ -2472,3 +2556,275 @@ for (const suite of suites) { }); }); } + +describe("DataTable fill spacer", () => { + const fixedColumns: Array> = [ + { + accessorKey: "name", + header: "Name", + size: 120, + minSize: 120, + maxSize: 120, + }, + { + id: "role", + header: "Role", + accessorFn: () => "Admin", + size: 160, + minSize: 160, + maxSize: 160, + }, + ]; + + it.each([ + ["standard", ShadcnDataTable], + ["virtual", VirtualShadcnDataTable], + ] as const)( + "adds an inert spacer for fixed columns in the %s table adapter", + (_name, DataTable) => { + const { container } = render( + row.id} + interactiveGrid + layoutMode="fill" + showFooter={false} + showToolbar={false} + />, + ); + + const leafHeaders = Array.from( + container.querySelectorAll( + "thead tr:last-child [data-column-id]", + ), + ); + const spacerHeader = leafHeaders[2]; + const spacerCell = container.querySelector( + 'tbody [data-column-id="__spacer__"]', + ); + + expect(leafHeaders.map((header) => header.dataset.columnId)).toEqual([ + "name", + "role", + "__spacer__", + ]); + expect(spacerHeader?.textContent).toBe(""); + expect(spacerHeader?.className).toContain("border-b-0"); + expect(spacerHeader?.className).toContain("bg-transparent"); + expect(spacerHeader?.getAttribute("aria-hidden")).toBe("true"); + expect(spacerHeader?.querySelector("button")).toBeNull(); + expect(spacerCell?.textContent).toBe(""); + expect(spacerCell?.className).toContain("border-b-0"); + expect(spacerCell?.className).toContain("bg-transparent"); + expect(spacerCell?.getAttribute("role")).toBe("presentation"); + expect(spacerCell?.getAttribute("tabindex")).toBeNull(); + expect(screen.getByRole("grid").getAttribute("aria-colcount")).toBe("2"); + expect(screen.getAllByRole("gridcell")).toHaveLength(2); + expect( + screen.getByRole("columnheader", { name: "Name" }).style.width, + ).toBe("120px"); + expect( + screen.getByRole("columnheader", { name: "Role" }).style.width, + ).toBe("160px"); + }, + ); + + it("recalculates the spacer and grouped colspans as columns hide and restore", () => { + function VisibilityHarness() { + const [columnVisibility, setColumnVisibility] = + React.useState>({}); + + return ( + <> + + + "Admin", + minSize: 100, + maxSize: 400, + }, + ], + }, + ]} + columnVisibility={columnVisibility} + data={rows} + getRowId={(row) => row.id} + layoutMode="fill" + showFooter={false} + showToolbar={false} + /> + + ); + } + + const { container } = render(); + const getGroupHeader = () => + container.querySelector( + '[data-column-group-id="identity"]', + ); + const getLeafIds = () => + Array.from( + container.querySelectorAll( + "thead tr:last-child [data-column-id]", + ), + (header) => header.dataset.columnId, + ); + + expect(getLeafIds()).toEqual(["name", "role"]); + expect(getGroupHeader()?.getAttribute("colspan")).toBe("2"); + expect( + container.querySelector('[data-column-id="__spacer__"]'), + ).toBeNull(); + + fireEvent.click(screen.getByRole("button", { name: "Show fixed only" })); + + expect(getLeafIds()).toEqual(["name", "__spacer__"]); + expect(getGroupHeader()?.getAttribute("colspan")).toBe("1"); + expect( + screen.getByRole("columnheader", { name: "Name" }).style.width, + ).toBe("140px"); + + fireEvent.click(screen.getByRole("button", { name: "Restore columns" })); + + expect(getLeafIds()).toEqual(["name", "role"]); + expect(getGroupHeader()?.getAttribute("colspan")).toBe("2"); + expect( + container.querySelector('[data-column-id="__spacer__"]'), + ).toBeNull(); + }); + + it("does not add a spacer when a genuine flexible data column is visible", () => { + const { container } = render( + "Admin", + minSize: 100, + maxSize: 400, + }, + ].filter(Boolean) as Array>} + data={rows} + getRowId={(row) => row.id} + layoutMode="fill" + showFooter={false} + showToolbar={false} + />, + ); + + expect( + container.querySelector('[data-column-id="__spacer__"]'), + ).toBeNull(); + const flexibleHeader = screen.getByRole("columnheader", { name: "Role" }); + expect(flexibleHeader.style.width).toBe(""); + expect(flexibleHeader.style.minWidth).toBe("100px"); + }); + + it("preserves fixed minimum width so wide content overflows instead of compressing", () => { + const { container } = render( + "Admin", + size: 280, + minSize: 280, + maxSize: 280, + }, + ]} + data={rows} + getRowId={(row) => row.id} + layoutMode="fill" + showFooter={false} + showToolbar={false} + tableContainerClassName="w-[300px]" + />, + ); + + const table = container.querySelector( + '[data-slot="table"]', + ); + const scrollArea = container.querySelector( + '[data-slot="scroll-area"]', + ); + expect(scrollArea?.className).toContain("w-[300px]"); + expect(table?.style.width).toBe("100%"); + expect(table?.style.minWidth).toBe("540px"); + expect( + screen.getByRole("columnheader", { name: "Name" }).style.minWidth, + ).toBe("260px"); + expect( + screen.getByRole("columnheader", { name: "Role" }).style.minWidth, + ).toBe("280px"); + expect( + container.querySelector( + 'thead [data-column-id="__spacer__"]', + )?.style.width, + ).toBe(""); + }); + + it("omits the internal spacer from CSV and clipboard output", async () => { + const apiRef = React.createRef>(); + const onExport = vi.fn(); + const onCopy = vi.fn(); + render( + row.id} + layoutMode="fill" + showFooter={false} + showToolbar={false} + />, + ); + + await act(async () => { + await apiRef.current?.exportCsv({ onExport }); + await apiRef.current?.copyToClipboard({ onCopy }); + }); + + expect(onExport).toHaveBeenCalledWith( + expect.objectContaining({ csv: "Name,Role\r\nAda,Admin" }), + ); + expect(onCopy).toHaveBeenCalledWith( + expect.objectContaining({ text: "Name\tRole\nAda\tAdmin" }), + ); + }); +}); diff --git a/src/core/data-table/create-data-table.tsx b/src/core/data-table/create-data-table.tsx index 179e60d..cd48b5c 100644 --- a/src/core/data-table/create-data-table.tsx +++ b/src/core/data-table/create-data-table.tsx @@ -41,6 +41,7 @@ import { getDataTableColumnGroupPaths, getDataTableLeafColumns, getInitialColumnPinning, + hasExplicitDataTableColumnSize, validateDataTableColumnIds, } from "./data-table-utils"; import { useDataTableState } from "./use-data-table-state"; @@ -230,6 +231,7 @@ export function createDataTableWithPanels( columnResizeMode = "onEnd", layoutMode = "fill", stickyHeader = true, + scrollbarVisibility, showFooter = true, showToolbar = true, dir = "ltr", @@ -713,6 +715,35 @@ export function createDataTableWithPanels( [fileUpload, runAction], ); + const includeFillSpacer = React.useMemo(() => { + if (layoutMode !== "fill") { + return false; + } + + const visibleDataColumns = getDataTableLeafColumns(columns).filter( + ({ column, index }) => + effectiveColumnVisibility[getColumnId(column, index)] !== false, + ); + + return ( + visibleDataColumns.length > 0 && + visibleDataColumns.every(({ column, index }) => { + const columnId = getColumnId(column, index); + return ( + hasExplicitDataTableColumnSize(column) || + Object.prototype.hasOwnProperty.call( + currentColumnSizing, + columnId, + ) + ); + }) + ); + }, [ + columns, + currentColumnSizing, + effectiveColumnVisibility, + layoutMode, + ]); const tableColumns = useDataTableColumns({ Button, Checkbox, @@ -730,6 +761,7 @@ export function createDataTableWithPanels( hasTreeExpansion: Boolean(getSubRows), isSavingEdit, isEditDirty, + includeFillSpacer, labels: resolvedLabels, lastSelectedRowIdRef, detailPanel: resolvedDetailPanel, @@ -1624,6 +1656,7 @@ export function createDataTableWithPanels( resolvedLoadingRowCount={resolvedLoadingRowCount} rowActions={guardedRowActions} ScrollArea={ScrollArea} + scrollbarVisibility={scrollbarVisibility} sentinelRef={sentinelRef} setCurrentDetailExpanded={setCurrentDetailExpanded} setCurrentRowSelection={setCurrentRowSelection} @@ -1675,6 +1708,7 @@ export function createDataTableWithPanels( rowsToRender={rowsToRender} ScrollArea={ScrollArea} ScrollBar={ScrollBar} + scrollbarVisibility={scrollbarVisibility} sentinelRef={sentinelRef} setDraftValues={setDraftValues} shouldRenderInitialLoading={shouldRenderInitialLoading} diff --git a/src/core/data-table/data-table-base-card-panel.tsx b/src/core/data-table/data-table-base-card-panel.tsx index 8d4a77e..37f6af4 100644 --- a/src/core/data-table/data-table-base-card-panel.tsx +++ b/src/core/data-table/data-table-base-card-panel.tsx @@ -29,6 +29,7 @@ export function DataTableBaseCardPanel({ resolvedLoadingRowCount, rowActions = [], ScrollArea, + scrollbarVisibility, sentinelRef, setCurrentDetailExpanded, setCurrentRowSelection, @@ -89,6 +90,7 @@ export function DataTableBaseCardPanel({ )} > ({ const firstDataColumnId = visibleCells.find( (cell) => !columnLayouts.get(cell.column.id)?.isUtilityColumn, )?.column.id; + const spacerColumnIndex = visibleCells.findIndex( + (cell) => cell.column.id === "__spacer__", + ); return ( @@ -253,6 +256,10 @@ function DataTableBodyRowInner({ const isExpansionColumn = layout?.isExpansionColumn ?? false; const isActionsColumn = layout?.isActionsColumn ?? false; const isSpacerColumn = layout?.isSpacerColumn ?? false; + const gridColumnAriaIndex = + columnIndex + + 1 - + (spacerColumnIndex >= 0 && spacerColumnIndex < columnIndex ? 1 : 0); const hideClassName = hideOnClassName(meta?.hideOn); const cellClassName = isInitialLoadingRow || isDataTableLoadingRow(originalRow) @@ -266,26 +273,44 @@ function DataTableBodyRowInner({ const isCellSelected = gridMode && cellSelectionEnabled && !isInitialLoadingRow && + !isSpacerColumn && isGridCellSelected(gridRowIndex, columnIndex); return ( ({ : undefined } onFocus={ - gridMode + gridMode && !isSpacerColumn ? () => onGridCellFocus({ row: gridRowIndex, column: columnIndex }) : undefined } onKeyDown={ - gridMode + gridMode && !isSpacerColumn ? (event: React.KeyboardEvent) => { if (event.target !== event.currentTarget) { if (event.key === "Escape") { @@ -340,7 +365,7 @@ function DataTableBodyRowInner({ uiClassNames.cellBorder, isCellSelected && uiClassNames.cellSelected, layout?.utilityClassName, - layout?.isSpacerColumn && "border-b-0 bg-transparent p-0", + layout?.isSpacerColumn && "border-b-0 bg-transparent! p-0", layout?.pinnedClassName, hideClassName, cellAlignClassName(cellContext), @@ -351,7 +376,10 @@ function DataTableBodyRowInner({ >
    ({ : undefined } > - {loadingState?.isLoading ? ( + {isSpacerColumn ? null : loadingState?.isLoading ? ( (meta?.skeleton?.(cellContext) ?? loadingState.skeleton ?? ( = { resolvedLoadingRowCount: number; rowActions: DataTableProps["rowActions"]; ScrollArea: DataTableUiKit["ScrollArea"]; + scrollbarVisibility: DataTableProps["scrollbarVisibility"]; sentinelRef: React.RefObject; setCurrentRowSelection: (rowSelection: Record) => void; setCurrentDetailExpanded: OnChangeFn; diff --git a/src/core/data-table/data-table-header-cell.tsx b/src/core/data-table/data-table-header-cell.tsx index cf33a05..d8b0eb7 100644 --- a/src/core/data-table/data-table-header-cell.tsx +++ b/src/core/data-table/data-table-header-cell.tsx @@ -87,11 +87,25 @@ function DataTableHeaderCellInner({ key={header.id} colSpan={header.colSpan} scope={ - header.isPlaceholder ? undefined : isColumnGroup ? "colgroup" : "col" + header.isPlaceholder || layout.isSpacerColumn + ? undefined + : isColumnGroup + ? "colgroup" + : "col" + } + role={ + gridMode + ? layout.isSpacerColumn + ? "presentation" + : "columnheader" + : undefined + } + aria-colindex={ + gridMode && !layout.isSpacerColumn ? gridColumnIndex : undefined + } + aria-hidden={ + header.isPlaceholder || layout.isSpacerColumn || undefined } - role={gridMode ? "columnheader" : undefined} - aria-colindex={gridMode ? gridColumnIndex : undefined} - aria-hidden={header.isPlaceholder || undefined} aria-description={isColumnGroup ? groupDefinition?.description : undefined} aria-labelledby={ !header.isPlaceholder && @@ -113,7 +127,7 @@ function DataTableHeaderCellInner({ getDensityHeaderClassName(currentDensity), isColumnGroup && uiClassNames.columnGroupHeader, layout.utilityClassName, - layout.isSpacerColumn && "border-b-1 bg-transparent p-0", + layout.isSpacerColumn && "border-b-0 bg-transparent! p-0", layout.pinnedClassName, hideClassName, headerAlignClassName(header.getContext()), diff --git a/src/core/data-table/data-table-table-panel.tsx b/src/core/data-table/data-table-table-panel.tsx index ffdee01..77c5e14 100644 --- a/src/core/data-table/data-table-table-panel.tsx +++ b/src/core/data-table/data-table-table-panel.tsx @@ -74,6 +74,7 @@ export type DataTableTablePanelProps = { rowsToRender: Array<{ row: Row; rowIndex: number }>; ScrollArea: DataTableUiKit["ScrollArea"]; ScrollBar: DataTableUiKit["ScrollBar"]; + scrollbarVisibility: DataTableProps["scrollbarVisibility"]; sentinelRef: React.RefObject; setDraftValues: React.Dispatch>>; shouldRenderInitialLoading: boolean; @@ -150,6 +151,7 @@ export function DataTableTablePanel({ rowsToRender, ScrollArea, ScrollBar, + scrollbarVisibility, sentinelRef, setDraftValues, shouldRenderInitialLoading, @@ -200,6 +202,13 @@ export function DataTableTablePanel({ () => [...topPinnedRows, ...renderedRows, ...bottomPinnedRows], [bottomPinnedRows, renderedRows, topPinnedRows], ); + const navigableGridColumnIndices = React.useMemo( + () => + visibleLeafColumns.flatMap((column, index) => + column.id === "__spacer__" ? [] : [index], + ), + [visibleLeafColumns], + ); const getGridCoordinate = React.useCallback( (rowIndex: number, columnIndex: number) => { const row = gridRows[rowIndex]; @@ -319,19 +328,28 @@ export function DataTableTablePanel({ ) || 10), ); const lastRow = Math.max(0, displayRowCount - 1); - const lastColumn = Math.max(0, visibleLeafColumnCount - 1); + const currentColumnPosition = Math.max( + 0, + navigableGridColumnIndices.indexOf(column), + ); + const lastColumnPosition = Math.max( + 0, + navigableGridColumnIndices.length - 1, + ); let nextRow = row; - let nextColumn = column; + let nextColumnPosition = currentColumnPosition; switch (event.key) { case "ArrowUp": nextRow--; break; case "ArrowDown": nextRow++; break; - case "ArrowLeft": nextColumn--; break; - case "ArrowRight": nextColumn++; break; + case "ArrowLeft": nextColumnPosition--; break; + case "ArrowRight": nextColumnPosition++; break; case "Home": - if (event.ctrlKey || event.metaKey) { nextRow = 0; nextColumn = 0; } else nextColumn = 0; + if (event.ctrlKey || event.metaKey) nextRow = 0; + nextColumnPosition = 0; break; case "End": - if (event.ctrlKey || event.metaKey) { nextRow = lastRow; nextColumn = lastColumn; } else nextColumn = lastColumn; + if (event.ctrlKey || event.metaKey) nextRow = lastRow; + nextColumnPosition = lastColumnPosition; break; case "PageUp": nextRow -= pageRows; break; case "PageDown": nextRow += pageRows; break; @@ -340,7 +358,13 @@ export function DataTableTablePanel({ event.preventDefault(); const nextCell = { row: Math.min(lastRow, Math.max(0, nextRow)), - column: Math.min(lastColumn, Math.max(0, nextColumn)), + column: + navigableGridColumnIndices[ + Math.min( + lastColumnPosition, + Math.max(0, nextColumnPosition), + ) + ] ?? 0, }; setActiveCell(nextCell); if (event.shiftKey && cellSelectionEnabled) { @@ -356,9 +380,9 @@ export function DataTableTablePanel({ displayRowCount, getGridCoordinate, gridPageSize, + navigableGridColumnIndices, onCellSelectionChange, tableScrollElement, - visibleLeafColumnCount, ], ); const renderBodyRow = ( @@ -445,6 +469,7 @@ export function DataTableTablePanel({ className={cn(flexGrow ? "flex min-h-0 flex-1 flex-col" : "h-full")} > ({ aria-describedby={ariaDescribedBy} aria-labelledby={ariaLabelledBy} role={gridMode ? "grid" : undefined} - aria-colcount={gridMode ? visibleLeafColumnCount : undefined} + aria-colcount={ + gridMode ? navigableGridColumnIndices.length : undefined + } aria-rowcount={ gridMode ? @@ -523,11 +550,19 @@ export function DataTableTablePanel({ uiClassNames={uiClassNames} gridMode={gridMode} gridColumnIndex={ - header.isPlaceholder || header.subHeaders.length + header.isPlaceholder || + header.subHeaders.length || + header.column.id === "__spacer__" ? undefined - : table.getVisibleLeafColumns().findIndex( - (column) => column.id === header.column.id, - ) + 1 + : table + .getVisibleLeafColumns() + .filter( + (column) => column.id !== "__spacer__", + ) + .findIndex( + (column) => + column.id === header.column.id, + ) + 1 } /> ))} @@ -613,18 +648,38 @@ export function DataTableTablePanel({ } > {visibleLeafColumns.map((column, index) => { - const content = - summaryRow.cells[column.id] ?? - (index === 0 ? summaryRow.label : null); + const layout = getColumnLayout(column.id); + const content = layout.isSpacerColumn + ? null + : (summaryRow.cells[column.id] ?? + (index === 0 ? summaryRow.label : null)); return ( {typeof content === "function" ? content({ diff --git a/src/core/data-table/data-table-utils.ts b/src/core/data-table/data-table-utils.ts index c03050b..c62ccaf 100644 --- a/src/core/data-table/data-table-utils.ts +++ b/src/core/data-table/data-table-utils.ts @@ -89,6 +89,15 @@ export function getConfiguredColumnMinWidth( return undefined; } +export function hasExplicitDataTableColumnSize( + column: DataTableColumnDef, +) { + return ( + Object.prototype.hasOwnProperty.call(column, "size") && + typeof column.size === "number" + ); +} + export function decorateFilterableColumn( column: DataTableColumnDef, ): ColumnDef { diff --git a/src/core/data-table/data-table-virtual-card-panel.tsx b/src/core/data-table/data-table-virtual-card-panel.tsx index 1916bc3..b3b2cc2 100644 --- a/src/core/data-table/data-table-virtual-card-panel.tsx +++ b/src/core/data-table/data-table-virtual-card-panel.tsx @@ -33,6 +33,7 @@ export function DataTableVirtualCardPanel({ resolvedLoadingRowCount, rowActions = [], ScrollArea, + scrollbarVisibility, sentinelRef, setCurrentDetailExpanded, setCurrentRowSelection, @@ -126,6 +127,7 @@ export function DataTableVirtualCardPanel({ )} > ({ const ids = new Set(); for (const { column, index } of getDataTableLeafColumns(columns)) { - if (Object.prototype.hasOwnProperty.call(column, "size")) { + if (hasExplicitDataTableColumnSize(column)) { ids.add(getColumnId(column, index)); } } @@ -130,47 +131,12 @@ export function useColumnLayout({ return { left, right }; }, [visibleLeafColumns]); - const fillColumnId = React.useMemo(() => { - if (layoutMode !== "fill") { - return undefined; - } - - const dataColumns = visibleLeafColumns.filter( - (column) => !isUtilityColumnId(column.id), - ); - - if (!dataColumns.length) { - return undefined; - } - - const allDataColumnsAreFixed = dataColumns.every( - (column) => - explicitlySizedColumnIds.has(column.id) || - Object.prototype.hasOwnProperty.call(columnSizing, column.id), - ); - - return allDataColumnsAreFixed - ? dataColumns[dataColumns.length - 1]?.id - : undefined; - }, [ - columnSizing, - explicitlySizedColumnIds, - layoutMode, - visibleLeafColumns, - ]); - const fixedWidthColumnIds = React.useMemo(() => { - const ids = new Set([ + return new Set([ ...explicitlySizedColumnIds, ...Object.keys(columnSizing), ]); - - if (fillColumnId) { - ids.delete(fillColumnId); - } - - return ids; - }, [columnSizing, explicitlySizedColumnIds, fillColumnId]); + }, [columnSizing, explicitlySizedColumnIds]); const columnLayouts = React.useMemo(() => { const layouts = new Map(); @@ -183,10 +149,7 @@ export function useColumnLayout({ isSelectionColumn || isExpansionColumn || isActionsColumn; const isSpacerColumn = column.id === "__spacer__"; const configuredMinWidth = minimumColumnWidths.get(column.id); - const isFlexibleFillColumn = column.id === fillColumnId; - const columnMinWidth = - configuredMinWidth ?? - (isFlexibleFillColumn ? column.getSize() : undefined); + const columnMinWidth = configuredMinWidth; const shouldFixWidth = !isSpacerColumn && (layoutMode === "fit" || @@ -249,7 +212,6 @@ export function useColumnLayout({ return layouts; }, [ - fillColumnId, fixedWidthColumnIds, layoutMode, minimumColumnWidths, @@ -262,7 +224,6 @@ export function useColumnLayout({ return visibleLeafColumns.reduce((total, column) => { const layout = columnLayouts.get(column.id); const configuredMinWidth = minimumColumnWidths.get(column.id); - const isFlexibleFillColumn = column.id === fillColumnId; if (layout?.isUtilityColumn) { return total + UTILITY_COLUMN_SIZE; @@ -274,12 +235,11 @@ export function useColumnLayout({ return ( total + - (configuredMinWidth ?? (isFlexibleFillColumn ? column.getSize() : 0)) + (configuredMinWidth ?? 0) ); }, 0); }, [ columnLayouts, - fillColumnId, fixedWidthColumnIds, minimumColumnWidths, visibleLeafColumns, diff --git a/src/core/data-table/use-data-table-columns.tsx b/src/core/data-table/use-data-table-columns.tsx index e497b59..cb5acec 100644 --- a/src/core/data-table/use-data-table-columns.tsx +++ b/src/core/data-table/use-data-table-columns.tsx @@ -56,6 +56,7 @@ export function useDataTableColumns({ hasTreeExpansion, isSavingEdit, isEditDirty, + includeFillSpacer = false, labels, lastSelectedRowIdRef, detailPanel, @@ -85,6 +86,7 @@ export function useDataTableColumns({ hasTreeExpansion: boolean; isSavingEdit: boolean; isEditDirty: boolean; + includeFillSpacer?: boolean; labels: DataTableLabels; lastSelectedRowIdRef: React.MutableRefObject; detailPanel: DataTableDetailPanel | undefined; @@ -317,6 +319,23 @@ export function useDataTableColumns({ defs.push(...columns.map((column) => decorateFilterableColumn(column))); + if (includeFillSpacer) { + defs.push({ + id: "__spacer__", + cell: () => null, + header: () => null, + enableColumnFilter: false, + enableGlobalFilter: false, + enableGrouping: false, + enableHiding: false, + enablePinning: false, + enableResizing: false, + enableSorting: false, + minSize: 0, + size: 0, + }); + } + if (rowActions.length || editableRows || enableRowPinning) { defs.push({ id: "__actions__", @@ -413,6 +432,7 @@ export function useDataTableColumns({ enableRowSelection, enableRowPinning, hasTreeExpansion, + includeFillSpacer, isSavingEdit, isEditDirty, labels, diff --git a/src/core/data-table/use-data-table-instance.ts b/src/core/data-table/use-data-table-instance.ts index b01cb86..b96d147 100644 --- a/src/core/data-table/use-data-table-instance.ts +++ b/src/core/data-table/use-data-table-instance.ts @@ -468,7 +468,10 @@ export function useDataTableInstance({ const defaultOrder = table .getAllLeafColumns() .map((column) => column.id) - .filter((columnId) => !isUtilityColumnId(columnId)); + .filter( + (columnId) => + !isUtilityColumnId(columnId) && columnId !== "__spacer__", + ); const nextOrder = moveColumnInOrder( currentColumnOrder.length ? currentColumnOrder : defaultOrder, sourceColumnId, diff --git a/src/core/types.ts b/src/core/types.ts index aec7450..8a03279 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -791,6 +791,12 @@ export type DataTableRowClassNameContext = { pinnedPosition: false | "top" | "bottom"; }; +export type DataTableScrollbarVisibility = + | "auto" + | "always" + | "scroll" + | "hover"; + export type DataTableProps = { columns: Array>; data: Array; @@ -938,6 +944,8 @@ export type DataTableProps = { columnResizeMode?: "onChange" | "onEnd"; layoutMode?: "fill" | "fit"; stickyHeader?: boolean; + /** Controls when scrollbars are visible. Defaults to `"hover"`. */ + scrollbarVisibility?: DataTableScrollbarVisibility; showFooter?: boolean; showToolbar?: boolean; dir?: "ltr" | "rtl";