update to tailwind

This commit is contained in:
Julian Krauser 2025-04-13 16:31:23 +02:00
parent c4a67fd11a
commit 835e6ef8db
33 changed files with 121 additions and 57 deletions

64
package-lock.json generated
View file

@ -40,6 +40,7 @@
"unplugin-vue-markdown": "^28.3.1", "unplugin-vue-markdown": "^28.3.1",
"uuid": "^11.1.0", "uuid": "^11.1.0",
"vue": "^3.4.29", "vue": "^3.4.29",
"vue-qrcode-reader": "^5.7.1",
"vue-router": "^4.3.3" "vue-router": "^4.3.3"
}, },
"devDependencies": { "devDependencies": {
@ -3691,6 +3692,18 @@
"@types/underscore": "*" "@types/underscore": "*"
} }
}, },
"node_modules/@types/dom-webcodecs": {
"version": "0.1.14",
"resolved": "https://registry.npmjs.org/@types/dom-webcodecs/-/dom-webcodecs-0.1.14.tgz",
"integrity": "sha512-ba9aF0qARLLQpLihONIRbj8VvAdUxO+5jIxlscVcDAQTcJmq5qVr781+ino5qbQUJUmO21cLP2eLeXYWzao5Vg==",
"license": "MIT"
},
"node_modules/@types/emscripten": {
"version": "1.40.1",
"resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.40.1.tgz",
"integrity": "sha512-sr53lnYkQNhjHNN0oJDdUm5564biioI5DuOpycufDVK7D3y+GR3oUswe2rlwY1nPNyusHbrJ9WoTyIHl4/Bpwg==",
"license": "MIT"
},
"node_modules/@types/eslint": { "node_modules/@types/eslint": {
"version": "9.6.1", "version": "9.6.1",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
@ -4706,6 +4719,16 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/barcode-detector": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/barcode-detector/-/barcode-detector-2.2.2.tgz",
"integrity": "sha512-JcSekql+EV93evfzF9zBr+Y6aRfkR+QFvgyzbwQ0dbymZXoAI9+WgT7H1E429f+3RKNncHz2CW98VQtaaKpmfQ==",
"license": "MIT",
"dependencies": {
"@types/dom-webcodecs": "^0.1.11",
"zxing-wasm": "1.1.3"
}
},
"node_modules/birpc": { "node_modules/birpc": {
"version": "0.2.19", "version": "0.2.19",
"resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz",
@ -9241,6 +9264,12 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/sdp": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/sdp/-/sdp-3.2.0.tgz",
"integrity": "sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==",
"license": "MIT"
},
"node_modules/section-matter": { "node_modules/section-matter": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
@ -10758,6 +10787,19 @@
"url": "https://opencollective.com/eslint" "url": "https://opencollective.com/eslint"
} }
}, },
"node_modules/vue-qrcode-reader": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/vue-qrcode-reader/-/vue-qrcode-reader-5.7.1.tgz",
"integrity": "sha512-7QBu3PqaPJHxobiDLqgcrp6wsjdTk9GJWhRCd4CgQYi93gBw/sIXNNWtbjeKz8d3QYj13n9dyPvcPMUcGOsBHw==",
"license": "MIT",
"dependencies": {
"barcode-detector": "2.2.2",
"webrtc-adapter": "8.2.3"
},
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/vue-router": { "node_modules/vue-router": {
"version": "4.5.0", "version": "4.5.0",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz",
@ -10803,6 +10845,19 @@
"integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/webrtc-adapter": {
"version": "8.2.3",
"resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-8.2.3.tgz",
"integrity": "sha512-gnmRz++suzmvxtp3ehQts6s2JtAGPuDPjA1F3a9ckNpG1kYdYuHWYpazoAnL9FS5/B21tKlhkorbdCXat0+4xQ==",
"license": "BSD-3-Clause",
"dependencies": {
"sdp": "^3.2.0"
},
"engines": {
"node": ">=6.0.0",
"npm": ">=3.10.0"
}
},
"node_modules/whatwg-url": { "node_modules/whatwg-url": {
"version": "7.1.0", "version": "7.1.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
@ -11509,6 +11564,15 @@
"funding": { "funding": {
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
},
"node_modules/zxing-wasm": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/zxing-wasm/-/zxing-wasm-1.1.3.tgz",
"integrity": "sha512-MYm9k/5YVs4ZOTIFwlRjfFKD0crhefgbnt1+6TEpmKUDFp3E2uwqGSKwQOd2hOIsta/7Usq4hnpNRYTLoljnfA==",
"license": "MIT",
"dependencies": {
"@types/emscripten": "^1.39.10"
}
} }
} }
} }

View file

@ -2,7 +2,7 @@
<div> <div>
<label :for="name">{{ label }}{{ required ? "" : " (optional)" }}</label> <label :for="name">{{ label }}{{ required ? "" : " (optional)" }}</label>
<div class="relative flex flex-row items-center gap-2"> <div class="relative flex flex-row items-center gap-2">
<input ref="resultInput" class="!pl-9" :id="name" type="text" v-model="value" :required="required" /> <input ref="resultInput" class="pl-9!" :id="name" type="text" v-model="value" :required="required" />
<QrCodeIcon class="absolute h-6 stroke-1 left-2 top-1/2 -translate-y-1/2 cursor-pointer z-10" @click="scanCode" /> <QrCodeIcon class="absolute h-6 stroke-1 left-2 top-1/2 -translate-y-1/2 cursor-pointer z-10" @click="scanCode" />
</div> </div>
</div> </div>

View file

@ -10,7 +10,7 @@
<ListboxLabel>Anrede</ListboxLabel> <ListboxLabel>Anrede</ListboxLabel>
<div class="relative mt-1"> <div class="relative mt-1">
<ListboxButton <ListboxButton
class="rounded-md shadow-sm relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-0 focus:z-10 sm:text-sm resize-none" class="rounded-md shadow-xs relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-hidden focus:ring-0 focus:z-10 sm:text-sm resize-none"
> >
<span class="block truncate w-full text-start"> {{ selectedSalutation?.salutation }}</span> <span class="block truncate w-full text-start"> {{ selectedSalutation?.salutation }}</span>
<span class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2"> <span class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2">
@ -24,7 +24,7 @@
leave-to-class="opacity-0" leave-to-class="opacity-0"
> >
<ListboxOptions <ListboxOptions
class="absolute mt-1 max-h-60 z-20 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-none sm:text-sm h-32 overflow-y-auto" class="absolute mt-1 max-h-60 z-20 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-hidden sm:text-sm h-32 overflow-y-auto"
> >
<ListboxOption <ListboxOption
v-slot="{ active, selected }" v-slot="{ active, selected }"

View file

@ -10,7 +10,7 @@
<ListboxLabel>Anrede</ListboxLabel> <ListboxLabel>Anrede</ListboxLabel>
<div class="relative mt-1"> <div class="relative mt-1">
<ListboxButton <ListboxButton
class="rounded-md shadow-sm relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-0 focus:z-10 sm:text-sm resize-none" class="rounded-md shadow-xs relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-hidden focus:ring-0 focus:z-10 sm:text-sm resize-none"
> >
<span class="block truncate w-full text-start"> {{ selectedSalutation?.salutation }}</span> <span class="block truncate w-full text-start"> {{ selectedSalutation?.salutation }}</span>
<span class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2"> <span class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2">
@ -24,7 +24,7 @@
leave-to-class="opacity-0" leave-to-class="opacity-0"
> >
<ListboxOptions <ListboxOptions
class="absolute mt-1 max-h-60 z-20 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-none sm:text-sm h-32 overflow-y-auto" class="absolute mt-1 max-h-60 z-20 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-hidden sm:text-sm h-32 overflow-y-auto"
> >
<ListboxOption <ListboxOption
v-slot="{ active, selected }" v-slot="{ active, selected }"

View file

@ -10,7 +10,7 @@
<ListboxLabel>Anrede</ListboxLabel> <ListboxLabel>Anrede</ListboxLabel>
<div class="relative mt-1"> <div class="relative mt-1">
<ListboxButton <ListboxButton
class="rounded-md shadow-sm relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-0 focus:z-10 sm:text-sm resize-none" class="rounded-md shadow-xs relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-hidden focus:ring-0 focus:z-10 sm:text-sm resize-none"
> >
<span class="block truncate w-full text-start"> {{ selectedSalutation?.salutation }}</span> <span class="block truncate w-full text-start"> {{ selectedSalutation?.salutation }}</span>
<span class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2"> <span class="pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2">
@ -24,7 +24,7 @@
leave-to-class="opacity-0" leave-to-class="opacity-0"
> >
<ListboxOptions <ListboxOptions
class="absolute mt-1 max-h-60 z-20 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-none sm:text-sm h-32 overflow-y-auto" class="absolute mt-1 max-h-60 z-20 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-hidden sm:text-sm h-32 overflow-y-auto"
> >
<ListboxOption <ListboxOption
v-slot="{ active, selected }" v-slot="{ active, selected }"

View file

@ -18,8 +18,8 @@
> >
<p <p
:class="[ :class="[
'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-none', 'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-hidden',
isExactActive ? 'bg-red-200 shadow border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200', isExactActive ? 'bg-red-200 shadow-sm border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View file

@ -13,7 +13,7 @@
<ComboboxLabel>Typ</ComboboxLabel> <ComboboxLabel>Typ</ComboboxLabel>
<div class="relative mt-1"> <div class="relative mt-1">
<ComboboxInput <ComboboxInput
class="rounded-md shadow-sm relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-0 focus:z-10 sm:text-sm resize-none" class="rounded-md shadow-xs relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-hidden focus:ring-0 focus:z-10 sm:text-sm resize-none"
@input="query = $event.target.value" @input="query = $event.target.value"
/> />
<ComboboxButton class="absolute inset-y-0 right-0 flex items-center pr-2"> <ComboboxButton class="absolute inset-y-0 right-0 flex items-center pr-2">
@ -26,7 +26,7 @@
@after-leave="query = ''" @after-leave="query = ''"
> >
<ComboboxOptions <ComboboxOptions
class="z-20 absolute mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-md ring-1 ring-black/5 focus:outline-none sm:text-sm" class="z-20 absolute mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-md ring-1 ring-black/5 focus:outline-hidden sm:text-sm"
> >
<ComboboxOption v-if="loading || deferingSearch" as="template" disabled> <ComboboxOption v-if="loading || deferingSearch" as="template" disabled>
<li class="flex flex-row gap-2 text-text relative cursor-default select-none py-2 pl-3 pr-4"> <li class="flex flex-row gap-2 text-text relative cursor-default select-none py-2 pl-3 pr-4">
@ -91,12 +91,12 @@
:to="{ name: 'admin-unit-equipment' }" :to="{ name: 'admin-unit-equipment' }"
primary-outline primary-outline
button button
class="!w-fit" class="w-fit!"
:disabled="status == 'loading' || status?.status == 'success'" :disabled="status == 'loading' || status?.status == 'success'"
> >
abbrechen abbrechen
</RouterLink> </RouterLink>
<button primary type="submit" class="!w-fit" :disabled="status == 'loading'">speichern</button> <button primary type="submit" class="w-fit!" :disabled="status == 'loading'">speichern</button>
<Spinner v-if="status == 'loading'" class="my-auto" /> <Spinner v-if="status == 'loading'" class="my-auto" />
<SuccessCheckmark v-else-if="status?.status == 'success'" /> <SuccessCheckmark v-else-if="status?.status == 'success'" />
<FailureXMark v-else-if="status?.status == 'failed'" /> <FailureXMark v-else-if="status?.status == 'failed'" />

View file

@ -27,7 +27,7 @@
:to="{ name: 'admin-unit-equipment-create' }" :to="{ name: 'admin-unit-equipment-create' }"
primary primary
button button
class="!w-fit" class="w-fit!"
> >
Gerätschaft erfassen Gerätschaft erfassen
</RouterLink> </RouterLink>

View file

@ -27,8 +27,8 @@
> >
<p <p
:class="[ :class="[
'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-none', 'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-hidden',
isActive ? 'bg-red-200 shadow border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200', isActive ? 'bg-red-200 shadow-sm border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View file

@ -18,10 +18,10 @@
<input type="text" id="location" v-model="equipment.location" /> <input type="text" id="location" v-model="equipment.location" />
</div> </div>
<div class="flex flex-row justify-end gap-2"> <div class="flex flex-row justify-end gap-2">
<button primary-outline type="reset" class="!w-fit" :disabled="canSaveOrReset" @click="resetForm"> <button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm">
abbrechen abbrechen
</button> </button>
<button primary type="submit" class="!w-fit" :disabled="status == 'loading'">speichern</button> <button primary type="submit" class="w-fit!" :disabled="status == 'loading'">speichern</button>
<Spinner v-if="status == 'loading'" class="my-auto" /> <Spinner v-if="status == 'loading'" class="my-auto" />
<SuccessCheckmark v-else-if="status?.status == 'success'" /> <SuccessCheckmark v-else-if="status?.status == 'success'" />
<FailureXMark v-else-if="status?.status == 'failed'" /> <FailureXMark v-else-if="status?.status == 'failed'" />

View file

@ -21,7 +21,7 @@
</Pagination> </Pagination>
<div class="flex flex-row gap-4"> <div class="flex flex-row gap-4">
<button v-if="can('create', 'unit', 'equipment_type')" primary class="!w-fit" @click="openCreateModal"> <button v-if="can('create', 'unit', 'equipment_type')" primary class="w-fit!" @click="openCreateModal">
Geräte-Typ erstellen Geräte-Typ erstellen
</button> </button>
</div> </div>

View file

@ -32,8 +32,8 @@
> >
<p <p
:class="[ :class="[
'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-none', 'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-hidden',
isActive ? 'bg-red-200 shadow border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200', isActive ? 'bg-red-200 shadow-sm border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View file

@ -13,7 +13,7 @@
</Pagination> </Pagination>
<div class="flex flex-row gap-4"> <div class="flex flex-row gap-4">
<button v-if="can('create', 'unit', 'equipment_type')" primary class="!w-fit" @click=""> <button v-if="can('create', 'unit', 'equipment_type')" primary class="w-fit!" @click="">
Prüfplan erstellen Prüfplan erstellen
</button> </button>
</div> </div>

View file

@ -13,7 +13,7 @@
<ComboboxLabel>Typ</ComboboxLabel> <ComboboxLabel>Typ</ComboboxLabel>
<div class="relative mt-1"> <div class="relative mt-1">
<ComboboxInput <ComboboxInput
class="rounded-md shadow-sm relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-0 focus:z-10 sm:text-sm resize-none" class="rounded-md shadow-xs relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-hidden focus:ring-0 focus:z-10 sm:text-sm resize-none"
@input="query = $event.target.value" @input="query = $event.target.value"
/> />
<ComboboxButton class="absolute inset-y-0 right-0 flex items-center pr-2"> <ComboboxButton class="absolute inset-y-0 right-0 flex items-center pr-2">
@ -26,7 +26,7 @@
@after-leave="query = ''" @after-leave="query = ''"
> >
<ComboboxOptions <ComboboxOptions
class="z-20 absolute mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-md ring-1 ring-black/5 focus:outline-none sm:text-sm" class="z-20 absolute mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-md ring-1 ring-black/5 focus:outline-hidden sm:text-sm"
> >
<ComboboxOption v-if="loading || deferingSearch" as="template" disabled> <ComboboxOption v-if="loading || deferingSearch" as="template" disabled>
<li class="flex flex-row gap-2 text-text relative cursor-default select-none py-2 pl-3 pr-4"> <li class="flex flex-row gap-2 text-text relative cursor-default select-none py-2 pl-3 pr-4">
@ -90,12 +90,12 @@
:to="{ name: 'admin-unit-inspectionPlan' }" :to="{ name: 'admin-unit-inspectionPlan' }"
primary-outline primary-outline
button button
class="!w-fit" class="w-fit!"
:disabled="status == 'loading' || status?.status == 'success'" :disabled="status == 'loading' || status?.status == 'success'"
> >
abbrechen abbrechen
</RouterLink> </RouterLink>
<button primary type="submit" class="!w-fit" :disabled="status == 'loading'">speichern</button> <button primary type="submit" class="w-fit!" :disabled="status == 'loading'">speichern</button>
<Spinner v-if="status == 'loading'" class="my-auto" /> <Spinner v-if="status == 'loading'" class="my-auto" />
<SuccessCheckmark v-else-if="status?.status == 'success'" /> <SuccessCheckmark v-else-if="status?.status == 'success'" />
<FailureXMark v-else-if="status?.status == 'failed'" /> <FailureXMark v-else-if="status?.status == 'failed'" />

View file

@ -27,7 +27,7 @@
:to="{ name: 'admin-unit-inspection_plan-create' }" :to="{ name: 'admin-unit-inspection_plan-create' }"
primary primary
button button
class="!w-fit" class="w-fit!"
> >
Prüfplan erstellen Prüfplan erstellen
</RouterLink> </RouterLink>

View file

@ -17,10 +17,10 @@
<input type="text" id="interval" placeholder="<number>-(d|m|y) oder DD/MM" /> <input type="text" id="interval" placeholder="<number>-(d|m|y) oder DD/MM" />
</div> </div>
<div class="flex flex-row justify-end gap-2"> <div class="flex flex-row justify-end gap-2">
<button primary-outline type="reset" class="!w-fit" :disabled="canSaveOrReset" @click="resetForm"> <button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm">
abbrechen abbrechen
</button> </button>
<button primary type="submit" class="!w-fit" :disabled="status == 'loading'">speichern</button> <button primary type="submit" class="w-fit!" :disabled="status == 'loading'">speichern</button>
<Spinner v-if="status == 'loading'" class="my-auto" /> <Spinner v-if="status == 'loading'" class="my-auto" />
<SuccessCheckmark v-else-if="status?.status == 'success'" /> <SuccessCheckmark v-else-if="status?.status == 'success'" />
<FailureXMark v-else-if="status?.status == 'failed'" /> <FailureXMark v-else-if="status?.status == 'failed'" />

View file

@ -21,7 +21,7 @@
</Pagination> </Pagination>
<div class="flex flex-row gap-4"> <div class="flex flex-row gap-4">
<button v-if="can('create', 'unit', 'respiratory_gear')" primary class="!w-fit" @click="openCreateModal"> <button v-if="can('create', 'unit', 'respiratory_gear')" primary class="w-fit!" @click="openCreateModal">
Gerät erfassen Gerät erfassen
</button> </button>
</div> </div>

View file

@ -31,8 +31,8 @@
> >
<p <p
:class="[ :class="[
'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-none', 'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-hidden',
isActive ? 'bg-red-200 shadow border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200', isActive ? 'bg-red-200 shadow-sm border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View file

@ -21,7 +21,7 @@
</Pagination> </Pagination>
<div class="flex flex-row gap-4"> <div class="flex flex-row gap-4">
<button v-if="can('create', 'unit', 'respiratory_mission')" primary class="!w-fit" @click="openCreateModal"> <button v-if="can('create', 'unit', 'respiratory_mission')" primary class="w-fit!" @click="openCreateModal">
Einsatz erfassen Einsatz erfassen
</button> </button>
</div> </div>

View file

@ -21,8 +21,8 @@
> >
<p <p
:class="[ :class="[
'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-none', 'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-hidden',
isActive ? 'bg-red-200 shadow border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200', isActive ? 'bg-red-200 shadow-sm border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View file

@ -21,7 +21,7 @@
</Pagination> </Pagination>
<div class="flex flex-row gap-4"> <div class="flex flex-row gap-4">
<button v-if="can('create', 'unit', 'respiratory_wearer')" primary class="!w-fit" @click="openCreateModal"> <button v-if="can('create', 'unit', 'respiratory_wearer')" primary class="w-fit!" @click="openCreateModal">
Träger erfassen Träger erfassen
</button> </button>
</div> </div>

View file

@ -24,8 +24,8 @@
> >
<p <p
:class="[ :class="[
'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-none', 'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-hidden',
isActive ? 'bg-red-200 shadow border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200', isActive ? 'bg-red-200 shadow-sm border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View file

@ -25,7 +25,7 @@
v-if="can('create', 'unit', 'equipment')" v-if="can('create', 'unit', 'equipment')"
:to="{ name: 'admin-unit-vehicle-create' }" :to="{ name: 'admin-unit-vehicle-create' }"
primary primary
class="!w-fit" class="w-fit!"
> >
Fahrzeug erstellen Fahrzeug erstellen
</RouterLink> </RouterLink>

View file

@ -27,8 +27,8 @@
> >
<p <p
:class="[ :class="[
'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-none', 'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-hidden',
isActive ? 'bg-red-200 shadow border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200', isActive ? 'bg-red-200 shadow-sm border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View file

@ -13,7 +13,7 @@
</Pagination> </Pagination>
<div class="flex flex-row gap-4"> <div class="flex flex-row gap-4">
<button v-if="can('create', 'unit', 'equipment_type')" primary class="!w-fit" @click=""> <button v-if="can('create', 'unit', 'equipment_type')" primary class="w-fit!" @click="">
Prüfplan erstellen Prüfplan erstellen
</button> </button>
</div> </div>

View file

@ -21,7 +21,7 @@
</Pagination> </Pagination>
<div class="flex flex-row gap-4"> <div class="flex flex-row gap-4">
<button v-if="can('create', 'unit', 'vehicle_type')" primary class="!w-fit" @click="openCreateModal"> <button v-if="can('create', 'unit', 'vehicle_type')" primary class="w-fit!" @click="openCreateModal">
Geräte-Typ erstellen Geräte-Typ erstellen
</button> </button>
</div> </div>

View file

@ -32,8 +32,8 @@
> >
<p <p
:class="[ :class="[
'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-none', 'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-hidden',
isActive ? 'bg-red-200 shadow border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200', isActive ? 'bg-red-200 shadow-sm border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View file

@ -13,7 +13,7 @@
<ComboboxLabel>Typ</ComboboxLabel> <ComboboxLabel>Typ</ComboboxLabel>
<div class="relative mt-1"> <div class="relative mt-1">
<ComboboxInput <ComboboxInput
class="rounded-md shadow-sm relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-0 focus:z-10 sm:text-sm resize-none" class="rounded-md shadow-xs relative block w-full px-3 py-2 border border-gray-300 focus:border-primary placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-hidden focus:ring-0 focus:z-10 sm:text-sm resize-none"
@input="query = $event.target.value" @input="query = $event.target.value"
/> />
<ComboboxButton class="absolute inset-y-0 right-0 flex items-center pr-2"> <ComboboxButton class="absolute inset-y-0 right-0 flex items-center pr-2">
@ -26,7 +26,7 @@
@after-leave="query = ''" @after-leave="query = ''"
> >
<ComboboxOptions <ComboboxOptions
class="z-20 absolute mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-md ring-1 ring-black/5 focus:outline-none sm:text-sm" class="z-20 absolute mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-md ring-1 ring-black/5 focus:outline-hidden sm:text-sm"
> >
<ComboboxOption v-if="loading || deferingSearch" as="template" disabled> <ComboboxOption v-if="loading || deferingSearch" as="template" disabled>
<li class="flex flex-row gap-2 text-text relative cursor-default select-none py-2 pl-3 pr-4"> <li class="flex flex-row gap-2 text-text relative cursor-default select-none py-2 pl-3 pr-4">
@ -92,12 +92,12 @@
:to="{ name: 'admin-unit-wearable' }" :to="{ name: 'admin-unit-wearable' }"
primary-outline primary-outline
button button
class="!w-fit" class="w-fit!"
:disabled="status == 'loading' || status?.status == 'success'" :disabled="status == 'loading' || status?.status == 'success'"
> >
abbrechen abbrechen
</RouterLink> </RouterLink>
<button primary type="submit" class="!w-fit" :disabled="status == 'loading'">speichern</button> <button primary type="submit" class="w-fit!" :disabled="status == 'loading'">speichern</button>
<Spinner v-if="status == 'loading'" class="my-auto" /> <Spinner v-if="status == 'loading'" class="my-auto" />
<SuccessCheckmark v-else-if="status?.status == 'success'" /> <SuccessCheckmark v-else-if="status?.status == 'success'" />
<FailureXMark v-else-if="status?.status == 'failed'" /> <FailureXMark v-else-if="status?.status == 'failed'" />

View file

@ -19,10 +19,10 @@
</div> </div>
<MemberSearchSelect title="Träger (optional)" /> <MemberSearchSelect title="Träger (optional)" />
<div class="flex flex-row justify-end gap-2"> <div class="flex flex-row justify-end gap-2">
<button primary-outline type="reset" class="!w-fit" :disabled="canSaveOrReset" @click="resetForm"> <button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm">
abbrechen abbrechen
</button> </button>
<button primary type="submit" class="!w-fit" :disabled="status == 'loading'">speichern</button> <button primary type="submit" class="w-fit!" :disabled="status == 'loading'">speichern</button>
<Spinner v-if="status == 'loading'" class="my-auto" /> <Spinner v-if="status == 'loading'" class="my-auto" />
<SuccessCheckmark v-else-if="status?.status == 'success'" /> <SuccessCheckmark v-else-if="status?.status == 'success'" />
<FailureXMark v-else-if="status?.status == 'failed'" /> <FailureXMark v-else-if="status?.status == 'failed'" />

View file

@ -27,7 +27,7 @@
:to="{ name: 'admin-unit-wearable-create' }" :to="{ name: 'admin-unit-wearable-create' }"
primary primary
button button
class="!w-fit" class="w-fit!"
> >
Kleidung erfassen Kleidung erfassen
</RouterLink> </RouterLink>

View file

@ -27,8 +27,8 @@
> >
<p <p
:class="[ :class="[
'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-none', 'w-full rounded-lg py-2.5 text-sm text-center font-medium leading-5 focus:ring-0 outline-hidden',
isActive ? 'bg-red-200 shadow border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200', isActive ? 'bg-red-200 shadow-sm border-b-2 border-primary rounded-b-none' : ' hover:bg-red-200',
]" ]"
> >
{{ tab.title }} {{ tab.title }}

View file

@ -17,10 +17,10 @@
<input type="text" id="description" v-model="wearableType.description" /> <input type="text" id="description" v-model="wearableType.description" />
</div> </div>
<div class="flex flex-row justify-end gap-2"> <div class="flex flex-row justify-end gap-2">
<button primary-outline type="reset" class="!w-fit" :disabled="canSaveOrReset" @click="resetForm"> <button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm">
abbrechen abbrechen
</button> </button>
<button primary type="submit" class="!w-fit" :disabled="status == 'loading'">speichern</button> <button primary type="submit" class="w-fit!" :disabled="status == 'loading'">speichern</button>
<Spinner v-if="status == 'loading'" class="my-auto" /> <Spinner v-if="status == 'loading'" class="my-auto" />
<SuccessCheckmark v-else-if="status?.status == 'success'" /> <SuccessCheckmark v-else-if="status?.status == 'success'" />
<FailureXMark v-else-if="status?.status == 'failed'" /> <FailureXMark v-else-if="status?.status == 'failed'" />

View file

@ -21,7 +21,7 @@
</Pagination> </Pagination>
<div class="flex flex-row gap-4"> <div class="flex flex-row gap-4">
<button v-if="can('create', 'unit', 'wearable_type')" primary class="!w-fit" @click="openCreateModal"> <button v-if="can('create', 'unit', 'wearable_type')" primary class="w-fit!" @click="openCreateModal">
Geräte-Typ erstellen Geräte-Typ erstellen
</button> </button>
</div> </div>