mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-22 12:03:25 -04:00
Merge branch PronounsPage:main into main
This commit is contained in:
commit
9e961db51d
1
app.vue
1
app.vue
@ -56,6 +56,7 @@ useSeoMeta({
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NuxtRouteAnnouncer />
|
||||
<NuxtPwaManifest />
|
||||
<NuxtLoadingIndicator color="#C71585" error-color="#dc3545" />
|
||||
<NuxtLayout>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<script setup lang="ts">
|
||||
import { getUrlForLocale } from '~/src/domain.ts';
|
||||
import LocaleLink from '~/components/LocaleLink.vue';
|
||||
|
||||
interface Count {
|
||||
name?: string;
|
||||
@ -23,12 +23,6 @@ const props = withDefaults(
|
||||
},
|
||||
);
|
||||
|
||||
const config = useConfig();
|
||||
|
||||
const baseUrl = computed(() => {
|
||||
return getUrlForLocale(props.locale ?? config.locale);
|
||||
});
|
||||
|
||||
const visibleCounts = computed((): Count[] => {
|
||||
return props.counts.filter(({ enabled }) => enabled !== false);
|
||||
});
|
||||
@ -46,7 +40,13 @@ const counterClass = (count: number, warning: number | undefined, danger: number
|
||||
|
||||
<template>
|
||||
<div class="col-12 col-lg-3">
|
||||
<component :is="link ? 'a' : 'div'" :href="baseUrl + link" class="card mb-3" style="min-height: 128px;">
|
||||
<component
|
||||
:is="link ? LocaleLink : 'div'"
|
||||
:link
|
||||
:locale="link ? locale : undefined"
|
||||
class="card mb-3"
|
||||
style="min-height: 128px;"
|
||||
>
|
||||
<div class="card-body text-center d-flex align-items-center">
|
||||
<div class="w-100">
|
||||
<h4>
|
||||
@ -60,8 +60,9 @@ const counterClass = (count: number, warning: number | undefined, danger: number
|
||||
class="list-inline-item"
|
||||
>
|
||||
<component
|
||||
:is="sublink ? 'a' : 'span'"
|
||||
:href="baseUrl + sublink"
|
||||
:is="sublink ? LocaleLink : 'span'"
|
||||
:link="sublink"
|
||||
:locale="sublink ? locale : undefined"
|
||||
:class="['badge', counterClass(count, warning, danger)]"
|
||||
>
|
||||
{{ count }} {{ name || '' }}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<script lang="ts" setup>
|
||||
import { useStorage } from '@vueuse/core';
|
||||
import { useLocalStorage } from '@vueuse/core';
|
||||
|
||||
const providerStorage = useStorage<string | undefined | null>('ads-provider', undefined);
|
||||
const providerStorage = useLocalStorage<string | undefined | null>('ads-provider', undefined, { initOnMounted: true });
|
||||
|
||||
const PROVIDERS = {
|
||||
'Geniee': 'geniee',
|
||||
|
@ -75,15 +75,15 @@ selectPronounForExample(false);
|
||||
(<nuxt-link :to="`/${pronoun.canonicalName}`"><Spelling escape :text="pronoun.canonicalName" /></nuxt-link>)
|
||||
</small>
|
||||
</ExampleItem>
|
||||
<Tooltip :text="tooltipText">
|
||||
<button
|
||||
v-if="hasDifferentExample"
|
||||
type="button"
|
||||
class="btn btn-sm btn-link px-1 py-0"
|
||||
@click="selectDifferentExample()"
|
||||
>
|
||||
<Icon v="random" />
|
||||
</button>
|
||||
<Tooltip
|
||||
v-if="hasDifferentExample"
|
||||
:text="tooltipText"
|
||||
tag="button"
|
||||
type="button"
|
||||
class="btn btn-sm btn-link px-1 py-0"
|
||||
@click="selectDifferentExample()"
|
||||
>
|
||||
<Icon v="random" />
|
||||
</Tooltip>
|
||||
</li>
|
||||
</template>
|
||||
|
@ -4,7 +4,7 @@ import type { Category } from '~/src/classes.ts';
|
||||
const filter = defineModel<string>();
|
||||
const filterCategory = defineModel<string>('category');
|
||||
|
||||
defineProps<{
|
||||
const props = defineProps<{
|
||||
categories?: Category[] | undefined;
|
||||
submitButton?: boolean;
|
||||
}>();
|
||||
@ -17,10 +17,32 @@ const filterInput = useTemplateRef<HTMLInputElement>('filterInput');
|
||||
|
||||
const { $translator: translator } = useNuxtApp();
|
||||
const allCategory: Category = { key: '', text: translator.translate('crud.all'), icon: 'clipboard-list' };
|
||||
const categoriesWithAllCategory = computed(() => [allCategory, ...(props.categories ?? [])]);
|
||||
|
||||
defineExpose({
|
||||
focus: () => filterInput.value?.focus(),
|
||||
});
|
||||
|
||||
const categoryList = useTemplateRef('categoryList');
|
||||
const categoryButtonKeydown = (event: KeyboardEvent) => {
|
||||
if (filterCategory.value === undefined) {
|
||||
return;
|
||||
}
|
||||
const activeIndex = categoriesWithAllCategory.value.map((category) => category.key).indexOf(filterCategory.value);
|
||||
if (activeIndex === -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((event.key === 'ArrowUp' || event.key === 'ArrowLeft') &&
|
||||
activeIndex > 0) {
|
||||
filterCategory.value = categoriesWithAllCategory.value[activeIndex - 1].key;
|
||||
(categoryList.value?.children[activeIndex - 1] as HTMLButtonElement | undefined)?.focus();
|
||||
} else if ((event.key === 'ArrowDown' || event.key === 'ArrowRight') &&
|
||||
activeIndex < categoriesWithAllCategory.value.length - 1) {
|
||||
filterCategory.value = categoriesWithAllCategory.value[activeIndex + 1].key;
|
||||
(categoryList.value?.children[activeIndex + 1] as HTMLButtonElement | undefined)?.focus();
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -36,7 +58,12 @@ defineExpose({
|
||||
class="form-control border-primary"
|
||||
:placeholder="$t('crud.filterLong')"
|
||||
>
|
||||
<button v-if="filter" class="btn btn-outline-danger" @click="filter = ''; filterInput?.focus()">
|
||||
<button
|
||||
v-if="filter"
|
||||
class="btn btn-outline-danger"
|
||||
:title="$t('crud.resetFilter')"
|
||||
@click="filter = ''; filterInput?.focus()"
|
||||
>
|
||||
<Icon v="times" />
|
||||
</button>
|
||||
<button
|
||||
@ -50,17 +77,20 @@ defineExpose({
|
||||
</div>
|
||||
<div
|
||||
v-if="categories && categories.length > 0"
|
||||
ref="categoryList"
|
||||
class="d-flex flex-wrap mt-1 border border-primary rounded overflow-hidden"
|
||||
>
|
||||
<button
|
||||
v-for="category of [allCategory, ...categories]"
|
||||
v-for="category of categoriesWithAllCategory"
|
||||
:key="category.text"
|
||||
:class="[
|
||||
'btn btn-sm btn-wrapped',
|
||||
filterCategory === category.key ? 'btn-primary' : 'btn-outline-primary',
|
||||
'flex-grow-1 d-flex justify-content-center align-items-center gap-1 rounded-0',
|
||||
]"
|
||||
:tabindex="filterCategory === category.key ? 0 : -1"
|
||||
@click="filterCategory = category.key"
|
||||
@keydown="categoryButtonKeydown"
|
||||
>
|
||||
<Icon v-if="category.icon" :v="category.icon" />
|
||||
<Spelling :text="category.text" />
|
||||
|
@ -1,12 +1,8 @@
|
||||
<script setup lang="ts">
|
||||
import { loadGrammarTableVariantsConverter } from '~/src/data.ts';
|
||||
import type { Example, ExampleValues } from '~/src/language/examples.ts';
|
||||
import {
|
||||
type GrammarTableDefinition,
|
||||
type Variant,
|
||||
type SectionDefinition,
|
||||
expandVariantsForSection,
|
||||
} from '~/src/language/grammarTables.ts';
|
||||
import { expandVariantsForSection } from '~/src/language/grammarTables.ts';
|
||||
import type { GrammarTableDefinition, Variant, SectionDefinition } from '~/src/language/grammarTables.ts';
|
||||
|
||||
const props = defineProps<{
|
||||
grammarTable: GrammarTableDefinition;
|
||||
|
@ -286,6 +286,7 @@ const dismissCensus = (): void => {
|
||||
<template>
|
||||
<div v-if="config.header" class="mb-lg-4">
|
||||
<header @mouseleave="hoverItem = null">
|
||||
<SkipLink />
|
||||
<div class="d-none d-lg-flex justify-content-between align-items-center flex-row nav-custom btn-group mb-0">
|
||||
<template v-for="link in links">
|
||||
<PotentiallyExternalLink
|
||||
|
@ -11,7 +11,7 @@
|
||||
:class="['icon', $attrs.class]"
|
||||
@error="fallBack"
|
||||
>
|
||||
<span v-else :class="[`fa${iconSet}`, `fa-${icon}`, 'fa-fw', hover ? 'fa-hover' : '']" :style="style"></span>
|
||||
<span v-else aria-hidden="true" :class="[`fa${iconSet}`, `fa-${icon}`, 'fa-fw', hover ? 'fa-hover' : '']" :style></span>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
|
@ -1,22 +1,28 @@
|
||||
<script setup lang="ts">
|
||||
import { getUrlForLocale } from '~/src/domain.ts';
|
||||
|
||||
defineProps<{
|
||||
const props = defineProps<{
|
||||
link: string;
|
||||
locale: string;
|
||||
locale?: string;
|
||||
}>();
|
||||
|
||||
const config = useConfig();
|
||||
|
||||
const isExternal = computed(() => !props.link.startsWith('/'));
|
||||
|
||||
const to = computed(() => {
|
||||
if (isExternal.value) {
|
||||
return props.link;
|
||||
}
|
||||
if (props.locale !== undefined && props.locale !== config.locale) {
|
||||
return getUrlForLocale(props.locale) + props.link;
|
||||
}
|
||||
return props.link;
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<nuxt-link v-if="locale === config.locale" :to="link" :class="$attrs.class">
|
||||
<NuxtLink :to :no-rel="!isExternal" :target="isExternal ? '_blank' : undefined">
|
||||
<slot></slot>
|
||||
</nuxt-link>
|
||||
<a v-else-if="locale === 'external'" :href="link" target="_blank" rel="noopener" :class="$attrs.class">
|
||||
<slot></slot>
|
||||
</a>
|
||||
<a v-else :href="getUrlForLocale(locale) + link" :class="$attrs.class">
|
||||
<slot></slot>
|
||||
</a>
|
||||
</NuxtLink>
|
||||
</template>
|
||||
|
@ -1,5 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import opinions, { type Opinion } from '~/src/opinions.ts';
|
||||
import opinions from '~/src/opinions.ts';
|
||||
import type { Opinion } from '~/src/opinions.ts';
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
word: string;
|
||||
|
@ -11,7 +11,7 @@ defineProps<{
|
||||
<AdPlaceholder :phkey="['aside-left', null]" class="d-none d-xxl-block" />
|
||||
</slot>
|
||||
</aside>
|
||||
<main :class="[wide ? 'wide' : '']">
|
||||
<main id="main" :class="[wide ? 'wide' : '']">
|
||||
<slot></slot>
|
||||
</main>
|
||||
<aside v-if="!wide" class="aside-right">
|
||||
|
@ -20,7 +20,11 @@ defineProps<{
|
||||
</p>
|
||||
<SimplePronounList :pronouns="Array.isArray(pronouns) ? pronouns : Object.values(pronouns)" />
|
||||
</li>
|
||||
<nuxt-link :to="{ name: 'pronouns' }" class="list-group-item list-group-item-action text-center">
|
||||
<nuxt-link
|
||||
:to="{ name: 'pronouns' }"
|
||||
class="list-group-item list-group-item-action text-center"
|
||||
:title="$t('home.pronouns')"
|
||||
>
|
||||
<Icon v="ellipsis-h-alt" />
|
||||
</nuxt-link>
|
||||
</ul>
|
||||
|
20
components/SkipLink.vue
Normal file
20
components/SkipLink.vue
Normal file
@ -0,0 +1,20 @@
|
||||
<script setup lang="ts">
|
||||
const router = useRouter();
|
||||
|
||||
router.afterEach(async (to, from) => {
|
||||
if (to.path !== from.path) {
|
||||
await nextTick();
|
||||
// reset the focus to the start of the document
|
||||
// so that the skip link is the first element in tab order after navigation
|
||||
document.body.tabIndex = 0;
|
||||
document.body.focus();
|
||||
document.body.tabIndex = -1;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a ref="link" href="#main" class="sr-only sr-only-focusable position-fixed top-0 z-1">
|
||||
<T>home.skipToContent</T>
|
||||
</a>
|
||||
</template>
|
@ -31,6 +31,16 @@ const addMarks = (t: string) => {
|
||||
</template>, {{ source.year }}<template v-if="source.comment">
|
||||
; <Spelling :text="source.comment" />
|
||||
</template>
|
||||
<ul v-if="changeSource !== undefined && !$isGranted('sources')" class="list-inline float-end">
|
||||
<li class="list-inline-item">
|
||||
<button type="button" class="btn btn-outline-secondary btn-sm btn-concise" @click="changeSource.edit(source)">
|
||||
<Icon v="pen" />
|
||||
<span class="btn-label">
|
||||
<T>nouns.edit</T>
|
||||
</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</h3>
|
||||
<ul v-if="changeSource !== undefined && $isGranted('sources')" class="list-inline">
|
||||
<li v-if="!source.approved" class="list-inline-item">
|
||||
|
@ -55,7 +55,7 @@ defineExpose({
|
||||
|
||||
<template>
|
||||
<section ref="section" class="table-responsive scroll-mt-7">
|
||||
<div class="container">
|
||||
<div class="container" role="table">
|
||||
<nav v-if="pages > 1" class="d-flex justify-content-center p-2">
|
||||
<ul class="pagination pagination-sm justify-content-center mb-0">
|
||||
<li
|
||||
@ -78,7 +78,7 @@ defineExpose({
|
||||
<strong>{{ data.length }}</strong>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-header p-2 d-grid gap-2 border-top">
|
||||
<div class="row-header p-2 d-grid gap-2 border-top" role="row">
|
||||
<slot name="header"></slot>
|
||||
</div>
|
||||
<template v-if="data.length">
|
||||
@ -86,6 +86,7 @@ defineExpose({
|
||||
v-for="el in dataPage"
|
||||
:key="el.id"
|
||||
:class="['row-content p-2 d-grid gap-2 border-top', marked?.(el) ? 'marked' : '']"
|
||||
role="row"
|
||||
>
|
||||
<slot name="row" :el="el"></slot>
|
||||
</div>
|
||||
|
@ -1,74 +1,81 @@
|
||||
<script setup lang="ts">
|
||||
import useHash from '~/composables/useHash.ts';
|
||||
|
||||
const props = defineProps<{
|
||||
tabs: (string | undefined)[];
|
||||
pills?: boolean;
|
||||
showheaders?: boolean;
|
||||
navclass?: string;
|
||||
anchors?: boolean;
|
||||
}>();
|
||||
|
||||
const { handleHash, setHash } = useHash();
|
||||
|
||||
const visibleTabs = computed(() => props.tabs.filter((x) => x !== undefined));
|
||||
const activeTab = ref(visibleTabs.value[0]);
|
||||
|
||||
watch(activeTab, () => {
|
||||
if (!props.anchors) {
|
||||
return;
|
||||
}
|
||||
setHash('', activeTab.value);
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
if (!props.anchors) {
|
||||
return;
|
||||
}
|
||||
|
||||
handleHash('', (hash) => {
|
||||
if (!visibleTabs.value.includes(hash)) {
|
||||
return;
|
||||
}
|
||||
activeTab.value = hash;
|
||||
}, false);
|
||||
});
|
||||
|
||||
const tablist = useTemplateRef('tablist');
|
||||
const tabKeydown = (event: KeyboardEvent) => {
|
||||
const activeIndex = visibleTabs.value.indexOf(activeTab.value);
|
||||
if (activeIndex === -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((event.key === 'ArrowUp' || event.key === 'ArrowLeft') &&
|
||||
activeIndex > 0) {
|
||||
activeTab.value = visibleTabs.value[activeIndex - 1];
|
||||
(tablist.value?.children[activeIndex - 1].firstElementChild as HTMLButtonElement | undefined)?.focus();
|
||||
} else if ((event.key === 'ArrowDown' || event.key === 'ArrowRight') &&
|
||||
activeIndex < visibleTabs.value.length - 1) {
|
||||
activeTab.value = visibleTabs.value[activeIndex + 1];
|
||||
(tablist.value?.children[activeIndex + 1].firstElementChild as HTMLButtonElement | undefined)?.focus();
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<ul :class="['nav', pills ? 'nav-pills' : 'nav-tabs', navclass]">
|
||||
<li v-for="tab in visibleTabs" class="nav-item">
|
||||
<a
|
||||
<ul ref="tablist" :class="['nav', pills ? 'nav-pills' : 'nav-tabs', navclass]" role="tablist">
|
||||
<li v-for="tab in visibleTabs" :key="tab" class="nav-item" role="tab">
|
||||
<button
|
||||
type="button"
|
||||
:tabindex="activeTab === tab ? 0 : -1"
|
||||
:class="['nav-link', activeTab === tab ? 'active' : '']"
|
||||
:aria-current="activeTab === tab ? 'page' : ''"
|
||||
href="#"
|
||||
@click.prevent="activeTab = tab"
|
||||
:aria-selected="activeTab === tab"
|
||||
@click="activeTab = tab"
|
||||
@keydown="tabKeydown"
|
||||
>
|
||||
<slot :name="`${tab}-header`"></slot>
|
||||
</a>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="card">
|
||||
<div v-for="tab in visibleTabs" :class="['card-body', activeTab === tab ? 'd-block-force' : 'd-none']">
|
||||
<div class="card" role="tabpanel">
|
||||
<div class="card-body">
|
||||
<h3 v-if="showheaders" class="h4 mb-3">
|
||||
<slot :name="`${tab}-header`"></slot>
|
||||
<slot :name="`${activeTab}-header`"></slot>
|
||||
</h3>
|
||||
<slot :name="tab"></slot>
|
||||
<slot :name="activeTab"></slot>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { defineComponent } from 'vue';
|
||||
|
||||
import useHash from '../composables/useHash.ts';
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
tabs: { required: true },
|
||||
active: {},
|
||||
pills: { type: Boolean },
|
||||
showheaders: { type: Boolean },
|
||||
navclass: { default: 'nav-tabs' },
|
||||
anchors: { type: Boolean },
|
||||
},
|
||||
setup() {
|
||||
const { handleHash, setHash } = useHash();
|
||||
return {
|
||||
handleHash,
|
||||
setHash,
|
||||
};
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
visibleTabs: this.tabs.filter((x) => x !== undefined),
|
||||
activeTab: this.active || this.tabs[0],
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
activeTab() {
|
||||
if (!this.anchors) {
|
||||
return;
|
||||
}
|
||||
this.setHash('', this.activeTab);
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
if (!this.anchors) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.handleHash('', (hash) => {
|
||||
if (!this.visibleTabs.includes(hash)) {
|
||||
return;
|
||||
}
|
||||
this.activeTab = hash;
|
||||
}, false);
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
@ -72,6 +72,7 @@ const setSpelling = (spelling: string) => {
|
||||
class="d-inline-block"
|
||||
:end="end"
|
||||
menu-class="locale-dropdown shadow"
|
||||
:title="$t('links.languageVersions')"
|
||||
>
|
||||
<template #toggle>
|
||||
<Icon v="language" />
|
||||
|
@ -119,7 +119,11 @@ const nounConventionGroup = computed(() => {
|
||||
<li class="list-group-item">
|
||||
<NounsConventionsIndexGroup :noun-convention-group />
|
||||
</li>
|
||||
<nuxt-link :to="{ name: 'nouns' }" class="list-group-item list-group-item-action text-center">
|
||||
<nuxt-link
|
||||
:to="{ name: 'nouns' }"
|
||||
class="list-group-item list-group-item-action text-center"
|
||||
:title="$t('nouns.conventions.header')"
|
||||
>
|
||||
<Icon v="ellipsis-h-alt" />
|
||||
</nuxt-link>
|
||||
</ul>
|
||||
|
@ -127,7 +127,12 @@ defineExpose({ loadNouns });
|
||||
fixed
|
||||
>
|
||||
<template #header>
|
||||
<div v-for="gender in availableGenders(config)" :key="gender" class="d-none d-md-block bold">
|
||||
<div
|
||||
v-for="gender in availableGenders(config)"
|
||||
:key="gender"
|
||||
class="d-none d-md-block bold"
|
||||
role="columnheader"
|
||||
>
|
||||
<NounsGenderLabel :gender="gender" />
|
||||
</div>
|
||||
</template>
|
||||
|
@ -1,5 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import { type Gender, iconNamesByGender, longIdentifierByGender } from '~/src/nouns.ts';
|
||||
import { iconNamesByGender, longIdentifierByGender } from '~/src/nouns.ts';
|
||||
import type { Gender } from '~/src/nouns.ts';
|
||||
|
||||
const props = defineProps<{
|
||||
gender: Gender;
|
||||
|
@ -32,6 +32,7 @@ const numerus = computed(() => {
|
||||
v-for="plural in numerus"
|
||||
:key="plural ? 'plural' : 'singular'"
|
||||
:style="{ gridArea: `${gender}${plural ? 'Pl' : ''}` }"
|
||||
role="cell"
|
||||
>
|
||||
<NounsItem :noun="noun" :gender="gender" :plural="plural" />
|
||||
|
||||
|
@ -17,7 +17,7 @@ export default () => {
|
||||
const filter: Ref<Filter> = ref({ text: '', category: '', moderation: undefined });
|
||||
|
||||
onBeforeRouteUpdate((to) => {
|
||||
if (to.hash) {
|
||||
if (to.hash && !document.querySelector(to.hash)) {
|
||||
return { query: { filter: to.hash.substring(1).replace(/=$/, '') }, replace: true };
|
||||
}
|
||||
});
|
||||
|
@ -141,9 +141,10 @@ export default withNuxt(
|
||||
})
|
||||
.override('nuxt/import/rules', {
|
||||
rules: {
|
||||
'import/consistent-type-specifier-style': ['warn', 'prefer-top-level'],
|
||||
'import/extensions': ['error', 'ignorePackages'],
|
||||
'import/no-useless-path-segments': 'error',
|
||||
'import/order': ['error', {
|
||||
'import/no-useless-path-segments': 'warn',
|
||||
'import/order': ['warn', {
|
||||
'newlines-between': 'always',
|
||||
'alphabetize': { order: 'asc', orderImportKind: 'desc' },
|
||||
}],
|
||||
|
@ -93,7 +93,7 @@ const confirmAge = async (): Promise<void> => {
|
||||
const provider = useStorage<string | null>('ads-provider', null);
|
||||
|
||||
if (provider.value === null) {
|
||||
provider.value = Math.random() < 0.5 ? 'publift' : 'pushup';
|
||||
provider.value = Math.random() < 0.8 ? 'publift' : 'pushup';
|
||||
}
|
||||
|
||||
const adsEnabled = computed((): boolean => {
|
||||
|
@ -7,6 +7,7 @@ home:
|
||||
header: 'Pronouns'
|
||||
headerLong: 'List of pronouns'
|
||||
welcome: 'Welcome to pronouns.page!'
|
||||
skipToContent: 'Skip to content'
|
||||
intro: >
|
||||
We're creating a source of information about nonbinary and gender neutral language.
|
||||
why: 'What''s the deal with pronouns?'
|
||||
@ -213,6 +214,7 @@ nouns:
|
||||
apply: 'Apply template'
|
||||
overwrite: 'Are you sure you want to apply this template? This will replace previous inputs'
|
||||
conventions:
|
||||
header: 'Noun conventions'
|
||||
intro: 'Use for me'
|
||||
masculine: 'masculine'
|
||||
masculineShort: 'masc.'
|
||||
@ -497,7 +499,6 @@ contact:
|
||||
header: 'Contact'
|
||||
authors: 'Authors of the website'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Queer Calendar Bot'
|
||||
shop: 'Merch'
|
||||
faq: >
|
||||
@ -959,6 +960,7 @@ crud:
|
||||
add: 'Add'
|
||||
filter: 'Search…'
|
||||
filterLong: 'Search…'
|
||||
resetFilter: 'Reset filter'
|
||||
search: 'Search…'
|
||||
all: 'All'
|
||||
author: 'Added by'
|
||||
|
@ -1,6 +1,6 @@
|
||||
# التفكير خارج الإطار الثنائي
|
||||
|
||||
<small>2025-01-15 | [@auxiliaryfrfr](/@auxiliaryfrfr)</small>
|
||||
<small>2025-01-15 | عضو الجماعية</small>
|
||||
|
||||
<div class="alert alert-warning">
|
||||
<span class="fal fa-exclamation-triangle"></span>
|
||||
|
@ -400,7 +400,6 @@ contact:
|
||||
header: 'التواصل'
|
||||
authors: 'مؤلفو الموقع'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'روبوت اليومية المثلية'
|
||||
shop: 'السِلَعْ والبضائع'
|
||||
faq: 'قبل الكتابة، <strong>يجب مراجعة</strong> {/الأسئلة الشائعة=الأسئلة الشائعة} - فربما تكون الإجابة عن سؤال ما موجود بالفعل.'
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<Separator icon="book-alt" />
|
||||
<h3>Substantivkonventionen</h3>
|
||||
<h3><T>nouns.conventions.header</T></h3>
|
||||
<NounsConventionsIndex />
|
||||
<Separator icon="book-open" />
|
||||
<slot></slot>
|
||||
|
@ -7,6 +7,7 @@ home:
|
||||
header: 'Pronomen'
|
||||
headerLong: 'Liste von Pronomen'
|
||||
welcome: 'Willkommen zu Pronomen.net!'
|
||||
skipToContent: 'zum Inhalt springen'
|
||||
intro: >
|
||||
Wir sind eine Informationsquelle über nichtbinäre und geschlechtsneutrale Sprache.
|
||||
why: 'Warum sind Pronomen wichtig?'
|
||||
@ -233,6 +234,7 @@ nouns:
|
||||
apply: 'Vorlage anwenden'
|
||||
overwrite: 'Bist du sicher, dass du diese Vorlage anwenden möchtest? Sie ersetzt die vorherigen Eingaben'
|
||||
conventions:
|
||||
header: 'Substantivkonventionen'
|
||||
intro: 'Verwende für mich'
|
||||
masculine: 'Maskulin'
|
||||
masculineShort: 'Mask.'
|
||||
@ -609,7 +611,6 @@ contact:
|
||||
header: 'Kontakt'
|
||||
authors: 'Autor*innen der Website'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Bot für den Queeren Kalender'
|
||||
shop: 'Merch'
|
||||
language: >
|
||||
@ -1077,6 +1078,7 @@ crud:
|
||||
add: 'Hinzufügen'
|
||||
filter: 'Filter'
|
||||
filterLong: 'Liste filtern...'
|
||||
resetFilter: 'Filter zurücksetzen'
|
||||
search: 'Suchen…'
|
||||
all: 'Alle'
|
||||
author: 'Hinzugefügt von'
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Thinking Outside The Binary – even in the Arab world
|
||||
|
||||
<small>2025-01-15 | [@auxiliaryfrfr](/@auxiliaryfrfr)</small>
|
||||
<small>2025-01-15 | Team member</small>
|
||||
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item">
|
||||
|
@ -6,7 +6,8 @@ style:
|
||||
|
||||
header: true
|
||||
|
||||
disableTranslationProposals: true
|
||||
# even though English is our base locale, we can still use this interface to allow correcting typos
|
||||
disableTranslationProposals: false
|
||||
|
||||
pronouns:
|
||||
enabled: true
|
||||
|
@ -7,6 +7,7 @@ home:
|
||||
header: 'Pronouns'
|
||||
headerLong: 'List of pronouns'
|
||||
welcome: 'Welcome to pronouns.page!'
|
||||
skipToContent: 'Skip to content'
|
||||
intro: >
|
||||
We're creating a source of information about nonbinary and gender neutral language.
|
||||
why: 'What''s the deal with pronouns?'
|
||||
@ -667,7 +668,6 @@ contact:
|
||||
header: 'Contact'
|
||||
authors: 'Authors of the website'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Queer Calendar Bot'
|
||||
shop: 'Merch'
|
||||
faq: >
|
||||
@ -1175,6 +1175,7 @@ crud:
|
||||
add: 'Add'
|
||||
filter: 'Search…'
|
||||
filterLong: 'Search…'
|
||||
resetFilter: 'Reset filter'
|
||||
search: 'Search…'
|
||||
all: 'All'
|
||||
author: 'Added by'
|
||||
|
@ -451,7 +451,6 @@ contact:
|
||||
header: 'Kontakto'
|
||||
authors: 'Aŭtoroj de la retejo'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Roboto Kvira Kalendaro'
|
||||
shop: 'Aĉeteblaĵoj'
|
||||
team:
|
||||
@ -889,6 +888,7 @@ search:
|
||||
noResults: 'Mankas rezultoj por «%query%»'
|
||||
|
||||
english:
|
||||
headerLonger: 'An overview of Esperanto nonbinary pronouns'
|
||||
description: >
|
||||
If you don't speak Esperanto, yet still are interested in how this language tries to cope with the omnipresent
|
||||
binaries, we've prepared a short overview of those ideas in English.
|
||||
|
@ -533,7 +533,6 @@ contact:
|
||||
design:
|
||||
header: 'Pautas de diseño y activos'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Bot Calendario Queer'
|
||||
shop: 'Mercancía'
|
||||
|
||||
@ -807,6 +806,19 @@ profile:
|
||||
mutua, este será marcado con [s:shield-check].
|
||||
relationship: 'Relación (p. ej. "pareja", "mejor amigx")'
|
||||
add: 'Añade gente a tu círculo'
|
||||
blocks:
|
||||
header: 'Cuentas bloqueadas'
|
||||
action: 'Bloquear a esta persona'
|
||||
confirm: >
|
||||
Estás seguro/a/x de que quieres bloquear a @%username%? No serán capaces de ver sus tarjetas mutuamente o
|
||||
añadirse a vuestros círculos. Esto puede ser reversible en la página de tu cuenta.
|
||||
unblock:
|
||||
action: 'Desbloquear a esta persona'
|
||||
confirm: >
|
||||
Estás seguro/a/x de que quieres desbloquear a @%username%? Podrán ser capaces de ver sus tarjetas
|
||||
mutuamente o añadirse a vuestros círculos.
|
||||
empty: 'Actualmente no tienes a ninguna cuenta bloqueada.'
|
||||
instruction: 'Puedes bloquear a una persona visitando su perfil.'
|
||||
backup:
|
||||
header: 'Copia de seguridad de tarjetas'
|
||||
headerShort: 'Copia'
|
||||
|
@ -392,7 +392,6 @@ contact:
|
||||
header: 'Kontakt'
|
||||
authors: 'Veebilehe autorid'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Kväärikalendri bot'
|
||||
shop: 'Fännikaup'
|
||||
faq: >
|
||||
|
@ -12,25 +12,24 @@ home:
|
||||
why: 'Hvat eru fornøvn og hvat brúka vit tey til?'
|
||||
about:
|
||||
- >
|
||||
Fornøvn eru orðini vit brúka ístaðin fyri at brúka navnið hjá onkrum, hvørja ferð vit tosa við tey.
|
||||
Flest fólk brúka {/hann=“hann/hansara”} ella {/hon=”hon/hennara”}, tí gitað vit automatiskt hvat fornavn onkur brúkar útfrá teirra útsjónd.
|
||||
Men tað er faktiskt ikki so einfalt…
|
||||
Fornøvn eru orðini vit brúka ístaðin fyri at brúka navnið hjá onkrum, hvørja ferð vit tosa við tey. Flest
|
||||
fólk brúka {/hann=“hann/hansara”} ella {/hon=”hon/hennara”}, tí gitað vit automatiskt hvat fornavn onkur
|
||||
brúkar útfrá teirra útsjónd. Men tað er faktiskt ikki so einfalt…
|
||||
- >
|
||||
Kyn er nokkso fløkt. Onkur fólk “síggja ikki út sum” teirra kyn.
|
||||
Summi ynskja at vera kallað okkurt annað enn hvat man kanska fyrst hevði gitt.
|
||||
Nøkur fólk passað ikki inn í kassarnar “maður” ella “kvinna” og vilja heldur brúka meira nevtralt mál.
|
||||
Kyn er nokkso fløkt. Onkur fólk “síggja ikki út sum” teirra kyn. Summi ynskja at vera kallað okkurt annað enn
|
||||
hvat man kanska fyrst hevði gitt. Nøkur fólk passað ikki inn í kassarnar “maður” ella “kvinna” og vilja
|
||||
heldur brúka meira nevtralt mál.
|
||||
- >
|
||||
Hettar tólið loyvir tær at deila eina leinkju við tíni fornøvnum, og nakrar setningar sum dømi,
|
||||
so tú kanst vísa onnur hvørji fornøvn tú brúkar.
|
||||
Hettar tólið loyvir tær at deila eina leinkju við tíni fornøvnum, og nakrar setningar sum dømi, so tú kanst
|
||||
vísa onnur hvørji fornøvn tú brúkar.
|
||||
- >
|
||||
Hví er tað týdningarmikið? Tí tað er einfald menniskjalig virðing.
|
||||
Tú hevði ikki kallað Mariu fyri “Rebekka” bara tí tú dámar tað navnið betri.
|
||||
Ella tí at “hon sær út sum ein Rebekka”.
|
||||
Eisini sjálvt um hon <em>hevur</em> navnið “Rebekka” á hennara dópsváttan,
|
||||
men hon absolutt hatar tað og vil heldur brúka “Maria”.
|
||||
Tað er akkurát tað sama við fornøvnum -
|
||||
um tú ikki vilt verða ófólkaligur ímóti onkrum, so kallar tú tey fyri tað tey ynskja.
|
||||
Einasti munurin er at vanliga vita vit nøvnini hjá fólki, men ikki fornøvnini, tí tá vit fortelja um onnur okkum sjálvi, so byrja vit við okkara navn, men siga ikki okkara fornøvn. Lat okkum broyta tað!
|
||||
Hví er tað týdningarmikið? Tí tað er einfald menniskjalig virðing. Tú hevði ikki kallað Mariu fyri “Rebekka”
|
||||
bara tí tú dámar tað navnið betri. Ella tí at “hon sær út sum ein Rebekka”. Eisini sjálvt um hon
|
||||
<em>hevur</em> navnið “Rebekka” á hennara dópsváttan, men hon absolutt hatar tað og vil heldur brúka “Maria”.
|
||||
Tað er akkurát tað sama við fornøvnum - um tú ikki vilt verða ófólkaligur ímóti onkrum, so kallar tú tey fyri
|
||||
tað tey ynskja. Einasti munurin er at vanliga vita vit nøvnini hjá fólki, men ikki fornøvnini, tí tá vit
|
||||
fortelja onnur um okkum sjálvi, so byrja vit við okkara navn, men siga ikki okkara fornøvn. Lat okkum broyta
|
||||
tað!
|
||||
pronouns: 'Listi av ofta brúktum fornøvnum'
|
||||
generator:
|
||||
header: 'Generator'
|
||||
@ -352,24 +351,25 @@ faq:
|
||||
question: 'Hvussu kann eg vita hvussu eg skal umrøða onkran?'
|
||||
answer:
|
||||
- >
|
||||
Tú kanst spyrja! Ja, tað kann virka eitt sindur píniligt, men jú meira vit gera tað jú minni píniligt er tað.
|
||||
Um vit kunna spyrja onkran um teirra navn, hví so ikki eisini um teirra fornøvn?
|
||||
Tú kanst spyrja! Ja, tað kann virka eitt sindur píniligt, men jú meira vit gera tað jú minni píniligt
|
||||
er tað. Um vit kunna spyrja onkran um teirra navn, hví so ikki eisini um teirra fornøvn?
|
||||
- >
|
||||
(Bara ikki spyr um “ert tú ein drongur ella ein genta?”.
|
||||
Hesin spurningurin sipar til at har eru bert tvey møgulig røtt svør,
|
||||
og tá sipar eisini til eitt ússaligt forvitni um kynsgøgnini hjá fólki.
|
||||
(Bara ikki spyr um “ert tú ein drongur ella ein genta?”. Hesin spurningurin sipar til at har eru bert
|
||||
tvey møgulig røtt svør, og tað sipar eisini til eitt ússaligt forvitni um kynsgøgnini hjá fólki.
|
||||
Ístaðin kundi tú spurt “hvat eru tíni fornøvn?” ella “hvussu vilt tú at eg umrøði teg?”)
|
||||
- >
|
||||
Tað er eisini týdningarmiki at gera tað normalt at fortelja fólk tíni fornøvn tá tú fortelur teimum títt navn.
|
||||
“Hey, eg eiti Jákup, {/hann=hann/hansara}”. Tað er ikki torført - men fyri tvørkynd og ikki-biner fólk betýðir tað so nógv!
|
||||
Tað er enn nemmari á netinum: bara koyr tíni fornøvn (ella eina leinkju til dømir frá okkara heimasíðu) á tín vanga.
|
||||
Tað er eisini týdningarmiki at gera tað normalt at fortelja fólk tíni fornøvn tá tú fortelur teimum
|
||||
títt navn. “Hey, eg eiti Jákup, {/hann=hann/hansara}”. Tað er ikki torført - men fyri tvørkynd og
|
||||
ikki-biner fólk betýðir tað so nógv! Tað er enn nemmari á netinum: bara koyr tíni fornøvn (ella eina
|
||||
leinkju til dømir frá okkara heimasíðu) á tín vanga.
|
||||
- >
|
||||
Minst eisini til at fleiri fólk kunnu brúka ymiskt nøvn og ymiskt fornøvn alt eftur støðuna.
|
||||
Tey eru kanska ikki komin út millum øll vinfólk ella arbeiðsfelagir enn, men millum tætt vinfólk kenna tey seg trygg at liva teirra sannleika.
|
||||
Hugsa teg um. Tú kundi tildømis spurt tey “hvørji fornøvn skal eg brúka frammanfyri stjóranum hjá tær”, o.s.fv..
|
||||
Minst eisini til at fleiri fólk kunnu brúka ymiskt nøvn og ymiskt fornøvn alt eftur støðuna. Tey eru
|
||||
kanska ikki komin út millum øll vinfólk ella arbeiðsfelagir enn, men millum tætt vinfólk kenna tey
|
||||
seg trygg at liva teirra sannleika. Hugsa teg um. Tú kundi tildømis spurt tey “hvørji fornøvn skal eg
|
||||
brúka frammanfyri stjóranum hjá tær”, o.s.fv..
|
||||
- >
|
||||
Summi fólk geva fleiri fornøvn, t.d. “{/hann&hon=hann/hon}” ella “{/tey&hann=tey/hann}”.
|
||||
Tað merkjir at tey dáma øll tey fornøvnini sum tey nevnað. Vanliga er tað fyrsta tað tey dáma best.
|
||||
Summi fólk geva fleiri fornøvn, t.d. “{/hann&hon=hann/hon}” ella “{/tey&hann=tey/hann}”. Tað merkjir
|
||||
at tey dáma øll tey fornøvnini sum tey nevnað. Vanliga er tað fyrsta tað tey dáma best.
|
||||
who-uses-it:
|
||||
question: 'Brúkar nakar yvirhøvur tað?'
|
||||
answer:
|
||||
@ -393,22 +393,23 @@ faq:
|
||||
question: 'Hví skal eg hava míni fornøvn á mínum vanga á sosialu miðlunum?'
|
||||
answer:
|
||||
- >
|
||||
Um tú ert viðkynd (= ikki tvørkynd) og tú brúkar “{/hann=hann}” ella “{/hon=hon} sum samsvara við títt kyn,
|
||||
so heldur tú kanska at tað er <em>sjálvsagd</em> hvat tíni fornøvn eru.
|
||||
Og ja, tað passar kanska - so leingi sum títt navn er á tínum vanga (og er, eftir siðvenju, kallkyn ella kvennkyn)
|
||||
ella um tú hevur eina mynd av tær sum tín vangamynd.
|
||||
Fleiri fólk hava ikki tað - so tað er torført at gita hvussu tey vilja vera umrødd.
|
||||
Um tú ert viðkynd (= ikki tvørkynd) og tú brúkar “{/hann=hann}” ella “{/hon=hon}" sum samsvara við
|
||||
títt kyn, so heldur tú kanska at tað er <em>sjálvsagd</em> hvat tíni fornøvn eru. Og ja, tað passar
|
||||
kanska - so leingi sum títt navn er á tínum vanga (og er, eftir siðvenju, kallkyn ella kvennkyn) ella
|
||||
um tú hevur eina mynd av tær sum tín vangamynd. Fleiri fólk hava ikki tað - so tað er torført at gita
|
||||
hvussu tey vilja vera umrødd.
|
||||
- >
|
||||
Men tað handlar faktist meira um okkurt annað: tíni fornøvn eru kanska “sjálvsøgd”, men har eru fleiri fólk hvar teirra fornøvn ikki eru tað.
|
||||
Tey vilja vera umrødd rætt, líkamikið um tey “passað” sum teirra kyn ella ei,
|
||||
líkamikið um tey hava gjørt kropsligt kynsskifti (ella um tey yvirhøvur vilja gera kropsligt kynsskifti).
|
||||
Ikki-biner fólk plaga ikki at “síggja út sum ikki-biner”, vit skylda ongum androgyni.
|
||||
Men tað handlar faktist meira um okkurt annað: tíni fornøvn eru kanska “sjálvsøgd”, men har eru
|
||||
fleiri fólk hvar teirra fornøvn ikki eru tað. Tey vilja vera umrødd rætt, líkamikið um tey “passað”
|
||||
sum teirra kyn ella ei, líkamikið um tey hava gjørt kropsligt kynsskifti (ella um tey yvirhøvur vilja
|
||||
gera kropsligt kynsskifti). Ikki-biner fólk plaga ikki at “síggja út sum ikki-biner”, vit skylda
|
||||
ongum androgyni.
|
||||
- >
|
||||
At deila okkara fornøvn hevur stóra týdning fyri tvørkynd, ikki-biner og fólk ið víkja frá kyn.
|
||||
Tíanverri so avdúkar tað okkum.
|
||||
Men um viðkynd fólk gera tað sama, hevði tað merkt so nógv fyri okkum.
|
||||
Tað gerð okkum meira tilpass, trygg, og vælkomin.
|
||||
{https://avris.it/blog/why-everyone-should-have-pronouns-in-their-bio=(fleiri grundgevingar her, á enskum).}
|
||||
Tíanverri so avdúkar tað okkum. Men um viðkynd fólk gera tað sama, hevði tað merkt so nógv fyri
|
||||
okkum. Tað gerð okkum meira tilpass, trygg, og vælkomin.
|
||||
{https://avris.it/blog/why-everyone-should-have-pronouns-in-their-bio=(fleiri grundgevingar her, á
|
||||
enskum).}
|
||||
change:
|
||||
question: 'Kann eg broyta míni fornøvn?'
|
||||
answer:
|
||||
@ -463,24 +464,28 @@ faq:
|
||||
Sjálvt um tú ert ein persónur, sum loysir tær størstu avbjóðingarnar sum menniskjað hevur,
|
||||
kanst tú nemt klára at ikki vera transfobisk meðan tú loysir tær avbjóðingarnar.
|
||||
why-two-forms:
|
||||
question: 'Hví eru fornøvn vanliga givin ið tveimum formum, sum "hann/hansara", ístaðin fyri "hann" ella allar formarnar?'
|
||||
question: >
|
||||
Hví eru fornøvn vanliga givin í tveimum formum, sum "hann/hansara", ístaðin fyri "hann" ella allar
|
||||
formarnar?
|
||||
answer:
|
||||
- >
|
||||
Á føroyskum eru har 4 formar av persónlig fornøvn, so um vit vilja verða presis mugu vit siga allar formarnar, til dømis: "tey/tey/teimum/teirra" ella "hon/hana/henni/hennara".
|
||||
Tað er longu <em>nógv</em> at koyra í tín vanga ella at siga tá tú navnkennir teg, og summi mál hava nógv meira enn tað. (td. á pólskum {https://zaimki.pl/jak-dzia%C5%82aj%C4%85-zaimki=eru tað upp til 12 formar av persónlig fornøvn}, og eisini fleiri ymiskar endingar).
|
||||
Men oftast er alt tað ikki neygut at forklára hvørjaferð, tí alt kann nemt verða "kroyst" til bara "hon" ella "hann" ella "tað" o.s.v..
|
||||
Á føroyskum eru har 4 formar av persónlig fornøvn, so um vit vilja verða presis mugu vit siga allar
|
||||
formarnar, til dømis: "tey/tey/teimum/teirra" ella "hon/hana/henni/hennara". Tað er longu
|
||||
<em>nógv</em> at koyra í tín vanga ella at siga tá tú navnkennir teg, og summi mál hava nógv meira
|
||||
enn tað. (td. á pólskum {https://zaimki.pl/jak-dzia%C5%82aj%C4%85-zaimki=eru tað upp til 12 formar av
|
||||
persónlig fornøvn}, og eisini fleiri ymiskar endingar). Men oftast er alt tað ikki neygut at forklára
|
||||
hvørjaferð, tí alt kann nemt verða "kroyst" til bara "hon" ella "hann" ella "tað" o.s.v..
|
||||
- >
|
||||
Tó, á hinari hondini, at minka tað til bert ein form kann gera at tað manglar kontekst.
|
||||
Um ein persónurin bara sær "hinn" á vanganum hjá onkrum, og tey kenna ikki til nýfornavnið “{/hinn=hinn/hinnara}”, so kann tað verða torført at skilja hvat "hinn" skal merkja.
|
||||
Tað er blivi heilt vanligt at "xxx/yyy" merkjir fornøvn -
|
||||
so har er ein góður kjansur at tá onkur sær "hinn/hinnara" so skilja tey beinavegin at tað er fornøvnini hjá persóninum.
|
||||
# - >
|
||||
# Adding a second (or sometimes third) form also clears up some ambiguities,
|
||||
# eg. between {/ze/hir=ze/hir} and {/ze/zir=ze/zir} or between {/e/em/eir=e/em/eir} and {/e/em/es=e/em/es}.
|
||||
Tó, á hinari hondini, at minka tað til bert ein form kann gera at tað manglar kontekst. Um ein
|
||||
persónurin bara sær "hinn" á vanganum hjá onkrum, og tey kenna ikki til nýfornavnið
|
||||
“{/hinn=hinn/hinnara}”, so kann tað verða torført at skilja hvat "hinn" skal merkja. Tað er blivi
|
||||
heilt vanligt at "xxx/yyy" merkjir fornøvn - so har er ein góður kjansur at tá onkur sær
|
||||
"hinn/hinnara" so skilja tey beinavegin at tað er fornøvnini hjá persóninum.
|
||||
- >
|
||||
Í stuttum, so er standardin at hava tveir formar ein kompromis millum at hava tað stutt og samstundis at tá er klárt at talan er um fornøvn.
|
||||
Siðvenjan hevur uppruna í enskum, men er blivin so væl umtókt at hon er endað í fleiri onnur mál, til dømis føroyskum (tó á portugiskiskum siga fólk vanligvís tríggjar formar).
|
||||
Vit brúka enntá skrástrikuna (<code>( / )</code>) í {/logo=okkara búmerkið}.
|
||||
Í stuttum, so er standardin at hava tveir formar ein kompromis millum at hava tað stutt og samstundis
|
||||
at tá er klárt at talan er um fornøvn. Siðvenjan hevur uppruna í enskum, men er blivin so væl umtókt
|
||||
at hon er endað í fleiri onnur mál, til dømis føroyskum (tó á portugiskiskum siga fólk vanligvís
|
||||
tríggjar formar). Vit brúka enntá skrástrikuna (<code>( / )</code>) í {/logo=okkara búmerkið}.
|
||||
flags:
|
||||
question: 'Kunnu tit leggja hetta flaggið afturat? Kunnu tit taka hata flaggið av?'
|
||||
answer:
|
||||
@ -518,14 +523,14 @@ faq:
|
||||
question: 'Er har ein pronouns.page app til telefonina?'
|
||||
answer:
|
||||
- >
|
||||
At gera ein app ið riggar á øllum telefonum krevur nógv arbeiði,
|
||||
og í hesari løtu hava vit valt at fokusera uppá onnur ting.
|
||||
At gera ein app ið riggar á øllum telefonum krevur nógv arbeiði, og í hesari løtu hava vit valt at
|
||||
fokusera uppá onnur ting.
|
||||
- >
|
||||
Men hendan heimasíðan er ein {https://web.dev/learn/pwa/progressive-web-apps/="Progressive Web App"},
|
||||
sum vil siga at tú kanst taka heimasíðuna niður á tína telefon sum eina app
|
||||
og tað kemur til at rigga <em>næstan<7em> akkurát líka sum ein vanlig app. 😉
|
||||
sum vil siga at tú kanst taka heimasíðuna niður á tína telefon sum eina app og tað kemur til at rigga
|
||||
<em>næstan</em> akkurát líka sum ein vanlig app. 😉
|
||||
unlisted-cards:
|
||||
question: 'Kan okkurt leita eftur mínum kortum?'
|
||||
question: 'Kann okkurt leita eftur mínum kortum?'
|
||||
answer:
|
||||
- >
|
||||
Vit útgeva ikki nakrar listar yvir brúkaranøvn sum onkur kann brúka at leita ígjøgnum ella opna ein eftir ein.
|
||||
@ -547,15 +552,13 @@ faq:
|
||||
so verður tað leinki markera við eitt íkon av einum skjøldri ([shield-check]).
|
||||
Tað fer eisini at hava eitt <code>rel="me"</code> merki, so at tænastur so sum Mastodon kunnu vátta tað hinuvegin runt eisini.
|
||||
mutiple-cards:
|
||||
question: 'Kann eg hava fleiri kort á sama máli undir einum brúkara?'
|
||||
answer:
|
||||
- >
|
||||
Tað er nokk tann mest efturspurda møguleikan vit hava fyngi! 😅
|
||||
|
||||
Vit eru heilst sikkurt opin til hugskoti, tað hevði hjálp systemir
|
||||
ella fólk sum vilja hava ymiskt kort fyri mara almenna nýstlu ella fyri tætt vinfólk.
|
||||
Tíanverri krevur hendan møguleikan <em>nógvar</em> broytingar í kotuna og eisini testing.
|
||||
Vit fara at prøva at ráðfesta tað høgt, men vit hava eina rúgvu av annað arbeiði, so vit kunnu ikki siga nakað spesifikt dato.
|
||||
Tað er nokk tann mest efturspurda møguleikan vit hava fyngi! 😅 Vit eru heilt sikkurt opin til
|
||||
hugskoti, tað hevði hjálp systemir ella fólk sum vilja hava ymiskt kort fyri teirra almenna nýstlu
|
||||
ella fyri tætt vinfólk. Tíanverri krevur hendan møguleikan <em>nógvar</em> broytingar í kotuna og
|
||||
eisini testing. Vit fara at prøva at ráðfesta tað høgt, men vit hava eina rúgvu av annað arbeiði, so
|
||||
vit kunnu ikki siga nakað spesifikt dato.
|
||||
# customise-opinions:
|
||||
# question: 'Can I customise the “legend/opinions” field even more?'
|
||||
# answer:
|
||||
@ -638,17 +641,16 @@ contact:
|
||||
header: 'Samband'
|
||||
authors: 'Umsitarar av heimasíðuni'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Kvir Kalendara Bottur'
|
||||
shop: 'Fylgivøra'
|
||||
faq: >
|
||||
Aðrenn tú skrivar til okkum, <strong>hygg eftir okkara</strong> {/oss=<strong>O.S.S.</strong>} - møguliga er svarið til tín spurning longu har.
|
||||
technical: >
|
||||
Sært tú <strong>ein feil</strong> ella hevur tú ein tekniskan spurning?
|
||||
Vinarliga skriva títt brúkaranavn og <strong>so nógvar upplýsingar sum møguligt</strong> í tíni boð
|
||||
(hvat sigur feilboðið? Ert tú á tínari telefon ella teldu? Hvønn kaga brúkar tú? Hvat skulu vit gera fyri at fáa sama feilin? Kanst tú viðhefta eina skíggjamynd ella skíggjaupptøku? o.s.fv.)
|
||||
Prøva eisini at <strong>sløkkja fyri kagavíðkanir</strong> sum møguliga bróta síðuna
|
||||
(t.d. Lýsingaforðarar kunnu koma til at fjerna okkurt sum ikki er ein lýsing) og hygg um tað hjálpur.
|
||||
Sært tú <strong>ein feil</strong> ella hevur tú ein tekniskan spurning? Vinarliga skriva títt brúkaranavn og
|
||||
<strong>so nógvar upplýsingar sum møguligt</strong> í tíni boð (hvat sigur feilboðið? Ert tú á tínari telefon
|
||||
ella teldu? Hvønn kaga brúkar tú? Hvat skulu vit gera fyri at fáa sama feilin? Kanst tú viðhefta eina skíggjamynd
|
||||
ella skíggjaupptøku? o.s.fv.) Prøva eisini at <strong>sløkkja fyri kagavíðkanir</strong> sum møguliga bróta
|
||||
síðuna (t.d. lýsingaforðarar kunnu koma til at fjerna okkurt sum ikki er ein lýsing) og hygg um tað hjálpur.
|
||||
hate: >
|
||||
Vilt tú senda okkum kvirfobiskan hatursmail?
|
||||
Gev bara upp, vit samskifta ikki við trøll.
|
||||
@ -854,14 +856,11 @@ profile:
|
||||
ipa: 'Framburður við IPA (altjóða ljóðstavraðið)'
|
||||
pronouns: 'Fornøvn'
|
||||
pronounsInfo: >
|
||||
Tú kanst skriva eitt <strong>fornavn</strong> (t.d. “tey” ella “hon/hennara”)
|
||||
ella eina <strong>leinku</strong> (t.d. “https://en.pronouns.page/e”)
|
||||
ella tey fimm formarnar (t.d. “ze/zem/zir/zirs/zirself”).
|
||||
Minst til at <strong>allar fimm formarnar</strong> eru kravdar í tí førinum,
|
||||
annars kann funkan bert gita hvat tú meinar við.
|
||||
Tú kanst eisini brúka {/fornøvn#generator=<strong>generator’in</strong>} og skriva setningar við formunum.
|
||||
Um tíni fornøvn fylgja {/fornøvn#nameself=<strong>teysjálv mynstrinum</strong>},
|
||||
kanst tú eisini brúka kolon styttingina (t.d. “:stjørna”).
|
||||
Tú kanst skriva eitt <strong>fornavn</strong> (t.d. “tey” ella “hon/hennara”) ella eina <strong>leinku</strong>
|
||||
(t.d. “https://fo.pronouns.page/hann”) ella tær fýra formarnar og fimm endingar (t.d.
|
||||
"ze/zirs/zir/zira/ur/a/ur/ur”). Minst til at <strong>allar fýra formarnar og fimm endingar</strong> eru kravdar í
|
||||
tí førinum, annars kann funkan bert gita hvat tú meinar við. Tú kanst eisini brúka
|
||||
{/fornøvn#generator=<strong>generator’in</strong>} og skriva setningar við formunum.
|
||||
pronounsNotFound: 'Ókent format. Vinarliga les vegleiðingarnar omanfyri.'
|
||||
words: 'Orð'
|
||||
wordsColumnHeader: 'Teigshøvd'
|
||||
@ -909,7 +908,7 @@ profile:
|
||||
Okkara leinkjur hava eisini eitt <code>rel=”me”</code> merkið, so at arðar heimasíður kunnu vátta títt kort eisini.
|
||||
column: 'Súla'
|
||||
opinions:
|
||||
header: 'Frágreiðing/meiningar'
|
||||
header: 'Frágreiðingar/meiningar'
|
||||
description: 'Lýsing…'
|
||||
colours:
|
||||
_: '(Lit á stavsnið…)'
|
||||
@ -973,13 +972,12 @@ profile:
|
||||
circles:
|
||||
header: 'Mín skari'
|
||||
info: >
|
||||
Í hesum feltinium kanst tú nevna <strong>tíni nærmastu</strong, saman við upplýsing
|
||||
um hvørji (ikki-)kynja orð tú brúkar at umtalað tey (td. “Hjúnafelagi”, “kona”, “maður”).
|
||||
Vit eru ikki ein sosialur miðil, hettar er <strong>ikki ein vinir/fylgjarar listi</strong>,
|
||||
tí er longdin á hesum feltinum rættiliga avmarkað.
|
||||
Hav í huga at fólkini sum tú nevnir her <strong>kunnu síggja tað</strong>
|
||||
- og kunnu meldað teg til okkum fyri plágan, um tú velur at skriva neilig ting um tey.
|
||||
Felagssambond í tínum skarað verða merkt við [s:shield-check].
|
||||
Í hesum feltinium kanst tú nevna <strong>tíni nærmastu</strong>, saman við upplýsing um hvørji (ikki-)kynja
|
||||
orð tú brúkar at umtalað tey (td. “Hjúnafelagi”, “kona”, “maður”). Vit eru ikki ein sosialur miðil, hettar er
|
||||
<strong>ikki ein vinir/fylgjarar listi</strong>, tí er longdin á hesum feltinum rættiliga avmarkað. Hav í
|
||||
huga at fólkini sum tú nevnir her <strong>kunnu síggja tað</strong> - og kunnu meldað teg til okkum fyri
|
||||
plágan, um tú velur at skriva neilig ting um tey. Felagssambond í tínum skarað verða merkt við
|
||||
[s:shield-check].
|
||||
relationship: 'Samband (t.d. “maki”, “besti vinur”)'
|
||||
mutual: 'Hettar er eitt felagssamband'
|
||||
yourMentions:
|
||||
@ -1044,11 +1042,11 @@ profile:
|
||||
header: 'Kalendari'
|
||||
info:
|
||||
- >
|
||||
Í hettar økið kanst tú stovnað tín egna kalendara, sum verður vístur á tínum kortið og kann koyrast í tín kalendara app.
|
||||
Í hettar økið kanst tú stovnað tín egna kalendara, sum verður vístur á tínum kortið og kann koyrast í tín
|
||||
kalendara app.
|
||||
- >
|
||||
Vel frá listanum av almenst hátíðarhildnar hendingar úr kvir-kalendaranum,
|
||||
ella legg tínar egnu persónligu kvir-hendingar:
|
||||
so sum ársdagin tú komst út, byrjaði HRT, broytti navn, o.s.fv.
|
||||
Vel frá listanum av alment hátíðarhildnar hendingar úr kvir-kalendaranum, ella legg tínar egnu persónligu
|
||||
kvir-hendingar: so sum ársdagin tú komst út, byrjaði HRT, broytti navn, o.s.fv.
|
||||
customEvents:
|
||||
header: 'Sergjørdar/persónligar hendingar'
|
||||
disclaimer: 'Hettar er ein sergjørd hending stovnað av eigaranum av kortinum'
|
||||
@ -1120,8 +1118,7 @@ search:
|
||||
noResults: 'Eingin úrslit vóru funnin fyri: “%query%”'
|
||||
|
||||
footer:
|
||||
license: >
|
||||
{https://gitlab.com/PronounsPage/PronounsPage=Keldu kota} og innihald eru loyvi undir {/license=OQL}.
|
||||
license: '{https://gitlab.com/PronounsPage/PronounsPage=Keldu kota} og innihald eru undir {/license=OQL} loyvinum.'
|
||||
using: >
|
||||
Brúkar {https://www.gradientmagic.com/=gradientmagic.com} og {https://fonts.google.com/noto/specimen/Noto+Color+Emoji=Noto Color Emoji}
|
||||
links: 'Samband, sosialir miðlar'
|
||||
@ -1360,7 +1357,7 @@ quotation:
|
||||
localise:
|
||||
shorter: 'Legg aftrat'
|
||||
short: 'Legg aftrat málútgávur'
|
||||
long: 'Vilt tú gera eina málútgáva? Feitt! Vinarliga hygg her'
|
||||
long: 'Vilt tú gera eina málútgávu? Feitt! Vinarliga hygg eftir'
|
||||
longLink: 'hesa vegleiðingina!'
|
||||
|
||||
images:
|
||||
|
@ -733,7 +733,6 @@ contact:
|
||||
design:
|
||||
header: 'Linee guida e risorse di progettazione'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Bot del Calendario Queer'
|
||||
shop: 'Merce'
|
||||
|
||||
|
@ -361,7 +361,6 @@ contact:
|
||||
header: '連絡先'
|
||||
authors: 'ウェブサイトの作者'
|
||||
groups:
|
||||
all: ''
|
||||
shop: 'グッズ'
|
||||
language: '国際的なチームですから、各言語版の作者とあなたのメッセージを読む人とは、同じではないかもしれません。可能な限り、<strong>英語またはポーランド語</strong>でご連絡ください。'
|
||||
team:
|
||||
|
@ -656,7 +656,6 @@ contact:
|
||||
header: 'Kontakt'
|
||||
authors: 'Forfatterne'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Skeivekalender-botten'
|
||||
shop: 'Butikk'
|
||||
faq: >
|
||||
|
@ -652,7 +652,6 @@ contact:
|
||||
header: 'Kontakt'
|
||||
authors: 'Forfattarane'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Skeivekalender-botten'
|
||||
shop: 'Butikk'
|
||||
faq: >
|
||||
|
@ -103,9 +103,6 @@ export default [
|
||||
// marsze i eventy 2024
|
||||
...await loadMiastaMaszerujace(2024),
|
||||
|
||||
// marsze i eventy 2025
|
||||
...await loadMiastaMaszerujace(2025),
|
||||
|
||||
new Event('{https://www.facebook.com/events/977716850062577=Parada Równości w Warszawie} (kolektyw Praga Równości)', 'LGBTQ', 6, dayYear(8, 2024), EventLevel.Day),
|
||||
// already included in miastamaszerujace
|
||||
// new Event('{https://www.paradarownosci.pl/=Parada Równości w Warszawie} (Fundacja Wolontariat Równości)', 'LGBTQ', 6, dayYear(15, 2024), EventLevel.Day),
|
||||
@ -113,6 +110,10 @@ export default [
|
||||
|
||||
new Event('{https://dzientrans.pl/=Drugi Ogólnopolski Dzień Widoczności Osób Transpłciowych}', 'Transgender', 4, dayYear(13, 2024), EventLevel.Day),
|
||||
|
||||
// marsze i eventy 2025
|
||||
...await loadMiastaMaszerujace(2025),
|
||||
new Event('{https://www.paradarownosci.pl/=Parada Równości w Warszawie}', 'LGBTQ', 6, dayYear(14, 2025), EventLevel.Day),
|
||||
|
||||
// --- dynamic date ---
|
||||
|
||||
// last Friday of October
|
||||
|
@ -27,6 +27,23 @@ const xDeclension = new NounDeclension({
|
||||
W_pl: 'xx',
|
||||
});
|
||||
|
||||
const xTkaDeclension = new NounDeclension({
|
||||
M: 'txa',
|
||||
D: 'txi',
|
||||
C: 'txe',
|
||||
B: 'txę',
|
||||
N: 'txą',
|
||||
Msc: 'txe',
|
||||
W: 'tx',
|
||||
M_pl: 'txx',
|
||||
D_pl: 'txx',
|
||||
C_pl: 'txx',
|
||||
B_pl: 'txx',
|
||||
N_pl: 'txx',
|
||||
Msc_pl: 'txx',
|
||||
W_pl: 'txx',
|
||||
});
|
||||
|
||||
const { $translator: translator } = useNuxtApp();
|
||||
const config = useConfig();
|
||||
|
||||
@ -45,7 +62,7 @@ const xNouns = [
|
||||
mascPl: 'astronauci',
|
||||
femPl: 'astronautki',
|
||||
neutrPl: 'astronautxx',
|
||||
declension: xDeclension,
|
||||
declension: xTkaDeclension,
|
||||
}),
|
||||
new Noun(config, {
|
||||
id: 'Europejczyk',
|
||||
|
@ -4,7 +4,8 @@ import { useNuxtApp } from 'nuxt/app';
|
||||
import NounsNav from './NounsNav.vue';
|
||||
|
||||
import useConfig from '~/composables/useConfig.ts';
|
||||
import { Noun, type Source, SourceLibrary } from '~/src/classes.ts';
|
||||
import { Noun, SourceLibrary } from '~/src/classes.ts';
|
||||
import type { Source } from '~/src/classes.ts';
|
||||
|
||||
const { $translator: translator } = useNuxtApp();
|
||||
useSimpleHead({
|
||||
|
@ -1310,7 +1310,6 @@ contact:
|
||||
header: 'Kontakt'
|
||||
authors: '{/neutratywy#autor=Autorza} strony'
|
||||
groups:
|
||||
all: ''
|
||||
polish: 'Polskojęzyczne'
|
||||
calendar: 'Bot kalendarza'
|
||||
shop: 'Mercz'
|
||||
|
@ -544,7 +544,6 @@ contact:
|
||||
design:
|
||||
header: 'Рекомендации по дизайну и другие ресурсы'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Квир Календарь бот'
|
||||
shop: 'Мерч'
|
||||
|
||||
|
@ -80,7 +80,6 @@ contact:
|
||||
header: 'o toki tawa mi'
|
||||
authors: 'jan mama lipu'
|
||||
groups:
|
||||
all: ''
|
||||
shop: 'o esun'
|
||||
faq: >
|
||||
sina wile e sona la, nanpa wan la o lukin e {/faq=lipu pi sona suli}. sona wile li lon ala la o toki tawa mi.
|
||||
|
@ -578,7 +578,6 @@ contact:
|
||||
header: 'İletişim'
|
||||
authors: 'Websitenin yazarları'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Queer Takvim Botu'
|
||||
shop: 'Mağaza'
|
||||
faq: >
|
||||
|
@ -452,7 +452,6 @@ contact:
|
||||
header: 'Liên hệ'
|
||||
authors: 'Những tác giả của trang web này'
|
||||
groups:
|
||||
all: ''
|
||||
calendar: 'Bot Lịch Đồng tính'
|
||||
faq: >
|
||||
Trước khi bạn gửi tin nhắn, hãy <strong>xem</strong> mục {/faq=<strong>Câu hỏi thường gặp</strong>} của chúng tôi – có thể câu trả lời cho câu hỏi của bạn đã có sẵn ở đó rồi.
|
||||
|
10
package.json
10
package.json
@ -26,6 +26,7 @@
|
||||
"@sentry/node": "^7.109.0",
|
||||
"abort-controller": "^3.0.0",
|
||||
"canvas": "^3.1.0",
|
||||
"clipboard": "^2.0.11",
|
||||
"feed": "^4.2.2",
|
||||
"generic-diff": "^1.0.1",
|
||||
"grant": "^5.4.22",
|
||||
@ -63,7 +64,7 @@
|
||||
"@nuxt/eslint": "^1.2.0",
|
||||
"@nuxt/test-utils": "^3.17.2",
|
||||
"@nuxtjs/plausible": "^1.2.0",
|
||||
"@pinia/nuxt": "^0.9.0",
|
||||
"@pinia/nuxt": "^0.11.0",
|
||||
"@playwright/test": "^1.50.0",
|
||||
"@rollup/plugin-yaml": "^4.1.2",
|
||||
"@sentry/types": "^7.109.0",
|
||||
@ -95,14 +96,13 @@
|
||||
"bootstrap": "^5.3.1",
|
||||
"chart.js": "4.4.8",
|
||||
"eslint": "^9.22.0",
|
||||
"eslint-formatter-gitlab": "^5.1.0",
|
||||
"eslint-formatter-gitlab": "^6.0.0",
|
||||
"eslint-plugin-json-schema-validator": "^5.1.3",
|
||||
"eslint-plugin-jsonc": "^2.19.1",
|
||||
"eslint-plugin-yml": "^1.17.0",
|
||||
"execa": "^9.5.2",
|
||||
"express": "^4.17.1",
|
||||
"express-session": "^1.17.1",
|
||||
"globals": "^13.24.0",
|
||||
"h3-express": "https://github.com/pixunil/h3-express#built",
|
||||
"html-validate": "^9.2.2",
|
||||
"ioredis": "^5.6.0",
|
||||
@ -111,7 +111,7 @@
|
||||
"markdown-it-sub": "^2.0.0",
|
||||
"markdown-it-sup": "^2.0.0",
|
||||
"marked": "^0.7.0",
|
||||
"nuxt": "^3.17.1",
|
||||
"nuxt": "^3.17.2",
|
||||
"path-to-regexp": "0.1.12",
|
||||
"postcss-rtl": "^2.0.0",
|
||||
"qr-code-styling": "1.6.0-rc.1",
|
||||
@ -121,7 +121,7 @@
|
||||
"typescript": "^5.8.3",
|
||||
"vitest": "^3.1.2",
|
||||
"vue-component-type-helpers": "^2.1.6",
|
||||
"vue-tsc": "^2.2.8",
|
||||
"vue-tsc": "^2.2.10",
|
||||
"vuedraggable": "^4.1.0"
|
||||
},
|
||||
"packageManager": "pnpm@10.4.1+sha256.4b702887986995933d4300836b04d6d02a43bc72b52e4f7e93a4ca608b959197",
|
||||
|
@ -2,8 +2,10 @@
|
||||
import { useDebounce, useLocalStorage } from '@vueuse/core';
|
||||
import marked from 'marked';
|
||||
|
||||
import { extractMetadata, type Post } from '~/src/blog/metadata.ts';
|
||||
import parseMarkdown, { type MarkdownInfo } from '~/src/parseMarkdown.ts';
|
||||
import { extractMetadata } from '~/src/blog/metadata.ts';
|
||||
import type { Post } from '~/src/blog/metadata.ts';
|
||||
import parseMarkdown from '~/src/parseMarkdown.ts';
|
||||
import type { MarkdownInfo } from '~/src/parseMarkdown.ts';
|
||||
|
||||
const content = useLocalStorage(
|
||||
'admin/blog/editor',
|
||||
|
@ -223,7 +223,7 @@ const impersonate = async (email: string) => {
|
||||
:locale
|
||||
icon="book"
|
||||
header="Dictionary"
|
||||
:link="`/${config.nouns.route}`"
|
||||
:link="`/${encodeURIComponent(config.nouns.route)}`"
|
||||
:counts="[
|
||||
{ count: stats.locales[locale].nouns.approved },
|
||||
{ name: 'awaiting', count: stats.locales[locale].nouns.awaiting, warning: 1, danger: 16 },
|
||||
@ -235,7 +235,7 @@ const impersonate = async (email: string) => {
|
||||
:locale
|
||||
icon="book-heart"
|
||||
header="Inclusive"
|
||||
:link="`/${config.inclusive.route}`"
|
||||
:link="`/${encodeURIComponent(config.inclusive.route)}`"
|
||||
:counts="[
|
||||
{ count: stats.locales[locale].inclusive.approved },
|
||||
{ name: 'awaiting', count: stats.locales[locale].inclusive.awaiting, warning: 1, danger: 16 },
|
||||
@ -247,7 +247,7 @@ const impersonate = async (email: string) => {
|
||||
:locale
|
||||
icon="flag"
|
||||
header="Terminology"
|
||||
:link="`/${config.terminology.route}`"
|
||||
:link="`/${encodeURIComponent(config.terminology.route)}`"
|
||||
:counts="[
|
||||
{ count: stats.locales[locale].terms.approved },
|
||||
{ name: 'awaiting', count: stats.locales[locale].terms.awaiting, warning: 1, danger: 16 },
|
||||
@ -259,7 +259,7 @@ const impersonate = async (email: string) => {
|
||||
:locale
|
||||
icon="books"
|
||||
header="Sources"
|
||||
:link="`/${config.sources.route}`"
|
||||
:link="`/${encodeURIComponent(config.sources.route)}`"
|
||||
:counts="[
|
||||
{ count: stats.locales[locale].sources.approved },
|
||||
{ name: 'awaiting', count: stats.locales[locale].sources.awaiting, warning: 1, danger: 16 },
|
||||
@ -271,7 +271,7 @@ const impersonate = async (email: string) => {
|
||||
:locale
|
||||
icon="signature"
|
||||
header="Names"
|
||||
:link="`/${config.names.route}`"
|
||||
:link="`/${encodeURIComponent(config.names.route)}`"
|
||||
:counts="[
|
||||
{ count: stats.locales[locale].names.approved },
|
||||
{ name: 'awaiting', count: stats.locales[locale].names.awaiting, warning: 1, danger: 16 },
|
||||
@ -284,7 +284,9 @@ const impersonate = async (email: string) => {
|
||||
icon="pen-nib"
|
||||
header="Blog"
|
||||
>
|
||||
<nuxt-link :to="{ name: 'admin-blog-editor' }" class="btn btn-sm btn-secondary text-white">Editor</nuxt-link>
|
||||
<LocaleLink link="/admin/blog/editor" class="btn btn-sm btn-secondary text-white" :locale>
|
||||
Editor
|
||||
</LocaleLink>
|
||||
</AdminDashboardCard>
|
||||
<AdminDashboardCard
|
||||
v-if="stats && $isGranted('translations', locale) && (stats.locales[locale].translations.missing > 0 || stats.locales[locale].translations.awaitingApproval > 0) || stats && $isGranted('code', locale) && stats.locales[locale].translations.awaitingMerge > 0"
|
||||
|
@ -12,8 +12,8 @@ import {
|
||||
MONTHS as months,
|
||||
AREAS as areas,
|
||||
TRANSFER_METHODS as transferMethods,
|
||||
type TimesheetData, type Timesheet,
|
||||
} from '~/src/timesheets.ts';
|
||||
import type { TimesheetData, Timesheet } from '~/src/timesheets.ts';
|
||||
|
||||
const { $translator: translator } = useNuxtApp();
|
||||
const dialogue = useDialogue();
|
||||
|
@ -1,9 +1,11 @@
|
||||
<script setup lang="ts">
|
||||
import { DateTime, type DurationInput } from 'luxon';
|
||||
import { DateTime } from 'luxon';
|
||||
import type { DurationInput } from 'luxon';
|
||||
import { useNuxtApp } from 'nuxt/app';
|
||||
|
||||
import useSimpleHead from '~/composables/useSimpleHead.ts';
|
||||
import { min, max, MONTHS, PERIODS, type TimesheetData } from '~/src/timesheets.ts';
|
||||
import { min, max, MONTHS, PERIODS } from '~/src/timesheets.ts';
|
||||
import type { TimesheetData } from '~/src/timesheets.ts';
|
||||
|
||||
function* range(start: number, end: number) {
|
||||
for (let i = start; i <= end; i++) {
|
||||
|
@ -12,7 +12,8 @@ import { getUrlForLocale } from '~/src/domain.ts';
|
||||
import { buildFlags } from '~/src/flags.ts';
|
||||
import { sleep } from '~/src/helpers.ts';
|
||||
import opinions from '~/src/opinions.ts';
|
||||
import { applyProfileVisibilityRules, type UserWithProfiles, type Profile } from '~/src/profile.ts';
|
||||
import { applyProfileVisibilityRules } from '~/src/profile.ts';
|
||||
import type { UserWithProfiles, Profile } from '~/src/profile.ts';
|
||||
|
||||
definePageMeta({
|
||||
translatedPaths: (config) => {
|
||||
|
328
pnpm-lock.yaml
generated
328
pnpm-lock.yaml
generated
@ -38,6 +38,9 @@ importers:
|
||||
canvas:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
clipboard:
|
||||
specifier: ^2.0.11
|
||||
version: 2.0.11
|
||||
feed:
|
||||
specifier: ^4.2.2
|
||||
version: 4.2.2
|
||||
@ -145,8 +148,8 @@ importers:
|
||||
specifier: ^1.2.0
|
||||
version: 1.2.0(magicast@0.3.5)
|
||||
'@pinia/nuxt':
|
||||
specifier: ^0.9.0
|
||||
version: 0.9.0(magicast@0.3.5)(pinia@2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)))
|
||||
specifier: ^0.11.0
|
||||
version: 0.11.0(magicast@0.3.5)(pinia@3.0.2(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)))
|
||||
'@playwright/test':
|
||||
specifier: ^1.50.0
|
||||
version: 1.50.0
|
||||
@ -241,8 +244,8 @@ importers:
|
||||
specifier: ^9.22.0
|
||||
version: 9.22.0(jiti@2.4.2)
|
||||
eslint-formatter-gitlab:
|
||||
specifier: ^5.1.0
|
||||
version: 5.1.0(eslint@9.22.0(jiti@2.4.2))
|
||||
specifier: ^6.0.0
|
||||
version: 6.0.0(eslint@9.22.0(jiti@2.4.2))
|
||||
eslint-plugin-json-schema-validator:
|
||||
specifier: ^5.1.3
|
||||
version: 5.1.3(eslint@9.22.0(jiti@2.4.2))
|
||||
@ -261,9 +264,6 @@ importers:
|
||||
express-session:
|
||||
specifier: ^1.17.1
|
||||
version: 1.18.0
|
||||
globals:
|
||||
specifier: ^13.24.0
|
||||
version: 13.24.0
|
||||
h3-express:
|
||||
specifier: https://github.com/pixunil/h3-express#built
|
||||
version: https://codeload.github.com/pixunil/h3-express/tar.gz/0dd96342062c6190cc50101e7b48480587ca9582
|
||||
@ -289,8 +289,8 @@ importers:
|
||||
specifier: ^0.7.0
|
||||
version: 0.7.0
|
||||
nuxt:
|
||||
specifier: ^3.17.1
|
||||
version: 3.17.1(@parcel/watcher@2.5.1)(@types/node@22.13.14)(db0@0.3.2(sqlite3@5.1.7))(encoding@0.1.13)(eslint@9.22.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.40.1)(sass@1.32.12)(sqlite3@5.1.7)(terser@5.33.0)(typescript@5.8.3)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue-tsc@2.2.8(typescript@5.8.3))(yaml@2.7.0)
|
||||
specifier: ^3.17.2
|
||||
version: 3.17.2(@parcel/watcher@2.5.1)(@types/node@22.13.14)(db0@0.3.2(sqlite3@5.1.7))(encoding@0.1.13)(eslint@9.22.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.40.1)(sass@1.32.12)(sqlite3@5.1.7)(terser@5.33.0)(typescript@5.8.3)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.7.0)
|
||||
path-to-regexp:
|
||||
specifier: 0.1.12
|
||||
version: 0.1.12
|
||||
@ -319,8 +319,8 @@ importers:
|
||||
specifier: ^2.1.6
|
||||
version: 2.1.6
|
||||
vue-tsc:
|
||||
specifier: ^2.2.8
|
||||
version: 2.2.8(typescript@5.8.3)
|
||||
specifier: ^2.2.10
|
||||
version: 2.2.10(typescript@5.8.3)
|
||||
vuedraggable:
|
||||
specifier: ^4.1.0
|
||||
version: 4.1.0(vue@3.5.13(typescript@5.8.3))
|
||||
@ -529,8 +529,8 @@ packages:
|
||||
resolution: {integrity: sha512-qA2diK3d/ztC8HUb7NwPKbJRV01NpzTzxFn+L5G3HzJBNeKbjLcprQ/9uG9gp2UEx2Go782FI1ddrMNa0qBICA==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
|
||||
'@babel/code-frame@7.26.2':
|
||||
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
|
||||
'@babel/code-frame@7.27.1':
|
||||
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/compat-data@7.26.8':
|
||||
@ -619,8 +619,8 @@ packages:
|
||||
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-validator-identifier@7.25.9':
|
||||
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
|
||||
'@babel/helper-validator-identifier@7.27.1':
|
||||
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-validator-option@7.25.9':
|
||||
@ -1802,12 +1802,12 @@ packages:
|
||||
vite-plugin-eslint2:
|
||||
optional: true
|
||||
|
||||
'@nuxt/kit@3.17.1':
|
||||
resolution: {integrity: sha512-VG3NlK51jzNNZ9+VIVMwN2YgDddkCkdZRJv0KMs63Z81UQo1FfEwzapqUiV23SWkyyfNSD/1XGarYPOl30J39g==}
|
||||
'@nuxt/kit@3.17.2':
|
||||
resolution: {integrity: sha512-Mz2Ni8iUwty5LBs3LepUL43rI2xXbuAz3Cqq37L9frOD2QI2tQUtasYaSoKk6U7nvYzuW2z/2b3YOLkMNi/k2w==}
|
||||
engines: {node: '>=18.12.0'}
|
||||
|
||||
'@nuxt/schema@3.17.1':
|
||||
resolution: {integrity: sha512-FmPMyfexkZ0bp7rDz+012/ee9rEHPAZ3P8alOZrCV9j/xPcjuKspcLWGZz4kAoJA7nnx49kpRUcS2rpYcBRV+A==}
|
||||
'@nuxt/schema@3.17.2':
|
||||
resolution: {integrity: sha512-DzmvgqcfIoCkNKXrBU6wpGckIXSxHHU+7OTlE68qNq6y0lVYnUA0Akrn0I8j+n/vFdQTIpJXiRD4dAgcomsBAg==}
|
||||
engines: {node: ^14.18.0 || >=16.10.0}
|
||||
|
||||
'@nuxt/telemetry@2.6.6':
|
||||
@ -1851,8 +1851,8 @@ packages:
|
||||
vitest:
|
||||
optional: true
|
||||
|
||||
'@nuxt/vite-builder@3.17.1':
|
||||
resolution: {integrity: sha512-gtayw5+6Wx94FLUyJ+TAR27iLd7PqXYy1c9Yefam+wVhllYr9bpWLmM1pOQisujdm24OYsAyQ1AiBBp4voM9pw==}
|
||||
'@nuxt/vite-builder@3.17.2':
|
||||
resolution: {integrity: sha512-TfKuh7MPjIhlObLNcoNTRk6/s3L6b6Z7hPuJcnrAeh/a9JGH6fmRsKztW5D5mFEN3H3K6viXche8q2ftQEk7CQ==}
|
||||
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0.0}
|
||||
peerDependencies:
|
||||
vue: ^3.3.4
|
||||
@ -1863,67 +1863,67 @@ packages:
|
||||
'@one-ini/wasm@0.1.1':
|
||||
resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
|
||||
|
||||
'@oxc-parser/binding-darwin-arm64@0.67.0':
|
||||
resolution: {integrity: sha512-AWLaNH7emKLCpFzHjcYr0wqE8HRpK/5vDtIAUz0BEZKsYxM/Nd8UpgRg2ZlNlEiPDMgAhpRLBHqjf9Xiv/IMhw==}
|
||||
'@oxc-parser/binding-darwin-arm64@0.68.1':
|
||||
resolution: {integrity: sha512-Y5FBQyPCLsldAZYEd+oZcUboXwpcLf42Lakx3EYtiYDbuK9M3IqBXMGxdM07P4PfGQrKYn6/cC8xAqkVHnbWPw==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@oxc-parser/binding-darwin-x64@0.67.0':
|
||||
resolution: {integrity: sha512-1wYbIWpXZ8V9jUx309LyCyK5cVqbTC3qawZ293qfGSmRTsn0F7OenRK7ERbRx7HuvWw2zgWIbWieUpO487nloQ==}
|
||||
'@oxc-parser/binding-darwin-x64@0.68.1':
|
||||
resolution: {integrity: sha512-nkiXpEKl8UOhNPdOY5hA2PFq9vQc9xVs7NFu2vUD9eH/j5uYfv8GnNaKkd+v6iH93JwEBxuK5gfwxiiCEMZRyg==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@oxc-parser/binding-linux-arm-gnueabihf@0.67.0':
|
||||
resolution: {integrity: sha512-Dry9zRk/LOvPvb/GDNkgtQZ2cJKBIc6alQOwjvpji/OdJFjqawTPJoHB0F7nd6NfRYle0tVXCFYHtGUxv2WNxQ==}
|
||||
'@oxc-parser/binding-linux-arm-gnueabihf@0.68.1':
|
||||
resolution: {integrity: sha512-38ejU7GP9sOILA82xcF9laJfCiwZWKp96+jeLQMkebZCfQqaGtld/hbJ2yvZ2laLQS3ISRasDemZEJuk/yb6Uw==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@oxc-parser/binding-linux-arm64-gnu@0.67.0':
|
||||
resolution: {integrity: sha512-Bk+Fqe2J9OvIPs+FK/avTA1YL0tAQD3FgiHe0gq7HLaiuwjw8FAzi2KldyataNmIekfiSH6e+xrt2FugwDXFlw==}
|
||||
'@oxc-parser/binding-linux-arm64-gnu@0.68.1':
|
||||
resolution: {integrity: sha512-qJK9nzelQqMSLdZbWUpQ8rfSAiH5pgB7rR5OC3/DLbmvhnD+vvuet/67cNzYnGW4pcTzsWzcRTSkmH/b6VcDCA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@oxc-parser/binding-linux-arm64-musl@0.67.0':
|
||||
resolution: {integrity: sha512-zBMJOkxgcR7Fgmx6hFJQycgWCl9fhS/oW5n1Qix+cbKFe2HfgtOhI+pESEqHc642WX/93BJ1m4OMmZJl35VYgg==}
|
||||
'@oxc-parser/binding-linux-arm64-musl@0.68.1':
|
||||
resolution: {integrity: sha512-Fd/yP458VG5wit7uku9iEXzl+qfNTuYTVaxfo6EFsBokOf5Xs6Y4LFeKAjtZfb/eCCsc7UY75sAjDyOGnPnNWg==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@oxc-parser/binding-linux-x64-gnu@0.67.0':
|
||||
resolution: {integrity: sha512-/zHUMrL24fGMTEr1iHE63f8NYa2IvxfIeNo24H1ofxhtr0A2KmcgOCcEUIypFjMxD5EY5kpQ2t0Nf42o+d4LOA==}
|
||||
'@oxc-parser/binding-linux-x64-gnu@0.68.1':
|
||||
resolution: {integrity: sha512-VH7q2GXcFKiecD2eNloB4o8Ho6dUeB92O9bS/GV0+Q/yZdu/l0zWXetaszaCviPHCf8YBQzpOHxzsqgVu0RYqQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@oxc-parser/binding-linux-x64-musl@0.67.0':
|
||||
resolution: {integrity: sha512-+JsqPXn2Op35lPEMbTyHonPHzTyvCpfaD522M5nziDt41DAOe3BMMcGgRfJXl6Dv/r8f4iZuHL3YSU8wF+elcQ==}
|
||||
'@oxc-parser/binding-linux-x64-musl@0.68.1':
|
||||
resolution: {integrity: sha512-35drWZMNp31JL0fjAK10pOfE20xVQXa7/o1NGqSGiZ2Huf4c0OK0TOggw+F7IEwPXpi5qOL6C+apY1zod8299A==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@oxc-parser/binding-wasm32-wasi@0.67.0':
|
||||
resolution: {integrity: sha512-jAugJhwJvCSurHEoicL0Gp9k1XVEnrTpQ3l1YBro/jfJ5uKSpfMBPPpNZBW04gumD08RDk32nqcPbk+BezvTaw==}
|
||||
'@oxc-parser/binding-wasm32-wasi@0.68.1':
|
||||
resolution: {integrity: sha512-MkTZeTYEqZm18b1TaLSEuo0MxeAv8MNaKSjEz0GgldV3+lNowMbTLusW/QEgYczx/J9/9Y/oYj36Rja7qmfe1Q==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [wasm32]
|
||||
|
||||
'@oxc-parser/binding-win32-arm64-msvc@0.67.0':
|
||||
resolution: {integrity: sha512-JZparqb773ahTQoC3/e6LazRqOLhlyzNhllK73xvz/wixkYueivHxJrdYtFy4ss2VDns4Dg0MZ/zRhkBJy1enA==}
|
||||
'@oxc-parser/binding-win32-arm64-msvc@0.68.1':
|
||||
resolution: {integrity: sha512-27Mrz18+4l7ZzM5FYSCSXDOR+CfZPkxkDz85jADpOTO1lUxH+wkTZiTBAOYuyoyRYbjQOTiZzkYljXtDgNeeLg==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@oxc-parser/binding-win32-x64-msvc@0.67.0':
|
||||
resolution: {integrity: sha512-jP5BkhItHRg0J/JfTp1L8D57VMyFgKrXeqH8h8CS04WL1V/ZbBUSr6FnK8gfy7eeKQZg7K7ZeJRTEEcW6i3nwQ==}
|
||||
'@oxc-parser/binding-win32-x64-msvc@0.68.1':
|
||||
resolution: {integrity: sha512-TUsmnbG2ysQ5bUSfWdDliDMXqu7KwAxtIkAtO4mzHKgEu5avVbqk26BhSJsEC9JXqWSo13yTYBmMtC498K3GzQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@oxc-project/types@0.67.0':
|
||||
resolution: {integrity: sha512-AI7inoYvnVro7b8S2Z+Fxi295xQvNKLP1CM/xzx5il4R3aiGgnFt9qiXaRo9vIutataX8AjHcaPnOsjdcItU0w==}
|
||||
'@oxc-project/types@0.68.1':
|
||||
resolution: {integrity: sha512-Q/H52+HXPPxuIHwQnVkEM8GebLnNcokkI4zQQdbxLIZdfxMGhAm9+gEqsMku3t95trN/1titHUmCM9NxbKaE2g==}
|
||||
|
||||
'@parcel/watcher-android-arm64@2.5.1':
|
||||
resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
|
||||
@ -2013,10 +2013,10 @@ packages:
|
||||
resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
|
||||
'@pinia/nuxt@0.9.0':
|
||||
resolution: {integrity: sha512-2yeRo7LeyCF68AbNeL3xu2h6uw0617RkcsYxmA8DJM0R0PMdz5wQHnc44KeENQxR/Mrq8T910XVT6buosqsjBQ==}
|
||||
'@pinia/nuxt@0.11.0':
|
||||
resolution: {integrity: sha512-QGFlUAkeVAhPCTXacrtNP4ti24sGEleVzmxcTALY9IkS6U5OUox7vmNL1pkqBeW39oSNq/UC5m40ofDEPHB1fg==}
|
||||
peerDependencies:
|
||||
pinia: ^2.3.0
|
||||
pinia: ^3.0.2
|
||||
|
||||
'@pkgjs/parseargs@0.11.0':
|
||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||
@ -3009,19 +3009,22 @@ packages:
|
||||
'@vue/devtools-api@6.6.4':
|
||||
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
|
||||
|
||||
'@vue/devtools-api@7.7.6':
|
||||
resolution: {integrity: sha512-b2Xx0KvXZObePpXPYHvBRRJLDQn5nhKjXh7vUhMEtWxz1AYNFOVIsh5+HLP8xDGL7sy+Q7hXeUxPHB/KgbtsPw==}
|
||||
|
||||
'@vue/devtools-core@7.7.2':
|
||||
resolution: {integrity: sha512-lexREWj1lKi91Tblr38ntSsy6CvI8ba7u+jmwh2yruib/ltLUcsIzEjCnrkh1yYGGIKXbAuYV2tOG10fGDB9OQ==}
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
|
||||
'@vue/devtools-kit@7.7.2':
|
||||
resolution: {integrity: sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==}
|
||||
'@vue/devtools-kit@7.7.6':
|
||||
resolution: {integrity: sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA==}
|
||||
|
||||
'@vue/devtools-shared@7.7.2':
|
||||
resolution: {integrity: sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==}
|
||||
'@vue/devtools-shared@7.7.6':
|
||||
resolution: {integrity: sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==}
|
||||
|
||||
'@vue/language-core@2.2.8':
|
||||
resolution: {integrity: sha512-rrzB0wPGBvcwaSNRriVWdNAbHQWSf0NlGqgKHK5mEkXpefjUlVRP62u03KvwZpvKVjRnBIQ/Lwre+Mx9N6juUQ==}
|
||||
'@vue/language-core@2.2.10':
|
||||
resolution: {integrity: sha512-+yNoYx6XIKuAO8Mqh1vGytu8jkFEOH5C8iOv3i8Z/65A7x9iAOXA97Q+PqZ3nlm2lxf5rOJuIGI/wDtx/riNYw==}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
@ -3374,9 +3377,6 @@ packages:
|
||||
bindings@1.5.0:
|
||||
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
|
||||
|
||||
birpc@0.2.19:
|
||||
resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==}
|
||||
|
||||
birpc@2.3.0:
|
||||
resolution: {integrity: sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==}
|
||||
|
||||
@ -4337,10 +4337,10 @@ packages:
|
||||
eslint-flat-config-utils@2.0.1:
|
||||
resolution: {integrity: sha512-brf0eAgQ6JlKj3bKfOTuuI7VcCZvi8ZCD1MMTVoEvS/d38j8cByZViLFALH/36+eqB17ukmfmKq3bWzGvizejA==}
|
||||
|
||||
eslint-formatter-gitlab@5.1.0:
|
||||
resolution: {integrity: sha512-IxhrjLYzDlbFgPWEnvZlWLwPjMeyymbyo0hDHWntZ3DSAP9AP9huj15KbU+BK3OqeO3OHhbFEh2TA6sR0KZhkA==}
|
||||
eslint-formatter-gitlab@6.0.0:
|
||||
resolution: {integrity: sha512-WPz1HYBwtdEBQQc3TCSY/qNOi/JthkPDL/P//GcgIRUlODqOW9wkiI2DLfmda5sO4kqZXuoUiEmtmr8NsqnWww==}
|
||||
peerDependencies:
|
||||
eslint: '>=5'
|
||||
eslint: '>=9'
|
||||
|
||||
eslint-import-resolver-node@0.3.9:
|
||||
resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
|
||||
@ -4890,10 +4890,6 @@ packages:
|
||||
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
|
||||
engines: {node: '>=4'}
|
||||
|
||||
globals@13.24.0:
|
||||
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
globals@14.0.0:
|
||||
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
|
||||
engines: {node: '>=18'}
|
||||
@ -6223,8 +6219,8 @@ packages:
|
||||
nth-check@2.1.1:
|
||||
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
|
||||
|
||||
nuxt@3.17.1:
|
||||
resolution: {integrity: sha512-RFUamVkXw86Kn9l3jeHLNnctsNf5Dp5pQY2bal9uZFiq1Wc9VyMdzou70DbMUjDe1yAoUbD6qz65FOEq+abesQ==}
|
||||
nuxt@3.17.2:
|
||||
resolution: {integrity: sha512-zPEGeGlHoMCFf+Y9I7iEZKhdfsRq0Zf2qE8wEEcjP9T6omzm776h9KVzoj3+qPL1v0rGzSyCFslFtxk+Ey6neA==}
|
||||
engines: {node: ^18.12.0 || ^20.9.0 || >=22.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@ -6311,8 +6307,8 @@ packages:
|
||||
resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
oxc-parser@0.67.0:
|
||||
resolution: {integrity: sha512-07arJoEJQopwEQ3gDu220l9J7i4XIyOWUGhfRalOX6gKEEYZIaqts5zJvFNtwNSjCc2yHMYscAdHNAB8nRazjA==}
|
||||
oxc-parser@0.68.1:
|
||||
resolution: {integrity: sha512-dHwz+xP9r1GTvqyywfws4j7EEP/OaeTpHEjTcvIjViB/R2IdUn52AnoUFNjpw8yRU52XVE76rOA4IEj7I0EjnA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
|
||||
p-event@5.0.1:
|
||||
@ -6507,8 +6503,8 @@ packages:
|
||||
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
pinia@2.3.1:
|
||||
resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==}
|
||||
pinia@3.0.2:
|
||||
resolution: {integrity: sha512-sH2JK3wNY809JOeiiURUR0wehJ9/gd9qFN2Y828jCbxEzKEmEt0pzCXwqiSTfuRsK9vQsOflSdnbdBOGrhtn+g==}
|
||||
peerDependencies:
|
||||
typescript: '>=4.4.4'
|
||||
vue: ^2.7.0 || ^3.5.11
|
||||
@ -7773,10 +7769,6 @@ packages:
|
||||
resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
type-fest@0.20.2:
|
||||
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
type-fest@2.19.0:
|
||||
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
|
||||
engines: {node: '>=12.20'}
|
||||
@ -7889,8 +7881,8 @@ packages:
|
||||
resolution: {integrity: sha512-oVUL7PSlyVV3QRhsdcyYEMaDX8HJyS/CnUonEJTYA3//bWO+o/4gG8F7auGWWWkrrxBQBYOO8DKe+C53ktpRXw==}
|
||||
engines: {node: '>=18.12.0'}
|
||||
|
||||
unimport@5.0.0:
|
||||
resolution: {integrity: sha512-8jL3T+FKDg+qLFX55X9j92uFRqH5vWrNlf/eJb5IQlQB5q5wjooXQDXP1ulhJJQHbosBmlKhBo/ZVS5jHlcJGA==}
|
||||
unimport@5.0.1:
|
||||
resolution: {integrity: sha512-1YWzPj6wYhtwHE+9LxRlyqP4DiRrhGfJxdtH475im8ktyZXO3jHj/3PZ97zDdvkYoovFdi0K4SKl3a7l92v3sQ==}
|
||||
engines: {node: '>=18.12.0'}
|
||||
|
||||
unique-filename@1.1.1:
|
||||
@ -8114,8 +8106,8 @@ packages:
|
||||
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
|
||||
hasBin: true
|
||||
|
||||
vite-plugin-checker@0.9.1:
|
||||
resolution: {integrity: sha512-neH3CSNWdkZ+zi+WPt/0y5+IO2I0UAI0NX6MaXqU/KxN1Lz6np/7IooRB6VVAMBa4nigqm1GRF6qNa4+EL5jDQ==}
|
||||
vite-plugin-checker@0.9.3:
|
||||
resolution: {integrity: sha512-Tf7QBjeBtG7q11zG0lvoF38/2AVUzzhMNu+Wk+mcsJ00Rk/FpJ4rmUviVJpzWkagbU13cGXvKpt7CMiqtxVTbQ==}
|
||||
engines: {node: '>=14.16'}
|
||||
peerDependencies:
|
||||
'@biomejs/biome': '>=1.7'
|
||||
@ -8127,7 +8119,7 @@ packages:
|
||||
vite: '>=2.0.0'
|
||||
vls: '*'
|
||||
vti: '*'
|
||||
vue-tsc: ~2.2.2
|
||||
vue-tsc: ~2.2.10
|
||||
peerDependenciesMeta:
|
||||
'@biomejs/biome':
|
||||
optional: true
|
||||
@ -8281,8 +8273,8 @@ packages:
|
||||
peerDependencies:
|
||||
vue: ^3.2.0
|
||||
|
||||
vue-tsc@2.2.8:
|
||||
resolution: {integrity: sha512-jBYKBNFADTN+L+MdesNX/TB3XuDSyaWynKMDgR+yCSln0GQ9Tfb7JS2lr46s2LiFUT1WsmfWsSvIElyxzOPqcQ==}
|
||||
vue-tsc@2.2.10:
|
||||
resolution: {integrity: sha512-jWZ1xSaNbabEV3whpIDMbjVSVawjAyW+x1n3JeGQo7S0uv2n9F/JMgWW90tGWNFRKya4YwKMZgCtr0vRAM7DeQ==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
typescript: '>=5.0.0'
|
||||
@ -9182,9 +9174,9 @@ snapshots:
|
||||
'@smithy/types': 3.4.2
|
||||
tslib: 2.7.0
|
||||
|
||||
'@babel/code-frame@7.26.2':
|
||||
'@babel/code-frame@7.27.1':
|
||||
dependencies:
|
||||
'@babel/helper-validator-identifier': 7.25.9
|
||||
'@babel/helper-validator-identifier': 7.27.1
|
||||
js-tokens: 4.0.0
|
||||
picocolors: 1.1.1
|
||||
|
||||
@ -9193,7 +9185,7 @@ snapshots:
|
||||
'@babel/core@7.26.8':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/generator': 7.26.10
|
||||
'@babel/helper-compilation-targets': 7.26.5
|
||||
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8)
|
||||
@ -9288,7 +9280,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@babel/core': 7.26.8
|
||||
'@babel/helper-module-imports': 7.25.9
|
||||
'@babel/helper-validator-identifier': 7.25.9
|
||||
'@babel/helper-validator-identifier': 7.27.1
|
||||
'@babel/traverse': 7.26.10
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@ -9326,7 +9318,7 @@ snapshots:
|
||||
|
||||
'@babel/helper-string-parser@7.25.9': {}
|
||||
|
||||
'@babel/helper-validator-identifier@7.25.9': {}
|
||||
'@babel/helper-validator-identifier@7.27.1': {}
|
||||
|
||||
'@babel/helper-validator-option@7.25.9': {}
|
||||
|
||||
@ -9574,7 +9566,7 @@ snapshots:
|
||||
'@babel/core': 7.26.8
|
||||
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8)
|
||||
'@babel/helper-plugin-utils': 7.26.5
|
||||
'@babel/helper-validator-identifier': 7.25.9
|
||||
'@babel/helper-validator-identifier': 7.27.1
|
||||
'@babel/traverse': 7.26.10
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@ -9830,13 +9822,13 @@ snapshots:
|
||||
|
||||
'@babel/template@7.26.9':
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/parser': 7.26.10
|
||||
'@babel/types': 7.26.10
|
||||
|
||||
'@babel/traverse@7.26.10':
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/generator': 7.26.10
|
||||
'@babel/parser': 7.26.10
|
||||
'@babel/template': 7.26.9
|
||||
@ -9849,7 +9841,7 @@ snapshots:
|
||||
'@babel/types@7.26.10':
|
||||
dependencies:
|
||||
'@babel/helper-string-parser': 7.25.9
|
||||
'@babel/helper-validator-identifier': 7.25.9
|
||||
'@babel/helper-validator-identifier': 7.27.1
|
||||
|
||||
'@barbapapazes/plausible-tracker@0.5.6': {}
|
||||
|
||||
@ -10537,8 +10529,8 @@ snapshots:
|
||||
|
||||
'@nuxt/devtools-kit@2.4.0(magicast@0.3.5)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))':
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/schema': 3.17.1
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
'@nuxt/schema': 3.17.2
|
||||
execa: 8.0.1
|
||||
vite: 6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0)
|
||||
transitivePeerDependencies:
|
||||
@ -10559,9 +10551,9 @@ snapshots:
|
||||
dependencies:
|
||||
'@nuxt/devtools-kit': 2.4.0(magicast@0.3.5)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))
|
||||
'@nuxt/devtools-wizard': 2.4.0
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
'@vue/devtools-core': 7.7.2(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))
|
||||
'@vue/devtools-kit': 7.7.2
|
||||
'@vue/devtools-kit': 7.7.6
|
||||
birpc: 2.3.0
|
||||
consola: 3.4.2
|
||||
destr: 2.0.5
|
||||
@ -10586,7 +10578,7 @@ snapshots:
|
||||
structured-clone-es: 1.0.0
|
||||
tinyglobby: 0.2.13
|
||||
vite: 6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0)
|
||||
vite-plugin-inspect: 11.0.0(@nuxt/kit@3.17.1(magicast@0.3.5))(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))
|
||||
vite-plugin-inspect: 11.0.0(@nuxt/kit@3.17.2(magicast@0.3.5))(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))
|
||||
vite-plugin-vue-tracer: 0.1.3(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))
|
||||
which: 5.0.0
|
||||
ws: 8.18.1
|
||||
@ -10639,7 +10631,7 @@ snapshots:
|
||||
'@nuxt/devtools-kit': 2.4.0(magicast@0.3.5)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))
|
||||
'@nuxt/eslint-config': 1.2.0(@vue/compiler-sfc@3.5.13)(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3)
|
||||
'@nuxt/eslint-plugin': 1.2.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.3)
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
chokidar: 4.0.3
|
||||
eslint: 9.22.0(jiti@2.4.2)
|
||||
eslint-flat-config-utils: 2.0.1
|
||||
@ -10659,7 +10651,7 @@ snapshots:
|
||||
- utf-8-validate
|
||||
- vite
|
||||
|
||||
'@nuxt/kit@3.17.1(magicast@0.3.5)':
|
||||
'@nuxt/kit@3.17.2(magicast@0.3.5)':
|
||||
dependencies:
|
||||
c12: 3.0.3(magicast@0.3.5)
|
||||
consola: 3.4.2
|
||||
@ -10681,12 +10673,12 @@ snapshots:
|
||||
tinyglobby: 0.2.13
|
||||
ufo: 1.6.1
|
||||
unctx: 2.4.1
|
||||
unimport: 5.0.0
|
||||
unimport: 5.0.1
|
||||
untyped: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- magicast
|
||||
|
||||
'@nuxt/schema@3.17.1':
|
||||
'@nuxt/schema@3.17.2':
|
||||
dependencies:
|
||||
'@vue/shared': 3.5.13
|
||||
consola: 3.4.2
|
||||
@ -10696,7 +10688,7 @@ snapshots:
|
||||
|
||||
'@nuxt/telemetry@2.6.6(magicast@0.3.5)':
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
citty: 0.1.6
|
||||
consola: 3.4.2
|
||||
destr: 2.0.5
|
||||
@ -10713,8 +10705,8 @@ snapshots:
|
||||
|
||||
'@nuxt/test-utils@3.17.2(@playwright/test@1.50.0)(@types/node@22.13.14)(@vue/test-utils@2.4.6)(jiti@2.4.2)(jsdom@26.0.0(canvas@3.1.0))(magicast@0.3.5)(playwright-core@1.50.0)(sass@1.32.12)(terser@5.33.0)(typescript@5.8.3)(vitest@3.1.2(@types/node@22.13.14)(jiti@2.4.2)(jsdom@26.0.0(canvas@3.1.0))(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(yaml@2.7.0)':
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/schema': 3.17.1
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
'@nuxt/schema': 3.17.2
|
||||
c12: 3.0.3(magicast@0.3.5)
|
||||
consola: 3.4.2
|
||||
defu: 6.1.4
|
||||
@ -10760,9 +10752,9 @@ snapshots:
|
||||
- typescript
|
||||
- yaml
|
||||
|
||||
'@nuxt/vite-builder@3.17.1(@types/node@22.13.14)(eslint@9.22.0(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.40.1)(sass@1.32.12)(terser@5.33.0)(typescript@5.8.3)(vue-tsc@2.2.8(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))(yaml@2.7.0)':
|
||||
'@nuxt/vite-builder@3.17.2(@types/node@22.13.14)(eslint@9.22.0(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.40.1)(sass@1.32.12)(terser@5.33.0)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))(yaml@2.7.0)':
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
'@rollup/plugin-replace': 6.0.2(rollup@4.40.1)
|
||||
'@vitejs/plugin-vue': 5.2.3(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))
|
||||
'@vitejs/plugin-vue-jsx': 4.1.2(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))
|
||||
@ -10793,7 +10785,7 @@ snapshots:
|
||||
unplugin: 2.3.2
|
||||
vite: 6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0)
|
||||
vite-node: 3.1.2(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0)
|
||||
vite-plugin-checker: 0.9.1(eslint@9.22.0(jiti@2.4.2))(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue-tsc@2.2.8(typescript@5.8.3))
|
||||
vite-plugin-checker: 0.9.3(eslint@9.22.0(jiti@2.4.2))(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue-tsc@2.2.10(typescript@5.8.3))
|
||||
vue: 3.5.13(typescript@5.8.3)
|
||||
vue-bundle-renderer: 2.1.1
|
||||
transitivePeerDependencies:
|
||||
@ -10824,7 +10816,7 @@ snapshots:
|
||||
'@nuxtjs/plausible@1.2.0(magicast@0.3.5)':
|
||||
dependencies:
|
||||
'@barbapapazes/plausible-tracker': 0.5.6
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
defu: 6.1.4
|
||||
ufo: 1.6.1
|
||||
transitivePeerDependencies:
|
||||
@ -10832,39 +10824,39 @@ snapshots:
|
||||
|
||||
'@one-ini/wasm@0.1.1': {}
|
||||
|
||||
'@oxc-parser/binding-darwin-arm64@0.67.0':
|
||||
'@oxc-parser/binding-darwin-arm64@0.68.1':
|
||||
optional: true
|
||||
|
||||
'@oxc-parser/binding-darwin-x64@0.67.0':
|
||||
'@oxc-parser/binding-darwin-x64@0.68.1':
|
||||
optional: true
|
||||
|
||||
'@oxc-parser/binding-linux-arm-gnueabihf@0.67.0':
|
||||
'@oxc-parser/binding-linux-arm-gnueabihf@0.68.1':
|
||||
optional: true
|
||||
|
||||
'@oxc-parser/binding-linux-arm64-gnu@0.67.0':
|
||||
'@oxc-parser/binding-linux-arm64-gnu@0.68.1':
|
||||
optional: true
|
||||
|
||||
'@oxc-parser/binding-linux-arm64-musl@0.67.0':
|
||||
'@oxc-parser/binding-linux-arm64-musl@0.68.1':
|
||||
optional: true
|
||||
|
||||
'@oxc-parser/binding-linux-x64-gnu@0.67.0':
|
||||
'@oxc-parser/binding-linux-x64-gnu@0.68.1':
|
||||
optional: true
|
||||
|
||||
'@oxc-parser/binding-linux-x64-musl@0.67.0':
|
||||
'@oxc-parser/binding-linux-x64-musl@0.68.1':
|
||||
optional: true
|
||||
|
||||
'@oxc-parser/binding-wasm32-wasi@0.67.0':
|
||||
'@oxc-parser/binding-wasm32-wasi@0.68.1':
|
||||
dependencies:
|
||||
'@napi-rs/wasm-runtime': 0.2.9
|
||||
optional: true
|
||||
|
||||
'@oxc-parser/binding-win32-arm64-msvc@0.67.0':
|
||||
'@oxc-parser/binding-win32-arm64-msvc@0.68.1':
|
||||
optional: true
|
||||
|
||||
'@oxc-parser/binding-win32-x64-msvc@0.67.0':
|
||||
'@oxc-parser/binding-win32-x64-msvc@0.68.1':
|
||||
optional: true
|
||||
|
||||
'@oxc-project/types@0.67.0': {}
|
||||
'@oxc-project/types@0.68.1': {}
|
||||
|
||||
'@parcel/watcher-android-arm64@2.5.1':
|
||||
optional: true
|
||||
@ -10931,10 +10923,10 @@ snapshots:
|
||||
'@parcel/watcher-win32-ia32': 2.5.1
|
||||
'@parcel/watcher-win32-x64': 2.5.1
|
||||
|
||||
'@pinia/nuxt@0.9.0(magicast@0.3.5)(pinia@2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)))':
|
||||
'@pinia/nuxt@0.11.0(magicast@0.3.5)(pinia@3.0.2(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)))':
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
pinia: 2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
pinia: 3.0.2(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))
|
||||
transitivePeerDependencies:
|
||||
- magicast
|
||||
|
||||
@ -12031,7 +12023,7 @@ snapshots:
|
||||
|
||||
'@vite-pwa/nuxt@0.10.6(magicast@0.3.5)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0)':
|
||||
dependencies:
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
pathe: 1.1.2
|
||||
ufo: 1.6.1
|
||||
vite-plugin-pwa: 0.21.1(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(workbox-build@7.3.0)(workbox-window@7.3.0)
|
||||
@ -12158,7 +12150,7 @@ snapshots:
|
||||
|
||||
'@vue/babel-plugin-resolve-type@1.4.0(@babel/core@7.26.8)':
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/code-frame': 7.27.1
|
||||
'@babel/core': 7.26.8
|
||||
'@babel/helper-module-imports': 7.25.9
|
||||
'@babel/helper-plugin-utils': 7.26.5
|
||||
@ -12204,10 +12196,14 @@ snapshots:
|
||||
|
||||
'@vue/devtools-api@6.6.4': {}
|
||||
|
||||
'@vue/devtools-api@7.7.6':
|
||||
dependencies:
|
||||
'@vue/devtools-kit': 7.7.6
|
||||
|
||||
'@vue/devtools-core@7.7.2(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))':
|
||||
dependencies:
|
||||
'@vue/devtools-kit': 7.7.2
|
||||
'@vue/devtools-shared': 7.7.2
|
||||
'@vue/devtools-kit': 7.7.6
|
||||
'@vue/devtools-shared': 7.7.6
|
||||
mitt: 3.0.1
|
||||
nanoid: 5.1.3
|
||||
pathe: 2.0.3
|
||||
@ -12216,21 +12212,21 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- vite
|
||||
|
||||
'@vue/devtools-kit@7.7.2':
|
||||
'@vue/devtools-kit@7.7.6':
|
||||
dependencies:
|
||||
'@vue/devtools-shared': 7.7.2
|
||||
birpc: 0.2.19
|
||||
'@vue/devtools-shared': 7.7.6
|
||||
birpc: 2.3.0
|
||||
hookable: 5.5.3
|
||||
mitt: 3.0.1
|
||||
perfect-debounce: 1.0.0
|
||||
speakingurl: 14.0.1
|
||||
superjson: 2.2.2
|
||||
|
||||
'@vue/devtools-shared@7.7.2':
|
||||
'@vue/devtools-shared@7.7.6':
|
||||
dependencies:
|
||||
rfdc: 1.4.1
|
||||
|
||||
'@vue/language-core@2.2.8(typescript@5.8.3)':
|
||||
'@vue/language-core@2.2.10(typescript@5.8.3)':
|
||||
dependencies:
|
||||
'@volar/language-core': 2.4.11
|
||||
'@vue/compiler-dom': 3.5.13
|
||||
@ -12625,8 +12621,6 @@ snapshots:
|
||||
dependencies:
|
||||
file-uri-to-path: 1.0.0
|
||||
|
||||
birpc@0.2.19: {}
|
||||
|
||||
birpc@2.3.0: {}
|
||||
|
||||
bl@4.1.0:
|
||||
@ -13688,9 +13682,8 @@ snapshots:
|
||||
dependencies:
|
||||
pathe: 2.0.3
|
||||
|
||||
eslint-formatter-gitlab@5.1.0(eslint@9.22.0(jiti@2.4.2)):
|
||||
eslint-formatter-gitlab@6.0.0(eslint@9.22.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
chalk: 4.1.2
|
||||
eslint: 9.22.0(jiti@2.4.2)
|
||||
yaml: 2.7.0
|
||||
|
||||
@ -13793,7 +13786,7 @@ snapshots:
|
||||
|
||||
eslint-plugin-unicorn@57.0.0(eslint@9.22.0(jiti@2.4.2)):
|
||||
dependencies:
|
||||
'@babel/helper-validator-identifier': 7.25.9
|
||||
'@babel/helper-validator-identifier': 7.27.1
|
||||
'@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2))
|
||||
ci-info: 4.2.0
|
||||
clean-regexp: 1.0.0
|
||||
@ -14440,10 +14433,6 @@ snapshots:
|
||||
|
||||
globals@11.12.0: {}
|
||||
|
||||
globals@13.24.0:
|
||||
dependencies:
|
||||
type-fest: 0.20.2
|
||||
|
||||
globals@14.0.0: {}
|
||||
|
||||
globals@15.15.0: {}
|
||||
@ -15706,7 +15695,7 @@ snapshots:
|
||||
uncrypto: 0.1.3
|
||||
unctx: 2.4.1
|
||||
unenv: 2.0.0-rc.15
|
||||
unimport: 5.0.0
|
||||
unimport: 5.0.1
|
||||
unplugin-utils: 0.2.4
|
||||
unstorage: 1.16.0(db0@0.3.2(sqlite3@5.1.7))(ioredis@5.6.1)
|
||||
untyped: 2.0.0
|
||||
@ -15862,15 +15851,15 @@ snapshots:
|
||||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
|
||||
nuxt@3.17.1(@parcel/watcher@2.5.1)(@types/node@22.13.14)(db0@0.3.2(sqlite3@5.1.7))(encoding@0.1.13)(eslint@9.22.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.40.1)(sass@1.32.12)(sqlite3@5.1.7)(terser@5.33.0)(typescript@5.8.3)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue-tsc@2.2.8(typescript@5.8.3))(yaml@2.7.0):
|
||||
nuxt@3.17.2(@parcel/watcher@2.5.1)(@types/node@22.13.14)(db0@0.3.2(sqlite3@5.1.7))(encoding@0.1.13)(eslint@9.22.0(jiti@2.4.2))(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.40.1)(sass@1.32.12)(sqlite3@5.1.7)(terser@5.33.0)(typescript@5.8.3)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue-tsc@2.2.10(typescript@5.8.3))(yaml@2.7.0):
|
||||
dependencies:
|
||||
'@nuxt/cli': 3.25.0(magicast@0.3.5)
|
||||
'@nuxt/devalue': 2.0.2
|
||||
'@nuxt/devtools': 2.4.0(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/schema': 3.17.1
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
'@nuxt/schema': 3.17.2
|
||||
'@nuxt/telemetry': 2.6.6(magicast@0.3.5)
|
||||
'@nuxt/vite-builder': 3.17.1(@types/node@22.13.14)(eslint@9.22.0(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.40.1)(sass@1.32.12)(terser@5.33.0)(typescript@5.8.3)(vue-tsc@2.2.8(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))(yaml@2.7.0)
|
||||
'@nuxt/vite-builder': 3.17.2(@types/node@22.13.14)(eslint@9.22.0(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.4)(rollup@4.40.1)(sass@1.32.12)(terser@5.33.0)(typescript@5.8.3)(vue-tsc@2.2.10(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))(yaml@2.7.0)
|
||||
'@unhead/vue': 2.0.8(vue@3.5.13(typescript@5.8.3))
|
||||
'@vue/shared': 3.5.13
|
||||
c12: 3.0.3(magicast@0.3.5)
|
||||
@ -15903,7 +15892,7 @@ snapshots:
|
||||
ofetch: 1.4.1
|
||||
ohash: 2.0.11
|
||||
on-change: 5.0.1
|
||||
oxc-parser: 0.67.0
|
||||
oxc-parser: 0.68.1
|
||||
pathe: 2.0.3
|
||||
perfect-debounce: 1.0.0
|
||||
pkg-types: 2.1.0
|
||||
@ -15917,7 +15906,7 @@ snapshots:
|
||||
ultrahtml: 1.6.0
|
||||
uncrypto: 0.1.3
|
||||
unctx: 2.4.1
|
||||
unimport: 5.0.0
|
||||
unimport: 5.0.1
|
||||
unplugin: 2.3.2
|
||||
unplugin-vue-router: 0.12.0(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3))
|
||||
unstorage: 1.16.0(db0@0.3.2(sqlite3@5.1.7))(ioredis@5.6.1)
|
||||
@ -16067,20 +16056,20 @@ snapshots:
|
||||
object-keys: 1.1.1
|
||||
safe-push-apply: 1.0.0
|
||||
|
||||
oxc-parser@0.67.0:
|
||||
oxc-parser@0.68.1:
|
||||
dependencies:
|
||||
'@oxc-project/types': 0.67.0
|
||||
'@oxc-project/types': 0.68.1
|
||||
optionalDependencies:
|
||||
'@oxc-parser/binding-darwin-arm64': 0.67.0
|
||||
'@oxc-parser/binding-darwin-x64': 0.67.0
|
||||
'@oxc-parser/binding-linux-arm-gnueabihf': 0.67.0
|
||||
'@oxc-parser/binding-linux-arm64-gnu': 0.67.0
|
||||
'@oxc-parser/binding-linux-arm64-musl': 0.67.0
|
||||
'@oxc-parser/binding-linux-x64-gnu': 0.67.0
|
||||
'@oxc-parser/binding-linux-x64-musl': 0.67.0
|
||||
'@oxc-parser/binding-wasm32-wasi': 0.67.0
|
||||
'@oxc-parser/binding-win32-arm64-msvc': 0.67.0
|
||||
'@oxc-parser/binding-win32-x64-msvc': 0.67.0
|
||||
'@oxc-parser/binding-darwin-arm64': 0.68.1
|
||||
'@oxc-parser/binding-darwin-x64': 0.68.1
|
||||
'@oxc-parser/binding-linux-arm-gnueabihf': 0.68.1
|
||||
'@oxc-parser/binding-linux-arm64-gnu': 0.68.1
|
||||
'@oxc-parser/binding-linux-arm64-musl': 0.68.1
|
||||
'@oxc-parser/binding-linux-x64-gnu': 0.68.1
|
||||
'@oxc-parser/binding-linux-x64-musl': 0.68.1
|
||||
'@oxc-parser/binding-wasm32-wasi': 0.68.1
|
||||
'@oxc-parser/binding-win32-arm64-msvc': 0.68.1
|
||||
'@oxc-parser/binding-win32-x64-msvc': 0.68.1
|
||||
|
||||
p-event@5.0.1:
|
||||
dependencies:
|
||||
@ -16190,14 +16179,14 @@ snapshots:
|
||||
|
||||
parse-json@5.2.0:
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/code-frame': 7.27.1
|
||||
error-ex: 1.3.2
|
||||
json-parse-even-better-errors: 2.3.1
|
||||
lines-and-columns: 1.2.4
|
||||
|
||||
parse-json@8.1.0:
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/code-frame': 7.27.1
|
||||
index-to-position: 0.1.2
|
||||
type-fest: 4.27.0
|
||||
|
||||
@ -16275,15 +16264,12 @@ snapshots:
|
||||
|
||||
pify@2.3.0: {}
|
||||
|
||||
pinia@2.3.1(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)):
|
||||
pinia@3.0.2(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)):
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.6.4
|
||||
'@vue/devtools-api': 7.7.6
|
||||
vue: 3.5.13(typescript@5.8.3)
|
||||
vue-demi: 0.14.10(vue@3.5.13(typescript@5.8.3))
|
||||
optionalDependencies:
|
||||
typescript: 5.8.3
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
|
||||
pinkie-promise@2.0.1:
|
||||
dependencies:
|
||||
@ -17715,8 +17701,6 @@ snapshots:
|
||||
|
||||
type-fest@0.16.0: {}
|
||||
|
||||
type-fest@0.20.2: {}
|
||||
|
||||
type-fest@2.19.0: {}
|
||||
|
||||
type-fest@3.13.1: {}
|
||||
@ -17848,7 +17832,7 @@ snapshots:
|
||||
unplugin: 2.3.2
|
||||
unplugin-utils: 0.2.4
|
||||
|
||||
unimport@5.0.0:
|
||||
unimport@5.0.1:
|
||||
dependencies:
|
||||
acorn: 8.14.1
|
||||
escape-string-regexp: 5.0.0
|
||||
@ -18073,9 +18057,9 @@ snapshots:
|
||||
- tsx
|
||||
- yaml
|
||||
|
||||
vite-plugin-checker@0.9.1(eslint@9.22.0(jiti@2.4.2))(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue-tsc@2.2.8(typescript@5.8.3)):
|
||||
vite-plugin-checker@0.9.3(eslint@9.22.0(jiti@2.4.2))(optionator@0.9.4)(typescript@5.8.3)(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))(vue-tsc@2.2.10(typescript@5.8.3)):
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.26.2
|
||||
'@babel/code-frame': 7.27.1
|
||||
chokidar: 4.0.3
|
||||
npm-run-path: 6.0.0
|
||||
picocolors: 1.1.1
|
||||
@ -18089,9 +18073,9 @@ snapshots:
|
||||
eslint: 9.22.0(jiti@2.4.2)
|
||||
optionator: 0.9.4
|
||||
typescript: 5.8.3
|
||||
vue-tsc: 2.2.8(typescript@5.8.3)
|
||||
vue-tsc: 2.2.10(typescript@5.8.3)
|
||||
|
||||
vite-plugin-inspect@11.0.0(@nuxt/kit@3.17.1(magicast@0.3.5))(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0)):
|
||||
vite-plugin-inspect@11.0.0(@nuxt/kit@3.17.2(magicast@0.3.5))(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0)):
|
||||
dependencies:
|
||||
ansis: 3.17.0
|
||||
debug: 4.4.0
|
||||
@ -18104,7 +18088,7 @@ snapshots:
|
||||
vite: 6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0)
|
||||
vite-dev-rpc: 1.0.7(vite@6.3.4(@types/node@22.13.14)(jiti@2.4.2)(sass@1.32.12)(terser@5.33.0)(yaml@2.7.0))
|
||||
optionalDependencies:
|
||||
'@nuxt/kit': 3.17.1(magicast@0.3.5)
|
||||
'@nuxt/kit': 3.17.2(magicast@0.3.5)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@ -18245,10 +18229,10 @@ snapshots:
|
||||
'@vue/devtools-api': 6.6.4
|
||||
vue: 3.5.13(typescript@5.8.3)
|
||||
|
||||
vue-tsc@2.2.8(typescript@5.8.3):
|
||||
vue-tsc@2.2.10(typescript@5.8.3):
|
||||
dependencies:
|
||||
'@volar/typescript': 2.4.11
|
||||
'@vue/language-core': 2.2.8(typescript@5.8.3)
|
||||
'@vue/language-core': 2.2.10(typescript@5.8.3)
|
||||
typescript: 5.8.3
|
||||
|
||||
vue@3.5.13(typescript@5.8.3):
|
||||
|
@ -22,7 +22,8 @@ import forbidden from '~/src/forbidden.ts';
|
||||
import { clearLinkedText, buildImageUrl } from '~/src/helpers.ts';
|
||||
import { genders, gendersWithNumerus } from '~/src/nouns.ts';
|
||||
import parseMarkdown from '~/src/parseMarkdown.ts';
|
||||
import { normaliseQuery, type SearchDocument, validateQuery } from '~/src/search.ts';
|
||||
import { normaliseQuery, validateQuery } from '~/src/search.ts';
|
||||
import type { SearchDocument } from '~/src/search.ts';
|
||||
|
||||
interface SearchKind {
|
||||
kind: SearchDocument['kind'];
|
||||
|
@ -57,12 +57,19 @@ const publishers = {
|
||||
}
|
||||
}
|
||||
|
||||
const language = tweet.match(/^\[(.*)]/)[1];
|
||||
|
||||
try {
|
||||
const tweetResponse = await client.post('statuses', {
|
||||
status: tweet,
|
||||
media_ids: mediaIds,
|
||||
visibility: 'unlisted',
|
||||
...previousId ? { in_reply_to_id: previousId } : {},
|
||||
...previousId
|
||||
? {
|
||||
in_reply_to_id: previousId,
|
||||
spoiler_text: language,
|
||||
}
|
||||
: {},
|
||||
language: locale,
|
||||
});
|
||||
console.log(tweetResponse.data);
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { type Config, type ConfigWithEnabled, isEnabled } from '../locale/config.ts';
|
||||
import { isEnabled } from '../locale/config.ts';
|
||||
import type { Config, ConfigWithEnabled } from '../locale/config.ts';
|
||||
import type { PronounData, PronounGroupData } from '../locale/data.ts';
|
||||
|
||||
import { Pronoun, PronounGroup } from './classes.ts';
|
||||
|
@ -1,5 +1,6 @@
|
||||
import type { ExampleValues } from '~/src/language/examples.ts';
|
||||
import { type MorphemeValue, toMorphemeValue } from '~/src/language/morphemes.ts';
|
||||
import { toMorphemeValue } from '~/src/language/morphemes.ts';
|
||||
import type { MorphemeValue } from '~/src/language/morphemes.ts';
|
||||
|
||||
export type GrammarTablesDefinition = (GrammarTableDefinition | string)[]
|
||||
| { simple: (GrammarTableDefinition | string)[]; comprehensive: (GrammarTableDefinition | string)[] };
|
||||
|
@ -8,7 +8,8 @@ import { loadSuml, loadTsv } from '~/server/loader.ts';
|
||||
import { normaliseKey } from '~/src/buildPronoun.ts';
|
||||
import { Example } from '~/src/language/examples.ts';
|
||||
import type { VariantsFromBaseConverter } from '~/src/language/grammarTables.ts';
|
||||
import { availableGenders, gendersWithNumerus, type NounConventions } from '~/src/nouns.ts';
|
||||
import { availableGenders, gendersWithNumerus } from '~/src/nouns.ts';
|
||||
import type { NounConventions } from '~/src/nouns.ts';
|
||||
|
||||
function toHaveValidMorphemes(actual: string, morphemes: string[]): SyncExpectationResult {
|
||||
const containedMorphemes = Example.parse(actual).parts
|
||||
|
@ -5,7 +5,8 @@ import { promisify } from 'util';
|
||||
|
||||
import { chromium } from '@playwright/test';
|
||||
import type { Browser, Page } from '@playwright/test';
|
||||
import { execa, type ResultPromise } from 'execa';
|
||||
import { execa } from 'execa';
|
||||
import type { ResultPromise } from 'execa';
|
||||
import tkKill from 'tree-kill';
|
||||
import { describe, it, beforeAll, afterAll, expect } from 'vitest';
|
||||
import { createRouter, createMemoryHistory } from 'vue-router';
|
||||
|
Loading…
x
Reference in New Issue
Block a user