@pstdio/ui 0.40.0 → 0.41.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.
Files changed (83) hide show
  1. package/dist/{MermaidComponent-81jr28u4.js → MermaidComponent-BCiI63_G.js} +3 -3
  2. package/dist/{MermaidComponent-81jr28u4.js.map → MermaidComponent-BCiI63_G.js.map} +1 -1
  3. package/dist/chat-question-bubble-w2vMbFsS.js +68 -0
  4. package/dist/chat-question-bubble-w2vMbFsS.js.map +1 -0
  5. package/dist/chat-ui.d.ts +96 -21
  6. package/dist/chat-ui.js +2091 -1441
  7. package/dist/chat-ui.js.map +1 -1
  8. package/dist/{data-table-stats-row-CpRe_xK2.js → data-table-stats-row-EiTEONdY.js} +2 -2
  9. package/dist/{data-table-stats-row-CpRe_xK2.js.map → data-table-stats-row-EiTEONdY.js.map} +1 -1
  10. package/dist/data-table.d.ts +27 -7
  11. package/dist/data-table.js +1035 -872
  12. package/dist/data-table.js.map +1 -1
  13. package/dist/diff-bubble-DewUd_2w.js +61 -0
  14. package/dist/diff-bubble-DewUd_2w.js.map +1 -0
  15. package/dist/{diff-drawer-45rpk3aq.js → diff-drawer-BwZBOObe.js} +106 -85
  16. package/dist/diff-drawer-BwZBOObe.js.map +1 -0
  17. package/dist/diff-viewer-kOOd7C7h.js +574 -0
  18. package/dist/diff-viewer-kOOd7C7h.js.map +1 -0
  19. package/dist/diff.d.ts +11 -0
  20. package/dist/diff.js +107 -98
  21. package/dist/diff.js.map +1 -1
  22. package/dist/display-sort-control-DPxc0e5z.js +587 -0
  23. package/dist/display-sort-control-DPxc0e5z.js.map +1 -0
  24. package/dist/{workspace-badge-Brm3Xr3m.d.ts → host-storage-DP0RLj4i.d.ts} +15 -1
  25. package/dist/{index-Bfddrlz8.d.ts → index-C9mywhyX.d.ts} +50 -14
  26. package/dist/index-D3UJyWWh.d.ts +501 -0
  27. package/dist/{index-CbtbcvKm.d.ts → index-DlmvvQ6x.d.ts} +1 -1
  28. package/dist/index.d.ts +44 -19
  29. package/dist/index.js +941 -908
  30. package/dist/index.js.map +1 -1
  31. package/dist/kanban-renderer.d.ts +2 -326
  32. package/dist/kanban-renderer.js +991 -610
  33. package/dist/kanban-renderer.js.map +1 -1
  34. package/dist/list-row-DM0DiIrN.js +1167 -0
  35. package/dist/list-row-DM0DiIrN.js.map +1 -0
  36. package/dist/{mermaid-renderer-DImi0fDp.js → mermaid-renderer-0PmNkOXI.js} +29 -29
  37. package/dist/mermaid-renderer-0PmNkOXI.js.map +1 -0
  38. package/dist/mermaid.js +1 -1
  39. package/dist/param-editor.js +2 -3
  40. package/dist/prism-JVIsQMoJ.js +1029 -0
  41. package/dist/prism-JVIsQMoJ.js.map +1 -0
  42. package/dist/{resource-badge-95WPVlZf.d.ts → resource-badge-nOWPqxFU.d.ts} +1 -0
  43. package/dist/rich-text-DM24VNQZ.js +10447 -0
  44. package/dist/rich-text-DM24VNQZ.js.map +1 -0
  45. package/dist/rich-text.d.ts +2 -2
  46. package/dist/rich-text.js +2 -2
  47. package/dist/style.css +1 -1
  48. package/dist/terminal.d.ts +5 -63
  49. package/dist/terminal.js +102 -122
  50. package/dist/terminal.js.map +1 -1
  51. package/dist/{theme-CbmSEbRF.js → theme-at0rtSnX.js} +435 -245
  52. package/dist/theme-at0rtSnX.js.map +1 -0
  53. package/dist/theme-kKuLN2jb.js +80 -0
  54. package/dist/theme-kKuLN2jb.js.map +1 -0
  55. package/dist/theme-preference-BV4cbJNB.js +115 -0
  56. package/dist/theme-preference-BV4cbJNB.js.map +1 -0
  57. package/dist/theme.js +3 -2
  58. package/dist/{tree-list-BNZwjQZA.js → tree-list-Cqgl8mnN.js} +255 -250
  59. package/dist/tree-list-Cqgl8mnN.js.map +1 -0
  60. package/package.json +4 -4
  61. package/dist/diff-bubble-DZsarmSG.js +0 -61
  62. package/dist/diff-bubble-DZsarmSG.js.map +0 -1
  63. package/dist/diff-drawer-45rpk3aq.js.map +0 -1
  64. package/dist/diff-viewer-BP_mI6Wx.js +0 -558
  65. package/dist/diff-viewer-BP_mI6Wx.js.map +0 -1
  66. package/dist/list-row-uqD-q4gv.js +0 -1018
  67. package/dist/list-row-uqD-q4gv.js.map +0 -1
  68. package/dist/mermaid-renderer-DImi0fDp.js.map +0 -1
  69. package/dist/param-editor-BQd4AOUP.js +0 -225
  70. package/dist/param-editor-BQd4AOUP.js.map +0 -1
  71. package/dist/param-editor-field-BJ_rLUnV.js +0 -2385
  72. package/dist/param-editor-field-BJ_rLUnV.js.map +0 -1
  73. package/dist/prism-BStPsJSB.js +0 -658
  74. package/dist/prism-BStPsJSB.js.map +0 -1
  75. package/dist/rich-text-VYAmEigU.js +0 -6979
  76. package/dist/rich-text-VYAmEigU.js.map +0 -1
  77. package/dist/slider-hwHYe98I.js +0 -423
  78. package/dist/slider-hwHYe98I.js.map +0 -1
  79. package/dist/theme-CbmSEbRF.js.map +0 -1
  80. package/dist/theme-preference-pzfuK5cH.js +0 -101
  81. package/dist/theme-preference-pzfuK5cH.js.map +0 -1
  82. package/dist/tree-list-BNZwjQZA.js.map +0 -1
  83. package/dist/types-DWA3enV6.d.ts +0 -182
@@ -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","mixHexColors","DataTableColorScaleStop","DataTableThemeColor","ColorScaleCellProps","value","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","_c","Badge","DataTableBadgeCategory","DataTableBadgeCellProps","value","categories","DataTableBadgeCell","props","$","_c","t0","find","category","palette","t1","String","t2","_c","Text","useEffect","useState","Tooltip","relativeUnits","unit","seconds","const","parseDate","value","time","Date","parse","Number","isNaN","formatDataTableRelativeDate","now","locale","date","format","Intl","RelativeTimeFormat","numeric","elapsedSeconds","getTime","match","find","candidate","Math","abs","round","DataTableDateCellProps","DataTableDateCell","props","$","_c","setNow","_temp","t0","t1","Symbol","for","timer","setInterval","clearInterval","t2","relativeLabel","t3","toLocaleString","undefined","dateStyle","timeStyle","fullDate","t4","t5","_c","_temp","Tooltip","DiffBubble","DataTableDiffValue","DataTableDiffCell","props","$","_c","value","t0","additions","deletions","_c","chakra","Tooltip","visibleEndLength","DataTablePathCell","props","$","_c","value","t0","slice","start","t1","end","t2","t3","t4","t5","_c","Tooltip","ParamEditor","JsonField","label","value","FriendlyJsonDisplayProps","imageExtensionPattern","imageLabelPattern","humanizeKey","key","words","replace","trim","toLowerCase","toUpperCase","slice","formatPath","path","map","part","test","join","isPrimitiveArray","every","item","appendJsonFields","fields","Array","isArray","length","push","forEach","index","String","entries","Object","parseJsonCellValue","JSON","parse","buildJsonFields","field","isJsonImageValue","startsWith","url","URL","protocol","pathname","isJsonImageArray","formatJsonPrimitive","undefined","formatJsonValue","getJsonCellSummary","parsedValue","keys","filter","visibleValues","remainingCount","Boolean","toReadOnlyValue","type","const","src","alt","images","image","buildFriendlyJsonParams","id","name","FriendlyJsonDisplay","props","$","_c","t0","t1","_c","Button","HStack","Image","Popover","Portal","Text","Braces","ChevronRight","ScrollArea","buildJsonFields","FriendlyJsonDisplay","getJsonCellSummary","isJsonImageArray","isJsonImageValue","JsonCellProps","columnLabel","value","stopRowActivation","event","stopPropagation","JsonCell","props","$","_c","T0","T1","T2","summary","t0","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","fields","imageFields","flatMap","_temp","slice","t12","Root","Symbol","for","placement","offset","mainAxis","Trigger","length","map","_temp2","t13","t14","t15","t16","overscrollBehavior","t17","t18","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","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","checked","getIsAllRowsSelected","isIndeterminate","getIsSomeRowsSelected","t0","t1","t2","t3","details","toggleAllRowsSelected","t4","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","t5","bb0","actions","undefined","resolvedActions","original","length","Root","Positioner","Content","t6","destructive","icon","onSelect","t7","t8","t9","FormattedCellProps","value","wrapRows","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","resolveDataTableComparableValue","DataTableColumnMeta","columnHelper","getIcon","DataTableColumnRenderer","DataTableRowAction","RowData","compareValues","valueA","valueB","undefined","String","localeCompare","BuildColumnsOptions","columnIcons","Partial","Record","columnDescriptions","compactHeaders","enableSelection","selectedRowIds","rowActions","getRowActions","row","columnRenderers","wrapRows","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","columnDescription","headerLabel","getCellStyle","sortingFn","rowA","rowB","original","rowActionsColumn","length","Box","HStack","Icon","IconButton","Popover","Portal","Stack","Text","closestCenter","DndContext","DragEndEvent","PointerSensor","useSensor","useSensors","SortableContext","useSortable","verticalListSortingStrategy","CSS","Check","GripVertical","Settings2","useEffect","useRef","useState","SearchableMenuInput","Checkbox","ScrollArea","Switch","DataTableRowDisplaySwitch","DataTableColumnMenuColumn","id","label","DataTableColumnMenuProps","columns","visibleColumnIds","Set","wrapRows","showStats","statsAvailable","onColumnVisibilityChange","columnId","visible","onColumnReorder","activeColumnId","overColumnId","onWrapRowsChange","onStatsVisibilityChange","DataTableColumnMenuRowProps","column","checked","DataTableColumnMenuRow","props","$","_c","t0","attributes","listeners","setNodeRef","transform","transition","isDragging","t1","Transform","toString","t2","t3","opacity","style","t4","Symbol","for","bg","t5","t6","t7","t8","details","t9","t10","t11","DataTableColumnMenu","triggerRef","contentRef","open","setOpen","query","setQuery","activationConstraint","distance","sensors","normalizedQuery","trim","toLowerCase","filter","includes","filteredColumns","event","active","over","String","handleDragEnd","closeOnOutsidePointerDown","event_0","target","Node","current","contains","closeOnEscape","event_1","key","document","addEventListener","removeEventListener","placement","offset","mainAxis","getAnchorElement","_temp","role","overscrollBehavior","map","_temp2","t12","t13","column_1","has","t14","t15","t16","t17","column_0","_c","Checkbox","_temp","Switch","_temp2","ScrollArea","Icon","ChakraIcon","Flex","IconButton","Menu","Portal","Table","Text","Cell","flexRender","Header","HeaderGroup","Row","TanStackTable","ArrowDownAZ","ArrowUpAZ","MoreVertical","ResourceContextMenu","Tooltip","ListRow","DataTableColumnMeta","DataTableCellContext","DataTableProps","RowData","utilityColumnIds","Set","getSortMenuIcon","sortDirection","DataTableColumnHeaderProps","header","headerGroup","table","fullWidth","hasDescription","DataTableColumnHeader","props","$","_c","canSortColumn","t0","column","getIsSorted","t1","id","has","getCoreRowModel","rows","length","SortIcon","columnDef","getContext","tooltipContent","t2","t3","Symbol","for","borderRight","t4","t5","headers","indexOf","undefined","t6","width","t7","t8","t9","visibility","toggleSorting","clearSorting","t10","getCanResize","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","className","getIsResizing","t11","t12","t13","DataTableCellViewProps","cell","row","wrapRows","getCellContextMenuActions","DataTableCellView","columnMeta","meta","getCellStyle","getValue","cellStyle","original","cellContext","rowId","columnId","value","map","action","key","label","icon","onClick","onSelect","contextActions","cellElement","DataTableBodyRowProps","noBorder","rowIsInteractive","rowIsActive","rowIsSelected","onRowClick","DataTableBodyRow","borderBottom","borderColor","getVisibleCells","_c","ChakraIcon","Tooltip","Box","Flex","Table","getCoreRowModel","getPaginationRowModel","getSortedRowModel","PaginationState","RowSelectionState","SortingState","useReactTable","Fragment","lazy","Suspense","useEffect","useState","ScrollArea","useKanbanRendererStore","buildColumns","DataTableColumnMenu","DataTableHeader","buildDataTableRendererAttributes","buildDataTableRendererRows","filterDataTableRows","getSelectedOriginalRows","reorderDataTableColumns","resolveDataTableColumnOrder","resolveDataTableRowId","resolveDataTableToolbarStorageKey","resolveInitialPageSize","resolveSelectionActions","shouldEnableSelection","shouldHighlightActiveRow","toggleHiddenDataTableColumn","DataTableBodyRow","DataTableColumnHeader","EditModeDataTable","PaginationFooter","SelectionToolbar","DataTableProps","RowData","DataTableStatsRow","then","module","default","DatasetPaginationProps","table","ReturnType","pagination","pageSizeOptions","buildColumnMenuColumns","columnKeys","compactHeaders","Partial","Record","map","columnId","id","label","resolveColumnSizeVars","colSizes","header","getFlatHeaders","getSize","column","DatasetPagination","props","$","_c","t0","getPageCount","t1","pageIndex","t2","pageSize","t3","t4","rows","length","setPageIndex","setPageSize","DatasetDataTable","data","noBorder","fullWidth","hiddenColumns","defaultHiddenColumns","defaultShowStats","onRowClick","isRowInteractive","activeRowId","columnIcons","columnDescriptions","columnStats","columnRenderers","initialPageSize","rowActions","getRowActions","getRowId","toolbarStorageKey","enableRowActivation","getCellContextMenuActions","sorting","setSorting","setPagination","rowSelection","setRowSelection","showStats","setShowStats","wrapRows","setWrapRows","columnOrder","setColumnOrder","propHiddenColumnsSet","Set","Object","keys","filter","key","has","hiddenColumnMenuIds","setHiddenColumnMenuIds","hiddenColumnsSet","baseColumnKeys","orderedBaseColumnKeys","visibleColumnIds","enableSelection","selectionActions","rendererAttributes","rendererRows","resolvedToolbarStorageKey","filters","state","settings","viewMode","filteredRendererRows","filteredData","row","sourceRow","columns","selectedRowIds","defaultColumn","size","minSize","maxSize","index","columnResizeMode","columnResizeDirection","onSortingChange","onPaginationChange","onRowSelectionChange","enableMultiRowSelection","enableRowSelection","autoResetAll","pageCount","current","Math","max","columnSizeVars","selectedRows","getSelectedRowModel","allRows","selectedOriginalRows","columnControl","Boolean","visible","activeColumnId","overColumnId","toolbarActions","defaultViews","defaultActiveViewId","contentPlaceholder","width","getTotalSize","getHeaderGroups","headerGroup","headers","getRowModel","rowIsInteractive","original","rowIsActive","rowId","rowIsSelected","getIsSelected","toggleAllRowsSelected","DataTable","editMode","_c","ScrollArea","Fragment","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","Checkbox$1","Switch$1","ScrollArea$1","SearchableMenuInput","ResourceContextMenu","ListRow","shouldHighlightActiveRow","reorderDataTableColumns","resolveInitialPageSize","resolveDataTableToolbarStorageKey","formatDisplayValue","getIcon","isDataTableDiffValue","resolveDataTableComparableValue","resolveSelectionActions","columnHelper","DataTableRowDisplaySwitch","getSelectedOriginalRows","resolveDataTableRowId","useKanbanRendererStore","buildDataTableRendererRows","PaginationFooter","SelectionToolbar","toggleHiddenDataTableColumn","shouldEnableSelection","EditModeDataTable","resolveDataTableColumnOrder","filterDataTableRows","buildDataTableRendererAttributes","DataTableHeader","DiffBubble","ParamEditor","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","Text","DataTableBadgeCell","palette","t1","t2","Badge","relativeUnits","parseDate","time","formatDataTableRelativeDate","date","format","locale","elapsedSeconds","now","match","DataTableDateCell","setNow","useState","_temp$3","timer","useEffect","relativeLabel","t3","fullDate","t4","t5","Tooltip$1","DataTableDiffCell","DataTablePathCell","chakra","imageExtensionPattern","imageLabelPattern","humanizeKey","words","key","formatPath","path","part","isPrimitiveArray","item","appendJsonFields","index","fields","entries","parseJsonCellValue","buildJsonFields","field","isJsonImageValue","url","label","isJsonImageArray","formatJsonPrimitive","formatJsonValue","getJsonCellSummary","parsedValue","visibleValues","remainingCount","toReadOnlyValue","image","buildFriendlyJsonParams","FriendlyJsonDisplay","stopRowActivation","event","JsonCell","T0","T1","T2","summary","t10","t11","t6","t7","t8","t9","columnLabel","imageFields","_temp$2","t12","Popover","Button","HStack","_temp2$2","Braces","t13","ChevronRight","t14","t15","t16","t17","Portal","t18","Image","field_0","toSingleLineElement","isValidElement","element","cloneElement","stopControlPropagation","SelectionHeader","checked","table","isIndeterminate","Minus","Check","Icon","details","SelectionCell","column","selectedRowIds","row","mergeRowActions","dynamicLabels","dynamicActions","action","rowActions","RowActionsCell","getActions","T3","resolvedActions","Menu","IconButton","ChevronDown","FormattedCell","displayValue","wrapRows","DataCell","renderer","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","columnDescription","CircleHelp","headerIcon","compareValues","valueA","valueB","resolveDataCellStyle","buildColumns","options","rowIndexColumn","rowIndex","selectionColumn","dataColumns","columnKeys","fallBackKey","columnValues","data","columnRenderers","customIcon","columnIcons","columnDescriptions","compactHeaders","rowA","rowB","rowActionsColumn","enableSelection","getRowActions","DataTableColumnMenuRow","useSortable","transform","CSS","isDragging","transition","style","GripVertical","attributes","listeners","Box","onColumnVisibilityChange","setNodeRef","DataTableColumnMenu","triggerRef","useRef","contentRef","open","setOpen","query","setQuery","sensors","useSensors","useSensor","PointerSensor","columns","normalizedQuery","filteredColumns","onColumnReorder","over","active","handleDragEnd","closeOnOutsidePointerDown","event_0","closeOnEscape","event_1","_temp$1","Settings2","onWrapRowsChange","onStatsVisibilityChange","showStats","statsAvailable","_temp2$1","visibleColumnIds","column_1","Stack","SortableContext","verticalListSortingStrategy","DndContext","closestCenter","current","column_0","utilityColumnIds","getSortMenuIcon","sortDirection","ArrowUpAZ","ArrowDownAZ","MoreVertical","DataTableColumnHeader","canSortColumn","header","SortIcon","flexRender","tooltipContent","fullWidth","headerGroup","Flex","hasDescription","Table","DataTableCellView","columnMeta","cell","cellStyle","getCellContextMenuActions","cellContext","contextActions","cellElement","DataTableBodyRow","rowIsActive","rowIsSelected","rowIsInteractive","onRowClick","noBorder","DataTableStatsRow","lazy","module","buildColumnMenuColumns","columnId","resolveColumnSizeVars","colSizes","DatasetPagination","pagination","pageSizeOptions","DatasetDataTable","sorting","setSorting","setPagination","rowSelection","setRowSelection","setShowStats","defaultShowStats","setWrapRows","columnOrder","setColumnOrder","propHiddenColumnsSet","hiddenColumns","hiddenColumnMenuIds","setHiddenColumnMenuIds","defaultHiddenColumns","hiddenColumnsSet","baseColumnKeys","key_0","orderedBaseColumnKeys","key_1","key_2","selectionActions","rendererAttributes","rendererRows","getRowId","resolvedToolbarStorageKey","filters","state","filteredData","useReactTable","row_0","getSortedRowModel","getCoreRowModel","getPaginationRowModel","pageCount","columnSizeVars","selectedRows","allRows","selectedOriginalRows","columnControl","columnStats","current_0","visible","current_1","activeColumnId","overColumnId","Suspense","isRowInteractive","row_1","DataTable","cellWidths","DataTableSkeleton","columnCount","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-date-cell.tsx","../src/components/data-table/data-table-diff-cell.tsx","../src/components/data-table/data-table-path-cell.tsx","../src/components/data-table/friendly-json-display.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-column-menu.tsx","../src/components/data-table/data-table-table-parts.tsx","../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 { mixHexColors } from \"./color-cell-style\";\nimport type { DataTableColorScaleStop, DataTableThemeColor } from \"./types\";\n\ninterface ColorScaleCellProps {\n value: number;\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 } = props;\n\n return (\n <Text textStyle=\"paragraph/S/medium\" fontVariantNumeric=\"tabular-nums\" truncate>\n {value}\n </Text>\n );\n};\n","import { Badge } from \"@chakra-ui/react\";\nimport type { DataTableBadgeCategory } from \"./types\";\n\ninterface DataTableBadgeCellProps {\n value: string | number | boolean;\n categories?: DataTableBadgeCategory[];\n}\n\nexport const DataTableBadgeCell = (props: DataTableBadgeCellProps) => {\n const { value, categories } = 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 {String(value)}\n </Badge>\n );\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\n\nconst relativeUnits = [\n { unit: \"year\", seconds: 365 * 24 * 60 * 60 },\n { unit: \"month\", seconds: 30 * 24 * 60 * 60 },\n { unit: \"day\", seconds: 24 * 60 * 60 },\n { unit: \"hour\", seconds: 60 * 60 },\n { unit: \"minute\", seconds: 60 },\n] as const;\n\nconst parseDate = (value: unknown) => {\n if (typeof value !== \"string\") return null;\n const time = Date.parse(value);\n return Number.isNaN(time) ? null : new Date(time);\n};\n\nexport const formatDataTableRelativeDate = (value: unknown, now = new Date(), locale?: string) => {\n const date = parseDate(value);\n if (!date) return null;\n const format = new Intl.RelativeTimeFormat(locale, { numeric: \"auto\" });\n const elapsedSeconds = (date.getTime() - now.getTime()) / 1000;\n const match = relativeUnits.find((candidate) => Math.abs(elapsedSeconds) >= candidate.seconds);\n if (!match) return format.format(0, \"second\");\n return format.format(Math.round(elapsedSeconds / match.seconds), match.unit);\n};\n\ninterface DataTableDateCellProps {\n value: string;\n}\n\nexport const DataTableDateCell = (props: DataTableDateCellProps) => {\n const { value } = props;\n const [now, setNow] = useState(() => new Date());\n useEffect(() => {\n const timer = setInterval(() => setNow(new Date()), 60_000);\n return () => clearInterval(timer);\n }, []);\n const relativeLabel = formatDataTableRelativeDate(value, now);\n const fullDate = new Date(value).toLocaleString(undefined, { dateStyle: \"medium\", timeStyle: \"short\" });\n\n return (\n <Tooltip content={fullDate} openDelay={300}>\n <Text as=\"span\" tabIndex={0} textStyle=\"paragraph/S/regular\" color=\"fg.muted\" whiteSpace=\"nowrap\">\n {relativeLabel}\n </Text>\n </Tooltip>\n );\n};\n","import { DiffBubble } from \"../diff-viewer/diff-bubble\";\nimport type { DataTableDiffValue } from \"./types\";\n\nexport const DataTableDiffCell = (props: { value: DataTableDiffValue }) => {\n const { value } = props;\n return <DiffBubble additions={value.additions} deletions={value.deletions} variant=\"ghost\" size=\"small\" />;\n};\n","import { chakra } from \"@chakra-ui/react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\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 }) => {\n const { value } = 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 {start}\n </chakra.span>\n <chakra.span flexShrink={0}>{end}</chakra.span>\n </chakra.span>\n </Tooltip>\n );\n};\n","import { ParamEditor } from \"@/components/param-editor\";\n\ninterface JsonField {\n label: string;\n value: unknown;\n}\n\nexport interface FriendlyJsonDisplayProps {\n value: unknown;\n}\n\nconst imageExtensionPattern = /\\.(avif|bmp|gif|jpe?g|png|svg|webp)$/i;\nconst imageLabelPattern = /(^|\\s)(avatar|image|logo|photo|picture|thumbnail)(\\s|$)/i;\n\nconst humanizeKey = (key: string) => {\n const words = key\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]+/g, \" \")\n .trim()\n .toLowerCase();\n\n return words ? `${words[0]?.toUpperCase()}${words.slice(1)}` : \"Details\";\n};\n\nconst formatPath = (path: string[]) => path.map((part) => (/^\\d+$/.test(part) ? part : humanizeKey(part))).join(\" / \");\n\nconst isPrimitiveArray = (value: unknown[]) => value.every((item) => item === null || typeof item !== \"object\");\n\nconst appendJsonFields = (value: unknown, path: string[], fields: JsonField[]) => {\n if (Array.isArray(value)) {\n if (value.length === 0 || isPrimitiveArray(value)) {\n fields.push({ label: formatPath(path), value });\n return;\n }\n\n value.forEach((item, index) => {\n appendJsonFields(item, [...path, String(index + 1)], fields);\n });\n return;\n }\n\n if (value !== null && typeof value === \"object\") {\n const entries = Object.entries(value);\n if (entries.length === 0) {\n fields.push({ label: formatPath(path), value: null });\n return;\n }\n\n entries.forEach(([key, item]) => {\n appendJsonFields(item, [...path, key], fields);\n });\n return;\n }\n\n fields.push({ label: formatPath(path), value });\n};\n\nexport const parseJsonCellValue = (value: unknown) => {\n if (typeof value !== \"string\") return value;\n\n try {\n return JSON.parse(value) as unknown;\n } catch {\n return value;\n }\n};\n\nexport const buildJsonFields = (value: unknown) => {\n const fields: JsonField[] = [];\n appendJsonFields(parseJsonCellValue(value), [], fields);\n return fields.map((field) => ({ ...field, label: field.label || \"Value\" }));\n};\n\nexport const isJsonImageValue = (value: unknown, label: string) => {\n if (typeof value !== \"string\") return false;\n if (value.startsWith(\"data:image/\")) return true;\n\n try {\n const url = new URL(value);\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") return false;\n return imageExtensionPattern.test(url.pathname) || imageLabelPattern.test(label);\n } catch {\n return false;\n }\n};\n\nexport const isJsonImageArray = (value: unknown, label: string) => {\n return Array.isArray(value) && value.length > 0 && value.every((item) => isJsonImageValue(item, label));\n};\n\nconst formatJsonPrimitive = (value: unknown) => {\n if (value === null || value === undefined || value === \"\") return \"Not provided\";\n if (typeof value === \"boolean\") return value ? \"Yes\" : \"No\";\n return String(value);\n};\n\nconst formatJsonValue = (value: unknown) => {\n if (Array.isArray(value)) return value.length === 0 ? \"None\" : value.map(formatJsonPrimitive).join(\", \");\n return formatJsonPrimitive(value);\n};\n\nexport const getJsonCellSummary = (value: unknown) => {\n const parsedValue = parseJsonCellValue(value);\n if (Array.isArray(parsedValue) && parsedValue.length === 0) return \"No details\";\n if (parsedValue !== null && typeof parsedValue === \"object\" && Object.keys(parsedValue).length === 0) {\n return \"No details\";\n }\n\n const fields = buildJsonFields(value).filter(\n (field) => !isJsonImageValue(field.value, field.label) && !isJsonImageArray(field.value, field.label),\n );\n if (fields.length === 0) return \"No details\";\n\n const visibleValues = fields.slice(0, 2).map((field) => formatJsonValue(field.value));\n const remainingCount = fields.length - visibleValues.length;\n return [...visibleValues, remainingCount > 0 ? `${remainingCount} more` : null].filter(Boolean).join(\" · \");\n};\n\nconst toReadOnlyValue = (field: JsonField) => {\n const { label, value } = field;\n if (isJsonImageValue(value, label)) {\n return { type: \"image\" as const, src: String(value), alt: `${label} preview` };\n }\n if (Array.isArray(value) && isJsonImageArray(value, label)) {\n return {\n type: \"image-gallery\" as const,\n images: value.map((image, index) => ({ src: String(image), alt: `${label} ${index + 1} preview` })),\n };\n }\n if (Array.isArray(value)) return value as Array<string | number | boolean | null>;\n if (value === undefined) return null;\n return value as string | number | boolean | null;\n};\n\nexport const buildFriendlyJsonParams = (value: unknown) =>\n buildJsonFields(value).map((field, index) => ({\n id: `friendly-json-${index}`,\n name: field.label,\n type: \"readOnly\" as const,\n value: toReadOnlyValue(field),\n }));\n\nexport const FriendlyJsonDisplay = (props: FriendlyJsonDisplayProps) => {\n const { value } = props;\n return <ParamEditor params={buildFriendlyJsonParams(value)} readOnly fullWidth />;\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 {\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}\n\nconst stopRowActivation = (event: { stopPropagation: () => void }) => event.stopPropagation();\n\nexport const JsonCell = (props: JsonCellProps) => {\n const { columnLabel, value } = 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 {summary}\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 { 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={checked ? true : isIndeterminate ? \"indeterminate\" : false}\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}\n\nconst FormattedCell = (props: FormattedCellProps) => {\n const { value, wrapRows } = 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 {wrapRows ? displayValue : toSingleLineElement(displayValue)}\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 {displayValue}\n </Text>\n );\n};\n\ninterface DataCellProps {\n columnLabel: string;\n renderer?: DataTableColumnRenderer;\n value: unknown;\n wrapRows: boolean;\n}\n\nconst DataCell = (props: DataCellProps) => {\n const { columnLabel, renderer, value, wrapRows } = props;\n\n if (renderer?.type === \"json\") return <JsonCell columnLabel={columnLabel} value={value} />;\n\n if (renderer?.type === \"badge\" && [\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n return <DataTableBadgeCell value={value as string | number | boolean} categories={renderer.categories} />;\n }\n\n if (renderer?.type === \"diff\" && isDataTableDiffValue(value)) return <DataTableDiffCell value={value} />;\n\n if (renderer?.type === \"path\" && typeof value === \"string\" && !wrapRows) return <DataTablePathCell value={value} />;\n\n if (renderer?.type === \"date\") {\n if (formatDataTableRelativeDate(value)) return <DataTableDateCell value={value as string} />;\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} />;\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} />\n </CategoricalColorCell>\n );\n }\n }\n\n return <FormattedCell value={value} wrapRows={wrapRows} />;\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 } = column.columnDef.meta as DataTableColumnMeta;\n return <DataCell columnLabel={column.id} renderer={renderer} value={getValue()} wrapRows={wrapRows} />;\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 { resolveDataTableComparableValue } from \"./data-table-cell-value\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { columnHelper, getIcon } from \"./helpers\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst compareValues = (valueA: unknown, valueB: unknown) => {\n if (valueA === valueB) return 0;\n if (valueA === null || valueA === undefined) return 1;\n if (valueB === null || valueB === undefined) return -1;\n\n if (typeof valueA === \"number\" && typeof valueB === \"number\") {\n return valueA - valueB;\n }\n\n return String(valueA).localeCompare(String(valueB));\n};\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}\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 } = options;\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 getCellStyle: (value: unknown) => resolveDataCellStyle(value, renderer),\n } satisfies DataTableColumnMeta,\n sortingFn: (rowA, rowB) => {\n const valueA = resolveDataTableComparableValue(rowA.original[fallBackKey], renderer);\n const valueB = resolveDataTableComparableValue(rowB.original[fallBackKey], renderer);\n return compareValues(valueA, valueB);\n },\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 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 { useEffect, useRef, useState } from \"react\";\n\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 { DataTableRowDisplaySwitch } from \"./data-table-row-display\";\n\ninterface DataTableColumnMenuColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableColumnMenuProps {\n columns: DataTableColumnMenuColumn[];\n visibleColumnIds: Set<string>;\n wrapRows: boolean;\n showStats: boolean;\n statsAvailable: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n onColumnReorder: (activeColumnId: string, overColumnId: string) => void;\n onWrapRowsChange: (wrapRows: boolean) => void;\n onStatsVisibilityChange: (showStats: boolean) => void;\n}\n\ninterface DataTableColumnMenuRowProps {\n column: DataTableColumnMenuColumn;\n checked: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n}\n\nconst DataTableColumnMenuRow = (props: DataTableColumnMenuRowProps) => {\n const { column, checked, onColumnVisibilityChange } = props;\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: column.id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n opacity: isDragging ? 0.5 : 1,\n };\n\n return (\n <HStack\n ref={setNodeRef}\n style={style}\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 width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\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 </HStack>\n );\n};\n\nexport const DataTableColumnMenu = (props: DataTableColumnMenuProps) => {\n const {\n columns,\n visibleColumnIds,\n wrapRows,\n showStats,\n statsAvailable,\n onColumnVisibilityChange,\n onColumnReorder,\n onWrapRowsChange,\n onStatsVisibilityChange,\n } = 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 normalizedQuery = query.trim().toLowerCase();\n const filteredColumns = normalizedQuery\n ? columns.filter((column) => column.label.toLowerCase().includes(normalizedQuery))\n : columns;\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (!over || active.id === over.id) return;\n\n onColumnReorder(String(active.id), String(over.id));\n };\n\n useEffect(() => {\n if (!open) return;\n\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\n setOpen(false);\n };\n const closeOnEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.addEventListener(\"keydown\", closeOnEscape, true);\n return () => {\n document.removeEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.removeEventListener(\"keydown\", closeOnEscape, true);\n };\n }, [open]);\n\n return (\n <Popover.Root\n open={open}\n closeOnInteractOutside={false}\n positioning={{\n placement: \"bottom-end\",\n offset: { mainAxis: 8 },\n getAnchorElement: () => triggerRef.current,\n }}\n >\n <Popover.Trigger asChild>\n <IconButton\n ref={triggerRef}\n aria-label=\"Display settings\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setOpen((current) => !current)}\n >\n <Icon as={Settings2} boxSize=\"14px\" />\n </IconButton>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content ref={contentRef} width=\"min(320px, calc(100vw - 32px))\" p=\"0\" bg=\"bg\" overflow=\"hidden\">\n <Stack gap=\"0\">\n <DataTableRowDisplaySwitch showDivider wrapRows={wrapRows} onWrapRowsChange={onWrapRowsChange} />\n {statsAvailable ? (\n <Box borderBottomWidth=\"1px\" borderColor=\"border.subtle\" padding=\"xs\">\n <Switch\n checked={showStats}\n inputProps={{ role: \"switch\" }}\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n onCheckedChange={(details) => onStatsVisibilityChange(details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\">\n Statistics\n </Text>\n </Switch>\n </Box>\n ) : null}\n <SearchableMenuInput value={query} placeholder=\"Search columns\" onValueChange={setQuery} />\n <ScrollArea maxH=\"280px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <Box padding=\"2xs\">\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\n <SortableContext items={columns.map((column) => column.id)} strategy={verticalListSortingStrategy}>\n <Stack gap=\"1px\">\n {filteredColumns.map((column) => (\n <DataTableColumnMenuRow\n key={column.id}\n column={column}\n checked={visibleColumnIds.has(column.id)}\n onColumnVisibilityChange={onColumnVisibilityChange}\n />\n ))}\n </Stack>\n </SortableContext>\n </DndContext>\n </Box>\n </ScrollArea>\n </Stack>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Table, Text } from \"@chakra-ui/react\";\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 { ArrowDownAZ, ArrowUpAZ, MoreVertical } 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\nconst getSortMenuIcon = (sortDirection: false | \"asc\" | \"desc\") => {\n if (sortDirection === \"asc\") return ArrowUpAZ;\n if (sortDirection === \"desc\") return ArrowDownAZ;\n return MoreVertical;\n};\n\ninterface DataTableColumnHeaderProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n table: TanStackTable<RowData>;\n fullWidth?: boolean;\n hasDescription?: boolean;\n}\n\nexport const DataTableColumnHeader = (props: DataTableColumnHeaderProps) => {\n const { header, headerGroup, table, fullWidth, hasDescription } = props;\n const sortDirection = header.column.getIsSorted();\n const canSortColumn = !utilityColumnIds.has(header.column.id) && table.getCoreRowModel().rows.length > 1;\n const SortIcon = getSortMenuIcon(sortDirection);\n const tooltipContent =\n header.column.id === \"rowSelection\"\n ? \"Select all\"\n : flexRender(header.column.columnDef.header, header.getContext());\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\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 {canSortColumn && (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton\n ml=\"2px\"\n size=\"2xs\"\n aria-label={sortDirection ? `Sorted ${sortDirection}` : \"Sort column\"}\n variant=\"ghost\"\n visibility={sortDirection ? \"visible\" : \"hidden\"}\n _groupHover={{ visibility: \"visible\" }}\n >\n <ChakraIcon as={SortIcon} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n <Menu.Item value=\"sort-asc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort ascending\"\n icon={<ChakraIcon as={ArrowUpAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"asc\"}\n onActivate={() => header.column.toggleSorting(false)}\n />\n </Menu.Item>\n <Menu.Item value=\"sort-desc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort descending\"\n icon={<ChakraIcon as={ArrowDownAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"desc\"}\n onActivate={() => header.column.toggleSorting(true)}\n />\n </Menu.Item>\n {sortDirection && (\n <Menu.Item value=\"clear-sort\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Clear sort\"\n onActivate={() => header.column.clearSorting()}\n />\n </Menu.Item>\n )}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n )}\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 \"./data-table.css\";\n\nimport { Box, Flex, Table } from \"@chakra-ui/react\";\nimport {\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { Fragment, lazy, Suspense, useEffect, useState } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { useKanbanRendererStore } from \"../kanban-renderer/use-kanban-renderer-store\";\nimport { buildColumns } from \"./build-columns\";\nimport { DataTableColumnMenu } from \"./data-table-column-menu\";\nimport { DataTableHeader } from \"./data-table-header\";\nimport {\n buildDataTableRendererAttributes,\n buildDataTableRendererRows,\n filterDataTableRows,\n getSelectedOriginalRows,\n reorderDataTableColumns,\n resolveDataTableColumnOrder,\n resolveDataTableRowId,\n resolveDataTableToolbarStorageKey,\n resolveInitialPageSize,\n resolveSelectionActions,\n shouldEnableSelection,\n shouldHighlightActiveRow,\n toggleHiddenDataTableColumn,\n} from \"./data-table-state\";\nimport { DataTableBodyRow, DataTableColumnHeader } from \"./data-table-table-parts\";\nimport { EditModeDataTable } from \"./edit-mode-data-table\";\nimport { PaginationFooter } from \"./pagination-footer\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableProps, RowData } from \"./types\";\n\nconst DataTableStatsRow = lazy(() =>\n import(\"./data-table-stats-row\").then((module) => ({ default: module.DataTableStatsRow })),\n);\n\ninterface DatasetPaginationProps {\n table: ReturnType<typeof useReactTable<RowData>>;\n pagination: PaginationState;\n pageSizeOptions: number[];\n}\n\nconst buildColumnMenuColumns = (columnKeys: string[], compactHeaders?: Partial<Record<string, string>>) =>\n columnKeys.map((columnId) => ({ id: columnId, label: compactHeaders?.[columnId] ?? columnId }));\n\nconst resolveColumnSizeVars = (table: ReturnType<typeof useReactTable<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\nconst DatasetPagination = (props: DatasetPaginationProps) => {\n const { table, pagination, pageSizeOptions } = props;\n\n return (\n <PaginationFooter\n pageCount={table.getPageCount()}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n pageSizeOptions={pageSizeOptions}\n totalRows={table.getCoreRowModel().rows.length}\n onPageChange={table.setPageIndex}\n onPageSizeChange={table.setPageSize}\n />\n );\n};\n\nconst DatasetDataTable = (props: DataTableProps) => {\n const {\n data,\n noBorder,\n fullWidth,\n hiddenColumns,\n defaultHiddenColumns,\n defaultShowStats = true,\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 getRowId,\n toolbarStorageKey,\n enableRowActivation = false,\n getCellContextMenuActions,\n } = props;\n const [sorting, setSorting] = useState<SortingState>([]);\n const [pagination, setPagination] = useState<PaginationState>(() => ({\n pageIndex: 0,\n pageSize: resolveInitialPageSize({ initialPageSize }),\n }));\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [showStats, setShowStats] = useState(defaultShowStats);\n const [wrapRows, setWrapRows] = useState(false);\n const [columnOrder, setColumnOrder] = useState<string[]>(() => {\n const propHiddenColumnsSet = new Set(hiddenColumns ?? []);\n return Object.keys(data[0] || {}).filter((key) => !propHiddenColumnsSet.has(key));\n });\n const [hiddenColumnMenuIds, setHiddenColumnMenuIds] = useState<Set<string>>(() => new Set(defaultHiddenColumns));\n const hiddenColumnsSet = new Set(hiddenColumns ?? []);\n const baseColumnKeys = Object.keys(data[0] || {}).filter((key) => !hiddenColumnsSet.has(key));\n const orderedBaseColumnKeys = resolveDataTableColumnOrder(baseColumnKeys, columnOrder);\n const visibleColumnIds = new Set(orderedBaseColumnKeys.filter((key) => !hiddenColumnMenuIds.has(key)));\n const columnKeys = orderedBaseColumnKeys.filter((key) => visibleColumnIds.has(key));\n const enableSelection = shouldEnableSelection(props);\n const selectionActions = resolveSelectionActions(props);\n const rendererAttributes = buildDataTableRendererAttributes(\n data,\n orderedBaseColumnKeys,\n compactHeaders,\n columnRenderers,\n );\n const rendererRows = buildDataTableRendererRows(data, orderedBaseColumnKeys, getRowId, columnRenderers);\n const resolvedToolbarStorageKey = resolveDataTableToolbarStorageKey({\n toolbarStorageKey,\n columnKeys: baseColumnKeys,\n });\n const filters = useKanbanRendererStore(resolvedToolbarStorageKey, (state) => state.filters, {\n settings: { viewMode: \"list\" },\n });\n const filteredRendererRows = filterDataTableRows(rendererRows, filters, rendererAttributes);\n const filteredData = filteredRendererRows.map((row) => row.sourceRow);\n const columns = buildColumns(data, columnKeys, {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection,\n rowActions,\n getRowActions,\n selectedRowIds: rowSelection,\n columnRenderers,\n wrapRows,\n });\n\n const table = useReactTable({\n data: filteredData,\n columns,\n defaultColumn: { size: 150, minSize: 40, maxSize: 800 },\n state: { sorting, pagination, rowSelection },\n getRowId: (row, index) => resolveDataTableRowId(row, index, getRowId),\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n onSortingChange: setSorting,\n onPaginationChange: setPagination,\n onRowSelectionChange: setRowSelection,\n getSortedRowModel: getSortedRowModel(),\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n enableMultiRowSelection: enableSelection,\n enableRowSelection: enableSelection,\n autoResetAll: false,\n });\n\n useEffect(() => {\n const pageCount = table.getPageCount();\n if (pageCount === 0 || pagination.pageIndex < pageCount) return;\n\n setPagination((current) => ({\n ...current,\n pageIndex: Math.max(pageCount - 1, 0),\n }));\n }, [pagination.pageIndex, table]);\n\n const columnSizeVars = resolveColumnSizeVars(table);\n\n const selectedRows = table.getSelectedRowModel().rows;\n const allRows = table.getCoreRowModel().rows;\n const selectedOriginalRows = getSelectedOriginalRows(selectedRows);\n const columnControl = (\n <DataTableColumnMenu\n columns={buildColumnMenuColumns(orderedBaseColumnKeys, compactHeaders)}\n visibleColumnIds={visibleColumnIds}\n wrapRows={wrapRows}\n showStats={showStats}\n statsAvailable={Boolean(columnStats)}\n onColumnVisibilityChange={(columnId, visible) =>\n setHiddenColumnMenuIds((current) => toggleHiddenDataTableColumn(current, columnId, visible))\n }\n onColumnReorder={(activeColumnId, overColumnId) =>\n setColumnOrder((current) =>\n reorderDataTableColumns(resolveDataTableColumnOrder(baseColumnKeys, current), activeColumnId, overColumnId),\n )\n }\n onWrapRowsChange={setWrapRows}\n onStatsVisibilityChange={setShowStats}\n />\n );\n\n return (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n <DataTableHeader\n rows={rendererRows}\n storageKey={resolvedToolbarStorageKey}\n attributes={rendererAttributes}\n columnControl={columnControl}\n actions={props.toolbarActions}\n defaultViews={props.defaultViews}\n defaultActiveViewId={props.defaultActiveViewId}\n />\n {props.contentPlaceholder ?? (\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 />\n ))}\n </Table.Row>\n {columnStats && showStats ? (\n <Suspense fallback={null}>\n <DataTableStatsRow\n headerGroup={headerGroup}\n rows={filteredData}\n columnStats={columnStats}\n noBorder={noBorder}\n fullWidth={fullWidth}\n />\n </Suspense>\n ) : null}\n </Fragment>\n ))}\n </Table.Header>\n <Table.Body>\n {table.getRowModel().rows.map((row) => {\n const rowIsInteractive = onRowClick ? (isRowInteractive?.(row.original) ?? true) : false;\n const rowIsActive = shouldHighlightActiveRow({ enableRowActivation, activeRowId, rowId: row.id });\n const rowIsSelected = row.getIsSelected();\n\n return (\n <DataTableBodyRow\n key={row.id}\n row={row}\n noBorder={noBorder}\n rowIsInteractive={rowIsInteractive}\n rowIsActive={rowIsActive}\n rowIsSelected={rowIsSelected}\n wrapRows={wrapRows}\n onRowClick={onRowClick}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n );\n })}\n </Table.Body>\n </Table.Root>\n </ScrollArea>\n {enableSelection && selectedRows.length > 0 ? (\n <SelectionToolbar\n selectedCount={selectedRows.length}\n totalCount={allRows.length}\n onClearSelection={() => table.toggleAllRowsSelected(false)}\n onSelectAll={() => table.toggleAllRowsSelected(true)}\n actions={selectionActions}\n selectedRows={selectedOriginalRows}\n />\n ) : null}\n </Box>\n )}\n {table.getPageCount() > 1 && (\n <DatasetPagination table={table} pagination={pagination} pageSizeOptions={pageSizeOptions} />\n )}\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","ScrollArea","chakra","Icon","Table","Text","ChevronDown","ChevronRight","DataTableGroupRowProps","label","count","collapsed","columnCount","onToggle","DataTableGroupRow","props","$","_c","t0","t1","t2","t3","t4","t5","t6","_c","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","lazy","Suspense","ScrollArea","DataTableGroupRow","DataTablePageEntry","DataTableRendererRow","getSelectedOriginalRows","shouldHighlightActiveRow","DataTableBodyRow","DataTableColumnHeader","DataTableFieldMenu","SelectionToolbar","DataTableProps","DataTableSelectionAction","DataTableSettings","RowData","DataTableStatsRow","then","module","default","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","Switch$1","Tooltip$1","ScrollArea$1","Checkbox$1","ResourceContextMenu","SearchableMenuInput","ListRow","resolveSelectionActions","getJsonCellSummary","getSelectedOriginalRows","PaginationFooter","formatDisplayValue","isJsonImageValue","getIcon","shouldHighlightActiveRow","fieldIcon","toggleHiddenDataTableColumn","reorderDataTableColumns","columnHelper","findField","FriendlyJsonDisplay","DataTableHeader","SelectionToolbar","isJsonImageArray","DataTableDateCell","useDataTableViewStore","shouldEnableSelection","resolveInitialPageSize","EditModeDataTable","formatDataTableRelativeDate","isDataTableDiffValue","useDataTableView","HighlightedText","buildJsonFields","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$3","t13","Popover","Button","HStack","_temp2$2","Braces","t14","ChevronRight","t15","t16","t17","t18","Portal","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$2","_temp2$1","groupingOptions","onColumnReorder","over","active","handleDragEnd","closeOnOutsidePointerDown","event_0","useEffect","Settings2","onSettingsChange","statsAvailable","t20","t21","t22","t23","t24","_temp3","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","utilityColumnIds","sortIcon","direction","ArrowUpNarrowWide","ArrowDownWideNarrow","ChevronsUpDown","FieldMenuItem","DataTableColumnHeader","columnId","header","fieldMenu","fullWidth","hasDescription","headerGroup","sort","showsFieldMenu","flexRender","tooltipContent","Flex","ListFilter","EyeOff","DataTableCellView","columnMeta","cell","cellStyle","getCellContextMenuActions","cellContext","contextActions","cellElement","DataTableBodyRow","rowIsActive","rowIsSelected","rowIsInteractive","onRowClick","noBorder","DataTableStatsRow","lazy","module","resolveColumnSizeVars","colSizes","DataTableGrid","enableRowActivation","activeRowId","columnStats","entries","isRowInteractive","onToggleGroup","selectionActions","tableRowsById","_temp$1","columnSizeVars","selectedRows","Suspense","entry","row_0","pageGroupedRows","shown","group","groups","pageCount","pageSize","page","pageIndex","position","rows","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-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 { 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, lazy, Suspense } 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 { DataTableBodyRow, DataTableColumnHeader, type DataTableFieldMenu } from \"./data-table-table-parts\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableProps, DataTableSelectionAction, DataTableSettings, RowData } from \"./types\";\n\nconst DataTableStatsRow = lazy(() =>\n import(\"./data-table-stats-row\").then((module) => ({ default: module.DataTableStatsRow })),\n);\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 <Suspense fallback={null}>\n <DataTableStatsRow\n headerGroup={headerGroup}\n rows={data}\n columnStats={columnStats}\n noBorder={noBorder}\n fullWidth={fullWidth}\n />\n </Suspense>\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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"}