Saltar al contenido
EspañolEnglish

Bloques y plantillas

Un bloque es una pantalla entera de una aplicación de gestión hecha solo con componentes de la biblioteca: no escribe ni un color ni una medida, importa @amset/ui como tu aplicación y recibe sus datos por props, sin llamar a ningún servidor. Se copia a tu proyecto con npx amset-ui add y a partir de ahí es tuyo.

Son 7 pantallas. Las capturas son del banco de pruebas de la biblioteca, en el tema que tengas puesto en esta web.

Las pantallas

Panel de gestión Dashboard

Captura del bloque «Panel de gestión» en el tema claroCaptura del bloque «Panel de gestión» en el tema oscuro

La pantalla de entrada de una aplicación de gestión: las cifras del periodo con su variación, los ingresos de cada mes, las últimas facturas y lo último que ha pasado. Es lo que se mira cada mañana, así que cada factura se puede pulsar para ir a ella.

Lleva: PageHeader, Stat, BarChart, Table, History, Tag, Amount, Card y Grid.

Datos: todo llega por props; el bloque no pide nada a ningún servidor.

Copiarlo a tu proyecto
npx amset-ui add dashboard

Sin nada más que instalar 4 ficheros Verlo en el banco de pruebas

Listado de clientes CustomerList

Captura del bloque «Listado de clientes» en el tema claroCaptura del bloque «Listado de clientes» en el tema oscuro

Todos los clientes en una tabla que se busca, se filtra por estado, se ordena y se pagina, con selección de varios para actuar sobre ellos a la vez. Sin clientes todavía, enseña cómo dar de alta el primero en vez de una tabla vacía.

Lleva: PageHeader, TextField, SegmentedGroup, Table, Tag, Amount, Button y EmptyState.

Búsqueda: por nombre, NIF o correo, sin distinguir mayúsculas ni acentos.

Copiarlo a tu proyecto
npx amset-ui add customer-list

Sin nada más que instalar 2 ficheros Verlo en el banco de pruebas

Alta de cliente CustomerForm

Captura del bloque «Alta de cliente» en el tema claroCaptura del bloque «Alta de cliente» en el tema oscuro

El formulario para dar de alta (o editar) un cliente: particular o empresa, NIF con su letra comprobada, correo, teléfono, dirección, IBAN y forma de pago. Valida con un esquema que el bloque exporta (customerSchema), el mismo que tiene que usar el servidor.

Lleva: Form, FormTextField, FormDocumentField, FormPhoneField, FormAddressField, FormIbanField, FormSelect, FormRadioGroup, FormTextArea, SubmitButton y Card.

Necesita react-hook-form y zod en el proyecto.

Copiarlo a tu proyecto
npx amset-ui add customer-form

Necesita react-hook-formzod 2 ficheros Verlo en el banco de pruebas

Ficha de cliente CustomerDetail

Captura del bloque «Ficha de cliente» en el tema claroCaptura del bloque «Ficha de cliente» en el tema oscuro

Todo lo de un cliente en una pantalla: lo que ha facturado y lo que debe, sus datos, sus facturas y lo que ha pasado con él, en pestañas para no tener que bajar. Desde aquí se edita y se le hace una factura nueva.

Lleva: PageHeader con migas, Stat, Tabs, DataList, Table, History, Tag, Amount, Button y Grid.

Copiarlo a tu proyecto
npx amset-ui add customer-detail

Sin nada más que instalar 3 ficheros Verlo en el banco de pruebas

Emisión de factura InvoiceForm

Captura del bloque «Emisión de factura» en el tema claroCaptura del bloque «Emisión de factura» en el tema oscuro

Hacer una factura de principio a fin: cliente, fechas de emisión y vencimiento, forma de pago, líneas con IVA, descuento y retención, y el total calculado mientras se escribe. Se guarda como borrador o se emite, y emitir pide confirmación porque una factura emitida ya no se borra: se rectifica.

Lleva: Combobox, DatePicker, Select, InvoiceLinesEditor, TextArea, ConfirmAction, Alert, Button y Card.

Fechas: entran y salen como texto AAAA-MM-DD, sin hora ni zona.

Copiarlo a tu proyecto
npx amset-ui add invoice-form

Sin nada más que instalar 5 ficheros Verlo en el banco de pruebas

Ajustes Settings

Captura del bloque «Ajustes» en el tema claroCaptura del bloque «Ajustes» en el tema oscuro

Los ajustes de la cuenta en secciones: perfil, avisos por correo, idioma y tema, y una zona peligrosa para borrar la cuenta. «Guardar cambios» solo se enciende cuando hay algo que guardar, y deshacer vuelve a lo guardado.

Lleva: Tabs, Card, TextField, Switch, Select, SegmentedGroup, ConfirmAction, Alert y Button.

Tema: lo aplica con applyTheme en cuanto se guarda, y queda recordado en este navegador.

Copiarlo a tu proyecto
npx amset-ui add settings

Sin nada más que instalar 3 ficheros Verlo en el banco de pruebas

Inicio de sesión SignIn

Captura del bloque «Inicio de sesión» en el tema claroCaptura del bloque «Inicio de sesión» en el tema oscuro

Entrar con correo y contraseña: los dos campos con su autocompletado del navegador, recordar la sesión, el enlace para recuperar la contraseña y el error del servidor en su sitio. Mientras se comprueba, el botón espera y no deja enviar dos veces.

Lleva: Card, TextField, PasswordField, Checkbox, Button, Link y Alert.

Seguridad: el bloque no guarda la contraseña en ningún sitio; la manda a onSubmit y la olvida.

Copiarlo a tu proyecto
npx amset-ui add sign-in

Sin nada más que instalar 2 ficheros Verlo en el banco de pruebas

Cómo se copian

npx amset-ui list --blocks
Bloques (pantallas enteras):dashboard                        Dashboard                        Panel de gestióncustomer-list                    CustomerList                     Listado de clientescustomer-form                    CustomerForm                     Alta de clientecustomer-detail                  CustomerDetail                   Ficha de clienteinvoice-form                     InvoiceForm                      Emisión de facturasettings                         Settings                         Ajustessign-in                          SignIn                           Inicio de sesión 0 componentes y 7 bloques. "npx amset-ui add <nombre>" copia el codigo.
Código de salida 0 La lista, con npx amset-ui list --blocks.
npx amset-ui add dashboard
  nuevo  blocks/dashboard/dashboard.tsx  nuevo  blocks/shared/dates.ts  nuevo  blocks/shared/invoices.tsx  nuevo  blocks/shared/screen.ts Copiado: 1 bloque(s) en amset-ui (4 nuevos, 0 pisados, 0 iguales, 0 conservados).  import { Dashboard } from './amset-ui/blocks/dashboard/dashboard'
Código de salida 0 Copiar uno: su código y lo que comparte con los demás bloques.

Si el bloque necesita algo que tu proyecto no tiene (el alta de cliente usa react-hook-form y zod), add lo avisa. El alta de cliente exporta además su esquema, customerSchema, para validar lo mismo en el servidor.

Las plantillas: una aplicación entera

npx amset-ui create escribe una aplicación nueva desde una de las dos plantillas que viajan en el paquete. Las dos salen con TypeScript estricto, ESLint, sin Tailwind, el armazón (AppShell, TopBar, ThemeButton, SideNav), una página de inicio, una de clientes y la de «no encontrado».

PlantillaCómo es
Next (por defecto)App Router, páginas de servidor, y loading.tsx, error.tsx y not-found.tsx de serie.
Vite (--template vite)Cada página con React.lazy, adelantada al pasar por su enlace, y su propia barrera de errores.
npx amset-ui create mi-panel --template vite --brand "#0f766e" --dry-run
  nuevo  .gitignore  nuevo  eslint.config.js  nuevo  index.html  nuevo  package.json  nuevo  src/App.tsx  nuevo  src/PageErrorBoundary.tsx  nuevo  src/index.css  nuevo  src/main.tsx  nuevo  src/pages/CustomersPage.tsx  nuevo  src/pages/HomePage.tsx  nuevo  src/pages/NotFoundPage.tsx  nuevo  src/router.ts  nuevo  src/routes.ts  nuevo  src/vite-env.d.ts  nuevo  tsconfig.json  nuevo  vite.config.ts Escribiria: mi-panel, starter de vite con 16 ficheros, en mi-panel Para arrancarlo:  cd mi-panel  npm install  npm run dev El token del registro de @amset va en tu ~/.npmrc; el .npmrc del proyecto solo dice de donde sale el paquete.
Código de salida 0 Lo que escribe la de Vite.
Todas sus opciones.