feature/homogenizacion-estilos-catalogos-fijos-y-generales

This commit is contained in:
2026-04-13 11:16:54 -06:00
parent aa8891145c
commit a0a6b52fc1
83 changed files with 4293 additions and 2044 deletions

View File

@@ -3,6 +3,7 @@
import { codePedimentoRegimensApi, type CodePedimentoRegimen } from '$lib/api/dashboard/reference_data/code_pedimento_regimens';
import DataTable from '$lib/components/dashboard/reference_data/code_pedimento_regimens/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/code_pedimento_regimens/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -117,7 +118,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Pedimento - Regímenes
</h1>
<p class="text-muted-foreground">
@@ -132,33 +133,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por código de pedimento o régimen..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable
data={allItems}
{columns}
{loading}
{hasMore}
{loadMore}
/>
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Pedimento - Regímenes</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { containersApi, type Container } from '$lib/api/dashboard/reference_data/containers';
import DataTable from '$lib/components/dashboard/reference_data/containers/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/containers/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Contenedores
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,23 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por clave o descripción de contenedor..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header>
<div class="flex flex-wrap items-center justify-between gap-3">
<Card.Title>Listado de Contenedores</Card.Title>
<div class="flex flex-wrap items-center gap-2">
<Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" />
</div>
</div>
</Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { countriesApi, type Country } from '$lib/api/dashboard/reference_data/countries';
import DataTable from '$lib/components/dashboard/reference_data/countries/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/countries/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { RefreshCw } from 'lucide-svelte';
@@ -149,7 +150,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Países
</h1>
<p class="text-muted-foreground">
@@ -164,33 +165,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar país por nombre o clave..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable
data={allItems}
{columns}
{loading}
{hasMore}
{loadMore}
/>
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Países</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { currencyTypesApi, type CurrencyType } from '$lib/api/dashboard/reference_data/currency_types';
import DataTable from '$lib/components/dashboard/reference_data/currency_types/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/currency_types/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Tipos de Moneda
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por clave, moneda o país..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Tipos de Moneda</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { customsSectionsApi, type CustomsSection } from '$lib/api/dashboard/reference_data/customs_sections';
import DataTable from '$lib/components/dashboard/reference_data/customs_sections/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/customs_sections/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Secciones Aduanales
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por código o nombre de sección..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Secciones Aduanales</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { customsWarehousesApi, type CustomsWarehouse } from '$lib/api/dashboard/reference_data/customs_warehouses';
import DataTable from '$lib/components/dashboard/reference_data/customs_warehouses/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/customs_warehouses/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Recintos Fiscalizados
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por clave o nombre de recinto..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Recintos Fiscalizados</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -5,6 +5,7 @@
import { incotermsApi, type Incoterm } from '$lib/api/dashboard/reference_data/incoterms';
import { createColumns } from '$lib/components/dashboard/reference_data/incoterms/columns';
import DataTable from '$lib/components/dashboard/reference_data/incoterms/data-table.svelte';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { RefreshCw, Plus } from 'lucide-svelte';
@@ -116,7 +117,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Incoterms
</h1>
<p class="text-muted-foreground">
@@ -131,42 +132,24 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-72 items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Clave</span>
<Input
placeholder="Filtro por código..."
bind:value={searchCode}
oninput={handleSearch}
class="h-9"
/>
</div>
<div class="grid flex-1 items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Descripción</span>
<Input
placeholder="Buscar por descripción del término..."
bind:value={searchDesc}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable
columns={createColumns(handleSuccess)}
data={allItems}
{loading}
{hasMore}
{loadMore}
/>
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header>
<div class="flex flex-wrap items-center justify-between gap-3">
<Card.Title>Listado de Incoterms</Card.Title>
<div class="flex flex-wrap items-center gap-2">
<Input placeholder="Clave" bind:value={searchCode} oninput={handleSearch} class="h-9 w-36 bg-card lg:w-44" />
<Input placeholder="Descripción" bind:value={searchDesc} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" />
</div>
</div>
</Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable columns={createColumns(handleSuccess)} data={allItems} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { invoiceTypesApi, type InvoiceType } from '$lib/api/dashboard/reference_data/invoice_types';
import DataTable from '$lib/components/dashboard/reference_data/invoice_types/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/invoice_types/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Tipos de Factura
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por clave, descripción o nota..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Tipos de Factura</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { materialTypesApi, type MaterialType } from '$lib/api/dashboard/reference_data/material_types';
import DataTable from '$lib/components/dashboard/reference_data/material_types/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/material_types/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Tipos de Material
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por clave o descripción..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Tipos de Material</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { paymentMethodsApi, type PaymentMethod } from '$lib/api/dashboard/reference_data/payment_methods';
import DataTable from '$lib/components/dashboard/reference_data/payment_methods/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/payment_methods/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Métodos de Pago
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por clave o descripción de pago..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Métodos de Pago</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { pedimentoCodesApi, type PedimentoCode } from '$lib/api/dashboard/reference_data/pedimento_codes';
import DataTable from '$lib/components/dashboard/reference_data/pedimento_codes/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/pedimento_codes/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Claves de Pedimento
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por clave o descripción..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Claves de Pedimento</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { pedimentoRegimensApi, type PedimentoRegimen } from '$lib/api/dashboard/reference_data/pedimento_regimens';
import DataTable from '$lib/components/dashboard/reference_data/pedimento_regimens/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/pedimento_regimens/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Regímenes
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por código o descripción de régimen..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Regímenes</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -4,6 +4,7 @@
import { companyStore } from '$lib/stores/company.svelte';
import DataTable from '$lib/components/dashboard/reference_data/sectors/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/sectors/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -136,7 +137,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Sectores
</h1>
<p class="text-muted-foreground">
@@ -151,27 +152,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda por Clave</span>
<Input
placeholder="Buscar sector por clave..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Sectores</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { statesApi, type State } from '$lib/api/dashboard/reference_data/states';
import DataTable from '$lib/components/dashboard/reference_data/states/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/states/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import type { PageData } from './$types';
@@ -146,7 +147,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Estados
</h1>
<p class="text-muted-foreground">
@@ -161,33 +162,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por nombre o clave de estado..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable
data={allItems}
{columns}
{loading}
{hasMore}
{loadMore}
/>
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Estados</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { transportModesApi, type TransportMode } from '$lib/api/dashboard/reference_data/transport_modes';
import DataTable from '$lib/components/dashboard/reference_data/transport_modes/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/transport_modes/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Modos de Transporte
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por clave o nombre..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Modos de Transporte</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { transportTypesApi, type TransportType } from '$lib/api/dashboard/reference_data/transport_types';
import DataTable from '$lib/components/dashboard/reference_data/transport_types/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/transport_types/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Tipos de Transporte
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por código o descripción..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Tipos de Transporte</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>

View File

@@ -3,6 +3,7 @@
import { valuationMethodsApi, type ValuationMethod } from '$lib/api/dashboard/reference_data/valuation_methods';
import DataTable from '$lib/components/dashboard/reference_data/valuation_methods/data-table.svelte';
import { createColumns } from '$lib/components/dashboard/reference_data/valuation_methods/columns.js';
import * as Card from '$lib/components/ui/card';
import { Button } from '$lib/components/ui/button';
import { Input } from '$lib/components/ui/input';
import { page } from '$app/stores';
@@ -112,7 +113,7 @@
<!-- Header Section -->
<div class="flex-none flex items-center justify-between">
<div class="space-y-1">
<h1 class="text-3xl font-bold tracking-tight">
<h1 class="text-2xl font-bold tracking-tight">
Métodos de Valoración
</h1>
<p class="text-muted-foreground">
@@ -127,27 +128,16 @@
</div>
</div>
<!-- Filters Section -->
<div class="flex-none flex flex-wrap items-end gap-4">
<div class="grid w-full max-w-sm items-center gap-1.5 font-medium">
<span class="text-xs text-muted-foreground px-1">Búsqueda General</span>
<Input
placeholder="Buscar por clave o descripción..."
bind:value={searchQuery}
oninput={handleSearch}
class="h-9"
/>
</div>
</div>
{#if error}
<div class="flex-none rounded-md border border-destructive px-4 py-3 text-sm text-destructive">
{error}
</div>
{/if}
<!-- Table Container -->
<div class="flex-1 min-h-0 rounded-md border bg-background overflow-hidden flex flex-col">
<DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} />
</div>
<Card.Root class="border bg-background flex min-h-0 flex-1 flex-col">
<Card.Header><div class="flex flex-wrap items-center justify-between gap-3"><Card.Title>Listado de Métodos de Valoración</Card.Title><div class="flex flex-wrap items-center gap-2"><Input placeholder="Buscar" bind:value={searchQuery} oninput={handleSearch} class="h-9 w-44 bg-card lg:w-64" /></div></div></Card.Header>
<Card.Content class="min-h-0 p-0"><div class="rounded-md border bg-background overflow-hidden flex min-h-0 flex-1 flex-col"><DataTable data={allItems} {columns} {loading} {hasMore} {loadMore} /></div></Card.Content>
</Card.Root>
<div class="flex-none text-sm text-muted-foreground">Mostrando {allItems.length} de {totalItems} registros</div>
</div>