@edc-motor/admin-kit 0.4.27 → 0.4.28
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edc-motor/admin-kit",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.28",
|
|
4
4
|
"description": "EdC Motor — kit del panel de administración: layout, gestores CRUD, imágenes, PDF, páginas, configuración, usuarios y copias (paquete fuente: lo compila el consumidor con Vite)",
|
|
5
5
|
"license": "GPL-3.0-only",
|
|
6
6
|
"type": "module",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@edc-motor/ui": "^0.4.
|
|
36
|
+
"@edc-motor/ui": "^0.4.28",
|
|
37
37
|
"axios": "^1.7.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
@@ -195,21 +195,57 @@
|
|
|
195
195
|
// cuerpo del modal, no el viewport) se apilan, el select debajo.
|
|
196
196
|
&__field--row {
|
|
197
197
|
display: flex;
|
|
198
|
-
|
|
198
|
+
// ARRIBA (no al fondo): con un textarea alto (p. ej. el subtítulo) el
|
|
199
|
+
// select de alineación debe quedar a la altura de las etiquetas, no
|
|
200
|
+
// descolgado al fondo de la fila.
|
|
201
|
+
align-items: flex-start;
|
|
199
202
|
gap: $space-3;
|
|
200
203
|
|
|
201
204
|
.schema-fields__field-main { flex: 1 1 0; }
|
|
202
205
|
}
|
|
203
206
|
|
|
204
|
-
|
|
207
|
+
// Ancho justo para "Centrado"/"Izquierda" + etiqueta en es/en/eu sin
|
|
208
|
+
// cortarse (180px sobraba de aire).
|
|
209
|
+
&__field-align { flex: 0 0 140px; }
|
|
205
210
|
|
|
206
211
|
// Imagen a dos columnas: el input a la izquierda, sus ajustes (posición,
|
|
207
|
-
// escalado, reparto de columnas) apilados a la derecha.
|
|
212
|
+
// escalado, reparto de columnas) apilados a la derecha. `stretch` (no
|
|
213
|
+
// `start`) para que la columna de la imagen pueda llenar el alto de la
|
|
214
|
+
// fila — la cadena de contenedores hasta el cuadro de arrastre lleva
|
|
215
|
+
// `flex: 1` para que la dropzone crezca con ella.
|
|
208
216
|
&__field--image-group {
|
|
209
217
|
display: grid;
|
|
210
218
|
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
211
219
|
gap: $space-3;
|
|
212
|
-
align-items:
|
|
220
|
+
align-items: stretch;
|
|
221
|
+
|
|
222
|
+
.schema-fields__field-main {
|
|
223
|
+
display: flex;
|
|
224
|
+
flex-direction: column;
|
|
225
|
+
min-width: 0;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// El campo imagen (label + ImageUpload) y el propio ImageUpload
|
|
229
|
+
// (`@edc-motor/ui`) se apuntan al `flex: 1` de la columna; SUELTO
|
|
230
|
+
// (form-modals normales, TranslatableImage) el componente no vive en
|
|
231
|
+
// esta cadena y conserva su tamaño natural (160×160).
|
|
232
|
+
.schema-fields__image {
|
|
233
|
+
display: flex;
|
|
234
|
+
flex-direction: column;
|
|
235
|
+
gap: $space-1;
|
|
236
|
+
flex: 1;
|
|
237
|
+
min-height: 0;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.image-upload {
|
|
241
|
+
flex: 1;
|
|
242
|
+
min-height: 0;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.image-upload__zone {
|
|
246
|
+
flex: 1;
|
|
247
|
+
width: 100%;
|
|
248
|
+
}
|
|
213
249
|
}
|
|
214
250
|
|
|
215
251
|
&__field-image-settings {
|
|
@@ -52,6 +52,9 @@ export interface PageBlocksLabels {
|
|
|
52
52
|
panelContent: string
|
|
53
53
|
parent: string
|
|
54
54
|
parentNone: string
|
|
55
|
+
/** Título de la sección de interruptores (PDF/Índice) del panel, debajo
|
|
56
|
+
* de las acciones de verdad (editar, borrar…). */
|
|
57
|
+
stateKicker: string
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
const defaultLabels: PageBlocksLabels = {
|
|
@@ -75,6 +78,7 @@ const defaultLabels: PageBlocksLabels = {
|
|
|
75
78
|
panelContent: 'Contenido',
|
|
76
79
|
parent: 'Bloque padre (índices indentados)',
|
|
77
80
|
parentNone: '— Ninguno —',
|
|
81
|
+
stateKicker: 'Estado',
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
const props = withDefaults(
|
|
@@ -729,8 +733,23 @@ defineExpose({ reload: load })
|
|
|
729
733
|
<template v-else>
|
|
730
734
|
<p class="manager-panel__kicker">{{ L.panelTitle }}</p>
|
|
731
735
|
|
|
732
|
-
<!-- Acciones
|
|
733
|
-
|
|
736
|
+
<!-- Acciones de verdad (patrón panel): los interruptores
|
|
737
|
+
PDF/Índice van en su propia sección, debajo -->
|
|
738
|
+
<div class="manager-detail__actions">
|
|
739
|
+
<BaseButton variant="info" :disabled="busy" @click="openEdit(selected)">
|
|
740
|
+
<template #icon><SquarePen :size="14" /></template>
|
|
741
|
+
{{ L.edit }}
|
|
742
|
+
</BaseButton>
|
|
743
|
+
<BaseButton variant="danger" :disabled="busy" @click="remove(selected)">
|
|
744
|
+
<template #icon><Trash2 :size="14" /></template>
|
|
745
|
+
{{ L.delete }}
|
|
746
|
+
</BaseButton>
|
|
747
|
+
</div>
|
|
748
|
+
|
|
749
|
+
<!-- Estado: los interruptores (flags), separados de las
|
|
750
|
+
acciones de verdad -->
|
|
751
|
+
<hr class="manager-panel__divider" />
|
|
752
|
+
<p class="manager-panel__kicker">{{ L.stateKicker }}</p>
|
|
734
753
|
<div class="manager-detail__actions">
|
|
735
754
|
<BaseButton
|
|
736
755
|
variant="success"
|
|
@@ -751,14 +770,6 @@ defineExpose({ reload: load })
|
|
|
751
770
|
<template #icon><List :size="14" /></template>
|
|
752
771
|
{{ L.indexableShort }}
|
|
753
772
|
</BaseButton>
|
|
754
|
-
<BaseButton variant="info" :disabled="busy" @click="openEdit(selected)">
|
|
755
|
-
<template #icon><SquarePen :size="14" /></template>
|
|
756
|
-
{{ L.edit }}
|
|
757
|
-
</BaseButton>
|
|
758
|
-
<BaseButton variant="danger" :disabled="busy" @click="remove(selected)">
|
|
759
|
-
<template #icon><Trash2 :size="14" /></template>
|
|
760
|
-
{{ L.delete }}
|
|
761
|
-
</BaseButton>
|
|
762
773
|
</div>
|
|
763
774
|
|
|
764
775
|
<hr class="manager-panel__divider" />
|