@superdangerous/app-framework 4.15.9 → 4.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superdangerous/app-framework",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.16.0",
|
|
4
4
|
"description": "Opinionated TypeScript framework for structured vibecoding - building internal web and desktop apps with batteries included",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -240,14 +240,14 @@ export function DataTable<T>({
|
|
|
240
240
|
return (
|
|
241
241
|
<TooltipProvider>
|
|
242
242
|
<>
|
|
243
|
-
{/* Table with scroll container and border */}
|
|
244
|
-
<div className="overflow-
|
|
243
|
+
{/* Table with scroll container and border - supports both horizontal and vertical scroll with sticky header */}
|
|
244
|
+
<div className="overflow-auto border rounded-lg max-h-[calc(100vh-16rem)]">
|
|
245
245
|
<Table
|
|
246
246
|
style={getTableStyle()}
|
|
247
247
|
className={cn('resizable-table sticky-actions-table', className)}
|
|
248
248
|
>
|
|
249
|
-
<TableHeader>
|
|
250
|
-
<TableRow onContextMenu={handleHeaderContextMenu}>
|
|
249
|
+
<TableHeader className="sticky top-0 z-20 bg-muted">
|
|
250
|
+
<TableRow onContextMenu={handleHeaderContextMenu} className="border-t-0">
|
|
251
251
|
{columnOrder.map((colKey) => {
|
|
252
252
|
// Select column (sticky on left)
|
|
253
253
|
if (colKey === 'select' && selectable) {
|
|
@@ -311,7 +311,7 @@ export function DataTable<T>({
|
|
|
311
311
|
colSpan={columnOrder.length + (actionsColumn ? 1 : 0)}
|
|
312
312
|
className="!p-0 h-32"
|
|
313
313
|
>
|
|
314
|
-
<div className="sticky left-0 w-screen max-w-full h-full bg-
|
|
314
|
+
<div className="sticky left-0 w-screen max-w-full h-full bg-background flex justify-center items-center">
|
|
315
315
|
<div className="flex items-center gap-2 text-muted-foreground">
|
|
316
316
|
<Loader2 className="h-5 w-5 animate-spin" />
|
|
317
317
|
Loading...
|
|
@@ -328,7 +328,7 @@ export function DataTable<T>({
|
|
|
328
328
|
<TableRow
|
|
329
329
|
key={rowId}
|
|
330
330
|
className={cn(
|
|
331
|
-
'cursor-pointer bg-
|
|
331
|
+
'group cursor-pointer bg-background hover:bg-muted/50',
|
|
332
332
|
isSelected && 'bg-primary/5',
|
|
333
333
|
rowClassName?.(item)
|
|
334
334
|
)}
|
|
@@ -348,7 +348,8 @@ export function DataTable<T>({
|
|
|
348
348
|
key="select"
|
|
349
349
|
className={cn(
|
|
350
350
|
'sticky-select-cell w-10 sticky left-0 z-10 relative after:absolute after:right-0 after:top-0 after:bottom-0 after:w-px after:bg-border',
|
|
351
|
-
|
|
351
|
+
'bg-background group-hover:bg-muted/50',
|
|
352
|
+
isSelected && 'bg-primary/5 group-hover:bg-primary/10'
|
|
352
353
|
)}
|
|
353
354
|
onClick={(e) => e.stopPropagation()}
|
|
354
355
|
>
|
|
@@ -391,7 +392,8 @@ export function DataTable<T>({
|
|
|
391
392
|
<TableCell
|
|
392
393
|
className={cn(
|
|
393
394
|
'sticky right-0 z-10 text-center relative before:absolute before:left-0 before:top-0 before:bottom-0 before:w-px before:bg-border',
|
|
394
|
-
|
|
395
|
+
'bg-background group-hover:bg-muted/50',
|
|
396
|
+
isSelected && 'bg-primary/5 group-hover:bg-primary/10'
|
|
395
397
|
)}
|
|
396
398
|
style={{ width: actionsColumnWidth, minWidth: actionsColumnWidth, maxWidth: actionsColumnWidth }}
|
|
397
399
|
onClick={(e) => e.stopPropagation()}
|
|
@@ -409,7 +411,7 @@ export function DataTable<T>({
|
|
|
409
411
|
|
|
410
412
|
{/* Empty state - rendered outside table for proper positioning */}
|
|
411
413
|
{!loading && pagination.paginatedData.length === 0 && (
|
|
412
|
-
<div className="empty-state-container flex-1 flex items-center justify-center bg-
|
|
414
|
+
<div className="empty-state-container flex-1 flex items-center justify-center bg-background">
|
|
413
415
|
{emptyState || <span className="block text-center text-muted-foreground py-8">No data</span>}
|
|
414
416
|
</div>
|
|
415
417
|
)}
|