@pstdio/ui 0.44.0-nightly.20261017030225 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{MermaidComponent-b-SNuwm6.js → MermaidComponent-DhNTaUMt.js} +2 -2
- package/dist/{MermaidComponent-b-SNuwm6.js.map → MermaidComponent-DhNTaUMt.js.map} +1 -1
- package/dist/apply-theme-preference-B0vCu8zY.d.ts +26 -0
- package/dist/chat-ui.d.ts +52 -52
- package/dist/chat-ui.js +163 -161
- package/dist/chat-ui.js.map +1 -1
- package/dist/{collection-view-fields-Sa5HO5P7.d.ts → collection-view-fields-tMtZmuhS.d.ts} +0 -2
- package/dist/{collection-view-grouping-aKZhxYfX.js → collection-view-grouping-BKIr4QAb.js} +2 -2
- package/dist/{collection-view-grouping-aKZhxYfX.js.map → collection-view-grouping-BKIr4QAb.js.map} +1 -1
- package/dist/{collection-view-search-mHPkdyxT.js → collection-view-search-D7HFymZW.js} +160 -166
- package/dist/collection-view-search-D7HFymZW.js.map +1 -0
- package/dist/collection-view.d.ts +3 -90
- package/dist/collection-view.js +1 -1
- package/dist/data-table.d.ts +3 -2
- package/dist/data-table.js +98 -88
- package/dist/data-table.js.map +1 -1
- package/dist/{diff-drawer-BMl0zobj.js → diff-drawer-ByJsQg8F.js} +10 -10
- package/dist/diff-drawer-ByJsQg8F.js.map +1 -0
- package/dist/{diff-viewer-C5KXwq7E.js → diff-viewer-Cpiw-1ut.js} +4 -4
- package/dist/{diff-viewer-C5KXwq7E.js.map → diff-viewer-Cpiw-1ut.js.map} +1 -1
- package/dist/diff.js +2 -2
- package/dist/{display-sort-control-0_gG-W9g.js → display-sort-control-BuqijDAl.js} +3 -3
- package/dist/{display-sort-control-0_gG-W9g.js.map → display-sort-control-BuqijDAl.js.map} +1 -1
- package/dist/{edit-mode-data-table-BhJa4Z76.js → edit-mode-data-table-BwNTRik5.js} +147 -136
- package/dist/edit-mode-data-table-BwNTRik5.js.map +1 -0
- package/dist/host-storage-28AkEy1N.js +98 -0
- package/dist/host-storage-28AkEy1N.js.map +1 -0
- package/dist/index-3H4B61XK.d.ts +38 -0
- package/dist/{index-Bc2BsdD1.d.ts → index-Bq1BDCBk.d.ts} +6 -1
- package/dist/{index-BTABZd25.d.ts → index-DTjRTEez.d.ts} +2 -2
- package/dist/index-kYQwGcym.d.ts +91 -0
- package/dist/index.d.ts +350 -53
- package/dist/index.js +883 -880
- package/dist/index.js.map +1 -1
- package/dist/kanban-renderer.d.ts +2 -2
- package/dist/kanban-renderer.js +510 -495
- package/dist/kanban-renderer.js.map +1 -1
- package/dist/list-row-BDDAVuVd.js +1228 -0
- package/dist/list-row-BDDAVuVd.js.map +1 -0
- package/dist/{markdown-editor-hLUXSAns.js → markdown-editor-DUBUE7M-.js} +1170 -1057
- package/dist/markdown-editor-DUBUE7M-.js.map +1 -0
- package/dist/{param-editor-3B1GmtMi.js → param-editor-DK1uCOh3.js} +2 -2
- package/dist/{param-editor-3B1GmtMi.js.map → param-editor-DK1uCOh3.js.map} +1 -1
- package/dist/{param-editor-field-ZdF0maaH.js → param-editor-field-B5z6200g.js} +279 -283
- package/dist/param-editor-field-B5z6200g.js.map +1 -0
- package/dist/param-editor.js +2 -2
- package/dist/{prism-EZSmZh-a.js → prism-E3-NXX_t.js} +21 -20
- package/dist/prism-E3-NXX_t.js.map +1 -0
- package/dist/resolve-icon-component-Ck6ZyRnc.js +20 -0
- package/dist/resolve-icon-component-Ck6ZyRnc.js.map +1 -0
- package/dist/{resource-badge-nOWPqxFU.d.ts → resource-badge-DGwekS-G.d.ts} +1 -1
- package/dist/{rich-text-tfMib9o3.js → rich-text-2c_ra5gK.js} +585 -456
- package/dist/rich-text-2c_ra5gK.js.map +1 -0
- package/dist/rich-text.d.ts +1 -1
- package/dist/rich-text.js +3 -3
- package/dist/terminal.d.ts +28 -0
- package/dist/terminal.js +59 -32
- package/dist/terminal.js.map +1 -1
- package/dist/{theme-O8cKWJIk.js → theme-Chgjys_o.js} +285 -253
- package/dist/theme-Chgjys_o.js.map +1 -0
- package/dist/theme.d.ts +1 -1
- package/dist/theme.js +1 -1
- package/dist/{tree-list-Ces1hpRd.js → tree-list-B8Gtot1M.js} +99 -99
- package/dist/tree-list-B8Gtot1M.js.map +1 -0
- package/dist/{use-virtualizer-CfDHoDer.js → use-virtualizer-CqDYJolY.js} +8 -3
- package/dist/use-virtualizer-CqDYJolY.js.map +1 -0
- package/dist/{workspace-badge-CvQBU6Hs.d.ts → workspace-badge-BMjS8ii4.d.ts} +6 -1
- package/package.json +2 -2
- package/dist/collection-view-search-mHPkdyxT.js.map +0 -1
- package/dist/diff-drawer-BMl0zobj.js.map +0 -1
- package/dist/edit-mode-data-table-BhJa4Z76.js.map +0 -1
- package/dist/host-storage-BIo5azql.js +0 -31
- package/dist/host-storage-BIo5azql.js.map +0 -1
- package/dist/index-Dd6e8lU_.d.ts +0 -61
- package/dist/list-row-F8kBQGB-.js +0 -1232
- package/dist/list-row-F8kBQGB-.js.map +0 -1
- package/dist/markdown-editor-hLUXSAns.js.map +0 -1
- package/dist/param-editor-field-ZdF0maaH.js.map +0 -1
- package/dist/prism-EZSmZh-a.js.map +0 -1
- package/dist/rich-text-tfMib9o3.js.map +0 -1
- package/dist/theme-O8cKWJIk.js.map +0 -1
- package/dist/tree-list-Ces1hpRd.js.map +0 -1
- package/dist/use-virtualizer-CfDHoDer.js.map +0 -1
package/dist/data-table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.js","names":["ReactNode","DataTableCategoricalColor","CategoricalColorCellProps","children","resolveCategoricalColor","value","categories","find","category","Object","is","color","CategoricalColorCell","props","DataTableThemeColor","RgbColor","r","g","b","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","split","map","character","join","parseHexColor","color","normalized","trim","startsWith","slice","expandedHex","length","test","Number","parseInt","toLinearChannel","channel","relativeLuminance","contrastRatio","foreground","background","foregroundLuminance","backgroundLuminance","lighter","Math","max","darker","min","toHexColor","toHexChannel","round","toString","padStart","mixRgbColors","start","end","endWeight","contrastRatioForHexColors","foregroundColor","backgroundColor","findMatchingForeground","target","step","candidate","resolveReadableTextColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","light","darkForeground","dark","Text","HighlightedText","mixHexColors","DataTableColorScaleStop","DataTableThemeColor","ColorScaleCellProps","value","search","toDisplayPercent","Math","round","mixColors","startColor","endColor","startWeight","mixedColor","mixThemeColors","start","end","foreground","light","dark","undefined","resolveColorScaleValue","stops","Number","isFinite","length","firstStop","lastStop","range","color","endIndex","findIndex","stop","startStop","endStop","segmentProgress","ColorScaleCell","props","$","_c","t0","t1","String","t2","_c","Badge","HighlightedText","DataTableBadgeCategory","DataTableBadgeCellProps","value","search","categories","DataTableBadgeCell","props","$","_c","t0","undefined","t1","find","category","palette","t2","String","t3","t4","_c","HighlightedText","DiffBubble","DataTableDiffValue","DataTableDiffCell","props","$","_c","value","search","t0","undefined","t1","additions","t2","t3","deletions","t4","t5","_c","chakra","Tooltip","HighlightedText","visibleEndLength","DataTablePathCell","props","$","_c","value","search","t0","undefined","t1","slice","start","t2","end","t3","t4","t5","t6","_c","Tooltip","Button","HStack","Image","Popover","Portal","Text","Braces","ChevronRight","ScrollArea","HighlightedText","buildJsonFields","FriendlyJsonDisplay","getJsonCellSummary","isJsonImageArray","isJsonImageValue","JsonCellProps","columnLabel","value","search","stopRowActivation","event","stopPropagation","JsonCell","props","$","_c","t0","undefined","T0","T1","T2","summary","t1","t10","t11","t12","t2","t3","t4","t5","t6","t7","t8","t9","fields","imageFields","flatMap","_temp","slice","t13","Root","Symbol","for","placement","offset","mainAxis","Trigger","length","map","_temp2","t14","t15","t16","t17","overscrollBehavior","t18","t19","field","label","Array","isArray","image","index","field_0","String","_c","_temp","_temp2","ScrollArea","Icon","ChakraIcon","chakra","IconButton","Menu","Portal","Text","CellContext","HeaderContext","Check","ChevronDown","CircleHelp","Minus","CSSProperties","cloneElement","isValidElement","ReactNode","Checkbox","Tooltip","HighlightedText","ListRow","CategoricalColorCell","resolveCategoricalColor","ColorScaleCell","resolveColorScaleValue","DataTableBadgeCell","isDataTableDiffValue","DataTableColumnMeta","DataTableDateCell","formatDataTableRelativeDate","DataTableDiffCell","DataTablePathCell","formatDisplayValue","JsonCell","DataTableColumnRenderer","DataTableRowAction","RowData","toSingleLineElement","element","style","props","flexWrap","minWidth","whiteSpace","stopControlPropagation","event","stopPropagation","SelectionHeader","$","_c","table","t0","getIsAllRowsSelected","checked","isIndeterminate","getIsSomeRowsSelected","t1","t2","t3","t4","details","toggleAllRowsSelected","t5","SelectionCell","row","column","selectedRowIds","columnDef","meta","Boolean","id","Symbol","for","toggleSelected","mergeRowActions","rowActions","dynamicActions","dynamicLabels","Set","map","action","label","filter","has","RowActionsCell","getRowActions","getActions","T0","T1","T2","T3","bb0","actions","undefined","resolvedActions","original","length","Root","Positioner","Content","t6","destructive","icon","onSelect","t7","t8","t9","FormattedCellProps","value","wrapRows","search","HighlightedCellContent","content","query","String","Array","isArray","child","index","children","FormattedCell","displayValue","DataCellProps","columnLabel","renderer","DataCell","type","includes","categories","color","stops","color_0","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","headerIcon","columnDescription","_c","ChakraIcon","Checkbox","Tooltip","RowSelectionState","ReactNode","resolveCategoricalColor","resolveColorCellStyle","resolveColorScaleValue","ColumnDataCell","ColumnHeader","RowActionsCell","RowIndexCell","SelectionCell","SelectionHeader","DataTableColumnMeta","columnHelper","getIcon","DataTableColumnRenderer","DataTableRowAction","RowData","BuildColumnsOptions","columnIcons","Partial","Record","columnDescriptions","compactHeaders","enableSelection","selectedRowIds","rowActions","getRowActions","row","columnRenderers","wrapRows","rowNumbers","search","resolveDataCellStyle","value","renderer","type","color","stops","categories","buildColumns","data","columnKeys","options","rowIndexColumn","accessor","_row","rowIndex","header","id","enableResizing","size","cell","selectionColumn","display","meta","enableSorting","dataColumns","map","key","fallBackKey","columnValues","customIcon","headerIcon","undefined","columnDescription","headerLabel","getCellStyle","rowActionsColumn","length","Box","HStack","Icon","IconButton","Popover","Portal","Stack","Text","closestCenter","DndContext","DragEndEvent","PointerSensor","useSensor","useSensors","SortableContext","useSortable","verticalListSortingStrategy","CSS","Check","GripVertical","Settings2","ReactNode","useEffect","useRef","useState","SearchableMenuInput","Checkbox","ScrollArea","Switch","Tooltip","fieldIcon","DisplayMenuSelect","AttributeDescriptor","DataTableSettings","DataTableDisplayMenuProps","columns","sortControl","settings","statsAvailable","onSettingsChange","Partial","onColumnVisibilityChange","columnId","visible","onColumnReorder","activeColumnId","overColumnId","SectionLabel","props","$","_c","t0","children","t1","end","t2","SettingSwitchProps","label","hint","checked","onChange","SettingSwitch","Symbol","for","role","details","t3","t4","t5","ColumnRowProps","column","ColumnRow","id","attributes","listeners","setNodeRef","transform","transition","isDragging","Transform","toString","opacity","bg","t6","t7","t8","t9","t10","t11","t12","t13","DataTableDisplayMenu","triggerRef","contentRef","open","setOpen","query","setQuery","activationConstraint","distance","sensors","needle","trim","toLowerCase","filter","includes","filteredColumns","hiddenColumns","column_0","shownCount","length","value","_temp","map","_temp2","groupingOptions","event","active","over","String","handleDragEnd","closeOnOutsidePointerDown","event_0","target","Node","current","contains","document","addEventListener","removeEventListener","placement","offset","mainAxis","getAnchorElement","grouping","t14","rowNumbers","t15","t16","wrapRows","t17","t18","showStats","t19","t20","t21","t22","t23","overscrollBehavior","t24","_temp3","t25","t26","column_4","t27","t28","t29","t30","column_1","groupable","column_2","column_3","_c","Switch","Checkbox","_temp","_temp2","Tooltip","_temp3","ScrollArea","chakra","Icon","Table","Text","ChevronDown","ChevronRight","DataTableGroupRowProps","label","count","collapsed","columnCount","onToggle","DataTableGroupRow","props","$","_c","t0","t1","t2","t3","t4","t5","t6","_c","Box","lazy","Suspense","DataTableStatChartProps","ChartContent","then","module","default","DataTableStatChart","props","$","_c","height","ariaLabel","t0","t1","_c","isDisplayValue","RowData","HistogramBin","start","end","count","HistogramStat","min","max","bins","TopValueStat","label","percentage","getStatValue","value","sortValue","getColumnStatValues","rows","columnId","map","row","filter","undefined","countUniqueStatValues","Set","size","buildTopValuesStat","limit","values","counts","Map","set","get","groups","entries","String","Math","round","length","sort","left","right","localeCompare","topGroups","slice","otherCount","reduce","total","group","buildHistogramStat","binCount","binWidth","Array","from","_","index","binIndex","floor","Box","Flex","Table","Text","Header","HeaderGroup","DataTableStatChart","buildHistogramStat","buildTopValuesStat","countUniqueStatValues","DataTableColumnStat","RowData","formatNumber","Intl","NumberFormat","undefined","maximumFractionDigits","format","STAT_CHART_COLOR","SingleValueStatProps","value","count","SingleValueStat","props","$","_c","t0","t1","t2","t3","t4","UniqueStatProps","rows","columnId","UniqueStat","T0","T1","t5","t6","t7","Symbol","for","t8","HistogramStatProps","binCount","HistogramStat","T2","t10","t9","bb0","histogram","t11","valueCount","bins","reduce","_temp","min","max","_temp2","_temp3","t12","t13","TopValuesStatProps","limit","TopValuesStat","groups","length","label","map","_temp6","DataTableStatProps","stat","DataTableStat","type","DataTableStatCellProps","header","headerGroup","columnStats","Partial","Record","fullWidth","DataTableStatCell","column","id","borderRight","headers","indexOf","width","DataTableStatsRowProps","noBorder","DataTableStatsRow","hasVisibleStats","some","header_0","total","bin","bin_0","start","end","Number","_temp4","datum","_temp5","group","percentage","_c","_temp","_temp2","Icon","ChakraIcon","Flex","IconButton","Menu","Portal","Table","Text","ViewSortDirection","Cell","flexRender","Header","HeaderGroup","Row","TanStackTable","ArrowDownWideNarrow","ArrowUpNarrowWide","ChevronsUpDown","EyeOff","ListFilter","ResourceContextMenu","Tooltip","ListRow","DataTableColumnMeta","DataTableCellContext","DataTableProps","RowData","utilityColumnIds","Set","DataTableFieldMenu","sortFor","columnId","onSort","direction","onFilterBy","onHide","DataTableColumnHeaderProps","header","headerGroup","table","fullWidth","hasDescription","fieldMenu","sortIcon","FieldMenuItemProps","value","label","icon","onActivate","FieldMenuItem","props","$","_c","t0","t1","t2","DataTableColumnHeader","column","id","T0","T1","T2","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t3","t4","t5","t6","t7","t8","t9","sort","showsFieldMenu","Boolean","has","t23","columnDef","getContext","tooltipContent","ColumnHeader","Symbol","for","borderRight","t24","headers","indexOf","length","undefined","width","t25","getCanResize","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","className","getIsResizing","t26","DataTableCellViewProps","cell","row","wrapRows","getCellContextMenuActions","DataTableCellView","columnMeta","meta","getCellStyle","getValue","cellStyle","original","cellContext","rowId","map","action","key","onClick","onSelect","contextActions","cellElement","DataTableBodyRowProps","noBorder","rowIsInteractive","rowIsActive","rowIsSelected","onRowClick","DataTableBodyRow","borderBottom","borderColor","getVisibleCells","_c","ChakraIcon","Tooltip","Box","Table","TanStackTable","Fragment","ScrollArea","DataTableGroupRow","DataTablePageEntry","DataTableRendererRow","getSelectedOriginalRows","shouldHighlightActiveRow","DataTableStatsRow","DataTableBodyRow","DataTableColumnHeader","DataTableFieldMenu","SelectionToolbar","DataTableProps","DataTableSelectionAction","DataTableSettings","RowData","DataTableGridProps","Pick","table","entries","collapsed","Set","onToggleGroup","key","settings","data","fieldMenu","selectionActions","resolveColumnSizeVars","colSizes","Record","header","getFlatHeaders","id","getSize","column","DataTableGrid","props","$","_c","noBorder","fullWidth","onRowClick","isRowInteractive","activeRowId","columnDescriptions","columnStats","enableRowActivation","t0","getCellContextMenuActions","undefined","t1","tableRowsById","Map","getRowModel","rows","map","_temp","t2","columnSizeVars","selectedRows","getSelectedRowModel","t3","t4","getTotalSize","t5","width","t6","getHeaderGroups","headerGroup","headers","Boolean","showStats","t7","t8","entry","kind","group","label","length","has","getVisibleLeafColumns","row_0","get","row","original","rowId","getIsSelected","wrapRows","t9","t10","toggleAllRowsSelected","_c","_temp","Fragment","ScrollArea","CollectionRowGroup","KanbanRendererRow","DataTablePageEntry","kind","group","TRow","row","pageGroupedRows","groups","collapsed","Set","pageIndex","pageSize","shown","has","key","rows","shownCount","reduce","count","length","pageCount","Math","max","ceil","page","min","start","end","entries","position","groupStart","onPage","push","index","pageRows","slice","map","Flex","getCoreRowModel","RowSelectionState","useReactTable","useState","CollectionViewEmptyState","findField","DisplaySortControl","buildColumns","DataTableDisplayMenu","DataTableGrid","pageGroupedRows","pageRows","DataTableHeader","reorderDataTableColumns","resolveInitialPageSize","resolveSelectionActions","shouldEnableSelection","toggleHiddenDataTableColumn","DataTableFieldMenu","EditModeDataTable","PaginationFooter","DataTableProps","useDataTableView","DatasetDataTable","props","noBorder","fullWidth","onRowClick","isRowInteractive","activeRowId","columnIcons","columnDescriptions","compactHeaders","columnStats","columnRenderers","initialPageSize","pageSizeOptions","rowActions","getRowActions","enableRowActivation","getCellContextMenuActions","view","settings","setSettings","sorts","setSorts","filter","startRule","pageKey","JSON","stringify","grouping","deferredSearch","pagePosition","setPagePosition","key","index","pageIndex","setPageIndex","pageSize","setPageSize","collapsed","setCollapsed","Set","rowSelection","setRowSelection","enableSelection","selectionActions","groups","shownRows","flatMap","group","rows","page","data","map","row","sourceRow","idBySource","Map","id","columns","visibleColumnKeys","selectedRowIds","wrapRows","rowNumbers","search","table","defaultColumn","size","minSize","maxSize","state","getRowId","get","columnResizeMode","columnResizeDirection","onRowSelectionChange","enableMultiRowSelection","enableRowSelection","autoResetAll","fieldMenu","sortFor","columnId","sort","attributeId","direction","undefined","onSort","onFilterBy","field","attributes","onHide","hiddenColumns","total","length","nothingShown","Boolean","trim","itemLabel","viewsSource","toolbarActions","visible","activeColumnId","overColumnId","columnOrder","orderedColumnKeys","contentPlaceholder","setSearch","entries","current","next","has","delete","add","pageCount","DataTable","$","_c","editMode","t0","_c","Skeleton","Table","Text","DataTableSkeletonColumn","id","label","DataTableSkeletonProps","columns","columnCount","rowCount","cellWidths","DataTableSkeleton","props","$","_c","t0","t1","undefined","t2","length","Array","from","_temp","headers","t3","map","_temp2","t4","t5","t6","__0","rowIndex","column_0","columnIndex","column","borderRight","_","index","_c","Tooltip$1","Checkbox$1","SearchableMenuInput","ListRow","ResourceContextMenu","Switch$1","findField","fieldIcon","formatDataTableRelativeDate","DataTableDateCell","DataTableHeader","FriendlyJsonDisplay","PaginationFooter","isJsonImageArray","resolveInitialPageSize","shouldHighlightActiveRow","toggleHiddenDataTableColumn","isDisplayValue","getIcon","SelectionToolbar","resolveSelectionActions","formatDisplayValue","useDataTableView","getSelectedOriginalRows","columnHelper","useDataTableViewStore","reorderDataTableColumns","EditModeDataTable","shouldEnableSelection","buildJsonFields","isDataTableDiffValue","isJsonImageValue","getJsonCellSummary","HighlightedText","DiffBubble","DisplayMenuSelect","CollectionViewEmptyState","DisplaySortControl","Fragment$1","resolveCategoricalColor","categories","category","value","CategoricalColorCell","props","children","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","character","parseHexColor","normalized","color","expandedHex","toLinearChannel","channel","relativeLuminance","contrastRatio","foregroundLuminance","foreground","backgroundLuminance","background","lighter","darker","toHexColor","toHexChannel","mixRgbColors","start","endWeight","end","findMatchingForeground","step","candidate","target","resolveReadableTextColor","backgroundColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","darkForeground","toDisplayPercent","mixColors","mixThemeColors","resolveColorScaleValue","stops","firstStop","lastStop","endIndex","stop","startStop","endStop","ColorScaleCell","$","c","t0","search","t1","t2","Text","DataTableBadgeCell","palette","t3","t4","Badge","DataTableDiffCell","t5","DataTablePathCell","chakra","t6","stopRowActivation","event","JsonCell","T0","T1","T2","summary","t10","t11","t12","t7","t8","t9","columnLabel","imageFields","_temp$4","t13","Popover","Button","HStack","_temp2$3","Braces","t14","ChevronRight","t15","t16","t17","t18","Portal","ScrollArea$1","t19","field","index","image","Image","field_0","toSingleLineElement","isValidElement","element","cloneElement","stopControlPropagation","SelectionHeader","table","checked","isIndeterminate","Minus","Check","Icon","details","SelectionCell","column","selectedRowIds","row","mergeRowActions","dynamicLabels","dynamicActions","action","rowActions","RowActionsCell","getActions","T3","resolvedActions","Menu","IconButton","ChevronDown","HighlightedCellContent","content","query","child","FormattedCell","displayValue","wrapRows","DataCell","renderer","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","columnDescription","CircleHelp","headerIcon","resolveDataCellStyle","buildColumns","options","rowIndexColumn","rowIndex","selectionColumn","dataColumns","columnKeys","fallBackKey","key","columnValues","data","columnRenderers","customIcon","columnIcons","columnDescriptions","compactHeaders","rowActionsColumn","rowNumbers","enableSelection","getRowActions","SectionLabel","SettingSwitch","Box","ColumnRow","useSortable","transform","CSS","isDragging","transition","GripVertical","attributes","listeners","onColumnVisibilityChange","setNodeRef","DataTableDisplayMenu","triggerRef","useRef","contentRef","open","setOpen","useState","setQuery","sensors","useSensors","useSensor","PointerSensor","columns","needle","filteredColumns","settings","column_0","shownCount","_temp$3","_temp2$2","groupingOptions","onColumnReorder","over","active","handleDragEnd","closeOnOutsidePointerDown","event_0","useEffect","Settings2","onSettingsChange","statsAvailable","t20","t21","t22","t23","t24","_temp3$1","t25","t26","column_4","Stack","t27","SortableContext","verticalListSortingStrategy","t28","DndContext","closestCenter","t29","t30","column_1","column_2","column_3","DataTableGroupRow","collapsed","label","count","onToggle","columnCount","Table","ChartContent","lazy","module","DataTableStatChart","Suspense","ariaLabel","height","getStatValue","getColumnStatValues","rows","columnId","countUniqueStatValues","buildTopValuesStat","values","counts","groups","right","left","topGroups","limit","otherCount","total","group","buildHistogramStat","min","max","binWidth","binCount","bins","binIndex","formatNumber","STAT_CHART_COLOR","SingleValueStat","Flex","UniqueStat","HistogramStat","histogram","valueCount","_temp$2","_temp2$1","_temp3","TopValuesStat","_temp6","DataTableStat","stat","DataTableStatCell","columnStats","header","fullWidth","headerGroup","DataTableStatsRow","noBorder","header_0","bin","bin_0","_temp4","datum","_temp5","utilityColumnIds","sortIcon","direction","ArrowUpNarrowWide","ArrowDownWideNarrow","ChevronsUpDown","FieldMenuItem","DataTableColumnHeader","fieldMenu","hasDescription","sort","showsFieldMenu","flexRender","tooltipContent","ListFilter","EyeOff","DataTableCellView","columnMeta","cell","cellStyle","getCellContextMenuActions","cellContext","contextActions","cellElement","DataTableBodyRow","rowIsActive","rowIsSelected","rowIsInteractive","onRowClick","resolveColumnSizeVars","colSizes","DataTableGrid","enableRowActivation","activeRowId","entries","isRowInteractive","onToggleGroup","selectionActions","tableRowsById","_temp$1","columnSizeVars","selectedRows","entry","row_0","pageGroupedRows","shown","pageCount","pageSize","page","pageIndex","position","groupStart","pageRows","DatasetDataTable","view","pageKey","filter","sorts","pagePosition","setPagePosition","setPageIndex","setPageSize","setCollapsed","rowSelection","setRowSelection","shownRows","idBySource","useReactTable","row_1","getCoreRowModel","setSorts","columnId_0","columnId_1","startRule","setSettings","columnId_2","nothingShown","columnId_3","visible","activeColumnId","overColumnId","next","current","size","DataTable","cellWidths","DataTableSkeleton","rowCount","_temp","headers","_temp2","Skeleton","columnIndex"],"sources":["../src/components/data-table/categorical-color-cell.tsx","../src/components/data-table/color-cell-style.ts","../src/components/data-table/color-scale-cell.tsx","../src/components/data-table/data-table-badge-cell.tsx","../src/components/data-table/data-table-diff-cell.tsx","../src/components/data-table/data-table-path-cell.tsx","../src/components/data-table/json-cell.tsx","../src/components/data-table/data-table-cell-renderers.tsx","../src/components/data-table/build-columns.tsx","../src/components/data-table/data-table-display-menu.tsx","../src/components/data-table/data-table-group-row.tsx","../src/components/data-table/data-table-stat-chart.tsx","../src/components/data-table/data-table-stats.ts","../src/components/data-table/data-table-stats-row.tsx","../src/components/data-table/data-table-table-parts.tsx","../src/components/data-table/data-table-grid.tsx","../src/components/data-table/data-table-grouping.ts","../src/components/data-table/data-table.tsx","../src/components/data-table/data-table-skeleton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { DataTableCategoricalColor } from \"./types\";\n\ninterface CategoricalColorCellProps {\n children: ReactNode;\n}\n\nexport const resolveCategoricalColor = (value: unknown, categories: DataTableCategoricalColor[]) => {\n return categories.find((category) => Object.is(category.value, value))?.color ?? null;\n};\n\nexport const CategoricalColorCell = (props: CategoricalColorCellProps) => {\n const { children } = props;\n\n return children;\n};\n","import type { DataTableThemeColor } from \"./types\";\n\ninterface RgbColor {\n r: number;\n g: number;\n b: number;\n}\n\nconst darkTextColor = \"#111827\";\nconst lightTextColor = \"#ffffff\";\nconst darkColorTarget = \"#000000\";\nconst readableContrastRatio = 4.5;\n\nconst expandShortHex = (hex: string) =>\n hex\n .split(\"\")\n .map((character) => character + character)\n .join(\"\");\n\nexport const parseHexColor = (color: string) => {\n const normalized = color.trim();\n const hex = normalized.startsWith(\"#\") ? normalized.slice(1) : normalized;\n const expandedHex = hex.length === 3 ? expandShortHex(hex) : hex;\n if (!/^[\\da-f]{6}$/i.test(expandedHex)) return null;\n\n return {\n r: Number.parseInt(expandedHex.slice(0, 2), 16),\n g: Number.parseInt(expandedHex.slice(2, 4), 16),\n b: Number.parseInt(expandedHex.slice(4, 6), 16),\n };\n};\n\nconst toLinearChannel = (channel: number) => {\n const normalized = channel / 255;\n return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;\n};\n\nconst relativeLuminance = (color: RgbColor) =>\n 0.2126 * toLinearChannel(color.r) + 0.7152 * toLinearChannel(color.g) + 0.0722 * toLinearChannel(color.b);\n\nconst contrastRatio = (foreground: RgbColor, background: RgbColor) => {\n const foregroundLuminance = relativeLuminance(foreground);\n const backgroundLuminance = relativeLuminance(background);\n const lighter = Math.max(foregroundLuminance, backgroundLuminance);\n const darker = Math.min(foregroundLuminance, backgroundLuminance);\n return (lighter + 0.05) / (darker + 0.05);\n};\n\nconst toHexColor = (color: RgbColor) => {\n const toHexChannel = (channel: number) => Math.round(channel).toString(16).padStart(2, \"0\");\n return `#${toHexChannel(color.r)}${toHexChannel(color.g)}${toHexChannel(color.b)}`;\n};\n\nconst mixRgbColors = (start: RgbColor, end: RgbColor, endWeight: number) => ({\n r: start.r * (1 - endWeight) + end.r * endWeight,\n g: start.g * (1 - endWeight) + end.g * endWeight,\n b: start.b * (1 - endWeight) + end.b * endWeight,\n});\n\nexport const contrastRatioForHexColors = (foregroundColor: string, backgroundColor: string) => {\n const foreground = parseHexColor(foregroundColor);\n const background = parseHexColor(backgroundColor);\n if (!foreground || !background) return 0;\n return contrastRatio(foreground, background);\n};\n\nconst findMatchingForeground = (background: RgbColor, target: RgbColor) => {\n for (let step = 1; step <= 50; step += 1) {\n const candidate = mixRgbColors(background, target, step / 50);\n if (contrastRatio(candidate, background) >= readableContrastRatio) {\n return { color: toHexColor(candidate), step };\n }\n }\n\n return { color: toHexColor(target), step: 50 };\n};\n\nexport const resolveReadableTextColor = (backgroundColor: string) => {\n const background = parseHexColor(backgroundColor);\n if (!background) return darkTextColor;\n\n const darkText = parseHexColor(darkColorTarget)!;\n const lightText = parseHexColor(lightTextColor)!;\n const darkerMatch = findMatchingForeground(background, darkText);\n const lighterMatch = findMatchingForeground(background, lightText);\n\n return darkerMatch.step <= lighterMatch.step ? darkerMatch.color : lighterMatch.color;\n};\n\nexport const mixHexColors = (startColor: string, endColor: string, startWeight: number) => {\n const start = parseHexColor(startColor);\n const end = parseHexColor(endColor);\n if (!start || !end) return null;\n\n return toHexColor(mixRgbColors(start, end, 1 - startWeight));\n};\n\nexport const resolveColorCellStyle = (color: DataTableThemeColor) => {\n const lightForeground = color.foreground?.light ?? resolveReadableTextColor(color.light);\n const darkForeground = color.foreground?.dark ?? resolveReadableTextColor(color.dark);\n\n return {\n backgroundColor: `light-dark(${color.light}, ${color.dark})`,\n color: `light-dark(${lightForeground}, ${darkForeground})`,\n };\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\nimport { mixHexColors } from \"./color-cell-style\";\nimport type { DataTableColorScaleStop, DataTableThemeColor } from \"./types\";\n\ninterface ColorScaleCellProps {\n value: number;\n search?: string;\n}\n\nconst toDisplayPercent = (value: number) => Math.round(value * 100) / 100;\n\nconst mixColors = (startColor: string, endColor: string, startWeight: number) => {\n const mixedColor = mixHexColors(startColor, endColor, startWeight);\n if (mixedColor) return mixedColor;\n\n return `color-mix(in srgb, ${startColor} ${toDisplayPercent(startWeight * 100)}%, ${endColor})`;\n};\n\nconst mixThemeColors = (start: DataTableThemeColor, end: DataTableThemeColor, startWeight: number) => {\n const foreground =\n start.foreground && end.foreground\n ? {\n light: mixColors(start.foreground.light, end.foreground.light, startWeight),\n dark: mixColors(start.foreground.dark, end.foreground.dark, startWeight),\n }\n : undefined;\n\n return {\n light: mixColors(start.light, end.light, startWeight),\n dark: mixColors(start.dark, end.dark, startWeight),\n ...(foreground ? { foreground } : {}),\n };\n};\n\nexport const resolveColorScaleValue = (value: unknown, stops: DataTableColorScaleStop[]) => {\n if (typeof value !== \"number\" || !Number.isFinite(value) || stops.length < 2) return null;\n\n const firstStop = stops[0]!;\n const lastStop = stops[stops.length - 1]!;\n const range = lastStop.value - firstStop.value;\n if (range <= 0) return null;\n\n if (value <= firstStop.value) return firstStop.color;\n if (value >= lastStop.value) return lastStop.color;\n\n const endIndex = stops.findIndex((stop) => value <= stop.value);\n const startStop = stops[endIndex - 1]!;\n const endStop = stops[endIndex]!;\n const segmentProgress = (value - startStop.value) / (endStop.value - startStop.value);\n const startWeight = 1 - segmentProgress;\n return mixThemeColors(startStop.color, endStop.color, startWeight);\n};\n\nexport const ColorScaleCell = (props: ColorScaleCellProps) => {\n const { value, search = \"\" } = props;\n\n return (\n <Text textStyle=\"paragraph/S/medium\" fontVariantNumeric=\"tabular-nums\" truncate>\n <HighlightedText text={String(value)} query={search} />\n </Text>\n );\n};\n","import { Badge } from \"@chakra-ui/react\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\nimport type { DataTableBadgeCategory } from \"./types\";\n\ninterface DataTableBadgeCellProps {\n value: string | number | boolean;\n search?: string;\n categories?: DataTableBadgeCategory[];\n}\n\nexport const DataTableBadgeCell = (props: DataTableBadgeCellProps) => {\n const { value, categories, search = \"\" } = props;\n const palette = categories?.find((category) => category.value === value)?.palette ?? \"gray\";\n\n return (\n <Badge variant=\"subtle\" size=\"sm\" colorPalette={palette} maxW=\"full\" truncate>\n <HighlightedText text={String(value)} query={search} />\n </Badge>\n );\n};\n","import { HighlightedText } from \"../collection-view/highlighted-text\";\nimport { DiffBubble } from \"../diff-viewer/diff-bubble\";\nimport type { DataTableDiffValue } from \"./types\";\n\nexport const DataTableDiffCell = (props: { value: DataTableDiffValue; search?: string }) => {\n const { value, search = \"\" } = props;\n return (\n <DiffBubble\n additions={value.additions}\n deletions={value.deletions}\n variant=\"ghost\"\n size=\"small\"\n additionsLabel={<HighlightedText text={`+${value.additions}`} query={search} />}\n deletionsLabel={<HighlightedText text={`-${value.deletions}`} query={search} />}\n />\n );\n};\n","import { chakra } from \"@chakra-ui/react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\n\n// Long paths keep their start and final characters, so the folder name stays readable (design/DESIGN.md).\nconst visibleEndLength = 5;\n\nexport const DataTablePathCell = (props: { value: string; search?: string }) => {\n const { value, search = \"\" } = props;\n const start = value.slice(0, -visibleEndLength);\n const end = value.slice(-visibleEndLength);\n\n return (\n <Tooltip content={value} openDelay={300}>\n <chakra.span\n display=\"inline-flex\"\n minW=\"0\"\n maxW=\"full\"\n tabIndex={0}\n textStyle=\"paragraph/S/regular\"\n whiteSpace=\"nowrap\"\n >\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\">\n <HighlightedText text={start} query={search} />\n </chakra.span>\n <chakra.span flexShrink={0}>\n <HighlightedText text={end} query={search} />\n </chakra.span>\n </chakra.span>\n </Tooltip>\n );\n};\n","import { Button, HStack, Image, Popover, Portal, Text } from \"@chakra-ui/react\";\nimport { Braces, ChevronRight } from \"lucide-react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\nimport {\n buildJsonFields,\n FriendlyJsonDisplay,\n getJsonCellSummary,\n isJsonImageArray,\n isJsonImageValue,\n} from \"./friendly-json-display\";\n\ninterface JsonCellProps {\n columnLabel: string;\n value: unknown;\n search?: string;\n}\n\nconst stopRowActivation = (event: { stopPropagation: () => void }) => event.stopPropagation();\n\nexport const JsonCell = (props: JsonCellProps) => {\n const { columnLabel, value, search = \"\" } = props;\n const fields = buildJsonFields(value);\n const imageFields = fields\n .flatMap((field) => {\n if (isJsonImageValue(field.value, field.label)) return [field];\n if (!Array.isArray(field.value) || !isJsonImageArray(field.value, field.label)) return [];\n return field.value.map((image, index) => ({ label: `${field.label} ${index + 1}`, value: image }));\n })\n .slice(0, 2);\n const summary = getJsonCellSummary(value);\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-start\", offset: { mainAxis: 6 } }}>\n <Popover.Trigger asChild>\n <Button\n aria-label={`View ${columnLabel} details`}\n variant=\"ghost\"\n size=\"xs\"\n width=\"full\"\n minWidth=\"0\"\n height=\"28px\"\n paddingX=\"2xs\"\n justifyContent=\"flex-start\"\n onClick={stopRowActivation}\n >\n {imageFields.length > 0 ? (\n <HStack gap=\"-1\" flexShrink=\"0\">\n {imageFields.map((field) => (\n <Image\n key={field.label}\n src={String(field.value)}\n alt={`${field.label} preview`}\n boxSize=\"22px\"\n borderRadius=\"xs\"\n borderWidth=\"1px\"\n borderColor=\"border.subtle\"\n objectFit=\"cover\"\n />\n ))}\n </HStack>\n ) : (\n <Braces size={14} />\n )}\n <Text flex=\"1\" minWidth=\"0\" textAlign=\"left\" textStyle=\"paragraph/S/regular\" truncate>\n <HighlightedText text={summary} query={search} />\n </Text>\n <ChevronRight size={12} />\n </Button>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"min(380px, calc(100vw - 32px))\" padding=\"0\" background=\"bg\" overflow=\"hidden\">\n <ScrollArea maxH=\"360px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <FriendlyJsonDisplay value={value} />\n </ScrollArea>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, chakra, IconButton, Menu, Portal, Text } from \"@chakra-ui/react\";\nimport type { CellContext, HeaderContext } from \"@tanstack/react-table\";\nimport { Check, ChevronDown, CircleHelp, Minus } from \"lucide-react\";\nimport { type CSSProperties, cloneElement, isValidElement, type ReactNode } from \"react\";\n\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\nimport { ListRow } from \"../list-row/list-row\";\nimport { CategoricalColorCell, resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { ColorScaleCell, resolveColorScaleValue } from \"./color-scale-cell\";\nimport { DataTableBadgeCell } from \"./data-table-badge-cell\";\nimport { isDataTableDiffValue } from \"./data-table-cell-value\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { DataTableDateCell, formatDataTableRelativeDate } from \"./data-table-date-cell\";\nimport { DataTableDiffCell } from \"./data-table-diff-cell\";\nimport { DataTablePathCell } from \"./data-table-path-cell\";\nimport { formatDisplayValue } from \"./helpers\";\nimport { JsonCell } from \"./json-cell\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst toSingleLineElement = (element: ReactNode) => {\n if (!isValidElement<{ style?: CSSProperties }>(element)) return element;\n\n return cloneElement(element, {\n style: {\n ...element.props.style,\n flexWrap: \"nowrap\",\n minWidth: 0,\n whiteSpace: \"nowrap\",\n },\n });\n};\n\nconst stopControlPropagation = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n};\n\nexport const SelectionHeader = (props: HeaderContext<RowData, unknown>) => {\n const { table } = props;\n const checked = table.getIsAllRowsSelected();\n const isIndeterminate = !checked && table.getIsSomeRowsSelected();\n\n return (\n <Checkbox\n checked={isIndeterminate ? \"indeterminate\" : checked}\n aria-label=\"Select all\"\n icon={<ChakraIcon as={isIndeterminate ? Minus : Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => table.toggleAllRowsSelected(details.checked === true)}\n />\n );\n};\n\nexport const SelectionCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { selectedRowIds } = column.columnDef.meta as DataTableColumnMeta;\n\n return (\n <Checkbox\n checked={Boolean(selectedRowIds?.[row.id])}\n aria-label=\"Select row\"\n icon={<ChakraIcon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => row.toggleSelected(details.checked === true)}\n />\n );\n};\n\nconst mergeRowActions = (rowActions: DataTableRowAction[], dynamicActions: DataTableRowAction[]) => {\n const dynamicLabels = new Set(dynamicActions.map((action) => action.label));\n return [...dynamicActions, ...rowActions.filter((action) => !dynamicLabels.has(action.label))];\n};\n\nexport const RowActionsCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { rowActions: actions = [], getRowActions: getActions } = column.columnDef.meta as DataTableColumnMeta;\n const resolvedActions = mergeRowActions(actions, getActions?.(row.original) ?? []);\n\n if (resolvedActions.length === 0) return null;\n\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton aria-label=\"Row actions\" size=\"2xs\" variant=\"ghost\" onClick={stopControlPropagation}>\n <ChakraIcon as={ChevronDown} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n {resolvedActions.map((action) => (\n <Menu.Item key={action.label} value={action.label} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n tone={action.destructive ? \"danger\" : \"default\"}\n label={action.label}\n icon={action.icon}\n onClick={stopControlPropagation}\n onActivate={() => action.onSelect(row.original)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n );\n};\n\ninterface FormattedCellProps {\n value: unknown;\n wrapRows: boolean;\n search?: string;\n}\n\nconst HighlightedCellContent = (props: { content: ReactNode; query: string }) => {\n const { content, query } = props;\n if (typeof content === \"string\" || typeof content === \"number\")\n return <HighlightedText text={String(content)} query={query} />;\n if (Array.isArray(content))\n return content.map((child, index) => <HighlightedCellContent key={index} content={child} query={query} />);\n if (isValidElement<{ children?: ReactNode }>(content) && content.props.children !== undefined)\n return cloneElement(content, {\n children: <HighlightedCellContent content={content.props.children} query={query} />,\n });\n return content;\n};\n\nconst FormattedCell = (props: FormattedCellProps) => {\n const { value, wrapRows, search = \"\" } = props;\n const displayValue = formatDisplayValue(value);\n\n if (isValidElement(displayValue)) {\n return (\n <chakra.span\n display=\"inline-flex\"\n maxWidth=\"full\"\n minW=\"0\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n <HighlightedCellContent content={wrapRows ? displayValue : toSingleLineElement(displayValue)} query={search} />\n </chakra.span>\n );\n }\n\n return (\n <Text\n maxWidth=\"full\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n textStyle=\"paragraph/S/regular\"\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n <HighlightedCellContent content={displayValue} query={search} />\n </Text>\n );\n};\n\ninterface DataCellProps {\n columnLabel: string;\n renderer?: DataTableColumnRenderer;\n value: unknown;\n wrapRows: boolean;\n search?: string;\n}\n\nconst DataCell = (props: DataCellProps) => {\n const { columnLabel, renderer, value, wrapRows, search } = props;\n\n if (renderer?.type === \"json\") return <JsonCell columnLabel={columnLabel} value={value} search={search} />;\n\n if (renderer?.type === \"badge\" && [\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n return (\n <DataTableBadgeCell value={value as string | number | boolean} search={search} categories={renderer.categories} />\n );\n }\n\n if (renderer?.type === \"diff\" && isDataTableDiffValue(value))\n return <DataTableDiffCell value={value} search={search} />;\n\n if (renderer?.type === \"path\" && typeof value === \"string\" && !wrapRows)\n return <DataTablePathCell value={value} search={search} />;\n\n if (renderer?.type === \"date\") {\n if (formatDataTableRelativeDate(value)) return <DataTableDateCell value={value as string} search={search} />;\n }\n\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return <ColorScaleCell value={value} search={search} />;\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) {\n return (\n <CategoricalColorCell>\n <FormattedCell value={value} wrapRows={wrapRows} search={search} />\n </CategoricalColorCell>\n );\n }\n }\n\n return <FormattedCell value={value} wrapRows={wrapRows} search={search} />;\n};\n\nexport const RowIndexCell = (props: CellContext<RowData, number>) => {\n const { getValue } = props;\n return (\n <chakra.span display=\"block\" textStyle=\"paragraph/S/regular\" textAlign=\"center\">\n {getValue()}\n </chakra.span>\n );\n};\n\nexport const ColumnDataCell = (props: CellContext<RowData, unknown>) => {\n const { column, getValue } = props;\n const { renderer, wrapRows = false, search } = column.columnDef.meta as DataTableColumnMeta;\n return (\n <DataCell columnLabel={column.id} renderer={renderer} value={getValue()} wrapRows={wrapRows} search={search} />\n );\n};\n\nexport const ColumnHeader = (props: HeaderContext<RowData, unknown>) => {\n const { column } = props;\n const { headerLabel, headerIcon, columnDescription } = column.columnDef.meta as DataTableColumnMeta;\n return (\n <chakra.span display=\"inline-flex\" alignItems=\"center\" gap=\"4px\" minW=\"0\" maxW=\"full\" overflow=\"hidden\">\n {headerIcon}\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\">\n {headerLabel}\n </chakra.span>\n {columnDescription ? (\n <Tooltip content={columnDescription}>\n <ChakraIcon\n as={CircleHelp}\n aria-label={`About ${headerLabel}`}\n boxSize=\"12px\"\n color=\"fg.muted\"\n cursor=\"help\"\n flexShrink={0}\n opacity={0.6}\n tabIndex={0}\n />\n </Tooltip>\n ) : null}\n </chakra.span>\n );\n};\n","import type { RowSelectionState } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\nimport { resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { resolveColorCellStyle } from \"./color-cell-style\";\nimport { resolveColorScaleValue } from \"./color-scale-cell\";\nimport {\n ColumnDataCell,\n ColumnHeader,\n RowActionsCell,\n RowIndexCell,\n SelectionCell,\n SelectionHeader,\n} from \"./data-table-cell-renderers\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { columnHelper, getIcon } from \"./helpers\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\ninterface BuildColumnsOptions {\n columnIcons?: Partial<Record<string, ReactNode>>;\n columnDescriptions?: Partial<Record<string, string>>;\n compactHeaders?: Partial<Record<string, string>>;\n enableSelection?: boolean;\n selectedRowIds?: RowSelectionState;\n rowActions?: DataTableRowAction[];\n getRowActions?: (row: RowData) => DataTableRowAction[];\n columnRenderers?: Partial<Record<string, DataTableColumnRenderer>>;\n wrapRows?: boolean;\n rowNumbers?: boolean;\n search?: string;\n}\n\nconst resolveDataCellStyle = (value: unknown, renderer?: DataTableColumnRenderer) => {\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return resolveColorCellStyle(color);\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) return resolveColorCellStyle(color);\n }\n};\n\nexport function buildColumns(data: RowData[], columnKeys: string[], options: BuildColumnsOptions = {}) {\n const {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection = false,\n selectedRowIds,\n rowActions = [],\n getRowActions,\n columnRenderers,\n wrapRows = false,\n rowNumbers = true,\n search,\n } = options;\n // Rows arrive in the order the view shows them, so their position is their number.\n const rowIndexColumn = columnHelper.accessor((_row, rowIndex) => rowIndex + 1, {\n header: \"\",\n id: \"rowIndex\",\n enableResizing: false,\n size: 20,\n cell: RowIndexCell,\n });\n\n const selectionColumn = columnHelper.display({\n id: \"rowSelection\",\n header: SelectionHeader,\n cell: SelectionCell,\n meta: { selectedRowIds } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n const dataColumns = columnKeys.map((key) => {\n const fallBackKey = key || \"-\";\n const columnValues = data.map((row) => row[fallBackKey]);\n const renderer = columnRenderers?.[fallBackKey];\n const customIcon = columnIcons?.[fallBackKey];\n const headerIcon = customIcon === undefined ? getIcon(columnValues) : customIcon;\n const columnDescription = columnDescriptions?.[fallBackKey];\n\n return columnHelper.accessor((row) => row[fallBackKey], {\n id: fallBackKey,\n header: ColumnHeader,\n cell: ColumnDataCell,\n meta: {\n headerLabel: compactHeaders?.[fallBackKey] ?? fallBackKey,\n headerIcon,\n columnDescription,\n renderer,\n wrapRows,\n search,\n getCellStyle: (value: unknown) => resolveDataCellStyle(value, renderer),\n } satisfies DataTableColumnMeta,\n enableSorting: false,\n });\n });\n\n const rowActionsColumn = columnHelper.display({\n id: \"rowActions\",\n header: \"\",\n cell: RowActionsCell,\n meta: { rowActions, getRowActions } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n return [\n ...(rowNumbers ? [rowIndexColumn] : []),\n ...(enableSelection ? [selectionColumn] : []),\n ...dataColumns,\n ...(rowActions.length > 0 || getRowActions ? [rowActionsColumn] : []),\n ];\n}\n","import { Box, HStack, Icon, IconButton, Popover, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { closestCenter, DndContext, type DragEndEvent, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { SortableContext, useSortable, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Check, GripVertical, Settings2 } from \"lucide-react\";\nimport { type ReactNode, useEffect, useRef, useState } from \"react\";\nimport { SearchableMenuInput } from \"@/components/overlays/searchable-menu-input\";\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { Switch } from \"@/components/primitives/switch\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { fieldIcon } from \"../collection-view/collection-view-field-icon\";\nimport { DisplayMenuSelect } from \"../kanban-renderer/display-menu\";\nimport type { AttributeDescriptor } from \"../kanban-renderer/types\";\nimport type { DataTableSettings } from \"./types\";\n\nexport interface DataTableDisplayMenuProps {\n /** Every column in display order, hidden ones included. */\n columns: AttributeDescriptor[];\n sortControl?: ReactNode;\n settings: DataTableSettings;\n statsAvailable: boolean;\n onSettingsChange: (settings: Partial<DataTableSettings>) => void;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n onColumnReorder: (activeColumnId: string, overColumnId: string) => void;\n}\n\nconst SectionLabel = (props: { children: string; end?: string }) => (\n <HStack paddingX=\"xs\" paddingTop=\"xs\" paddingBottom=\"2xs\">\n <Text textStyle=\"label/XS/medium\" color=\"fg.muted\">\n {props.children}\n </Text>\n {props.end ? (\n <Text marginLeft=\"auto\" textStyle=\"label/XS\" color=\"fg.subtle\">\n {props.end}\n </Text>\n ) : null}\n </HStack>\n);\n\ninterface SettingSwitchProps {\n label: string;\n hint?: string;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\nconst SettingSwitch = (props: SettingSwitchProps) => (\n <Box paddingX=\"xs\" paddingY=\"2xs\">\n <Switch\n checked={props.checked}\n inputProps={{ role: \"switch\" }}\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n onCheckedChange={(details) => props.onChange(details.checked === true)}\n >\n <HStack as=\"span\" gap=\"xs\">\n <Text as=\"span\" textStyle=\"label/S/regular\">\n {props.label}\n </Text>\n {props.hint ? (\n <Text as=\"span\" textStyle=\"label/XS\" color=\"fg.subtle\">\n {props.hint}\n </Text>\n ) : null}\n </HStack>\n </Switch>\n </Box>\n);\n\ninterface ColumnRowProps {\n column: AttributeDescriptor;\n checked: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n}\n\nconst ColumnRow = (props: ColumnRowProps) => {\n const { column, checked, onColumnVisibilityChange } = props;\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: column.id });\n\n return (\n <HStack\n ref={setNodeRef}\n style={{ transform: CSS.Transform.toString(transform), transition, opacity: isDragging ? 0.5 : 1 }}\n gap=\"2xs\"\n minW=\"0\"\n width=\"full\"\n borderRadius=\"xs\"\n px=\"xs\"\n py=\"2xs\"\n _hover={{ bg: \"bg.hover\" }}\n >\n <Box as=\"span\" display=\"inline-flex\" cursor=\"grab\" color=\"fg.muted\" {...attributes} {...listeners}>\n <GripVertical size={14} />\n </Box>\n <Checkbox\n checked={checked}\n flex=\"1\"\n minW=\"0\"\n size=\"sm\"\n icon={<Icon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onCheckedChange={(details) => onColumnVisibilityChange(column.id, details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\" truncate>\n {column.label}\n </Text>\n </Checkbox>\n <Icon as={fieldIcon(column)} boxSize=\"0.75rem\" color=\"fg.subtle\" flexShrink={0} />\n </HStack>\n );\n};\n\n/** Table display: every setting here is saved with the view. Column width stays local. */\nexport const DataTableDisplayMenu = (props: DataTableDisplayMenuProps) => {\n const { columns, settings, statsAvailable, onSettingsChange, onColumnVisibilityChange, onColumnReorder } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));\n const needle = query.trim().toLowerCase();\n const filteredColumns = needle ? columns.filter((column) => column.label.toLowerCase().includes(needle)) : columns;\n const shownCount = columns.filter((column) => !settings.hiddenColumns.includes(column.id)).length;\n const groupingOptions = [\n { value: \"none\", label: \"None\" },\n ...columns.filter((column) => column.groupable).map((column) => ({ value: column.id, label: column.label })),\n ];\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (over && active.id !== over.id) onColumnReorder(String(active.id), String(over.id));\n };\n\n useEffect(() => {\n if (!open) return;\n // Menus inside the popover render in place, so a click outside both the trigger and the content closes it.\n const closeOnOutsidePointerDown = (event: PointerEvent) => {\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (contentRef.current?.contains(target) || triggerRef.current?.contains(target)) return;\n setOpen(false);\n };\n document.addEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n return () => document.removeEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n }, [open]);\n\n return (\n <Popover.Root\n open={open}\n closeOnInteractOutside={false}\n positioning={{ placement: \"bottom-end\", offset: { mainAxis: 8 }, getAnchorElement: () => triggerRef.current }}\n onOpenChange={(details) => setOpen(details.open)}\n >\n <Tooltip content=\"Display\">\n <Popover.Trigger asChild>\n <IconButton ref={triggerRef} aria-label=\"Display settings\" variant=\"ghost\" size=\"2xs\">\n <Icon as={Settings2} />\n </IconButton>\n </Popover.Trigger>\n </Tooltip>\n <Portal>\n <Popover.Positioner>\n <Popover.Content\n ref={contentRef}\n data-testid=\"data-table-display-menu\"\n width=\"min(300px, calc(100vw - 32px))\"\n padding=\"2xs\"\n gap=\"1px\"\n >\n <SectionLabel>TABLE DISPLAY</SectionLabel>\n {groupingOptions.length > 1 ? (\n <DisplayMenuSelect\n label=\"Grouping\"\n value={settings.grouping}\n options={groupingOptions}\n onSelect={(grouping) => onSettingsChange({ grouping })}\n />\n ) : null}\n {props.sortControl}\n <SettingSwitch\n label=\"Row numbers\"\n checked={settings.rowNumbers}\n onChange={(rowNumbers) => onSettingsChange({ rowNumbers })}\n />\n <SettingSwitch\n label=\"Wrap rows\"\n checked={settings.wrapRows}\n onChange={(wrapRows) => onSettingsChange({ wrapRows })}\n />\n {statsAvailable ? (\n <SettingSwitch\n label=\"Statistics\"\n hint=\"from column stats\"\n checked={settings.showStats}\n onChange={(showStats) => onSettingsChange({ showStats })}\n />\n ) : null}\n <Box borderTopWidth=\"1px\" borderColor=\"border.subtle\" marginY=\"2xs\" />\n <SectionLabel end={`${shownCount} of ${columns.length} shown`}>COLUMNS</SectionLabel>\n <SearchableMenuInput value={query} placeholder=\"Search columns\" onValueChange={setQuery} />\n <ScrollArea maxH=\"280px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\n <SortableContext items={columns.map((column) => column.id)} strategy={verticalListSortingStrategy}>\n <Stack gap=\"1px\" padding=\"2xs\">\n {filteredColumns.map((column) => (\n <ColumnRow\n key={column.id}\n column={column}\n checked={!settings.hiddenColumns.includes(column.id)}\n onColumnVisibilityChange={onColumnVisibilityChange}\n />\n ))}\n </Stack>\n </SortableContext>\n </DndContext>\n </ScrollArea>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { chakra, Icon, Table, Text } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\n\nexport interface DataTableGroupRowProps {\n label: string;\n count: number;\n collapsed: boolean;\n columnCount: number;\n onToggle: () => void;\n}\n\n/** One row per group value. Collapsing it is screen state and is never saved. */\nexport const DataTableGroupRow = (props: DataTableGroupRowProps) => {\n const { label, count, collapsed, columnCount, onToggle } = props;\n return (\n <Table.Row data-testid=\"data-table-group-row\" bg=\"bg.subtle\" borderBottom=\"1px solid\" borderColor=\"border.subtle\">\n <Table.Cell colSpan={columnCount} paddingX=\"xs\" paddingY=\"2xs\" borderBottom=\"none\">\n <chakra.button\n type=\"button\"\n aria-expanded={!collapsed}\n display=\"flex\"\n alignItems=\"center\"\n gap=\"xs\"\n height=\"1.5rem\"\n onClick={onToggle}\n >\n <Icon as={collapsed ? ChevronRight : ChevronDown} boxSize=\"0.875rem\" color=\"fg.muted\" />\n <Text as=\"span\" textStyle=\"label/S/medium\">\n {label}\n </Text>\n <Text as=\"span\" textStyle=\"label/XS\" color=\"fg.muted\">\n {count}\n </Text>\n </chakra.button>\n </Table.Cell>\n </Table.Row>\n );\n};\n","import { Box } from \"@chakra-ui/react\";\nimport { lazy, Suspense } from \"react\";\nimport type { DataTableStatChartProps } from \"./data-table-stat-chart-content\";\n\nconst ChartContent = lazy(() =>\n import(\"./data-table-stat-chart-content\").then((module) => ({ default: module.DataTableStatChart })),\n) as typeof import(\"./data-table-stat-chart-content\").DataTableStatChart;\n\nexport const DataTableStatChart = <T extends object>(props: DataTableStatChartProps<T>) => {\n const { height, ariaLabel } = props;\n // Keep table geometry and labels available while the chart code loads.\n return (\n <Box height={height} width=\"full\" minWidth=\"0\" aria-label={ariaLabel}>\n <Suspense fallback={null}>\n <ChartContent {...props} />\n </Suspense>\n </Box>\n );\n};\n","import { isDisplayValue } from \"./helpers\";\nimport type { RowData } from \"./types\";\n\nexport interface HistogramBin {\n start: number;\n end: number;\n count: number;\n}\n\nexport interface HistogramStat {\n min: number;\n max: number;\n bins: HistogramBin[];\n}\n\nexport interface TopValueStat {\n label: string;\n count: number;\n percentage: number;\n}\n\nconst getStatValue = (value: unknown) => (isDisplayValue(value) ? value.sortValue : value);\n\nconst getColumnStatValues = (rows: RowData[], columnId: string) =>\n rows\n .map((row) => getStatValue(row[columnId]))\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\nexport const countUniqueStatValues = (rows: RowData[], columnId: string) =>\n new Set(getColumnStatValues(rows, columnId)).size;\n\nexport const buildTopValuesStat = (rows: RowData[], columnId: string, limit: number) => {\n const values = getColumnStatValues(rows, columnId);\n const counts = new Map<unknown, number>();\n\n for (const value of values) {\n counts.set(value, (counts.get(value) ?? 0) + 1);\n }\n\n const groups: TopValueStat[] = [...counts.entries()]\n .map(([value, count]) => ({\n label: String(value),\n count,\n percentage: Math.round((count / values.length) * 100),\n }))\n .sort((left, right) => right.count - left.count || left.label.localeCompare(right.label));\n const topGroups = groups.slice(0, limit);\n const otherCount = groups.slice(limit).reduce((total, group) => total + group.count, 0);\n\n if (otherCount === 0) return topGroups;\n\n return [\n ...topGroups,\n {\n label: \"Other\",\n count: otherCount,\n percentage: Math.round((otherCount / values.length) * 100),\n },\n ];\n};\n\nexport const buildHistogramStat = (rows: RowData[], columnId: string, binCount: number): HistogramStat | null => {\n const values = getColumnStatValues(rows, columnId).filter((value): value is number => typeof value === \"number\");\n if (values.length === 0) return null;\n\n const min = Math.min(...values);\n const max = Math.max(...values);\n const binWidth = (max - min) / binCount;\n const bins = Array.from({ length: binCount }, (_, index) => ({\n start: min + binWidth * index,\n end: min + binWidth * (index + 1),\n count: 0,\n }));\n\n for (const value of values) {\n const binIndex = value === max || binWidth === 0 ? binCount - 1 : Math.floor((value - min) / binWidth);\n bins[binIndex]!.count += 1;\n }\n\n return { min, max, bins };\n};\n","import { Box, Flex, Table, Text } from \"@chakra-ui/react\";\nimport type { Header, HeaderGroup } from \"@tanstack/react-table\";\nimport { DataTableStatChart } from \"./data-table-stat-chart\";\nimport { buildHistogramStat, buildTopValuesStat, countUniqueStatValues } from \"./data-table-stats\";\nimport type { DataTableColumnStat, RowData } from \"./types\";\n\nconst formatNumber = new Intl.NumberFormat(undefined, { maximumFractionDigits: 2 }).format;\nconst STAT_CHART_COLOR = \"vis.categorical.1\";\n\ninterface SingleValueStatProps {\n value: string;\n count: number;\n}\n\nconst SingleValueStat = (props: SingleValueStatProps) => {\n const { value, count } = props;\n\n return (\n <Flex data-single-value-stat direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\" minWidth=\"0\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\" maxWidth=\"100%\" truncate>\n {value}\n </Text>\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n {formatNumber(count)} {count === 1 ? \"value\" : \"values\"}\n </Text>\n </Flex>\n );\n};\n\ninterface UniqueStatProps {\n rows: RowData[];\n columnId: string;\n}\n\nconst UniqueStat = (props: UniqueStatProps) => {\n const { rows, columnId } = props;\n const count = countUniqueStatValues(rows, columnId);\n\n return (\n <Flex direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\">\n {formatNumber(count)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n unique values\n </Text>\n </Flex>\n );\n};\n\ninterface HistogramStatProps {\n rows: RowData[];\n columnId: string;\n binCount: number;\n}\n\nconst HistogramStat = (props: HistogramStatProps) => {\n const { rows, columnId, binCount } = props;\n const histogram = buildHistogramStat(rows, columnId, binCount);\n\n if (!histogram) {\n return (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n No numeric values\n </Text>\n );\n }\n\n const valueCount = histogram.bins.reduce((total, bin) => total + bin.count, 0);\n if (histogram.min === histogram.max) {\n return <SingleValueStat value={formatNumber(histogram.min)} count={valueCount} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n <DataTableStatChart\n data={histogram.bins}\n dataKey=\"count\"\n color={STAT_CHART_COLOR}\n height=\"40px\"\n ariaLabel={`Distribution for ${columnId}`}\n tooltipLabel={(bin) => `${formatNumber(bin.start)} – ${formatNumber(bin.end)}`}\n tooltipValue={(value) => `${formatNumber(Number(value))} values`}\n tooltipSeriesLabel=\"Count\"\n />\n <Flex justifyContent=\"space-between\" gap=\"xs\">\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.min)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.max)}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\ninterface TopValuesStatProps {\n rows: RowData[];\n columnId: string;\n limit: number;\n}\n\nconst TopValuesStat = (props: TopValuesStatProps) => {\n const { rows, columnId, limit } = props;\n const groups = buildTopValuesStat(rows, columnId, limit);\n\n if (groups.length === 1 && groups[0]) {\n return <SingleValueStat value={groups[0].label} count={groups[0].count} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n {groups.map((group) => (\n <Box key={group.label} position=\"relative\" height=\"18px\">\n <DataTableStatChart\n data={[group]}\n dataKey=\"percentage\"\n categoryKey=\"label\"\n color={STAT_CHART_COLOR}\n height=\"18px\"\n ariaLabel={`${group.label}: ${group.percentage}%`}\n layout=\"vertical\"\n domain={[0, 100]}\n barSize={18}\n tooltipLabel={(datum) => `${datum.label} · ${formatNumber(datum.count)} values`}\n tooltipValue={(value) => `${formatNumber(Number(value))}%`}\n tooltipSeriesLabel=\"Share\"\n />\n <Flex\n position=\"absolute\"\n inset=\"0\"\n paddingX=\"2xs\"\n justifyContent=\"space-between\"\n gap=\"xs\"\n pointerEvents=\"none\"\n >\n <Text textStyle=\"label/2XS\" color=\"fg.inverted\" truncate>\n {group.label}\n </Text>\n <Text textStyle=\"label/2XS/medium\" color=\"fg.muted\">\n {group.percentage}%\n </Text>\n </Flex>\n </Box>\n ))}\n </Flex>\n );\n};\n\ninterface DataTableStatProps {\n rows: RowData[];\n columnId: string;\n stat: DataTableColumnStat;\n}\n\nconst DataTableStat = (props: DataTableStatProps) => {\n const { rows, columnId, stat } = props;\n\n if (stat.type === \"unique\") return <UniqueStat rows={rows} columnId={columnId} />;\n if (stat.type === \"histogram\") {\n return <HistogramStat rows={rows} columnId={columnId} binCount={stat.bins ?? 10} />;\n }\n return <TopValuesStat rows={rows} columnId={columnId} limit={stat.limit ?? 2} />;\n};\n\ninterface DataTableStatCellProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n}\n\nconst DataTableStatCell = (props: DataTableStatCellProps) => {\n const { header, headerGroup, rows, columnStats, fullWidth } = props;\n const stat = columnStats[header.column.id];\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n data-stat-type={stat?.type}\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n padding=\"xs\"\n verticalAlign=\"middle\"\n overflow=\"hidden\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n {stat ? <DataTableStat rows={rows} columnId={header.column.id} stat={stat} /> : null}\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableStatsRowProps {\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n noBorder?: boolean;\n}\n\nexport const DataTableStatsRow = (props: DataTableStatsRowProps) => {\n const { headerGroup, rows, columnStats, fullWidth, noBorder } = props;\n const hasVisibleStats = headerGroup.headers.some((header) => columnStats[header.column.id]);\n\n if (!hasVisibleStats) return null;\n\n return (\n <Table.Row\n className=\"data-table-stats-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableStatCell\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n rows={rows}\n columnStats={columnStats}\n fullWidth={fullWidth}\n />\n ))}\n </Table.Row>\n );\n};\n","import { Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Table, Text } from \"@chakra-ui/react\";\nimport type { ViewSortDirection } from \"@pstdio/sdk/extensions\";\nimport {\n type Cell,\n flexRender,\n type Header,\n type HeaderGroup,\n type Row,\n type Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport { ArrowDownWideNarrow, ArrowUpNarrowWide, ChevronsUpDown, EyeOff, ListFilter } from \"lucide-react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport type { DataTableCellContext, DataTableProps, RowData } from \"./types\";\n\nconst utilityColumnIds = new Set([\"rowIndex\", \"rowSelection\", \"rowActions\"]);\n\n/** The header field menu is a shortcut into the view: it never keeps a sort or filter of its own. */\nexport interface DataTableFieldMenu {\n sortFor: (columnId: string) => ViewSortDirection | undefined;\n onSort: (columnId: string, direction: ViewSortDirection) => void;\n onFilterBy: (columnId: string) => void;\n onHide: (columnId: string) => void;\n}\n\ninterface DataTableColumnHeaderProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n table: TanStackTable<RowData>;\n fullWidth?: boolean;\n hasDescription?: boolean;\n fieldMenu?: DataTableFieldMenu;\n}\n\nconst sortIcon = (direction: ViewSortDirection | undefined) => {\n if (direction === \"asc\") return ArrowUpNarrowWide;\n if (direction === \"desc\") return ArrowDownWideNarrow;\n return ChevronsUpDown;\n};\n\ninterface FieldMenuItemProps {\n value: string;\n label: string;\n icon: typeof ListFilter;\n onActivate: () => void;\n}\n\nconst FieldMenuItem = (props: FieldMenuItemProps) => (\n <Menu.Item value={props.value} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label={props.label}\n icon={<ChakraIcon as={props.icon} boxSize=\"16px\" />}\n onActivate={props.onActivate}\n />\n </Menu.Item>\n);\n\nexport const DataTableColumnHeader = (props: DataTableColumnHeaderProps) => {\n const { header, headerGroup, fullWidth, hasDescription, fieldMenu } = props;\n const columnId = header.column.id;\n const sort = fieldMenu?.sortFor(columnId);\n const showsFieldMenu = Boolean(fieldMenu) && !utilityColumnIds.has(columnId);\n const tooltipContent =\n columnId === \"rowSelection\" ? \"Select all\" : flexRender(header.column.columnDef.header, header.getContext());\n\n return (\n <Table.ColumnHeader\n data-column-id={columnId}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n key={header.id}\n overflow=\"hidden\"\n position=\"relative\"\n verticalAlign=\"middle\"\n whiteSpace=\"nowrap\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n <Tooltip content={tooltipContent} disabled={hasDescription}>\n <Flex className=\"group\" alignItems=\"center\" justifyContent=\"space-between\" gap=\"1\" flex=\"1\" minW=\"0\">\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n {showsFieldMenu && fieldMenu ? (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton\n ml=\"2px\"\n size=\"2xs\"\n minW=\"auto\"\n paddingX=\"2xs\"\n aria-label={sort ? `Sorted ${sort}` : \"Column options\"}\n variant=\"ghost\"\n color={sort ? \"fg\" : \"fg.subtle\"}\n >\n <ChakraIcon as={sortIcon(sort)} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n <FieldMenuItem\n value=\"sort-asc\"\n label=\"Sort ascending\"\n icon={ArrowUpNarrowWide}\n onActivate={() => fieldMenu.onSort(columnId, \"asc\")}\n />\n <FieldMenuItem\n value=\"sort-desc\"\n label=\"Sort descending\"\n icon={ArrowDownWideNarrow}\n onActivate={() => fieldMenu.onSort(columnId, \"desc\")}\n />\n <Menu.Separator />\n <FieldMenuItem\n value=\"filter\"\n label=\"Filter by this field\"\n icon={ListFilter}\n onActivate={() => fieldMenu.onFilterBy(columnId)}\n />\n <FieldMenuItem\n value=\"hide\"\n label=\"Hide column\"\n icon={EyeOff}\n onActivate={() => fieldMenu.onHide(columnId)}\n />\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n ) : null}\n {header.column.getCanResize() && (\n <span\n {...{\n onDoubleClick: () => header.column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: `resizer ${header.column.getIsResizing() ? \"isResizing\" : \"\"}`,\n }}\n />\n )}\n </Flex>\n </Tooltip>\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableCellViewProps {\n cell: Cell<RowData, unknown>;\n row: Row<RowData>;\n wrapRows: boolean;\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nconst DataTableCellView = (props: DataTableCellViewProps) => {\n const { cell, row, wrapRows, getCellContextMenuActions } = props;\n const columnMeta = cell.column.columnDef.meta as DataTableColumnMeta | undefined;\n const cellStyle = columnMeta?.getCellStyle?.(cell.getValue());\n const cellContext: DataTableCellContext = {\n row: row.original,\n rowId: row.id,\n columnId: cell.column.id,\n value: cell.getValue(),\n };\n const contextActions =\n getCellContextMenuActions?.(cellContext).map((action) => ({\n key: action.label,\n label: action.label,\n icon: action.icon,\n onClick: () => action.onSelect(cellContext),\n })) ?? [];\n const cellElement = (\n <Table.Cell\n data-column-id={cell.column.id}\n width=\"fit-content\"\n maxWidth=\"12rem\"\n overflow=\"hidden\"\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n padding=\"xs\"\n height={wrapRows ? undefined : \"10\"}\n maxHeight={wrapRows ? undefined : \"10\"}\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n key={cell.id}\n textStyle=\"paragraph/S/regular\"\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n verticalAlign={wrapRows ? \"top\" : \"middle\"}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n style={cellStyle}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n\n if (contextActions.length === 0) return cellElement;\n\n return (\n <ResourceContextMenu key={cell.id} actions={contextActions}>\n {cellElement}\n </ResourceContextMenu>\n );\n};\n\ninterface DataTableBodyRowProps {\n row: Row<RowData>;\n noBorder?: boolean;\n rowIsInteractive: boolean;\n rowIsActive: boolean;\n rowIsSelected: boolean;\n wrapRows: boolean;\n onRowClick?: DataTableProps[\"onRowClick\"];\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nexport const DataTableBodyRow = (props: DataTableBodyRowProps) => {\n const {\n row,\n noBorder,\n rowIsInteractive,\n rowIsActive,\n rowIsSelected,\n wrapRows,\n onRowClick,\n getCellContextMenuActions,\n } = props;\n\n return (\n <Table.Row\n key={row.id}\n data-active={rowIsActive ? \"true\" : undefined}\n data-selected={rowIsSelected ? \"true\" : undefined}\n aria-selected={rowIsSelected ? \"true\" : undefined}\n height={wrapRows ? undefined : \"10\"}\n cursor={rowIsInteractive ? \"pointer\" : undefined}\n onClick={rowIsInteractive ? () => onRowClick?.(row.original) : undefined}\n borderTop={noBorder ? \"none\" : \"1px solid\"}\n borderBottom=\"1px solid\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n _last={{ borderBottom: noBorder ? \"none\" : \"1px solid\", borderColor: \"border.subtle\" }}\n borderColor=\"border.subtle\"\n background={rowIsActive ? \"bg.active\" : \"bg\"}\n >\n {row.getVisibleCells().map((cell) => (\n <DataTableCellView\n key={cell.id}\n cell={cell}\n row={row}\n wrapRows={wrapRows}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n ))}\n </Table.Row>\n );\n};\n","import { Box, Table } from \"@chakra-ui/react\";\nimport type { Table as TanStackTable } from \"@tanstack/react-table\";\nimport { Fragment } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { DataTableGroupRow } from \"./data-table-group-row\";\nimport type { DataTablePageEntry } from \"./data-table-grouping\";\nimport type { DataTableRendererRow } from \"./data-table-state\";\nimport { getSelectedOriginalRows, shouldHighlightActiveRow } from \"./data-table-state\";\nimport { DataTableStatsRow } from \"./data-table-stats-row\";\nimport { DataTableBodyRow, DataTableColumnHeader, type DataTableFieldMenu } from \"./data-table-table-parts\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableProps, DataTableSelectionAction, DataTableSettings, RowData } from \"./types\";\n\nexport interface DataTableGridProps\n extends Pick<\n DataTableProps,\n | \"noBorder\"\n | \"fullWidth\"\n | \"onRowClick\"\n | \"isRowInteractive\"\n | \"activeRowId\"\n | \"columnDescriptions\"\n | \"columnStats\"\n | \"enableRowActivation\"\n | \"getCellContextMenuActions\"\n > {\n table: TanStackTable<RowData>;\n /** The rows and group rows of the current page, in shown order. */\n entries: DataTablePageEntry<DataTableRendererRow>[];\n collapsed: Set<string>;\n onToggleGroup: (key: string) => void;\n settings: DataTableSettings;\n /** Every shown row, for the statistics row. */\n data: RowData[];\n fieldMenu: DataTableFieldMenu;\n /** Set when rows can be selected. */\n selectionActions?: DataTableSelectionAction[];\n}\n\nconst resolveColumnSizeVars = (table: TanStackTable<RowData>) => {\n const colSizes: Record<string, number> = {};\n for (const header of table.getFlatHeaders()) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n return colSizes;\n};\n\nexport const DataTableGrid = (props: DataTableGridProps) => {\n const { table, entries, collapsed, onToggleGroup, settings, data, fieldMenu, selectionActions } = props;\n const { noBorder, fullWidth, onRowClick, isRowInteractive, activeRowId, columnDescriptions, columnStats } = props;\n const { enableRowActivation = false, getCellContextMenuActions } = props;\n const tableRowsById = new Map(table.getRowModel().rows.map((row) => [row.id, row]));\n const columnSizeVars = resolveColumnSizeVars(table);\n const selectedRows = table.getSelectedRowModel().rows;\n\n return (\n <Box position=\"relative\" flex=\"1\" minHeight=\"0\">\n <ScrollArea height=\"100%\" maxWidth=\"unset\" showHorizontalScrollbar>\n <Table.Root\n className={`data-table${fullWidth ? \" full-width\" : \"\"}`}\n style={{ ...columnSizeVars, width: fullWidth ? \"100%\" : table.getTotalSize() }}\n >\n <Table.Header>\n {table.getHeaderGroups().map((headerGroup) => (\n <Fragment key={headerGroup.id}>\n <Table.Row\n className=\"data-table-column-header-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableColumnHeader\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n table={table}\n fullWidth={fullWidth}\n hasDescription={Boolean(columnDescriptions?.[header.column.id])}\n fieldMenu={fieldMenu}\n />\n ))}\n </Table.Row>\n {columnStats && settings.showStats ? (\n <DataTableStatsRow\n headerGroup={headerGroup}\n rows={data}\n columnStats={columnStats}\n noBorder={noBorder}\n fullWidth={fullWidth}\n />\n ) : null}\n </Fragment>\n ))}\n </Table.Header>\n <Table.Body>\n {entries.map((entry) => {\n if (entry.kind === \"group\") {\n const { key } = entry.group;\n return (\n <DataTableGroupRow\n key={`group:${key}`}\n label={entry.group.label}\n count={entry.group.rows.length}\n collapsed={collapsed.has(key)}\n columnCount={table.getVisibleLeafColumns().length}\n onToggle={() => onToggleGroup(key)}\n />\n );\n }\n const row = tableRowsById.get(entry.row.id);\n if (!row) return null;\n return (\n <DataTableBodyRow\n key={row.id}\n row={row}\n noBorder={noBorder}\n rowIsInteractive={onRowClick ? (isRowInteractive?.(row.original) ?? true) : false}\n rowIsActive={shouldHighlightActiveRow({ enableRowActivation, activeRowId, rowId: row.id })}\n rowIsSelected={row.getIsSelected()}\n wrapRows={settings.wrapRows}\n onRowClick={onRowClick}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n );\n })}\n </Table.Body>\n </Table.Root>\n </ScrollArea>\n {selectionActions && selectedRows.length > 0 ? (\n <SelectionToolbar\n selectedCount={selectedRows.length}\n totalCount={data.length}\n onClearSelection={() => table.toggleAllRowsSelected(false)}\n onSelectAll={() => table.toggleAllRowsSelected(true)}\n actions={selectionActions}\n selectedRows={getSelectedOriginalRows(selectedRows)}\n />\n ) : null}\n </Box>\n );\n};\n","import type { CollectionRowGroup } from \"../collection-view/collection-view-grouping\";\nimport type { KanbanRendererRow } from \"../kanban-renderer/types\";\n\nexport type DataTablePageEntry<TRow extends KanbanRendererRow> =\n | { kind: \"group\"; group: CollectionRowGroup<TRow> }\n | { kind: \"row\"; row: TRow };\n\n/**\n * Pages count rows. A group that continues on the next page repeats its group row there, and a\n * collapsed group sits where its rows would start.\n */\nexport const pageGroupedRows = <TRow extends KanbanRendererRow>(\n groups: CollectionRowGroup<TRow>[],\n collapsed: Set<string>,\n pageIndex: number,\n pageSize: number,\n) => {\n const shown = (group: CollectionRowGroup<TRow>) => (collapsed.has(group.key) ? [] : group.rows);\n const shownCount = groups.reduce((count, group) => count + shown(group).length, 0);\n const pageCount = Math.max(1, Math.ceil(shownCount / pageSize));\n const page = Math.min(pageIndex, pageCount - 1);\n const start = page * pageSize;\n const end = start + pageSize;\n const entries: DataTablePageEntry<TRow>[] = [];\n let position = 0;\n for (const group of groups) {\n const rows = shown(group);\n const groupStart = position;\n position += rows.length;\n const onPage =\n rows.length === 0\n ? (groupStart >= start && groupStart < end) || (groupStart === shownCount && page === pageCount - 1)\n : position > start && groupStart < end;\n if (!onPage) continue;\n entries.push({ kind: \"group\", group });\n for (let index = Math.max(groupStart, start); index < Math.min(position, end); index += 1)\n entries.push({ kind: \"row\", row: rows[index - groupStart]! });\n }\n return { entries, pageCount, page };\n};\n\nexport const pageRows = <TRow extends KanbanRendererRow>(rows: TRow[], pageIndex: number, pageSize: number) => {\n const pageCount = Math.max(1, Math.ceil(rows.length / pageSize));\n const page = Math.min(pageIndex, pageCount - 1);\n const entries: DataTablePageEntry<TRow>[] = rows\n .slice(page * pageSize, (page + 1) * pageSize)\n .map((row) => ({ kind: \"row\", row }));\n return { entries, pageCount, page };\n};\n","import \"./data-table.css\";\n\nimport { Flex } from \"@chakra-ui/react\";\nimport { getCoreRowModel, type RowSelectionState, useReactTable } from \"@tanstack/react-table\";\nimport { useState } from \"react\";\nimport { CollectionViewEmptyState } from \"../collection-view/collection-view-empty-state\";\nimport { findField } from \"../collection-view/collection-view-fields\";\nimport { DisplaySortControl } from \"../collection-view/display-sort-control\";\nimport { buildColumns } from \"./build-columns\";\nimport { DataTableDisplayMenu } from \"./data-table-display-menu\";\nimport { DataTableGrid } from \"./data-table-grid\";\nimport { pageGroupedRows, pageRows } from \"./data-table-grouping\";\nimport { DataTableHeader } from \"./data-table-header\";\nimport {\n reorderDataTableColumns,\n resolveInitialPageSize,\n resolveSelectionActions,\n shouldEnableSelection,\n toggleHiddenDataTableColumn,\n} from \"./data-table-state\";\nimport type { DataTableFieldMenu } from \"./data-table-table-parts\";\nimport { EditModeDataTable } from \"./edit-mode-data-table\";\nimport { PaginationFooter } from \"./pagination-footer\";\nimport type { DataTableProps } from \"./types\";\nimport { useDataTableView } from \"./use-data-table-view\";\n\nconst DatasetDataTable = (props: DataTableProps) => {\n const {\n noBorder,\n fullWidth,\n onRowClick,\n isRowInteractive,\n activeRowId,\n columnIcons,\n columnDescriptions,\n compactHeaders,\n columnStats,\n columnRenderers,\n initialPageSize,\n pageSizeOptions = [10, 20, 30, 50, 100],\n rowActions = [],\n getRowActions,\n enableRowActivation = false,\n getCellContextMenuActions,\n } = props;\n const view = useDataTableView(props);\n const { settings, setSettings, sorts, setSorts, filter, startRule } = view;\n // A different filter, sort, grouping, or search starts again on the first page.\n const pageKey = JSON.stringify([filter, sorts, settings.grouping, view.deferredSearch]);\n const [pagePosition, setPagePosition] = useState({ key: pageKey, index: 0 });\n const pageIndex = pagePosition.key === pageKey ? pagePosition.index : 0;\n const setPageIndex = (index: number) => setPagePosition({ key: pageKey, index });\n const [pageSize, setPageSize] = useState(() => resolveInitialPageSize({ initialPageSize }));\n const [collapsed, setCollapsed] = useState<Set<string>>(() => new Set());\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const enableSelection = shouldEnableSelection(props);\n const selectionActions = resolveSelectionActions(props);\n const { groups } = view;\n // Rows in collapsed groups leave the pages but still count for statistics, selection, and row numbers.\n const shownRows = groups ? groups.flatMap((group) => group.rows) : view.shownRows;\n const page = groups\n ? pageGroupedRows(groups, collapsed, pageIndex, pageSize)\n : pageRows(shownRows, pageIndex, pageSize);\n const data = shownRows.map((row) => row.sourceRow);\n const idBySource = new Map(shownRows.map((row) => [row.sourceRow, row.id]));\n const columns = buildColumns(data, view.visibleColumnKeys, {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection,\n rowActions,\n getRowActions,\n selectedRowIds: rowSelection,\n columnRenderers,\n wrapRows: settings.wrapRows,\n rowNumbers: settings.rowNumbers,\n search: view.deferredSearch,\n });\n\n const table = useReactTable({\n data,\n columns,\n defaultColumn: { size: 150, minSize: 40, maxSize: 800 },\n state: { rowSelection },\n getRowId: (row) => idBySource.get(row) ?? \"\",\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n onRowSelectionChange: setRowSelection,\n getCoreRowModel: getCoreRowModel(),\n enableMultiRowSelection: enableSelection,\n enableRowSelection: enableSelection,\n autoResetAll: false,\n });\n\n const fieldMenu: DataTableFieldMenu = {\n sortFor: (columnId) => {\n const sort = sorts[0];\n return sort?.attributeId === columnId ? sort.direction : undefined;\n },\n // Header and Display edit the same single ordering.\n onSort: (columnId, direction) => setSorts([{ attributeId: columnId, direction }]),\n onFilterBy: (columnId) => {\n const field = findField(view.attributes, columnId);\n if (field) startRule(field);\n },\n onHide: (columnId) =>\n setSettings({ hiddenColumns: toggleHiddenDataTableColumn(settings.hiddenColumns, columnId, false) }),\n };\n\n const total = view.rows.length;\n const nothingShown = total > 0 && view.shownRows.length === 0 && Boolean(view.deferredSearch.trim());\n\n return (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n <DataTableHeader\n itemLabel={props.itemLabel}\n view={view}\n viewsSource={props.viewsSource}\n actions={props.toolbarActions}\n displayControl={\n <DataTableDisplayMenu\n columns={view.attributes}\n sortControl={<DisplaySortControl fields={view.attributes} sorts={sorts} onSortsChange={setSorts} />}\n settings={settings}\n statsAvailable={Boolean(columnStats)}\n onSettingsChange={setSettings}\n onColumnVisibilityChange={(columnId, visible) =>\n setSettings({ hiddenColumns: toggleHiddenDataTableColumn(settings.hiddenColumns, columnId, visible) })\n }\n onColumnReorder={(activeColumnId, overColumnId) =>\n setSettings({\n columnOrder: reorderDataTableColumns(view.orderedColumnKeys, activeColumnId, overColumnId),\n })\n }\n />\n }\n />\n {props.contentPlaceholder ??\n (nothingShown ? (\n <CollectionViewEmptyState search={view.deferredSearch} onClearSearch={() => view.setSearch(\"\")} />\n ) : (\n <DataTableGrid\n table={table}\n entries={page.entries}\n collapsed={collapsed}\n onToggleGroup={(key) =>\n setCollapsed((current) => {\n const next = new Set(current);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n })\n }\n settings={settings}\n data={data}\n fieldMenu={fieldMenu}\n selectionActions={enableSelection ? selectionActions : undefined}\n noBorder={noBorder}\n fullWidth={fullWidth}\n onRowClick={onRowClick}\n isRowInteractive={isRowInteractive}\n activeRowId={activeRowId}\n columnDescriptions={columnDescriptions}\n columnStats={columnStats}\n enableRowActivation={enableRowActivation}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n ))}\n {page.pageCount > 1 ? (\n <PaginationFooter\n pageCount={page.pageCount}\n pageIndex={page.page}\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n onPageChange={setPageIndex}\n onPageSizeChange={(size) => {\n setPageSize(size);\n setPageIndex(0);\n }}\n />\n ) : null}\n </Flex>\n );\n};\n\nexport const DataTable = (props: DataTableProps) => {\n if (props.editMode) return <EditModeDataTable {...props} />;\n return <DatasetDataTable {...props} />;\n};\n","import \"./data-table.css\";\n\nimport { Skeleton, Table, Text } from \"@chakra-ui/react\";\n\nexport interface DataTableSkeletonColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableSkeletonProps {\n /** Real column headers when the caller already knows them. */\n columns?: DataTableSkeletonColumn[];\n /** Placeholder column count when the headers are still unknown. */\n columnCount?: number;\n rowCount?: number;\n}\n\n// Deterministic width variation keeps the shimmer organic without re-rendering\n// to a different layout on every mount.\nconst cellWidths = [\"70%\", \"45%\", \"60%\", \"35%\", \"55%\"];\n\nexport const DataTableSkeleton = (props: DataTableSkeletonProps) => {\n const { columns, columnCount = 3, rowCount = 5 } = props;\n const headers =\n columns && columns.length > 0\n ? columns\n : Array.from({ length: columnCount }, (_, index) => ({ id: `column-${index + 1}`, label: \"\" }));\n\n return (\n <Table.Root className=\"data-table full-width\" width=\"100%\">\n <Table.Header>\n <Table.Row className=\"data-table-column-header-row\" borderRight=\"1px solid\" borderColor=\"border.subtle\">\n {headers.map((column) => (\n <Table.ColumnHeader\n key={column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n whiteSpace=\"nowrap\"\n >\n {column.label ? (\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {column.label}\n </Text>\n ) : (\n <Skeleton height=\"12px\" width=\"4rem\" borderRadius=\"xs\" />\n )}\n </Table.ColumnHeader>\n ))}\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {Array.from({ length: rowCount }, (_, rowIndex) => (\n <Table.Row key={rowIndex}>\n {headers.map((column, columnIndex) => (\n <Table.Cell\n key={column.id}\n padding=\"xs\"\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n >\n <Skeleton\n height=\"14px\"\n width={cellWidths[(rowIndex + columnIndex) % cellWidths.length]}\n borderRadius=\"xs\"\n />\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Root>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-table.js","names":["ReactNode","DataTableCategoricalColor","CategoricalColorCellProps","children","resolveCategoricalColor","value","categories","find","category","Object","is","color","CategoricalColorCell","props","DataTableThemeColor","RgbColor","r","g","b","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","split","map","character","join","parseHexColor","color","normalized","trim","startsWith","slice","expandedHex","length","test","Number","parseInt","toLinearChannel","channel","relativeLuminance","contrastRatio","foreground","background","foregroundLuminance","backgroundLuminance","lighter","Math","max","darker","min","toHexColor","toHexChannel","round","toString","padStart","mixRgbColors","start","end","endWeight","contrastRatioForHexColors","foregroundColor","backgroundColor","findMatchingForeground","target","step","candidate","resolveReadableTextColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","light","darkForeground","dark","Text","HighlightedText","mixHexColors","DataTableColorScaleStop","DataTableThemeColor","ColorScaleCellProps","value","search","toDisplayPercent","Math","round","mixColors","startColor","endColor","startWeight","mixedColor","mixThemeColors","start","end","foreground","light","dark","undefined","resolveColorScaleValue","stops","Number","isFinite","length","firstStop","lastStop","range","color","endIndex","findIndex","stop","startStop","endStop","segmentProgress","ColorScaleCell","props","$","_c","t0","t1","String","t2","_c","Badge","HighlightedText","DataTableBadgeCategory","DataTableBadgeCellProps","value","search","categories","DataTableBadgeCell","props","$","_c","t0","undefined","t1","find","category","palette","t2","String","t3","t4","_c","HighlightedText","DiffBubble","DataTableDiffValue","DataTableDiffCell","props","$","_c","value","search","t0","undefined","t1","additions","t2","t3","deletions","t4","t5","_c","chakra","Tooltip","HighlightedText","visibleEndLength","DataTablePathCell","props","$","_c","value","search","t0","undefined","t1","slice","start","t2","end","t3","t4","t5","t6","_c","Tooltip","Button","HStack","Image","Popover","Portal","Text","Braces","ChevronRight","ScrollArea","HighlightedText","buildJsonFields","FriendlyJsonDisplay","getJsonCellSummary","isJsonImageArray","isJsonImageValue","JsonCellProps","columnLabel","value","search","stopRowActivation","event","stopPropagation","JsonCell","props","$","_c","t0","undefined","T0","T1","T2","summary","t1","t10","t11","t12","t2","t3","t4","t5","t6","t7","t8","t9","fields","imageFields","flatMap","_temp","slice","t13","Root","Symbol","for","placement","offset","mainAxis","Trigger","length","map","_temp2","t14","t15","t16","t17","overscrollBehavior","t18","t19","field","label","Array","isArray","image","index","field_0","String","_c","_temp","_temp2","ScrollArea","Icon","ChakraIcon","chakra","IconButton","Menu","Portal","Text","CellContext","HeaderContext","Check","ChevronDown","CircleHelp","Minus","CSSProperties","cloneElement","isValidElement","ReactNode","Checkbox","Tooltip","HighlightedText","ListRow","CategoricalColorCell","resolveCategoricalColor","ColorScaleCell","resolveColorScaleValue","DataTableBadgeCell","isDataTableDiffValue","DataTableColumnMeta","DataTableDateCell","formatDataTableRelativeDate","DataTableDiffCell","DataTablePathCell","formatDisplayValue","JsonCell","DataTableColumnRenderer","DataTableRowAction","RowData","toSingleLineElement","element","style","props","flexWrap","minWidth","whiteSpace","stopControlPropagation","event","stopPropagation","SelectionHeader","$","_c","table","t0","getIsAllRowsSelected","checked","isIndeterminate","getIsSomeRowsSelected","t1","t2","t3","t4","details","toggleAllRowsSelected","t5","SelectionCell","row","column","selectedRowIds","columnDef","meta","Boolean","id","Symbol","for","toggleSelected","mergeRowActions","rowActions","dynamicActions","dynamicLabels","Set","map","action","label","filter","has","RowActionsCell","getRowActions","getActions","T0","T1","T2","T3","bb0","actions","undefined","resolvedActions","original","length","Root","Positioner","Content","t6","destructive","icon","onSelect","t7","t8","t9","FormattedCellProps","value","wrapRows","search","HighlightedCellContent","content","query","String","Array","isArray","child","index","children","FormattedCell","displayValue","DataCellProps","columnLabel","renderer","DataCell","type","includes","categories","color","stops","color_0","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","headerIcon","columnDescription","_c","ChakraIcon","Checkbox","Tooltip","RowSelectionState","ReactNode","resolveCategoricalColor","resolveColorCellStyle","resolveColorScaleValue","ColumnDataCell","ColumnHeader","RowActionsCell","RowIndexCell","SelectionCell","SelectionHeader","DataTableColumnMeta","columnHelper","getIcon","DataTableColumnRenderer","DataTableRowAction","RowData","BuildColumnsOptions","columnIcons","Partial","Record","columnDescriptions","compactHeaders","enableSelection","selectedRowIds","rowActions","getRowActions","row","columnRenderers","wrapRows","rowNumbers","search","resolveDataCellStyle","value","renderer","type","color","stops","categories","buildColumns","data","columnKeys","options","rowIndexColumn","accessor","_row","rowIndex","header","id","enableResizing","size","cell","selectionColumn","display","meta","enableSorting","dataColumns","map","key","fallBackKey","columnValues","customIcon","headerIcon","undefined","columnDescription","headerLabel","getCellStyle","rowActionsColumn","length","Box","HStack","Icon","IconButton","Popover","Portal","Stack","Text","closestCenter","DndContext","DragEndEvent","PointerSensor","useSensor","useSensors","SortableContext","useSortable","verticalListSortingStrategy","CSS","Check","GripVertical","Settings2","ReactNode","useEffect","useRef","useState","SearchableMenuInput","Checkbox","ScrollArea","Switch","Tooltip","fieldIcon","DisplayMenuSelect","AttributeDescriptor","DataTableSettings","DataTableDisplayMenuProps","columns","sortControl","settings","statsAvailable","onSettingsChange","Partial","onColumnVisibilityChange","columnId","visible","onColumnReorder","activeColumnId","overColumnId","SectionLabel","props","$","_c","t0","children","t1","end","t2","SettingSwitchProps","label","hint","checked","onChange","SettingSwitch","Symbol","for","role","details","t3","t4","t5","ColumnRowProps","column","ColumnRow","id","attributes","listeners","setNodeRef","transform","transition","isDragging","Transform","toString","opacity","bg","t6","t7","t8","t9","t10","t11","t12","t13","DataTableDisplayMenu","triggerRef","contentRef","open","setOpen","query","setQuery","activationConstraint","distance","sensors","needle","trim","toLowerCase","filter","includes","filteredColumns","hiddenColumns","column_0","shownCount","length","value","_temp","map","_temp2","groupingOptions","event","active","over","String","handleDragEnd","closeOnOutsidePointerDown","event_0","target","Node","current","contains","document","addEventListener","removeEventListener","placement","offset","mainAxis","getAnchorElement","grouping","t14","rowNumbers","t15","t16","wrapRows","t17","t18","showStats","t19","t20","t21","t22","t23","overscrollBehavior","t24","_temp3","t25","t26","column_4","t27","t28","t29","t30","column_1","groupable","column_2","column_3","_c","Switch","Checkbox","_temp","_temp2","Tooltip","_temp3","ScrollArea","chakra","Icon","Table","Text","ChevronDown","ChevronRight","DataTableGroupRowProps","label","count","collapsed","columnCount","onToggle","DataTableGroupRow","props","$","_c","t0","t1","t2","t3","t4","t5","t6","_c","Box","lazy","Suspense","DataTableStatChartProps","ChartContent","then","module","default","DataTableStatChart","props","$","_c","height","ariaLabel","t0","t1","_c","isDisplayValue","RowData","HistogramBin","start","end","count","HistogramStat","min","max","bins","TopValueStat","label","percentage","getStatValue","value","sortValue","getColumnStatValues","rows","columnId","map","row","filter","undefined","countUniqueStatValues","Set","size","buildTopValuesStat","limit","values","counts","Map","set","get","groups","entries","String","Math","round","length","sort","left","right","localeCompare","topGroups","slice","otherCount","reduce","total","group","buildHistogramStat","binCount","binWidth","Array","from","_","index","binIndex","floor","Box","Flex","Table","Text","Header","HeaderGroup","DataTableStatChart","buildHistogramStat","buildTopValuesStat","countUniqueStatValues","DataTableColumnStat","RowData","formatNumber","Intl","NumberFormat","undefined","maximumFractionDigits","format","STAT_CHART_COLOR","SingleValueStatProps","value","count","SingleValueStat","props","$","_c","t0","t1","t2","t3","t4","UniqueStatProps","rows","columnId","UniqueStat","T0","T1","t5","t6","t7","Symbol","for","t8","HistogramStatProps","binCount","HistogramStat","T2","t10","t9","bb0","histogram","t11","valueCount","bins","reduce","_temp","min","max","_temp2","_temp3","t12","t13","TopValuesStatProps","limit","TopValuesStat","groups","length","label","map","_temp6","DataTableStatProps","stat","DataTableStat","type","DataTableStatCellProps","header","headerGroup","columnStats","Partial","Record","fullWidth","DataTableStatCell","column","id","borderRight","headers","indexOf","width","DataTableStatsRowProps","noBorder","DataTableStatsRow","hasVisibleStats","some","header_0","total","bin","bin_0","start","end","Number","_temp4","datum","_temp5","group","percentage","_c","_temp","_temp2","Icon","ChakraIcon","Flex","IconButton","Menu","Portal","Table","Text","ViewSortDirection","Cell","flexRender","Header","HeaderGroup","Row","TanStackTable","ArrowDownWideNarrow","ArrowUpNarrowWide","ChevronsUpDown","EyeOff","ListFilter","ResourceContextMenu","Tooltip","ListRow","DataTableColumnMeta","DataTableCellContext","DataTableProps","RowData","utilityColumnIds","Set","DataTableFieldMenu","sortFor","columnId","onSort","direction","onFilterBy","onHide","DataTableColumnHeaderProps","header","headerGroup","table","fullWidth","hasDescription","fieldMenu","sortIcon","FieldMenuItemProps","value","label","icon","onActivate","FieldMenuItem","props","$","_c","t0","t1","t2","DataTableColumnHeader","column","id","T0","T1","T2","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t3","t4","t5","t6","t7","t8","t9","sort","showsFieldMenu","Boolean","has","t23","columnDef","getContext","tooltipContent","ColumnHeader","Symbol","for","borderRight","t24","headers","indexOf","length","undefined","width","t25","getCanResize","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","className","getIsResizing","t26","DataTableCellViewProps","cell","row","wrapRows","getCellContextMenuActions","DataTableCellView","columnMeta","meta","getCellStyle","getValue","cellStyle","original","cellContext","rowId","map","action","key","onClick","onSelect","contextActions","cellElement","DataTableBodyRowProps","noBorder","rowIsInteractive","rowIsActive","rowIsSelected","onRowClick","DataTableBodyRow","borderBottom","borderColor","getVisibleCells","_c","ChakraIcon","Tooltip","Box","Table","TanStackTable","Fragment","ScrollArea","DataTableGroupRow","DataTablePageEntry","DataTableRendererRow","getSelectedOriginalRows","shouldHighlightActiveRow","DataTableStatsRow","DataTableBodyRow","DataTableColumnHeader","DataTableFieldMenu","SelectionToolbar","DataTableProps","DataTableSelectionAction","DataTableSettings","RowData","DataTableGridProps","Pick","table","entries","collapsed","Set","onToggleGroup","key","settings","data","fieldMenu","selectionActions","resolveColumnSizeVars","colSizes","Record","header","getFlatHeaders","id","getSize","column","DataTableGrid","props","$","_c","noBorder","fullWidth","onRowClick","isRowInteractive","activeRowId","columnDescriptions","columnStats","enableRowActivation","t0","getCellContextMenuActions","undefined","t1","tableRowsById","Map","getRowModel","rows","map","_temp","t2","columnSizeVars","selectedRows","getSelectedRowModel","t3","t4","getTotalSize","t5","width","t6","getHeaderGroups","headerGroup","headers","Boolean","showStats","t7","t8","entry","kind","group","label","length","has","getVisibleLeafColumns","row_0","get","row","original","rowId","getIsSelected","wrapRows","t9","t10","toggleAllRowsSelected","_c","_temp","Fragment","ScrollArea","CollectionRowGroup","KanbanRendererRow","DataTablePageEntry","kind","group","TRow","row","pageGroupedRows","groups","collapsed","Set","pageIndex","pageSize","shown","has","key","rows","shownCount","reduce","count","length","pageCount","Math","max","ceil","page","min","start","end","entries","position","groupStart","onPage","push","index","pageRows","slice","map","Box","Flex","getCoreRowModel","RowSelectionState","useReactTable","useState","CollectionViewEmptyState","findField","DisplaySortControl","buildColumns","DataTableDisplayMenu","DataTableGrid","pageGroupedRows","pageRows","DataTableHeader","reorderDataTableColumns","resolveInitialPageSize","resolveSelectionActions","shouldEnableSelection","toggleHiddenDataTableColumn","DataTableFieldMenu","EditModeDataTable","PaginationFooter","DataTableProps","useDataTableView","DatasetDataTable","props","noBorder","fullWidth","onRowClick","isRowInteractive","activeRowId","columnIcons","columnDescriptions","compactHeaders","columnStats","columnRenderers","initialPageSize","pageSizeOptions","rowActions","getRowActions","enableRowActivation","getCellContextMenuActions","view","settings","setSettings","sorts","setSorts","filter","startRule","pageKey","JSON","stringify","grouping","deferredSearch","pagePosition","setPagePosition","key","index","pageIndex","setPageIndex","pageSize","setPageSize","collapsed","setCollapsed","Set","rowSelection","setRowSelection","enableSelection","selectionActions","groups","shownRows","flatMap","group","rows","page","data","map","row","sourceRow","idBySource","Map","id","columns","visibleColumnKeys","selectedRowIds","wrapRows","rowNumbers","search","table","defaultColumn","size","minSize","maxSize","state","getRowId","get","columnResizeMode","columnResizeDirection","onRowSelectionChange","enableMultiRowSelection","enableRowSelection","autoResetAll","fieldMenu","sortFor","columnId","sort","attributeId","direction","undefined","onSort","onFilterBy","field","attributes","onHide","hiddenColumns","total","length","nothingShown","Boolean","trim","itemLabel","viewsSource","toolbarActions","visible","activeColumnId","overColumnId","columnOrder","orderedColumnKeys","contentPlaceholder","setSearch","entries","current","next","has","delete","add","pageCount","DataTable","$","_c","editMode","t0","_c","Skeleton","Table","Text","DataTableSkeletonColumn","id","label","DataTableSkeletonProps","columns","columnCount","rowCount","cellWidths","DataTableSkeleton","props","$","_c","t0","t1","undefined","t2","length","Array","from","_temp","headers","t3","map","_temp2","t4","t5","t6","__0","rowIndex","column_0","columnIndex","column","borderRight","_","index","_c","Tooltip$1","SearchableMenuInput","ResourceContextMenu","ListRow","Switch$1","Checkbox$1","findField","fieldIcon","formatDataTableRelativeDate","DataTableDateCell","DataTableHeader","FriendlyJsonDisplay","PaginationFooter","isJsonImageArray","resolveInitialPageSize","shouldHighlightActiveRow","toggleHiddenDataTableColumn","isDisplayValue","getIcon","SelectionToolbar","resolveSelectionActions","formatDisplayValue","useDataTableView","getSelectedOriginalRows","columnHelper","useDataTableViewStore","reorderDataTableColumns","EditModeDataTable","shouldEnableSelection","buildJsonFields","isDataTableDiffValue","isJsonImageValue","getJsonCellSummary","HighlightedText","DiffBubble","DisplayMenuSelect","CollectionViewEmptyState","DisplaySortControl","Fragment$1","resolveCategoricalColor","categories","category","value","CategoricalColorCell","props","children","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","character","parseHexColor","normalized","color","expandedHex","toLinearChannel","channel","relativeLuminance","contrastRatio","foregroundLuminance","foreground","backgroundLuminance","background","lighter","darker","toHexColor","toHexChannel","mixRgbColors","start","endWeight","end","findMatchingForeground","step","candidate","target","resolveReadableTextColor","backgroundColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","darkForeground","toDisplayPercent","mixColors","mixThemeColors","resolveColorScaleValue","stops","firstStop","lastStop","endIndex","stop","startStop","endStop","ColorScaleCell","$","c","t0","search","t1","t2","Text","DataTableBadgeCell","palette","t3","t4","Badge","DataTableDiffCell","t5","DataTablePathCell","chakra","t6","stopRowActivation","event","JsonCell","T0","T1","T2","summary","t10","t11","t12","t7","t8","t9","columnLabel","imageFields","_temp$4","t13","Popover","Button","HStack","_temp2$3","Braces","t14","ChevronRight","t15","t16","t17","t18","Portal","ScrollArea$1","t19","field","index","image","Image","field_0","toSingleLineElement","isValidElement","element","cloneElement","stopControlPropagation","SelectionHeader","table","checked","isIndeterminate","Minus","Check","Icon","details","SelectionCell","column","selectedRowIds","row","mergeRowActions","dynamicLabels","dynamicActions","action","rowActions","RowActionsCell","getActions","T3","resolvedActions","Menu","IconButton","ChevronDown","HighlightedCellContent","content","query","child","FormattedCell","displayValue","wrapRows","DataCell","renderer","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","columnDescription","CircleHelp","headerIcon","resolveDataCellStyle","buildColumns","options","rowIndexColumn","rowIndex","selectionColumn","dataColumns","columnKeys","fallBackKey","key","columnValues","data","columnRenderers","customIcon","columnIcons","columnDescriptions","compactHeaders","rowActionsColumn","rowNumbers","enableSelection","getRowActions","SectionLabel","SettingSwitch","Box","ColumnRow","useSortable","transform","CSS","isDragging","transition","GripVertical","attributes","listeners","onColumnVisibilityChange","setNodeRef","DataTableDisplayMenu","triggerRef","useRef","contentRef","open","setOpen","useState","setQuery","sensors","useSensors","useSensor","PointerSensor","columns","needle","filteredColumns","settings","column_0","shownCount","_temp$3","_temp2$2","groupingOptions","onColumnReorder","over","active","handleDragEnd","closeOnOutsidePointerDown","event_0","useEffect","Settings2","onSettingsChange","statsAvailable","t20","t21","t22","t23","t24","_temp3$1","t25","t26","column_4","Stack","t27","SortableContext","verticalListSortingStrategy","t28","DndContext","closestCenter","t29","t30","column_1","column_2","column_3","DataTableGroupRow","collapsed","label","count","onToggle","columnCount","Table","ChartContent","lazy","module","DataTableStatChart","Suspense","ariaLabel","height","getStatValue","getColumnStatValues","rows","columnId","countUniqueStatValues","buildTopValuesStat","values","counts","groups","right","left","topGroups","limit","otherCount","total","group","buildHistogramStat","min","max","binWidth","binCount","bins","binIndex","formatNumber","STAT_CHART_COLOR","SingleValueStat","Flex","UniqueStat","HistogramStat","histogram","valueCount","_temp$2","_temp2$1","_temp3","TopValuesStat","_temp6","DataTableStat","stat","DataTableStatCell","columnStats","header","fullWidth","headerGroup","DataTableStatsRow","noBorder","header_0","bin","bin_0","_temp4","datum","_temp5","utilityColumnIds","sortIcon","direction","ArrowUpNarrowWide","ArrowDownWideNarrow","ChevronsUpDown","FieldMenuItem","DataTableColumnHeader","fieldMenu","hasDescription","sort","showsFieldMenu","flexRender","tooltipContent","ListFilter","EyeOff","DataTableCellView","columnMeta","cell","cellStyle","getCellContextMenuActions","cellContext","contextActions","cellElement","DataTableBodyRow","rowIsActive","rowIsSelected","rowIsInteractive","onRowClick","resolveColumnSizeVars","colSizes","DataTableGrid","enableRowActivation","activeRowId","entries","isRowInteractive","onToggleGroup","selectionActions","tableRowsById","_temp$1","columnSizeVars","selectedRows","entry","row_0","pageGroupedRows","shown","pageCount","pageSize","page","pageIndex","position","groupStart","pageRows","DatasetDataTable","view","pageKey","filter","sorts","pagePosition","setPagePosition","setPageIndex","setPageSize","setCollapsed","rowSelection","setRowSelection","shownRows","idBySource","useReactTable","row_1","getCoreRowModel","setSorts","columnId_0","columnId_1","startRule","setSettings","columnId_2","nothingShown","columnId_3","visible","activeColumnId","overColumnId","next","current","size","DataTable","cellWidths","DataTableSkeleton","rowCount","_temp","headers","_temp2","Skeleton","columnIndex"],"sources":["../src/components/data-table/categorical-color-cell.tsx","../src/components/data-table/color-cell-style.ts","../src/components/data-table/color-scale-cell.tsx","../src/components/data-table/data-table-badge-cell.tsx","../src/components/data-table/data-table-diff-cell.tsx","../src/components/data-table/data-table-path-cell.tsx","../src/components/data-table/json-cell.tsx","../src/components/data-table/data-table-cell-renderers.tsx","../src/components/data-table/build-columns.tsx","../src/components/data-table/data-table-display-menu.tsx","../src/components/data-table/data-table-group-row.tsx","../src/components/data-table/data-table-stat-chart.tsx","../src/components/data-table/data-table-stats.ts","../src/components/data-table/data-table-stats-row.tsx","../src/components/data-table/data-table-table-parts.tsx","../src/components/data-table/data-table-grid.tsx","../src/components/data-table/data-table-grouping.ts","../src/components/data-table/data-table.tsx","../src/components/data-table/data-table-skeleton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { DataTableCategoricalColor } from \"./types\";\n\ninterface CategoricalColorCellProps {\n children: ReactNode;\n}\n\nexport const resolveCategoricalColor = (value: unknown, categories: DataTableCategoricalColor[]) => {\n return categories.find((category) => Object.is(category.value, value))?.color ?? null;\n};\n\nexport const CategoricalColorCell = (props: CategoricalColorCellProps) => {\n const { children } = props;\n\n return children;\n};\n","import type { DataTableThemeColor } from \"./types\";\n\ninterface RgbColor {\n r: number;\n g: number;\n b: number;\n}\n\nconst darkTextColor = \"#111827\";\nconst lightTextColor = \"#ffffff\";\nconst darkColorTarget = \"#000000\";\nconst readableContrastRatio = 4.5;\n\nconst expandShortHex = (hex: string) =>\n hex\n .split(\"\")\n .map((character) => character + character)\n .join(\"\");\n\nexport const parseHexColor = (color: string) => {\n const normalized = color.trim();\n const hex = normalized.startsWith(\"#\") ? normalized.slice(1) : normalized;\n const expandedHex = hex.length === 3 ? expandShortHex(hex) : hex;\n if (!/^[\\da-f]{6}$/i.test(expandedHex)) return null;\n\n return {\n r: Number.parseInt(expandedHex.slice(0, 2), 16),\n g: Number.parseInt(expandedHex.slice(2, 4), 16),\n b: Number.parseInt(expandedHex.slice(4, 6), 16),\n };\n};\n\nconst toLinearChannel = (channel: number) => {\n const normalized = channel / 255;\n return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;\n};\n\nconst relativeLuminance = (color: RgbColor) =>\n 0.2126 * toLinearChannel(color.r) + 0.7152 * toLinearChannel(color.g) + 0.0722 * toLinearChannel(color.b);\n\nconst contrastRatio = (foreground: RgbColor, background: RgbColor) => {\n const foregroundLuminance = relativeLuminance(foreground);\n const backgroundLuminance = relativeLuminance(background);\n const lighter = Math.max(foregroundLuminance, backgroundLuminance);\n const darker = Math.min(foregroundLuminance, backgroundLuminance);\n return (lighter + 0.05) / (darker + 0.05);\n};\n\nconst toHexColor = (color: RgbColor) => {\n const toHexChannel = (channel: number) => Math.round(channel).toString(16).padStart(2, \"0\");\n return `#${toHexChannel(color.r)}${toHexChannel(color.g)}${toHexChannel(color.b)}`;\n};\n\nconst mixRgbColors = (start: RgbColor, end: RgbColor, endWeight: number) => ({\n r: start.r * (1 - endWeight) + end.r * endWeight,\n g: start.g * (1 - endWeight) + end.g * endWeight,\n b: start.b * (1 - endWeight) + end.b * endWeight,\n});\n\nexport const contrastRatioForHexColors = (foregroundColor: string, backgroundColor: string) => {\n const foreground = parseHexColor(foregroundColor);\n const background = parseHexColor(backgroundColor);\n if (!foreground || !background) return 0;\n return contrastRatio(foreground, background);\n};\n\nconst findMatchingForeground = (background: RgbColor, target: RgbColor) => {\n for (let step = 1; step <= 50; step += 1) {\n const candidate = mixRgbColors(background, target, step / 50);\n if (contrastRatio(candidate, background) >= readableContrastRatio) {\n return { color: toHexColor(candidate), step };\n }\n }\n\n return { color: toHexColor(target), step: 50 };\n};\n\nexport const resolveReadableTextColor = (backgroundColor: string) => {\n const background = parseHexColor(backgroundColor);\n if (!background) return darkTextColor;\n\n const darkText = parseHexColor(darkColorTarget)!;\n const lightText = parseHexColor(lightTextColor)!;\n const darkerMatch = findMatchingForeground(background, darkText);\n const lighterMatch = findMatchingForeground(background, lightText);\n\n return darkerMatch.step <= lighterMatch.step ? darkerMatch.color : lighterMatch.color;\n};\n\nexport const mixHexColors = (startColor: string, endColor: string, startWeight: number) => {\n const start = parseHexColor(startColor);\n const end = parseHexColor(endColor);\n if (!start || !end) return null;\n\n return toHexColor(mixRgbColors(start, end, 1 - startWeight));\n};\n\nexport const resolveColorCellStyle = (color: DataTableThemeColor) => {\n const lightForeground = color.foreground?.light ?? resolveReadableTextColor(color.light);\n const darkForeground = color.foreground?.dark ?? resolveReadableTextColor(color.dark);\n\n return {\n backgroundColor: `light-dark(${color.light}, ${color.dark})`,\n color: `light-dark(${lightForeground}, ${darkForeground})`,\n };\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\nimport { mixHexColors } from \"./color-cell-style\";\nimport type { DataTableColorScaleStop, DataTableThemeColor } from \"./types\";\n\ninterface ColorScaleCellProps {\n value: number;\n search?: string;\n}\n\nconst toDisplayPercent = (value: number) => Math.round(value * 100) / 100;\n\nconst mixColors = (startColor: string, endColor: string, startWeight: number) => {\n const mixedColor = mixHexColors(startColor, endColor, startWeight);\n if (mixedColor) return mixedColor;\n\n return `color-mix(in srgb, ${startColor} ${toDisplayPercent(startWeight * 100)}%, ${endColor})`;\n};\n\nconst mixThemeColors = (start: DataTableThemeColor, end: DataTableThemeColor, startWeight: number) => {\n const foreground =\n start.foreground && end.foreground\n ? {\n light: mixColors(start.foreground.light, end.foreground.light, startWeight),\n dark: mixColors(start.foreground.dark, end.foreground.dark, startWeight),\n }\n : undefined;\n\n return {\n light: mixColors(start.light, end.light, startWeight),\n dark: mixColors(start.dark, end.dark, startWeight),\n ...(foreground ? { foreground } : {}),\n };\n};\n\nexport const resolveColorScaleValue = (value: unknown, stops: DataTableColorScaleStop[]) => {\n if (typeof value !== \"number\" || !Number.isFinite(value) || stops.length < 2) return null;\n\n const firstStop = stops[0]!;\n const lastStop = stops[stops.length - 1]!;\n const range = lastStop.value - firstStop.value;\n if (range <= 0) return null;\n\n if (value <= firstStop.value) return firstStop.color;\n if (value >= lastStop.value) return lastStop.color;\n\n const endIndex = stops.findIndex((stop) => value <= stop.value);\n const startStop = stops[endIndex - 1]!;\n const endStop = stops[endIndex]!;\n const segmentProgress = (value - startStop.value) / (endStop.value - startStop.value);\n const startWeight = 1 - segmentProgress;\n return mixThemeColors(startStop.color, endStop.color, startWeight);\n};\n\nexport const ColorScaleCell = (props: ColorScaleCellProps) => {\n const { value, search = \"\" } = props;\n\n return (\n <Text textStyle=\"paragraph/S/medium\" fontVariantNumeric=\"tabular-nums\" truncate>\n <HighlightedText text={String(value)} query={search} />\n </Text>\n );\n};\n","import { Badge } from \"@chakra-ui/react\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\nimport type { DataTableBadgeCategory } from \"./types\";\n\ninterface DataTableBadgeCellProps {\n value: string | number | boolean;\n search?: string;\n categories?: DataTableBadgeCategory[];\n}\n\nexport const DataTableBadgeCell = (props: DataTableBadgeCellProps) => {\n const { value, categories, search = \"\" } = props;\n const palette = categories?.find((category) => category.value === value)?.palette ?? \"gray\";\n\n return (\n <Badge variant=\"subtle\" size=\"sm\" colorPalette={palette} maxW=\"full\" truncate>\n <HighlightedText text={String(value)} query={search} />\n </Badge>\n );\n};\n","import { HighlightedText } from \"../collection-view/highlighted-text\";\nimport { DiffBubble } from \"../diff-viewer/diff-bubble\";\nimport type { DataTableDiffValue } from \"./types\";\n\nexport const DataTableDiffCell = (props: { value: DataTableDiffValue; search?: string }) => {\n const { value, search = \"\" } = props;\n return (\n <DiffBubble\n additions={value.additions}\n deletions={value.deletions}\n variant=\"ghost\"\n size=\"small\"\n additionsLabel={<HighlightedText text={`+${value.additions}`} query={search} />}\n deletionsLabel={<HighlightedText text={`-${value.deletions}`} query={search} />}\n />\n );\n};\n","import { chakra } from \"@chakra-ui/react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\n\n// Long paths keep their start and final characters, so the folder name stays readable (design/DESIGN.md).\nconst visibleEndLength = 5;\n\nexport const DataTablePathCell = (props: { value: string; search?: string }) => {\n const { value, search = \"\" } = props;\n const start = value.slice(0, -visibleEndLength);\n const end = value.slice(-visibleEndLength);\n\n return (\n <Tooltip content={value} openDelay={300}>\n <chakra.span\n display=\"inline-flex\"\n minW=\"0\"\n maxW=\"full\"\n tabIndex={0}\n textStyle=\"paragraph/S/regular\"\n whiteSpace=\"nowrap\"\n >\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\">\n <HighlightedText text={start} query={search} />\n </chakra.span>\n <chakra.span flexShrink={0}>\n <HighlightedText text={end} query={search} />\n </chakra.span>\n </chakra.span>\n </Tooltip>\n );\n};\n","import { Button, HStack, Image, Popover, Portal, Text } from \"@chakra-ui/react\";\nimport { Braces, ChevronRight } from \"lucide-react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\nimport {\n buildJsonFields,\n FriendlyJsonDisplay,\n getJsonCellSummary,\n isJsonImageArray,\n isJsonImageValue,\n} from \"./friendly-json-display\";\n\ninterface JsonCellProps {\n columnLabel: string;\n value: unknown;\n search?: string;\n}\n\nconst stopRowActivation = (event: { stopPropagation: () => void }) => event.stopPropagation();\n\nexport const JsonCell = (props: JsonCellProps) => {\n const { columnLabel, value, search = \"\" } = props;\n const fields = buildJsonFields(value);\n const imageFields = fields\n .flatMap((field) => {\n if (isJsonImageValue(field.value, field.label)) return [field];\n if (!Array.isArray(field.value) || !isJsonImageArray(field.value, field.label)) return [];\n return field.value.map((image, index) => ({ label: `${field.label} ${index + 1}`, value: image }));\n })\n .slice(0, 2);\n const summary = getJsonCellSummary(value);\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-start\", offset: { mainAxis: 6 } }}>\n <Popover.Trigger asChild>\n <Button\n aria-label={`View ${columnLabel} details`}\n variant=\"ghost\"\n size=\"xs\"\n width=\"full\"\n minWidth=\"0\"\n height=\"28px\"\n paddingX=\"2xs\"\n justifyContent=\"flex-start\"\n onClick={stopRowActivation}\n >\n {imageFields.length > 0 ? (\n <HStack gap=\"-1\" flexShrink=\"0\">\n {imageFields.map((field) => (\n <Image\n key={field.label}\n src={String(field.value)}\n alt={`${field.label} preview`}\n boxSize=\"22px\"\n borderRadius=\"xs\"\n borderWidth=\"1px\"\n borderColor=\"border.subtle\"\n objectFit=\"cover\"\n />\n ))}\n </HStack>\n ) : (\n <Braces size={14} />\n )}\n <Text flex=\"1\" minWidth=\"0\" textAlign=\"left\" textStyle=\"paragraph/S/regular\" truncate>\n <HighlightedText text={summary} query={search} />\n </Text>\n <ChevronRight size={12} />\n </Button>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"min(380px, calc(100vw - 32px))\" padding=\"0\" background=\"bg\" overflow=\"hidden\">\n <ScrollArea maxH=\"360px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <FriendlyJsonDisplay value={value} />\n </ScrollArea>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, chakra, IconButton, Menu, Portal, Text } from \"@chakra-ui/react\";\nimport type { CellContext, HeaderContext } from \"@tanstack/react-table\";\nimport { Check, ChevronDown, CircleHelp, Minus } from \"lucide-react\";\nimport { type CSSProperties, cloneElement, isValidElement, type ReactNode } from \"react\";\n\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { HighlightedText } from \"../collection-view/highlighted-text\";\nimport { ListRow } from \"../list-row/list-row\";\nimport { CategoricalColorCell, resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { ColorScaleCell, resolveColorScaleValue } from \"./color-scale-cell\";\nimport { DataTableBadgeCell } from \"./data-table-badge-cell\";\nimport { isDataTableDiffValue } from \"./data-table-cell-value\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { DataTableDateCell, formatDataTableRelativeDate } from \"./data-table-date-cell\";\nimport { DataTableDiffCell } from \"./data-table-diff-cell\";\nimport { DataTablePathCell } from \"./data-table-path-cell\";\nimport { formatDisplayValue } from \"./helpers\";\nimport { JsonCell } from \"./json-cell\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst toSingleLineElement = (element: ReactNode) => {\n if (!isValidElement<{ style?: CSSProperties }>(element)) return element;\n\n return cloneElement(element, {\n style: {\n ...element.props.style,\n flexWrap: \"nowrap\",\n minWidth: 0,\n whiteSpace: \"nowrap\",\n },\n });\n};\n\nconst stopControlPropagation = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n};\n\nexport const SelectionHeader = (props: HeaderContext<RowData, unknown>) => {\n const { table } = props;\n const checked = table.getIsAllRowsSelected();\n const isIndeterminate = !checked && table.getIsSomeRowsSelected();\n\n return (\n <Checkbox\n checked={isIndeterminate ? \"indeterminate\" : checked}\n aria-label=\"Select all\"\n icon={<ChakraIcon as={isIndeterminate ? Minus : Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => table.toggleAllRowsSelected(details.checked === true)}\n />\n );\n};\n\nexport const SelectionCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { selectedRowIds } = column.columnDef.meta as DataTableColumnMeta;\n\n return (\n <Checkbox\n checked={Boolean(selectedRowIds?.[row.id])}\n aria-label=\"Select row\"\n icon={<ChakraIcon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => row.toggleSelected(details.checked === true)}\n />\n );\n};\n\nconst mergeRowActions = (rowActions: DataTableRowAction[], dynamicActions: DataTableRowAction[]) => {\n const dynamicLabels = new Set(dynamicActions.map((action) => action.label));\n return [...dynamicActions, ...rowActions.filter((action) => !dynamicLabels.has(action.label))];\n};\n\nexport const RowActionsCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { rowActions: actions = [], getRowActions: getActions } = column.columnDef.meta as DataTableColumnMeta;\n const resolvedActions = mergeRowActions(actions, getActions?.(row.original) ?? []);\n\n if (resolvedActions.length === 0) return null;\n\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton aria-label=\"Row actions\" size=\"2xs\" variant=\"ghost\" onClick={stopControlPropagation}>\n <ChakraIcon as={ChevronDown} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n {resolvedActions.map((action) => (\n <Menu.Item key={action.label} value={action.label} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n tone={action.destructive ? \"danger\" : \"default\"}\n label={action.label}\n icon={action.icon}\n onClick={stopControlPropagation}\n onActivate={() => action.onSelect(row.original)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n );\n};\n\ninterface FormattedCellProps {\n value: unknown;\n wrapRows: boolean;\n search?: string;\n}\n\nconst HighlightedCellContent = (props: { content: ReactNode; query: string }) => {\n const { content, query } = props;\n if (typeof content === \"string\" || typeof content === \"number\")\n return <HighlightedText text={String(content)} query={query} />;\n if (Array.isArray(content))\n return content.map((child, index) => <HighlightedCellContent key={index} content={child} query={query} />);\n if (isValidElement<{ children?: ReactNode }>(content) && content.props.children !== undefined)\n return cloneElement(content, {\n children: <HighlightedCellContent content={content.props.children} query={query} />,\n });\n return content;\n};\n\nconst FormattedCell = (props: FormattedCellProps) => {\n const { value, wrapRows, search = \"\" } = props;\n const displayValue = formatDisplayValue(value);\n\n if (isValidElement(displayValue)) {\n return (\n <chakra.span\n display=\"inline-flex\"\n maxWidth=\"full\"\n minW=\"0\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n <HighlightedCellContent content={wrapRows ? displayValue : toSingleLineElement(displayValue)} query={search} />\n </chakra.span>\n );\n }\n\n return (\n <Text\n maxWidth=\"full\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n textStyle=\"paragraph/S/regular\"\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n <HighlightedCellContent content={displayValue} query={search} />\n </Text>\n );\n};\n\ninterface DataCellProps {\n columnLabel: string;\n renderer?: DataTableColumnRenderer;\n value: unknown;\n wrapRows: boolean;\n search?: string;\n}\n\nconst DataCell = (props: DataCellProps) => {\n const { columnLabel, renderer, value, wrapRows, search } = props;\n\n if (renderer?.type === \"json\") return <JsonCell columnLabel={columnLabel} value={value} search={search} />;\n\n if (renderer?.type === \"badge\" && [\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n return (\n <DataTableBadgeCell value={value as string | number | boolean} search={search} categories={renderer.categories} />\n );\n }\n\n if (renderer?.type === \"diff\" && isDataTableDiffValue(value))\n return <DataTableDiffCell value={value} search={search} />;\n\n if (renderer?.type === \"path\" && typeof value === \"string\" && !wrapRows)\n return <DataTablePathCell value={value} search={search} />;\n\n if (renderer?.type === \"date\") {\n if (formatDataTableRelativeDate(value)) return <DataTableDateCell value={value as string} search={search} />;\n }\n\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return <ColorScaleCell value={value} search={search} />;\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) {\n return (\n <CategoricalColorCell>\n <FormattedCell value={value} wrapRows={wrapRows} search={search} />\n </CategoricalColorCell>\n );\n }\n }\n\n return <FormattedCell value={value} wrapRows={wrapRows} search={search} />;\n};\n\nexport const RowIndexCell = (props: CellContext<RowData, number>) => {\n const { getValue } = props;\n return (\n <chakra.span display=\"block\" textStyle=\"paragraph/S/regular\" textAlign=\"center\">\n {getValue()}\n </chakra.span>\n );\n};\n\nexport const ColumnDataCell = (props: CellContext<RowData, unknown>) => {\n const { column, getValue } = props;\n const { renderer, wrapRows = false, search } = column.columnDef.meta as DataTableColumnMeta;\n return (\n <DataCell columnLabel={column.id} renderer={renderer} value={getValue()} wrapRows={wrapRows} search={search} />\n );\n};\n\nexport const ColumnHeader = (props: HeaderContext<RowData, unknown>) => {\n const { column } = props;\n const { headerLabel, headerIcon, columnDescription } = column.columnDef.meta as DataTableColumnMeta;\n return (\n <chakra.span display=\"inline-flex\" alignItems=\"center\" gap=\"4px\" minW=\"0\" maxW=\"full\" overflow=\"hidden\">\n {headerIcon}\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\">\n {headerLabel}\n </chakra.span>\n {columnDescription ? (\n <Tooltip content={columnDescription}>\n <ChakraIcon\n as={CircleHelp}\n aria-label={`About ${headerLabel}`}\n boxSize=\"12px\"\n color=\"fg.muted\"\n cursor=\"help\"\n flexShrink={0}\n opacity={0.6}\n tabIndex={0}\n />\n </Tooltip>\n ) : null}\n </chakra.span>\n );\n};\n","import type { RowSelectionState } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\nimport { resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { resolveColorCellStyle } from \"./color-cell-style\";\nimport { resolveColorScaleValue } from \"./color-scale-cell\";\nimport {\n ColumnDataCell,\n ColumnHeader,\n RowActionsCell,\n RowIndexCell,\n SelectionCell,\n SelectionHeader,\n} from \"./data-table-cell-renderers\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { columnHelper, getIcon } from \"./helpers\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\ninterface BuildColumnsOptions {\n columnIcons?: Partial<Record<string, ReactNode>>;\n columnDescriptions?: Partial<Record<string, string>>;\n compactHeaders?: Partial<Record<string, string>>;\n enableSelection?: boolean;\n selectedRowIds?: RowSelectionState;\n rowActions?: DataTableRowAction[];\n getRowActions?: (row: RowData) => DataTableRowAction[];\n columnRenderers?: Partial<Record<string, DataTableColumnRenderer>>;\n wrapRows?: boolean;\n rowNumbers?: boolean;\n search?: string;\n}\n\nconst resolveDataCellStyle = (value: unknown, renderer?: DataTableColumnRenderer) => {\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return resolveColorCellStyle(color);\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) return resolveColorCellStyle(color);\n }\n};\n\nexport function buildColumns(data: RowData[], columnKeys: string[], options: BuildColumnsOptions = {}) {\n const {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection = false,\n selectedRowIds,\n rowActions = [],\n getRowActions,\n columnRenderers,\n wrapRows = false,\n rowNumbers = true,\n search,\n } = options;\n // Rows arrive in the order the view shows them, so their position is their number.\n const rowIndexColumn = columnHelper.accessor((_row, rowIndex) => rowIndex + 1, {\n header: \"\",\n id: \"rowIndex\",\n enableResizing: false,\n size: 20,\n cell: RowIndexCell,\n });\n\n const selectionColumn = columnHelper.display({\n id: \"rowSelection\",\n header: SelectionHeader,\n cell: SelectionCell,\n meta: { selectedRowIds } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n const dataColumns = columnKeys.map((key) => {\n const fallBackKey = key || \"-\";\n const columnValues = data.map((row) => row[fallBackKey]);\n const renderer = columnRenderers?.[fallBackKey];\n const customIcon = columnIcons?.[fallBackKey];\n const headerIcon = customIcon === undefined ? getIcon(columnValues) : customIcon;\n const columnDescription = columnDescriptions?.[fallBackKey];\n\n return columnHelper.accessor((row) => row[fallBackKey], {\n id: fallBackKey,\n header: ColumnHeader,\n cell: ColumnDataCell,\n meta: {\n headerLabel: compactHeaders?.[fallBackKey] ?? fallBackKey,\n headerIcon,\n columnDescription,\n renderer,\n wrapRows,\n search,\n getCellStyle: (value: unknown) => resolveDataCellStyle(value, renderer),\n } satisfies DataTableColumnMeta,\n enableSorting: false,\n });\n });\n\n const rowActionsColumn = columnHelper.display({\n id: \"rowActions\",\n header: \"\",\n cell: RowActionsCell,\n meta: { rowActions, getRowActions } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n return [\n ...(rowNumbers ? [rowIndexColumn] : []),\n ...(enableSelection ? [selectionColumn] : []),\n ...dataColumns,\n ...(rowActions.length > 0 || getRowActions ? [rowActionsColumn] : []),\n ];\n}\n","import { Box, HStack, Icon, IconButton, Popover, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { closestCenter, DndContext, type DragEndEvent, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { SortableContext, useSortable, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Check, GripVertical, Settings2 } from \"lucide-react\";\nimport { type ReactNode, useEffect, useRef, useState } from \"react\";\nimport { SearchableMenuInput } from \"@/components/overlays/searchable-menu-input\";\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { Switch } from \"@/components/primitives/switch\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { fieldIcon } from \"../collection-view/collection-view-field-icon\";\nimport { DisplayMenuSelect } from \"../kanban-renderer/display-menu\";\nimport type { AttributeDescriptor } from \"../kanban-renderer/types\";\nimport type { DataTableSettings } from \"./types\";\n\nexport interface DataTableDisplayMenuProps {\n /** Every column in display order, hidden ones included. */\n columns: AttributeDescriptor[];\n sortControl?: ReactNode;\n settings: DataTableSettings;\n statsAvailable: boolean;\n onSettingsChange: (settings: Partial<DataTableSettings>) => void;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n onColumnReorder: (activeColumnId: string, overColumnId: string) => void;\n}\n\nconst SectionLabel = (props: { children: string; end?: string }) => (\n <HStack paddingX=\"xs\" paddingTop=\"xs\" paddingBottom=\"2xs\">\n <Text textStyle=\"label/XS/medium\" color=\"fg.muted\">\n {props.children}\n </Text>\n {props.end ? (\n <Text marginLeft=\"auto\" textStyle=\"label/XS\" color=\"fg.subtle\">\n {props.end}\n </Text>\n ) : null}\n </HStack>\n);\n\ninterface SettingSwitchProps {\n label: string;\n hint?: string;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\nconst SettingSwitch = (props: SettingSwitchProps) => (\n <Box paddingX=\"xs\" paddingY=\"2xs\">\n <Switch\n checked={props.checked}\n inputProps={{ role: \"switch\" }}\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n onCheckedChange={(details) => props.onChange(details.checked === true)}\n >\n <HStack as=\"span\" gap=\"xs\">\n <Text as=\"span\" textStyle=\"label/S/regular\">\n {props.label}\n </Text>\n {props.hint ? (\n <Text as=\"span\" textStyle=\"label/XS\" color=\"fg.subtle\">\n {props.hint}\n </Text>\n ) : null}\n </HStack>\n </Switch>\n </Box>\n);\n\ninterface ColumnRowProps {\n column: AttributeDescriptor;\n checked: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n}\n\nconst ColumnRow = (props: ColumnRowProps) => {\n const { column, checked, onColumnVisibilityChange } = props;\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: column.id });\n\n return (\n <HStack\n ref={setNodeRef}\n style={{ transform: CSS.Transform.toString(transform), transition, opacity: isDragging ? 0.5 : 1 }}\n gap=\"2xs\"\n minW=\"0\"\n width=\"full\"\n borderRadius=\"xs\"\n px=\"xs\"\n py=\"2xs\"\n _hover={{ bg: \"bg.hover\" }}\n >\n <Box as=\"span\" display=\"inline-flex\" cursor=\"grab\" color=\"fg.muted\" {...attributes} {...listeners}>\n <GripVertical size={14} />\n </Box>\n <Checkbox\n checked={checked}\n flex=\"1\"\n minW=\"0\"\n size=\"sm\"\n icon={<Icon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onCheckedChange={(details) => onColumnVisibilityChange(column.id, details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\" truncate>\n {column.label}\n </Text>\n </Checkbox>\n <Icon as={fieldIcon(column)} boxSize=\"0.75rem\" color=\"fg.subtle\" flexShrink={0} />\n </HStack>\n );\n};\n\n/** Table display: every setting here is saved with the view. Column width stays local. */\nexport const DataTableDisplayMenu = (props: DataTableDisplayMenuProps) => {\n const { columns, settings, statsAvailable, onSettingsChange, onColumnVisibilityChange, onColumnReorder } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));\n const needle = query.trim().toLowerCase();\n const filteredColumns = needle ? columns.filter((column) => column.label.toLowerCase().includes(needle)) : columns;\n const shownCount = columns.filter((column) => !settings.hiddenColumns.includes(column.id)).length;\n const groupingOptions = [\n { value: \"none\", label: \"None\" },\n ...columns.filter((column) => column.groupable).map((column) => ({ value: column.id, label: column.label })),\n ];\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (over && active.id !== over.id) onColumnReorder(String(active.id), String(over.id));\n };\n\n useEffect(() => {\n if (!open) return;\n // Menus inside the popover render in place, so a click outside both the trigger and the content closes it.\n const closeOnOutsidePointerDown = (event: PointerEvent) => {\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (contentRef.current?.contains(target) || triggerRef.current?.contains(target)) return;\n setOpen(false);\n };\n document.addEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n return () => document.removeEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n }, [open]);\n\n return (\n <Popover.Root\n open={open}\n closeOnInteractOutside={false}\n positioning={{ placement: \"bottom-end\", offset: { mainAxis: 8 }, getAnchorElement: () => triggerRef.current }}\n onOpenChange={(details) => setOpen(details.open)}\n >\n <Tooltip content=\"Display\">\n <Popover.Trigger asChild>\n <IconButton ref={triggerRef} aria-label=\"Display settings\" variant=\"ghost\" size=\"2xs\">\n <Icon as={Settings2} />\n </IconButton>\n </Popover.Trigger>\n </Tooltip>\n <Portal>\n <Popover.Positioner>\n <Popover.Content\n ref={contentRef}\n data-testid=\"data-table-display-menu\"\n width=\"min(300px, calc(100vw - 32px))\"\n padding=\"2xs\"\n gap=\"1px\"\n >\n <SectionLabel>TABLE DISPLAY</SectionLabel>\n {groupingOptions.length > 1 ? (\n <DisplayMenuSelect\n label=\"Grouping\"\n value={settings.grouping}\n options={groupingOptions}\n onSelect={(grouping) => onSettingsChange({ grouping })}\n />\n ) : null}\n {props.sortControl}\n <SettingSwitch\n label=\"Row numbers\"\n checked={settings.rowNumbers}\n onChange={(rowNumbers) => onSettingsChange({ rowNumbers })}\n />\n <SettingSwitch\n label=\"Wrap rows\"\n checked={settings.wrapRows}\n onChange={(wrapRows) => onSettingsChange({ wrapRows })}\n />\n {statsAvailable ? (\n <SettingSwitch\n label=\"Statistics\"\n hint=\"from column stats\"\n checked={settings.showStats}\n onChange={(showStats) => onSettingsChange({ showStats })}\n />\n ) : null}\n <Box borderTopWidth=\"1px\" borderColor=\"border.subtle\" marginY=\"2xs\" />\n <SectionLabel end={`${shownCount} of ${columns.length} shown`}>COLUMNS</SectionLabel>\n <SearchableMenuInput value={query} placeholder=\"Search columns\" onValueChange={setQuery} />\n <ScrollArea maxH=\"280px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\n <SortableContext items={columns.map((column) => column.id)} strategy={verticalListSortingStrategy}>\n <Stack gap=\"1px\" padding=\"2xs\">\n {filteredColumns.map((column) => (\n <ColumnRow\n key={column.id}\n column={column}\n checked={!settings.hiddenColumns.includes(column.id)}\n onColumnVisibilityChange={onColumnVisibilityChange}\n />\n ))}\n </Stack>\n </SortableContext>\n </DndContext>\n </ScrollArea>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { chakra, Icon, Table, Text } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\n\nexport interface DataTableGroupRowProps {\n label: string;\n count: number;\n collapsed: boolean;\n columnCount: number;\n onToggle: () => void;\n}\n\n/** One row per group value. Collapsing it is screen state and is never saved. */\nexport const DataTableGroupRow = (props: DataTableGroupRowProps) => {\n const { label, count, collapsed, columnCount, onToggle } = props;\n return (\n <Table.Row data-testid=\"data-table-group-row\" bg=\"bg.subtle\" borderBottom=\"1px solid\" borderColor=\"border.subtle\">\n <Table.Cell colSpan={columnCount} paddingX=\"xs\" paddingY=\"2xs\" borderBottom=\"none\">\n <chakra.button\n type=\"button\"\n aria-expanded={!collapsed}\n display=\"flex\"\n alignItems=\"center\"\n gap=\"xs\"\n height=\"1.5rem\"\n onClick={onToggle}\n >\n <Icon as={collapsed ? ChevronRight : ChevronDown} boxSize=\"0.875rem\" color=\"fg.muted\" />\n <Text as=\"span\" textStyle=\"label/S/medium\">\n {label}\n </Text>\n <Text as=\"span\" textStyle=\"label/XS\" color=\"fg.muted\">\n {count}\n </Text>\n </chakra.button>\n </Table.Cell>\n </Table.Row>\n );\n};\n","import { Box } from \"@chakra-ui/react\";\nimport { lazy, Suspense } from \"react\";\nimport type { DataTableStatChartProps } from \"./data-table-stat-chart-content\";\n\nconst ChartContent = lazy(() =>\n import(\"./data-table-stat-chart-content\").then((module) => ({ default: module.DataTableStatChart })),\n) as typeof import(\"./data-table-stat-chart-content\").DataTableStatChart;\n\nexport const DataTableStatChart = <T extends object>(props: DataTableStatChartProps<T>) => {\n const { height, ariaLabel } = props;\n // Keep table geometry and labels available while the chart code loads.\n return (\n <Box height={height} width=\"full\" minWidth=\"0\" aria-label={ariaLabel}>\n <Suspense fallback={null}>\n <ChartContent {...props} />\n </Suspense>\n </Box>\n );\n};\n","import { isDisplayValue } from \"./helpers\";\nimport type { RowData } from \"./types\";\n\nexport interface HistogramBin {\n start: number;\n end: number;\n count: number;\n}\n\nexport interface HistogramStat {\n min: number;\n max: number;\n bins: HistogramBin[];\n}\n\nexport interface TopValueStat {\n label: string;\n count: number;\n percentage: number;\n}\n\nconst getStatValue = (value: unknown) => (isDisplayValue(value) ? value.sortValue : value);\n\nconst getColumnStatValues = (rows: RowData[], columnId: string) =>\n rows\n .map((row) => getStatValue(row[columnId]))\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\nexport const countUniqueStatValues = (rows: RowData[], columnId: string) =>\n new Set(getColumnStatValues(rows, columnId)).size;\n\nexport const buildTopValuesStat = (rows: RowData[], columnId: string, limit: number) => {\n const values = getColumnStatValues(rows, columnId);\n const counts = new Map<unknown, number>();\n\n for (const value of values) {\n counts.set(value, (counts.get(value) ?? 0) + 1);\n }\n\n const groups: TopValueStat[] = [...counts.entries()]\n .map(([value, count]) => ({\n label: String(value),\n count,\n percentage: Math.round((count / values.length) * 100),\n }))\n .sort((left, right) => right.count - left.count || left.label.localeCompare(right.label));\n const topGroups = groups.slice(0, limit);\n const otherCount = groups.slice(limit).reduce((total, group) => total + group.count, 0);\n\n if (otherCount === 0) return topGroups;\n\n return [\n ...topGroups,\n {\n label: \"Other\",\n count: otherCount,\n percentage: Math.round((otherCount / values.length) * 100),\n },\n ];\n};\n\nexport const buildHistogramStat = (rows: RowData[], columnId: string, binCount: number): HistogramStat | null => {\n const values = getColumnStatValues(rows, columnId).filter((value): value is number => typeof value === \"number\");\n if (values.length === 0) return null;\n\n const min = Math.min(...values);\n const max = Math.max(...values);\n const binWidth = (max - min) / binCount;\n const bins = Array.from({ length: binCount }, (_, index) => ({\n start: min + binWidth * index,\n end: min + binWidth * (index + 1),\n count: 0,\n }));\n\n for (const value of values) {\n const binIndex = value === max || binWidth === 0 ? binCount - 1 : Math.floor((value - min) / binWidth);\n bins[binIndex]!.count += 1;\n }\n\n return { min, max, bins };\n};\n","import { Box, Flex, Table, Text } from \"@chakra-ui/react\";\nimport type { Header, HeaderGroup } from \"@tanstack/react-table\";\nimport { DataTableStatChart } from \"./data-table-stat-chart\";\nimport { buildHistogramStat, buildTopValuesStat, countUniqueStatValues } from \"./data-table-stats\";\nimport type { DataTableColumnStat, RowData } from \"./types\";\n\nconst formatNumber = new Intl.NumberFormat(undefined, { maximumFractionDigits: 2 }).format;\nconst STAT_CHART_COLOR = \"vis.categorical.1\";\n\ninterface SingleValueStatProps {\n value: string;\n count: number;\n}\n\nconst SingleValueStat = (props: SingleValueStatProps) => {\n const { value, count } = props;\n\n return (\n <Flex data-single-value-stat direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\" minWidth=\"0\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\" maxWidth=\"100%\" truncate>\n {value}\n </Text>\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n {formatNumber(count)} {count === 1 ? \"value\" : \"values\"}\n </Text>\n </Flex>\n );\n};\n\ninterface UniqueStatProps {\n rows: RowData[];\n columnId: string;\n}\n\nconst UniqueStat = (props: UniqueStatProps) => {\n const { rows, columnId } = props;\n const count = countUniqueStatValues(rows, columnId);\n\n return (\n <Flex direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\">\n {formatNumber(count)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n unique values\n </Text>\n </Flex>\n );\n};\n\ninterface HistogramStatProps {\n rows: RowData[];\n columnId: string;\n binCount: number;\n}\n\nconst HistogramStat = (props: HistogramStatProps) => {\n const { rows, columnId, binCount } = props;\n const histogram = buildHistogramStat(rows, columnId, binCount);\n\n if (!histogram) {\n return (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n No numeric values\n </Text>\n );\n }\n\n const valueCount = histogram.bins.reduce((total, bin) => total + bin.count, 0);\n if (histogram.min === histogram.max) {\n return <SingleValueStat value={formatNumber(histogram.min)} count={valueCount} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n <DataTableStatChart\n data={histogram.bins}\n dataKey=\"count\"\n color={STAT_CHART_COLOR}\n height=\"40px\"\n ariaLabel={`Distribution for ${columnId}`}\n tooltipLabel={(bin) => `${formatNumber(bin.start)} – ${formatNumber(bin.end)}`}\n tooltipValue={(value) => `${formatNumber(Number(value))} values`}\n tooltipSeriesLabel=\"Count\"\n />\n <Flex justifyContent=\"space-between\" gap=\"xs\">\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.min)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.max)}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\ninterface TopValuesStatProps {\n rows: RowData[];\n columnId: string;\n limit: number;\n}\n\nconst TopValuesStat = (props: TopValuesStatProps) => {\n const { rows, columnId, limit } = props;\n const groups = buildTopValuesStat(rows, columnId, limit);\n\n if (groups.length === 1 && groups[0]) {\n return <SingleValueStat value={groups[0].label} count={groups[0].count} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n {groups.map((group) => (\n <Box key={group.label} position=\"relative\" height=\"18px\">\n <DataTableStatChart\n data={[group]}\n dataKey=\"percentage\"\n categoryKey=\"label\"\n color={STAT_CHART_COLOR}\n height=\"18px\"\n ariaLabel={`${group.label}: ${group.percentage}%`}\n layout=\"vertical\"\n domain={[0, 100]}\n barSize={18}\n tooltipLabel={(datum) => `${datum.label} · ${formatNumber(datum.count)} values`}\n tooltipValue={(value) => `${formatNumber(Number(value))}%`}\n tooltipSeriesLabel=\"Share\"\n />\n <Flex\n position=\"absolute\"\n inset=\"0\"\n paddingX=\"2xs\"\n justifyContent=\"space-between\"\n gap=\"xs\"\n pointerEvents=\"none\"\n >\n <Text textStyle=\"label/2XS\" color=\"fg.inverted\" truncate>\n {group.label}\n </Text>\n <Text textStyle=\"label/2XS/medium\" color=\"fg.muted\">\n {group.percentage}%\n </Text>\n </Flex>\n </Box>\n ))}\n </Flex>\n );\n};\n\ninterface DataTableStatProps {\n rows: RowData[];\n columnId: string;\n stat: DataTableColumnStat;\n}\n\nconst DataTableStat = (props: DataTableStatProps) => {\n const { rows, columnId, stat } = props;\n\n if (stat.type === \"unique\") return <UniqueStat rows={rows} columnId={columnId} />;\n if (stat.type === \"histogram\") {\n return <HistogramStat rows={rows} columnId={columnId} binCount={stat.bins ?? 10} />;\n }\n return <TopValuesStat rows={rows} columnId={columnId} limit={stat.limit ?? 2} />;\n};\n\ninterface DataTableStatCellProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n}\n\nconst DataTableStatCell = (props: DataTableStatCellProps) => {\n const { header, headerGroup, rows, columnStats, fullWidth } = props;\n const stat = columnStats[header.column.id];\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n data-stat-type={stat?.type}\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n padding=\"xs\"\n verticalAlign=\"middle\"\n overflow=\"hidden\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n {stat ? <DataTableStat rows={rows} columnId={header.column.id} stat={stat} /> : null}\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableStatsRowProps {\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n noBorder?: boolean;\n}\n\nexport const DataTableStatsRow = (props: DataTableStatsRowProps) => {\n const { headerGroup, rows, columnStats, fullWidth, noBorder } = props;\n const hasVisibleStats = headerGroup.headers.some((header) => columnStats[header.column.id]);\n\n if (!hasVisibleStats) return null;\n\n return (\n <Table.Row\n className=\"data-table-stats-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableStatCell\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n rows={rows}\n columnStats={columnStats}\n fullWidth={fullWidth}\n />\n ))}\n </Table.Row>\n );\n};\n","import { Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Table, Text } from \"@chakra-ui/react\";\nimport type { ViewSortDirection } from \"@pstdio/sdk/extensions\";\nimport {\n type Cell,\n flexRender,\n type Header,\n type HeaderGroup,\n type Row,\n type Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport { ArrowDownWideNarrow, ArrowUpNarrowWide, ChevronsUpDown, EyeOff, ListFilter } from \"lucide-react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport type { DataTableCellContext, DataTableProps, RowData } from \"./types\";\n\nconst utilityColumnIds = new Set([\"rowIndex\", \"rowSelection\", \"rowActions\"]);\n\n/** The header field menu is a shortcut into the view: it never keeps a sort or filter of its own. */\nexport interface DataTableFieldMenu {\n sortFor: (columnId: string) => ViewSortDirection | undefined;\n onSort: (columnId: string, direction: ViewSortDirection) => void;\n onFilterBy: (columnId: string) => void;\n onHide: (columnId: string) => void;\n}\n\ninterface DataTableColumnHeaderProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n table: TanStackTable<RowData>;\n fullWidth?: boolean;\n hasDescription?: boolean;\n fieldMenu?: DataTableFieldMenu;\n}\n\nconst sortIcon = (direction: ViewSortDirection | undefined) => {\n if (direction === \"asc\") return ArrowUpNarrowWide;\n if (direction === \"desc\") return ArrowDownWideNarrow;\n return ChevronsUpDown;\n};\n\ninterface FieldMenuItemProps {\n value: string;\n label: string;\n icon: typeof ListFilter;\n onActivate: () => void;\n}\n\nconst FieldMenuItem = (props: FieldMenuItemProps) => (\n <Menu.Item value={props.value} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label={props.label}\n icon={<ChakraIcon as={props.icon} boxSize=\"16px\" />}\n onActivate={props.onActivate}\n />\n </Menu.Item>\n);\n\nexport const DataTableColumnHeader = (props: DataTableColumnHeaderProps) => {\n const { header, headerGroup, fullWidth, hasDescription, fieldMenu } = props;\n const columnId = header.column.id;\n const sort = fieldMenu?.sortFor(columnId);\n const showsFieldMenu = Boolean(fieldMenu) && !utilityColumnIds.has(columnId);\n const tooltipContent =\n columnId === \"rowSelection\" ? \"Select all\" : flexRender(header.column.columnDef.header, header.getContext());\n\n return (\n <Table.ColumnHeader\n data-column-id={columnId}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n key={header.id}\n overflow=\"hidden\"\n position=\"relative\"\n verticalAlign=\"middle\"\n whiteSpace=\"nowrap\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n <Tooltip content={tooltipContent} disabled={hasDescription}>\n <Flex className=\"group\" alignItems=\"center\" justifyContent=\"space-between\" gap=\"1\" flex=\"1\" minW=\"0\">\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n {showsFieldMenu && fieldMenu ? (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton\n ml=\"2px\"\n size=\"2xs\"\n minW=\"auto\"\n paddingX=\"2xs\"\n aria-label={sort ? `Sorted ${sort}` : \"Column options\"}\n variant=\"ghost\"\n color={sort ? \"fg\" : \"fg.subtle\"}\n >\n <ChakraIcon as={sortIcon(sort)} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n <FieldMenuItem\n value=\"sort-asc\"\n label=\"Sort ascending\"\n icon={ArrowUpNarrowWide}\n onActivate={() => fieldMenu.onSort(columnId, \"asc\")}\n />\n <FieldMenuItem\n value=\"sort-desc\"\n label=\"Sort descending\"\n icon={ArrowDownWideNarrow}\n onActivate={() => fieldMenu.onSort(columnId, \"desc\")}\n />\n <Menu.Separator />\n <FieldMenuItem\n value=\"filter\"\n label=\"Filter by this field\"\n icon={ListFilter}\n onActivate={() => fieldMenu.onFilterBy(columnId)}\n />\n <FieldMenuItem\n value=\"hide\"\n label=\"Hide column\"\n icon={EyeOff}\n onActivate={() => fieldMenu.onHide(columnId)}\n />\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n ) : null}\n {header.column.getCanResize() && (\n <span\n {...{\n onDoubleClick: () => header.column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: `resizer ${header.column.getIsResizing() ? \"isResizing\" : \"\"}`,\n }}\n />\n )}\n </Flex>\n </Tooltip>\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableCellViewProps {\n cell: Cell<RowData, unknown>;\n row: Row<RowData>;\n wrapRows: boolean;\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nconst DataTableCellView = (props: DataTableCellViewProps) => {\n const { cell, row, wrapRows, getCellContextMenuActions } = props;\n const columnMeta = cell.column.columnDef.meta as DataTableColumnMeta | undefined;\n const cellStyle = columnMeta?.getCellStyle?.(cell.getValue());\n const cellContext: DataTableCellContext = {\n row: row.original,\n rowId: row.id,\n columnId: cell.column.id,\n value: cell.getValue(),\n };\n const contextActions =\n getCellContextMenuActions?.(cellContext).map((action) => ({\n key: action.label,\n label: action.label,\n icon: action.icon,\n onClick: () => action.onSelect(cellContext),\n })) ?? [];\n const cellElement = (\n <Table.Cell\n data-column-id={cell.column.id}\n width=\"fit-content\"\n maxWidth=\"12rem\"\n overflow=\"hidden\"\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n padding=\"xs\"\n height={wrapRows ? undefined : \"10\"}\n maxHeight={wrapRows ? undefined : \"10\"}\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n key={cell.id}\n textStyle=\"paragraph/S/regular\"\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n verticalAlign={wrapRows ? \"top\" : \"middle\"}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n style={cellStyle}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n\n if (contextActions.length === 0) return cellElement;\n\n return (\n <ResourceContextMenu key={cell.id} actions={contextActions}>\n {cellElement}\n </ResourceContextMenu>\n );\n};\n\ninterface DataTableBodyRowProps {\n row: Row<RowData>;\n noBorder?: boolean;\n rowIsInteractive: boolean;\n rowIsActive: boolean;\n rowIsSelected: boolean;\n wrapRows: boolean;\n onRowClick?: DataTableProps[\"onRowClick\"];\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nexport const DataTableBodyRow = (props: DataTableBodyRowProps) => {\n const {\n row,\n noBorder,\n rowIsInteractive,\n rowIsActive,\n rowIsSelected,\n wrapRows,\n onRowClick,\n getCellContextMenuActions,\n } = props;\n\n return (\n <Table.Row\n key={row.id}\n data-active={rowIsActive ? \"true\" : undefined}\n data-selected={rowIsSelected ? \"true\" : undefined}\n aria-selected={rowIsSelected ? \"true\" : undefined}\n height={wrapRows ? undefined : \"10\"}\n cursor={rowIsInteractive ? \"pointer\" : undefined}\n onClick={rowIsInteractive ? () => onRowClick?.(row.original) : undefined}\n borderTop={noBorder ? \"none\" : \"1px solid\"}\n borderBottom=\"1px solid\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n _last={{ borderBottom: noBorder ? \"none\" : \"1px solid\", borderColor: \"border.subtle\" }}\n borderColor=\"border.subtle\"\n background={rowIsActive ? \"bg.active\" : \"bg\"}\n >\n {row.getVisibleCells().map((cell) => (\n <DataTableCellView\n key={cell.id}\n cell={cell}\n row={row}\n wrapRows={wrapRows}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n ))}\n </Table.Row>\n );\n};\n","import { Box, Table } from \"@chakra-ui/react\";\nimport type { Table as TanStackTable } from \"@tanstack/react-table\";\nimport { Fragment } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { DataTableGroupRow } from \"./data-table-group-row\";\nimport type { DataTablePageEntry } from \"./data-table-grouping\";\nimport type { DataTableRendererRow } from \"./data-table-state\";\nimport { getSelectedOriginalRows, shouldHighlightActiveRow } from \"./data-table-state\";\nimport { DataTableStatsRow } from \"./data-table-stats-row\";\nimport { DataTableBodyRow, DataTableColumnHeader, type DataTableFieldMenu } from \"./data-table-table-parts\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableProps, DataTableSelectionAction, DataTableSettings, RowData } from \"./types\";\n\nexport interface DataTableGridProps\n extends Pick<\n DataTableProps,\n | \"noBorder\"\n | \"fullWidth\"\n | \"onRowClick\"\n | \"isRowInteractive\"\n | \"activeRowId\"\n | \"columnDescriptions\"\n | \"columnStats\"\n | \"enableRowActivation\"\n | \"getCellContextMenuActions\"\n > {\n table: TanStackTable<RowData>;\n /** The rows and group rows of the current page, in shown order. */\n entries: DataTablePageEntry<DataTableRendererRow>[];\n collapsed: Set<string>;\n onToggleGroup: (key: string) => void;\n settings: DataTableSettings;\n /** Every shown row, for the statistics row. */\n data: RowData[];\n fieldMenu: DataTableFieldMenu;\n /** Set when rows can be selected. */\n selectionActions?: DataTableSelectionAction[];\n}\n\nconst resolveColumnSizeVars = (table: TanStackTable<RowData>) => {\n const colSizes: Record<string, number> = {};\n for (const header of table.getFlatHeaders()) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n return colSizes;\n};\n\nexport const DataTableGrid = (props: DataTableGridProps) => {\n const { table, entries, collapsed, onToggleGroup, settings, data, fieldMenu, selectionActions } = props;\n const { noBorder, fullWidth, onRowClick, isRowInteractive, activeRowId, columnDescriptions, columnStats } = props;\n const { enableRowActivation = false, getCellContextMenuActions } = props;\n const tableRowsById = new Map(table.getRowModel().rows.map((row) => [row.id, row]));\n const columnSizeVars = resolveColumnSizeVars(table);\n const selectedRows = table.getSelectedRowModel().rows;\n\n return (\n <Box position=\"relative\" flex=\"1\" minHeight=\"0\">\n <ScrollArea height=\"100%\" maxWidth=\"unset\" showHorizontalScrollbar>\n <Table.Root\n className={`data-table${fullWidth ? \" full-width\" : \"\"}`}\n style={{ ...columnSizeVars, width: fullWidth ? \"100%\" : table.getTotalSize() }}\n >\n <Table.Header>\n {table.getHeaderGroups().map((headerGroup) => (\n <Fragment key={headerGroup.id}>\n <Table.Row\n className=\"data-table-column-header-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableColumnHeader\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n table={table}\n fullWidth={fullWidth}\n hasDescription={Boolean(columnDescriptions?.[header.column.id])}\n fieldMenu={fieldMenu}\n />\n ))}\n </Table.Row>\n {columnStats && settings.showStats ? (\n <DataTableStatsRow\n headerGroup={headerGroup}\n rows={data}\n columnStats={columnStats}\n noBorder={noBorder}\n fullWidth={fullWidth}\n />\n ) : null}\n </Fragment>\n ))}\n </Table.Header>\n <Table.Body>\n {entries.map((entry) => {\n if (entry.kind === \"group\") {\n const { key } = entry.group;\n return (\n <DataTableGroupRow\n key={`group:${key}`}\n label={entry.group.label}\n count={entry.group.rows.length}\n collapsed={collapsed.has(key)}\n columnCount={table.getVisibleLeafColumns().length}\n onToggle={() => onToggleGroup(key)}\n />\n );\n }\n const row = tableRowsById.get(entry.row.id);\n if (!row) return null;\n return (\n <DataTableBodyRow\n key={row.id}\n row={row}\n noBorder={noBorder}\n rowIsInteractive={onRowClick ? (isRowInteractive?.(row.original) ?? true) : false}\n rowIsActive={shouldHighlightActiveRow({ enableRowActivation, activeRowId, rowId: row.id })}\n rowIsSelected={row.getIsSelected()}\n wrapRows={settings.wrapRows}\n onRowClick={onRowClick}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n );\n })}\n </Table.Body>\n </Table.Root>\n </ScrollArea>\n {selectionActions && selectedRows.length > 0 ? (\n <SelectionToolbar\n selectedCount={selectedRows.length}\n totalCount={data.length}\n onClearSelection={() => table.toggleAllRowsSelected(false)}\n onSelectAll={() => table.toggleAllRowsSelected(true)}\n actions={selectionActions}\n selectedRows={getSelectedOriginalRows(selectedRows)}\n />\n ) : null}\n </Box>\n );\n};\n","import type { CollectionRowGroup } from \"../collection-view/collection-view-grouping\";\nimport type { KanbanRendererRow } from \"../kanban-renderer/types\";\n\nexport type DataTablePageEntry<TRow extends KanbanRendererRow> =\n | { kind: \"group\"; group: CollectionRowGroup<TRow> }\n | { kind: \"row\"; row: TRow };\n\n/**\n * Pages count rows. A group that continues on the next page repeats its group row there, and a\n * collapsed group sits where its rows would start.\n */\nexport const pageGroupedRows = <TRow extends KanbanRendererRow>(\n groups: CollectionRowGroup<TRow>[],\n collapsed: Set<string>,\n pageIndex: number,\n pageSize: number,\n) => {\n const shown = (group: CollectionRowGroup<TRow>) => (collapsed.has(group.key) ? [] : group.rows);\n const shownCount = groups.reduce((count, group) => count + shown(group).length, 0);\n const pageCount = Math.max(1, Math.ceil(shownCount / pageSize));\n const page = Math.min(pageIndex, pageCount - 1);\n const start = page * pageSize;\n const end = start + pageSize;\n const entries: DataTablePageEntry<TRow>[] = [];\n let position = 0;\n for (const group of groups) {\n const rows = shown(group);\n const groupStart = position;\n position += rows.length;\n const onPage =\n rows.length === 0\n ? (groupStart >= start && groupStart < end) || (groupStart === shownCount && page === pageCount - 1)\n : position > start && groupStart < end;\n if (!onPage) continue;\n entries.push({ kind: \"group\", group });\n for (let index = Math.max(groupStart, start); index < Math.min(position, end); index += 1)\n entries.push({ kind: \"row\", row: rows[index - groupStart]! });\n }\n return { entries, pageCount, page };\n};\n\nexport const pageRows = <TRow extends KanbanRendererRow>(rows: TRow[], pageIndex: number, pageSize: number) => {\n const pageCount = Math.max(1, Math.ceil(rows.length / pageSize));\n const page = Math.min(pageIndex, pageCount - 1);\n const entries: DataTablePageEntry<TRow>[] = rows\n .slice(page * pageSize, (page + 1) * pageSize)\n .map((row) => ({ kind: \"row\", row }));\n return { entries, pageCount, page };\n};\n","import \"./data-table.css\";\n\nimport { Box, Flex } from \"@chakra-ui/react\";\nimport { getCoreRowModel, type RowSelectionState, useReactTable } from \"@tanstack/react-table\";\nimport { useState } from \"react\";\nimport { CollectionViewEmptyState } from \"../collection-view/collection-view-empty-state\";\nimport { findField } from \"../collection-view/collection-view-fields\";\nimport { DisplaySortControl } from \"../collection-view/display-sort-control\";\nimport { buildColumns } from \"./build-columns\";\nimport { DataTableDisplayMenu } from \"./data-table-display-menu\";\nimport { DataTableGrid } from \"./data-table-grid\";\nimport { pageGroupedRows, pageRows } from \"./data-table-grouping\";\nimport { DataTableHeader } from \"./data-table-header\";\nimport {\n reorderDataTableColumns,\n resolveInitialPageSize,\n resolveSelectionActions,\n shouldEnableSelection,\n toggleHiddenDataTableColumn,\n} from \"./data-table-state\";\nimport type { DataTableFieldMenu } from \"./data-table-table-parts\";\nimport { EditModeDataTable } from \"./edit-mode-data-table\";\nimport { PaginationFooter } from \"./pagination-footer\";\nimport type { DataTableProps } from \"./types\";\nimport { useDataTableView } from \"./use-data-table-view\";\n\nconst DatasetDataTable = (props: DataTableProps) => {\n const {\n noBorder,\n fullWidth,\n onRowClick,\n isRowInteractive,\n activeRowId,\n columnIcons,\n columnDescriptions,\n compactHeaders,\n columnStats,\n columnRenderers,\n initialPageSize,\n pageSizeOptions = [10, 20, 30, 50, 100],\n rowActions = [],\n getRowActions,\n enableRowActivation = false,\n getCellContextMenuActions,\n } = props;\n const view = useDataTableView(props);\n const { settings, setSettings, sorts, setSorts, filter, startRule } = view;\n // A different filter, sort, grouping, or search starts again on the first page.\n const pageKey = JSON.stringify([filter, sorts, settings.grouping, view.deferredSearch]);\n const [pagePosition, setPagePosition] = useState({ key: pageKey, index: 0 });\n const pageIndex = pagePosition.key === pageKey ? pagePosition.index : 0;\n const setPageIndex = (index: number) => setPagePosition({ key: pageKey, index });\n const [pageSize, setPageSize] = useState(() => resolveInitialPageSize({ initialPageSize }));\n const [collapsed, setCollapsed] = useState<Set<string>>(() => new Set());\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const enableSelection = shouldEnableSelection(props);\n const selectionActions = resolveSelectionActions(props);\n const { groups } = view;\n // Rows in collapsed groups leave the pages but still count for statistics, selection, and row numbers.\n const shownRows = groups ? groups.flatMap((group) => group.rows) : view.shownRows;\n const page = groups\n ? pageGroupedRows(groups, collapsed, pageIndex, pageSize)\n : pageRows(shownRows, pageIndex, pageSize);\n const data = shownRows.map((row) => row.sourceRow);\n const idBySource = new Map(shownRows.map((row) => [row.sourceRow, row.id]));\n const columns = buildColumns(data, view.visibleColumnKeys, {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection,\n rowActions,\n getRowActions,\n selectedRowIds: rowSelection,\n columnRenderers,\n wrapRows: settings.wrapRows,\n rowNumbers: settings.rowNumbers,\n search: view.deferredSearch,\n });\n\n const table = useReactTable({\n data,\n columns,\n defaultColumn: { size: 150, minSize: 40, maxSize: 800 },\n state: { rowSelection },\n getRowId: (row) => idBySource.get(row) ?? \"\",\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n onRowSelectionChange: setRowSelection,\n getCoreRowModel: getCoreRowModel(),\n enableMultiRowSelection: enableSelection,\n enableRowSelection: enableSelection,\n autoResetAll: false,\n });\n\n const fieldMenu: DataTableFieldMenu = {\n sortFor: (columnId) => {\n const sort = sorts[0];\n return sort?.attributeId === columnId ? sort.direction : undefined;\n },\n // Header and Display edit the same single ordering.\n onSort: (columnId, direction) => setSorts([{ attributeId: columnId, direction }]),\n onFilterBy: (columnId) => {\n const field = findField(view.attributes, columnId);\n if (field) startRule(field);\n },\n onHide: (columnId) =>\n setSettings({ hiddenColumns: toggleHiddenDataTableColumn(settings.hiddenColumns, columnId, false) }),\n };\n\n const total = view.rows.length;\n const nothingShown = total > 0 && view.shownRows.length === 0 && Boolean(view.deferredSearch.trim());\n\n return (\n <Flex direction=\"column\" flex=\"1\" minH=\"0\" minW=\"0\" height=\"100%\" width=\"100%\" overflow=\"hidden\">\n <DataTableHeader\n itemLabel={props.itemLabel}\n view={view}\n viewsSource={props.viewsSource}\n actions={props.toolbarActions}\n displayControl={\n <DataTableDisplayMenu\n columns={view.attributes}\n sortControl={<DisplaySortControl fields={view.attributes} sorts={sorts} onSortsChange={setSorts} />}\n settings={settings}\n statsAvailable={Boolean(columnStats)}\n onSettingsChange={setSettings}\n onColumnVisibilityChange={(columnId, visible) =>\n setSettings({ hiddenColumns: toggleHiddenDataTableColumn(settings.hiddenColumns, columnId, visible) })\n }\n onColumnReorder={(activeColumnId, overColumnId) =>\n setSettings({\n columnOrder: reorderDataTableColumns(view.orderedColumnKeys, activeColumnId, overColumnId),\n })\n }\n />\n }\n />\n {props.contentPlaceholder != null || nothingShown ? (\n <Box flex=\"1\" minH=\"0\" overflow=\"auto\">\n {props.contentPlaceholder ?? (\n <CollectionViewEmptyState search={view.deferredSearch} onClearSearch={() => view.setSearch(\"\")} />\n )}\n </Box>\n ) : (\n <DataTableGrid\n table={table}\n entries={page.entries}\n collapsed={collapsed}\n onToggleGroup={(key) =>\n setCollapsed((current) => {\n const next = new Set(current);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n })\n }\n settings={settings}\n data={data}\n fieldMenu={fieldMenu}\n selectionActions={enableSelection ? selectionActions : undefined}\n noBorder={noBorder}\n fullWidth={fullWidth}\n onRowClick={onRowClick}\n isRowInteractive={isRowInteractive}\n activeRowId={activeRowId}\n columnDescriptions={columnDescriptions}\n columnStats={columnStats}\n enableRowActivation={enableRowActivation}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n )}\n {page.pageCount > 1 ? (\n <PaginationFooter\n pageCount={page.pageCount}\n pageIndex={page.page}\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n onPageChange={setPageIndex}\n onPageSizeChange={(size) => {\n setPageSize(size);\n setPageIndex(0);\n }}\n />\n ) : null}\n </Flex>\n );\n};\n\nexport const DataTable = (props: DataTableProps) => {\n if (props.editMode) return <EditModeDataTable {...props} />;\n return <DatasetDataTable {...props} />;\n};\n","import \"./data-table.css\";\n\nimport { Skeleton, Table, Text } from \"@chakra-ui/react\";\n\nexport interface DataTableSkeletonColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableSkeletonProps {\n /** Real column headers when the caller already knows them. */\n columns?: DataTableSkeletonColumn[];\n /** Placeholder column count when the headers are still unknown. */\n columnCount?: number;\n rowCount?: number;\n}\n\n// Deterministic width variation keeps the shimmer organic without re-rendering\n// to a different layout on every mount.\nconst cellWidths = [\"70%\", \"45%\", \"60%\", \"35%\", \"55%\"];\n\nexport const DataTableSkeleton = (props: DataTableSkeletonProps) => {\n const { columns, columnCount = 3, rowCount = 5 } = props;\n const headers =\n columns && columns.length > 0\n ? columns\n : Array.from({ length: columnCount }, (_, index) => ({ id: `column-${index + 1}`, label: \"\" }));\n\n return (\n <Table.Root className=\"data-table full-width\" width=\"100%\">\n <Table.Header>\n <Table.Row className=\"data-table-column-header-row\" borderRight=\"1px solid\" borderColor=\"border.subtle\">\n {headers.map((column) => (\n <Table.ColumnHeader\n key={column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n whiteSpace=\"nowrap\"\n >\n {column.label ? (\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {column.label}\n </Text>\n ) : (\n <Skeleton height=\"12px\" width=\"4rem\" borderRadius=\"xs\" />\n )}\n </Table.ColumnHeader>\n ))}\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {Array.from({ length: rowCount }, (_, rowIndex) => (\n <Table.Row key={rowIndex}>\n {headers.map((column, columnIndex) => (\n <Table.Cell\n key={column.id}\n padding=\"xs\"\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n >\n <Skeleton\n height=\"14px\"\n width={cellWidths[(rowIndex + columnIndex) % cellWidths.length]}\n borderRadius=\"xs\"\n />\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Root>\n );\n};\n"],"mappings":"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"}
|