@votodigital-onpeui/react 0.1.55 → 0.1.57

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 CHANGED
@@ -115,7 +115,7 @@ function App() {
115
115
  <>
116
116
  <button onClick={() => setIsOpen(true)}>Abrir Modal</button>
117
117
 
118
- <Modal isOpen={isOpen} onClose={() => setIsOpen(false)} closeButton>
118
+ <Modal isOpen={isOpen} onClose={() => setIsOpen(false)} closeButton className="bg-white">
119
119
  <h2>Título del Modal</h2>
120
120
  <p>Contenido del modal.</p>
121
121
  </Modal>
@@ -163,8 +163,9 @@ function App() {
163
163
  onClose={() => setIsOpen(false)}
164
164
  title="¿Estás seguro?"
165
165
  message="Esta acción no se puede deshacer."
166
- icon="warning"
166
+ type="warning"
167
167
  color="red"
168
+ buttonMode="double"
168
169
  textButtonConfirm="Eliminar"
169
170
  textButtonCancel="Cancelar"
170
171
  onConfirm={() => console.log("confirmado")}
@@ -181,17 +182,26 @@ function App() {
181
182
  |------|------|---------|-------------|
182
183
  | `isOpen` | `boolean` | — | **(requerido)** |
183
184
  | `onClose` | `() => void` | — | **(requerido)** |
184
- | `title` | `string` | — | Título del modal **(requerido)** |
185
- | `message` | `ReactNode` | — | Mensaje descriptivo **(requerido)** |
186
- | `icon` | `'warning' \| 'success'` | `'warning'` | Icono a mostrar |
187
- | `color` | `'blue' \| 'red'` | `'blue'` | Color del icono y título |
188
- | `twoButtons` | `boolean` | `true` | Muestra dos botones (confirmar + cancelar) |
185
+ | `title` | `string` | — | Título del modal |
186
+ | `message` | `ReactNode` | — | Mensaje descriptivo (string o JSX) |
187
+ | `content` | `ReactNode` | | Alias de `message` |
188
+ | `type` | `'warning' \| 'success' \| 'question' \| 'info' \| 'none'` | `'warning'` | Determina el icono y el color por defecto |
189
+ | `buttonMode` | `'single' \| 'double' \| 'confirm'` | — | `single` = un botón, `double` = Cancelar + Confirmar, `confirm` = No + Sí |
190
+ | `color` | `'blue' \| 'red' \| 'skyblue' \| 'yellow'` | — | Override manual del color del icono y título |
189
191
  | `textButtonConfirm` | `string` | `'Confirmar'` | Texto del botón de confirmación |
190
192
  | `textButtonCancel` | `string` | `'Cancelar'` | Texto del botón de cancelación |
191
- | `onConfirm` | `() => void` | — | Acción al confirmar |
192
- | `onCancel` | `() => void` | — | Acción al cancelar |
193
+ | `onConfirm` | `() => void \| Promise<void>` | — | Acción al confirmar |
194
+ | `onCancel` | `() => void \| Promise<void>` | — | Acción al cancelar |
193
195
  | `withoutAutoClose` | `boolean` | `false` | Evita que el modal se cierre automáticamente al confirmar/cancelar |
196
+ | `disabledConfirmButton` | `boolean` | `false` | Deshabilita el botón confirmar |
197
+ | `closeDisabled` | `boolean` | `false` | Deshabilita el cierre por click fuera y Escape |
198
+ | `closeButton` | `boolean` | `false` | Muestra botón X para cerrar |
199
+ | `alignJustify` | `boolean` | `false` | Alinea el texto del mensaje en justify en vez de centrado |
200
+ | `alignTop` | `boolean` | `false` | Alinea el modal al tope de la pantalla |
201
+ | `animated` | `boolean` | `true` | Habilita animación de entrada/salida |
202
+ | `preventBodyScroll` | `boolean` | `true` | Bloquea el scroll del body mientras el modal está abierto |
194
203
  | `zIndexLevel` | `number` | `100` | Nivel de z-index |
204
+ | `className` | `string` | — | Clases adicionales |
195
205
 
196
206
  ---
197
207
 
@@ -202,10 +212,18 @@ Modal de carga con spinner animado y mensaje.
202
212
  ```tsx
203
213
  import { ModalLoading } from "@votodigital-onpeui/react";
204
214
 
215
+ // Uso básico
205
216
  <ModalLoading
206
217
  isOpen={loading}
207
218
  message="Procesando información..."
208
219
  />
220
+
221
+ // Con spinner personalizado
222
+ <ModalLoading
223
+ isOpen={loading}
224
+ message="Subiendo archivo..."
225
+ spinner={<div className="w-16 h-16 rounded-full border-4 border-white border-t-transparent animate-spin" />}
226
+ />
209
227
  ```
210
228
 
211
229
  #### Props
@@ -213,8 +231,156 @@ import { ModalLoading } from "@votodigital-onpeui/react";
213
231
  | Prop | Tipo | Default | Descripción |
214
232
  |------|------|---------|-------------|
215
233
  | `isOpen` | `boolean` | — | **(requerido)** |
234
+ | `onClose` | `() => void` | — | Callback al cerrar |
216
235
  | `message` | `string` | `'Cargando...'` | Mensaje de carga |
236
+ | `spinner` | `ReactNode` | — | Spinner personalizado. Si no se provee, se usa el spinner por defecto |
237
+ | `animated` | `boolean` | `true` | Habilita animación de entrada/salida |
238
+ | `preventBodyScroll` | `boolean` | `true` | Bloquea el scroll del body |
217
239
  | `zIndexLevel` | `number` | `100` | Nivel de z-index |
240
+ | `className` | `string` | — | Clases adicionales |
241
+
242
+ ---
243
+
244
+ ### ModalLoadingPercentage
245
+
246
+ Modal de carga con barra de progreso y porcentaje.
247
+
248
+ ```tsx
249
+ import { ModalLoadingPercentage } from "@votodigital-onpeui/react";
250
+
251
+ <ModalLoadingPercentage
252
+ isOpen={isOpen}
253
+ message="Importando padrón electoral"
254
+ percentage={progress}
255
+ />
256
+ ```
257
+
258
+ #### Props
259
+
260
+ | Prop | Tipo | Default | Descripción |
261
+ |------|------|---------|-------------|
262
+ | `isOpen` | `boolean` | — | **(requerido)** |
263
+ | `message` | `string` | — | **(requerido)** Texto que aparece sobre la barra de progreso |
264
+ | `percentage` | `number` | — | **(requerido)** Valor entre 0 y 100. Se clampea automáticamente |
265
+ | `alignTop` | `boolean` | `false` | Alinea el modal al tope de la pantalla en vez de al centro |
266
+ | `animated` | `boolean` | `true` | Habilita animación de entrada/salida |
267
+ | `preventBodyScroll` | `boolean` | `true` | Bloquea el scroll del body |
268
+ | `zIndexLevel` | `number` | `300` | Nivel de z-index |
269
+
270
+ ---
271
+
272
+ ### ModalGlobalProvider
273
+
274
+ Proveedor centralizado que gestiona los tres modales (ModalConfirm, ModalLoading, ModalLoadingPercentage) desde cualquier parte de la app sin props drilling. Usa Zustand internamente.
275
+
276
+ #### Setup
277
+
278
+ Envuelve tu app una sola vez:
279
+
280
+ ```tsx
281
+ import { ModalGlobalProvider } from "@votodigital-onpeui/react";
282
+
283
+ function App() {
284
+ return (
285
+ <ModalGlobalProvider>
286
+ <Router />
287
+ </ModalGlobalProvider>
288
+ );
289
+ }
290
+ ```
291
+
292
+ #### Usar el modal de confirmación
293
+
294
+ ```tsx
295
+ import { useModalGlobalStore } from "@votodigital-onpeui/react";
296
+
297
+ function MiComponente() {
298
+ const { openModal, openModalWithClose } = useModalGlobalStore();
299
+
300
+ const handleEliminar = async () => {
301
+ // Retorna true (confirmar) o false (cancelar)
302
+ const confirmed = await openModal({
303
+ type: "warning",
304
+ title: "¿Estás seguro?",
305
+ message: "Esta acción no se puede deshacer.",
306
+ buttonMode: "double",
307
+ color: "red",
308
+ textButtonConfirm: "Eliminar",
309
+ });
310
+
311
+ if (confirmed) {
312
+ // lógica de eliminación
313
+ }
314
+ };
315
+
316
+ const handleConX = async () => {
317
+ // Retorna 'confirm' | 'cancel' | 'close'
318
+ const result = await openModalWithClose({
319
+ type: "info",
320
+ title: "Aviso",
321
+ message: "Revisa los datos antes de continuar.",
322
+ buttonMode: "single",
323
+ });
324
+ };
325
+ }
326
+ ```
327
+
328
+ #### Usar el modal de loading
329
+
330
+ ```tsx
331
+ import { useModalLoadingStore } from "@votodigital-onpeui/react";
332
+
333
+ function MiComponente() {
334
+ const { openLoading, closeLoading } = useModalLoadingStore();
335
+
336
+ const handleGuardar = async () => {
337
+ const sessionId = openLoading("Guardando...");
338
+ try {
339
+ await guardarDatos();
340
+ } finally {
341
+ closeLoading(sessionId);
342
+ }
343
+ };
344
+ }
345
+ ```
346
+
347
+ #### Usar el modal de loading con porcentaje
348
+
349
+ ```tsx
350
+ import { useModalLoadingPercentageStore } from "@votodigital-onpeui/react";
351
+
352
+ function MiComponente() {
353
+ const { openLoadingPercentage, updatePercentage, closeLoadingPercentage } =
354
+ useModalLoadingPercentageStore();
355
+
356
+ const handleImportar = async () => {
357
+ const sessionId = openLoadingPercentage("Importando padrón", 0);
358
+ for (let i = 0; i <= 100; i += 10) {
359
+ await procesarLote(i);
360
+ updatePercentage(i, sessionId);
361
+ }
362
+ closeLoadingPercentage(sessionId);
363
+ };
364
+ }
365
+ ```
366
+
367
+ > **Nota sobre sessionId:** `openLoading`, `openLoadingPercentage` retornan un `sessionId`. Pasarlo a `closeLoading` / `closeLoadingPercentage` evita que una llamada tardía cierre un loading abierto por otra operación posterior.
368
+
369
+ #### Props de ModalGlobalProvider
370
+
371
+ | Prop | Tipo | Default | Descripción |
372
+ |------|------|---------|-------------|
373
+ | `children` | `ReactNode` | — | **(requerido)** |
374
+ | `zIndexLevel` | `number` | `200` | z-index del ModalConfirm |
375
+ | `zIndexLoading` | `number` | `300` | z-index del ModalLoading |
376
+ | `zIndexLoadingPercentage` | `number` | `300` | z-index del ModalLoadingPercentage |
377
+ | `animated` | `boolean` | `true` | Animación en todos los modales |
378
+ | `preventBodyScroll` | `boolean` | `true` | Scroll lock en todos los modales |
379
+ | `loadingSpinner` | `ReactNode` | — | Spinner personalizado para ModalLoading |
380
+ | `loadingPercentageAlignTop` | `boolean` | `false` | Alinea el ModalLoadingPercentage al tope |
381
+ | `defaultTextButtonConfirm` | `string` | — | Texto por defecto del botón confirmar |
382
+ | `defaultTextButtonCancel` | `string` | — | Texto por defecto del botón cancelar |
383
+ | `disableFocus` | `boolean` | `false` | Deshabilita el manejo de focus en todos los modales |
218
384
 
219
385
  ---
220
386
 
@@ -495,12 +661,18 @@ Modal
495
661
  ├── Portal
496
662
  └── IconCloseRadius
497
663
 
498
- ModalConfirm → Modal
499
- ModalLoading → Modal
664
+ ModalConfirm → Modal
665
+ ModalLoading → Modal
666
+ ModalLoadingPercentage → Modal
500
667
  ModalBrowserIncompatible → Modal + IconWarning + IconChromeColor + IconSafariColor + IconEdgeColor
501
668
  ModalSystemIncompatible → Modal + IconWarning + IconWindow + IconAndroid + IconApple
502
- ModalDnieVersions → Modal
503
- ModalNfc → Modal + IconAndroid + IconApple
669
+ ModalDnieVersions → Modal
670
+ ModalNfc → Modal + IconAndroid + IconApple
671
+
672
+ ModalGlobalProvider → ModalConfirm + ModalLoading + ModalLoadingPercentage
673
+ useModalGlobalStore (Zustand) — openModal, openModalWithClose
674
+ useModalLoadingStore (Zustand) — openLoading, closeLoading
675
+ useModalLoadingPercentageStore (Zustand) — openLoadingPercentage, updatePercentage, closeLoadingPercentage
504
676
 
505
677
  Footer → BrowserRecommended + iconos de redes sociales
506
678
  NotRecommended → IconWarningNotRecommended + IconCloseRadius
@@ -1,5 +1,5 @@
1
1
  import { IconChrome, IconSafari, IconEdge, FaceBookIcon, XIcon, TikTokIcon, InstagramIcon, YoutubeIcon, IconWarning, IconChromeColor, IconSafariColor, IconEdgeColor, IconWindow, IconAndroid, IconApple, IconWarningNotRecommended } from './chunk-WMTOTUKK.mjs';
2
- import { Modal } from './chunk-RIILZBD5.mjs';
2
+ import { Modal } from './chunk-RL3RQN4O.mjs';
3
3
  import { IconCloseRadius } from './chunk-J4MV4J6H.mjs';
4
4
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
5
5
  import { useState } from 'react';
@@ -592,5 +592,5 @@ var ModalNfc = ({
592
592
  };
593
593
 
594
594
  export { BrowserRecommended, Footer, ModalBrowserIncompatible, ModalDnieVersions, ModalNfc, ModalSystemIncompatible, NotRecommended, Overlay, Show };
595
- //# sourceMappingURL=chunk-PYHXDWTI.mjs.map
596
- //# sourceMappingURL=chunk-PYHXDWTI.mjs.map
595
+ //# sourceMappingURL=chunk-7WO2CKUD.mjs.map
596
+ //# sourceMappingURL=chunk-7WO2CKUD.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/BrowserRecommended/BrowserRecommended.tsx","../src/components/Footer/Footer.tsx","../src/components/Overlay/Overlay.tsx","../src/components/Show/Show.tsx","../src/components/ErrorHandling/ModalBrowserIncompatible/ModalBrowserIncompatible.tsx","../src/components/ErrorHandling/ModalSystemIncompatible/ModalSystemIncompatible.tsx","../src/components/ErrorHandling/NotRecommended/NotRecommended.tsx","../src/components/Feedback/ModalDnieVersions/ModalDnieVersions.tsx","../src/components/Feedback/ModalNfc/ModalNfc.tsx"],"names":["jsxs","jsx","Fragment"],"mappings":"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","file":"chunk-PYHXDWTI.mjs","sourcesContent":["import { IconChrome } from \"../../icons/Browsers/IconChrome\";\nimport { IconSafari } from \"../../icons/Browsers/IconSafari\";\nimport { IconEdge } from \"../../icons/Browsers/IconEdge\";\n\nexport const BrowserRecommended = () => {\n return (\n <div className=\"flex flex-col lg:flex-row lg:py-2 items-center justify-center gap-6 py-3 pb-6 text-xs text-center text-onpe-blue bg-onpe-skyblue-light/15\">\n <p>Navegadores recomendados:</p>\n <ul className=\"flex gap-6 lg:gap-8\">\n <li className=\"flex items-center gap-2\">\n <IconChrome aria-hidden=\"true\" />\n <span className=\"sr-only\">Google Chrome</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Google Chrome\n </p>\n </li>\n <li className=\"flex items-center gap-2\">\n <IconSafari aria-hidden=\"true\" />\n <span className=\"sr-only\">Safari</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Safari\n </p>\n </li>\n <li className=\"flex items-center gap-2\">\n <IconEdge aria-hidden=\"true\" />\n <span className=\"sr-only\">Microsoft Edge</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Microsoft Edge\n </p>\n </li>\n </ul>\n </div>\n );\n};\n\nexport default BrowserRecommended;\n","import { HTMLAttributes, ReactNode } from \"react\";\nimport { BrowserRecommended } from \"../BrowserRecommended/BrowserRecommended\";\nimport { FaceBookIcon } from \"../../icons/Redes/FaceBookIcon\";\nimport { XIcon } from \"../../icons/Redes/XIcon\";\nimport { TikTokIcon } from \"../../icons/Redes/TikTokIcon\";\nimport { YoutubeIcon } from \"../../icons/Redes/YoutubeIcon\";\nimport { InstagramIcon } from \"../../icons/Redes/InstagramIcon\";\n\nexport interface FooterProps extends HTMLAttributes<HTMLDivElement> {\n showBrowserInfo?: boolean;\n showContactInfo?: boolean;\n children?: ReactNode;\n isDevelopment?: boolean;\n showFooterContent?: boolean;\n}\n\nexport const Footer = ({\n showBrowserInfo = true,\n showContactInfo = true,\n children,\n showFooterContent = true,\n isDevelopment = true,\n ...props\n}: FooterProps) => {\n return (\n <footer {...props} tabIndex={0} aria-label=\"\">\n {showFooterContent && (\n <>\n {children && children}\n\n {showBrowserInfo && <BrowserRecommended />}\n {showContactInfo && (\n <div className=\"relative z-10 flex w-full min-h-[100px] bg-onpe-blue\">\n <div className=\"flex justify-between items-start w-full flex-col gap-6 mx-auto py-14 px-4 max-w-[1460px] md:py-5 md:px-4 lg:flex-row lg:items-center\">\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">Oficina central</span>\n <span aria-hidden=\"true\">Oficina central:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\" lang=\"es-PE\">\n Dirección: jiroon Washington 1894, Cercado de Lima\n </span>\n <span aria-hidden=\"true\">\n Jr. Washington 1894, Cercado de Lima\n </span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Horario de atención: Lunes a viernes de 8:30 a. m. a 5:00\n p. m.\n </span>\n <span aria-hidden=\"true\">\n Lunes a viernes de 8:30 a. m. a 5:00 p. m.\n </span>\n </p>\n </div>\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">Contáctanos</span>\n <span aria-hidden=\"true\">Contáctanos:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Correo electrónico, informes@onpe punto goob punto pe,\n </span>\n <span aria-hidden=\"true\">informes@onpe.gob.pe</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Número telefónico, (01)4170630,\n </span>\n <span aria-hidden=\"true\">(01)4170630</span>\n </p>\n </div>\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">\n Síguenos en nuestras redes sociales\n </span>\n <span aria-hidden=\"true\">Síguenos:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white gap-4\">\n <a\n href=\"https://www.facebook.com/ONPEoficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Facebook de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <FaceBookIcon />\n </span>\n </a>\n <a\n href=\"https://x.com/ONPE_oficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"X de ONPE (antes Twitter),\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <XIcon />\n </span>\n </a>\n <a\n href=\"https://www.tiktok.com/@onpe_oficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"TikTok de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <TikTokIcon />\n </span>\n </a>\n <a\n href=\"https://www.instagram.com/ONPE_oficial/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Instagram de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <InstagramIcon />\n </span>\n </a>\n <a\n href=\"https://www.youtube.com/@onpeprensa\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"YouTube de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <YoutubeIcon />\n </span>\n </a>\n </p>\n </div>\n </div>\n </div>\n )}\n </>\n )}\n\n {isDevelopment && (\n <div className=\"h-[93px] w-full text-center flex items-center justify-center bg-onpe-yellow-light/75 fixed z-10 right-0 bottom-0 lg:h-[46px]\">\n <p className=\"py-2 px-2 text-2xl text-onpe-blue font-[Consolas,monospace] font-black\">\n Versión en Desarrollo - No Oficial\n </p>\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;\n","type OverlayColor =\n | \"blue\"\n | \"skyblue\"\n | \"skyblue-light\"\n | \"yellow\"\n | \"light-skyblue\"\n | \"gray\"\n | \"gray-light\"\n | \"gray-extra-light\"\n | \"red\"\n | \"dark-gray\"\n | \"green\"\n | \"yellow-light\"\n | \"primary\";\n\nexport interface OverlayProps {\n show?: boolean;\n onClick?: () => void;\n color?: OverlayColor;\n}\n\nconst colorClasses: Record<OverlayColor, string> = {\n blue: \"bg-onpe-blue/80\",\n skyblue: \"bg-onpe-skyblue/80\",\n \"skyblue-light\": \"bg-onpe-skyblue-light/80\",\n yellow: \"bg-onpe-yellow/80\",\n \"light-skyblue\": \"bg-onpe-light-skyblue/80\",\n gray: \"bg-onpe-gray/80\",\n \"gray-light\": \"bg-onpe-gray-light/80\",\n \"gray-extra-light\": \"bg-onpe-gray-extra-light/80\",\n red: \"bg-onpe-red/80\",\n \"dark-gray\": \"bg-onpe-dark-gray/80\",\n green: \"bg-onpe-green/80\",\n \"yellow-light\": \"bg-onpe-yellow-light/80\",\n primary: \"bg-onpe-blue/80\",\n};\n\nexport const Overlay = ({ show, onClick, color = \"blue\" }: OverlayProps) => {\n return (\n <div\n onClick={onClick}\n className={[\n \"absolute inset-0 w-full h-screen z-10 transition-all duration-500\",\n show ? \"pointer-events-auto opacity-100\" : \"pointer-events-none opacity-0\",\n colorClasses[color],\n ].join(\" \")}\n />\n );\n};\n\nexport default Overlay;\n","import { ReactNode } from \"react\";\n\nexport interface ShowProps {\n condition: boolean;\n loadingComponent: ReactNode;\n children: ReactNode;\n}\n\nexport const Show = ({ condition, loadingComponent, children }: ShowProps) => {\n return (\n <>\n {condition && loadingComponent}\n {!condition && children}\n </>\n );\n};\n\nexport default Show;\n","import { Modal } from \"../../Modal/Modal\";\nimport { IconWarning } from \"../../../icons/Actions/IconWarning\";\nimport { IconChromeColor } from \"../../../icons/Browsers/IconChromeColor\";\nimport { IconSafariColor } from \"../../../icons/Browsers/IconSafariColor\";\nimport { IconEdgeColor } from \"../../../icons/Browsers/IconEdgeColor\";\n\nexport interface ModalBrowserIncompatibleProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n zIndexLevel?: number;\n}\n\nexport const ModalBrowserIncompatible = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n zIndexLevel = 100,\n}: ModalBrowserIncompatibleProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[25px] px-4 pb-[50px] md:pt-[35px] md:px-8 md:pb-[54px] max-w-[680px]! ${className}`}\n closeButton={true}\n >\n <div className=\"flex items-center justify-center\">\n <IconWarning\n className=\"w-16 h-16 sm:w-[84px] sm:h-[84px] text-onpe-skyblue\"\n role=\"presentation\"\n />\n </div>\n\n <p className=\"mt-1 text-base sm:text-2xl font-semibold text-center text-onpe-skyblue\">\n Estás usando un navegador no recomendado\n </p>\n\n <p className=\"mt-6 text-base sm:text-lg text-center sm:px-2\">\n Para una mejor experiencia y mayor seguridad, debes ingresar con los\n siguientes navegadores:\n </p>\n\n <div className=\"flex items-center justify-center gap-8 mt-[47px] sm:gap-12\">\n <IconChromeColor\n role=\"img\"\n aria-label=\"Google Chrome\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n <IconSafariColor\n role=\"img\"\n aria-label=\"Safari\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n <IconEdgeColor\n role=\"img\"\n aria-label=\"Microsoft Edge\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalBrowserIncompatible;\n","import { Modal } from \"../../Modal/Modal\";\nimport { IconWarning } from \"../../../icons/Actions/IconWarning\";\nimport { IconWindow } from \"../../../icons/OperatingSystems/IconWindow\";\nimport { IconAndroid } from \"../../../icons/OperatingSystems/IconAndroid\";\nimport { IconApple } from \"../../../icons/OperatingSystems/IconApple\";\n\nexport interface ModalSystemIncompatibleProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n zIndexLevel?: number;\n}\n\nexport const ModalSystemIncompatible = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n zIndexLevel = 1000,\n}: ModalSystemIncompatibleProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[25px] px-4 pb-[50px] md:pt-[35px] md:px-8 md:pb-[54px] max-w-[680px]! ${className}`}\n closeButton={true}\n closeDisabled\n >\n <div className=\"flex items-center justify-center\">\n <IconWarning\n className=\"w-16 h-16 sm:w-[84px] sm:h-[84px] text-onpe-skyblue\"\n role=\"presentation\"\n />\n </div>\n\n <p className=\"mt-1 text-base sm:text-2xl font-semibold text-center text-onpe-skyblue\">\n Sistema Operativo no recomendado\n </p>\n\n <p className=\"mt-6 text-base sm:text-lg text-center sm:px-2\">\n Para descargar e instalar el ONPEID utiliza un dispositivo con sistema\n operativo Windows, macOS, Android o iOS.\n </p>\n\n <div className=\"flex items-center justify-center gap-8 mt-[47px] sm:gap-12\">\n <IconWindow\n role=\"img\"\n aria-label=\"Windows 10 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n <IconAndroid\n role=\"img\"\n aria-label=\"Android 7.0 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n <IconApple\n role=\"img\"\n aria-label=\"macOS 10.12 o superior / iOS 11.0 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalSystemIncompatible;\n","import { useState } from \"react\";\nimport { IconWarningNotRecommended } from \"../../../icons/Actions/IconWarningNotRecommended\";\nimport { IconCloseRadius } from \"../../../icons/Actions/IconCloseRadius\";\n\nexport interface NotRecommendedProps {\n isOpenBrowserError?: boolean;\n isOpenDeviceError?: boolean;\n bottom?: number | string;\n right?: number | string;\n}\n\nexport const NotRecommended = ({\n isOpenBrowserError = false,\n isOpenDeviceError = false,\n bottom = 40,\n right = 20,\n}: NotRecommendedProps) => {\n const [isWarningClosed, setIsWarningClosed] = useState(false);\n\n const handleOpenWarning = () => setIsWarningClosed(false);\n const handleCloseWarning = () => setIsWarningClosed(true);\n\n const getContainerWidth = () => {\n if (isWarningClosed) return \"60px\";\n if (isOpenDeviceError) return \"365px\";\n return \"315px\";\n };\n\n const getMessageWidth = () => {\n if (isWarningClosed) return \"0\";\n if (isOpenDeviceError) return \"335px\";\n return \"285px\";\n };\n\n const getBottomValue = () =>\n typeof bottom === \"string\" ? bottom : `${bottom}px`;\n\n const getRightValue = () =>\n typeof right === \"string\" ? right : `${right}px`;\n\n return (\n <div\n className=\"fixed z-[99]\"\n style={{ bottom: getBottomValue(), right: getRightValue() }}\n >\n <div\n className=\"relative h-[75px] transition-all duration-300\"\n style={{ width: getContainerWidth() }}\n >\n {/* Warning icon */}\n {isWarningClosed ? (\n <button\n onClick={handleOpenWarning}\n className=\"absolute left-0 top-0 pb-2 h-[60px] w-[60px] flex items-center justify-center bg-onpe-yellow rounded-full z-10 cursor-pointer border-none transition-transform duration-200 hover:scale-110\"\n aria-label=\"Abrir advertencia\"\n type=\"button\"\n >\n <IconWarningNotRecommended className=\"w-10 h-[35px] text-black\" />\n </button>\n ) : (\n <div className=\"absolute left-0 top-0 pb-2 h-[60px] w-[60px] flex items-center justify-center bg-onpe-yellow rounded-full z-10\">\n <IconWarningNotRecommended className=\"w-10 h-[35px] text-black\" />\n </div>\n )}\n\n {/* Message */}\n <div\n className={[\n \"absolute bg-white left-[30px] top-0 flex flex-col justify-center items-center gap-2\",\n \"border-2 border-onpe-yellow rounded-[10px] h-[60px] text-sm\",\n \"transition-all duration-300 overflow-hidden\",\n isWarningClosed ? \"opacity-0 border-0 pointer-events-none\" : \"opacity-100\",\n ].join(\" \")}\n style={{ width: getMessageWidth() }}\n >\n <div className=\"whitespace-nowrap pl-6\">\n <p className=\"font-bold text-onpe-yellow m-0\">Estás usando un</p>\n {isOpenDeviceError && (\n <p className=\"m-0 text-onpe-dark-gray\">\n sistema operativo no recomendado\n </p>\n )}\n {isOpenBrowserError && !isOpenDeviceError && (\n <p className=\"m-0 text-onpe-dark-gray\">navegador no recomendado</p>\n )}\n </div>\n </div>\n\n {/* Close button */}\n {!isWarningClosed && (\n <button\n onClick={handleCloseWarning}\n className=\"absolute -top-2 -right-2 z-20 rounded-full cursor-pointer border-none bg-transparent p-0 transition-opacity duration-200 hover:opacity-80\"\n aria-label=\"Cerrar advertencia\"\n type=\"button\"\n >\n <IconCloseRadius className=\"w-[23px] h-[23px] text-onpe-yellow bg-white rounded-full\" />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default NotRecommended;\n","import { ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\n\nexport interface ModalDnieVersionsProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n iconDnie1: ReactNode;\n iconDnie2: ReactNode;\n iconDnie3?: ReactNode;\n zIndexLevel?: number;\n}\n\nexport const ModalDnieVersions = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n iconDnie1,\n iconDnie2,\n iconDnie3,\n zIndexLevel = 100,\n}: ModalDnieVersionsProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white max-w-[590px]! pt-[30px] pb-[38px] md:pt-[35px] px-4 md:pb-[54px] md:px-8 ${className}`}\n closeButton={true}\n >\n <h2\n className=\"text-center text-onpe-blue font-bold mb-2 text-lg sm:text-xl\"\n tabIndex={0}\n >\n <span className=\"sr-only\">Versiones del DNI electrónico</span>\n <span aria-hidden=\"true\">Versiones del DNIe</span>\n </h2>\n\n <section className=\"flex flex-col gap-5 sm:gap-8 items-center mt-[18px] sm:mt-6 text-sm\">\n {/* DNIe versión 1 */}\n <article className=\"flex flex-col sm:flex-row items-center sm:items-start gap-10 w-full\">\n <div className=\"w-[233px]\">\n <p className=\"flex-1 mb-4\" tabIndex={0}>\n <span className=\"font-bold\">\n <span className=\"sr-only\">DNI electrónico versión 1</span>\n <span aria-hidden=\"true\">DNIe versión 1</span>\n </span>\n </p>\n <ul\n role=\"none\"\n className=\"text-sm list-disc text-justify self-start pl-8\"\n >\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Chip en la parte delantera del DNI electrónico.\n </span>\n <span aria-hidden=\"true\">\n Chip en la parte delantera del DNIe.\n </span>\n </p>\n </li>\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Compatible solo con el lector del DNI electrónico en PC, Mac\n o laptop.\n </span>\n <span aria-hidden=\"true\">\n Compatible solo con el lector del DNIe en{\" \"}\n <strong>PC, Mac o laptop</strong>.\n </span>\n </p>\n </li>\n </ul>\n </div>\n <div className=\"w-[240px] sm:w-[200px] relative flex justify-center\">\n {iconDnie1}\n </div>\n </article>\n\n {/* DNIe versión 2 y 3 */}\n <article className=\"flex flex-col sm:flex-row items-center sm:items-start gap-10 sm:gap-[52px] w-full\">\n <div className=\"w-[233px]\">\n <p className=\"flex-1 mb-4\" tabIndex={0}>\n <span className=\"font-bold\">\n <span className=\"sr-only\">DNI electrónico versión 2 y 3</span>\n <span aria-hidden=\"true\">DNIe versión 2 y 3</span>\n </span>\n </p>\n <ul\n role=\"none\"\n className=\"text-sm list-disc text-justify self-start pl-8\"\n >\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Chip en la parte posterior del DNI electrónico.\n </span>\n <span aria-hidden=\"true\">\n Chip en la parte posterior del DNIe.\n </span>\n </p>\n </li>\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Compatibles con el lector del DNI electrónico en PC, Mac o\n laptop y tecnología NFC (ISO 14443-B) en móviles.\n </span>\n <span aria-hidden=\"true\">\n Compatibles con el lector del DNIe en{\" \"}\n <strong>\n {\" \"}\n PC, Mac o laptop y tecnología NFC (ISO 14443-B) en móviles\n </strong>\n .\n </span>\n </p>\n </li>\n </ul>\n </div>\n <div className=\"w-[240px] sm:w-[200px] h-[181px] relative\">\n {iconDnie2}\n {iconDnie3}\n </div>\n </article>\n </section>\n </Modal>\n );\n};\n\nexport default ModalDnieVersions;\n","import { ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\nimport { IconAndroid } from \"../../../icons/OperatingSystems/IconAndroid\";\nimport { IconApple } from \"../../../icons/OperatingSystems/IconApple\";\n\nexport interface ModalNfcProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n iconNfc1: ReactNode;\n iconNfc2: ReactNode;\n zIndexLevel?: number;\n}\n\nexport const ModalNfc = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n iconNfc1,\n iconNfc2,\n zIndexLevel = 100,\n}: ModalNfcProps) => {\n const ANDROID_VIDEO_URL = \"https://www.youtube.com/watch?v=qlVVC9JHSro\";\n const IPHONE_VIDEO_URL = \"https://www.youtube.com/watch?v=wjzh_FUVXRE\";\n\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white max-w-[600px]! pt-[46px] pb-[46px] px-[30px] md:px-[50px] md:pt-[35px] md:pb-[54px] ${className}`}\n closeButton={true}\n >\n <h2\n className=\"text-center text-onpe-blue font-bold text-base\"\n tabIndex={0}\n >\n ¿Cómo saber si tu dispositivo móvil tiene NFC?\n </h2>\n\n <section className=\"flex flex-col gap-6 items-center mt-8 text-sm w-full\">\n {/* Android section */}\n <div className=\"w-full\">\n <p className=\"text-sm text-justify mb-3\" tabIndex={0}>\n <span className=\"mr-1\">1.</span>\n Celular Android\n </p>\n <ul role=\"presentation\" className=\"list-disc pl-[26px] mt-2\">\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Desde la barra de notificaciones, simplemente deslizando hacia\n abajo desde tu pantalla y buscando el ícono del NFC.\n </li>\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Otra forma es ir hacia Ajustes\n <span aria-hidden=\"true\">{\" > \"}</span>Conexiones o Redes\n Inalámbricas<span aria-hidden=\"true\">{\" > \"}</span>Buscar\n &quot;NFC&quot;.\n </li>\n </ul>\n </div>\n\n {iconNfc1}\n\n {/* iPhone section */}\n <div className=\"w-full\">\n <p className=\"text-sm text-justify mb-3\" tabIndex={0}>\n <span className=\"mr-1\">2.</span>\n Celular iPhone\n </p>\n <ul role=\"presentation\" className=\"list-disc pl-[26px] mt-2\">\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Todos los modelos iPhone 7 en adelante ya cuentan con tecnología\n NFC activa.\n </li>\n </ul>\n </div>\n\n {iconNfc2}\n\n {/* How to use NFC */}\n <h2\n className=\"text-center text-onpe-blue font-bold my-5 text-base\"\n tabIndex={0}\n >\n ¿Cómo usar el NFC correctamente?\n </h2>\n\n <div className=\"pl-3 w-full\">\n <ol\n role=\"presentation\"\n className=\"text-sm text-justify list-decimal list-outside\"\n >\n <li role=\"presentation\" className=\"mb-2\">\n Activa el NFC en tu celular.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Busca en internet dónde está el lector NFC según tu modelo.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Coloca tu DNIe sobre esa zona hasta que recibas la confirmación\n del sistema.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Puedes consultar los videos &quot;Aprende como leer tu DNIe con\n NFC&quot;:\n </li>\n </ol>\n </div>\n\n {/* OS links */}\n <div className=\"flex flex-row gap-5 justify-center items-center\">\n <a\n className=\"text-onpe-skyblue flex flex-row gap-2.5 justify-center items-center no-underline cursor-pointer rounded-lg px-2.5 py-1.5 transition-colors duration-120 focus-visible:outline-2 focus-visible:outline-onpe-blue focus-visible:outline-offset-2\"\n href={ANDROID_VIDEO_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Ver video para Android en YouTube\"\n >\n <IconAndroid />\n Android\n </a>\n <a\n className=\"text-onpe-skyblue flex flex-row gap-2.5 justify-center items-center no-underline cursor-pointer rounded-lg px-2.5 py-1.5 transition-colors duration-120 focus-visible:outline-2 focus-visible:outline-onpe-blue focus-visible:outline-offset-2\"\n href={IPHONE_VIDEO_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Ver video para iPhone en YouTube\"\n >\n <IconApple />\n iPhone\n </a>\n </div>\n </section>\n </Modal>\n );\n};\n\nexport default ModalNfc;\n"]}
1
+ {"version":3,"sources":["../src/components/BrowserRecommended/BrowserRecommended.tsx","../src/components/Footer/Footer.tsx","../src/components/Overlay/Overlay.tsx","../src/components/Show/Show.tsx","../src/components/ErrorHandling/ModalBrowserIncompatible/ModalBrowserIncompatible.tsx","../src/components/ErrorHandling/ModalSystemIncompatible/ModalSystemIncompatible.tsx","../src/components/ErrorHandling/NotRecommended/NotRecommended.tsx","../src/components/Feedback/ModalDnieVersions/ModalDnieVersions.tsx","../src/components/Feedback/ModalNfc/ModalNfc.tsx"],"names":["jsxs","jsx","Fragment"],"mappings":"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","file":"chunk-7WO2CKUD.mjs","sourcesContent":["import { IconChrome } from \"../../icons/Browsers/IconChrome\";\nimport { IconSafari } from \"../../icons/Browsers/IconSafari\";\nimport { IconEdge } from \"../../icons/Browsers/IconEdge\";\n\nexport const BrowserRecommended = () => {\n return (\n <div className=\"flex flex-col lg:flex-row lg:py-2 items-center justify-center gap-6 py-3 pb-6 text-xs text-center text-onpe-blue bg-onpe-skyblue-light/15\">\n <p>Navegadores recomendados:</p>\n <ul className=\"flex gap-6 lg:gap-8\">\n <li className=\"flex items-center gap-2\">\n <IconChrome aria-hidden=\"true\" />\n <span className=\"sr-only\">Google Chrome</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Google Chrome\n </p>\n </li>\n <li className=\"flex items-center gap-2\">\n <IconSafari aria-hidden=\"true\" />\n <span className=\"sr-only\">Safari</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Safari\n </p>\n </li>\n <li className=\"flex items-center gap-2\">\n <IconEdge aria-hidden=\"true\" />\n <span className=\"sr-only\">Microsoft Edge</span>\n <p className=\"hidden md:block text-left\" aria-hidden=\"true\">\n Microsoft Edge\n </p>\n </li>\n </ul>\n </div>\n );\n};\n\nexport default BrowserRecommended;\n","import { HTMLAttributes, ReactNode } from \"react\";\nimport { BrowserRecommended } from \"../BrowserRecommended/BrowserRecommended\";\nimport { FaceBookIcon } from \"../../icons/Redes/FaceBookIcon\";\nimport { XIcon } from \"../../icons/Redes/XIcon\";\nimport { TikTokIcon } from \"../../icons/Redes/TikTokIcon\";\nimport { YoutubeIcon } from \"../../icons/Redes/YoutubeIcon\";\nimport { InstagramIcon } from \"../../icons/Redes/InstagramIcon\";\n\nexport interface FooterProps extends HTMLAttributes<HTMLDivElement> {\n showBrowserInfo?: boolean;\n showContactInfo?: boolean;\n children?: ReactNode;\n isDevelopment?: boolean;\n showFooterContent?: boolean;\n}\n\nexport const Footer = ({\n showBrowserInfo = true,\n showContactInfo = true,\n children,\n showFooterContent = true,\n isDevelopment = true,\n ...props\n}: FooterProps) => {\n return (\n <footer {...props} tabIndex={0} aria-label=\"\">\n {showFooterContent && (\n <>\n {children && children}\n\n {showBrowserInfo && <BrowserRecommended />}\n {showContactInfo && (\n <div className=\"relative z-10 flex w-full min-h-[100px] bg-onpe-blue\">\n <div className=\"flex justify-between items-start w-full flex-col gap-6 mx-auto py-14 px-4 max-w-[1460px] md:py-5 md:px-4 lg:flex-row lg:items-center\">\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">Oficina central</span>\n <span aria-hidden=\"true\">Oficina central:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\" lang=\"es-PE\">\n Dirección: jiroon Washington 1894, Cercado de Lima\n </span>\n <span aria-hidden=\"true\">\n Jr. Washington 1894, Cercado de Lima\n </span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Horario de atención: Lunes a viernes de 8:30 a. m. a 5:00\n p. m.\n </span>\n <span aria-hidden=\"true\">\n Lunes a viernes de 8:30 a. m. a 5:00 p. m.\n </span>\n </p>\n </div>\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">Contáctanos</span>\n <span aria-hidden=\"true\">Contáctanos:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Correo electrónico, informes@onpe punto goob punto pe,\n </span>\n <span aria-hidden=\"true\">informes@onpe.gob.pe</span>\n </p>\n <p className=\"flex text-sm font-medium text-white\">\n <span className=\"sr-only\">\n Número telefónico, (01)4170630,\n </span>\n <span aria-hidden=\"true\">(01)4170630</span>\n </p>\n </div>\n <div tabIndex={0}>\n <p className=\"font-semibold text-onpe-yellow mb-1\">\n <span className=\"sr-only\">\n Síguenos en nuestras redes sociales\n </span>\n <span aria-hidden=\"true\">Síguenos:</span>\n </p>\n <p className=\"flex text-sm font-medium text-white gap-4\">\n <a\n href=\"https://www.facebook.com/ONPEoficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Facebook de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <FaceBookIcon />\n </span>\n </a>\n <a\n href=\"https://x.com/ONPE_oficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"X de ONPE (antes Twitter),\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <XIcon />\n </span>\n </a>\n <a\n href=\"https://www.tiktok.com/@onpe_oficial\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"TikTok de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <TikTokIcon />\n </span>\n </a>\n <a\n href=\"https://www.instagram.com/ONPE_oficial/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Instagram de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <InstagramIcon />\n </span>\n </a>\n <a\n href=\"https://www.youtube.com/@onpeprensa\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"YouTube de ONPE,\"\n className=\"text-onpe-blue-dark\"\n >\n <span aria-hidden=\"true\">\n <YoutubeIcon />\n </span>\n </a>\n </p>\n </div>\n </div>\n </div>\n )}\n </>\n )}\n\n {isDevelopment && (\n <div className=\"h-[93px] w-full text-center flex items-center justify-center bg-onpe-yellow-light/75 fixed z-10 right-0 bottom-0 lg:h-[46px]\">\n <p className=\"py-2 px-2 text-2xl text-onpe-blue font-[Consolas,monospace] font-black\">\n Versión en Desarrollo - No Oficial\n </p>\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;\n","type OverlayColor =\n | \"blue\"\n | \"skyblue\"\n | \"skyblue-light\"\n | \"yellow\"\n | \"light-skyblue\"\n | \"gray\"\n | \"gray-light\"\n | \"gray-extra-light\"\n | \"red\"\n | \"dark-gray\"\n | \"green\"\n | \"yellow-light\"\n | \"primary\";\n\nexport interface OverlayProps {\n show?: boolean;\n onClick?: () => void;\n color?: OverlayColor;\n}\n\nconst colorClasses: Record<OverlayColor, string> = {\n blue: \"bg-onpe-blue/80\",\n skyblue: \"bg-onpe-skyblue/80\",\n \"skyblue-light\": \"bg-onpe-skyblue-light/80\",\n yellow: \"bg-onpe-yellow/80\",\n \"light-skyblue\": \"bg-onpe-light-skyblue/80\",\n gray: \"bg-onpe-gray/80\",\n \"gray-light\": \"bg-onpe-gray-light/80\",\n \"gray-extra-light\": \"bg-onpe-gray-extra-light/80\",\n red: \"bg-onpe-red/80\",\n \"dark-gray\": \"bg-onpe-dark-gray/80\",\n green: \"bg-onpe-green/80\",\n \"yellow-light\": \"bg-onpe-yellow-light/80\",\n primary: \"bg-onpe-blue/80\",\n};\n\nexport const Overlay = ({ show, onClick, color = \"blue\" }: OverlayProps) => {\n return (\n <div\n onClick={onClick}\n className={[\n \"absolute inset-0 w-full h-screen z-10 transition-all duration-500\",\n show ? \"pointer-events-auto opacity-100\" : \"pointer-events-none opacity-0\",\n colorClasses[color],\n ].join(\" \")}\n />\n );\n};\n\nexport default Overlay;\n","import { ReactNode } from \"react\";\n\nexport interface ShowProps {\n condition: boolean;\n loadingComponent: ReactNode;\n children: ReactNode;\n}\n\nexport const Show = ({ condition, loadingComponent, children }: ShowProps) => {\n return (\n <>\n {condition && loadingComponent}\n {!condition && children}\n </>\n );\n};\n\nexport default Show;\n","import { Modal } from \"../../Modal/Modal\";\nimport { IconWarning } from \"../../../icons/Actions/IconWarning\";\nimport { IconChromeColor } from \"../../../icons/Browsers/IconChromeColor\";\nimport { IconSafariColor } from \"../../../icons/Browsers/IconSafariColor\";\nimport { IconEdgeColor } from \"../../../icons/Browsers/IconEdgeColor\";\n\nexport interface ModalBrowserIncompatibleProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n zIndexLevel?: number;\n}\n\nexport const ModalBrowserIncompatible = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n zIndexLevel = 100,\n}: ModalBrowserIncompatibleProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[25px] px-4 pb-[50px] md:pt-[35px] md:px-8 md:pb-[54px] max-w-[680px]! ${className}`}\n closeButton={true}\n >\n <div className=\"flex items-center justify-center\">\n <IconWarning\n className=\"w-16 h-16 sm:w-[84px] sm:h-[84px] text-onpe-skyblue\"\n role=\"presentation\"\n />\n </div>\n\n <p className=\"mt-1 text-base sm:text-2xl font-semibold text-center text-onpe-skyblue\">\n Estás usando un navegador no recomendado\n </p>\n\n <p className=\"mt-6 text-base sm:text-lg text-center sm:px-2\">\n Para una mejor experiencia y mayor seguridad, debes ingresar con los\n siguientes navegadores:\n </p>\n\n <div className=\"flex items-center justify-center gap-8 mt-[47px] sm:gap-12\">\n <IconChromeColor\n role=\"img\"\n aria-label=\"Google Chrome\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n <IconSafariColor\n role=\"img\"\n aria-label=\"Safari\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n <IconEdgeColor\n role=\"img\"\n aria-label=\"Microsoft Edge\"\n className=\"w-7 h-7 sm:w-12 sm:h-12\"\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalBrowserIncompatible;\n","import { Modal } from \"../../Modal/Modal\";\nimport { IconWarning } from \"../../../icons/Actions/IconWarning\";\nimport { IconWindow } from \"../../../icons/OperatingSystems/IconWindow\";\nimport { IconAndroid } from \"../../../icons/OperatingSystems/IconAndroid\";\nimport { IconApple } from \"../../../icons/OperatingSystems/IconApple\";\n\nexport interface ModalSystemIncompatibleProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n zIndexLevel?: number;\n}\n\nexport const ModalSystemIncompatible = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n zIndexLevel = 1000,\n}: ModalSystemIncompatibleProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white pt-[25px] px-4 pb-[50px] md:pt-[35px] md:px-8 md:pb-[54px] max-w-[680px]! ${className}`}\n closeButton={true}\n closeDisabled\n >\n <div className=\"flex items-center justify-center\">\n <IconWarning\n className=\"w-16 h-16 sm:w-[84px] sm:h-[84px] text-onpe-skyblue\"\n role=\"presentation\"\n />\n </div>\n\n <p className=\"mt-1 text-base sm:text-2xl font-semibold text-center text-onpe-skyblue\">\n Sistema Operativo no recomendado\n </p>\n\n <p className=\"mt-6 text-base sm:text-lg text-center sm:px-2\">\n Para descargar e instalar el ONPEID utiliza un dispositivo con sistema\n operativo Windows, macOS, Android o iOS.\n </p>\n\n <div className=\"flex items-center justify-center gap-8 mt-[47px] sm:gap-12\">\n <IconWindow\n role=\"img\"\n aria-label=\"Windows 10 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n <IconAndroid\n role=\"img\"\n aria-label=\"Android 7.0 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n <IconApple\n role=\"img\"\n aria-label=\"macOS 10.12 o superior / iOS 11.0 o superior\"\n className=\"w-7 h-7 sm:w-12 sm:h-12 text-onpe-skyblue\"\n />\n </div>\n </Modal>\n );\n};\n\nexport default ModalSystemIncompatible;\n","import { useState } from \"react\";\nimport { IconWarningNotRecommended } from \"../../../icons/Actions/IconWarningNotRecommended\";\nimport { IconCloseRadius } from \"../../../icons/Actions/IconCloseRadius\";\n\nexport interface NotRecommendedProps {\n isOpenBrowserError?: boolean;\n isOpenDeviceError?: boolean;\n bottom?: number | string;\n right?: number | string;\n}\n\nexport const NotRecommended = ({\n isOpenBrowserError = false,\n isOpenDeviceError = false,\n bottom = 40,\n right = 20,\n}: NotRecommendedProps) => {\n const [isWarningClosed, setIsWarningClosed] = useState(false);\n\n const handleOpenWarning = () => setIsWarningClosed(false);\n const handleCloseWarning = () => setIsWarningClosed(true);\n\n const getContainerWidth = () => {\n if (isWarningClosed) return \"60px\";\n if (isOpenDeviceError) return \"365px\";\n return \"315px\";\n };\n\n const getMessageWidth = () => {\n if (isWarningClosed) return \"0\";\n if (isOpenDeviceError) return \"335px\";\n return \"285px\";\n };\n\n const getBottomValue = () =>\n typeof bottom === \"string\" ? bottom : `${bottom}px`;\n\n const getRightValue = () =>\n typeof right === \"string\" ? right : `${right}px`;\n\n return (\n <div\n className=\"fixed z-[99]\"\n style={{ bottom: getBottomValue(), right: getRightValue() }}\n >\n <div\n className=\"relative h-[75px] transition-all duration-300\"\n style={{ width: getContainerWidth() }}\n >\n {/* Warning icon */}\n {isWarningClosed ? (\n <button\n onClick={handleOpenWarning}\n className=\"absolute left-0 top-0 pb-2 h-[60px] w-[60px] flex items-center justify-center bg-onpe-yellow rounded-full z-10 cursor-pointer border-none transition-transform duration-200 hover:scale-110\"\n aria-label=\"Abrir advertencia\"\n type=\"button\"\n >\n <IconWarningNotRecommended className=\"w-10 h-[35px] text-black\" />\n </button>\n ) : (\n <div className=\"absolute left-0 top-0 pb-2 h-[60px] w-[60px] flex items-center justify-center bg-onpe-yellow rounded-full z-10\">\n <IconWarningNotRecommended className=\"w-10 h-[35px] text-black\" />\n </div>\n )}\n\n {/* Message */}\n <div\n className={[\n \"absolute bg-white left-[30px] top-0 flex flex-col justify-center items-center gap-2\",\n \"border-2 border-onpe-yellow rounded-[10px] h-[60px] text-sm\",\n \"transition-all duration-300 overflow-hidden\",\n isWarningClosed ? \"opacity-0 border-0 pointer-events-none\" : \"opacity-100\",\n ].join(\" \")}\n style={{ width: getMessageWidth() }}\n >\n <div className=\"whitespace-nowrap pl-6\">\n <p className=\"font-bold text-onpe-yellow m-0\">Estás usando un</p>\n {isOpenDeviceError && (\n <p className=\"m-0 text-onpe-dark-gray\">\n sistema operativo no recomendado\n </p>\n )}\n {isOpenBrowserError && !isOpenDeviceError && (\n <p className=\"m-0 text-onpe-dark-gray\">navegador no recomendado</p>\n )}\n </div>\n </div>\n\n {/* Close button */}\n {!isWarningClosed && (\n <button\n onClick={handleCloseWarning}\n className=\"absolute -top-2 -right-2 z-20 rounded-full cursor-pointer border-none bg-transparent p-0 transition-opacity duration-200 hover:opacity-80\"\n aria-label=\"Cerrar advertencia\"\n type=\"button\"\n >\n <IconCloseRadius className=\"w-[23px] h-[23px] text-onpe-yellow bg-white rounded-full\" />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default NotRecommended;\n","import { ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\n\nexport interface ModalDnieVersionsProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n iconDnie1: ReactNode;\n iconDnie2: ReactNode;\n iconDnie3?: ReactNode;\n zIndexLevel?: number;\n}\n\nexport const ModalDnieVersions = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n iconDnie1,\n iconDnie2,\n iconDnie3,\n zIndexLevel = 100,\n}: ModalDnieVersionsProps) => {\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white max-w-[590px]! pt-[30px] pb-[38px] md:pt-[35px] px-4 md:pb-[54px] md:px-8 ${className}`}\n closeButton={true}\n >\n <h2\n className=\"text-center text-onpe-blue font-bold mb-2 text-lg sm:text-xl\"\n tabIndex={0}\n >\n <span className=\"sr-only\">Versiones del DNI electrónico</span>\n <span aria-hidden=\"true\">Versiones del DNIe</span>\n </h2>\n\n <section className=\"flex flex-col gap-5 sm:gap-8 items-center mt-[18px] sm:mt-6 text-sm\">\n {/* DNIe versión 1 */}\n <article className=\"flex flex-col sm:flex-row items-center sm:items-start gap-10 w-full\">\n <div className=\"w-[233px]\">\n <p className=\"flex-1 mb-4\" tabIndex={0}>\n <span className=\"font-bold\">\n <span className=\"sr-only\">DNI electrónico versión 1</span>\n <span aria-hidden=\"true\">DNIe versión 1</span>\n </span>\n </p>\n <ul\n role=\"none\"\n className=\"text-sm list-disc text-justify self-start pl-8\"\n >\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Chip en la parte delantera del DNI electrónico.\n </span>\n <span aria-hidden=\"true\">\n Chip en la parte delantera del DNIe.\n </span>\n </p>\n </li>\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Compatible solo con el lector del DNI electrónico en PC, Mac\n o laptop.\n </span>\n <span aria-hidden=\"true\">\n Compatible solo con el lector del DNIe en{\" \"}\n <strong>PC, Mac o laptop</strong>.\n </span>\n </p>\n </li>\n </ul>\n </div>\n <div className=\"w-[240px] sm:w-[200px] relative flex justify-center\">\n {iconDnie1}\n </div>\n </article>\n\n {/* DNIe versión 2 y 3 */}\n <article className=\"flex flex-col sm:flex-row items-center sm:items-start gap-10 sm:gap-[52px] w-full\">\n <div className=\"w-[233px]\">\n <p className=\"flex-1 mb-4\" tabIndex={0}>\n <span className=\"font-bold\">\n <span className=\"sr-only\">DNI electrónico versión 2 y 3</span>\n <span aria-hidden=\"true\">DNIe versión 2 y 3</span>\n </span>\n </p>\n <ul\n role=\"none\"\n className=\"text-sm list-disc text-justify self-start pl-8\"\n >\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Chip en la parte posterior del DNI electrónico.\n </span>\n <span aria-hidden=\"true\">\n Chip en la parte posterior del DNIe.\n </span>\n </p>\n </li>\n <li role=\"none\" className=\"mb-2\">\n <p tabIndex={0}>\n <span className=\"sr-only\">\n Compatibles con el lector del DNI electrónico en PC, Mac o\n laptop y tecnología NFC (ISO 14443-B) en móviles.\n </span>\n <span aria-hidden=\"true\">\n Compatibles con el lector del DNIe en{\" \"}\n <strong>\n {\" \"}\n PC, Mac o laptop y tecnología NFC (ISO 14443-B) en móviles\n </strong>\n .\n </span>\n </p>\n </li>\n </ul>\n </div>\n <div className=\"w-[240px] sm:w-[200px] h-[181px] relative\">\n {iconDnie2}\n {iconDnie3}\n </div>\n </article>\n </section>\n </Modal>\n );\n};\n\nexport default ModalDnieVersions;\n","import { ReactNode } from \"react\";\nimport { Modal } from \"../../Modal/Modal\";\nimport { IconAndroid } from \"../../../icons/OperatingSystems/IconAndroid\";\nimport { IconApple } from \"../../../icons/OperatingSystems/IconApple\";\n\nexport interface ModalNfcProps {\n isOpen: boolean;\n onClose: () => void;\n className?: string;\n iconNfc1: ReactNode;\n iconNfc2: ReactNode;\n zIndexLevel?: number;\n}\n\nexport const ModalNfc = ({\n isOpen = false,\n onClose = () => {},\n className = \"\",\n iconNfc1,\n iconNfc2,\n zIndexLevel = 100,\n}: ModalNfcProps) => {\n const ANDROID_VIDEO_URL = \"https://www.youtube.com/watch?v=qlVVC9JHSro\";\n const IPHONE_VIDEO_URL = \"https://www.youtube.com/watch?v=wjzh_FUVXRE\";\n\n return (\n <Modal\n zIndexLevel={zIndexLevel}\n isOpen={isOpen}\n onClose={onClose}\n className={`bg-white max-w-[600px]! pt-[46px] pb-[46px] px-[30px] md:px-[50px] md:pt-[35px] md:pb-[54px] ${className}`}\n closeButton={true}\n >\n <h2\n className=\"text-center text-onpe-blue font-bold text-base\"\n tabIndex={0}\n >\n ¿Cómo saber si tu dispositivo móvil tiene NFC?\n </h2>\n\n <section className=\"flex flex-col gap-6 items-center mt-8 text-sm w-full\">\n {/* Android section */}\n <div className=\"w-full\">\n <p className=\"text-sm text-justify mb-3\" tabIndex={0}>\n <span className=\"mr-1\">1.</span>\n Celular Android\n </p>\n <ul role=\"presentation\" className=\"list-disc pl-[26px] mt-2\">\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Desde la barra de notificaciones, simplemente deslizando hacia\n abajo desde tu pantalla y buscando el ícono del NFC.\n </li>\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Otra forma es ir hacia Ajustes\n <span aria-hidden=\"true\">{\" > \"}</span>Conexiones o Redes\n Inalámbricas<span aria-hidden=\"true\">{\" > \"}</span>Buscar\n &quot;NFC&quot;.\n </li>\n </ul>\n </div>\n\n {iconNfc1}\n\n {/* iPhone section */}\n <div className=\"w-full\">\n <p className=\"text-sm text-justify mb-3\" tabIndex={0}>\n <span className=\"mr-1\">2.</span>\n Celular iPhone\n </p>\n <ul role=\"presentation\" className=\"list-disc pl-[26px] mt-2\">\n <li\n role=\"presentation\"\n className=\"text-sm text-left mb-2 tracking-[0.15px]\"\n >\n Todos los modelos iPhone 7 en adelante ya cuentan con tecnología\n NFC activa.\n </li>\n </ul>\n </div>\n\n {iconNfc2}\n\n {/* How to use NFC */}\n <h2\n className=\"text-center text-onpe-blue font-bold my-5 text-base\"\n tabIndex={0}\n >\n ¿Cómo usar el NFC correctamente?\n </h2>\n\n <div className=\"pl-3 w-full\">\n <ol\n role=\"presentation\"\n className=\"text-sm text-justify list-decimal list-outside\"\n >\n <li role=\"presentation\" className=\"mb-2\">\n Activa el NFC en tu celular.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Busca en internet dónde está el lector NFC según tu modelo.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Coloca tu DNIe sobre esa zona hasta que recibas la confirmación\n del sistema.\n </li>\n <li role=\"presentation\" className=\"mb-2\">\n Puedes consultar los videos &quot;Aprende como leer tu DNIe con\n NFC&quot;:\n </li>\n </ol>\n </div>\n\n {/* OS links */}\n <div className=\"flex flex-row gap-5 justify-center items-center\">\n <a\n className=\"text-onpe-skyblue flex flex-row gap-2.5 justify-center items-center no-underline cursor-pointer rounded-lg px-2.5 py-1.5 transition-colors duration-120 focus-visible:outline-2 focus-visible:outline-onpe-blue focus-visible:outline-offset-2\"\n href={ANDROID_VIDEO_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Ver video para Android en YouTube\"\n >\n <IconAndroid />\n Android\n </a>\n <a\n className=\"text-onpe-skyblue flex flex-row gap-2.5 justify-center items-center no-underline cursor-pointer rounded-lg px-2.5 py-1.5 transition-colors duration-120 focus-visible:outline-2 focus-visible:outline-onpe-blue focus-visible:outline-offset-2\"\n href={IPHONE_VIDEO_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Ver video para iPhone en YouTube\"\n >\n <IconApple />\n iPhone\n </a>\n </div>\n </section>\n </Modal>\n );\n};\n\nexport default ModalNfc;\n"]}
@@ -1,5 +1,5 @@
1
1
  import { IconSpinnerDesktop, IconSpinnerMobile, IconCheck, IconQuestion, IconInfo, IconWarningNotRecommended } from './chunk-WMTOTUKK.mjs';
2
- import { Modal } from './chunk-RIILZBD5.mjs';
2
+ import { Modal } from './chunk-RL3RQN4O.mjs';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import { useState, useEffect } from 'react';
5
5
 
@@ -294,5 +294,5 @@ var ModalLoading = ({
294
294
  };
295
295
 
296
296
  export { Button, ModalConfirm, ModalLoading };
297
- //# sourceMappingURL=chunk-DFOTZ4CC.mjs.map
298
- //# sourceMappingURL=chunk-DFOTZ4CC.mjs.map
297
+ //# sourceMappingURL=chunk-RFIMDKOY.mjs.map
298
+ //# sourceMappingURL=chunk-RFIMDKOY.mjs.map