@erplora/outfitkit 0.1.21 → 0.1.22

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.
Files changed (2) hide show
  1. package/dist/layout.css +58 -5
  2. package/package.json +1 -1
package/dist/layout.css CHANGED
@@ -53,10 +53,11 @@
53
53
  min-width: 0;
54
54
  }
55
55
 
56
- /* Grid de cards/KPIs sin clases de breakpoint: se adapta solo al ancho útil. */
56
+ /* Grid de cards/KPIs sin clases de breakpoint: se adapta solo al ancho útil.
57
+ auto-fit colapsa tracks vacíos para que 2–3 tarjetas sigan llenando el eje. */
57
58
  .ok-grid-cards {
58
59
  display: grid;
59
- grid-template-columns: repeat(auto-fill, minmax(var(--ok-card-min, 260px), 1fr));
60
+ grid-template-columns: repeat(auto-fit, minmax(min(var(--ok-card-min, 16rem), 100%), 1fr));
60
61
  gap: var(--ok-grid-gap);
61
62
  }
62
63
 
@@ -120,6 +121,17 @@
120
121
  border-top: 1px solid color-mix(in oklab, var(--ok-text, var(--ion-text-color, #18181b)) 8%, transparent);
121
122
  }
122
123
 
124
+ /* Superficie alterna para crear ritmo entre secciones de página. Funciona
125
+ tanto sobre .ok-section como sobre un wrapper full-bleed con .ok-container
126
+ en su interior. */
127
+ .ok-section--soft {
128
+ background: color-mix(
129
+ in oklab,
130
+ var(--ok-text, var(--ion-text-color, #18181b)) 2.5%,
131
+ var(--ok-surface, var(--ion-background-color, #fff))
132
+ );
133
+ }
134
+
123
135
  .ok-section-head {
124
136
  display: flex;
125
137
  flex-direction: column;
@@ -187,6 +199,10 @@
187
199
  * propio sustituye al flex de ion-row; ::before sí renderiza en hosts
188
200
  * con shadow DOM)
189
201
  *
202
+ * En tablas editoriales, envolver con .ok-table-surface para obtener una
203
+ * superficie común sin añadir bordes de página. .ok-table-group identifica
204
+ * filas de sección que no deben convertirse en superficies independientes.
205
+ *
190
206
  * Tokens: --ok-table-cols (columnas del markup no-<table>; por defecto
191
207
  * partes iguales) · --ok-table-label-w (ancho de la etiqueta en móvil, 45%).
192
208
  * Celdas sin data-title (p.ej. acciones) ocupan el ancho completo en móvil.
@@ -203,6 +219,24 @@ table.ok-table-stack {
203
219
  border-collapse: collapse;
204
220
  }
205
221
 
222
+ /* Marco editorial reutilizable. Usa una línea óptica muy suave en escritorio
223
+ * y desaparece en móvil, donde las filas ya construyen su propia superficie. */
224
+ .ok-table-surface {
225
+ width: 100%;
226
+ overflow-x: auto;
227
+ background: var(--ok-surface, var(--ion-card-background, #fff));
228
+ border-radius: 12px;
229
+ box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--ok-text, var(--ion-text-color, #18181b)) 6%, transparent);
230
+ }
231
+
232
+ .ok-table-surface > .ok-table-stack {
233
+ margin: 0;
234
+ }
235
+
236
+ .ok-table-surface > .ok-table-stack :is(tbody tr:last-child td, .ok-trow:last-child .ok-tcell) {
237
+ border-bottom: 0;
238
+ }
239
+
206
240
  /* Markup no-<table>: cabecera y filas como grid de columnas iguales */
207
241
  .ok-table-stack > .ok-thead,
208
242
  .ok-table-stack > .ok-trow {
@@ -230,6 +264,13 @@ table.ok-table-stack {
230
264
  }
231
265
 
232
266
  @media (max-width: 767px) {
267
+ .ok-table-surface {
268
+ overflow: visible;
269
+ background: transparent;
270
+ border-radius: 0;
271
+ box-shadow: none;
272
+ }
273
+
233
274
  /* La tabla nativa deja de comportarse como tabla */
234
275
  table.ok-table-stack,
235
276
  table.ok-table-stack :is(thead, tbody, tfoot, tr, th, td),
@@ -248,12 +289,24 @@ table.ok-table-stack {
248
289
  border: 0;
249
290
  }
250
291
 
251
- /* Fila = card */
292
+ /* Fila = superficie ligera. Sin borde: la separación procede del fondo,
293
+ la sombra mínima y los divisores internos, evitando superficies anidadas. */
252
294
  .ok-table-stack :is(tbody tr, .ok-trow) {
253
- border: 1px solid color-mix(in oklab, var(--ok-text, var(--ion-text-color, #18181b)) 12%, transparent);
254
- border-radius: 8px;
295
+ border: 0;
296
+ border-radius: 12px;
255
297
  margin-bottom: 0.75rem;
256
298
  overflow: hidden;
299
+ background: var(--ok-surface, var(--ion-card-background, #fff));
300
+ box-shadow: 0 1px 3px color-mix(in oklab, var(--ok-text, var(--ion-text-color, #18181b)) 9%, transparent);
301
+ }
302
+
303
+ /* Una fila de grupo es un rótulo editorial, no otra card de datos. */
304
+ .ok-table-stack :is(tbody tr.ok-table-group, .ok-trow.ok-table-group) {
305
+ margin: 1.25rem 0 0.35rem;
306
+ border-radius: 0;
307
+ overflow: visible;
308
+ background: transparent;
309
+ box-shadow: none;
257
310
  }
258
311
 
259
312
  /* Celda = par etiqueta/valor (display/width explícitos: pisan el :host
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@erplora/outfitkit",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "OutfitKit — librería de Web Components (Lit) que CONSTRUYE lo que Ionic no tiene (tree, data-table rica, inline-feedback, kpi/stat, stepper/wizard, calendar, kanban…) sobre primitivos de Ionic. Ionic es la base; OutfitKit cubre los huecos. npm + CDN, imports individuales, CSP-safe. Tema vía tokens --ok-* (fallback a --ion-*).",
5
5
  "type": "module",
6
6
  "license": "MIT",