Maintenance: Update dependency oxfmt to ^0.49.0

This commit is contained in:
renovatebot
2026-05-13 12:05:50 +02:00
committed by Florian Liebe
parent 013579fe51
commit 42851ec28a
45 changed files with 151 additions and 146 deletions

View File

@@ -28,13 +28,13 @@ const sizeClass = computed(() => {
<template>
<div
:class="sizeClass"
class="before:from-blue before:to-pink relative rounded-full before:absolute before:inset-0 before:z-0 before:size-full before:animate-spin before:rounded-full before:bg-gradient-to-r before:[animation-duration:2s]"
class="relative rounded-full before:absolute before:inset-0 before:z-0 before:size-full before:animate-spin before:rounded-full before:bg-gradient-to-r before:from-blue before:to-pink before:[animation-duration:2s]"
>
<div
:aria-label="$t('AI agent')"
class="relative z-1 flex rounded-full border border-transparent bg-gray-600/90 bg-clip-padding p-1"
>
<CommonIcon class="text-blue h-full w-full" size="tiny" name="ai-agent" />
<CommonIcon class="h-full w-full text-blue" size="tiny" name="ai-agent" />
</div>
</div>
</template>

View File

@@ -113,7 +113,7 @@ export default {
:class="{ 'transition-all duration-200 ease-linear': !isSwiping }"
:style="{ transform: `translateY(${top})` }"
>
<div class="bg-gray-150/40 mx-4 h-2.5 shrink-0 rounded-t-xl" />
<div class="mx-4 h-2.5 shrink-0 rounded-t-xl bg-gray-150/40" />
<div
class="relative flex h-16 shrink-0 items-center justify-center rounded-t-xl bg-gray-600/80 select-none"
>

View File

@@ -37,7 +37,7 @@ export default {
<div
v-else-if="error"
v-bind="$attrs"
class="text-red-bright flex items-center justify-center gap-2 text-base"
class="flex items-center justify-center gap-2 text-base text-red-bright"
>
<CommonIcon name="close-small" />
<!-- eslint-disable vue/no-v-html -->

View File

@@ -60,7 +60,7 @@ const showLabel = computed(() => {
:is="actionLink ? 'CommonLink' : 'div'"
v-if="actionLabel"
:link="actionLink"
class="text-blue cursor-pointer ltr:pr-4 rtl:pl-4"
class="cursor-pointer text-blue ltr:pr-4 rtl:pl-4"
@click="clickOnAction"
>
{{ i18n.t(actionLabel) }}

View File

@@ -43,7 +43,7 @@ const label = computed(() => {
}"
tabindex="0"
:aria-selected="selected"
class="focus:bg-blue-highlight flex h-[58px] cursor-pointer items-center self-stretch px-4 py-5 text-base leading-[19px] text-white first:rounded-t-xl last:rounded-b-xl focus:outline-hidden"
class="flex h-[58px] cursor-pointer items-center self-stretch px-4 py-5 text-base leading-[19px] text-white first:rounded-t-xl last:rounded-b-xl focus:bg-blue-highlight focus:outline-hidden"
role="option"
:data-value="option.value"
@click="select(option)"

View File

@@ -32,7 +32,7 @@ const classes = computed(() => {
role="status"
:aria-label="$t('Invalid values in step %s', label)"
aria-live="assertive"
class="bg-red absolute mb-3 h-4 min-w-[1rem] rounded-full px-1 text-center text-xs text-black ltr:ml-6 rtl:mr-6"
class="absolute mb-3 h-4 min-w-[1rem] rounded-full bg-red px-1 text-center text-xs text-black ltr:ml-6 rtl:mr-6"
>
{{ errorCount }}
</div>

View File

@@ -55,7 +55,7 @@ const getTicketsLink = (stateIds: number[]) => {
</CommonSectionMenuLink>
<CommonLink
v-if="createLink && createLabel"
class="text-blue flex min-h-[54px] items-center justify-center gap-2"
class="flex min-h-[54px] items-center justify-center gap-2 text-blue"
:link="createLink"
>
<CommonIcon name="add" size="tiny" decorative />

View File

@@ -149,7 +149,7 @@ useFormBlock(contextReactive, onInputClick)
<CommonIcon
v-if="context.clearable && hasValue && !context.disabled"
:aria-label="i18n.t('Clear selection')"
class="text-gray absolute -mt-5 shrink-0 ltr:right-2 rtl:left-2"
class="absolute -mt-5 shrink-0 text-gray ltr:right-2 rtl:left-2"
name="close-small"
size="base"
role="button"

View File

@@ -301,7 +301,7 @@ useTraverseOptions(autocompleteList)
:aria-posinset="options.findIndex((o) => o.value === option.value) + 1"
tabindex="0"
:aria-selected="isCurrentValue(option.value)"
class="focus:bg-blue-highlight relative flex h-[58px] cursor-pointer items-center self-stretch px-6 py-5 text-base leading-[19px] text-white focus:outline-hidden"
class="relative flex h-[58px] cursor-pointer items-center self-stretch px-6 py-5 text-base leading-[19px] text-white focus:bg-blue-highlight focus:outline-hidden"
role="option"
@click="select(option as AutoCompleteOption)"
@keyup.space="select(option as AutoCompleteOption)"

View File

@@ -145,7 +145,7 @@ useEventListener('click', (e) => {
</template>
<template #clear-icon>
<CommonIcon
class="text-gray absolute -mt-5 shrink-0 ltr:right-2 rtl:left-2"
class="absolute -mt-5 shrink-0 text-gray ltr:right-2 rtl:left-2"
:aria-label="i18n.t('Clear selection')"
name="close-small"
size="base"

View File

@@ -80,7 +80,7 @@ const emptyMessage = computed(() => {
<div>{{ (item as MentionTextItem).name }}</div>
<div
v-if="(item as MentionTextItem).keywords"
class="border-gray-150 rounded border border-solid px-1 text-sm"
class="rounded border border-solid border-gray-150 px-1 text-sm"
>
{{ (item as MentionTextItem).keywords }}
</div>

View File

@@ -122,7 +122,7 @@ setupMissingOrDisabledOptionHandling()
<CommonIcon
v-if="context.clearable && hasValue && !context.disabled"
:aria-label="i18n.t('Clear selection')"
class="text-gray absolute -mt-5 shrink-0 ltr:right-2 rtl:left-2"
class="absolute -mt-5 shrink-0 text-gray ltr:right-2 rtl:left-2"
name="close-small"
size="base"
role="button"

View File

@@ -152,7 +152,7 @@ const processSearchKeydown = (event: KeyboardEvent) => {
<button
v-if="filter.length > 0"
:aria-label="$t('Create tag')"
class="bg-green rounded-3xl text-white"
class="rounded-3xl bg-green text-white"
:class="{
'bg-green/40 text-white/20': tagExists(filter),
}"
@@ -176,7 +176,7 @@ const processSearchKeydown = (event: KeyboardEvent) => {
v-for="option of filteredTags"
:id="`${name}-${option}`"
:key="option"
class="focus:bg-blue-highlight flex w-full items-center px-4 focus:outline-hidden"
class="flex w-full items-center px-4 focus:bg-blue-highlight focus:outline-hidden"
role="option"
aria-setsize="-1"
:aria-posinset="sortedOptions.indexOf(option) + 1"

View File

@@ -79,7 +79,7 @@ useFormBlock(reactiveContext, onInputClick)
<div
v-for="tag of selectedTagsList"
:key="tag"
class="bg-gray/20 text-gray rounded-xs px-[4px] py-[2px] text-base leading-4 uppercase"
class="rounded-xs bg-gray/20 px-[4px] py-[2px] text-base leading-4 text-gray uppercase"
role="listitem"
>
{{ tag }}

View File

@@ -195,7 +195,7 @@ setupMissingOrDisabledOptionHandling()
<CommonIcon
v-if="context.clearable && hasValue && !context.disabled"
:label="__('Clear selection')"
class="text-gray absolute -mt-5 shrink-0 ltr:right-2 rtl:left-2"
class="absolute -mt-5 shrink-0 text-gray ltr:right-2 rtl:left-2"
name="close-small"
size="base"
role="button"

View File

@@ -175,7 +175,7 @@ const getCurrentIndex = (option: FlatSelectOption) => {
:class="{
'px-6': !context.noFiltering,
}"
class="focus:bg-blue-highlight flex h-[58px] cursor-pointer items-center self-stretch px-4 py-5 text-base leading-[19px] text-white focus:outline-hidden"
class="flex h-[58px] cursor-pointer items-center self-stretch px-4 py-5 text-base leading-[19px] text-white focus:bg-blue-highlight focus:outline-hidden"
tabindex="0"
role="button"
:aria-label="$t('Back to previous page')"
@@ -211,7 +211,7 @@ const getCurrentIndex = (option: FlatSelectOption) => {
'px-6': !context.noFiltering,
'pointer-events-none': option.disabled,
}"
class="focus:bg-blue-highlight relative flex h-[58px] cursor-pointer items-center self-stretch px-4 py-5 text-base leading-[19px] text-white focus:outline-hidden"
class="relative flex h-[58px] cursor-pointer items-center self-stretch px-4 py-5 text-base leading-[19px] text-white focus:bg-blue-highlight focus:outline-hidden"
tabindex="0"
role="option"
:aria-selected="option.disabled ? undefined : isCurrentValue(option.value)"

View File

@@ -58,7 +58,7 @@ const users = computed(() => {
<span class="mb-1 line-clamp-3 text-lg leading-5 font-bold whitespace-normal">
<slot> {{ entity.name }} </slot>
</span>
<div v-if="stringUpdated" data-test-id="stringUpdated" class="text-gray truncate">
<div v-if="stringUpdated" data-test-id="stringUpdated" class="truncate text-gray">
{{ stringUpdated }}
</div>
</div>

View File

@@ -58,7 +58,7 @@ const customer = computed(() => {
{{ entity.title }}
</slot>
</span>
<div v-if="stringUpdated" data-test-id="stringUpdated" class="text-gray truncate">
<div v-if="stringUpdated" data-test-id="stringUpdated" class="truncate text-gray">
{{ stringUpdated }}
</div>
</div>

View File

@@ -21,7 +21,7 @@ const notificationCount = computed(() => {
<template>
<footer
class="bottom-navigation bg-gray-light fixed bottom-0 z-10 w-full backdrop-blur-lg"
class="bottom-navigation fixed bottom-0 z-10 w-full bg-gray-light backdrop-blur-lg"
:class="{ 'px-4': isCustomLayout }"
data-bottom-navigation
>
@@ -38,7 +38,7 @@ const notificationCount = computed(() => {
v-if="notificationCount"
role="status"
:aria-label="$t('Unread notifications')"
class="bg-blue absolute h-4 min-w-[1rem] rounded-full px-1 text-center text-xs text-black ltr:ml-4 rtl:mr-4"
class="absolute h-4 min-w-[1rem] rounded-full bg-blue px-1 text-center text-xs text-black ltr:ml-4 rtl:mr-4"
>
{{ notificationCount }}
</div>
@@ -52,7 +52,7 @@ const notificationCount = computed(() => {
<CommonUserAvatar
v-if="user"
:entity="user"
class="group-[.user-active]:ring-blue group-[.user-active]:rounded-full group-[.user-active]:ring-2"
class="group-[.user-active]:rounded-full group-[.user-active]:ring-2 group-[.user-active]:ring-blue"
size="small"
personal
/>

View File

@@ -14,7 +14,7 @@ const { forceDesktop } = useForceDesktop()
</script>
<template>
<div class="bg-red my-1 rounded-xl px-4 py-2 text-center text-white">
<div class="my-1 rounded-xl bg-red px-4 py-2 text-center text-white">
<p>{{ $t('The two-factor authentication is not configured yet.') }}</p>
<CommonLink link="/#" class="text-white underline" @click="forceDesktop">
{{ $t('Click here to set up a two-factor authentication method.') }}

View File

@@ -144,7 +144,7 @@ const sendCredentials = (formData: FormSubmitData<LoginCredentials>) => {
<span class="ltr:mr-1 rtl:ml-1">{{ $t('New user?') }}</span>
<CommonLink
link="/#signup"
class="text-yellow cursor-pointer text-sm underline select-none"
class="cursor-pointer text-sm text-yellow underline select-none"
@click="forceDesktop"
>
{{ $t('Register') }}

View File

@@ -8,7 +8,7 @@ const application = useApplicationStore()
<template>
<footer
class="text-gray mt-8 flex w-full max-w-md items-center justify-center border-t border-gray-600 py-2.5 align-middle leading-4 font-medium"
class="mt-8 flex w-full max-w-md items-center justify-center border-t border-gray-600 py-2.5 align-middle leading-4 font-medium text-gray"
>
<CommonLink
v-if="application.hasCustomProductBranding"

View File

@@ -16,7 +16,7 @@ defineProps<{
{{ $t(title) }}
</h1>
<template v-if="$c.maintenance_mode">
<div class="bg-red mb-4 flex items-center rounded-xl px-4 py-2 text-white">
<div class="mb-4 flex items-center rounded-xl bg-red px-4 py-2 text-white">
{{
$t(
'Zammad is currently in maintenance mode. Only administrators can log in. Please wait until the maintenance window is over.',
@@ -27,7 +27,7 @@ defineProps<{
<template v-if="$c.maintenance_login && $c.maintenance_login_message">
<!-- eslint-disable vue/no-v-html -->
<div
class="bg-green mb-4 rounded-xl px-4 py-2 text-white"
class="mb-4 rounded-xl bg-green px-4 py-2 text-white"
v-html="$c.maintenance_login_message"
></div>
</template>

View File

@@ -165,7 +165,7 @@ onMounted(async () => {
>
<CommonLoader :loading="loading" :error="error" />
<div class="text-gray pt-2 pb-2 leading-4 font-medium">
<div class="pt-2 pb-2 leading-4 font-medium text-gray">
<template v-if="error && twoFactorLoginOptions.errorHelpMessage">
{{ $t(twoFactorLoginOptions.errorHelpMessage) }}
</template>

View File

@@ -30,7 +30,7 @@ const emit = defineEmits<{
</CommonSectionMenu>
<button
v-if="recoveryCodesAvailable"
class="text-gray mb-6 w-full max-w-md text-center font-medium"
class="mb-6 w-full max-w-md text-center font-medium text-gray"
@click="emit('use-recovery-code')"
>
{{ $t('Or use one of your recovery codes.') }}

View File

@@ -132,7 +132,7 @@ const showError = (error: UserError) => {
>
{{ $t('Having problems?') }}
<button
class="text-gray cursor-pointer pb-2 leading-4 font-medium"
class="cursor-pointer pb-2 leading-4 font-medium text-gray"
@click.prevent="updateState('2fa-select')"
>
{{ $t('Try another method') }}
@@ -151,17 +151,17 @@ const showError = (error: UserError) => {
)
}}
</p>
<CommonLink link="/#admin_password_auth" class="text-gray font-medium" @click="forceDesktop">
<CommonLink link="/#admin_password_auth" class="font-medium text-gray" @click="forceDesktop">
{{ $t('Request the password login here.') }}
</CommonLink>
</section>
<div
v-if="loginFlow.state !== 'credentials' && !hasAlternativeLoginMethod"
class="text-gray pb-2 leading-4 font-medium"
class="pb-2 leading-4 font-medium text-gray"
>
{{ $t('Contact the administrator if you have any problems logging in.') }}
</div>
<CommonLink link="/#login" class="text-gray leading-4 font-medium" @click="forceDesktop">
<CommonLink link="/#login" class="leading-4 font-medium text-gray" @click="forceDesktop">
{{ $t('Continue to desktop') }}
</CommonLink>
<nav
@@ -173,7 +173,7 @@ const showError = (error: UserError) => {
:link="link.link"
:title="link.description"
:open-in-new-tab="link.newTab"
class="text-gray leading-4 font-medium tracking-wide after:ml-1 after:font-medium after:text-gray-200 after:content-['|'] last:after:content-none"
class="leading-4 font-medium tracking-wide text-gray after:ml-1 after:font-medium after:text-gray-200 after:content-['|'] last:after:content-none"
>
{{ $t(link.title) }}
</CommonLink>

View File

@@ -38,10 +38,10 @@ const errorImage = computed(() => {
<h2 class="mt-9 max-w-prose text-center text-xl font-medium">
{{ $t(errorOptions.title) }}
</h2>
<p class="text-gray mt-4 min-h-16 max-w-prose text-center">
<p class="mt-4 min-h-16 max-w-prose text-center text-gray">
{{ $t(errorOptions.message, ...(errorOptions.messagePlaceholder || [])) }}
</p>
<p v-if="errorOptions.route" class="text-gray max-w-prose text-center">
<p v-if="errorOptions.route" class="max-w-prose text-center text-gray">
{{ errorOptions.route }}
</p>
</main>

View File

@@ -90,6 +90,6 @@ const tooltipMessages = computed(() => {
<CommonIcon name="tooltip" size="small" />
</CommonTooltip>
</div>
<CommonIcon v-if="draggable" name="change-order" size="small" class="text-gray shrink-0" />
<CommonIcon v-if="draggable" name="change-order" size="small" class="shrink-0 text-gray" />
</div>
</template>

View File

@@ -47,7 +47,7 @@ defineEmits<{
<div class="flex flex-col">
<!-- eslint-disable vue/no-v-html -->
<div class="text-lg leading-5" v-html="markup(message)" />
<div class="text-gray mt-1 flex">
<div class="mt-1 flex text-gray">
<CommonDateTime :date-time="activity.createdAt" type="relative" />
</div>
</div>

View File

@@ -89,7 +89,7 @@ const haveUnread = computed(() => (unseenCount.value ? unseenCount.value > 0 : f
Maybe disabled state that it can not be clicked twice or hidding the action completley. -->
<div
v-if="haveUnread"
class="text-blue flex flex-1 cursor-pointer justify-center px-4 py-3 text-base"
class="flex flex-1 cursor-pointer justify-center px-4 py-3 text-base text-blue"
:class="{ 'text-red': markingAsSeen }"
role="button"
tabindex="0"

View File

@@ -567,7 +567,7 @@ const notifyAllTypes = () => {
<CommonButton class="flex-1 py-2" variant="submit" />
<CommonButton class="flex-1 py-2" variant="danger" />
</div>
<h3 class="text-gray mt-2 mb-2 text-lg font-medium">With transparent background</h3>
<h3 class="mt-2 mb-2 text-lg font-medium text-gray">With transparent background</h3>
<div class="flex gap-3">
<CommonButton class="flex-1 py-2" variant="primary" transparent-background />
<CommonButton class="flex-1 py-2" variant="secondary" transparent-background />

View File

@@ -212,7 +212,7 @@ export default {
/>
<CommonLink
link="/"
class="text-blue flex items-center justify-center text-base ltr:pl-3 rtl:pr-3"
class="flex items-center justify-center text-base text-blue ltr:pl-3 rtl:pr-3"
>
{{ $t('Cancel') }}
</CommonLink>

View File

@@ -23,10 +23,10 @@ useArticleSeen(articleElement, emit)
<div ref="articleElement" class="flex justify-center">
<div
:class="{ 'mt-6': gap === 'big', 'mt-2': gap === 'small' }"
class="border-yellow bg-yellow-highlight text-yellow flex flex-col items-center rounded-3xl border p-4"
class="flex flex-col items-center rounded-3xl border border-yellow bg-yellow-highlight p-4 text-yellow"
>
<div
class="bg-yellow absolute flex h-7 w-7 -translate-y-7 items-center justify-center rounded-full text-black"
class="absolute flex h-7 w-7 -translate-y-7 items-center justify-center rounded-full bg-yellow text-black"
>
<CommonIcon name="warning" size="small" />
</div>

View File

@@ -136,7 +136,7 @@ const popupItems = computed(() =>
v-if="hasError"
v-bind="$attrs"
type="button"
class="bg-yellow inline-flex h-7 grow items-center gap-1 rounded-lg px-2 py-1 text-xs font-bold text-black"
class="inline-flex h-7 grow items-center gap-1 rounded-lg bg-yellow px-2 py-1 text-xs font-bold text-black"
@click.prevent="showPopup = !showPopup"
@keydown.space.prevent="showPopup = !showPopup"
>
@@ -164,7 +164,7 @@ const popupItems = computed(() =>
<CommonSectionPopup v-model:state="showPopup" :messages="popupItems">
<template #header>
<div class="flex flex-col items-center gap-2 border-b border-b-white/10 p-4">
<div v-if="hasError" class="text-yellow flex w-full items-center justify-center gap-1">
<div v-if="hasError" class="flex w-full items-center justify-center gap-1 text-yellow">
<CommonIcon :name="securityIcon" size="tiny" />
{{ $t('Security error') }}
</div>

View File

@@ -9,7 +9,7 @@ defineProps<Props>()
</script>
<template>
<div class="text-gray text-center">
<div class="text-center text-gray">
<CommonDateTime :date-time="date" type="absolute" absolute-format="date" />
</div>
</template>

View File

@@ -2,7 +2,7 @@
<template>
<div class="line-new text-center select-none">
<span class="text-blue bg-black px-2">{{ $t('new') }}</span>
<span class="bg-black px-2 text-blue">{{ $t('new') }}</span>
</div>
</template>

View File

@@ -25,11 +25,11 @@ useArticleSeen(articleElement, emit)
</script>
<template>
<div ref="articleElement" class="text-gray flex items-center gap-2">
<div ref="articleElement" class="flex items-center gap-2 text-gray">
<div class="grow text-center">"{{ subject }}" -&gt; "{{ to }}"</div>
<ArticleReactionBadge
v-if="reaction"
class="bg-blue w-7 border border-black text-black"
class="w-7 border border-black bg-blue text-black"
:reaction="reaction"
/>
</div>

View File

@@ -43,7 +43,7 @@ const popupItems = computed(() =>
<button
v-if="props.mediaError"
type="button"
class="bg-yellow inline-flex h-7 grow items-center gap-1 rounded-lg px-2 py-1 text-xs font-bold text-black"
class="inline-flex h-7 grow items-center gap-1 rounded-lg bg-yellow px-2 py-1 text-xs font-bold text-black"
@click.prevent="showPopup = !showPopup"
@keydown.space.prevent="showPopup = !showPopup"
>
@@ -55,7 +55,7 @@ const popupItems = computed(() =>
<div class="flex flex-col items-center gap-2 border-b border-b-white/10 p-4">
<div
v-if="props.mediaError"
class="text-yellow flex w-full items-center justify-center gap-1"
class="flex w-full items-center justify-center gap-1 text-yellow"
>
<CommonIcon name="update" size="tiny" />
{{ $t('Media download error') }}

View File

@@ -52,7 +52,7 @@ const scrollDown = () => {
>
<button
v-if="canScrollDown"
class="bg-blue relative flex h-8 cursor-pointer items-center rounded-2xl px-2 transition"
class="relative flex h-8 cursor-pointer items-center rounded-2xl bg-blue px-2 transition"
:aria-label="
newRepliesCount
? $t('Scroll down to see %s new replies', newRepliesCount)
@@ -65,7 +65,7 @@ const scrollDown = () => {
v-if="newRepliesCount"
aria-hidden="true"
data-test-id="new-replies-count"
class="bg-yellow absolute top-0 z-10 h-4 min-w-[1rem] rounded-full px-1 text-center text-xs text-black ltr:ml-4 rtl:mr-4"
class="absolute top-0 z-10 h-4 min-w-[1rem] rounded-full bg-yellow px-1 text-center text-xs text-black ltr:ml-4 rtl:mr-4"
>
{{ newRepliesCount }}
</span>
@@ -103,7 +103,7 @@ const scrollDown = () => {
<span
role="status"
:aria-label="$t('Validation failed')"
class="bg-red absolute bottom-7 h-5 w-5 cursor-pointer rounded-full text-center text-xs leading-5 text-black ltr:right-2 rtl:left-2"
class="absolute bottom-7 h-5 w-5 cursor-pointer rounded-full bg-red text-center text-xs leading-5 text-black ltr:right-2 rtl:left-2"
>
<CommonIcon class="mx-auto h-5" name="close" size="tiny" decorative />
</span>

View File

@@ -102,7 +102,7 @@ const advanceFocus = (event: KeyboardEvent, idx: number) => {
aria-haspopup="dialog"
:aria-expanded="expanded"
:aria-label="accessibilityLabel"
class="text-blue flex cursor-pointer items-center gap-1 overflow-hidden whitespace-nowrap"
class="flex cursor-pointer items-center gap-1 overflow-hidden whitespace-nowrap text-blue"
data-test-id="column"
@click="open"
@keydown.space.prevent="open"

View File

@@ -520,7 +520,7 @@ export default {
:class="{
'bg-gray-light backdrop-blur-lg': !isScrolledToBottom,
}"
class="pb-safe fixed bottom-0 z-10 w-full px-4 transition"
class="fixed bottom-0 z-10 w-full px-4 pb-safe transition"
>
<FormKit
:variant="lastStepName === activeStep ? 'submit' : 'primary'"

View File

@@ -114,7 +114,7 @@ const ticketsData = computed(() => {
v-if="user.organization"
data-test-id="organization-link"
:link="`/organizations/${user.organization.internalId}`"
class="text-blue text-center text-base"
class="text-center text-base text-blue"
>
{{ user.organization.name }}
</CommonLink>

View File

@@ -197,7 +197,7 @@
}
pre {
@apply bg-black-full/20 my-2 rounded-md p-2.5;
@apply my-2 rounded-md bg-black-full/20 p-2.5;
code {
@apply bg-transparent p-0;
@@ -205,7 +205,7 @@
}
code {
@apply bg-black-full/20 rounded-md p-0.75 font-mono;
@apply rounded-md bg-black-full/20 p-0.75 font-mono;
}
table.zammad-table,
@@ -250,7 +250,7 @@
}
hr {
@apply bg-gray my-2 h-px border-none text-[0px];
@apply my-2 h-px border-none bg-gray text-[0px];
.Customer & {
@apply bg-blue-dark;
@@ -521,7 +521,7 @@
}
@utility required {
@apply after:bg-yellow after:ms-1 after:inline-block after:size-1 after:shrink-0 after:self-center after:rounded-full after:align-middle after:leading-0 after:content-[''];
@apply after:ms-1 after:inline-block after:size-1 after:shrink-0 after:self-center after:rounded-full after:bg-yellow after:align-middle after:leading-0 after:content-[''];
}
@utility ai-stripe {

View File

@@ -20,7 +20,7 @@
"lint:css": "pnpm lint:css:cmd **/*.{scss,css,vue}",
"lint:css:cmd": "stylelint",
"lint:css:fix": "pnpm lint:css --fix",
"lint:md": "pnpm lint:md:cmd '*.md' '**/*.md' '#.agents' '#node_modules' '#**/node_modules' '#tmp'",
"lint:md": "pnpm lint:md:cmd '*.md' '**/*.md' '#.agents' '#.claude' '#node_modules' '#**/node_modules' '#tmp'",
"lint:md:fix": "pnpm lint:md --fix",
"lint:md:cmd": "pnpm exec markdownlint-cli2",
"test": "VTL_SKIP_AUTO_CLEANUP=true TZ=utc vitest",
@@ -83,7 +83,7 @@
"markdownlint-cli2": "^0.22.1",
"minimatch": "^10.2.5",
"mock-apollo-client": "^1.4.0",
"oxfmt": "^0.48.0",
"oxfmt": "^0.49.0",
"oxlint": "^1.64.0",
"regenerator-runtime": "^0.14.1",
"stylelint": "^17.11.0",

167
pnpm-lock.yaml generated
View File

@@ -372,8 +372,8 @@ importers:
specifier: ^1.4.0
version: 1.4.0(@apollo/client@3.13.9(graphql-ws@6.0.8(graphql@16.14.0)(ws@8.20.0))(graphql@16.14.0))
oxfmt:
specifier: ^0.48.0
version: 0.48.0
specifier: ^0.49.0
version: 0.49.0
oxlint:
specifier: ^1.64.0
version: 1.64.0
@@ -1815,124 +1815,124 @@ packages:
'@oxc-project/types@0.129.0':
resolution: {integrity: sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==}
'@oxfmt/binding-android-arm-eabi@0.48.0':
resolution: {integrity: sha512-uwqk+/KhQvBIpULD8SMM/zAafMRC/+DV/xsEQjkkIsJ/kLmEI/2bxonVowcYTiXqqZ/a0FEW8DPkZY3VvwELDA==}
'@oxfmt/binding-android-arm-eabi@0.49.0':
resolution: {integrity: sha512-HbifJ84prIh9+55CTPAU35JdRQrwg47y16cGerCC+iejSKOuHXYo2WDql6l7cQlzrYVtc3f4UWY+dBj2lRmOeA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
'@oxfmt/binding-android-arm64@0.48.0':
resolution: {integrity: sha512-VUCiKuXK5+McVssgHEJdrcGK7hRJzrRb36zm9/jwzMholyYt4BgXhw5Nm1V1DX6Ce717Zi/1jk432b/tgmQgtQ==}
'@oxfmt/binding-android-arm64@0.49.0':
resolution: {integrity: sha512-Ef7SKJqAaH2d7E6eXZZa2OffIShbhFMxnGK0zd93p4qiyTJr75B0qf7lrPD+qQOwcf04BrjYJ0JUxq8d5+yZwg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
'@oxfmt/binding-darwin-arm64@0.48.0':
resolution: {integrity: sha512-IkKp8rnIyQLW6Jt+6jragCbUVYSayk55lapiprLjIVvt4NczLyO/nwX2GgefLQ5iaBdfS8UEAFgCs/pLO6Cl0w==}
'@oxfmt/binding-darwin-arm64@0.49.0':
resolution: {integrity: sha512-8x5DN9CsFfb432sHa9NyqX5XisGUdA53LPEGSdv/VniS+v4uEOR8Orv7A9QSB98Xxgp0t6r31DzQA/wpIobGqQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
'@oxfmt/binding-darwin-x64@0.48.0':
resolution: {integrity: sha512-+aFuhsGIuvnoOjXyKVHMhPKJZR1kQkAl8QyrKoMlA7yJsSTC3N0Asl53La8TChSHhW8epToQ/Q0nvLmEmfNmLg==}
'@oxfmt/binding-darwin-x64@0.49.0':
resolution: {integrity: sha512-e0+DSVzk4ewhMVKNYDaRTmP81jNMBWR1X9al0cVKWS+hDM/dElNqD5zjTOCuLOZc4oOdp2Gx2ldrVL+yYo9TZQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
'@oxfmt/binding-freebsd-x64@0.48.0':
resolution: {integrity: sha512-fbqzQL8FjI9gGnktI7RIo0dksDziTAYBy7xlI7jU7eID5fxLF/25fS4Xj6GydD8Y5oWHL83U4NK160QaOAxtyg==}
'@oxfmt/binding-freebsd-x64@0.49.0':
resolution: {integrity: sha512-W+mjtYtrQvFbXT/uNT+221OBhGRZ8UqNsLxjTWsjZ4GsQnRdvRC/N2NCK86BcamWr7lsTxwpwN3PULnr78sgcQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
'@oxfmt/binding-linux-arm-gnueabihf@0.48.0':
resolution: {integrity: sha512-hn4i0zhAyTiB3ZHjQfYUZkDvrbVkohw1S7pySWxWUoZ87HnkDoTFThj7QTxk40hNPOTUP0vHbPRNamFIv1HBJQ==}
'@oxfmt/binding-linux-arm-gnueabihf@0.49.0':
resolution: {integrity: sha512-Rtv6UevV7czDlLqil+NZUe4d8gs8jQo/zScSpumwyf7I+fSdLc+hc8AF3MQC7ymxSMMD9+vfiqQlsIf7wOAzXA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
'@oxfmt/binding-linux-arm-musleabihf@0.48.0':
resolution: {integrity: sha512-R4WBD9qF3QM9hqgdAa+fBGXmquTvDUujrPQ36t2Sjk8RPOSKGHDeN7l/khr10hqbQaOq9KCgPHG9ubNET/X/RQ==}
'@oxfmt/binding-linux-arm-musleabihf@0.49.0':
resolution: {integrity: sha512-sBi+8C/Q/MdKa5FL8ibAUCdhFBGFH7HFN/Qoyd5xQbZ/0ky3NMPpKfIBpaH0lhK2dXkGLczVQUoZ+xuNSerCdQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
'@oxfmt/binding-linux-arm64-gnu@0.48.0':
resolution: {integrity: sha512-5bVdwSwlm1M8wbYCorLOxWxUBw/8tBvHYyQNIfwWVPwOJaj5vg1APSGJQVpwJfV5VNE9PSrR91UKEpoNwHhqUA==}
'@oxfmt/binding-linux-arm64-gnu@0.49.0':
resolution: {integrity: sha512-JIfWenFhlzx+O8YygyZhoHFzTsdgDhxhbDRnE2iJLnnM5pWKScFvPECO2vOlA7JqJ/9S1g3uzEKuRCkHFwTjvA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-arm64-musl@0.48.0':
resolution: {integrity: sha512-vCS3Fk7gFslTqE1lUE2IlroyVV7u/9SmMA/uBqDoshuck2psGWcjW0ePyPZI3rM3+qtf2pDaMVIKMHozraifuw==}
'@oxfmt/binding-linux-arm64-musl@0.49.0':
resolution: {integrity: sha512-iNzkMPG18jPkwBOZ4/HEjwqfzAjq4RrUQ0CgId/fC1ENvYD5jLVAaU/gWgpiqP1ys07kxSsSggDd1fp3E7mQHw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
'@oxfmt/binding-linux-ppc64-gnu@0.48.0':
resolution: {integrity: sha512-gKtfFfueUClXDumyoHUbymqRf7prHejOOyzJK0eIJn93GF9JBdFHdo60TM1ZBHxkEwZvjuOgHmKtneKbEOc/Eg==}
'@oxfmt/binding-linux-ppc64-gnu@0.49.0':
resolution: {integrity: sha512-BPHA/NN3LvoIXiid+iz3BHt5V0Rzx0tXAqRUovwE1NsbDaLG9e8mtv7evDGRIkVQacqTDBv0XL25THHsxSJosQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-riscv64-gnu@0.48.0':
resolution: {integrity: sha512-SYt0UhOvZD/UwZz9sXq6J2uAw8o24f5VZpLB2DH01f6MevshmlgakQlZe2lwek2sZJkd07eLu7mZa0g7yeiw7Q==}
'@oxfmt/binding-linux-riscv64-gnu@0.49.0':
resolution: {integrity: sha512-3Eroshe+s69htC9JIL0+zLGQczLtRKezkMhwqQC21VC5Z/fuLvzLfbAOLgJLUq601H8gDYjy7deYycfOBjCvWg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-riscv64-musl@0.48.0':
resolution: {integrity: sha512-JLbrwck2AopG4ud/XklZO5N+qxGC7cS7ROvXZVNfx0MCLDDL2kGOLvzuWORkVjnjAM0CMAfIMU2zNBtQbM+4dw==}
'@oxfmt/binding-linux-riscv64-musl@0.49.0':
resolution: {integrity: sha512-fnaERGgsxGm0lKAmO72EYR4BA3qBnzBTJBTi6EtUMq1D4R7EexRBMU4voXnx4TXla3SEDl9x4uNp/18SbkPjGg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
libc: [musl]
'@oxfmt/binding-linux-s390x-gnu@0.48.0':
resolution: {integrity: sha512-mdxt5L8OQLxkQH+JVpdC/lknZNe0lX4hlO3d8+xvw2wToo+iDrid9tiGOd5bmHfUVd5wVhrUry0qlu5vq66NkQ==}
'@oxfmt/binding-linux-s390x-gnu@0.49.0':
resolution: {integrity: sha512-rBwasMl1Uul1MCCeTGEFKnOTL7VUxHf+634jWStrQAbzpBJgd5Yz5m4F7exVCsoI8PHn57dNjssXagXLCLB5yA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-x64-gnu@0.48.0':
resolution: {integrity: sha512-oEz1BQwMrV7OMEFx/3VPDU3n9TM0AnxpktDYXjEg5i6nTX87wo18wSfBvkl4tzAICdKtoAQAdBIl7Y7hsPlx5w==}
'@oxfmt/binding-linux-x64-gnu@0.49.0':
resolution: {integrity: sha512-BoC/F9xHe2y/deuBGA5Aw7bes07OD2gcL2wlpzTrfImR92vPP7S/k3LBTyspQZCNIVNdagkELcqKELwMLGIfAg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
'@oxfmt/binding-linux-x64-musl@0.48.0':
resolution: {integrity: sha512-g2SKTTurP5mWjd8Ecait0erYqmltL4IqW1EwttM25BxM6NiTt4ubobJYMR1uox1V2QgG4UfHH10CGRvWlUixjw==}
'@oxfmt/binding-linux-x64-musl@0.49.0':
resolution: {integrity: sha512-umY6jFADAo/oztFKl8D/S6vSrG6oBpEskcentiRuz42kZVU2kfDXMWCYavxyZR2bwPjqkHpcHZ6EZFiH3Qj9ZA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
'@oxfmt/binding-openharmony-arm64@0.48.0':
resolution: {integrity: sha512-CIg24VgheEpvolHL2gQuax5qcQ602bRMHrJ9g8XsQr3iVj9aSPgopigBKuMqrXsupwkrU+RQCn5cG8PgFntR6w==}
'@oxfmt/binding-openharmony-arm64@0.49.0':
resolution: {integrity: sha512-J85zQMiw2pXiGPK+OusmDvSnJ/dgpgN7VgmB2zOBtgS8F+nsOUfSg9ZEBrwbQscjZ7tkPbm38CG4VF5f53MsiA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
'@oxfmt/binding-win32-arm64-msvc@0.48.0':
resolution: {integrity: sha512-zeaWkcxcEULwkGF3I/HgEvcDPN8buYDrxibBUa/IFh5Vmwyge+KpLO+hEwSovW349H0O/C0Z2kaFmEzEDm00/Q==}
'@oxfmt/binding-win32-arm64-msvc@0.49.0':
resolution: {integrity: sha512-38K67XR++CoFFORDd4sMFwUVAnD6msYBdGTei+qvKGrRPO6S2PbrYPNL/eQQ1RgnnxOegNba0YQwg6uRkNcw6A==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
'@oxfmt/binding-win32-ia32-msvc@0.48.0':
resolution: {integrity: sha512-yiEKnIAGvx5CyZQOlMaNlZkAbwT7/Quk0j3WLt+PR5hK+qYjPTRRJYDfD77wCBPLvEYAG41v4KG3iL0H+uxoxg==}
'@oxfmt/binding-win32-ia32-msvc@0.49.0':
resolution: {integrity: sha512-rXVe0HICwQF0dBgbQtBCoYf8x/SidPIdhyQl+iPuJlV7suV+qDv7yUEB3wQ4qC3nOeNxz287SwFXKzyr0kWgEg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
'@oxfmt/binding-win32-x64-msvc@0.48.0':
resolution: {integrity: sha512-GSD2+7t2UoVMV2NgxXypa4bKewflPMAjYnF0Xw9/ht82ZfafAHhb8STwrEd7wlH2PFogt5zw3WVCxYJaHUdbeQ==}
'@oxfmt/binding-win32-x64-msvc@0.49.0':
resolution: {integrity: sha512-gwWLwSEmBBfIK/Wh7GGd658161o4RKAvHWRaRQbJm571iQXGKfyr7UKsI1vsWvDlNLc30CxJDc8mMmCvJ/kczQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
@@ -5432,10 +5432,15 @@ packages:
resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
engines: {node: '>= 0.4'}
oxfmt@0.48.0:
resolution: {integrity: sha512-AVaLh+7XeGx+R1zfFV+f6VV61nT2MWVJXVUDhbTm5LBWGyNt64xAyh3NYYyjeY2WykNt9AvqSQLPHcbWquYF9g==}
oxfmt@0.49.0:
resolution: {integrity: sha512-IAHFMdlJSWe+oAr65dx22UvjCtV9DBMisAuLnKpDqMQrctzCkGnj3QRwNHm0d+uwSWPalsDF8ZYLz9rh6nH2IQ==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
svelte: ^5.0.0
peerDependenciesMeta:
svelte:
optional: true
oxlint@1.64.0:
resolution: {integrity: sha512-Star3SNpWPeWFPw7kRXIhXUSn6fdiAl25q15CQzH/9WaOtG6e9CWTc25vNZOCr4PE1yEP1GtKJKIKglhj3OmEQ==}
@@ -8770,61 +8775,61 @@ snapshots:
'@oxc-project/types@0.129.0': {}
'@oxfmt/binding-android-arm-eabi@0.48.0':
'@oxfmt/binding-android-arm-eabi@0.49.0':
optional: true
'@oxfmt/binding-android-arm64@0.48.0':
'@oxfmt/binding-android-arm64@0.49.0':
optional: true
'@oxfmt/binding-darwin-arm64@0.48.0':
'@oxfmt/binding-darwin-arm64@0.49.0':
optional: true
'@oxfmt/binding-darwin-x64@0.48.0':
'@oxfmt/binding-darwin-x64@0.49.0':
optional: true
'@oxfmt/binding-freebsd-x64@0.48.0':
'@oxfmt/binding-freebsd-x64@0.49.0':
optional: true
'@oxfmt/binding-linux-arm-gnueabihf@0.48.0':
'@oxfmt/binding-linux-arm-gnueabihf@0.49.0':
optional: true
'@oxfmt/binding-linux-arm-musleabihf@0.48.0':
'@oxfmt/binding-linux-arm-musleabihf@0.49.0':
optional: true
'@oxfmt/binding-linux-arm64-gnu@0.48.0':
'@oxfmt/binding-linux-arm64-gnu@0.49.0':
optional: true
'@oxfmt/binding-linux-arm64-musl@0.48.0':
'@oxfmt/binding-linux-arm64-musl@0.49.0':
optional: true
'@oxfmt/binding-linux-ppc64-gnu@0.48.0':
'@oxfmt/binding-linux-ppc64-gnu@0.49.0':
optional: true
'@oxfmt/binding-linux-riscv64-gnu@0.48.0':
'@oxfmt/binding-linux-riscv64-gnu@0.49.0':
optional: true
'@oxfmt/binding-linux-riscv64-musl@0.48.0':
'@oxfmt/binding-linux-riscv64-musl@0.49.0':
optional: true
'@oxfmt/binding-linux-s390x-gnu@0.48.0':
'@oxfmt/binding-linux-s390x-gnu@0.49.0':
optional: true
'@oxfmt/binding-linux-x64-gnu@0.48.0':
'@oxfmt/binding-linux-x64-gnu@0.49.0':
optional: true
'@oxfmt/binding-linux-x64-musl@0.48.0':
'@oxfmt/binding-linux-x64-musl@0.49.0':
optional: true
'@oxfmt/binding-openharmony-arm64@0.48.0':
'@oxfmt/binding-openharmony-arm64@0.49.0':
optional: true
'@oxfmt/binding-win32-arm64-msvc@0.48.0':
'@oxfmt/binding-win32-arm64-msvc@0.49.0':
optional: true
'@oxfmt/binding-win32-ia32-msvc@0.48.0':
'@oxfmt/binding-win32-ia32-msvc@0.49.0':
optional: true
'@oxfmt/binding-win32-x64-msvc@0.48.0':
'@oxfmt/binding-win32-x64-msvc@0.49.0':
optional: true
'@oxlint/binding-android-arm-eabi@1.64.0':
@@ -12503,29 +12508,29 @@ snapshots:
object-keys: 1.1.1
safe-push-apply: 1.0.0
oxfmt@0.48.0:
oxfmt@0.49.0:
dependencies:
tinypool: 2.1.0
optionalDependencies:
'@oxfmt/binding-android-arm-eabi': 0.48.0
'@oxfmt/binding-android-arm64': 0.48.0
'@oxfmt/binding-darwin-arm64': 0.48.0
'@oxfmt/binding-darwin-x64': 0.48.0
'@oxfmt/binding-freebsd-x64': 0.48.0
'@oxfmt/binding-linux-arm-gnueabihf': 0.48.0
'@oxfmt/binding-linux-arm-musleabihf': 0.48.0
'@oxfmt/binding-linux-arm64-gnu': 0.48.0
'@oxfmt/binding-linux-arm64-musl': 0.48.0
'@oxfmt/binding-linux-ppc64-gnu': 0.48.0
'@oxfmt/binding-linux-riscv64-gnu': 0.48.0
'@oxfmt/binding-linux-riscv64-musl': 0.48.0
'@oxfmt/binding-linux-s390x-gnu': 0.48.0
'@oxfmt/binding-linux-x64-gnu': 0.48.0
'@oxfmt/binding-linux-x64-musl': 0.48.0
'@oxfmt/binding-openharmony-arm64': 0.48.0
'@oxfmt/binding-win32-arm64-msvc': 0.48.0
'@oxfmt/binding-win32-ia32-msvc': 0.48.0
'@oxfmt/binding-win32-x64-msvc': 0.48.0
'@oxfmt/binding-android-arm-eabi': 0.49.0
'@oxfmt/binding-android-arm64': 0.49.0
'@oxfmt/binding-darwin-arm64': 0.49.0
'@oxfmt/binding-darwin-x64': 0.49.0
'@oxfmt/binding-freebsd-x64': 0.49.0
'@oxfmt/binding-linux-arm-gnueabihf': 0.49.0
'@oxfmt/binding-linux-arm-musleabihf': 0.49.0
'@oxfmt/binding-linux-arm64-gnu': 0.49.0
'@oxfmt/binding-linux-arm64-musl': 0.49.0
'@oxfmt/binding-linux-ppc64-gnu': 0.49.0
'@oxfmt/binding-linux-riscv64-gnu': 0.49.0
'@oxfmt/binding-linux-riscv64-musl': 0.49.0
'@oxfmt/binding-linux-s390x-gnu': 0.49.0
'@oxfmt/binding-linux-x64-gnu': 0.49.0
'@oxfmt/binding-linux-x64-musl': 0.49.0
'@oxfmt/binding-openharmony-arm64': 0.49.0
'@oxfmt/binding-win32-arm64-msvc': 0.49.0
'@oxfmt/binding-win32-ia32-msvc': 0.49.0
'@oxfmt/binding-win32-x64-msvc': 0.49.0
oxlint@1.64.0:
optionalDependencies: