@innertia-solutions/innertia-nuxt 0.1.23 → 0.1.25
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.
|
@@ -296,16 +296,17 @@ const showColumnPanel = ref(false)
|
|
|
296
296
|
const toggleColumnPanel = () => { showColumnPanel.value = !showColumnPanel.value }
|
|
297
297
|
|
|
298
298
|
// ─── Color map (tokens-aware) ────────────────────────────────────────────────
|
|
299
|
+
// `col` = tinte de fondo de la columna en modo sin bordes (estilo Notion/Trello).
|
|
299
300
|
const colorMap = {
|
|
300
|
-
slate: { dot: 'bg-slate-400', over: 'ring-2 ring-slate-400' },
|
|
301
|
-
red: { dot: 'bg-red-500', over: 'ring-2 ring-red-400' },
|
|
302
|
-
yellow: { dot: 'bg-yellow-500', over: 'ring-2 ring-yellow-400' },
|
|
303
|
-
amber: { dot: 'bg-amber-500', over: 'ring-2 ring-amber-400' },
|
|
304
|
-
green: { dot: 'bg-emerald-500', over: 'ring-2 ring-emerald-400' },
|
|
305
|
-
blue: { dot: 'bg-blue-500', over: 'ring-2 ring-blue-400' },
|
|
306
|
-
indigo: { dot: 'bg-indigo-500', over: 'ring-2 ring-indigo-400' },
|
|
307
|
-
purple: { dot: 'bg-purple-500', over: 'ring-2 ring-purple-400' },
|
|
308
|
-
pink: { dot: 'bg-pink-500', over: 'ring-2 ring-pink-400' },
|
|
301
|
+
slate: { dot: 'bg-slate-400', over: 'ring-2 ring-slate-400', col: 'bg-slate-100/70 dark:bg-slate-800/40' },
|
|
302
|
+
red: { dot: 'bg-red-500', over: 'ring-2 ring-red-400', col: 'bg-red-50 dark:bg-red-900/15' },
|
|
303
|
+
yellow: { dot: 'bg-yellow-500', over: 'ring-2 ring-yellow-400', col: 'bg-yellow-50 dark:bg-yellow-900/15' },
|
|
304
|
+
amber: { dot: 'bg-amber-500', over: 'ring-2 ring-amber-400', col: 'bg-amber-50 dark:bg-amber-900/15' },
|
|
305
|
+
green: { dot: 'bg-emerald-500', over: 'ring-2 ring-emerald-400', col: 'bg-emerald-50 dark:bg-emerald-900/15' },
|
|
306
|
+
blue: { dot: 'bg-blue-500', over: 'ring-2 ring-blue-400', col: 'bg-blue-50 dark:bg-blue-900/15' },
|
|
307
|
+
indigo: { dot: 'bg-indigo-500', over: 'ring-2 ring-indigo-400', col: 'bg-indigo-50 dark:bg-indigo-900/15' },
|
|
308
|
+
purple: { dot: 'bg-purple-500', over: 'ring-2 ring-purple-400', col: 'bg-purple-50 dark:bg-purple-900/15' },
|
|
309
|
+
pink: { dot: 'bg-pink-500', over: 'ring-2 ring-pink-400', col: 'bg-pink-50 dark:bg-pink-900/15' },
|
|
309
310
|
}
|
|
310
311
|
const getColors = (state) => colorMap[state.color ?? 'slate'] ?? colorMap.slate
|
|
311
312
|
|
|
@@ -458,7 +459,7 @@ defineExpose({ reload: fetchAll, rows })
|
|
|
458
459
|
'flex-shrink-0 w-72 flex flex-col overflow-hidden transition-shadow',
|
|
459
460
|
bordered
|
|
460
461
|
? 'rounded-card border border-card-line bg-card'
|
|
461
|
-
: 'rounded-card
|
|
462
|
+
: ['rounded-card', getColors(state).col],
|
|
462
463
|
dragOverState === state.key ? getColors(state).over : '',
|
|
463
464
|
]"
|
|
464
465
|
@dragover="onDragOver($event, state.key)"
|
|
@@ -20,6 +20,10 @@ const props = defineProps({
|
|
|
20
20
|
/** Mostrar selector "Filas por página" en el footer. Default false. */
|
|
21
21
|
showPerPage: { type: Boolean, default: false },
|
|
22
22
|
|
|
23
|
+
/** Modo lista: sin paginación. Carga todas las filas (server-side: ?list=true) y
|
|
24
|
+
* el área de la tabla se vuelve scrolleable en vez de crecer indefinidamente. */
|
|
25
|
+
list: { type: Boolean, default: false },
|
|
26
|
+
|
|
23
27
|
// Tamaño visible (wrap + overflow auto). 'sm' | 'md' (default) | 'lg' | 'fit'.
|
|
24
28
|
size: { type: String, default: 'md' },
|
|
25
29
|
filters: { type: Array, default: () => [] },
|
|
@@ -758,6 +762,7 @@ defineExpose({ getSelectedRows, reload, clearCache, exportTable, tableRef, close
|
|
|
758
762
|
:show-reload-button="showReloadButton"
|
|
759
763
|
:info-position="infoPosition"
|
|
760
764
|
:show-per-page="showPerPage"
|
|
765
|
+
:list="list"
|
|
761
766
|
:click-row-to-open="clickRowToOpen"
|
|
762
767
|
:preview-row-id="previewRow?.id ?? null"
|
|
763
768
|
:preview-mode="!!previewEnabled"
|
|
@@ -21,6 +21,8 @@ const props = defineProps({
|
|
|
21
21
|
infoPosition: { type: String, default: 'bottom' },
|
|
22
22
|
/** Mostrar el selector "Filas: 10/25/50/100/Otro...". Default false. */
|
|
23
23
|
showPerPage: { type: Boolean, default: false },
|
|
24
|
+
/** Modo lista: sin paginación (envía ?list=true, carga todas las filas y scrollea). */
|
|
25
|
+
list: { type: Boolean, default: false },
|
|
24
26
|
/** 'table' | 'cards' | 'database' | 'grid' (legacy → maps to cards) */
|
|
25
27
|
viewMode: { type: String, default: 'table' },
|
|
26
28
|
gridClass: { type: String, default: 'grid grid-cols-2 lg:grid-cols-3 gap-4' },
|
|
@@ -244,6 +246,8 @@ const buildRequestParams = () => {
|
|
|
244
246
|
perPage: pagination.value.pageSize,
|
|
245
247
|
sortColumns: sorting.value.map(s => ({ column: s.id, direction: s.desc ? 'desc' : 'asc' })),
|
|
246
248
|
columnFilters: Object.fromEntries(columnFilters.value.map(f => [f.id, f.value])),
|
|
249
|
+
// Modo lista: sin paginación, el backend devuelve todas las filas (search/sort/filtros igual).
|
|
250
|
+
...(props.list ? { list: true } : {}),
|
|
247
251
|
...otherParams,
|
|
248
252
|
}
|
|
249
253
|
}
|
|
@@ -596,6 +600,9 @@ defineExpose({
|
|
|
596
600
|
<template>
|
|
597
601
|
<div class="relative flex flex-col">
|
|
598
602
|
|
|
603
|
+
<!-- Modo lista: contenedor scrolleable (todas las filas cargadas, sin paginación) -->
|
|
604
|
+
<div :class="list ? 'max-h-[70vh] overflow-y-auto' : 'contents'">
|
|
605
|
+
|
|
599
606
|
<!-- Table view -->
|
|
600
607
|
<ViewTable
|
|
601
608
|
v-if="currentView === 'table'"
|
|
@@ -664,6 +671,8 @@ defineExpose({
|
|
|
664
671
|
</template>
|
|
665
672
|
</ViewDatabase>
|
|
666
673
|
|
|
674
|
+
</div><!-- /scroll lista -->
|
|
675
|
+
|
|
667
676
|
<!-- Pagination & controls bar -->
|
|
668
677
|
<div
|
|
669
678
|
v-if="infoPosition !== 'none'"
|
|
@@ -709,8 +718,8 @@ defineExpose({
|
|
|
709
718
|
</div>
|
|
710
719
|
</div>
|
|
711
720
|
|
|
712
|
-
<!-- Right: per-page + pagination -->
|
|
713
|
-
<div class="flex items-center gap-x-8">
|
|
721
|
+
<!-- Right: per-page + pagination (oculto en modo lista) -->
|
|
722
|
+
<div v-if="!list" class="flex items-center gap-x-8">
|
|
714
723
|
<!-- Per page selector -->
|
|
715
724
|
<div v-if="showPerPage" class="flex items-center gap-x-2">
|
|
716
725
|
<label class="text-[10px] font-bold text-muted-foreground uppercase tracking-widest">Filas:</label>
|