@doscientos/ui 0.1.31 → 0.1.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/index.cjs +1241 -539
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +216 -53
- package/dist/index.d.ts +216 -53
- package/dist/index.js +1147 -487
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -61,6 +61,36 @@ El combobox es composable: la aplicación controla datos, peticiones y caché; l
|
|
|
61
61
|
</Combobox>
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
+
## Patrones de aplicación
|
|
65
|
+
|
|
66
|
+
Las primitivas de composición no conocen rutas, entidades ni transporte: cada frontend conserva esos detalles y reutiliza una UI accesible.
|
|
67
|
+
|
|
68
|
+
- `FilterBar`, `FilterGroup`, `ActiveFilters` y `FilterChip`: toolbar de filtros. Combínalos con `updateSearchParams`; la app decide cómo escribir la URL.
|
|
69
|
+
- `SelectionToolbar`: muestra selección masiva mediante `count` y recibe las acciones como `children`.
|
|
70
|
+
- `DescriptionList`, `DescriptionItem`, `DescriptionTerm` y `DescriptionDetails`: detalles semánticos de solo lectura con `dl`/`dt`/`dd`.
|
|
71
|
+
- `DataViewState`: estado vacío, de carga o recuperable de una vista de datos; compón título, descripción y acciones.
|
|
72
|
+
- `DetailDrawer`: marco de drawer para fichas; añade `DetailDrawerHeader`, `DetailDrawerBody` y `DetailDrawerFooter`.
|
|
73
|
+
- `SectionHeader`: cabecera de panel con heading y acciones; `PageHeader` se reserva para el `h1` de una página.
|
|
74
|
+
- `MetricGrid` y `MetricCard`: grid responsive de KPIs. `MetricCard` admite `loading`, `loadingLabel`, `trend` y `delta`.
|
|
75
|
+
|
|
76
|
+
## Estado asíncrono, errores y copia
|
|
77
|
+
|
|
78
|
+
- `useAsyncAction(action)` evita dobles ejecuciones mientras está pendiente y devuelve `run`, `status`, `isPending`, `data`, `error` y `reset`.
|
|
79
|
+
- `ErrorBoundary` aporta fallback recuperable, `resetKeys` y `onError`; `AsyncBoundary` combina error boundary con `Suspense`.
|
|
80
|
+
- `ErrorState` es el fallback visual componible. La aplicación inyecta su acción de reintento, no el paquete.
|
|
81
|
+
- `useClipboard` y `CopyButton` resuelven copia, feedback y errores sin acoplarse a Sileo; usa `onCopied` u `onCopyError` para analytics/toasts de producto.
|
|
82
|
+
|
|
83
|
+
## Query params sin router
|
|
84
|
+
|
|
85
|
+
`toSearchParams`, `updateSearchParams`, `readSearchParam`, `readSearchParamArray`, `readSearchParamInt` y `readSearchParamEnum` son funciones puras. Úsalas con el router de cada app:
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
const next = updateSearchParams(searchParams, { page: 1, status: ['active'], q: query })
|
|
89
|
+
router.replace(`?${next}`)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
No añadas hooks de Next, React Router ni TanStack Router al paquete. Las stories documentan componentes visuales; los hooks y utilidades puras se documentan aquí y se cubren con pruebas unitarias.
|
|
93
|
+
|
|
64
94
|
## Desarrollo
|
|
65
95
|
|
|
66
96
|
- `pnpm test`: pruebas unitarias y de renderizado.
|