{"_id":"@aldoivan10/vuetify-dialog","_rev":"6-4640ad9701719a7b0b56c0e292f5b77f","name":"@aldoivan10/vuetify-dialog","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"@aldoivan10/vuetify-dialog","version":"1.0.0","keywords":["vue 3","vue","vuetify","dialog","plugin","composable"],"author":{"name":"Aldoivan10"},"license":"MIT","_id":"@aldoivan10/vuetify-dialog@1.0.0","maintainers":[{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"}],"homepage":"https://github.com/Aldoivan10/vuetify-dialog#readme","bugs":{"url":"https://github.com/Aldoivan10/vuetify-dialog/issues"},"dist":{"shasum":"6228a4c20b2620016d918ad733adf97f0f5a72c1","tarball":"https://registry.npmjs.org/@aldoivan10/vuetify-dialog/-/vuetify-dialog-1.0.0.tgz","fileCount":19,"integrity":"sha512-EImJEorXCFTo+8sIheAiA+av6wKCgdiTv2olol4/j5Hby5nnceZqw5Gyn7PC2PcD2rxXE3Zy+j4W5hL8W8Mk/w==","signatures":[{"sig":"MEYCIQCIEjEpWO/Fc/pgVU8U+qquOx+wiB0j3tiCSTj6lDPPQwIhAKBh9kPk5+OdbrKiIHO5HMhogDK2n8ivziH+oBbgO+Tm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43920},"type":"module","exports":{".":{"types":"./dist/plugin/dialog.plugin.d.ts","import":"./dist/plugin/dialog.plugin.js"},"./composable":{"types":"./dist/composable/dialog.use.d.ts","import":"./dist/composable/dialog.use.js"}},"gitHead":"05b67987fe008fd2a3d4afad1fe3c2dc023e3a4a","scripts":{"dev":"vite","build":"pkgroll --minify --clean-dist --config"},"_npmUser":{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"},"repository":{"url":"git+https://github.com/Aldoivan10/vuetify-dialog.git","type":"git"},"_npmVersion":"11.0.0","description":"Plugin to use dialogs from vuetify programatically","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vue":"^3.5.13","vite":"^6.0.7","pinia":"^2.3.0","pkgroll":"^2.6.1","vuetify":"^3.7.6","@mdi/font":"^7.4.47","typescript":"^5.7.3","@types/node":"^22.10.7","highlight.js":"^11.11.1","@vue/tsconfig":"^0.7.0","@vitejs/plugin-vue":"^5.2.1","@aldoivan10/v-shortcut":"^1.0.2","@highlightjs/vue-plugin":"^2.1.0"},"peerDependencies":{"vue":"^3.5.13","vuetify":"^3.7.6"},"_npmOperationalInternal":{"tmp":"tmp/vuetify-dialog_1.0.0_1737910640531_0.20448546659888733","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aldoivan10/vuetify-dialog","version":"1.0.1","keywords":["vue 3","vue","vuetify","dialog","plugin","composable"],"author":{"name":"Aldoivan10"},"license":"MIT","_id":"@aldoivan10/vuetify-dialog@1.0.1","maintainers":[{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"}],"homepage":"https://github.com/Aldoivan10/vuetify-dialog#readme","bugs":{"url":"https://github.com/Aldoivan10/vuetify-dialog/issues"},"dist":{"shasum":"40c0e9ff8d2910a2af85ec23bff61a73f98df2e7","tarball":"https://registry.npmjs.org/@aldoivan10/vuetify-dialog/-/vuetify-dialog-1.0.1.tgz","fileCount":19,"integrity":"sha512-dyaD/V223nk1YXulQRKLqchKu+gGQQkQdR0Bd2JVANcfiMyfwzdGIn0hUD67Ge4OfseUugArTW5XOszvjeqXtQ==","signatures":[{"sig":"MEUCIQC3dttEIvpnRszbExWU5sTLeBTMC3m28DIIHciFkwpxZAIgJd7zp51AAtHFWspGVqK1eu1ACaEGg6GFU9UFe7AOZwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44190},"type":"module","exports":{".":{"types":"./dist/plugin/dialog.plugin.d.ts","import":"./dist/plugin/dialog.plugin.js"},"./composable":{"types":"./dist/composable/dialog.use.d.ts","import":"./dist/composable/dialog.use.js"}},"gitHead":"e33c38087c79a87802c58bf64f72fb71d49ba3d1","scripts":{"dev":"vite","build":"pkgroll --minify --clean-dist --config"},"_npmUser":{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"},"repository":{"url":"git+https://github.com/Aldoivan10/vuetify-dialog.git","type":"git"},"_npmVersion":"11.0.0","description":"Plugin to use dialogs from vuetify programatically","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vue":"^3.5.13","vite":"^6.0.7","pinia":"^2.3.0","pkgroll":"^2.6.1","vuetify":"^3.7.6","@mdi/font":"^7.4.47","typescript":"^5.7.3","@types/node":"^22.10.7","highlight.js":"^11.11.1","@vue/tsconfig":"^0.7.0","@vitejs/plugin-vue":"^5.2.1","@aldoivan10/v-shortcut":"^1.0.2","@highlightjs/vue-plugin":"^2.1.0"},"peerDependencies":{"vue":"^3.5.13","vuetify":"^3.7.6"},"_npmOperationalInternal":{"tmp":"tmp/vuetify-dialog_1.0.1_1737911426693_0.6827270774051899","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aldoivan10/vuetify-dialog","version":"1.0.2","keywords":["vue 3","vue","vuetify","dialog","plugin","composable"],"author":{"name":"Aldoivan10"},"license":"MIT","_id":"@aldoivan10/vuetify-dialog@1.0.2","maintainers":[{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"}],"homepage":"https://github.com/Aldoivan10/vuetify-dialog#readme","bugs":{"url":"https://github.com/Aldoivan10/vuetify-dialog/issues"},"dist":{"shasum":"d4ba849c117d148c8abae2885d626dcd3fe71b5e","tarball":"https://registry.npmjs.org/@aldoivan10/vuetify-dialog/-/vuetify-dialog-1.0.2.tgz","fileCount":19,"integrity":"sha512-SWnAoa2YOjIRLD3sp07dvlL3Z4tNO/6XTKYOTU8S1XG+azbluz6lRLM6xR6LHb1ZKKlejz+EDE36gG6D/apEtw==","signatures":[{"sig":"MEUCIGh45xxMXUgFjQDMlLbATCUE0gWv1ouNW6k1FUlzQ812AiEAqoYcNfRicjOqzo0F6x096OZx0PWfw9V/JqEGOGAahCc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44414},"type":"module","exports":{".":{"types":"./dist/plugin/dialog.plugin.d.ts","import":"./dist/plugin/dialog.plugin.js"},"./composable":{"types":"./dist/composable/dialog.use.d.ts","import":"./dist/composable/dialog.use.js"}},"gitHead":"3168295741632f57a8c880e865e3dd322e133f2c","scripts":{"dev":"vite","build":"pkgroll --minify --clean-dist --config"},"_npmUser":{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"},"repository":{"url":"git+https://github.com/Aldoivan10/vuetify-dialog.git","type":"git"},"_npmVersion":"11.0.0","description":"Plugin to use dialogs from vuetify programatically","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vue":"^3.5.13","vite":"^6.0.11","pinia":"^2.3.1","pkgroll":"^2.6.1","vuetify":"^3.7.7","@mdi/font":"^7.4.47","typescript":"^5.7.3","@types/node":"^22.12.0","highlight.js":"^11.11.1","@vue/tsconfig":"^0.7.0","@vitejs/plugin-vue":"^5.2.1","@aldoivan10/v-shortcut":"^1.0.3","@highlightjs/vue-plugin":"^2.1.0"},"peerDependencies":{"vue":"^3.5.13","vuetify":"^3.7.6"},"_npmOperationalInternal":{"tmp":"tmp/vuetify-dialog_1.0.2_1738124483066_0.8693769451871505","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aldoivan10/vuetify-dialog","version":"1.0.3","keywords":["vue 3","vue","vuetify","dialog","plugin","composable"],"author":{"name":"Aldoivan10"},"license":"MIT","_id":"@aldoivan10/vuetify-dialog@1.0.3","maintainers":[{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"}],"homepage":"https://github.com/Aldoivan10/vuetify-dialog#readme","bugs":{"url":"https://github.com/Aldoivan10/vuetify-dialog/issues"},"dist":{"shasum":"7ed59e37845acb641ba2f69e215feae6e60df71c","tarball":"https://registry.npmjs.org/@aldoivan10/vuetify-dialog/-/vuetify-dialog-1.0.3.tgz","fileCount":19,"integrity":"sha512-kex59Tg6NXjJEWM+xwRZpplWJ5luSe6F+saDXesSnSoBtFCQ9gdG5DF//BsIOADlFDtkf+hXH40sEeERA/05YQ==","signatures":[{"sig":"MEUCIQDumH2ODQGliVNAu1TarSIAy7zjgk72jcUtBkr6ofyhFAIgBs39vzaTvIuCpXEI2Xg8YfU71fKb9UkJZLvDtxwxz84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44546},"type":"module","exports":{".":{"types":"./dist/plugin/dialog.plugin.d.ts","import":"./dist/plugin/dialog.plugin.js"},"./composable":{"types":"./dist/composable/dialog.use.d.ts","import":"./dist/composable/dialog.use.js"}},"gitHead":"38f4827c581196c5ea0aeb4cfc5941ec87fa5d2d","scripts":{"dev":"vite","build":"pkgroll --minify --clean-dist --config"},"_npmUser":{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"},"repository":{"url":"git+https://github.com/Aldoivan10/vuetify-dialog.git","type":"git"},"_npmVersion":"11.0.0","description":"Plugin to use dialogs from vuetify programatically","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vue":"^3.5.13","vite":"^6.0.11","pinia":"^2.3.1","pkgroll":"^2.6.1","vuetify":"^3.7.7","@mdi/font":"^7.4.47","typescript":"^5.7.3","@types/node":"^22.12.0","highlight.js":"^11.11.1","@vue/tsconfig":"^0.7.0","@vitejs/plugin-vue":"^5.2.1","@aldoivan10/v-shortcut":"^1.0.3","@highlightjs/vue-plugin":"^2.1.0"},"peerDependencies":{"vue":"^3.5.13","vuetify":"^3.7.6"},"_npmOperationalInternal":{"tmp":"tmp/vuetify-dialog_1.0.3_1738124704866_0.1914660056254185","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aldoivan10/vuetify-dialog","version":"1.1.0","keywords":["vue 3","vue","vuetify","dialog","plugin","composable"],"author":{"name":"Aldoivan10"},"license":"MIT","_id":"@aldoivan10/vuetify-dialog@1.1.0","maintainers":[{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"}],"homepage":"https://github.com/Aldoivan10/vuetify-dialog#readme","bugs":{"url":"https://github.com/Aldoivan10/vuetify-dialog/issues"},"dist":{"shasum":"4fa69780cf57fd45f1cbdd4695cbdffa0779094a","tarball":"https://registry.npmjs.org/@aldoivan10/vuetify-dialog/-/vuetify-dialog-1.1.0.tgz","fileCount":19,"integrity":"sha512-T9IbrKG1guUzr7p9KWLEHsy6LVTQaKcfzHDLH3xP2QZve4RsIN30QOeORDbhy4sK5l8xJPwqy/zPt/yTjDTr5Q==","signatures":[{"sig":"MEUCICS2c+yjkV54zvTaZpvgkmcydGwbkm4XYoGfjzZ1RfdBAiEAviDGfsif+hPzWo9AotuGkt804IseK3m/Jv47hp9poB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45899},"type":"module","exports":{".":{"types":"./dist/plugin/dialog.plugin.d.ts","import":"./dist/plugin/dialog.plugin.js"},"./composable":{"types":"./dist/composable/dialog.use.d.ts","import":"./dist/composable/dialog.use.js"}},"gitHead":"610226f1c5a92c097a1b3ebb1591a2978a98f547","scripts":{"dev":"vite","build":"pkgroll --minify --clean-dist --config"},"_npmUser":{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"},"repository":{"url":"git+https://github.com/Aldoivan10/vuetify-dialog.git","type":"git"},"_npmVersion":"11.0.0","description":"Plugin to use dialogs from vuetify programatically","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vue":"^3.5.13","vite":"^6.0.11","pinia":"^2.3.1","pkgroll":"^2.6.1","vuetify":"^3.7.7","@mdi/font":"^7.4.47","typescript":"^5.7.3","@types/node":"^22.12.0","highlight.js":"^11.11.1","@vue/tsconfig":"^0.7.0","@vitejs/plugin-vue":"^5.2.1","@aldoivan10/v-shortcut":"^1.0.3","@highlightjs/vue-plugin":"^2.1.0"},"peerDependencies":{"vue":"^3.5.13","vuetify":"^3.7.6"},"_npmOperationalInternal":{"tmp":"tmp/vuetify-dialog_1.1.0_1741583825958_0.7417803235387239","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@aldoivan10/vuetify-dialog","version":"1.1.1","description":"Plugin to use dialogs from vuetify programatically","type":"module","repository":{"type":"git","url":"git+https://github.com/Aldoivan10/vuetify-dialog.git"},"bugs":{"url":"https://github.com/Aldoivan10/vuetify-dialog/issues"},"scripts":{"dev":"vite","build":"pkgroll --minify --clean-dist --config"},"exports":{".":{"import":"./dist/plugin/dialog.plugin.js","types":"./dist/plugin/dialog.plugin.d.ts"},"./composable":{"import":"./dist/composable/dialog.use.js","types":"./dist/composable/dialog.use.d.ts"}},"keywords":["vue 3","vue","vuetify","dialog","plugin","composable"],"author":{"name":"Aldoivan10"},"license":"MIT","peerDependencies":{"vue":"^3.5.13","vuetify":"^3.7.6"},"devDependencies":{"@aldoivan10/v-shortcut":"^1.0.3","@highlightjs/vue-plugin":"^2.1.0","@mdi/font":"^7.4.47","@types/node":"^22.12.0","@vitejs/plugin-vue":"^5.2.1","@vue/tsconfig":"^0.7.0","highlight.js":"^11.11.1","pinia":"^2.3.1","pkgroll":"^2.6.1","tsx":"^4.19.2","typescript":"^5.7.3","vite":"^6.0.11","vue":"^3.5.13","vuetify":"^3.7.7"},"_id":"@aldoivan10/vuetify-dialog@1.1.1","gitHead":"28a62de5e82df0eab347bbf586bce949b990509d","homepage":"https://github.com/Aldoivan10/vuetify-dialog#readme","_nodeVersion":"22.11.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-9tDb6qVNrqcP9XIP7zckCU5I32ee6SKErHmOMhU7Bk0ddk/fPE/2ErI6MZbweTXd+8rvzpQpl94Dd+yZcxC27w==","shasum":"f725b7ce4fe673323fdda00aaa12eb0ce290e1de","tarball":"https://registry.npmjs.org/@aldoivan10/vuetify-dialog/-/vuetify-dialog-1.1.1.tgz","fileCount":19,"unpackedSize":45904,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCB3EU+9KYizHt0r9oq3wCktxR5+1YZoncBBZk4wpPhiAIhAI5zW4EMGU966/qGJW2GvJop4mvnVKo6POvgyx6YK5Jg"}]},"_npmUser":{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"},"directories":{},"maintainers":[{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vuetify-dialog_1.1.1_1741583986554_0.2907365692974315"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-26T16:57:20.472Z","modified":"2025-03-10T05:19:46.869Z","1.0.0":"2025-01-26T16:57:20.760Z","1.0.1":"2025-01-26T17:10:26.880Z","1.0.2":"2025-01-29T04:21:23.343Z","1.0.3":"2025-01-29T04:25:05.042Z","1.1.0":"2025-03-10T05:17:06.132Z","1.1.1":"2025-03-10T05:19:46.715Z"},"bugs":{"url":"https://github.com/Aldoivan10/vuetify-dialog/issues"},"author":{"name":"Aldoivan10"},"license":"MIT","homepage":"https://github.com/Aldoivan10/vuetify-dialog#readme","keywords":["vue 3","vue","vuetify","dialog","plugin","composable"],"repository":{"type":"git","url":"git+https://github.com/Aldoivan10/vuetify-dialog.git"},"description":"Plugin to use dialogs from vuetify programatically","maintainers":[{"name":"aldoivan10","email":"aldoivan_palma@hotmail.com"}],"readme":"# ⭐ Dialog\n\n`Dialog` es una librería para crear diálogos [vuetify](https://vuetifyjs.com/en/components/dialogs/) mediante código.\n\n## 📦 Instalación\n\n```bash\nnpm i @aldoivan/vuetify-dialog\n\npnpm add @aldoivan/vuetify-dialog\n```\n\nLuego, importa e instala la librería en tu proyecto Vue:\n\n```typescript\nimport { createApp } from \"vue\"\nimport { Dialog } from \"@aldoivan/vuetify-dialog\"\nimport { createVuetify } from \"vuetify\"\n\nconst app = createApp(App)\n// Instalar primero vuetify\napp.use(createVuetify(...))\n// Instalar después el plugin para un correcto funcionamiento\napp.use(Dialog)\n```\n\n### Singleton\n\nPor defecto, los diálogos estan configurados de tal forma que se montan y desmontan por cada uso (al cerrarse se desmonta), esto es beneficioso cuando no se recuere un uso constante de ellos.\n\nSin embargo, cuando su uso es recurrente, se tiene la opción de usar un único diálogo al cual solo se le cambian las propiedades (singleton).\n\nPara activar este modo hay que pasar el parámetro a las opciones:\n\n```typescript\napp.use(Dialog, { singleton: true }) // Por defecto false\n```\n\nTambién se puede activar/desactivar mediante la función de clase:\n\n```typescript\nconst dialog = useDialog()\ndialog.setSingleton(boolean)\n```\n\n## 📖 Uso\n\n### Composable `useDialog`\n\nPuedes usar el composable `useDialog` en cualquier parte del código (stores, scripts, etc):\n\n```typescript\nconst dialog = useDialog()\ndialog.alert({ body: { content: \"Diálogo desde el código\" } })\n```\n\n### `$dialog`\n\nDe igual forma, puedes acceder dentro del `template` a la variable global `$dialog` para mostrar los diálogos:\n\n```vue\n<template>\n    <button\n        @click=\"$dialog.alert({ body: { content: 'Diálogo desde elemento' } })\"\n    >\n        Mostrar diálogo\n    </button>\n</template>\n```\n\n### Cerrar diálogo mediante `$emit`\n\nCuando el body, header o actions es un `Component` se puede cerrar el diálogo haciendo uso de `$emit` y pasando un valor (opcional) en cualquier momento llamando al event `closeDialog`:\n\n```vue\n// ChoiceForm.vue\n<script setup lang=\"ts\">\n    import { ref } from \"vue\"\n\n    defineEmits<{\n        closeDialog: [value: number]\n    }>()\n\n    const users = ref([\n        { id: 1, name: \"Aldo\" },\n        { id: 2, name: \"Ivonne\" },\n        { id: 3, name: \"Laura\" },\n        { id: 4, name: \"Pedro\" },\n    ])\n</script>\n\n<template>\n    <v-card-text>\n        <v-row>\n            <v-col\n                :cols=\"12\"\n                v-for=\"({ id, name }, key) in users\"\n                :key\n            >\n                <v-btn\n                    :text=\"name\"\n                    @click=\"$emit('closeDialog', id)\"\n                    variant=\"tonal\"\n                    color=\"secondary\"\n                    class=\"w-100\"\n                />\n            </v-col>\n        </v-row>\n    </v-card-text>\n</template>\n```\n\n### Cerrar diálogo mediante `onClick` prop\n\nSi las `actions` se crean usando el arreglo `Button[]`, las funciones `onClick` recibirán como primer parámetro la función `closeDialog`, la cual al ser llamada cerrará el diálogo, dicha función opcionalmente puede recibir un parámetro que retornará el valor del modal.\n\nAdicionalmente se ha agregado la capacidad de recibir `ref` en las propiedades pasadas en cada elemento, y se obtendrá como segundo parámetro `props` (puedes checar algunos ejemplos en [code/src](https://www.npmjs.com/package/@aldoivan10/vuetify-dialog?activeTab=code) ):\n\n```typescript\nconst loading = ref(false)\nconst disabled = ref(false)\nconst result = await dialog.show<true | undefined>({\n    body: { content: \"Cerrar mediante <b>onClick</b>\", props: { html: true } },\n    actions: [\n        {\n            text: \"Aceptar\",\n            variant: \"flat\",\n            onClick: (closeDialog) => closeDialog(true),\n        },\n        {\n            text: \"Cancelar\",\n            variant: \"flat\",\n            color: \"error\",\n            loading,\n            disabled,\n            onClick: (closeDialog, props) => {\n                props.loading = true\n                props.disabled = true\n                setTimeout(() => closeDialog(), 3000) // Cerrar en 3 segundos\n            },\n        },\n    ],\n})\n\nconsole.log(result)\n```\n\n## 🗪 Diálogos por defecto\n\n### Simple\n\nEste diálog únicamente renderiza el `Header` y `Body`, no puede recibir `Actions`, por tanto, debe cerrarse mediante el evento `$emit`:\n\n```typescript\nimport ChoiceForm from \"./components/ChoiceForm.vue\"\n\nconst result = await dialog.simple<any>({\n    header: { content: { title: \"Escoge al usuario\" } },\n    body: { content: markRaw(ChoiceForm) }, // content: Component\n})\nconsole.log(result)\n```\n\n### Alert\n\nEste diálog únicamente renderiza el `Header` y `Body`, y como `Actions` tiene un único botón (con valor undefined) personalizable (el prop value, es el valor retornado al cerrar el diálogo):\n\n```typescript\nconst result = await dialog.alert<number>({\n    header: { content: { title: \"¡Alerta!\", subtitle: \"Urgente\" } },\n    body: { content: \"Soy una <b>alerta<b> :D\", props: { html: true } },\n    action: { value: 123, text: \"Aceptar\" }, // action: Button\n})\nconsole.log(result) // result = 123\n```\n\n### Confirm\n\nEste diálog únicamente renderiza el `Header` y `Body`, y como `Actions` tiene un 2 bótones personalizables para cancelar (con valor false) y aceptar (con valor true) (el prop value, es el valor retornado al cerrar el diálogo):\n\n```typescript\nconst result = await dialog.confirm<boolean>({\n    header: { content: { title: \"¡Alto!\", subtitle: \"Responde\" } },\n    body: { content: \"¿Te ha gustado?\", props: { html: true } },\n    acceptBtn: { text: \"Sí\" },\n    cancelBtn: { text: \"No\" },\n})\nconsole.log(result) // true ó false\n```\n\n### Custom\n\nDiálogo 100% personalizable mediante las props:\n\n```typescript\nconst result = await dialog.show<string | number | Array<number> | Object>({\n    header: { content: { title: \"Personalizado\", subtitle: \":D\" } },\n    body: { content: \"Soy un componente <b>custom</b>\", props: { html: true } },\n    actions: [\n        {\n            text: \"Aceptar\",\n            variant: \"flat\",\n            onClick: (closeDialog) => closeDialog(\"Boton 1\"),\n        },\n        {\n            text: \"Cancelar\",\n            color: \"error\",\n            onClick: (closeDialog) => closeDialog(20),\n        },\n        {\n            text: \"Extra 1\",\n            color: \"success\",\n            variant: \"tonal\",\n            onClick: (closeDialog) => closeDialog({ id: 1, name: \"Nameless\" }),\n        },\n        {\n            onClick: (closeDialog) => closeDialog([1, 2, 3, 4]),\n            text: \"Extra 2\",\n            variant: \"outlined\",\n            color: \"primary\",\n        },\n    ],\n})\nconsole.log(result) // true ó false\n```\n\n## 📚 API\n\n### Propiedades\n\nPara lanzar un diálogo es necesario pasar un objeto con las siguientes propiedades:\n\n| Propiedad      |        Tipo         |                                                          Descripción                                                           |\n| -------------- | :-----------------: | :----------------------------------------------------------------------------------------------------------------------------: |\n| header?        |       Header        |                                                 Opcional, cabecera del diálogo                                                 |\n| body?          |        Body         |                                                  Opcional, cuerpo del diálogo                                                  |\n| actions?       | Actions \\| Button[] | Opcional, acciones del diálogo, puede se run objeto o un arreglo de propiedades de [VBtn](https://vuetifyjs.com/en/api/v-btn/) |\n| transition?    |       string        |                                          Opcional, por defecto: `\"scale-transition\"`                                           |\n| fullscreen?    |       boolean       |                                                 Opcional, por defecto: `false`                                                 |\n| persistent?    |       boolean       |                                                 Opcional, por defecto: `true`                                                  |\n| minWidth?      |  string \\| number   |                                                 Opcional, por defecto: `\"25%\"`                                                 |\n| width?         |  string \\| number   |                                             Opcional, por defecto: `\"fit-content\"`                                             |\n| [Key: string]? |         any         |           Opcionales, todas las propiedades admisibles de [VDialog](scale-\"\"https://vuetifyjs.com/en/api/v-dialog/)            |\n\n#### `Header`\n\n| Propiedad |                                                                             Tipo                                                                              |                                          Descripción                                           |\n| --------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------: |\n| content   | { title?: string, subtitle?: string, prependAvatar?: string, appendAvatar?: string, preppendIcon?: string, appendIcon?: string, class?: string } \\| Component | Contenido del Header, debe ser un objeto con las propiedades descritas o un `Component` de Vue |\n| props?    |                                                                      Record<string, any>                                                                      |           Opcional, `props` que se pasarán solo cuando `content` sea un `Component`            |\n\n#### `Body`\n\n| Propiedad |                   Tipo                   |                                                                           Descripción                                                                            |\n| --------- | :--------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: |\n| content   |           string \\| Component            |                                                   Contenido del Body, debe una cadena o un `Component` de Vue                                                    |\n| props?    | Record<string, any> & { html?: boolean } | Opcional, `props` que se pasarán solo cuando `content` sea un `Component`. Cuando `content` es una cadena solo recibe si la cadena se debe renderizar como html. |\n\n#### `Actions`\n\n| Propiedad |        Tipo         |                 Descripción                  |\n| --------- | :-----------------: | :------------------------------------------: |\n| content   |      Component      |           `Component` a renderizar           |\n| props?    | Record<string, any> | Opcional, `props` que se pasarán al content. |\n\n#### `Button`\n\n| Propiedad      |                                  Tipo                                  |                                                                                   Descripción                                                                                   |\n| -------------- | :--------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |\n| onClick        | (closeDialog: (val?: any) => void, props: Record<string, any>) => void |                                                                  Opcional, acción a hacer clic sobre el botón.                                                                  |\n| shortcut?      | { value: string, modifiers?: { click?: boolean; prevent?: boolean } }  | Opcional, atajo del teclado para poder hacer clic sobre el botón. (Solo si se tiene instalada la dependencia [VShortcut](https://www.npmjs.com/package/@aldoivan10/v-shortcut)) |\n| [Key: string]? |                                  any                                   |                                           Opcionales, todas las propiedades admisibles de [VBtn](https://vuetifyjs.com/en/api/v-btn/)                                           |\n\n## 📃 Licencia\n\nEste proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.\n","readmeFilename":"README.md"}