feature/homogenizacion-estilos-catalogos-fijos-y-generales
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user