innoboxrr-form-core 2.5.1 → 2.6.0
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 +12 -2
- package/package.json +1 -1
- package/src/components.css +88 -0
- package/src/theme.js +7 -0
- package/src/tokens.css +3 -0
package/README.md
CHANGED
|
@@ -65,7 +65,8 @@ setTheme({
|
|
|
65
65
|
| Menús | `menu`, `menuList`, `menuItem`, `menuItemDanger`, `menuSeparator`, `menuLabel` |
|
|
66
66
|
| Paleta de comandos | `command`, `commandInput`, `commandList`, `commandGroup`, `commandItem`, `commandEmpty` |
|
|
67
67
|
| Avisos | `toast`, `toastSuccess`, `toastDanger`, `toastWarning`, `toastTitle`, `toastClose`, `toastRegion` |
|
|
68
|
-
| Tabla | `table`, `tableNumeric`, `tableSticky`, `tableSelect`, `tableResizer`, `tableEmpty`, `bulkBar`, `bulkCount` |
|
|
68
|
+
| Tabla | `table`, `tableNumeric`, `tableSticky`, `tableSelect`, `tableResizer`, `tableEmpty`, `bulkBar`, `bulkCount`, `tableSort`, `tableContainer`, `tableFooter`, `tablePager` |
|
|
69
|
+
| Listado | `datatable`, `datatableFilters`, `toolbarSpacer` |
|
|
69
70
|
| Edición en línea | `editable` |
|
|
70
71
|
| Shell de aplicación | `shell`, `shellHeader`, `shellSidebar`, `shellMain` |
|
|
71
72
|
|
|
@@ -113,7 +114,16 @@ Los componentes de Vue y React envuelven exactamente este marcado.
|
|
|
113
114
|
- **Menús**: `fe-menu` con `popover`, colocado con Floating UI.
|
|
114
115
|
- **Tabla**: `fe-table-select` para la columna de casillas, `data-selected` en
|
|
115
116
|
la fila, `fe-bulk-bar` para lo que se hace con la selección y
|
|
116
|
-
`fe-table-resizer` para cambiar el ancho de una columna.
|
|
117
|
+
`fe-table-resizer` para cambiar el ancho de una columna. Una columna
|
|
118
|
+
ordenable lleva `aria-sort` en el `<th>` y dentro un `<button
|
|
119
|
+
class="fe-table-sort">`, para que se ordene también con el teclado.
|
|
120
|
+
- **Listado**: `fe-datatable` agrupa la `fe-toolbar` (con un
|
|
121
|
+
`fe-toolbar-spacer` que empuja lo que va a la derecha), el panel
|
|
122
|
+
`fe-datatable-filters`, la tabla dentro de un `fe-table-container` y el
|
|
123
|
+
`fe-table-footer` con el resumen y el `fe-table-pager`. El contenedor se
|
|
124
|
+
desplaza en horizontal cuando la tabla no cabe; para que además la cabecera
|
|
125
|
+
fija funcione al bajar, dale una altura máxima con
|
|
126
|
+
`--fe-table-max-height: 70vh`.
|
|
117
127
|
|
|
118
128
|
Un `<dialog>` cerrado está oculto porque el navegador le pone `display: none`;
|
|
119
129
|
por eso ninguna regla fija `display` fuera del estado `[open]`. Las capas que no
|
package/package.json
CHANGED
package/src/components.css
CHANGED
|
@@ -1166,6 +1166,94 @@
|
|
|
1166
1166
|
font-variant-numeric: tabular-nums;
|
|
1167
1167
|
}
|
|
1168
1168
|
|
|
1169
|
+
/*
|
|
1170
|
+
* Ordenar tiene que poderse hacer con el teclado, así que dentro del <th> va
|
|
1171
|
+
* un botón. Hereda todo de la cabecera para no parecer un botón del navegador.
|
|
1172
|
+
*/
|
|
1173
|
+
.fe-table-sort {
|
|
1174
|
+
display: inline-flex;
|
|
1175
|
+
align-items: center;
|
|
1176
|
+
gap: var(--fe-space-1);
|
|
1177
|
+
padding: 0;
|
|
1178
|
+
font: inherit;
|
|
1179
|
+
letter-spacing: inherit;
|
|
1180
|
+
text-transform: inherit;
|
|
1181
|
+
color: inherit;
|
|
1182
|
+
background: none;
|
|
1183
|
+
border: none;
|
|
1184
|
+
cursor: pointer;
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1187
|
+
.fe-table-sort:focus-visible {
|
|
1188
|
+
outline: 2px solid var(--fe-focus);
|
|
1189
|
+
outline-offset: 2px;
|
|
1190
|
+
border-radius: var(--fe-radius-sm);
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1193
|
+
/* Mientras llega la página siguiente, la actual se sigue viendo, atenuada. */
|
|
1194
|
+
.fe-table[aria-busy='true'] tbody {
|
|
1195
|
+
opacity: 0.6;
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
/*
|
|
1199
|
+
* Una tabla más ancha que la pantalla se desplaza dentro de su contenedor, no
|
|
1200
|
+
* ensancha la página. Con una altura máxima, la cabecera fija también funciona
|
|
1201
|
+
* al bajar por un listado largo.
|
|
1202
|
+
*/
|
|
1203
|
+
.fe-table-container {
|
|
1204
|
+
max-width: 100%;
|
|
1205
|
+
max-height: var(--fe-table-max-height);
|
|
1206
|
+
overflow: auto;
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
/* ============================================================
|
|
1210
|
+
LISTADO
|
|
1211
|
+
============================================================ */
|
|
1212
|
+
|
|
1213
|
+
/* Barra, filtros, tabla y pie de un listado, uno debajo de otro. */
|
|
1214
|
+
.fe-datatable {
|
|
1215
|
+
display: flex;
|
|
1216
|
+
flex-direction: column;
|
|
1217
|
+
min-width: 0;
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
/* Lo que va detrás del separador en una barra se queda a la derecha. */
|
|
1221
|
+
.fe-toolbar-spacer {
|
|
1222
|
+
flex: 1 1 auto;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
.fe-datatable > .fe-bulk-bar {
|
|
1226
|
+
margin: var(--fe-space-2);
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
.fe-datatable-filters {
|
|
1230
|
+
padding: var(--fe-space-4);
|
|
1231
|
+
border-bottom: 1px solid var(--fe-border);
|
|
1232
|
+
}
|
|
1233
|
+
|
|
1234
|
+
.fe-table-footer {
|
|
1235
|
+
display: flex;
|
|
1236
|
+
flex-wrap: wrap;
|
|
1237
|
+
align-items: center;
|
|
1238
|
+
justify-content: space-between;
|
|
1239
|
+
gap: var(--fe-space-3);
|
|
1240
|
+
padding: var(--fe-space-2) var(--fe-space-4);
|
|
1241
|
+
font-size: var(--fe-text-sm);
|
|
1242
|
+
font-variant-numeric: tabular-nums;
|
|
1243
|
+
color: var(--fe-text-muted);
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1246
|
+
.fe-table-pager {
|
|
1247
|
+
display: flex;
|
|
1248
|
+
align-items: center;
|
|
1249
|
+
gap: var(--fe-space-2);
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
/* En un formulario ocupa todo el ancho; aquí empujaría las flechas fuera. */
|
|
1253
|
+
.fe-table-pager .fe-select {
|
|
1254
|
+
width: auto;
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1169
1257
|
/* ============================================================
|
|
1170
1258
|
EDICION EN LINEA
|
|
1171
1259
|
============================================================ */
|
package/src/theme.js
CHANGED
|
@@ -128,6 +128,13 @@ export const defaultTheme = {
|
|
|
128
128
|
tableEmpty: 'fe-table-empty',
|
|
129
129
|
bulkBar: 'fe-bulk-bar',
|
|
130
130
|
bulkCount: 'fe-bulk-count',
|
|
131
|
+
tableSort: 'fe-table-sort',
|
|
132
|
+
tableContainer: 'fe-table-container',
|
|
133
|
+
tableFooter: 'fe-table-footer',
|
|
134
|
+
tablePager: 'fe-table-pager',
|
|
135
|
+
datatable: 'fe-datatable',
|
|
136
|
+
datatableFilters: 'fe-datatable-filters',
|
|
137
|
+
toolbarSpacer: 'fe-toolbar-spacer',
|
|
131
138
|
|
|
132
139
|
// EDICION EN LINEA
|
|
133
140
|
editable: 'fe-editable',
|
package/src/tokens.css
CHANGED
|
@@ -128,6 +128,9 @@
|
|
|
128
128
|
--fe-drawer-width: 32rem;
|
|
129
129
|
--fe-command-width: 40rem;
|
|
130
130
|
--fe-sidebar-width: 15rem;
|
|
131
|
+
/* Sin límite, la tabla crece con sus filas; con uno, la cabecera fija
|
|
132
|
+
funciona también al bajar por el listado. */
|
|
133
|
+
--fe-table-max-height: none;
|
|
131
134
|
}
|
|
132
135
|
|
|
133
136
|
/* La elección explícita de claro gana sobre un sistema en oscuro, de ahí el
|