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 11 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

Alta de cuenta SignUp

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

La pantalla para crear una cuenta: nombre, correo y contraseña escrita dos veces, con la fuerza de la contraseña a la vista. Cada campo dice lo que falta antes de enviar, el motivo del servidor (el correo ya existe) sale arriba sin perder lo escrito y no deja enviar dos veces. Con termsHref pide aceptar las condiciones de uso.

Lleva: Card, Center, Container, Stack, Title, TextField, PasswordField, Checkbox, Alert, Button, Link y Text.

Contraseña: mínimo de 8 caracteres; el servidor tiene que volver a comprobarlo.

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

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

Listado de facturas InvoiceList

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

Todas las facturas en una tabla que se busca, se filtra por estado, se ordena, se pagina y se exporta, con las cifras de lo pendiente de cobro y lo vencido arriba. Se puede marcar varias para actuar sobre ellas a la vez y pulsar una para abrirla. Sin facturas todavía, enseña cómo emitir la primera en vez de una tabla vacía.

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

Búsqueda: por número o cliente, sin distinguir mayúsculas ni acentos.

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

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

Equipo TeamMembers

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

Quién tiene acceso y con qué rol: cada persona con su rol, que se cambia al momento, la opción de quitarle el acceso con confirmación y un formulario para invitar a alguien nuevo con el rol que se elija. A quien es propietario no se le puede cambiar el rol ni quitar. Sin nadie todavía, enseña cómo invitar a la primera persona.

Lleva: PageHeader, UserRoleEditor, Card, TextField, Select, Button, EmptyState y Text.

Permisos: el bloque solo pinta; que quien cambia un rol pueda hacerlo lo tiene que comprobar el servidor.

Copiarlo a tu proyecto
npx amset-ui add team-members

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

Planes y precios Pricing

Captura del bloque «Planes y precios» en el tema claroCaptura del bloque «Planes y precios» en el tema oscuro

La comparativa de planes de un servicio: se elige pagar cada mes o cada año, los precios cambian al momento y cada plan tiene su botón. Avisa de lo que se ahorra pagando el año entero, marca el plan recomendado con texto y deja el plan que ya se tiene como «Tu plan», sin botón. Debajo, lo que incluye cada plan fila a fila.

Lleva: PageHeader, SegmentedGroup, PricingTable, Tag y Button.

Precios: el bloque no calcula descuentos; cada plan trae su precio mensual y el del año entero.

Copiarlo a tu proyecto
npx amset-ui add pricing

Sin nada más que instalar 1 fichero 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ónsign-up                          SignUp                           Alta de cuentainvoice-list                     InvoiceList                      Listado de facturasteam-members                     TeamMembers                      Equipopricing                          Pricing                          Planes y precios 0 componentes y 11 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.