{"version":3,"file":"index.cjs","names":["createAdapterAgentApprovalFeature","AgentApproval","agentApproval","SavedViewsPanelChrome","Button","Chip","IconButton","Paper","Stack","TextField","Typography","slots","Surface","children","className","title","footer","rest","p","display","lineHeight","mb","mt","Empty","message","Input","label","ref","value","onChange","onCommit","onCancel","htmlInput","event","target","key","Row","name","viewName","isEditing","isDefault","readOnly","defaultLabel","readOnlyLabel","onApply","applyLabel","controls","layout","row","caption","flex","justifyContent","textTransform","fontWeight","minWidth","map","control","danger","pressed","onPress","icon","SavedViewsPanel","props","$","_c","t0","cellDisplay","column","row","rowIndex","Cell","accessor","COLUMN_GROUP_TOGGLE","COLUMN_HEADER_RENAME","COLUMN_SELECT","EDITABLE_CELL","EXPAND_TOGGLE","FeatureSlot","FILL_HANDLE","FILTER_HEADER","GROUP_HEADER_CARD","GROUP_HEADER_ROW","ROW_EDIT_ACTIONS","ROW_REORDER_BUTTONS","ROW_REORDER_HANDLE","TREE_CELL","TREE_TOGGLE","useFeatureSlotFilled","cellDisplay","OptionalEditableCell","props","$","_c","t0","column","display","row","rowIndex","filled","t1","OptionalTreeCell","children","OptionalTreeToggle","OptionalFillHandle","OptionalExpandToggle","OptionalFilterHeader","OptionalRowEditActions","OptionalRowReorderHandle","OptionalRowReorderButtons","OptionalColumnGroupToggle","OptionalColumnHeaderRename","OptionalColumnSelect","OptionalGroupHeaderRow","OptionalGroupHeaderCard","runRowAction","visibleRowActions","resolveDisabledReason","Button","IconButton","Menu","MenuItem","Paper","Stack","Tooltip","useState","iconForRowAction","MoreVerticalIcon","muiColor","ActionStrip","t0","$","_c","row","actions","confirm","cancelLabel","t1","Symbol","for","justifyContent","t2","t3","action","reason","disabledReason","disabled","undefined","isDisabled","icon","color","handleClick","e","stopPropagation","key","label","map","ActionsMenuPaper","props","ActionMenu","labels","anchor","setAnchor","event","currentTarget","rowActionsMenu","t4","Boolean","t5","t6","t7","t8","vertical","horizontal","paper","t9","cancel","t10","_temp","t11","event_0","RowActionButtons","layout","render","visible","content","length","PIN_Z","resolveColumnFooter","cellFlashAttr","cellHighlightStyle","cellSpanMark","columnFlexShares","columnGroupHeaderCaption","columnSizeStyle","ColumnSpacer","createDesktopRow","EXTRA_OVER_SPAN_ROW_STYLE","EXTRA_OVER_SPAN_STYLE","EXTRA_ROW_PARTS","groupedHeaderCellStyle","groupedHeaderLabelStyle","logicalAlign","mergedCellStyle","pinnedEdgeCellStyle","REORDER_COLUMN_WIDTH","resolveRowEditTrigger","rowEditConflict","useDesktopTableAssembly","Box","Checkbox","Table","TableBody","TableCell","TableFooter","TableHead","TableRow","TableSortLabel","useCallback","useMemo","useRef","OptionalColumnGroupToggle","OptionalColumnHeaderRename","OptionalColumnSelect","OptionalEditableCell","OptionalExpandToggle","OptionalFillHandle","OptionalFilterHeader","OptionalGroupHeaderRow","OptionalRowEditActions","OptionalRowReorderHandle","OptionalTreeCell","RowActionButtons","ExtraSlotRow","t0","$","_c","kind","colSpan","render","labels","fillStyle","parts","t1","undefined","t2","rowSeparator","t3","t4","t5","cell","t6","row","muiColor","color","EXPAND_WIDTH","SELECTION_WIDTH","ACTIONS_WIDTH","MUI_WIDTHS","expansion","selection","actions","PIN_BG","PAPER_SX","bgcolor","RESIZE_HANDLE_SX","position","insetInlineEnd","top","height","width","cursor","touchAction","userSelect","ExtraCheckboxCell","show","Symbol","for","useStableToggle","target","ref","current","id","toggle","muiAlign","align","rowExtrasEqual","prev","next","size","dir","DesktopRowBase","props","index","gridFocus","columns","bodyCells","selected","expanded","showActions","showReorder","rowReorder","windowStart","rowCount","reorderPinned","rowActions","rowActionsLayout","cellSpanAppearance","renderRowActions","confirm","columnSpan","columnSpacers","treeEntry","treeColumnKey","treeKey","onToggleTree","hasStartPin","hasEndPin","actionsPinned","rowClass","isCellFlashing","hasPrefetch","editing","rows","getRowId","onPrefetch","onToggleSelect","onToggleExpand","renderDetail","focusIndex","edgeRowPin","measureRef","rowDomProps","bodyPinStyle","expandable","expansionLead","selectionLead","edge","_temp","rowEditing","rowEdit","rowConflict","Boolean","expandRow","collapseRow","t7","input","selectRow","t8","start","t9","t10","column","columnIndex","rowSpan","focusProps","getCellPropsAt","pin","key","textAlign","background","backgroundColor","editCell","undoEdit","map","end","t11","body","showBegin","rowEditIcons","editRow","saveRow","cancel","length","t12","t13","t14","active","lead","LeafHeader","leaf","headSx","flexShares","columnWidths","filterRegistry","closeHeaderFilterOnSelect","source","onRenameColumn","headerTooltip","sortable","caption","sortActive","sortButtonProps","sortDir","sortIndex","onClick","fontSize","ml","headerProps","columnHeaderProps","style","display","alignItems","gap","renameable","columnName","columnCheckboxChecked","columnSelectAriaLabel","onToggleColumn","showColumnCheckbox","headerActions","headerDef","t15","resizeHandleProps","t16","DesktopTable","fitColumns","stickyHeader","assembly","widths","Row","model","summary","showColumnFooter","headerPlan","headerBand","header","scroll","tableStyle","tableProps","gridProps","callbacks","bodySlots","leadingCells","headPaint","headerStickTop","zIndex","edgeHeadSx","edgeHeadStyle","headerPinned","leafProps","table","renderPlanCell","pinSide","verticalAlign","fontWeight","onToggleColumnGroup","leadingHeaders","leading","expand","reorder","reorderRow","selectAll","headerState","toggleAll","spacerStart","trailingHeaders","trailing","spacerEnd","stickActions","minWidth","bindScrollBox","boxStyle","tableLayout","theadRef","rowIndex","last","join","headerRowRef","headerIndex","slot","extraKind","p","entry","getCellProps","onToggleGroup","grouping","showMore","wiring","Alert","Button","ErrorState","t0","$","_c","error","labels","onRetry","t1","retry","undefined","t2","errorTitle","t3","message","bodyRowEntries","treeCardStyle","cellFlashAttr","EXTRA_ROW_PARTS","insertExtraRows","isExtraEntry","mobileCardListStyle","orderedCardEntries","pinnedSummaryPart","pinnedSummaryRowId","pinnedSummarySideFromId","resolveMobileLabel","resolveRowEditTrigger","resolveRowStyle","rowClickProps","rowEditConflict","rowEditingSignature","rowFlashSignature","rowIsDirty","rowReorderSignature","rowStyleSignature","useSummaryCells","Box","Card","CardContent","Checkbox","Stack","Typography","memo","useMemo","OptionalEditableCell","OptionalExpandToggle","OptionalGroupHeaderCard","OptionalRowEditActions","OptionalRowReorderButtons","OptionalTreeToggle","RowActionButtons","unlessPinned","side","value","undefined","unlessPinnedMatch","match","id","Boolean","COMPARED_CARD_PROPS","mobileCardPropsEqual","prev","next","every","key","Object","is","MobileCardBase","t0","$","_c","row","index","columns","labels","confirm","rowActions","rowActionsLayout","renderRowActions","className","style","isCellFlashing","selected","expanded","onToggleSelect","onToggleExpand","renderDetail","onRowClick","measureElement","compact","dir","editing","rows","getRowId","treeEntry","onToggleTree","rowReorder","windowStart","rowCount","setSize","renderCard","part","ariaLabel","T0","T1","rowConflict","rowEdit","t1","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t2","t3","t4","t5","t6","t7","t8","t9","t20","column","label","editCell","undoEdit","fields","map","t21","rowEditing","t22","t23","t24","level","t25","p","pb","_temp","input","selectRow","expandRow","collapseRow","t26","column_0","mb","display","showBegin","rowEditIcons","actions","length","mt","MobileCards","table","cardClassName","size","rowClassName","rowStyle","rowHeight","renderRowDetail","summaryRow","expansion","grouping","tree","rowEntries","paddingTop","paddingBottom","cardSetSize","pinnedTopRows","pinnedBottomRows","pinnedSummaryTop","pinnedSummaryBottom","extraRows","maxHeight","virtualScrollRef","selection","entries","expand","summaryCells","Symbol","for","CardItem","isExpanded","toggle","isSelected","filter","join","pinnedSummaryRow","cardFor","getTableProps","height","row_0","index_0","entry","kind","rowSeparator","cell","render","key_0","collapsed","showMore","_temp2","slot","row_1","index_1","e","pageSizeOptions","MenuItem","Pagination","Stack","TextField","Typography","Footer","t0","$","_c","pagination","total","limit","defaultLimit","t1","setPage","setLimit","labels","showRowsPerPage","t2","undefined","t3","Symbol","for","alignItems","justifyContent","flexWrap","t4","t5","rowsPerPage","String","e","Number","target","value","minWidth","map","_temp","t6","fromIndex","toIndex","showing","from","to","t7","t8","_","page","t9","type","page_0","goToPage","previousPage","nextPage","t10","safePage","totalPages","t11","n","Box","Skeleton","Stack","srOnly","position","width","height","padding","margin","overflow","clip","whiteSpace","border","LoadingState","t0","$","_c","rows","columns","loadingLabel","t1","t2","_","r","py","Array","from","length","Math","max","_temp","t3","__0","c","pageSizeOptions","FeatureSlot","FILTER_POPOVER","TOOLBAR_EXTRAS","Badge","Button","InputAdornment","MenuItem","Stack","TextField","useRef","FiltersIcon","SearchIcon","$","_c","t0","Symbol","for","Toolbar","table","searchable","searchPlaceholder","sortByOptions","toolbar","toolbarSlots","onUndo","onRedo","canUndo","canRedo","undoLabel","redoLabel","onPrint","printLabel","density","onDensityChange","onToggleFullscreen","isFullscreen","hasFilters","activeFilterCount","showRowsPerPage","filtersMode","filters","filtersOpen","onToggleFilters","onFiltersTriggerPointerDown","onCloseFilters","onClearFilters","dir","savedViewsMenu","columnMenu","onAddRow","addRowLabel","onExportCsv","exportBusy","exportAnnouncement","exportProgressState","exportLabel","exportDisabled","exportDisabledReason","labels","source","sortOptions","isMobile","undefined","searchProps","getSearchInputProps","placeholder","filtersAnchorRef","filtersButton","flexWrap","alignItems","justifyContent","start","value","htmlInput","search","type","input","startAdornment","onChange","flex","minWidth","maxWidth","length","sortBy","e","setSort","target","sortDir","map","o","label","open","onClose","anchorEl","current","end","rowsPerPage","limit","setLimit","Number","defaultLimit","n","resolveLabels","showSimpleFilterFields","ACTIVE_FILTER_CHIPS","AGENT_APPROVAL","AGENT_APPROVAL_STATE","BATCH_EDIT_BAR","BULK_BAR","COLUMN_MENU","COMMAND_PALETTE_LIVE","contextMenuCopyTarget","ContextMenuLiveGate","DataTableShellView","FeatureHostProvider","FeatureProviders","FeatureSlot","fillSlot","FILTER_DRAWER","FILTERS_FORM","FIND_BAR","GRID_FOCUS_ANNOUNCER","GROUPING_PANEL","OptionalSidePanel","resolveStickyToolbar","ROW_REORDER_ANNOUNCER","SAVED_VIEWS","SIDE_PANEL","STATUS_BAR","TableStatusAnnouncer","useDataTableShell","useFeatureState","useMountStagger","useStickyToolbarLayout","useTableFeatures","Box","Button","LinearProgress","Paper","Stack","Typography","DesktopTable","ErrorState","MobileCards","Footer","LoadingState","Toolbar","TableFooterSlot","t0","$","_c","children","t1","tableSize","bits","density","DataTableContent","incoming","props","slots","className","classNames","animate","undefined","filtersMode","headerFiltersOn","headerFilters","t2","filterFields","simpleFiltersOn","t3","labels","defs","source","registry","formProps","defaultExpanded","showSimpleFields","shell","chrome","c","filtersNode","filtersOpen","setFiltersOpen","filtersTrigger","rootRef","approval","t4","size","t5","maxHeight","t6","stickyHeader","stickyToolbar","stickyBar","stickyTop","viewSource","confirm","t7","isMobile","rows","length","t8","enabled","t9","savedViews","urlKey","urlAdapter","options","savedViewsMenu","t10","card","footer","root","table","toolbar","onClick","onPointerDown","empty","error","noResults","skeleton","headerOffset","toolbarRef","toolbarStyle","view","c_0","tableProps","loadMoreRef","canLoadMore","toolbarProps","viewSource_0","columnMenu","enableColumnMenu","allColumns","onAutoSize","autoSizeColumns","onAutoSizeColumn","autoSizeColumn","onSortColumn","key","dir","setSort","onFilterColumn","onRenameColumn","onColumnRename","columnLayout","setName","sortBy","sortDir","layout","hasRowActions","hasRowReorder","groupingPanel","body","skeletonRows","limit","columns","loading","emptyVariant","py","alignItems","noData","clearFilters","clearAll","prefetch","contextMenuLive","contextMenu","rowFor","rowId","find","row","rowKey","actions","onCopy","target","copy","gridFocus","available","copyCells","cell","onSort","key_0","dir_0","onHide","key_1","toggleVisible","onFilter","featureHost","container","fullscreen","regionProps","filter","Boolean","join","isRefreshing","p","focus","statusAnnouncement","rowReorder","announcement","position","top","zIndex","bgcolor","pb","chips","mergedChips","onClearAll","editing","batch","contested","conflict","anyContested","pending","selection","bulkActions","total","commandPalette","onPrint","onExport","onExportCsv","onClearFilters","hasFilters","activeFilterCount","groupingPanelProps","sidePanel","side","errorState","retry","open","panels","openPanel","onOpenPanel","onOpenChange","onClose","hasNextPage","display","justifyContent","isFetchingNextPage","fetchNextPage","loadMore","tableFooter","showFooter","pagination","defaultLimit","setPage","setLimit","grouping","filters","statusBar","notices","featureNotices","shown","page","selected","selectedCount","stats","selectionStats","locale","t11","DataTable"],"sources":["../src/agent-approval.tsx","../src/components/SavedViewsPanel.tsx","../src/components/DisplayCell.tsx","../src/components/featureSlots.tsx","../src/components/RowActionButtons.tsx","../src/components/DesktopTable.tsx","../src/components/ErrorState.tsx","../src/components/MobileCards.tsx","../src/components/PaginationFooter.tsx","../src/components/TableSkeleton.tsx","../src/components/Toolbar.tsx","../src/DataTable.tsx"],"sourcesContent":["import { createAdapterAgentApprovalFeature } from \"@adapttable/react/adapter\";\n\nimport { AgentApproval } from \"./components/kitControls\";\n\n/**\n * Bind this kit's approval strip to the agent-approval slot.\n *\n * @public\n */\nexport function agentApproval() {\n  return createAdapterAgentApprovalFeature(AgentApproval);\n}\n","/** The saved-views management panel, in MUI. */\nimport {\n  SavedViewsPanelChrome,\n  type SavedViewsPanelChromeProps,\n  type SavedViewsPanelEmptyProps,\n  type SavedViewsPanelInputProps,\n  type SavedViewsPanelRowProps,\n  type SavedViewsPanelSlots,\n  type SavedViewsPanelSurfaceProps,\n} from \"@adapttable/react/adapter\";\nimport {\n  Button,\n  Chip,\n  IconButton,\n  Paper,\n  Stack,\n  TextField,\n  Typography,\n} from \"@mui/material\";\n\nconst slots: SavedViewsPanelSlots = {\n  Surface: ({\n    children,\n    className,\n    title,\n    footer,\n    ...rest\n  }: SavedViewsPanelSurfaceProps) => (\n    <Paper variant=\"outlined\" sx={{ p: 1.5 }} className={className} {...rest}>\n      <Typography\n        variant=\"overline\"\n        color=\"text.secondary\"\n        sx={{ display: \"block\", lineHeight: 1.6, mb: 0.5 }}\n        data-adapttable-part=\"saved-views-title\"\n      >\n        {title}\n      </Typography>\n      <Stack spacing={0.25}>{children}</Stack>\n      {footer && (\n        <Typography\n          variant=\"caption\"\n          color=\"text.secondary\"\n          sx={{ display: \"block\", mt: 1.25 }}\n          data-adapttable-part=\"saved-views-footer\"\n        >\n          {footer}\n        </Typography>\n      )}\n    </Paper>\n  ),\n  Empty: ({ message }: SavedViewsPanelEmptyProps) => (\n    <Typography variant=\"body2\" color=\"text.secondary\">\n      {message}\n    </Typography>\n  ),\n  Input: ({\n    label,\n    ref,\n    value,\n    onChange,\n    onCommit,\n    onCancel,\n  }: SavedViewsPanelInputProps) => (\n    <TextField\n      size=\"small\"\n      fullWidth\n      value={value}\n      inputRef={ref}\n      slotProps={{ htmlInput: { \"aria-label\": label } }}\n      onChange={(event) => {\n        onChange(event.target.value);\n      }}\n      onKeyDown={(event) => {\n        if (event.key === \"Enter\") onCommit();\n        if (event.key === \"Escape\") onCancel();\n      }}\n    />\n  ),\n  Row: ({\n    name,\n    viewName,\n    isEditing,\n    isDefault,\n    readOnly,\n    defaultLabel,\n    readOnlyLabel,\n    onApply,\n    applyLabel,\n    controls,\n    layout,\n    ...rest\n  }: SavedViewsPanelRowProps) => (\n    <div style={layout.row} {...rest}>\n      <div style={layout.caption} data-adapttable-part=\"saved-view-caption\">\n        {isEditing ? (\n          name\n        ) : (\n          <Button\n            size=\"small\"\n            color=\"inherit\"\n            title={applyLabel}\n            onClick={onApply}\n            sx={{\n              flex: \"1 1 auto\",\n              justifyContent: \"flex-start\",\n              textTransform: \"none\",\n              fontWeight: isDefault ? 600 : 400,\n              minWidth: 0,\n            }}\n          >\n            {viewName}\n          </Button>\n        )}\n        {readOnly && (\n          <Chip\n            size=\"small\"\n            variant=\"outlined\"\n            label={readOnlyLabel}\n            data-adapttable-part=\"saved-view-readonly\"\n          />\n        )}\n        {isDefault && (\n          <Chip\n            size=\"small\"\n            label={defaultLabel}\n            data-adapttable-part=\"saved-view-default\"\n          />\n        )}\n      </div>\n      <div style={layout.controls} data-adapttable-part=\"saved-view-controls\">\n        {controls.map((control) => (\n          <IconButton\n            key={control.key}\n            size=\"small\"\n            color={control.danger ? \"error\" : \"default\"}\n            style={layout.control}\n            aria-label={control.label}\n            aria-pressed={control.pressed}\n            title={control.label}\n            disabled={!control.onPress}\n            onClick={control.onPress}\n          >\n            {control.icon}\n          </IconButton>\n        ))}\n      </div>\n    </div>\n  ),\n};\n\n/**\n * Manage saved views: apply, rename, reorder, default, delete.\n *\n * @public\n */\nexport function SavedViewsPanel(\n  props: Readonly<Omit<SavedViewsPanelChromeProps, \"slots\">>\n) {\n  return <SavedViewsPanelChrome {...props} slots={slots} />;\n}\n","import type { ColumnDef } from \"@adapttable/react\";\nimport type { ReactNode } from \"react\";\n\n/**\n * The cell's own display content.\n *\n * Called from the cell wrapper rather than the row, so the accessor sits in\n * that cell's memo scope: re-rendering a row for selection or expansion\n * leaves its data cells alone.\n */\nexport function cellDisplay<TRow>(\n  column: ColumnDef<TRow>,\n  row: TRow,\n  rowIndex: number\n): ReactNode {\n  return column.Cell ? (\n    <column.Cell row={row} rowIndex={rowIndex} />\n  ) : (\n    column.accessor?.(row)\n  );\n}\n","/**\n * Lean wrappers around optional cell chrome.\n *\n * DesktopTable and MobileCards import this file instead of the kit\n * implementations, so omitting a feature omits those components.\n */\nimport {\n  COLUMN_GROUP_TOGGLE,\n  COLUMN_HEADER_RENAME,\n  COLUMN_SELECT,\n  type ColumnGroupToggleProps,\n  type ColumnHeaderRenameSlotProps,\n  type ColumnSelectCheckboxChromeProps,\n  EDITABLE_CELL,\n  type EditableCellSlotProps,\n  EXPAND_TOGGLE,\n  type ExpandToggleSlotProps,\n  FeatureSlot,\n  FILL_HANDLE,\n  type FillHandleCellSlotProps,\n  FILTER_HEADER,\n  type FilterHeaderControlProps,\n  GROUP_HEADER_CARD,\n  GROUP_HEADER_ROW,\n  type GroupHeaderCardSlotProps,\n  type GroupHeaderRowSlotProps,\n  ROW_EDIT_ACTIONS,\n  ROW_REORDER_BUTTONS,\n  ROW_REORDER_HANDLE,\n  type RowEditActionsProps,\n  type RowReorderButtonsProps,\n  type RowReorderHandleProps,\n  TREE_CELL,\n  TREE_TOGGLE,\n  type TreeCellProps,\n  type TreeToggleProps,\n  useFeatureSlotFilled,\n} from \"@adapttable/react/adapter\";\nimport type { ReactNode } from \"react\";\n\nimport { cellDisplay } from \"./DisplayCell\";\n\nexport function OptionalEditableCell<TRow>(\n  props: Readonly<EditableCellSlotProps<TRow>>\n): ReactNode {\n  // Computed here, not in the row: the accessor call belongs to this cell's\n  // own memo scope, so re-rendering a row for selection or expansion leaves\n  // its data cells alone.\n  const display =\n    props.display ?? cellDisplay(props.column, props.row, props.rowIndex);\n  const filled = useFeatureSlotFilled(EDITABLE_CELL);\n  return filled ? (\n    <FeatureSlot\n      slot={EDITABLE_CELL}\n      props={{ ...props, display } as unknown as EditableCellSlotProps<never>}\n    />\n  ) : (\n    display\n  );\n}\n\nexport function OptionalTreeCell<TRow>(\n  props: Readonly<TreeCellProps<TRow>>\n): ReactNode {\n  const filled = useFeatureSlotFilled(TREE_CELL);\n  return filled ? (\n    <FeatureSlot\n      slot={TREE_CELL}\n      props={props as unknown as TreeCellProps<never>}\n    />\n  ) : (\n    props.children\n  );\n}\n\nexport function OptionalTreeToggle<TRow>(\n  props: Readonly<TreeToggleProps<TRow>>\n): ReactNode {\n  return (\n    <FeatureSlot\n      slot={TREE_TOGGLE}\n      props={props as unknown as TreeToggleProps<never>}\n    />\n  );\n}\n\nexport function OptionalFillHandle(\n  props: Readonly<FillHandleCellSlotProps>\n): ReactNode {\n  return <FeatureSlot slot={FILL_HANDLE} props={props} />;\n}\n\nexport function OptionalExpandToggle(\n  props: Readonly<ExpandToggleSlotProps>\n): ReactNode {\n  return <FeatureSlot slot={EXPAND_TOGGLE} props={props} />;\n}\n\nexport function OptionalFilterHeader<TRow>(\n  props: Readonly<FilterHeaderControlProps<TRow>>\n): ReactNode {\n  return (\n    <FeatureSlot\n      slot={FILTER_HEADER}\n      props={props as unknown as FilterHeaderControlProps<never>}\n    />\n  );\n}\n\nexport function OptionalRowEditActions<TRow>(\n  props: Readonly<RowEditActionsProps<TRow>>\n): ReactNode {\n  return (\n    <FeatureSlot\n      slot={ROW_EDIT_ACTIONS}\n      props={props as unknown as RowEditActionsProps<never>}\n    />\n  );\n}\n\nexport function OptionalRowReorderHandle<TRow>(\n  props: Readonly<RowReorderHandleProps<TRow>>\n): ReactNode {\n  return (\n    <FeatureSlot\n      slot={ROW_REORDER_HANDLE}\n      props={props as unknown as RowReorderHandleProps<never>}\n    />\n  );\n}\n\nexport function OptionalRowReorderButtons<TRow>(\n  props: Readonly<RowReorderButtonsProps<TRow>>\n): ReactNode {\n  return (\n    <FeatureSlot\n      slot={ROW_REORDER_BUTTONS}\n      props={props as unknown as RowReorderButtonsProps<never>}\n    />\n  );\n}\n\nexport function OptionalColumnGroupToggle(\n  props: Readonly<ColumnGroupToggleProps>\n): ReactNode {\n  return <FeatureSlot slot={COLUMN_GROUP_TOGGLE} props={props} />;\n}\n\nexport function OptionalColumnHeaderRename(\n  props: Readonly<ColumnHeaderRenameSlotProps>\n): ReactNode {\n  return <FeatureSlot slot={COLUMN_HEADER_RENAME} props={props} />;\n}\n\nexport function OptionalColumnSelect(\n  props: Readonly<Omit<ColumnSelectCheckboxChromeProps, \"slots\">>\n): ReactNode {\n  return <FeatureSlot slot={COLUMN_SELECT} props={props} />;\n}\n\nexport function OptionalGroupHeaderRow<TRow>(\n  props: Readonly<GroupHeaderRowSlotProps<TRow>>\n): ReactNode {\n  return (\n    <FeatureSlot\n      slot={GROUP_HEADER_ROW}\n      props={props as unknown as GroupHeaderRowSlotProps<never>}\n    />\n  );\n}\n\nexport function OptionalGroupHeaderCard<TRow>(\n  props: Readonly<GroupHeaderCardSlotProps<TRow>>\n): ReactNode {\n  return (\n    <FeatureSlot\n      slot={GROUP_HEADER_CARD}\n      props={props as unknown as GroupHeaderCardSlotProps<never>}\n    />\n  );\n}\n","/** The trailing row-action buttons, shared by rows and cards. */\nimport {\n  type ConfirmHandler,\n  type RowAction,\n  type RowActionsLayout,\n  type RowActionsRenderer,\n  runRowAction,\n  type TableLabels,\n  visibleRowActions,\n} from \"@adapttable/core\";\nimport { resolveDisabledReason } from \"@adapttable/react/adapter\";\nimport {\n  Button,\n  IconButton,\n  Menu,\n  MenuItem,\n  Paper,\n  type PaperProps,\n  Stack,\n  Tooltip,\n} from \"@mui/material\";\nimport { type MouseEvent, type ReactNode, useState } from \"react\";\n\nimport { iconForRowAction, MoreVerticalIcon } from \"../icons\";\nimport { muiColor } from \"./DesktopTable\";\n\ninterface RowActionButtonsProps<TRow> {\n  row: TRow;\n  actions: readonly RowAction<TRow>[];\n  confirm: ConfirmHandler;\n  labels: Required<TableLabels>;\n  layout?: RowActionsLayout;\n  render?: RowActionsRenderer<TRow>;\n}\n\nfunction ActionStrip<TRow>({\n  row,\n  actions,\n  confirm,\n  cancelLabel,\n}: Readonly<{\n  row: TRow;\n  actions: readonly RowAction<TRow>[];\n  confirm: ConfirmHandler;\n  cancelLabel: string;\n}>): ReactNode {\n  return (\n    <Stack direction=\"row\" spacing={0.5} sx={{ justifyContent: \"flex-end\" }}>\n      {actions.map((action) => {\n        const reason = resolveDisabledReason(action.disabledReason?.(row));\n        const disabled =\n          reason !== undefined || (action.isDisabled?.(row) ?? false);\n        const icon = iconForRowAction(action);\n        const color = muiColor(action.color);\n        const handleClick = disabled\n          ? undefined\n          : (e: MouseEvent) => {\n              e.stopPropagation();\n              runRowAction(action, row, confirm, cancelLabel);\n            };\n        return (\n          <Tooltip key={action.key} title={reason ?? action.label}>\n            <span>\n              {icon ? (\n                <IconButton\n                  size=\"small\"\n                  color={color}\n                  disabled={disabled}\n                  aria-label={action.label}\n                  data-adapttable-part=\"action-button\"\n                  onClick={handleClick}\n                >\n                  {icon}\n                </IconButton>\n              ) : (\n                <Button\n                  size=\"small\"\n                  color={color === \"error\" ? \"error\" : \"inherit\"}\n                  disabled={disabled}\n                  data-adapttable-part=\"action-button\"\n                  onClick={handleClick}\n                >\n                  {action.label}\n                </Button>\n              )}\n            </span>\n          </Tooltip>\n        );\n      })}\n    </Stack>\n  );\n}\n\nfunction ActionsMenuPaper(props: Readonly<PaperProps>) {\n  return <Paper {...props} data-adapttable-part=\"row-actions-menu\" />;\n}\n\nfunction ActionMenu<TRow>({\n  row,\n  actions,\n  confirm,\n  labels,\n}: Readonly<{\n  row: TRow;\n  actions: readonly RowAction<TRow>[];\n  confirm: ConfirmHandler;\n  labels: Required<TableLabels>;\n}>): ReactNode {\n  const [anchor, setAnchor] = useState<HTMLElement | null>(null);\n  return (\n    <>\n      <IconButton\n        size=\"small\"\n        aria-label={labels.rowActionsMenu}\n        data-adapttable-part=\"row-actions-trigger\"\n        onClick={(event) => {\n          event.stopPropagation();\n          setAnchor(event.currentTarget);\n        }}\n      >\n        <MoreVerticalIcon />\n      </IconButton>\n      <Menu\n        anchorEl={anchor}\n        open={Boolean(anchor)}\n        onClose={() => setAnchor(null)}\n        anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\n        transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n        slots={{ paper: ActionsMenuPaper }}\n        onClick={(event) => event.stopPropagation()}\n      >\n        {actions.map((action) => {\n          const reason = resolveDisabledReason(action.disabledReason?.(row));\n          const disabled =\n            reason !== undefined || (action.isDisabled?.(row) ?? false);\n          const color = muiColor(action.color);\n          return (\n            <MenuItem\n              key={action.key}\n              disabled={disabled}\n              title={reason}\n              data-adapttable-part=\"action-button\"\n              sx={color === \"error\" ? { color: \"error.main\" } : undefined}\n              onClick={() => {\n                setAnchor(null);\n                runRowAction(action, row, confirm, labels.cancel);\n              }}\n            >\n              {iconForRowAction(action)}\n              {action.label}\n            </MenuItem>\n          );\n        })}\n      </Menu>\n    </>\n  );\n}\n\nexport function RowActionButtons<TRow>({\n  row,\n  actions,\n  confirm,\n  labels,\n  layout,\n  render,\n}: Readonly<RowActionButtonsProps<TRow>>): ReactNode {\n  const visible = visibleRowActions(actions, row);\n  let content: ReactNode = null;\n  if (render) {\n    content = render({ row, actions, confirm, labels }) as ReactNode;\n  } else if (visible.length > 0) {\n    content =\n      layout === \"menu\" ? (\n        <ActionMenu\n          row={row}\n          actions={visible}\n          confirm={confirm}\n          labels={labels}\n        />\n      ) : (\n        <ActionStrip\n          row={row}\n          actions={visible}\n          confirm={confirm}\n          cancelLabel={labels.cancel}\n        />\n      );\n  }\n  return content;\n}\n","/** The desktop `<table>`: header, pinned columns, rows and summary. */\nimport { PIN_Z, type TableLabels } from \"@adapttable/core\";\nimport { type ColumnDef, resolveColumnFooter } from \"@adapttable/react\";\nimport {\n  cellFlashAttr,\n  cellHighlightStyle,\n  cellSpanMark,\n  columnFlexShares,\n  columnGroupHeaderCaption,\n  columnSizeStyle,\n  ColumnSpacer,\n  createDesktopRow,\n  type DesktopHeaderLeaf,\n  type DesktopRowWiring,\n  EXTRA_OVER_SPAN_ROW_STYLE,\n  EXTRA_OVER_SPAN_STYLE,\n  EXTRA_ROW_PARTS,\n  groupedHeaderCellStyle,\n  groupedHeaderLabelStyle,\n  type HtmlGroupedHeaderCell,\n  logicalAlign,\n  mergedCellStyle,\n  pinnedEdgeCellStyle,\n  REORDER_COLUMN_WIDTH,\n  resolveRowEditTrigger,\n  rowEditConflict,\n  type SharedTableRenderProps,\n  useDesktopTableAssembly,\n} from \"@adapttable/react/adapter\";\nimport {\n  Box,\n  Checkbox,\n  type SxProps,\n  Table,\n  TableBody,\n  TableCell,\n  TableFooter,\n  TableHead,\n  TableRow,\n  TableSortLabel,\n  type Theme,\n} from \"@mui/material\";\nimport {\n  type CSSProperties,\n  type ReactElement,\n  type ReactNode,\n  useCallback,\n  useMemo,\n  useRef,\n} from \"react\";\n\nimport {\n  OptionalColumnGroupToggle,\n  OptionalColumnHeaderRename,\n  OptionalColumnSelect,\n  OptionalEditableCell,\n  OptionalExpandToggle,\n  OptionalFillHandle,\n  OptionalFilterHeader,\n  OptionalGroupHeaderRow,\n  OptionalRowEditActions,\n  OptionalRowReorderHandle,\n  OptionalTreeCell,\n} from \"./featureSlots\";\nimport { RowActionButtons } from \"./RowActionButtons\";\n\nfunction ExtraSlotRow({\n  kind,\n  colSpan,\n  render,\n  labels,\n  fillStyle,\n}: Readonly<{\n  kind: \"separator\" | \"fullWidth\";\n  colSpan: number;\n  render?: () => ReactNode;\n  labels: TableLabels;\n  fillStyle?: CSSProperties;\n}>) {\n  const parts = EXTRA_ROW_PARTS[kind];\n  return (\n    <TableRow\n      data-adapttable-part={parts.row}\n      style={EXTRA_OVER_SPAN_ROW_STYLE}\n    >\n      <TableCell\n        colSpan={colSpan}\n        data-adapttable-part={parts.cell}\n        role={kind === \"separator\" ? \"separator\" : undefined}\n        aria-label={kind === \"separator\" ? labels.rowSeparator : undefined}\n        style={{ ...EXTRA_OVER_SPAN_STYLE, ...fillStyle }}\n      >\n        {kind === \"fullWidth\" ? render?.() : null}\n      </TableCell>\n    </TableRow>\n  );\n}\n\n/** Map a destructive colour token to MUI's `\"error\"` palette, else default. */\nexport function muiColor(color: string | undefined): \"default\" | \"error\" {\n  return color === \"danger\" || color === \"red\" || color === \"error\"\n    ? \"error\"\n    : \"default\";\n}\n\nexport interface SharedProps<TRow> extends SharedTableRenderProps<TRow> {\n  /** The kit's size token for the table. */\n  size: \"small\" | \"medium\";\n  /** Class applied to every mobile card (merged before `rowClassName`). */\n  cardClassName?: string;\n  /** Text direction — flips the collapsed expand chevron under RTL. */\n  dir?: \"ltr\" | \"rtl\";\n  /**\n   * End-pin the trailing actions column on its own (the reserved \"actions\"\n   * layout key pinned right from the Columns menu) — independent of whether\n   * any DATA column is pinned right. Desktop only; cards have no columns.\n   */\n  actionsPinned?: boolean;\n}\n\n/** Width (px) of the leading expand-chevron column (MUI's checkbox cell). */\nconst EXPAND_WIDTH = 48;\nconst SELECTION_WIDTH = 48;\nconst ACTIONS_WIDTH = 120;\nconst MUI_WIDTHS = {\n  expansion: EXPAND_WIDTH,\n  selection: SELECTION_WIDTH,\n  actions: ACTIONS_WIDTH,\n} as const;\nconst PIN_BG = \"var(--mui-palette-background-paper)\";\nconst PAPER_SX = { bgcolor: \"background.paper\" } as const;\nconst RESIZE_HANDLE_SX = {\n  position: \"absolute\",\n  insetInlineEnd: 0,\n  top: 0,\n  height: \"100%\",\n  width: 8,\n  cursor: \"col-resize\",\n  touchAction: \"none\",\n  userSelect: \"none\",\n} as const;\n\n/** Empty leading pad (group header / summary) — keeps DesktopTable lean. */\nfunction ExtraCheckboxCell({ show }: Readonly<{ show: boolean }>) {\n  if (!show) return null;\n  return <TableCell padding=\"checkbox\" />;\n}\n\n/**\n * Identity-stable dispatcher for `selection.toggle` / `expansion.toggle`.\n * `selection.toggle` is recreated whenever the selection changes, so handing\n * it straight to a memoized row would either defeat the memo (if compared)\n * or go stale (if not — in the controlled mode it computes from the captured\n * set). This wrapper never changes identity and always dispatches to the\n * CURRENT target, so skipped rows still toggle against fresh state.\n */\nexport function useStableToggle(\n  target: { toggle: (id: string) => void } | null | undefined\n): (id: string) => void {\n  const ref = useRef(target);\n  ref.current = target;\n  return useCallback((id: string) => ref.current?.toggle(id), []);\n}\n\nfunction muiAlign(\n  align: \"start\" | \"center\" | \"end\" | undefined\n): \"start\" | \"center\" | \"end\" {\n  return logicalAlign(align);\n}\n\ninterface DesktopRowProps<TRow> extends DesktopRowWiring<TRow> {\n  size: \"small\" | \"medium\";\n  dir?: \"ltr\" | \"rtl\";\n}\n\nfunction rowExtrasEqual<TRow>(\n  prev: Readonly<DesktopRowProps<TRow>>,\n  next: Readonly<DesktopRowProps<TRow>>\n): boolean {\n  return prev.size === next.size && prev.dir === next.dir;\n}\n\nfunction DesktopRowBase<TRow>(\n  props: Readonly<DesktopRowProps<TRow>>\n): ReactElement {\n  const {\n    row,\n    index,\n    id,\n    gridFocus,\n    columns,\n    bodyCells,\n    labels,\n    selected,\n    expanded,\n    showActions,\n    showReorder,\n    rowReorder,\n    windowStart,\n    rowCount,\n    reorderPinned,\n    rowActions,\n    rowActionsLayout,\n    cellSpanAppearance,\n    renderRowActions,\n    confirm,\n    columnSpan,\n    columnSpacers,\n    treeEntry,\n    treeColumnKey: treeKey,\n    onToggleTree,\n    hasStartPin,\n    hasEndPin,\n    actionsPinned,\n    rowClass,\n    isCellFlashing,\n    hasPrefetch,\n    editing,\n    rows,\n    getRowId,\n    onPrefetch,\n    onToggleSelect,\n    onToggleExpand,\n    renderDetail,\n    focusIndex,\n    edgeRowPin,\n    measureRef,\n    rowDomProps,\n    bodyPinStyle,\n    dir,\n  } = props;\n  const expandable = expanded !== undefined;\n  const expansionLead = expandable ? EXPAND_WIDTH : 0;\n  const selectionLead =\n    expansionLead + (showReorder ? REORDER_COLUMN_WIDTH : 0);\n  const edge = (active: boolean, lead = 0) =>\n    pinnedEdgeCellStyle(\"start\", active, PIN_Z.body, PIN_BG, lead);\n  const rowEdit = resolveRowEditTrigger(\n    rowActions,\n    editing?.rowEditing,\n    row,\n    id\n  );\n  const rowConflict = rowEditConflict(editing, id);\n  return (\n    <>\n      <TableRow\n        {...rowDomProps}\n        ref={measureRef}\n        className={rowClass}\n        hover\n        selected={Boolean(selected)}\n        onMouseEnter={hasPrefetch ? () => onPrefetch(row) : undefined}\n      >\n        {expandable && (\n          <TableCell\n            padding=\"checkbox\"\n            sx={PAPER_SX}\n            style={{ ...edge(hasStartPin), ...edgeRowPin }}\n          >\n            <OptionalExpandToggle\n              id={id}\n              expanded={Boolean(expanded)}\n              onToggle={onToggleExpand}\n              dir={dir}\n              expandLabel={labels.expandRow}\n              collapseLabel={labels.collapseRow}\n            />\n          </TableCell>\n        )}\n        {showReorder && rowReorder && (\n          <TableCell\n            padding=\"checkbox\"\n            data-adapttable-part=\"reorder-cell\"\n            sx={PAPER_SX}\n            style={{\n              ...edge(hasStartPin || reorderPinned, expansionLead),\n              ...edgeRowPin,\n            }}\n          >\n            <OptionalRowReorderHandle\n              reorder={rowReorder}\n              labels={labels}\n              rowId={id}\n              localIndex={index}\n              row={row}\n              windowStart={windowStart}\n              rowCount={rowCount}\n            />\n          </TableCell>\n        )}\n        {selected !== undefined && (\n          <TableCell\n            data-adapttable-part=\"selection-cell\"\n            padding=\"checkbox\"\n            sx={PAPER_SX}\n            style={{ ...edge(hasStartPin, selectionLead), ...edgeRowPin }}\n          >\n            <Checkbox\n              slotProps={{ input: { \"aria-label\": labels.selectRow } }}\n              checked={selected}\n              onChange={() => onToggleSelect(id)}\n            />\n          </TableCell>\n        )}\n        {columnSpacers && (\n          <ColumnSpacer width={columnSpacers.start} side=\"start\" />\n        )}\n        {bodyCells.map((cell) => {\n          const { column, columnIndex, colSpan, rowSpan } = cell;\n          const focusProps = gridFocus?.getCellPropsAt(focusIndex, columnIndex);\n          const pin = bodyPinStyle(column.key);\n          return (\n            <TableCell\n              key={column.key}\n              colSpan={colSpan > 1 ? colSpan : undefined}\n              rowSpan={rowSpan > 1 ? rowSpan : undefined}\n              data-column-key={column.key}\n              data-adapttable-part=\"cell\"\n              data-flash={cellFlashAttr(isCellFlashing, id, column.key)}\n              data-cell-span={cellSpanMark(colSpan, rowSpan)}\n              sx={{\n                textAlign: muiAlign(column.align),\n                ...(pin ? PAPER_SX : {}),\n              }}\n              style={cellHighlightStyle(\n                focusProps,\n                {\n                  ...(pin ? { ...pin, background: PIN_BG } : {}),\n                  ...mergedCellStyle(colSpan, rowSpan, cellSpanAppearance),\n                },\n                {\n                  backgroundColor:\n                    \"var(--mui-palette-action-selected, rgba(0, 0, 0, 0.08))\",\n                }\n              )}\n              {...focusProps}\n            >\n              <OptionalTreeCell\n                entry={treeEntry}\n                columnKey={column.key}\n                treeColumnKey={treeKey}\n                labels={{\n                  expandRow: labels.expandRow,\n                  collapseRow: labels.collapseRow,\n                }}\n                onToggle={onToggleTree}\n              >\n                <OptionalEditableCell\n                  editing={editing}\n                  row={row}\n                  column={column as ColumnDef<TRow>}\n                  rowId={id}\n                  rowIndex={focusIndex}\n                  rows={rows}\n                  columns={columns}\n                  rowKey={getRowId}\n                  editLabel={labels.editCell}\n                  undoLabel={labels.undoEdit}\n                />\n              </OptionalTreeCell>\n              <OptionalFillHandle\n                focus={gridFocus}\n                windowIndex={focusIndex}\n                col={columnIndex}\n              />\n            </TableCell>\n          );\n        })}\n        {columnSpacers && <ColumnSpacer width={columnSpacers.end} side=\"end\" />}\n        {showActions && (\n          <TableCell\n            sx={{ ...PAPER_SX, textAlign: \"end\" }}\n            style={{\n              ...pinnedEdgeCellStyle(\n                \"end\",\n                hasEndPin || actionsPinned,\n                PIN_Z.body,\n                PIN_BG\n              ),\n              ...edgeRowPin,\n            }}\n          >\n            {editing?.rowEditing && (\n              <OptionalRowEditActions\n                rowEditing={editing.rowEditing}\n                row={row}\n                rowId={id}\n                showBegin={rowEdit.showBegin}\n                icons={editing.rowEditIcons}\n                conflict={rowConflict}\n                labels={{\n                  editRow: labels.editRow,\n                  saveRow: labels.saveRow,\n                  cancel: labels.cancel,\n                }}\n              />\n            )}\n            {rowEdit.actions.length > 0 && (\n              <RowActionButtons\n                row={row}\n                actions={rowEdit.actions}\n                confirm={confirm}\n                labels={labels}\n                layout={rowActionsLayout}\n                render={renderRowActions}\n              />\n            )}\n          </TableCell>\n        )}\n      </TableRow>\n      {expandable && expanded && (\n        <TableRow>\n          <TableCell colSpan={columnSpan}>{renderDetail(row)}</TableCell>\n        </TableRow>\n      )}\n    </>\n  );\n}\n\nfunction LeafHeader<TRow>({\n  leaf,\n  headSx,\n  flexShares,\n  columnWidths,\n  filterRegistry,\n  closeHeaderFilterOnSelect,\n  source,\n  labels,\n  onRenameColumn,\n}: Readonly<{\n  leaf: DesktopHeaderLeaf<TRow>;\n  headSx: SxProps<Theme>;\n  flexShares: ReturnType<typeof columnFlexShares>;\n  columnWidths: SharedTableRenderProps<TRow>[\"columnWidths\"];\n  filterRegistry: SharedTableRenderProps<TRow>[\"filterRegistry\"];\n  closeHeaderFilterOnSelect: boolean | undefined;\n  source: SharedTableRenderProps<TRow>[\"table\"][\"source\"];\n  labels: Required<TableLabels>;\n  onRenameColumn: SharedTableRenderProps<TRow>[\"onRenameColumn\"];\n}>): ReactElement {\n  const { column } = leaf;\n  const caption = column.sortable ? (\n    <TableSortLabel\n      active={leaf.sortActive}\n      direction={leaf.sortDir === \"desc\" ? \"desc\" : \"asc\"}\n      aria-label={leaf.sortButtonProps[\"aria-label\"]}\n      onClick={leaf.sortButtonProps.onClick}\n      title={column.headerTooltip}\n    >\n      {leaf.caption}\n      {leaf.sortIndex !== undefined && (\n        <Box component=\"span\" sx={{ fontSize: 10, ml: 0.5 }}>\n          {leaf.sortIndex}\n        </Box>\n      )}\n    </TableSortLabel>\n  ) : (\n    <span title={column.headerTooltip}>{leaf.caption}</span>\n  );\n  return (\n    <TableCell\n      key={column.key}\n      data-adapttable-part=\"header-cell\"\n      // Every header prop core states, in full. Cherry-picking named fields\n      // meant a prop core added reached only the kits that happened to name\n      // it; the kit's own props below still win where they overlap.\n      {...leaf.headerProps}\n      {...leaf.columnHeaderProps}\n      rowSpan={leaf.rowSpan > 1 ? leaf.rowSpan : undefined}\n      sx={headSx}\n      style={{\n        ...leaf.style,\n        ...columnSizeStyle(column, flexShares, columnWidths?.[column.key]),\n      }}\n    >\n      <Box\n        component=\"div\"\n        sx={{ display: \"inline-flex\", alignItems: \"center\", gap: 0.5 }}\n      >\n        {column.renameable === true && onRenameColumn ? (\n          <OptionalColumnHeaderRename\n            columnKey={column.key}\n            name={leaf.columnName}\n            labels={labels}\n            onRenameColumn={onRenameColumn}\n          >\n            <Box component=\"span\" data-adapttable-part=\"header-caption-control\">\n              {caption}\n            </Box>\n          </OptionalColumnHeaderRename>\n        ) : (\n          <Box component=\"span\" data-adapttable-part=\"header-caption-control\">\n            {caption}\n          </Box>\n        )}\n      </Box>\n      {leaf.showColumnCheckbox && leaf.onToggleColumn ? (\n        <OptionalColumnSelect\n          label={leaf.columnSelectAriaLabel}\n          checked={leaf.columnCheckboxChecked}\n          onToggle={leaf.onToggleColumn}\n        />\n      ) : null}\n      {column.headerActions ? (\n        <span data-adapttable-part=\"header-actions\">\n          {column.headerActions}\n        </span>\n      ) : null}\n      {leaf.headerDef ? (\n        <OptionalFilterHeader\n          def={leaf.headerDef}\n          source={source}\n          labels={labels}\n          registry={filterRegistry}\n          closeOnSelect={closeHeaderFilterOnSelect}\n        />\n      ) : null}\n      {leaf.resizeHandleProps && (\n        <Box\n          component=\"span\"\n          sx={RESIZE_HANDLE_SX}\n          {...leaf.resizeHandleProps}\n        />\n      )}\n    </TableCell>\n  );\n}\n\n/** Desktop MUI table. */\nexport function DesktopTable<TRow>(props: Readonly<SharedProps<TRow>>) {\n  const {\n    size,\n    dir,\n    filterRegistry,\n    closeHeaderFilterOnSelect,\n    columnWidths,\n    fitColumns,\n    stickyHeader = false,\n  } = props;\n  const assembly = useDesktopTableAssembly(props, { widths: MUI_WIDTHS });\n  const Row = useMemo(\n    () =>\n      createDesktopRow<TRow, DesktopRowProps<TRow>>(\n        DesktopRowBase,\n        rowExtrasEqual\n      ),\n    []\n  );\n  const {\n    model,\n    summary,\n    showColumnFooter,\n    headerPlan,\n    headerBand,\n    header,\n    pin,\n    scroll,\n    tableStyle,\n    tableProps,\n    gridProps,\n    callbacks,\n    bodySlots,\n  } = assembly;\n  const {\n    columns,\n    selection,\n    labels,\n    showActions,\n    showReorder,\n    leadingCells,\n    columnSpacers,\n  } = model;\n\n  const flexShares = columnFlexShares({\n    columns,\n    fitColumns,\n    widths: columnWidths,\n  });\n  const headPaint: SxProps<Theme> | undefined = stickyHeader\n    ? {\n        position: \"sticky\",\n        top: pin.headerStickTop,\n        zIndex: PIN_Z.header,\n        bgcolor: \"background.paper\",\n      }\n    : undefined;\n  const edgeHeadSx = (active: boolean): SxProps<Theme> => ({\n    ...headPaint,\n    ...(active ? { ...PAPER_SX } : {}),\n  });\n  const edgeHeadStyle = (active: boolean, lead = 0) =>\n    pinnedEdgeCellStyle(\"start\", active, PIN_Z.headerPinned, PIN_BG, lead);\n\n  const leafProps = {\n    flexShares,\n    columnWidths,\n    filterRegistry,\n    closeHeaderFilterOnSelect,\n    source: props.table.source,\n    labels,\n    onRenameColumn: props.onRenameColumn,\n  };\n\n  const renderPlanCell = (cell: HtmlGroupedHeaderCell): ReactElement => {\n    if (cell.kind === \"leaf\") {\n      const column = columns[cell.columnIndex]!;\n      const leaf = header.leaf(column, cell.columnIndex, cell.rowSpan);\n      return (\n        <LeafHeader\n          key={cell.key}\n          leaf={leaf}\n          headSx={{\n            ...headPaint,\n            ...(leaf.pinSide ? PAPER_SX : {}),\n            textAlign: muiAlign(column.align),\n            ...(leaf.rowSpan > 1 ? { verticalAlign: \"middle\" } : {}),\n          }}\n          {...leafProps}\n        />\n      );\n    }\n    return (\n      <TableCell\n        key={cell.key}\n        colSpan={cell.colSpan}\n        rowSpan={cell.rowSpan > 1 ? cell.rowSpan : undefined}\n        data-adapttable-part=\"header-group-cell\"\n        sx={{\n          fontWeight: 600,\n          ...groupedHeaderCellStyle(\n            cell,\n            \"var(--mui-palette-divider, rgba(0, 0, 0, 0.12))\"\n          ),\n        }}\n      >\n        <span style={groupedHeaderLabelStyle()}>\n          {props.onToggleColumnGroup ? (\n            <OptionalColumnGroupToggle\n              cell={cell.cell}\n              labels={labels}\n              onToggle={props.onToggleColumnGroup}\n            />\n          ) : null}\n          {columnGroupHeaderCaption(cell.cell)}\n        </span>\n      </TableCell>\n    );\n  };\n\n  const leadingHeaders = (rowSpan: number): ReactElement => (\n    <>\n      {header.leading.expand && (\n        <TableCell\n          padding=\"checkbox\"\n          rowSpan={rowSpan > 1 ? rowSpan : undefined}\n          sx={edgeHeadSx(pin.hasStartPin)}\n          style={edgeHeadStyle(pin.hasStartPin)}\n        />\n      )}\n      {header.leading.reorder && (\n        <TableCell\n          padding=\"checkbox\"\n          aria-label={labels.reorderRow}\n          data-adapttable-part=\"reorder-header\"\n          rowSpan={rowSpan > 1 ? rowSpan : undefined}\n          sx={edgeHeadSx(pin.hasStartPin || Boolean(props.reorderPinned))}\n          style={edgeHeadStyle(\n            pin.hasStartPin || Boolean(props.reorderPinned),\n            pin.expansionLead\n          )}\n        />\n      )}\n      {header.leading.selection && selection && (\n        <TableCell\n          data-adapttable-part=\"selection-header\"\n          padding=\"checkbox\"\n          rowSpan={rowSpan > 1 ? rowSpan : undefined}\n          sx={edgeHeadSx(pin.hasStartPin)}\n          style={edgeHeadStyle(pin.hasStartPin, pin.selectionLead)}\n        >\n          <Checkbox\n            slotProps={{ input: { \"aria-label\": labels.selectAll } }}\n            checked={selection.headerState === \"all\"}\n            indeterminate={selection.headerState === \"some\"}\n            onChange={selection.toggleAll}\n          />\n        </TableCell>\n      )}\n      {header.leading.spacerStart && columnSpacers && (\n        <ColumnSpacer width={columnSpacers.start} side=\"start\" as=\"th\" />\n      )}\n    </>\n  );\n\n  const trailingHeaders = (rowSpan: number): ReactElement => (\n    <>\n      {header.trailing.spacerEnd && columnSpacers && (\n        <ColumnSpacer width={columnSpacers.end} side=\"end\" as=\"th\" />\n      )}\n      {header.trailing.actions && (\n        <TableCell\n          rowSpan={rowSpan > 1 ? rowSpan : undefined}\n          sx={{\n            ...edgeHeadSx(pin.hasEndPin || pin.stickActions),\n            textAlign: \"end\",\n          }}\n          style={pinnedEdgeCellStyle(\n            \"end\",\n            pin.hasEndPin || pin.stickActions,\n            PIN_Z.headerPinned,\n            PIN_BG\n          )}\n        >\n          {labels.actions}\n        </TableCell>\n      )}\n    </>\n  );\n\n  const minWidth =\n    typeof tableStyle?.minWidth === \"number\" ? tableStyle.minWidth : 0;\n\n  return (\n    <Box ref={scroll.bindScrollBox} style={scroll.boxStyle}>\n      <Table\n        data-adapttable-part=\"table\"\n        size={size}\n        aria-label={tableProps[\"aria-label\"]}\n        {...gridProps}\n        sx={minWidth > 0 ? { minWidth } : undefined}\n        style={\n          tableStyle\n            ? {\n                tableLayout: tableStyle.tableLayout,\n                width: tableStyle.width,\n              }\n            : undefined\n        }\n      >\n        <TableHead data-adapttable-part=\"thead\" ref={header.theadRef}>\n          {headerPlan ? (\n            headerPlan.map((row, rowIndex) => {\n              const last = rowIndex === headerPlan.length - 1;\n              return (\n                <TableRow\n                  key={row.map((cell) => cell.key).join(\"|\")}\n                  ref={last ? header.headerRowRef : undefined}\n                  data-adapttable-part={\n                    last ? \"header-row\" : \"header-group-row\"\n                  }\n                >\n                  {rowIndex === 0 ? leadingHeaders(headerBand) : null}\n                  {row.map(renderPlanCell)}\n                  {rowIndex === 0 ? trailingHeaders(headerBand) : null}\n                </TableRow>\n              );\n            })\n          ) : (\n            <TableRow\n              ref={header.headerRowRef}\n              data-adapttable-part=\"header-row\"\n            >\n              {leadingHeaders(1)}\n              {columns.map((column, headerIndex) => {\n                const leaf = header.leaf(column, headerIndex);\n                return (\n                  <LeafHeader\n                    key={column.key}\n                    leaf={leaf}\n                    headSx={{\n                      ...headPaint,\n                      ...(leaf.pinSide ? PAPER_SX : {}),\n                      textAlign: muiAlign(column.align),\n                    }}\n                    {...leafProps}\n                  />\n                );\n              })}\n              {trailingHeaders(1)}\n            </TableRow>\n          )}\n        </TableHead>\n        <TableBody data-adapttable-part=\"tbody\">\n          {bodySlots.map((slot) => {\n            if (slot.kind === \"extra\") {\n              return (\n                <ExtraSlotRow\n                  key={slot.key}\n                  kind={slot.extraKind}\n                  colSpan={slot.colSpan}\n                  render={slot.render}\n                  labels={labels}\n                  fillStyle={slot.fillStyle}\n                />\n              );\n            }\n            if (slot.kind === \"virtualPad\") {\n              return (\n                <TableRow key={slot.key} aria-hidden>\n                  <TableCell\n                    colSpan={slot.colSpan}\n                    sx={{ height: slot.height, p: 0 }}\n                  />\n                </TableRow>\n              );\n            }\n            if (slot.kind === \"group\") {\n              return (\n                <OptionalGroupHeaderRow\n                  key={slot.key}\n                  entry={slot.entry}\n                  columns={columns}\n                  leadingCells={leadingCells}\n                  showActions={showActions}\n                  getCellProps={props.table.getCellProps}\n                  selection={selection}\n                  labels={labels}\n                  onToggleCollapse={callbacks.onToggleGroup}\n                  onShowMore={props.grouping?.showMore ?? (() => undefined)}\n                />\n              );\n            }\n            return (\n              <Row key={slot.key} {...slot.wiring} size={size} dir={dir} />\n            );\n          })}\n        </TableBody>\n        {showColumnFooter && (\n          <TableFooter>\n            <TableRow>\n              {header.leading.expand && <TableCell padding=\"checkbox\" />}\n              <ExtraCheckboxCell show={showReorder} />\n              {selection && <TableCell padding=\"checkbox\" />}\n              {columns.map((column) => (\n                <TableCell\n                  key={column.key}\n                  sx={{ textAlign: muiAlign(column.align) }}\n                >\n                  {resolveColumnFooter(column, summary?.[column.key])}\n                </TableCell>\n              ))}\n              {showActions && <TableCell />}\n            </TableRow>\n          </TableFooter>\n        )}\n      </Table>\n    </Box>\n  );\n}\n","/** Load failure, with a retry. */\nimport type { TableLabels } from \"@adapttable/core\";\nimport { Alert, Button } from \"@mui/material\";\n\n/** Error alert. */\nexport function ErrorState({\n  error,\n  labels,\n  onRetry,\n}: Readonly<{\n  error: Error;\n  labels: Required<TableLabels>;\n  onRetry?: () => void;\n}>) {\n  return (\n    <Alert\n      severity=\"error\"\n      action={\n        onRetry ? (\n          <Button color=\"inherit\" size=\"small\" onClick={onRetry}>\n            {labels.retry}\n          </Button>\n        ) : undefined\n      }\n    >\n      <strong>{labels.errorTitle}</strong> — {error.message}\n    </Alert>\n  );\n}\n","/** The card list rendered in place of the table on narrow screens. */\nimport {\n  bodyRowEntries,\n  type ConfirmHandler,\n  type RowAction,\n  type RowActionsLayout,\n  type RowActionsRenderer,\n  type TableLabels,\n  treeCardStyle,\n  type TreeEntry,\n} from \"@adapttable/core\";\nimport {\n  type ColumnDef,\n  type EditableCellEditing,\n  type ReactMobileCardRenderer,\n} from \"@adapttable/react\";\nimport {\n  cellFlashAttr,\n  EXTRA_ROW_PARTS,\n  insertExtraRows,\n  isExtraEntry,\n  mobileCardListStyle,\n  orderedCardEntries,\n  pinnedSummaryPart,\n  pinnedSummaryRowId,\n  pinnedSummarySideFromId,\n  resolveMobileLabel,\n  resolveRowEditTrigger,\n  resolveRowStyle,\n  rowClickProps,\n  rowEditConflict,\n  rowEditingSignature,\n  rowFlashSignature,\n  rowIsDirty,\n  rowReorderSignature,\n  rowStyleSignature,\n  useSummaryCells,\n} from \"@adapttable/react/adapter\";\nimport {\n  Box,\n  Card,\n  CardContent,\n  Checkbox,\n  Stack,\n  Typography,\n} from \"@mui/material\";\nimport {\n  type CSSProperties,\n  memo,\n  type ReactElement,\n  type ReactNode,\n  useMemo,\n} from \"react\";\n\nimport { type SharedProps } from \"./DesktopTable\";\nimport {\n  OptionalEditableCell,\n  OptionalExpandToggle,\n  OptionalGroupHeaderCard,\n  OptionalRowEditActions,\n  OptionalRowReorderButtons,\n  OptionalTreeToggle,\n} from \"./featureSlots\";\nimport { RowActionButtons } from \"./RowActionButtons\";\n\n/** Drop row-interaction props on pinned summary cards. */\nfunction unlessPinned<T>(\n  side: ReturnType<typeof pinnedSummarySideFromId>,\n  value: T | undefined\n): T | undefined {\n  return side ? undefined : value;\n}\n\nfunction unlessPinnedMatch(\n  side: ReturnType<typeof pinnedSummarySideFromId>,\n  match: ((id: string) => boolean) | undefined,\n  id: string\n): boolean {\n  return Boolean(unlessPinned(side, match)?.(id));\n}\n\n/** Per-card inputs for the memoized {@link MobileCardBase}. */\ninterface MobileCardProps<TRow> {\n  /** Replace the card's body — see `BaseDataTableProps.renderCard`. */\n  renderCard?: ReactMobileCardRenderer<TRow>;\n  /** This card's place in the tree, when the table is one. */\n  treeEntry?: TreeEntry<TRow>;\n  /** Open or close this node. */\n  onToggleTree?: (id: string) => void;\n  row: TRow;\n  index: number;\n  /** Stable row id (selection / expansion key). */\n  id: string;\n  columns: readonly ColumnDef<TRow>[];\n  labels: Required<TableLabels>;\n  confirm: ConfirmHandler;\n  rowActions?: RowAction<TRow>[];\n  rowActionsLayout?: RowActionsLayout;\n  renderRowActions?: RowActionsRenderer<TRow>;\n  /** Resolved `rowClassName(row, index)`, compared as a plain string. */\n  className?: string;\n  /** Resolved `rowStyle` + `rowHeight`. Compared via `styleSignature`. */\n  style?: CSSProperties;\n  styleSignature: string;\n  /**\n   * Flashing column keys for this card, joined. Compared instead of\n   * `isCellFlashing`, which stays referentially stable while the marks move.\n   */\n  flashSignature: string;\n  isCellFlashing?: (rowId: string, columnKey: string) => boolean;\n  selected: boolean;\n  expanded: boolean;\n  /** Selection toggle — present only when selection is enabled. */\n  onToggleSelect?: (id: string) => void;\n  /** Expansion toggle — present only when `renderRowDetail` is set. */\n  onToggleExpand?: (id: string) => void;\n  renderDetail?: (row: TRow) => ReactNode;\n  onRowClick?: (row: TRow) => void;\n  measureElement?: (node: Element | null) => void;\n  compact: boolean;\n  dir?: \"ltr\" | \"rtl\";\n  /**\n   * Opt-in editing bundle — uncompared. Its identity changes on every\n   * keystroke anywhere in the table; the per-row visual churn is\n   * fingerprinted by `editingSignature` instead. A held card keeps an\n   * older bundle safely: its handlers read live state through refs.\n   */\n  editing?: EditableCellEditing<TRow>;\n  /** Page rows for Tab advance — uncompared (see `editing`). */\n  rows: readonly TRow[];\n  getRowId: (row: TRow) => string;\n  /** Memo digest from {@link rowEditingSignature}. */\n  editingSignature: string | null;\n  /** Headless reorder; uncompared — visual churn is `reorderSignature`. */\n  rowReorder: SharedProps<TRow>[\"rowReorder\"];\n  windowStart: number;\n  rowCount: number;\n  /** Rows in the whole dataset, for `aria-setsize`. */\n  setSize: number;\n  reorderSignature: string | null;\n  /** Override `data-adapttable-part` for host-owned summary cards. */\n  part?: string;\n  /** Accessible name for a summary card. */\n  ariaLabel?: string;\n}\n\n/** The card props the memo comparator deliberately skips (see `editing`). */\ntype UncomparedCardProp =\n  \"editing\" | \"rows\" | \"getRowId\" | \"rowReorder\" | \"style\" | \"isCellFlashing\";\n\n/** Every card prop the memo comparator checks with `Object.is`. */\nconst COMPARED_CARD_PROPS: readonly Exclude<\n  keyof MobileCardProps<unknown>,\n  UncomparedCardProp\n>[] = [\n  \"row\",\n  \"index\",\n  \"id\",\n  \"columns\",\n  \"labels\",\n  \"confirm\",\n  \"rowActions\",\n  \"rowActionsLayout\",\n  \"renderRowActions\",\n  \"className\",\n  \"styleSignature\",\n  \"flashSignature\",\n  \"selected\",\n  \"expanded\",\n  \"onToggleSelect\",\n  \"onToggleExpand\",\n  \"renderDetail\",\n  \"onRowClick\",\n  \"measureElement\",\n  \"compact\",\n  \"dir\",\n  \"editingSignature\",\n  \"reorderSignature\",\n  \"windowStart\",\n  \"rowCount\",\n  \"setSize\",\n  // Or a folder opens and its own chevron never turns.\n  \"treeEntry\",\n  \"part\",\n  \"ariaLabel\",\n];\n\n/**\n * `React.memo` comparator: re-render a card only when one of its VISUAL\n * inputs changes — a search keystroke or another card's checkbox re-renders\n * the list shell, but every unchanged card bails out here.\n */\nfunction mobileCardPropsEqual<TRow>(\n  prev: Readonly<MobileCardProps<TRow>>,\n  next: Readonly<MobileCardProps<TRow>>\n): boolean {\n  return COMPARED_CARD_PROPS.every((key) => Object.is(prev[key], next[key]));\n}\n\n/** One card. Memoized by {@link mobileCardPropsEqual} at the call site. */\nfunction MobileCardBase<TRow>({\n  row,\n  index,\n  id,\n  columns,\n  labels,\n  confirm,\n  rowActions,\n  rowActionsLayout,\n  renderRowActions,\n  className,\n  style,\n  isCellFlashing,\n  selected,\n  expanded,\n  onToggleSelect,\n  onToggleExpand,\n  renderDetail,\n  onRowClick,\n  measureElement,\n  compact,\n  dir,\n  editing,\n  rows,\n  getRowId,\n  treeEntry,\n  onToggleTree,\n  rowReorder,\n  windowStart,\n  rowCount,\n  setSize,\n  renderCard,\n  part,\n  ariaLabel,\n}: Readonly<MobileCardProps<TRow>>) {\n  // Built once and used by both paths, so a custom card shows the very\n  // same value node the built-in would have — cell renderers and editors\n  // included.\n  const fields = columns.map((column) => ({\n    column,\n    label: resolveMobileLabel(column),\n    value: (\n      <OptionalEditableCell\n        // Built inside the map, so it needs its own key: React reads these\n        // as a list even though a card renders them one at a time.\n        key={column.key}\n        editing={editing}\n        row={row}\n        column={column}\n        rowId={id}\n        rowIndex={index}\n        rows={rows}\n        columns={columns}\n        rowKey={getRowId}\n        editLabel={labels.editCell}\n        undoLabel={labels.undoEdit}\n      />\n    ),\n  }));\n\n  const rowEdit = resolveRowEditTrigger(\n    rowActions,\n    editing?.rowEditing,\n    row,\n    id\n  );\n  const rowConflict = rowEditConflict(editing, id);\n  return (\n    <Card\n      ref={measureElement}\n      data-index={index}\n      // A windowed list has only a slice of its items in the DOM, so each\n      // one states where it sits and how many there are; a complete list\n      // needs neither, because assistive tech can simply count.\n      aria-posinset={setSize > rowCount ? windowStart + index + 1 : undefined}\n      aria-setsize={setSize > rowCount ? setSize : undefined}\n      data-adapttable-part={part ?? \"card\"}\n      data-stagger=\"\"\n      data-selected={selected ? \"\" : undefined}\n      data-dirty={rowIsDirty(editing, id) ? \"\" : undefined}\n      variant=\"outlined\"\n      role=\"listitem\"\n      aria-label={ariaLabel}\n      className={className}\n      {...rowClickProps(row, onRowClick, index)}\n      style={{ ...treeCardStyle(treeEntry?.level ?? 0), ...style }}\n    >\n      <CardContent\n        sx={compact ? { p: 1.25, \"&:last-child\": { pb: 1.25 } } : undefined}\n      >\n        {treeEntry && (\n          <OptionalTreeToggle\n            entry={treeEntry}\n            labels={labels}\n            onToggle={onToggleTree ?? (() => undefined)}\n          />\n        )}\n        {onToggleSelect && (\n          <Checkbox\n            slotProps={{ input: { \"aria-label\": labels.selectRow } }}\n            checked={selected}\n            onChange={() => onToggleSelect(id)}\n          />\n        )}\n        {onToggleExpand && (\n          <OptionalExpandToggle\n            id={id}\n            expanded={expanded}\n            onToggle={onToggleExpand}\n            dir={dir}\n            expandLabel={labels.expandRow}\n            collapseLabel={labels.collapseRow}\n          />\n        )}\n        {renderCard\n          ? renderCard(row, {\n              index,\n              fields,\n              selected,\n              expanded,\n            })\n          : fields.map(({ column, label, value }) => (\n              <Box key={column.key} sx={{ mb: compact ? 0.5 : 1 }}>\n                {label && (\n                  <Typography\n                    variant=\"caption\"\n                    color=\"text.secondary\"\n                    sx={{ display: \"block\" }}\n                  >\n                    {label}\n                  </Typography>\n                )}\n                {/* Cells are arbitrary ReactNode (often block elements) —\n                a <p> wrapper would be invalid HTML. */}\n                <Typography\n                  component=\"div\"\n                  variant=\"body2\"\n                  data-adapttable-part=\"card-value\"\n                  data-flash={cellFlashAttr(isCellFlashing, id, column.key)}\n                >\n                  {value}\n                </Typography>\n              </Box>\n            ))}\n        {rowReorder && (\n          <OptionalRowReorderButtons\n            reorder={rowReorder}\n            labels={labels}\n            localIndex={index}\n            row={row}\n            windowStart={windowStart}\n            rowCount={rowCount}\n          />\n        )}\n        {editing?.rowEditing && (\n          <OptionalRowEditActions\n            rowEditing={editing.rowEditing}\n            row={row}\n            rowId={id}\n            showBegin={rowEdit.showBegin}\n            icons={editing.rowEditIcons}\n            conflict={rowConflict}\n            labels={labels}\n          />\n        )}\n        {rowEdit.actions.length > 0 && (\n          <RowActionButtons\n            row={row}\n            actions={rowEdit.actions}\n            confirm={confirm}\n            labels={labels}\n            layout={rowActionsLayout}\n            render={renderRowActions}\n          />\n        )}\n        {expanded && renderDetail && (\n          // Inside the card — and therefore inside the measured element —\n          // so virtualization keeps accurate card heights.\n          <Box data-adapttable-part=\"card-detail\" sx={{ mt: 1 }}>\n            {renderDetail(row)}\n          </Box>\n        )}\n      </CardContent>\n    </Card>\n  );\n}\n\n/** Mobile MUI card list. */\nexport function MobileCards<TRow>({\n  table,\n  cardClassName,\n  rows,\n  rowActions,\n  rowActionsLayout,\n  renderRowActions,\n  confirm,\n  getRowId,\n  size,\n  dir,\n  onRowClick,\n  rowClassName,\n  isCellFlashing,\n  rowStyle,\n  rowHeight,\n  renderRowDetail,\n  summaryRow,\n  expansion,\n  editing,\n  grouping,\n  tree,\n  rowEntries,\n  paddingTop = 0,\n  paddingBottom = 0,\n  measureElement,\n  rowReorder,\n  windowStart = 0,\n  cardSetSize = 0,\n  pinnedTopRows = [],\n  pinnedBottomRows = [],\n  pinnedSummaryTop = [],\n  pinnedSummaryBottom = [],\n  extraRows,\n  renderCard,\n  maxHeight,\n  virtualScrollRef,\n}: Readonly<SharedProps<TRow>>) {\n  const { columns, selection, labels } = table;\n  const entries = orderedCardEntries(\n    rows,\n    getRowId,\n    rowEntries,\n    pinnedTopRows,\n    pinnedBottomRows,\n    pinnedSummaryTop,\n    pinnedSummaryBottom\n  );\n  const compact = size === \"small\";\n  // Expansion is active only when BOTH halves arrived (the chrome supplies\n  // `expansion` exactly when `renderRowDetail` is set).\n  const expand = expansion && renderRowDetail ? expansion : undefined;\n  // The summary renders as a final card. Header groups and multi-sort are\n  // desktop-only concerns: cards have no column grid for a group to span and\n  // no clickable headers to shift-click.\n  const summaryCells = useSummaryCells(summaryRow, rows);\n\n  // `memo` erases generics at module level, so the memoized card is\n  // instantiated here (once — the identity is stable for the list's life).\n  const CardItem = useMemo(\n    () => memo(MobileCardBase<TRow>, mobileCardPropsEqual),\n    []\n  );\n\n  const cardFor = (\n    row: TRow,\n    index: number,\n    key: string,\n    treeEntry?: TreeEntry<TRow>\n  ): ReactElement => {\n    const side = pinnedSummarySideFromId(key);\n    const id = side ? key : getRowId(row);\n    return (\n      <CardItem\n        key={key}\n        row={row}\n        index={index}\n        id={id}\n        columns={columns}\n        labels={labels}\n        confirm={confirm}\n        rowActions={unlessPinned(side, rowActions)}\n        rowActionsLayout={rowActionsLayout}\n        renderRowActions={unlessPinned(side, renderRowActions)}\n        className={\n          [cardClassName, rowClassName?.(row, index)]\n            .filter(Boolean)\n            .join(\" \") || undefined\n        }\n        style={resolveRowStyle(rowStyle, rowHeight, row, index)}\n        styleSignature={rowStyleSignature(\n          resolveRowStyle(rowStyle, rowHeight, row, index)\n        )}\n        flashSignature={rowFlashSignature(isCellFlashing, id, columns)}\n        isCellFlashing={isCellFlashing}\n        selected={unlessPinnedMatch(side, selection?.isSelected, id)}\n        expanded={unlessPinnedMatch(side, expand?.isExpanded, id)}\n        onToggleSelect={unlessPinned(side, selection?.toggle)}\n        onToggleExpand={unlessPinned(side, expand?.toggle)}\n        renderDetail={unlessPinned(side, renderRowDetail)}\n        onRowClick={unlessPinned(side, onRowClick)}\n        measureElement={measureElement}\n        compact={compact}\n        dir={dir}\n        editing={editing}\n        rows={rows}\n        getRowId={getRowId}\n        editingSignature={rowEditingSignature(editing, id)}\n        treeEntry={unlessPinned(side, treeEntry)}\n        onToggleTree={unlessPinned(side, tree?.expansion.toggle)}\n        rowReorder={unlessPinned(side, rowReorder)}\n        windowStart={windowStart}\n        rowCount={rows.length}\n        setSize={cardSetSize}\n        reorderSignature={rowReorderSignature(rowReorder, id, index)}\n        renderCard={unlessPinned(side, renderCard)}\n        part={side ? pinnedSummaryPart(side) : undefined}\n        ariaLabel={side ? labels.pinnedSummaryRow : undefined}\n      />\n    );\n  };\n\n  return (\n    <Stack\n      spacing={compact ? 1 : 1.5}\n      ref={virtualScrollRef}\n      data-adapttable-part=\"cards\"\n      role=\"list\"\n      aria-label={table.getTableProps()[\"aria-label\"]}\n      style={mobileCardListStyle(maxHeight)}\n    >\n      {paddingTop > 0 && <Box aria-hidden sx={{ height: paddingTop }} />}\n      {grouping\n        ? pinnedSummaryTop.map((row, index) =>\n            cardFor(row, index, pinnedSummaryRowId(\"top\", index))\n          )\n        : null}\n      {grouping\n        ? grouping.entries.map((entry) => {\n            if (isExtraEntry(entry)) {\n              return (\n                <Card\n                  key={entry.key}\n                  variant=\"outlined\"\n                  role={entry.kind === \"separator\" ? \"separator\" : \"listitem\"}\n                  aria-label={\n                    entry.kind === \"separator\" ? labels.rowSeparator : undefined\n                  }\n                  data-adapttable-part={EXTRA_ROW_PARTS[entry.kind].row}\n                >\n                  <CardContent\n                    data-adapttable-part={EXTRA_ROW_PARTS[entry.kind].cell}\n                  >\n                    {entry.kind === \"fullWidth\"\n                      ? (entry.render?.() as ReactNode)\n                      : null}\n                  </CardContent>\n                </Card>\n              );\n            }\n            if (\n              entry.kind === \"group\" ||\n              entry.kind === \"groupFooter\" ||\n              entry.kind === \"groupMore\"\n            ) {\n              return (\n                <OptionalGroupHeaderCard\n                  key={entry.key}\n                  entry={entry}\n                  columns={columns}\n                  selection={selection}\n                  labels={labels}\n                  compact={compact}\n                  onToggleCollapse={(key) => grouping.collapsed.toggle(key)}\n                  onShowMore={grouping.showMore}\n                />\n              );\n            }\n            return cardFor(entry.row, entry.index, entry.key);\n          })\n        : insertExtraRows(\n            bodyRowEntries(entries, tree),\n            extraRows,\n            (e) => e.key\n          ).map((slot) =>\n            \"kind\" in slot ? (\n              <Card\n                key={slot.key}\n                variant=\"outlined\"\n                role={slot.kind === \"separator\" ? \"separator\" : \"listitem\"}\n                aria-label={\n                  slot.kind === \"separator\" ? labels.rowSeparator : undefined\n                }\n                data-adapttable-part={EXTRA_ROW_PARTS[slot.kind].row}\n              >\n                <CardContent\n                  data-adapttable-part={EXTRA_ROW_PARTS[slot.kind].cell}\n                >\n                  {slot.kind === \"fullWidth\"\n                    ? (slot.render?.() as ReactNode)\n                    : null}\n                </CardContent>\n              </Card>\n            ) : (\n              cardFor(slot.row, slot.index, slot.key, slot.treeEntry)\n            )\n          )}\n      {grouping\n        ? pinnedSummaryBottom.map((row, index) =>\n            cardFor(row, index, pinnedSummaryRowId(\"bottom\", index))\n          )\n        : null}\n      {summaryCells && (\n        <Card\n          data-adapttable-part=\"summary-card\"\n          variant=\"outlined\"\n          role=\"listitem\"\n        >\n          <CardContent\n            sx={compact ? { p: 1.25, \"&:last-child\": { pb: 1.25 } } : undefined}\n          >\n            {columns.map((column) => {\n              const value = summaryCells[column.key];\n              // Unlike the desktop footer, a card has no columns to keep\n              // aligned, so columns without a summary are simply skipped.\n              if (value === undefined) return null;\n              return (\n                <Box key={column.key} sx={{ mb: compact ? 0.5 : 1 }}>\n                  {resolveMobileLabel(column) && (\n                    <Typography\n                      variant=\"caption\"\n                      color=\"text.secondary\"\n                      sx={{ display: \"block\" }}\n                    >\n                      {resolveMobileLabel(column)}\n                    </Typography>\n                  )}\n                  <Typography component=\"div\" variant=\"body2\">\n                    {value}\n                  </Typography>\n                </Box>\n              );\n            })}\n          </CardContent>\n        </Card>\n      )}\n      {paddingBottom > 0 && <Box aria-hidden sx={{ height: paddingBottom }} />}\n    </Stack>\n  );\n}\n","/** Row count and the windowed pager. */\nimport {\n  pageSizeOptions,\n  type PaginationInfo,\n  type TableLabels,\n} from \"@adapttable/core\";\nimport {\n  MenuItem,\n  Pagination,\n  Stack,\n  TextField,\n  Typography,\n} from \"@mui/material\";\n\n/** Paged footer: rows-per-page + range on the left, pager on the right. */\nexport function Footer({\n  pagination,\n  total,\n  limit,\n  defaultLimit = limit,\n  setPage,\n  setLimit,\n  labels,\n  showRowsPerPage = true,\n}: Readonly<{\n  pagination: PaginationInfo;\n  total: number;\n  limit: number;\n  defaultLimit?: number;\n  setPage: (n: number) => void;\n  setLimit: (n: number) => void;\n  labels: Required<TableLabels>;\n  /** Hidden in the grouped full-set view, where page size has no effect. */\n  showRowsPerPage?: boolean;\n}>) {\n  return (\n    <Stack\n      direction=\"row\"\n      spacing={2}\n      useFlexGap\n      sx={{\n        alignItems: \"center\",\n        justifyContent: \"space-between\",\n        flexWrap: \"wrap\",\n      }}\n    >\n      <Stack\n        direction=\"row\"\n        spacing={1.5}\n        useFlexGap\n        sx={{ alignItems: \"center\" }}\n      >\n        {showRowsPerPage && (\n          <TextField\n            select\n            size=\"small\"\n            label={labels.rowsPerPage}\n            value={String(limit)}\n            onChange={(e) => setLimit(Number(e.target.value))}\n            sx={{ minWidth: 132 }}\n          >\n            {pageSizeOptions([limit, defaultLimit]).map((n) => (\n              <MenuItem key={n} value={String(n)}>\n                {n}\n              </MenuItem>\n            ))}\n          </TextField>\n        )}\n        {total > 0 && (\n          <Typography variant=\"caption\" color=\"text.secondary\">\n            {labels.showing({\n              from: pagination.fromIndex,\n              to: pagination.toIndex,\n              total,\n            })}\n          </Typography>\n        )}\n      </Stack>\n      <Pagination\n        count={pagination.totalPages}\n        page={pagination.safePage}\n        onChange={(_, page) => setPage(page)}\n        size=\"small\"\n        // Only page items and the previous/next controls render here\n        // (no first/last buttons), so the mapping is total.\n        getItemAriaLabel={(type, page) => {\n          // Page items always carry their page number (null is reserved\n          // for ellipsis/control items, which take the other branch).\n          if (type === \"page\") return labels.goToPage(page!);\n          return type === \"previous\" ? labels.previousPage : labels.nextPage;\n        }}\n      />\n    </Stack>\n  );\n}\n","/** Loading skeleton for the table and the card list. */\nimport { Box, Skeleton, Stack } from \"@mui/material\";\n\n/** Inline equivalent of `@mui/utils` visuallyHidden (avoids an extra dep). */\nconst srOnly = {\n  position: \"absolute\",\n  width: 1,\n  height: 1,\n  padding: 0,\n  margin: -1,\n  overflow: \"hidden\",\n  clip: \"rect(0 0 0 0)\",\n  whiteSpace: \"nowrap\",\n  border: 0,\n} as const;\n\n/** Skeleton loading placeholder. */\nexport function LoadingState({\n  rows,\n  columns,\n  loadingLabel,\n}: Readonly<{ rows: number; columns: number; loadingLabel?: string }>) {\n  return (\n    <Box\n      role=\"status\"\n      aria-busy=\"true\"\n      aria-live=\"polite\"\n      data-testid=\"adapttable-loading\"\n    >\n      {Array.from({ length: rows }, (_, r) => (\n        <Stack key={r} direction=\"row\" spacing={2} sx={{ py: 1 }}>\n          {Array.from({ length: Math.max(columns, 1) }, (_, c) => (\n            <Skeleton key={c} variant=\"text\" width={c === 0 ? \"30%\" : \"20%\"} />\n          ))}\n        </Stack>\n      ))}\n      {loadingLabel ? (\n        <Box component=\"span\" sx={srOnly}>\n          {loadingLabel}\n        </Box>\n      ) : null}\n    </Box>\n  );\n}\n","/** Search field, sort select, filters trigger, menus and rows-per-page. */\nimport { pageSizeOptions } from \"@adapttable/core\";\nimport {\n  FeatureSlot,\n  FILTER_POPOVER,\n  TOOLBAR_EXTRAS,\n  type ToolbarChromeProps,\n} from \"@adapttable/react/adapter\";\nimport {\n  Badge,\n  Button,\n  InputAdornment,\n  MenuItem,\n  Stack,\n  TextField,\n} from \"@mui/material\";\nimport { type ReactNode, useRef } from \"react\";\n\nimport { FiltersIcon } from \"../icons\";\n\n/** Magnifying-glass glyph for the search field (currentColor, no icon-lib). */\nfunction SearchIcon() {\n  return (\n    <svg\n      width=\"18\"\n      height=\"18\"\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      strokeWidth=\"1.8\"\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      aria-hidden=\"true\"\n    >\n      <circle cx=\"11\" cy=\"11\" r=\"7\" />\n      <path d=\"m21 21-4.3-4.3\" />\n    </svg>\n  );\n}\n\n/**\n * Toolbar props: the shared {@link ToolbarChromeProps} plus the filter-container\n * wiring (mode + open/close handlers) so the Filters button can act as either\n * the popover anchor (default) or the drawer trigger.\n */\nexport interface MuiToolbarProps<TRow> extends ToolbarChromeProps<TRow> {\n  /** Which filter container the Filters button drives. */\n  filtersMode: \"popover\" | \"drawer\" | \"header\";\n  /** Filter content (rendered inside the popover when in popover mode). */\n  filters?: ReactNode;\n  /** Close the filter container (popover mode). */\n  onCloseFilters: () => void;\n  /** Clear all active filters. */\n  onClearFilters: () => void;\n}\n\n/** Search field + sort select + filters button + rows-per-page. */\nexport function Toolbar<TRow>({\n  table,\n  searchable,\n  searchPlaceholder,\n  sortByOptions,\n  toolbar,\n  toolbarSlots,\n  onUndo,\n  onRedo,\n  canUndo,\n  canRedo,\n  undoLabel,\n  redoLabel,\n  onPrint,\n  printLabel,\n  density,\n  onDensityChange,\n  onToggleFullscreen,\n  isFullscreen,\n  hasFilters,\n  activeFilterCount,\n  showRowsPerPage,\n  filtersMode,\n  filters,\n  filtersOpen,\n  onToggleFilters,\n  onFiltersTriggerPointerDown,\n  onCloseFilters,\n  onClearFilters,\n  dir,\n  savedViewsMenu,\n  columnMenu,\n  onAddRow,\n  addRowLabel,\n  onExportCsv,\n  exportBusy,\n  exportAnnouncement = \"\",\n  exportProgressState,\n  exportLabel,\n  exportDisabled,\n  exportDisabledReason,\n}: Readonly<MuiToolbarProps<TRow>>) {\n  const { labels, source } = table;\n  const sortOptions =\n    sortByOptions ?? (table.isMobile ? table.sortByOptions : undefined);\n  const searchProps = table.getSearchInputProps(\n    searchPlaceholder ? { placeholder: searchPlaceholder } : undefined\n  );\n  const filtersAnchorRef = useRef<HTMLButtonElement>(null);\n\n  const filtersButton = hasFilters ? (\n    <Badge color=\"primary\" badgeContent={activeFilterCount}>\n      <Button\n        ref={filtersAnchorRef}\n        variant=\"outlined\"\n        size=\"small\"\n        startIcon={<FiltersIcon />}\n        aria-expanded={filtersMode === \"popover\" ? filtersOpen : undefined}\n        onPointerDown={onFiltersTriggerPointerDown}\n        onClick={onToggleFilters}\n      >\n        {labels.filters}\n      </Button>\n    </Badge>\n  ) : null;\n\n  return (\n    <Stack\n      direction=\"row\"\n      spacing={1}\n      useFlexGap\n      sx={{\n        flexWrap: \"wrap\",\n        alignItems: \"center\",\n        justifyContent: \"space-between\",\n      }}\n    >\n      {toolbarSlots?.start}\n      {searchable !== false && (\n        <TextField\n          size=\"small\"\n          value={searchProps.value}\n          placeholder={searchProps.placeholder}\n          slotProps={{\n            htmlInput: { \"aria-label\": labels.search, type: \"search\" },\n            input: {\n              startAdornment: (\n                <InputAdornment position=\"start\">\n                  <SearchIcon />\n                </InputAdornment>\n              ),\n            },\n          }}\n          onChange={searchProps.onChange}\n          sx={{ flex: 1, minWidth: 160, maxWidth: 360 }}\n        />\n      )}\n      <Stack\n        direction=\"row\"\n        spacing={1}\n        useFlexGap\n        sx={{ alignItems: \"center\", flexWrap: \"wrap\" }}\n      >\n        {sortOptions && sortOptions.length > 0 && (\n          <TextField\n            select\n            size=\"small\"\n            label={labels.sortBy}\n            value={source.sortBy ?? \"\"}\n            onChange={(e) =>\n              source.setSort(\n                e.target.value || undefined,\n                source.sortDir ?? \"asc\"\n              )\n            }\n            sx={{ minWidth: 160 }}\n          >\n            <MenuItem value=\"\">—</MenuItem>\n            {sortOptions.map((o) => (\n              <MenuItem key={o.value} value={o.value}>\n                {o.label}\n              </MenuItem>\n            ))}\n          </TextField>\n        )}\n        {toolbar}\n        {filtersButton}\n        {hasFilters && filtersMode === \"popover\" && (\n          <FeatureSlot\n            slot={FILTER_POPOVER}\n            props={{\n              open: filtersOpen,\n              onClose: onCloseFilters,\n              anchorEl: filtersAnchorRef.current,\n              filters,\n              activeFilterCount,\n              onClearFilters,\n              labels,\n              dir,\n            }}\n          />\n        )}\n        {savedViewsMenu}\n        {columnMenu}\n        <FeatureSlot\n          slot={TOOLBAR_EXTRAS}\n          props={{\n            onUndo,\n            onRedo,\n            canUndo,\n            canRedo,\n            undoLabel,\n            redoLabel,\n            onPrint,\n            printLabel,\n            density,\n            onDensityChange,\n            onToggleFullscreen,\n            isFullscreen,\n            onExportCsv,\n            exportBusy,\n            exportAnnouncement,\n            exportProgressState,\n            exportLabel,\n            exportDisabled,\n            exportDisabledReason,\n            labels,\n          }}\n        />\n        {onAddRow && (\n          <Button\n            variant=\"contained\"\n            size=\"small\"\n            data-adapttable-part=\"add-row\"\n            onClick={onAddRow}\n          >\n            {addRowLabel}\n          </Button>\n        )}\n        {toolbarSlots?.end}\n        {showRowsPerPage && (\n          <TextField\n            select\n            size=\"small\"\n            label={labels.rowsPerPage}\n            value={source.limit}\n            onChange={(e) => source.setLimit(Number(e.target.value))}\n            sx={{ minWidth: 132 }}\n          >\n            {pageSizeOptions([source.limit, source.defaultLimit]).map((n) => (\n              <MenuItem key={n} value={n}>\n                {n}\n              </MenuItem>\n            ))}\n          </TextField>\n        )}\n      </Stack>\n    </Stack>\n  );\n}\n","import { resolveLabels, showSimpleFilterFields } from \"@adapttable/core\";\nimport {\n  ACTIVE_FILTER_CHIPS,\n  AGENT_APPROVAL,\n  AGENT_APPROVAL_STATE,\n  BATCH_EDIT_BAR,\n  BULK_BAR,\n  COLUMN_MENU,\n  COMMAND_PALETTE_LIVE,\n  contextMenuCopyTarget,\n  ContextMenuLiveGate,\n  type ContextMenuLiveSlotProps,\n  DataTableShellView,\n  FeatureHostProvider,\n  FeatureProviders,\n  FeatureSlot,\n  fillSlot,\n  FILTER_DRAWER,\n  FILTERS_FORM,\n  type FiltersFormSlotProps,\n  FIND_BAR,\n  GRID_FOCUS_ANNOUNCER,\n  GROUPING_PANEL,\n  type GroupingPanelSlotProps,\n  OptionalSidePanel,\n  resolveStickyToolbar,\n  ROW_REORDER_ANNOUNCER,\n  SAVED_VIEWS,\n  SIDE_PANEL,\n  STATUS_BAR,\n  TableStatusAnnouncer,\n  useDataTableShell,\n  useFeatureState,\n  useMountStagger,\n  useStickyToolbarLayout,\n  useTableFeatures,\n} from \"@adapttable/react/adapter\";\nimport {\n  Box,\n  Button,\n  LinearProgress,\n  Paper,\n  Stack,\n  Typography,\n} from \"@mui/material\";\nimport type { ReactNode } from \"react\";\n\nimport { DesktopTable } from \"./components/DesktopTable\";\nimport { ErrorState } from \"./components/ErrorState\";\nimport { MobileCards } from \"./components/MobileCards\";\nimport { Footer } from \"./components/PaginationFooter\";\nimport { LoadingState } from \"./components/TableSkeleton\";\nimport { Toolbar } from \"./components/Toolbar\";\nimport type { DataTableProps } from \"./types\";\n\nfunction TableFooterSlot({ children }: Readonly<{ children?: ReactNode }>) {\n  if (children == null) return null;\n  return <Box data-adapttable-part=\"table-footer\">{children}</Box>;\n}\n\n/** Map row density to MUI's table `size`, independent of column pinning. */\nfunction tableSize(\n  bits: Readonly<{ density?: \"comfortable\" | \"compact\" }>\n): \"small\" | \"medium\" {\n  return bits.density === \"compact\" ? \"small\" : \"medium\";\n}\n\n/**\n * Batteries-included Material UI data table. Drop in `columns`, `data` (or\n * `data` + `onQueryChange` for server fetching, or a full `source`), and a\n * `rowKey` for a fully styled, sortable, filterable, paginated MUI table\n * with selection, bulk actions, RTL, and dark mode — a free DataGrid-style\n * experience on the headless `@adapttable/core` engine. Declarative\n * `filters` (and column `filter` shorthands) render an auto-built form.\n *\n * @typeParam TRow - The row type.\n *\n * @public\n */\nfunction DataTableContent<TRow>(incoming: Readonly<DataTableProps<TRow>>) {\n  const props = useTableFeatures(incoming);\n  const { slots, className, classNames, animate = false } = props;\n  const { filtersMode = \"popover\" } = props;\n  // The whole shared orchestration lives in core's shell; MUI adds only its\n  // kit's row `size` over the returned bundles.\n  const headerFiltersOn =\n    props.headerFilters === true || props.filtersMode === \"header\";\n  const simpleFiltersOn = showSimpleFilterFields(\n    headerFiltersOn,\n    props.filterFields\n  );\n  const shell = useDataTableShell<TRow>(props, (defs, source, registry) => {\n    // The slot key erases the row; TableSource is invariant in TRow.\n    const formProps = {\n      defs,\n      source,\n      registry,\n      labels: resolveLabels(props.labels),\n      defaultExpanded: !simpleFiltersOn,\n      showSimpleFields: simpleFiltersOn,\n    } as unknown as FiltersFormSlotProps<never>;\n    return <FeatureSlot slot={FILTERS_FORM} props={formProps} />;\n  });\n  const {\n    chrome: c,\n    labels,\n    filtersNode,\n    filtersOpen,\n    setFiltersOpen,\n    filtersTrigger,\n    rootRef,\n  } = shell;\n  const approval = useFeatureState(AGENT_APPROVAL_STATE);\n  const size = tableSize({ density: shell.density });\n  const stickyBar = useStickyToolbarLayout(\n    resolveStickyToolbar(\n      props.stickyHeader,\n      props.stickyToolbar,\n      props.maxHeight != null\n    ),\n    props.stickyTop ?? 0\n  );\n  // Everything rendered below reads the chrome's VIEW facade — identical to\n  // the raw source except under grouping, where it presents the full set.\n  const viewSource = shell.source;\n  const { confirm } = c;\n  useMountStagger(rootRef, [viewSource.rows.length, c.isMobile], {\n    enabled: animate,\n  });\n  // Saved views capture the table's own URL params, so the menu defaults to\n  // the table's URL backend + namespace (an explicit option still wins).\n  const savedViewsMenu = props.savedViews ? (\n    <FeatureSlot\n      slot={SAVED_VIEWS}\n      props={{\n        options: {\n          urlAdapter: shell.urlAdapter,\n          urlKey: props.urlKey,\n          ...props.savedViews,\n        },\n        labels,\n      }}\n    />\n  ) : null;\n\n  return (\n    <DataTableShellView shell={shell}>\n      {(view) => {\n        const c = view.chrome;\n        const tableProps = {\n          ...view.tableProps,\n          size,\n          stickyTop: stickyBar.headerOffset,\n        };\n        const { loadMoreRef, canLoadMore, toolbarProps, table } = view;\n        const viewSource = view.source;\n        const columnMenu = props.enableColumnMenu && !c.isMobile && (\n          <FeatureSlot\n            slot={COLUMN_MENU}\n            props={{\n              allColumns: c.allColumns,\n              onAutoSize: view.autoSizeColumns,\n              onAutoSizeColumn: view.autoSizeColumn,\n              onSortColumn: (key, dir) => viewSource.setSort(key, dir),\n              onFilterColumn: () => setFiltersOpen(true),\n              onRenameColumn: props.onColumnRename\n                ? c.columnLayout.setName\n                : undefined,\n              sortBy: viewSource.sortBy,\n              sortDir: viewSource.sortDir,\n              layout: c.columnLayout,\n              labels,\n              hasRowActions: view.hasRowActions,\n              hasRowReorder: view.hasRowReorder,\n              groupingPanel: c.groupingPanel,\n              dir: props.dir,\n              // The slot key erases the row; ColumnDef is invariant, so the\n              // table's TRow cannot be proven to be `never`.\n            }}\n          />\n        );\n        let body: React.ReactNode;\n        if (c.body === \"skeleton\") {\n          body = slots?.skeleton ?? (\n            <LoadingState\n              rows={props.skeletonRows ?? viewSource.limit}\n              columns={table.columns.length}\n              loadingLabel={labels.loading}\n            />\n          );\n        } else if (c.body === \"empty\") {\n          body = (c.emptyVariant === \"noResults\"\n            ? slots?.noResults\n            : undefined) ??\n            slots?.empty ?? (\n              <Stack\n                role=\"status\"\n                spacing={1.5}\n                sx={{ py: 6, alignItems: \"center\" }}\n              >\n                <Typography color=\"text.secondary\" align=\"center\">\n                  {c.emptyVariant === \"noResults\"\n                    ? labels.noResults\n                    : labels.noData}\n                </Typography>\n                {c.emptyVariant === \"noResults\" && (\n                  <Button\n                    variant=\"outlined\"\n                    size=\"small\"\n                    onClick={c.clearFilters}\n                  >\n                    {labels.clearAll}\n                  </Button>\n                )}\n              </Stack>\n            );\n        } else if (c.body === \"mobile\") {\n          body = (\n            <MobileCards {...tableProps} cardClassName={classNames?.card} />\n          );\n        } else {\n          body = (\n            <Box className={classNames?.table}>\n              <DesktopTable {...tableProps} prefetch={props.prefetch} />\n            </Box>\n          );\n        }\n        const contextMenuLive = {\n          contextMenu: props.contextMenu,\n          columns: c.allColumns,\n          labels,\n          rowFor: (rowId: string) =>\n            shell.source.rows.find((row) => props.rowKey(row) === rowId),\n          actions: {\n            onCopy: (target) => {\n              // The cell that was right-clicked, unless it sits inside a\n              // selection — then the selection is what was asked for.\n              const copy = contextMenuCopyTarget(view.gridFocus, target);\n              if (!copy.available) return;\n              view.gridFocus.copyCells(copy.cell);\n            },\n            onSort: (key: string, dir: \"asc\" | \"desc\") => {\n              shell.source.setSort(key, dir);\n            },\n            onHide: (key: string) => {\n              c.columnLayout.toggleVisible(key);\n            },\n            onFilter: () => {\n              shell.setFiltersOpen(true);\n            },\n          },\n          sortBy: shell.source.sortBy,\n          sortDir: shell.source.sortDir,\n          featureHost: shell.featureHost,\n          container: view.fullscreen.container,\n        } as Omit<ContextMenuLiveSlotProps<never>, \"children\">;\n        return (\n          <FeatureHostProvider host={shell.featureHost}>\n            <ContextMenuLiveGate props={contextMenuLive}>\n              {(regionProps) => (\n                <Paper\n                  ref={rootRef}\n                  {...regionProps}\n                  variant=\"outlined\"\n                  dir={props.dir}\n                  className={\n                    [className, classNames?.root].filter(Boolean).join(\" \") ||\n                    undefined\n                  }\n                  aria-busy={c.isRefreshing || undefined}\n                  sx={{ p: 1.5 }}\n                >\n                  <FeatureSlot\n                    slot={GRID_FOCUS_ANNOUNCER}\n                    props={{ focus: view.gridFocus }}\n                  />\n                  <TableStatusAnnouncer\n                    announcement={shell.statusAnnouncement}\n                  />\n                  {view.tableProps.rowReorder ? (\n                    <FeatureSlot\n                      slot={ROW_REORDER_ANNOUNCER}\n                      props={{\n                        announcement: view.tableProps.rowReorder.announcement,\n                      }}\n                    />\n                  ) : null}\n                  <FeatureSlot\n                    slot={FIND_BAR}\n                    props={{ find: view.find, labels }}\n                  />\n                  <Stack spacing={1.5}>\n                    <Box\n                      data-adapttable-part=\"toolbar\"\n                      ref={stickyBar.toolbarRef}\n                      className={classNames?.toolbar}\n                      sx={\n                        stickyBar.toolbarStyle\n                          ? {\n                              position: \"sticky\",\n                              top: stickyBar.toolbarStyle.top,\n                              zIndex: 3,\n                              bgcolor: \"background.paper\",\n                              pb: 1.5,\n                            }\n                          : undefined\n                      }\n                    >\n                      <Toolbar\n                        {...toolbarProps}\n                        savedViewsMenu={savedViewsMenu}\n                        filtersMode={filtersMode}\n                        filtersOpen={filtersOpen}\n                        onToggleFilters={filtersTrigger.onClick}\n                        onFiltersTriggerPointerDown={\n                          filtersTrigger.onPointerDown\n                        }\n                        onCloseFilters={() => setFiltersOpen(false)}\n                        columnMenu={columnMenu}\n                      />\n                    </Box>\n                    {c.isRefreshing && (\n                      <LinearProgress aria-label={labels.loading} />\n                    )}\n                    <FeatureSlot\n                      slot={ACTIVE_FILTER_CHIPS}\n                      props={{\n                        chips: view.chrome.mergedChips,\n                        onClearAll: c.clearFilters,\n                        labels,\n                      }}\n                    />\n                    {view.chrome.editing?.batch && (\n                      <FeatureSlot\n                        slot={BATCH_EDIT_BAR}\n                        props={{\n                          batch: view.chrome.editing.batch,\n                          contested: view.chrome.editing.conflict?.anyContested,\n                          labels,\n                        }}\n                      />\n                    )}\n                    <FeatureSlot\n                      slot={AGENT_APPROVAL}\n                      props={{ pending: approval, labels }}\n                    />\n\n                    {table.selection && props.bulkActions ? (\n                      <FeatureSlot\n                        slot={BULK_BAR}\n                        props={{\n                          selection: table.selection,\n                          total: viewSource.total,\n                          bulkActions: props.bulkActions,\n                          confirm,\n                          labels,\n                        }}\n                      />\n                    ) : null}\n                    <FeatureSlot\n                      slot={COMMAND_PALETTE_LIVE}\n                      props={{\n                        commandPalette: props.commandPalette,\n                        labels,\n                        onPrint: props.onPrint,\n                        onExport: view.toolbarProps.onExportCsv,\n                        onClearFilters: c.clearFilters,\n                        hasFilters: c.activeFilterCount > 0,\n                        featureHost: shell.featureHost,\n                      }}\n                    />\n                    {view.groupingPanelProps ? (\n                      <FeatureSlot\n                        slot={GROUPING_PANEL}\n                        props={\n                          view.groupingPanelProps as GroupingPanelSlotProps<never>\n                        }\n                      />\n                    ) : null}\n                    <OptionalSidePanel\n                      side={props.sidePanel?.side}\n                      body={\n                        <>\n                          {c.errorState\n                            ? (fillSlot(slots?.error, c.errorState) ?? (\n                                <ErrorState\n                                  error={c.errorState.error}\n                                  labels={labels}\n                                  onRetry={c.errorState.retry}\n                                />\n                              ))\n                            : body}\n                        </>\n                      }\n                      panel={\n                        props.sidePanel?.open != null && (\n                          <FeatureSlot\n                            slot={SIDE_PANEL}\n                            props={{\n                              panels: props.sidePanel.panels,\n                              openPanel: props.sidePanel.open,\n                              onOpenPanel: props.sidePanel.onOpenChange,\n                              onClose: () => {\n                                props.sidePanel?.onOpenChange(null);\n                              },\n                              side: props.sidePanel.side,\n                              labels,\n                            }}\n                          />\n                        )\n                      }\n                    />\n                    {canLoadMore && viewSource.hasNextPage && (\n                      <Box\n                        ref={loadMoreRef}\n                        sx={{\n                          display: \"flex\",\n                          justifyContent: \"center\",\n                          py: 1,\n                        }}\n                      >\n                        <Button\n                          variant=\"outlined\"\n                          size=\"small\"\n                          disabled={viewSource.isFetchingNextPage}\n                          onClick={() => viewSource.fetchNextPage()}\n                        >\n                          {labels.loadMore}\n                        </Button>\n                      </Box>\n                    )}\n                    <TableFooterSlot>{props.tableFooter}</TableFooterSlot>\n                    {c.showFooter && (\n                      <Box className={classNames?.footer}>\n                        <Footer\n                          pagination={table.pagination}\n                          total={viewSource.total}\n                          limit={viewSource.limit}\n                          defaultLimit={viewSource.defaultLimit}\n                          setPage={viewSource.setPage}\n                          setLimit={viewSource.setLimit}\n                          labels={labels}\n                          showRowsPerPage={!view.chrome.grouping}\n                        />\n                      </Box>\n                    )}\n                  </Stack>\n                  {filtersNode && filtersMode === \"drawer\" && (\n                    <FeatureSlot\n                      slot={FILTER_DRAWER}\n                      props={{\n                        open: filtersOpen,\n                        onClose: () => setFiltersOpen(false),\n                        filters: filtersNode,\n                        activeFilterCount: c.activeFilterCount,\n                        onClearFilters: c.clearFilters,\n                        labels,\n                        dir: props.dir,\n                      }}\n                    />\n                  )}\n                  <FeatureSlot\n                    slot={STATUS_BAR}\n                    props={{\n                      enabled: props.statusBar === true,\n                      notices: c.featureNotices,\n                      shown: shell.source.rows.length,\n                      page: shell.source.page,\n                      limit: shell.source.limit,\n                      total: shell.source.total,\n                      selected: table.selection?.selectedCount ?? 0,\n                      stats: view.selectionStats,\n                      labels,\n                      locale: props.locale,\n                    }}\n                  />\n                </Paper>\n              )}\n            </ContextMenuLiveGate>\n          </FeatureHostProvider>\n        );\n      }}\n    </DataTableShellView>\n  );\n}\n\n/**\n * Resolve `features` and mount whatever providers they contribute, then render\n * the table inside them.\n *\n * A feature that owns hooks owns a component, so its provider has to sit ABOVE\n * the body that reads what it publishes — that is the whole reason this is two\n * components rather than one.\n *\n * @typeParam TRow - The row type.\n *\n * @public\n */\nexport function DataTable<TRow>(incoming: Readonly<DataTableProps<TRow>>) {\n  const props = useTableFeatures(incoming);\n  return (\n    <FeatureProviders props={props}>\n      <DataTableContent<TRow> {...props} />\n    </FeatureProviders>\n  );\n}\n"],"mappings":"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"}