Compare commits
No commits in common. "0ea3bd0859aba4ae30f4ac0d8685421ee4600528" and "95f29d2fe2d9da62799a658aa6f66a5696ebdef9" have entirely different histories.
0ea3bd0859
...
95f29d2fe2
137
app/app.vue
137
app/app.vue
|
|
@ -1,11 +1,4 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
const nuxtApp = useNuxtApp();
|
|
||||||
const { $i18n } = useNuxtApp();
|
|
||||||
const t = $i18n.t;
|
|
||||||
|
|
||||||
const title = t('seo.title')
|
|
||||||
const description = t('seo.description')
|
|
||||||
|
|
||||||
useHead({
|
useHead({
|
||||||
meta: [
|
meta: [
|
||||||
{ charset: 'utf-8' },
|
{ charset: 'utf-8' },
|
||||||
|
|
@ -15,141 +8,19 @@ useHead({
|
||||||
{ rel: 'icon', href: '/favicon.ico' }
|
{ rel: 'icon', href: '/favicon.ico' }
|
||||||
],
|
],
|
||||||
htmlAttrs: {
|
htmlAttrs: {
|
||||||
lang: $i18n.locale
|
lang: 'es'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const title = 'La Gran Carpa Catedral - Buscador'
|
||||||
|
const description = 'Buscador de actividades y conferencias.'
|
||||||
|
|
||||||
useSeoMeta({
|
useSeoMeta({
|
||||||
title,
|
title,
|
||||||
description,
|
description,
|
||||||
ogTitle: title,
|
ogTitle: title,
|
||||||
ogDescription: description
|
ogDescription: description
|
||||||
})
|
})
|
||||||
|
|
||||||
const steps = [
|
|
||||||
{
|
|
||||||
element: "#bible-studies",
|
|
||||||
popover: {
|
|
||||||
title: t('nav.bible_studies'),
|
|
||||||
description: t('tour.bible_studies_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: "#conferences",
|
|
||||||
popover: {
|
|
||||||
title: t('nav.conferences'),
|
|
||||||
description: t('tour.conferences_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: "#betweenthelines",
|
|
||||||
popover: {
|
|
||||||
title: t('nav.between_the_lines'),
|
|
||||||
description: t('tour.betweenthelines_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: "#favorites",
|
|
||||||
popover: {
|
|
||||||
title: t('nav.my_list'),
|
|
||||||
description: t('tour.favorites_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: "#history",
|
|
||||||
popover: {
|
|
||||||
title: t('nav.history'),
|
|
||||||
description: t('tour.history_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: "#changelog",
|
|
||||||
popover: {
|
|
||||||
title: t('nav.changelog'),
|
|
||||||
description: t('tour.changelog_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: "#settings",
|
|
||||||
popover: {
|
|
||||||
title: t('nav.settings'),
|
|
||||||
description: t('tour.settings_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: "#feedback",
|
|
||||||
popover: {
|
|
||||||
title: t('feedback.title'),
|
|
||||||
description: t('tour.feedback_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: "#localeSelector",
|
|
||||||
popover: {
|
|
||||||
title: t('nav.localeselector'),
|
|
||||||
description: t('tour.localeselector_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: ".collapse-sidebar-icon",
|
|
||||||
popover: {
|
|
||||||
title: t('search.collapse'),
|
|
||||||
description: t('tour.collapse_sidebar_description'),
|
|
||||||
side: "bottom"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: ".total-results",
|
|
||||||
popover: {
|
|
||||||
title: t('search.total_results'),
|
|
||||||
description: t('tour.total_results_description'),
|
|
||||||
side: "bottom"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: "#index_changelog",
|
|
||||||
popover: {
|
|
||||||
title: t('nav.changelog'),
|
|
||||||
description: t('tour.changelog_description'),
|
|
||||||
side: "right",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
element: ".favorites_toggle",
|
|
||||||
popover: {
|
|
||||||
title: t('tour.favorites_button'),
|
|
||||||
description: t('tour.favorites_toggle'),
|
|
||||||
side: "bottom"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
const tourConfig = {
|
|
||||||
nextBtnText: t('tour.next'),
|
|
||||||
prevBtnText: t('tour.prev'),
|
|
||||||
doneBtnText: t('tour.done'),
|
|
||||||
progressText: t('tour.progress', { current: '{{current}}', total: '{{total}}' }),
|
|
||||||
showProgress: true,
|
|
||||||
animate: true,
|
|
||||||
smoothScroll: true,
|
|
||||||
steps: steps,
|
|
||||||
}
|
|
||||||
|
|
||||||
nuxtApp.hook('tour', (startIndex=0)=>{
|
|
||||||
const { driver } = useDriver("onboarding");
|
|
||||||
const instance = driver( tourConfig )
|
|
||||||
instance.drive(startIndex)
|
|
||||||
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,6 @@
|
||||||
--color-carpablue: #2C4EA2;
|
--color-carpablue: #2C4EA2;
|
||||||
--color-carpagreen: #6B8E23;
|
--color-carpagreen: #6B8E23;
|
||||||
--color-carpared: #ff0000;
|
--color-carpared: #ff0000;
|
||||||
|
|
||||||
--color-primary: #6B8E23;
|
|
||||||
--color-secondary: #2C4EA2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Colors for Typesense rich text */
|
/* Colors for Typesense rich text */
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,6 @@ const props = defineProps<{
|
||||||
|
|
||||||
const emits = defineEmits(['close'])
|
const emits = defineEmits(['close'])
|
||||||
|
|
||||||
const nuxtApp = useNuxtApp()
|
|
||||||
|
|
||||||
const { locale } = useI18n()
|
const { locale } = useI18n()
|
||||||
const favorites = useFavoritesStore()
|
const favorites = useFavoritesStore()
|
||||||
|
|
||||||
|
|
@ -830,15 +828,6 @@ const items = computed(() => {
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #right>
|
<template #right>
|
||||||
<UTooltip text="Como funciona?">
|
|
||||||
<UButton
|
|
||||||
icon="ph-student"
|
|
||||||
color="neutral"
|
|
||||||
variant="ghost"
|
|
||||||
:disabled="!document"
|
|
||||||
@click="nuxtApp.callHook('tour',12)"
|
|
||||||
/>
|
|
||||||
</UTooltip>
|
|
||||||
<UTooltip :text="isFav ? 'Quitar de mi lista' : 'Guardar en mi lista'">
|
<UTooltip :text="isFav ? 'Quitar de mi lista' : 'Guardar en mi lista'">
|
||||||
<UButton
|
<UButton
|
||||||
:icon="isFav ? 'i-lucide-bookmark-check' : 'i-lucide-bookmark-plus'"
|
:icon="isFav ? 'i-lucide-bookmark-check' : 'i-lucide-bookmark-plus'"
|
||||||
|
|
@ -846,7 +835,6 @@ const items = computed(() => {
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
:disabled="!document"
|
:disabled="!document"
|
||||||
:aria-label="isFav ? 'Quitar de mi lista' : 'Guardar en mi lista'"
|
:aria-label="isFav ? 'Quitar de mi lista' : 'Guardar en mi lista'"
|
||||||
class="favorites_toggle"
|
|
||||||
@click="onToggleFavorite"
|
@click="onToggleFavorite"
|
||||||
/>
|
/>
|
||||||
</UTooltip>
|
</UTooltip>
|
||||||
|
|
|
||||||
|
|
@ -565,18 +565,14 @@ function metaLocation(meta: DocMeta | undefined): string {
|
||||||
>
|
>
|
||||||
<UDashboardNavbar :title="t(navTitleKey)">
|
<UDashboardNavbar :title="t(navTitleKey)">
|
||||||
<template #leading>
|
<template #leading>
|
||||||
<UDashboardSidebarCollapse :ui="{
|
<UDashboardSidebarCollapse />
|
||||||
base: 'collapse-sidebar-icon'
|
|
||||||
}" />
|
|
||||||
</template>
|
</template>
|
||||||
<template #trailing>
|
<template #trailing>
|
||||||
<UBadge :label="displayTotal" variant="subtle" :ui="{
|
<UBadge :label="displayTotal" variant="subtle" />
|
||||||
base: 'total-results'
|
|
||||||
}" />
|
|
||||||
</template>
|
</template>
|
||||||
</UDashboardNavbar>
|
</UDashboardNavbar>
|
||||||
|
|
||||||
<div class="px-4 sm:px-6 py-3 border-b border-default" id="inputField">
|
<div class="px-4 sm:px-6 py-3 border-b border-default">
|
||||||
<UInput
|
<UInput
|
||||||
v-model="query"
|
v-model="query"
|
||||||
icon="i-lucide-search"
|
icon="i-lucide-search"
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,9 @@ import { storeToRefs } from 'pinia'
|
||||||
import type { NavigationMenuItem } from '@nuxt/ui'
|
import type { NavigationMenuItem } from '@nuxt/ui'
|
||||||
import { useFavoritesStore } from '~/stores/favorites'
|
import { useFavoritesStore } from '~/stores/favorites'
|
||||||
import { useHistoryStore } from '~/stores/history'
|
import { useHistoryStore } from '~/stores/history'
|
||||||
import { chatPalette } from '#build/ui'
|
|
||||||
|
|
||||||
const unlocked = ref(useDevMode())
|
|
||||||
|
|
||||||
const { locale, locales, setLocale } = useI18n()
|
const { locale, locales, setLocale } = useI18n()
|
||||||
|
|
||||||
const nuxtApp = useNuxtApp()
|
|
||||||
const { $i18n } = useNuxtApp();
|
const { $i18n } = useNuxtApp();
|
||||||
const t = $i18n.t;
|
const t = $i18n.t;
|
||||||
|
|
||||||
|
|
@ -24,30 +20,26 @@ const { total: histTotal } = storeToRefs(history)
|
||||||
|
|
||||||
|
|
||||||
const links = computed(() => {
|
const links = computed(() => {
|
||||||
const links = [
|
return [
|
||||||
{
|
{
|
||||||
id: 'bible-studies',
|
|
||||||
label: t('nav.bible_studies'),
|
label: t('nav.bible_studies'),
|
||||||
icon: 'ph-books',
|
icon: 'ph:books',
|
||||||
to: '/estudios-biblicos',
|
to: '/estudios-biblicos',
|
||||||
onSelect: () => { open.value = false },
|
onSelect: () => { open.value = false }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'conferences',
|
|
||||||
label: t('nav.conferences'),
|
label: t('nav.conferences'),
|
||||||
icon: 'ph-books',
|
icon: 'ph:books',
|
||||||
to: '/conferencias',
|
to: '/conferencias',
|
||||||
onSelect: () => { open.value = false }
|
onSelect: () => { open.value = false }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'betweenthelines',
|
|
||||||
label: t('nav.between_the_lines'),
|
label: t('nav.between_the_lines'),
|
||||||
icon: 'ph-list-magnifying-glass',
|
icon: 'ph:list-magnifying-glass',
|
||||||
to: '/entrelineas',
|
to: '/entrelineas',
|
||||||
onSelect: () => { open.value = false }
|
onSelect: () => { open.value = false }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'favorites',
|
|
||||||
label: t('nav.my_list'),
|
label: t('nav.my_list'),
|
||||||
icon: 'i-lucide-bookmark',
|
icon: 'i-lucide-bookmark',
|
||||||
to: '/favoritos',
|
to: '/favoritos',
|
||||||
|
|
@ -55,7 +47,6 @@ const links = computed(() => {
|
||||||
onSelect: () => { open.value = false }
|
onSelect: () => { open.value = false }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'history',
|
|
||||||
label: t('nav.history'),
|
label: t('nav.history'),
|
||||||
icon: 'i-lucide-history',
|
icon: 'i-lucide-history',
|
||||||
to: '/historial',
|
to: '/historial',
|
||||||
|
|
@ -63,88 +54,62 @@ const links = computed(() => {
|
||||||
onSelect: () => { open.value = false }
|
onSelect: () => { open.value = false }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'changelog',
|
|
||||||
label: t('nav.changelog'),
|
label: t('nav.changelog'),
|
||||||
icon: 'i-lucide-megaphone',
|
icon: 'i-lucide-megaphone',
|
||||||
to: '/changelog',
|
to: '/changelog',
|
||||||
onSelect: () => { open.value = false }
|
onSelect: () => { open.value = false }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'settings',
|
|
||||||
label: t('nav.settings'),
|
label: t('nav.settings'),
|
||||||
icon: 'i-lucide-settings',
|
icon: 'i-lucide-settings',
|
||||||
to: '/configuracion',
|
to: '/configuracion',
|
||||||
onSelect: () => { open.value = false }
|
onSelect: () => { open.value = false }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'feedback',
|
|
||||||
label: t('feedback.title'),
|
label: t('feedback.title'),
|
||||||
icon: 'i-lucide-bug',
|
icon: 'i-lucide-bug',
|
||||||
to: '/feedback',
|
to: '/feedback',
|
||||||
onSelect: () => { open.value = false }
|
onSelect: () => { open.value = false }
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'wizard',
|
|
||||||
class: 'mt-4 border-t-2 border-gray-300 pt-4',
|
|
||||||
label: t('nav.tour'),
|
|
||||||
icon: 'ph-student',
|
|
||||||
onSelect: () => { doTour() },
|
|
||||||
chip: {
|
|
||||||
color: 'error'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
] satisfies NavigationMenuItem[]
|
] satisfies NavigationMenuItem[]
|
||||||
|
|
||||||
function doTour(){
|
|
||||||
nuxtApp.callHook('tour',0)
|
|
||||||
}
|
|
||||||
|
|
||||||
const homeLink = {
|
|
||||||
id: 'home',
|
|
||||||
label: t('nav.home'),
|
|
||||||
icon: 'ph-house',
|
|
||||||
to: '/'
|
|
||||||
}
|
|
||||||
|
|
||||||
return [homeLink, ...links]
|
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<UDashboardGroup unit="rem">
|
<UDashboardGroup unit="rem">
|
||||||
<UDashboardSidebar id="default" v-model:open="open" collapsible resizable
|
<UDashboardSidebar
|
||||||
class="bg-elevated/25 bg-gradient-to-tr from-blue-100 to-white" :ui="{ footer: 'lg:border-t lg:border-default' }">
|
id="default"
|
||||||
|
v-model:open="open"
|
||||||
|
collapsible
|
||||||
|
resizable
|
||||||
|
class="bg-elevated/25 bg-gradient-to-tr from-blue-100 to-white"
|
||||||
|
:ui="{ footer: 'lg:border-t lg:border-default' }"
|
||||||
|
>
|
||||||
<template #header="{ collapsed }">
|
<template #header="{ collapsed }">
|
||||||
<div v-if="!collapsed" class="mt-2 flex justify-center">
|
<div v-if="!collapsed" class="mt-2 flex justify-center">
|
||||||
<img src="/logo.svg" class="w-full" alt="Buscador - La Gran Carpa Catedral" />
|
<img src="/logo.svg" class="w-full" alt="Buscador - La Gran Carpa Catedral" />
|
||||||
</div>
|
</div>
|
||||||
<img v-if="collapsed" src="/logo_round.svg" class="w-full" alt="Buscador - La Gran Carpa Catedral" />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #default="{ collapsed }">
|
<template #default="{ collapsed }">
|
||||||
<UNavigationMenu :collapsed="collapsed" :items="links" orientation="vertical" tooltip popover color="neutral"
|
<UNavigationMenu
|
||||||
variant="link">
|
:collapsed="collapsed"
|
||||||
|
:items="links"
|
||||||
<template #item="{ item }">
|
orientation="vertical"
|
||||||
<div :id="item.id"
|
tooltip
|
||||||
class="group relative w-full flex items-center gap-1.5 font-medium text-sm before:absolute before:z-[-1] before:rounded-md focus:outline-none focus-visible:outline-none dark:focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-2 focus-visible:before:ring-inverted flex-row">
|
popover
|
||||||
<UChip :color="item.chip?.color" :show="item.chip?.color ? true : false" inset>
|
color="neutral"
|
||||||
<UIcon :name="item.icon" class="text-2xl" />
|
variant="link"
|
||||||
</UChip>
|
/>
|
||||||
<div :class="!collapsed ? 'flex justify-between w-full' : 'hidden'">{{ item.label }}
|
|
||||||
<UBadge v-if="item.badge" variant="outline" color="neutral" size="sm" :label="item.badge" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</UNavigationMenu>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #footer="{ collapsed }">
|
<template #footer="{ collapsed }">
|
||||||
<div id="localeSelector">
|
<ULocaleSelect
|
||||||
<ULocaleSelect :model-value="$i18n.locale.value" :locales="Object.values(locales)"
|
:model-value="$i18n.locale.value"
|
||||||
@update:model-value="setLocale($event)" />
|
:locales="Object.values(locales)"
|
||||||
</div>
|
@update:model-value="setLocale($event)"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
</UDashboardSidebar>
|
</UDashboardSidebar>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,127 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
const { $i18n } = useNuxtApp()
|
const { $i18n } = useNuxtApp()
|
||||||
const t = $i18n.t
|
const t = $i18n.t
|
||||||
|
|
||||||
|
interface ChangeEntry {
|
||||||
|
type: 'nuevo' | 'mejora' | 'fix' | 'eliminado'
|
||||||
|
text: string
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Release {
|
||||||
|
version: string
|
||||||
|
date: string
|
||||||
|
title: string
|
||||||
|
description?: string
|
||||||
|
changes: ChangeEntry[]
|
||||||
|
}
|
||||||
|
|
||||||
|
const releases: Release[] = [
|
||||||
|
{
|
||||||
|
version: '0.6',
|
||||||
|
date: '31 de mayo, 2026',
|
||||||
|
title: 'Feedback con traducciones, bloqueo de Entrelíneas y acceso desarrollador',
|
||||||
|
changes: [
|
||||||
|
{ type: 'nuevo', text: 'Página de Feedback con traducciones completas en 4 idiomas' },
|
||||||
|
{ type: 'nuevo', text: 'Sistema de bloqueo por clave de desarrollador para secciones en desarrollo' },
|
||||||
|
{ type: 'nuevo', text: 'Acceso de desarrollador en Configuración con desbloqueo por clave' },
|
||||||
|
{ type: 'nuevo', text: 'Banner visual mejorado para Entrelíneas cuando está bloqueado' },
|
||||||
|
{ type: 'mejora', text: 'Traducciones añadidas al componente BugReportInput' },
|
||||||
|
{ type: 'mejora', text: 'Nombre del tab Feedback ahora usa traducciones' },
|
||||||
|
{ type: 'mejora', text: 'Textos del banner de Entrelíneas traducidos a 4 idiomas' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: '0.5',
|
||||||
|
date: '30 de mayo, 2026',
|
||||||
|
title: 'Soporte de HTML en Entrelíneas',
|
||||||
|
description: 'El visor de Entrelíneas ahora renderiza contenido en HTML además de texto plano.',
|
||||||
|
changes: [
|
||||||
|
{ type: 'nuevo', text: 'Renderizado de contenido HTML en el detalle de Entrelíneas' },
|
||||||
|
{ type: 'mejora', text: 'Los fragmentos HTML se muestran con formato original preservado' },
|
||||||
|
{ type: 'fix', text: 'Corrección de errores de sintaxis en el componente de detalle' },
|
||||||
|
{ type: 'mejora', text: 'El historial ahora muestra correctamente documentos de Entrelíneas con HTML' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: '0.4',
|
||||||
|
date: '26 de mayo, 2026',
|
||||||
|
title: 'Mejoras de interfaz y exploracion',
|
||||||
|
changes: [
|
||||||
|
{ type: 'mejora', text: 'El código del documento aparece visible en la pantalla de detalle' },
|
||||||
|
{ type: 'mejora', text: 'El badge "Borrador" solo se muestra cuando el documento es borrador' },
|
||||||
|
{ type: 'mejora', text: 'Tooltip mejorado al copiar párrafos al portapapeles' },
|
||||||
|
{ type: 'mejora', text: 'El explorador filtra resultados mostrando solo ítems con párrafos' },
|
||||||
|
{ type: 'mejora', text: 'Panel lateral preparado para notas y resaltados (próximamente)' },
|
||||||
|
{ type: 'fix', text: 'Posicionamiento del panel lateral corregido en documentos cortos' },
|
||||||
|
{ type: 'fix', text: 'Corrección de traducciones en francés' },
|
||||||
|
{ type: 'fix', text: 'Ajustes visuales en múltiples vistas' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: '0.3',
|
||||||
|
date: '25 de mayo, 2026',
|
||||||
|
title: 'Portapapeles y corrección de bugs',
|
||||||
|
changes: [
|
||||||
|
{ type: 'nuevo', text: 'Panel de copiado mejorado al seleccionar párrafos' },
|
||||||
|
{ type: 'mejora', text: 'Función de copiar al portapapeles más robusta e independiente' },
|
||||||
|
{ type: 'fix', text: 'Corrección de bug al guardar y mostrar favoritos' },
|
||||||
|
{ type: 'fix', text: 'Corrección de bug en la carga de referencias' },
|
||||||
|
{ type: 'fix', text: 'Corrección de bug en el detalle de publicaciones de referencia' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: '0.2',
|
||||||
|
date: '21–24 de mayo, 2026',
|
||||||
|
title: 'Conferencias, copiar párrafos y estabilidad',
|
||||||
|
changes: [
|
||||||
|
{ type: 'nuevo', text: 'Soporte de documentos de Conferencias y Actividades' },
|
||||||
|
{ type: 'nuevo', text: 'Clic en párrafo para copiarlo directamente al portapapeles' },
|
||||||
|
{ type: 'nuevo', text: 'Zoom de imagen en el visor de Entrelíneas' },
|
||||||
|
{ type: 'mejora', text: 'Número de párrafo más discreto en el detalle del documento' },
|
||||||
|
{ type: 'mejora', text: 'Publicación del documento visible en todas las vistas y traducida' },
|
||||||
|
{ type: 'mejora', text: 'Corrección de estilos visuales para contenido antiguo' },
|
||||||
|
{ type: 'fix', text: 'Corrección de bug en favoritos (detalle)' },
|
||||||
|
{ type: 'fix', text: 'Badge "Borrador" agregado en lista y detalle de Estudios Bíblicos' },
|
||||||
|
{ type: 'fix', text: 'Rutas de navegación migradas correctamente a nuevo motor de búsqueda' },
|
||||||
|
{ type: 'fix', text: 'Corrección de scroll infinito en móvil para Entrelíneas' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: '0.1',
|
||||||
|
date: '10–12 de mayo, 2026',
|
||||||
|
title: 'Historial, Favoritos y multilengua',
|
||||||
|
description: 'Primera versión funcional con las secciones principales activas.',
|
||||||
|
changes: [
|
||||||
|
{ type: 'nuevo', text: 'Historial de búsqueda y exploración' },
|
||||||
|
{ type: 'nuevo', text: 'Favoritos: guarda y accede a documentos desde Mi Listado' },
|
||||||
|
{ type: 'nuevo', text: 'Selector de idioma: Español, English, Français, Português' },
|
||||||
|
{ type: 'nuevo', text: 'Cantidad aproximada de resultados visible en los listados' },
|
||||||
|
{ type: 'mejora', text: 'Paginación configurable: scroll infinito o páginas numeradas' },
|
||||||
|
{ type: 'mejora', text: 'Ajuste de cantidad de resultados por página en Configuración' },
|
||||||
|
{ type: 'fix', text: 'Corrección de traducciones en el menú principal' },
|
||||||
|
{ type: 'fix', text: 'Ajustes de colores y badges en listas de resultados' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
version: '0.0.1',
|
||||||
|
date: '7 de mayo, 2026',
|
||||||
|
title: 'Lanzamiento inicial',
|
||||||
|
description: 'Primera versión del buscador con Estudios Bíblicos y Entrelíneas.',
|
||||||
|
changes: [
|
||||||
|
{ type: 'nuevo', text: 'Búsqueda en Estudios Bíblicos' },
|
||||||
|
{ type: 'nuevo', text: 'Visor de Entrelíneas con imagen y texto' },
|
||||||
|
{ type: 'nuevo', text: 'Búsqueda por palabras o por frase exacta' },
|
||||||
|
{ type: 'nuevo', text: 'Estructura base de la aplicación' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
const typeConfig: Record<ChangeEntry['type'], { label: string; color: string }> = {
|
||||||
|
nuevo: { label: 'Nuevo', color: 'success' },
|
||||||
|
mejora: { label: 'Mejora', color: 'info' },
|
||||||
|
fix: { label: 'Fix', color: 'warning' },
|
||||||
|
eliminado: { label: 'Eliminado', color: 'error' }
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
|
||||||
|
|
@ -1,73 +1,10 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
// Home redirects straight to the search experience.
|
// Home redirects straight to the search experience.
|
||||||
import type { ButtonProps } from '@nuxt/ui'
|
definePageMeta({
|
||||||
|
middleware: () => navigateTo('/estudios-biblicos', { redirectCode: 302 })
|
||||||
const nuxtApp = useNuxtApp()
|
})
|
||||||
const { $i18n } = useNuxtApp()
|
|
||||||
const t = $i18n.t
|
|
||||||
|
|
||||||
const release = releases[0]
|
|
||||||
|
|
||||||
const links = ref<ButtonProps[]>([
|
|
||||||
{
|
|
||||||
label: t('nav.tour'),
|
|
||||||
icon: 'ph-student',
|
|
||||||
color: 'error',
|
|
||||||
class: 'hidden sm:flex',
|
|
||||||
onClick: () => nuxtApp.callHook('tour',11)
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: t('nav.bible_studies'),
|
|
||||||
to: `/${$i18n.locale.value}/estudios-biblicos`,
|
|
||||||
icon: 'ph-books',
|
|
||||||
color: 'primary'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: t('nav.conferences'),
|
|
||||||
to: `/${$i18n.locale.value}/conferencias`,
|
|
||||||
icon: 'ph-books',
|
|
||||||
color: 'secondary'
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
<div />
|
||||||
<UDashboardPanel id="changelog-panel" grow>
|
|
||||||
<UDashboardNavbar :title="t('nav.home')">
|
|
||||||
<template #leading>
|
|
||||||
<UDashboardSidebarCollapse />
|
|
||||||
</template>
|
|
||||||
</UDashboardNavbar>
|
|
||||||
|
|
||||||
<UPage>
|
|
||||||
<UPageHero title="Buscador Carpa"
|
|
||||||
:description="$t('home.instructions')"
|
|
||||||
:headline="`${release?.date}`" orientation="horizontal"
|
|
||||||
:links="links"
|
|
||||||
>
|
|
||||||
|
|
||||||
<div id="index_changelog">
|
|
||||||
<UPageCard variant="soft" icon="ph-git-branch" :title="release?.title" :description="release?.description">
|
|
||||||
|
|
||||||
<template #header>
|
|
||||||
v{{ release?.version }}
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- Lista de cambios -->
|
|
||||||
<ul class="space-y-2">
|
|
||||||
<li v-for="(change, i) in release?.changes" :key="i" class="flex items-start gap-2 text-sm">
|
|
||||||
<UBadge :color="typeConfig[change.type].color as any" variant="subtle" size="xs" class="mt-0.5 shrink-0">
|
|
||||||
{{ typeConfig[change.type].label }}
|
|
||||||
</UBadge>
|
|
||||||
<span class="text-default">{{ change.text }}</span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</UPageCard>
|
|
||||||
</div>
|
|
||||||
</UPageHero>
|
|
||||||
|
|
||||||
</UPage>
|
|
||||||
</UDashboardPanel>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,131 +0,0 @@
|
||||||
export const typeConfig: Record<ChangeEntry['type'], { label: string; color: string }> = {
|
|
||||||
nuevo: { label: 'Nuevo', color: 'success' },
|
|
||||||
mejora: { label: 'Mejora', color: 'info' },
|
|
||||||
fix: { label: 'Fix', color: 'warning' },
|
|
||||||
eliminado: { label: 'Eliminado', color: 'error' }
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ChangeEntry {
|
|
||||||
type: 'nuevo' | 'mejora' | 'fix' | 'eliminado'
|
|
||||||
text: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface Release {
|
|
||||||
version: string
|
|
||||||
date: string
|
|
||||||
title: string
|
|
||||||
description?: string
|
|
||||||
changes: ChangeEntry[]
|
|
||||||
}
|
|
||||||
|
|
||||||
export const releases: Release[] = [
|
|
||||||
{
|
|
||||||
version: '0.7',
|
|
||||||
date: '31 de mayo, 2026 11:50PM',
|
|
||||||
title: 'Tour y optimizaciones',
|
|
||||||
changes: [
|
|
||||||
{ type: 'nuevo', text: 'Agregado tour virtual con localizacion para explicar funcionamiento del buscador'},
|
|
||||||
{ type: 'nuevo', text: 'Agregada pagina de inicio que muestra la version mas reciente del changelog' },
|
|
||||||
{ type: 'mejora', text: 'Separacion de changelog a un TS aparte para utilizar en changelog y en el home sin duplicacion de codigo'},
|
|
||||||
{ type: 'nuevo', text: 'Finalizado flow de automatizacion entre backend y typesense'}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
version: '0.6',
|
|
||||||
date: '31 de mayo, 2026',
|
|
||||||
title: 'Feedback con traducciones, bloqueo de Entrelíneas y acceso desarrollador',
|
|
||||||
changes: [
|
|
||||||
{ type: 'nuevo', text: 'Página de Feedback con traducciones completas en 4 idiomas' },
|
|
||||||
{ type: 'nuevo', text: 'Sistema de bloqueo por clave de desarrollador para secciones en desarrollo' },
|
|
||||||
{ type: 'nuevo', text: 'Acceso de desarrollador en Configuración con desbloqueo por clave' },
|
|
||||||
{ type: 'nuevo', text: 'Banner visual mejorado para Entrelíneas cuando está bloqueado' },
|
|
||||||
{ type: 'mejora', text: 'Traducciones añadidas al componente BugReportInput' },
|
|
||||||
{ type: 'mejora', text: 'Nombre del tab Feedback ahora usa traducciones' },
|
|
||||||
{ type: 'mejora', text: 'Textos del banner de Entrelíneas traducidos a 4 idiomas' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
version: '0.5',
|
|
||||||
date: '30 de mayo, 2026',
|
|
||||||
title: 'Soporte de HTML en Entrelíneas',
|
|
||||||
description: 'El visor de Entrelíneas ahora renderiza contenido en HTML además de texto plano.',
|
|
||||||
changes: [
|
|
||||||
{ type: 'nuevo', text: 'Renderizado de contenido HTML en el detalle de Entrelíneas' },
|
|
||||||
{ type: 'mejora', text: 'Los fragmentos HTML se muestran con formato original preservado' },
|
|
||||||
{ type: 'fix', text: 'Corrección de errores de sintaxis en el componente de detalle' },
|
|
||||||
{ type: 'mejora', text: 'El historial ahora muestra correctamente documentos de Entrelíneas con HTML' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
version: '0.4',
|
|
||||||
date: '26 de mayo, 2026',
|
|
||||||
title: 'Mejoras de interfaz y exploracion',
|
|
||||||
changes: [
|
|
||||||
{ type: 'mejora', text: 'El código del documento aparece visible en la pantalla de detalle' },
|
|
||||||
{ type: 'mejora', text: 'El badge "Borrador" solo se muestra cuando el documento es borrador' },
|
|
||||||
{ type: 'mejora', text: 'Tooltip mejorado al copiar párrafos al portapapeles' },
|
|
||||||
{ type: 'mejora', text: 'El explorador filtra resultados mostrando solo ítems con párrafos' },
|
|
||||||
{ type: 'mejora', text: 'Panel lateral preparado para notas y resaltados (próximamente)' },
|
|
||||||
{ type: 'fix', text: 'Posicionamiento del panel lateral corregido en documentos cortos' },
|
|
||||||
{ type: 'fix', text: 'Corrección de traducciones en francés' },
|
|
||||||
{ type: 'fix', text: 'Ajustes visuales en múltiples vistas' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
version: '0.3',
|
|
||||||
date: '25 de mayo, 2026',
|
|
||||||
title: 'Portapapeles y corrección de bugs',
|
|
||||||
changes: [
|
|
||||||
{ type: 'nuevo', text: 'Panel de copiado mejorado al seleccionar párrafos' },
|
|
||||||
{ type: 'mejora', text: 'Función de copiar al portapapeles más robusta e independiente' },
|
|
||||||
{ type: 'fix', text: 'Corrección de bug al guardar y mostrar favoritos' },
|
|
||||||
{ type: 'fix', text: 'Corrección de bug en la carga de referencias' },
|
|
||||||
{ type: 'fix', text: 'Corrección de bug en el detalle de publicaciones de referencia' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
version: '0.2',
|
|
||||||
date: '21–24 de mayo, 2026',
|
|
||||||
title: 'Conferencias, copiar párrafos y estabilidad',
|
|
||||||
changes: [
|
|
||||||
{ type: 'nuevo', text: 'Soporte de documentos de Conferencias y Actividades' },
|
|
||||||
{ type: 'nuevo', text: 'Clic en párrafo para copiarlo directamente al portapapeles' },
|
|
||||||
{ type: 'nuevo', text: 'Zoom de imagen en el visor de Entrelíneas' },
|
|
||||||
{ type: 'mejora', text: 'Número de párrafo más discreto en el detalle del documento' },
|
|
||||||
{ type: 'mejora', text: 'Publicación del documento visible en todas las vistas y traducida' },
|
|
||||||
{ type: 'mejora', text: 'Corrección de estilos visuales para contenido antiguo' },
|
|
||||||
{ type: 'fix', text: 'Corrección de bug en favoritos (detalle)' },
|
|
||||||
{ type: 'fix', text: 'Badge "Borrador" agregado en lista y detalle de Estudios Bíblicos' },
|
|
||||||
{ type: 'fix', text: 'Rutas de navegación migradas correctamente a nuevo motor de búsqueda' },
|
|
||||||
{ type: 'fix', text: 'Corrección de scroll infinito en móvil para Entrelíneas' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
version: '0.1',
|
|
||||||
date: '10–12 de mayo, 2026',
|
|
||||||
title: 'Historial, Favoritos y multilengua',
|
|
||||||
description: 'Primera versión funcional con las secciones principales activas.',
|
|
||||||
changes: [
|
|
||||||
{ type: 'nuevo', text: 'Historial de búsqueda y exploración' },
|
|
||||||
{ type: 'nuevo', text: 'Favoritos: guarda y accede a documentos desde Mi Listado' },
|
|
||||||
{ type: 'nuevo', text: 'Selector de idioma: Español, English, Français, Português' },
|
|
||||||
{ type: 'nuevo', text: 'Cantidad aproximada de resultados visible en los listados' },
|
|
||||||
{ type: 'mejora', text: 'Paginación configurable: scroll infinito o páginas numeradas' },
|
|
||||||
{ type: 'mejora', text: 'Ajuste de cantidad de resultados por página en Configuración' },
|
|
||||||
{ type: 'fix', text: 'Corrección de traducciones en el menú principal' },
|
|
||||||
{ type: 'fix', text: 'Ajustes de colores y badges en listas de resultados' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
version: '0.0.1',
|
|
||||||
date: '7 de mayo, 2026',
|
|
||||||
title: 'Lanzamiento inicial',
|
|
||||||
description: 'Primera versión del buscador con Estudios Bíblicos y Entrelíneas.',
|
|
||||||
changes: [
|
|
||||||
{ type: 'nuevo', text: 'Búsqueda en Estudios Bíblicos' },
|
|
||||||
{ type: 'nuevo', text: 'Visor de Entrelíneas con imagen y texto' },
|
|
||||||
{ type: 'nuevo', text: 'Búsqueda por palabras o por frase exacta' },
|
|
||||||
{ type: 'nuevo', text: 'Estructura base de la aplicación' }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
vars {
|
vars {
|
||||||
baseUrl: https://searchts.carpa.com
|
baseUrl: https://searchts.carpa.com
|
||||||
|
searchApiKey: 3KrmYlcirARCxG4AZPV5bnJgQD0qtoW0
|
||||||
|
adminApiKey: 3KrmYlcirARCxG4AZPV5bnJgQD0qtoW0
|
||||||
}
|
}
|
||||||
vars:secret [
|
|
||||||
searchApiKey,
|
|
||||||
adminApiKey
|
|
||||||
]
|
|
||||||
|
|
|
||||||
27
lang/es.json
27
lang/es.json
|
|
@ -9,28 +9,7 @@
|
||||||
"my_list": "Mi Listado",
|
"my_list": "Mi Listado",
|
||||||
"history": "Historial",
|
"history": "Historial",
|
||||||
"settings": "Configuración",
|
"settings": "Configuración",
|
||||||
"changelog": "Novedades",
|
"changelog": "Novedades"
|
||||||
"tour": "Toma el tour"
|
|
||||||
},
|
|
||||||
"tour": {
|
|
||||||
"progress": "{current} de {total}",
|
|
||||||
"next": "Siguiente",
|
|
||||||
"prev": "Anterior",
|
|
||||||
"done": "Finalizar",
|
|
||||||
"bible_studies_description": "Realiza busquedas en los estudios biblicos predicados por el Dr. José Benjamín Pérez",
|
|
||||||
"conferences_description": "Realiza busquedas en las conferencias predicadas por el Dr. William Soto Santiago",
|
|
||||||
"betweenthelines_description": "Realiza busquedas en las imagenes de entrelineas de los estudios del Dr. José Benjamín Perez",
|
|
||||||
"favorites_description": "Listado de resultados guardados como favoritos para facil acceso futuro",
|
|
||||||
"history_description": "Historial de los resultados de busqueda que has visto",
|
|
||||||
"settings_description": "Configuracion, cantidad de resultados por pagina, tipo de paginacion, entre otros",
|
|
||||||
"changelog_description": "Bitacora de cambios realizados al sitio en orden cronologico",
|
|
||||||
"feedback_description": "Tienes alguna sugerencia o queja? realizala aqui",
|
|
||||||
"localeselector_description": "Cambia facilmente el idioma de la pagina",
|
|
||||||
"index_changelog": "Panel de ultimos cambios subidos",
|
|
||||||
"favorites_toggle": "Boton para guardar / quitar este documento de mis favoritos"
|
|
||||||
},
|
|
||||||
"home": {
|
|
||||||
"instructions": "Bienvenidos, aqui podran buscar entre los estudios biblicos, las conferencias y las entrelineas que estan disponibles en el material de archivo de La Gran Carpa Catedral."
|
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"placeholder": "Buscar...",
|
"placeholder": "Buscar...",
|
||||||
|
|
@ -111,9 +90,5 @@
|
||||||
"draft": "Borrador",
|
"draft": "Borrador",
|
||||||
"empty_bible_studies": "Selecciona un Estudio Bíblico para ver el detalle",
|
"empty_bible_studies": "Selecciona un Estudio Bíblico para ver el detalle",
|
||||||
"empty_conferences": "Selecciona una Conferencia para ver el detalle"
|
"empty_conferences": "Selecciona una Conferencia para ver el detalle"
|
||||||
},
|
|
||||||
"seo": {
|
|
||||||
"title": "La Gran Carpa Catedral - Buscador",
|
|
||||||
"description": "Buscador de actividades y conferencias."
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
// https://nuxt.com/docs/api/configuration/nuxt-config
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
modules: ['@nuxt/eslint', '@nuxt/ui', '@vueuse/nuxt', '@nuxtjs/i18n', '@pinia/nuxt', '@sfxcode/nuxt-typesense','nuxt-driver.js'],
|
modules: ['@nuxt/eslint', '@nuxt/ui', '@vueuse/nuxt', '@nuxtjs/i18n', '@pinia/nuxt', '@sfxcode/nuxt-typesense'],
|
||||||
|
|
||||||
app: {
|
app: {
|
||||||
head: {
|
head: {
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"dayjs": "^1.11.20",
|
"dayjs": "^1.11.20",
|
||||||
"nuxt": "^4.4.2",
|
"nuxt": "^4.4.2",
|
||||||
"nuxt-driver.js": "^0.1.1",
|
|
||||||
"pinia": "^3.0.4",
|
"pinia": "^3.0.4",
|
||||||
"scule": "^1.3.0",
|
"scule": "^1.3.0",
|
||||||
"tailwindcss": "^4.2.4",
|
"tailwindcss": "^4.2.4",
|
||||||
|
|
@ -2156,6 +2155,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@nuxt/cli/node_modules/std-env": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@nuxt/devalue": {
|
"node_modules/@nuxt/devalue": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/@nuxt/devalue/-/devalue-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@nuxt/devalue/-/devalue-2.0.2.tgz",
|
||||||
|
|
@ -2382,25 +2387,25 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@nuxt/icon": {
|
"node_modules/@nuxt/icon": {
|
||||||
"version": "2.2.2",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@nuxt/icon/-/icon-2.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/@nuxt/icon/-/icon-2.2.1.tgz",
|
||||||
"integrity": "sha512-K9wINW21M9x5GcKF5JEXzPKAT/Kfxl/vdnEyppw54hh5qoLcdi5HmsYoTfDP9gbJ6Z1T6IdH5JxBWk72HMe1Zg==",
|
"integrity": "sha512-GI840yYGuvHI0BGDQ63d6rAxGzG96jQcWrnaWIQKlyQo/7sx9PjXkSHckXUXyX1MCr9zY6U25Td6OatfY6Hklw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@iconify/collections": "^1.0.679",
|
"@iconify/collections": "^1.0.641",
|
||||||
"@iconify/types": "^2.0.0",
|
"@iconify/types": "^2.0.0",
|
||||||
"@iconify/utils": "^3.1.1",
|
"@iconify/utils": "^3.1.0",
|
||||||
"@iconify/vue": "^5.0.0",
|
"@iconify/vue": "^5.0.0",
|
||||||
"@nuxt/devtools-kit": "^3.2.4",
|
"@nuxt/devtools-kit": "^3.1.1",
|
||||||
"@nuxt/kit": "^4.4.4",
|
"@nuxt/kit": "^4.2.2",
|
||||||
"consola": "^3.4.2",
|
"consola": "^3.4.2",
|
||||||
"local-pkg": "^1.1.2",
|
"local-pkg": "^1.1.2",
|
||||||
"mlly": "^1.8.2",
|
"mlly": "^1.8.0",
|
||||||
"ohash": "^2.0.11",
|
"ohash": "^2.0.11",
|
||||||
"pathe": "^2.0.3",
|
"pathe": "^2.0.3",
|
||||||
"picomatch": "^4.0.4",
|
"picomatch": "^4.0.3",
|
||||||
"std-env": "^4.1.0",
|
"std-env": "^3.10.0",
|
||||||
"tinyglobby": "^0.2.16"
|
"tinyglobby": "^0.2.15"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@nuxt/kit": {
|
"node_modules/@nuxt/kit": {
|
||||||
|
|
@ -2498,6 +2503,12 @@
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@nuxt/nitro-server/node_modules/std-env": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@nuxt/schema": {
|
"node_modules/@nuxt/schema": {
|
||||||
"version": "4.4.4",
|
"version": "4.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-4.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-4.4.4.tgz",
|
||||||
|
|
@ -2514,6 +2525,12 @@
|
||||||
"node": "^14.18.0 || >=16.10.0"
|
"node": "^14.18.0 || >=16.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@nuxt/schema/node_modules/std-env": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@nuxt/telemetry": {
|
"node_modules/@nuxt/telemetry": {
|
||||||
"version": "2.8.0",
|
"version": "2.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@nuxt/telemetry/-/telemetry-2.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/@nuxt/telemetry/-/telemetry-2.8.0.tgz",
|
||||||
|
|
@ -2542,6 +2559,12 @@
|
||||||
"integrity": "sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA==",
|
"integrity": "sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/@nuxt/telemetry/node_modules/std-env": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@nuxt/ui": {
|
"node_modules/@nuxt/ui": {
|
||||||
"version": "4.7.1",
|
"version": "4.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/@nuxt/ui/-/ui-4.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/@nuxt/ui/-/ui-4.7.1.tgz",
|
||||||
|
|
@ -2740,6 +2763,12 @@
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@nuxt/vite-builder/node_modules/std-env": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/@nuxtjs/color-mode": {
|
"node_modules/@nuxtjs/color-mode": {
|
||||||
"version": "3.5.2",
|
"version": "3.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/@nuxtjs/color-mode/-/color-mode-3.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/@nuxtjs/color-mode/-/color-mode-3.5.2.tgz",
|
||||||
|
|
@ -10416,12 +10445,6 @@
|
||||||
"url": "https://dotenvx.com"
|
"url": "https://dotenvx.com"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/driver.js": {
|
|
||||||
"version": "1.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/driver.js/-/driver.js-1.4.0.tgz",
|
|
||||||
"integrity": "sha512-Gm64jm6PmcU+si21sQhBrTAM1JvUrR0QhNmjkprNLxohOBzul9+pNHXgQaT9lW84gwg9GMLB3NZGuGolsz5uew==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/dunder-proto": {
|
"node_modules/dunder-proto": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
||||||
|
|
@ -13274,6 +13297,12 @@
|
||||||
"listhen": "bin/listhen.mjs"
|
"listhen": "bin/listhen.mjs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/listhen/node_modules/std-env": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/load-tsconfig": {
|
"node_modules/load-tsconfig": {
|
||||||
"version": "0.2.5",
|
"version": "0.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz",
|
"resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz",
|
||||||
|
|
@ -14377,6 +14406,12 @@
|
||||||
"node": ">= 12"
|
"node": ">= 12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/nitropack/node_modules/std-env": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/nitropack/node_modules/unimport": {
|
"node_modules/nitropack/node_modules/unimport": {
|
||||||
"version": "6.2.0",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/unimport/-/unimport-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/unimport/-/unimport-6.2.0.tgz",
|
||||||
|
|
@ -14619,16 +14654,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/nuxt-driver.js": {
|
|
||||||
"version": "0.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/nuxt-driver.js/-/nuxt-driver.js-0.1.1.tgz",
|
|
||||||
"integrity": "sha512-K8SJBzLD8oyu3mhp2vv6F6/SUEaXSp067iGLCPDiMGh4w86VdDArapPmyylH9ZvYq/aeltVPbS6S/uOuVtAXHw==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@nuxt/kit": "^4.4.4",
|
|
||||||
"driver.js": "^1.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/nuxt/node_modules/cookie-es": {
|
"node_modules/nuxt/node_modules/cookie-es": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.1.tgz",
|
||||||
|
|
@ -14656,6 +14681,12 @@
|
||||||
"@types/estree": "^1.0.0"
|
"@types/estree": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/nuxt/node_modules/std-env": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/nuxt/node_modules/unimport": {
|
"node_modules/nuxt/node_modules/unimport": {
|
||||||
"version": "6.2.0",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/unimport/-/unimport-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/unimport/-/unimport-6.2.0.tgz",
|
||||||
|
|
@ -16747,9 +16778,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/std-env": {
|
"node_modules/std-env": {
|
||||||
"version": "4.1.0",
|
"version": "3.10.0",
|
||||||
"resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
|
||||||
"integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
|
"integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/streamx": {
|
"node_modules/streamx": {
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"dayjs": "^1.11.20",
|
"dayjs": "^1.11.20",
|
||||||
"nuxt": "^4.4.2",
|
"nuxt": "^4.4.2",
|
||||||
"nuxt-driver.js": "^0.1.1",
|
|
||||||
"pinia": "^3.0.4",
|
"pinia": "^3.0.4",
|
||||||
"scule": "^1.3.0",
|
"scule": "^1.3.0",
|
||||||
"tailwindcss": "^4.2.4",
|
"tailwindcss": "^4.2.4",
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg width="100%" height="100%" viewBox="0 0 1000 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
|
||||||
<g>
|
|
||||||
<clipPath id="_clip1">
|
|
||||||
<circle cx="500" cy="500" r="470"/>
|
|
||||||
</clipPath>
|
|
||||||
<g clip-path="url(#_clip1)">
|
|
||||||
<g transform="matrix(41.330743,0,0,41.330743,-2116.926503,-46.100585)">
|
|
||||||
<path d="M88.473,25.492C79.652,22.367 63.422,23.441 59.117,25.473C77.457,13.191 100.926,2.789 128.516,0.344C134.094,-0.098 141.602,-0.145 148.871,0.402C183.086,2.969 210.52,21.004 226.969,43C211.91,29.102 187.027,10.215 147.359,10.215C116.781,10.215 93.781,22.441 88.473,25.492Z" style="fill:rgb(236,27,35);"/>
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(41.330743,0,0,41.330743,-2116.926503,-46.100585)">
|
|
||||||
<path d="M29.234,25.473C20.656,22.078 4.145,23.656 0.199,25.418C22.531,9.531 54.453,-1.191 101.211,0.512C57.047,3.617 32.789,23.152 29.234,25.473Z" style="fill:rgb(45,77,162);"/>
|
|
||||||
</g>
|
|
||||||
<g transform="matrix(41.330743,0,0,41.330743,-2116.926503,-46.100585)">
|
|
||||||
<path d="M59.117,25.535C50.535,22.141 33.18,23.711 29.234,25.473C51.57,9.586 79.883,-2.051 128.961,0.473C94.258,2.949 69.059,19.316 59.117,25.535Z" style="fill:rgb(254,254,254);"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
Loading…
Reference in New Issue