kaizen-lib 0.2.6 → 0.2.8
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 +3 -1
- package/package.json +1 -1
- package/src/ui/Modal.tsx +20 -4
package/README.md
CHANGED
|
@@ -242,7 +242,9 @@ Sin `title` no hay nombre accesible propio — pasá `ariaLabel`. `size` (`sm`|`
|
|
|
242
242
|
fija el ancho máximo del panel; `maxWidth` lo pisa con un valor explícito. `disableClose`
|
|
243
243
|
bloquea la X, el overlay y `Escape` a la vez — para una operación en curso, no para "no
|
|
244
244
|
quiero que cierre nunca". `dismissOnOverlay={false}` sólo desactiva el click afuera, para
|
|
245
|
-
un formulario a medio llenar que sigue queriendo cerrar con la X o `Escape`.
|
|
245
|
+
un formulario a medio llenar que sigue queriendo cerrar con la X o `Escape`. `closeLabel`
|
|
246
|
+
(default `'Cerrar'`) es el nombre accesible de la X — mismo criterio que `etiqueta` de
|
|
247
|
+
`LangSelector`: un consumidor con más de un idioma lo pisa, el resto no lo toca.
|
|
246
248
|
|
|
247
249
|
Lo que **no** trae: un `placement` lateral (drawer) y un padding compacto de cuerpo son
|
|
248
250
|
casos de un solo consumidor cada uno (`components/ui/Dialog` de valle-verde) — se resuelven
|
package/package.json
CHANGED
package/src/ui/Modal.tsx
CHANGED
|
@@ -111,11 +111,20 @@ const Descripcion = styled.p`
|
|
|
111
111
|
color: ${fg.muted};
|
|
112
112
|
`;
|
|
113
113
|
|
|
114
|
-
const Body = styled.div<{ $flush: boolean }>`
|
|
114
|
+
const Body = styled.div<{ $flush: boolean; $conFooter: boolean }>`
|
|
115
115
|
flex: 1 1 auto;
|
|
116
116
|
min-height: 0;
|
|
117
117
|
overflow-y: auto;
|
|
118
|
-
padding: ${({ $flush }) =>
|
|
118
|
+
padding: ${({ $flush, $conFooter }) => {
|
|
119
|
+
const arriba = $flush ? space[6] : '0';
|
|
120
|
+
/* Con footer, el aire de abajo lo pone el footer (su propio padding-top);
|
|
121
|
+
duplicarlo acá deja un salto más grande que el de los costados. Sin
|
|
122
|
+
footer, el cuerpo es lo último del panel y necesita el mismo aire que
|
|
123
|
+
los costados — dejarlo en el valor reducido pensado para el otro caso
|
|
124
|
+
deja un borde inferior visiblemente más fino que el resto. */
|
|
125
|
+
const abajo = $conFooter ? space[2] : space[6];
|
|
126
|
+
return `${arriba} ${space[6]} ${abajo}`;
|
|
127
|
+
}};
|
|
119
128
|
`;
|
|
120
129
|
|
|
121
130
|
const Footer = styled.footer`
|
|
@@ -176,6 +185,12 @@ type Props = {
|
|
|
176
185
|
maxWidth?: string;
|
|
177
186
|
/** Botón de cierre en la esquina. Default `true`. */
|
|
178
187
|
showClose?: boolean;
|
|
188
|
+
/**
|
|
189
|
+
* Nombre accesible del botón de cierre. Default `'Cerrar'` — mismo criterio
|
|
190
|
+
* que `LangSelector.etiqueta`: un consumidor con más de un idioma lo pisa,
|
|
191
|
+
* el resto no necesita tocarlo.
|
|
192
|
+
*/
|
|
193
|
+
closeLabel?: string;
|
|
179
194
|
/** Click afuera del panel cierra. Default `true`. */
|
|
180
195
|
dismissOnOverlay?: boolean;
|
|
181
196
|
/** Operación en curso: ni la X, ni el overlay, ni Escape cierran. */
|
|
@@ -208,6 +223,7 @@ export function Modal({
|
|
|
208
223
|
size = 'md',
|
|
209
224
|
maxWidth,
|
|
210
225
|
showClose = true,
|
|
226
|
+
closeLabel = 'Cerrar',
|
|
211
227
|
dismissOnOverlay = true,
|
|
212
228
|
disableClose = false,
|
|
213
229
|
ariaLabel,
|
|
@@ -318,7 +334,7 @@ export function Modal({
|
|
|
318
334
|
onKeyDown={manejarTab}
|
|
319
335
|
>
|
|
320
336
|
{showClose ? (
|
|
321
|
-
<Cerrar type="button" onClick={onClose} disabled={disableClose} aria-label=
|
|
337
|
+
<Cerrar type="button" onClick={onClose} disabled={disableClose} aria-label={closeLabel}>
|
|
322
338
|
×
|
|
323
339
|
</Cerrar>
|
|
324
340
|
) : null}
|
|
@@ -332,7 +348,7 @@ export function Modal({
|
|
|
332
348
|
</Header>
|
|
333
349
|
) : null}
|
|
334
350
|
|
|
335
|
-
<Body $flush={!title}>{children}</Body>
|
|
351
|
+
<Body $flush={!title} $conFooter={Boolean(footer)}>{children}</Body>
|
|
336
352
|
|
|
337
353
|
{footer ? <Footer>{footer}</Footer> : null}
|
|
338
354
|
</Panel>
|