This commit is contained in:
Thomas Peterson 2025-12-03 12:03:04 +01:00
parent 2bc45b89c4
commit b6e25299cd
9 changed files with 535 additions and 447 deletions

View File

@ -101,7 +101,9 @@
{% endfor %}
</div>
<div class="mt-4">
{{ knp_pagination_render(pagination) }}
{{ knp_pagination_render(pagination, 'tailwind_pagination.html.twig', {}, {
'sortableTemplate': 'tailwind_sortable.html.twig'
}) }}
</div>
</div>
</div>

View File

@ -1,5 +1,4 @@
{% extends 'backend_tailwind_base.html.twig' %}
{% do pagination.setSortableTemplate('tailwind_sortable.html.twig') %}
{% trans_default_domain 'core_news_list' %}
{% block header %}
<div>
@ -64,7 +63,9 @@
</div>
{% endfor %}
<div class="navigation">
{{ knp_pagination_render(pagination) }}
{{ knp_pagination_render(pagination, 'tailwind_pagination.html.twig', {}, {
'sortableTemplate': 'tailwind_sortable.html.twig'
}) }}
</div>
</div>
</div>

View File

@ -10,8 +10,8 @@ use Doctrine\ORM\EntityManagerInterface;
use GuzzleHttp\Client;
use LogicException;
use MongoDB\BSON\ObjectId;
use Plugin\Custom\PSC\Upload\Document\Upload;
use Plugin\System\PSC\Ftp\Event\Package\Uploaded;
use Plugin\System\PSC\Upload\Document\Upload;
use PSC\Shop\ContactBundle\Event\Contact\Lock;
use PSC\Shop\ContactBundle\Event\Contact\UnLock;
use PSC\Shop\EntityBundle\Document\Order;
@ -1020,7 +1020,7 @@ class Mail implements QueueInterface, ConfigurableElementInterface
return true;
}
if ($event instanceof \Plugin\System\PSC\Upload\Event\Create) {
if ($event instanceof \Plugin\Custom\PSC\Upload\Event\Create) {
/**
* @var Upload $upload
*/

View File

@ -10,7 +10,7 @@
</h1>
</div>
<div class="flex flex-wrap items-center gap-4 justify-start shrink-0">
<a href="{{ path("psc_system_paper_list") }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-meta-3 hover:bg-meta-3/90 hover:ring-2 hover:ring-meta-3 hover:ring-offset-2 min-h-[2.25rem]">
<a href="{{ path("psc_system_paper_list") }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-lg px-4 text-sm text-white shadow-lg bg-indigo-500 hover:bg-indigo-600 hover:ring-2 hover:ring-indigo-500 hover:ring-offset-2 min-h-[2.25rem]">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" />
</svg>
@ -20,213 +20,218 @@
{% endblock %}
{% block body %}
<div class="rounded-sm border bg-white px-7.5 py-6 shadow-lg dark:border-strokedark dark:bg-boxdark">
{{ form_start(form, { 'attr': {'class': ''}}) }}
{{ form_errors(form) }}
<div class="flex flex-col md:flex-row gap-6">
<div class="w-full md:w-48 shrink-0">
<ul class="flex flex-row md:flex-col gap-2 overflow-x-auto md:overflow-x-visible" role="tablist">
<li class="shrink-0">
<a class="nav-link active block px-4 py-2 rounded-sm bg-psc-500 text-white hover:bg-psc-600" data-bs-toggle="tab" href="#all" role="tab">Allgemein</a>
</li>
<li class="shrink-0">
<a class="nav-link block px-4 py-2 rounded-sm bg-slate-100 hover:bg-slate-200" data-bs-toggle="tab" href="#settings" role="tab">Eigenschaften</a>
</li>
<li class="shrink-0">
<a class="nav-link block px-4 py-2 rounded-sm bg-slate-100 hover:bg-slate-200" data-bs-toggle="tab" href="#staffel" role="tab">Staffel</a>
</li>
<li class="shrink-0">
<a class="nav-link block px-4 py-2 rounded-sm bg-slate-100 hover:bg-slate-200" data-bs-toggle="tab" href="#papertyp" role="tab">Papiertyp</a>
</li>
</ul>
<div class="w-full">
{{ form_start(form, {attr: {class: ''}}) }}
<div class="tab-group flex-none md:flex w-full" data-dui-orientation="vertical">
<div role="tablist" class="relative mr-5 rounded-sm flex flex-col p-1 w-full md:w-2/12">
<div class="tab-indicator absolute left-0 w-1 bg-psc-500 transition-transform duration-300"></div>
<a href="#" class="tab-link flex items-center text-sm active px-4 py-2 relative" data-dui-tab-target="all">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="m21 7.5-9-5.25L3 7.5m18 0-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9" />
</svg>
Allgemein
</a>
<a href="#" class="tab-link flex items-center text-sm px-4 py-2 text-gray-700 relative" data-dui-tab-target="settings">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" />
</svg>
Eigenschaften
</a>
<a href="#" class="tab-link flex items-center text-sm px-4 py-2 text-gray-700 relative" data-dui-tab-target="staffel">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 18.75a60.07 60.07 0 0 1 15.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 0 1 3 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 0 0-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 0 1-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 0 0 3 15h-.75M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm3 0h.008v.008H18V10.5Zm-12 0h.008v.008H6V10.5Z" />
</svg>
Staffel
</a>
<a href="#" class="tab-link flex items-center text-sm px-4 py-2 text-gray-700 relative" data-dui-tab-target="papertyp">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" />
</svg>
Papiertyp
</a>
</div>
<div class="flex-1 min-w-0">
<div class="tab-content">
<div class="tab-pane active" id="all" role="tabpanel">
<h2 class="text-psc text-xl font-medium mb-6">Allgemeine Informationen</h2>
<div class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.artNr) }}</label>
<div class="md:col-span-2">{{ form_widget(form.artNr, {attr: {class:'form-input'}}) }}{{ form_errors(form.artNr) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.description1) }}</label>
<div class="md:col-span-2">{{ form_widget(form.description1, {attr: {class:'form-input'}}) }}{{ form_errors(form.description1) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.description2) }}</label>
<div class="md:col-span-2">{{ form_widget(form.description2, {attr: {class:'form-input'}}) }}{{ form_errors(form.description2) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.grammatur) }}</label>
<div class="md:col-span-2">{{ form_widget(form.grammatur, {attr: {class:'form-input'}}) }}{{ form_errors(form.grammatur) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.preis) }}</label>
<div class="md:col-span-2">{{ form_widget(form.preis, {attr: {class:'form-input'}}) }}{{ form_errors(form.preis) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.mengeneinheit) }}</label>
<div class="md:col-span-2">{{ form_widget(form.mengeneinheit, {attr: {class:'form-input'}}) }}{{ form_errors(form.mengeneinheit) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.volume) }}</label>
<div class="md:col-span-2">{{ form_widget(form.volume, {attr: {class:'form-input'}}) }}{{ form_errors(form.volume) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.verkaufshinweise) }}</label>
<div class="md:col-span-2">{{ form_widget(form.verkaufshinweise, {attr: {class:'form-input'}}) }}{{ form_errors(form.verkaufshinweise) }}</div>
</div>
<div class="rounded-sm w-full border bg-white p-5 shadow-lg dark:border-strokedark dark:bg-boxdark">
<div id="all" class="tab-content w-full text-stone-500 text-sm block">
<h6 class="text-sm mt-3 mb-6 font-bold uppercase text-psc">Allgemeine Informationen</h6>
<div class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.artNr) }}</label>
<div class="md:col-span-2">{{ form_widget(form.artNr, {attr: {class:'form-input'}}) }}{{ form_errors(form.artNr) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.description1) }}</label>
<div class="md:col-span-2">{{ form_widget(form.description1, {attr: {class:'form-input'}}) }}{{ form_errors(form.description1) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.description2) }}</label>
<div class="md:col-span-2">{{ form_widget(form.description2, {attr: {class:'form-input'}}) }}{{ form_errors(form.description2) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.grammatur) }}</label>
<div class="md:col-span-2">{{ form_widget(form.grammatur, {attr: {class:'form-input'}}) }}{{ form_errors(form.grammatur) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.preis) }}</label>
<div class="md:col-span-2">{{ form_widget(form.preis, {attr: {class:'form-input'}}) }}{{ form_errors(form.preis) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.mengeneinheit) }}</label>
<div class="md:col-span-2">{{ form_widget(form.mengeneinheit, {attr: {class:'form-input'}}) }}{{ form_errors(form.mengeneinheit) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.volume) }}</label>
<div class="md:col-span-2">{{ form_widget(form.volume, {attr: {class:'form-input'}}) }}{{ form_errors(form.volume) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.verkaufshinweise) }}</label>
<div class="md:col-span-2">{{ form_widget(form.verkaufshinweise, {attr: {class:'form-input'}}) }}{{ form_errors(form.verkaufshinweise) }}</div>
</div>
</div>
</div>
<div class="tab-pane" id="settings" role="tabpanel">
<h2 class="text-psc text-xl font-medium mb-6">Eigenschaften</h2>
<div class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.breite) }}</label>
<div class="md:col-span-2">{{ form_widget(form.breite, {attr: {class:'form-input'}}) }}{{ form_errors(form.breite) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.laenge) }}</label>
<div class="md:col-span-2">{{ form_widget(form.laenge, {attr: {class:'form-input'}}) }}{{ form_errors(form.laenge) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.staerke) }}</label>
<div class="md:col-span-2">{{ form_widget(form.staerke, {attr: {class:'form-input'}}) }}{{ form_errors(form.staerke) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.eigenschaften) }}</label>
<div class="md:col-span-2">{{ form_widget(form.eigenschaften, {attr: {class:'form-input'}}) }}{{ form_errors(form.eigenschaften) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.farbnummer) }}</label>
<div class="md:col-span-2">{{ form_widget(form.farbnummer, {attr: {class:'form-input'}}) }}{{ form_errors(form.farbnummer) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.farbbezeichnung) }}</label>
<div class="md:col-span-2">{{ form_widget(form.farbbezeichnung, {attr: {class:'form-input'}}) }}{{ form_errors(form.farbbezeichnung) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.kleber) }}</label>
<div class="md:col-span-2">{{ form_widget(form.kleber, {attr: {class:'form-input'}}) }}{{ form_errors(form.kleber) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.laufrichtung) }}</label>
<div class="md:col-span-2">{{ form_widget(form.laufrichtung, {attr: {class:'form-input'}}) }}{{ form_errors(form.laufrichtung) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.etiketten_je_blatt) }}</label>
<div class="md:col-span-2">{{ form_widget(form.etiketten_je_blatt, {attr: {class:'form-input'}}) }}{{ form_errors(form.etiketten_je_blatt) }}</div>
</div>
<div id="settings" class="tab-content w-full text-stone-500 text-sm hidden">
<h6 class="text-sm mt-3 mb-6 font-bold uppercase text-psc">Eigenschaften</h6>
<div class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.breite) }}</label>
<div class="md:col-span-2">{{ form_widget(form.breite, {attr: {class:'form-input'}}) }}{{ form_errors(form.breite) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.laenge) }}</label>
<div class="md:col-span-2">{{ form_widget(form.laenge, {attr: {class:'form-input'}}) }}{{ form_errors(form.laenge) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.staerke) }}</label>
<div class="md:col-span-2">{{ form_widget(form.staerke, {attr: {class:'form-input'}}) }}{{ form_errors(form.staerke) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.eigenschaften) }}</label>
<div class="md:col-span-2">{{ form_widget(form.eigenschaften, {attr: {class:'form-input'}}) }}{{ form_errors(form.eigenschaften) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.farbnummer) }}</label>
<div class="md:col-span-2">{{ form_widget(form.farbnummer, {attr: {class:'form-input'}}) }}{{ form_errors(form.farbnummer) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.farbbezeichnung) }}</label>
<div class="md:col-span-2">{{ form_widget(form.farbbezeichnung, {attr: {class:'form-input'}}) }}{{ form_errors(form.farbbezeichnung) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.kleber) }}</label>
<div class="md:col-span-2">{{ form_widget(form.kleber, {attr: {class:'form-input'}}) }}{{ form_errors(form.kleber) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.laufrichtung) }}</label>
<div class="md:col-span-2">{{ form_widget(form.laufrichtung, {attr: {class:'form-input'}}) }}{{ form_errors(form.laufrichtung) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.etiketten_je_blatt) }}</label>
<div class="md:col-span-2">{{ form_widget(form.etiketten_je_blatt, {attr: {class:'form-input'}}) }}{{ form_errors(form.etiketten_je_blatt) }}</div>
</div>
</div>
</div>
<div class="tab-pane" id="staffel" role="tabpanel">
<h2 class="text-psc text-xl font-medium mb-6">Staffelpreise</h2>
<div class="space-y-6">
{% for i in 1..5 %}
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'staffelmenge_' ~ i)) }}</label>
{{ form_widget(attribute(form, 'staffelmenge_' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'staffelmenge_' ~ i)) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'staffelpreis_' ~ i)) }}</label>
{{ form_widget(attribute(form, 'staffelpreis_' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'staffelpreis_' ~ i)) }}
</div>
<div id="staffel" class="tab-content w-full text-stone-500 text-sm hidden">
<h6 class="text-sm mt-3 mb-6 font-bold uppercase text-psc">Staffelpreise</h6>
<div class="space-y-6">
{% for i in 1..5 %}
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'staffelmenge_' ~ i)) }}</label>
{{ form_widget(attribute(form, 'staffelmenge_' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'staffelmenge_' ~ i)) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'staffelpreis_' ~ i)) }}</label>
{{ form_widget(attribute(form, 'staffelpreis_' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'staffelpreis_' ~ i)) }}
</div>
</div>
{% endfor %}
</div>
</div>
<div id="papertyp" class="tab-content w-full text-stone-500 text-sm hidden">
<h6 class="text-sm mt-3 mb-6 font-bold uppercase text-psc">Papiertypen</h6>
<div class="space-y-6">
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(form.offsetFix) }}</label>
{{ form_widget(form.offsetFix, {attr: {class:'form-input'}}) }}
{{ form_errors(form.offsetFix) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.offsetVar) }}</label>
{{ form_widget(form.offsetVar, {attr: {class:'form-input'}}) }}
{{ form_errors(form.offsetVar) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.digitalFix) }}</label>
{{ form_widget(form.digitalFix, {attr: {class:'form-input'}}) }}
{{ form_errors(form.digitalFix) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.digitalVar) }}</label>
{{ form_widget(form.digitalVar, {attr: {class:'form-input'}}) }}
{{ form_errors(form.digitalVar) }}
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
{% for i in 1..14 %}
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'papierTyp' ~ i)) }}</label>
{{ form_widget(attribute(form, 'papierTyp' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'papierTyp' ~ i)) }}
</div>
{% endfor %}
<div>
<label class="font-medium block mb-2">{{ form_label(form.umschlagen) }}</label>
{{ form_widget(form.umschlagen, {attr: {class:'form-input'}}) }}
{{ form_errors(form.umschlagen) }}
</div>
</div>
</div>
<div class="tab-pane" id="papertyp" role="tabpanel">
<h2 class="text-psc text-xl font-medium mb-6">Papiertypen</h2>
<div class="space-y-6">
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(form.offsetFix) }}</label>
{{ form_widget(form.offsetFix, {attr: {class:'form-input'}}) }}
{{ form_errors(form.offsetFix) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.offsetVar) }}</label>
{{ form_widget(form.offsetVar, {attr: {class:'form-input'}}) }}
{{ form_errors(form.offsetVar) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.digitalFix) }}</label>
{{ form_widget(form.digitalFix, {attr: {class:'form-input'}}) }}
{{ form_errors(form.digitalFix) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.digitalVar) }}</label>
{{ form_widget(form.digitalVar, {attr: {class:'form-input'}}) }}
{{ form_errors(form.digitalVar) }}
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(form.happy) }}</label>
{{ form_widget(form.happy, {attr: {class:'form-input'}}) }}
{{ form_errors(form.happy) }}
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
{% for i in 1..14 %}
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'papierTyp' ~ i)) }}</label>
{{ form_widget(attribute(form, 'papierTyp' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'papierTyp' ~ i)) }}
</div>
{% endfor %}
<div>
<label class="font-medium block mb-2">{{ form_label(form.umschlagen) }}</label>
{{ form_widget(form.umschlagen, {attr: {class:'form-input'}}) }}
{{ form_errors(form.umschlagen) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.eq) }}</label>
{{ form_widget(form.eq, {attr: {class:'form-input'}}) }}
{{ form_errors(form.eq) }}
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(form.happy) }}</label>
{{ form_widget(form.happy, {attr: {class:'form-input'}}) }}
{{ form_errors(form.happy) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.eq) }}</label>
{{ form_widget(form.eq, {attr: {class:'form-input'}}) }}
{{ form_errors(form.eq) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.sense) }}</label>
{{ form_widget(form.sense, {attr: {class:'form-input'}}) }}
{{ form_errors(form.sense) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.sky) }}</label>
{{ form_widget(form.sky, {attr: {class:'form-input'}}) }}
{{ form_errors(form.sky) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.glam) }}</label>
{{ form_widget(form.glam, {attr: {class:'form-input'}}) }}
{{ form_errors(form.glam) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.post) }}</label>
{{ form_widget(form.post, {attr: {class:'form-input'}}) }}
{{ form_errors(form.post) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.sense) }}</label>
{{ form_widget(form.sense, {attr: {class:'form-input'}}) }}
{{ form_errors(form.sense) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.sky) }}</label>
{{ form_widget(form.sky, {attr: {class:'form-input'}}) }}
{{ form_errors(form.sky) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.glam) }}</label>
{{ form_widget(form.glam, {attr: {class:'form-input'}}) }}
{{ form_errors(form.glam) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.post) }}</label>
{{ form_widget(form.post, {attr: {class:'form-input'}}) }}
{{ form_errors(form.post) }}
</div>
</div>
</div>
</div>
</div>
</div>
<div class="mt-8 pt-6 border-t border-stroke">
{{ form_widget(form.save, {attr: {class: 'inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]'}}) }}
<div class="text-end my-2">
{{ form_widget(form.save, {attr: {class: 'inline-flex items-center justify-center py-1 gap-1 font-medium rounded-lg px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]'}}) }}
</div>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@ -10,7 +10,7 @@
</h1>
</div>
<div class="flex flex-wrap items-center gap-4 justify-start shrink-0">
<a href="{{ path("psc_system_paper_list") }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-meta-3 hover:bg-meta-3/90 hover:ring-2 hover:ring-meta-3 hover:ring-offset-2 min-h-[2.25rem]">
<a href="{{ path("psc_system_paper_list") }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-lg px-4 text-sm text-white shadow-lg bg-indigo-500 hover:bg-indigo-600 hover:ring-2 hover:ring-indigo-500 hover:ring-offset-2 min-h-[2.25rem]">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" />
</svg>
@ -20,213 +20,218 @@
{% endblock %}
{% block body %}
<div class="rounded-sm border bg-white px-7.5 py-6 shadow-lg dark:border-strokedark dark:bg-boxdark">
{{ form_start(form, { 'attr': {'class': ''}}) }}
{{ form_errors(form) }}
<div class="flex flex-col md:flex-row gap-6">
<div class="w-full md:w-48 shrink-0">
<ul class="flex flex-row md:flex-col gap-2 overflow-x-auto md:overflow-x-visible" role="tablist">
<li class="shrink-0">
<a class="nav-link active block px-4 py-2 rounded-sm bg-psc-500 text-white hover:bg-psc-600" data-bs-toggle="tab" href="#all" role="tab">Allgemein</a>
</li>
<li class="shrink-0">
<a class="nav-link block px-4 py-2 rounded-sm bg-slate-100 hover:bg-slate-200" data-bs-toggle="tab" href="#settings" role="tab">Eigenschaften</a>
</li>
<li class="shrink-0">
<a class="nav-link block px-4 py-2 rounded-sm bg-slate-100 hover:bg-slate-200" data-bs-toggle="tab" href="#staffel" role="tab">Staffel</a>
</li>
<li class="shrink-0">
<a class="nav-link block px-4 py-2 rounded-sm bg-slate-100 hover:bg-slate-200" data-bs-toggle="tab" href="#papertyp" role="tab">Papiertyp</a>
</li>
</ul>
<div class="w-full">
{{ form_start(form, {attr: {class: ''}}) }}
<div class="tab-group flex-none md:flex w-full" data-dui-orientation="vertical">
<div role="tablist" class="relative mr-5 rounded-sm flex flex-col p-1 w-full md:w-2/12">
<div class="tab-indicator absolute left-0 w-1 bg-psc-500 transition-transform duration-300"></div>
<a href="#" class="tab-link flex items-center text-sm active px-4 py-2 relative" data-dui-tab-target="all">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="m21 7.5-9-5.25L3 7.5m18 0-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9" />
</svg>
Allgemein
</a>
<a href="#" class="tab-link flex items-center text-sm px-4 py-2 text-gray-700 relative" data-dui-tab-target="settings">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z" />
</svg>
Eigenschaften
</a>
<a href="#" class="tab-link flex items-center text-sm px-4 py-2 text-gray-700 relative" data-dui-tab-target="staffel">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 18.75a60.07 60.07 0 0 1 15.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 0 1 3 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 0 0-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 0 1-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 0 0 3 15h-.75M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm3 0h.008v.008H18V10.5Zm-12 0h.008v.008H6V10.5Z" />
</svg>
Staffel
</a>
<a href="#" class="tab-link flex items-center text-sm px-4 py-2 text-gray-700 relative" data-dui-tab-target="papertyp">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" />
</svg>
Papiertyp
</a>
</div>
<div class="flex-1 min-w-0">
<div class="tab-content">
<div class="tab-pane active" id="all" role="tabpanel">
<h2 class="text-psc text-xl font-medium mb-6">Allgemeine Informationen</h2>
<div class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.artNr) }}</label>
<div class="md:col-span-2">{{ form_widget(form.artNr, {attr: {class:'form-input'}}) }}{{ form_errors(form.artNr) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.description1) }}</label>
<div class="md:col-span-2">{{ form_widget(form.description1, {attr: {class:'form-input'}}) }}{{ form_errors(form.description1) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.description2) }}</label>
<div class="md:col-span-2">{{ form_widget(form.description2, {attr: {class:'form-input'}}) }}{{ form_errors(form.description2) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.grammatur) }}</label>
<div class="md:col-span-2">{{ form_widget(form.grammatur, {attr: {class:'form-input'}}) }}{{ form_errors(form.grammatur) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.preis) }}</label>
<div class="md:col-span-2">{{ form_widget(form.preis, {attr: {class:'form-input'}}) }}{{ form_errors(form.preis) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.mengeneinheit) }}</label>
<div class="md:col-span-2">{{ form_widget(form.mengeneinheit, {attr: {class:'form-input'}}) }}{{ form_errors(form.mengeneinheit) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.volume) }}</label>
<div class="md:col-span-2">{{ form_widget(form.volume, {attr: {class:'form-input'}}) }}{{ form_errors(form.volume) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.verkaufshinweise) }}</label>
<div class="md:col-span-2">{{ form_widget(form.verkaufshinweise, {attr: {class:'form-input'}}) }}{{ form_errors(form.verkaufshinweise) }}</div>
</div>
<div class="rounded-sm w-full border bg-white p-5 shadow-lg dark:border-strokedark dark:bg-boxdark">
<div id="all" class="tab-content w-full text-stone-500 text-sm block">
<h6 class="text-sm mt-3 mb-6 font-bold uppercase text-psc">Allgemeine Informationen</h6>
<div class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.artNr) }}</label>
<div class="md:col-span-2">{{ form_widget(form.artNr, {attr: {class:'form-input'}}) }}{{ form_errors(form.artNr) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.description1) }}</label>
<div class="md:col-span-2">{{ form_widget(form.description1, {attr: {class:'form-input'}}) }}{{ form_errors(form.description1) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.description2) }}</label>
<div class="md:col-span-2">{{ form_widget(form.description2, {attr: {class:'form-input'}}) }}{{ form_errors(form.description2) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.grammatur) }}</label>
<div class="md:col-span-2">{{ form_widget(form.grammatur, {attr: {class:'form-input'}}) }}{{ form_errors(form.grammatur) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.preis) }}</label>
<div class="md:col-span-2">{{ form_widget(form.preis, {attr: {class:'form-input'}}) }}{{ form_errors(form.preis) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.mengeneinheit) }}</label>
<div class="md:col-span-2">{{ form_widget(form.mengeneinheit, {attr: {class:'form-input'}}) }}{{ form_errors(form.mengeneinheit) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.volume) }}</label>
<div class="md:col-span-2">{{ form_widget(form.volume, {attr: {class:'form-input'}}) }}{{ form_errors(form.volume) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.verkaufshinweise) }}</label>
<div class="md:col-span-2">{{ form_widget(form.verkaufshinweise, {attr: {class:'form-input'}}) }}{{ form_errors(form.verkaufshinweise) }}</div>
</div>
</div>
</div>
<div class="tab-pane" id="settings" role="tabpanel">
<h2 class="text-psc text-xl font-medium mb-6">Eigenschaften</h2>
<div class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.breite) }}</label>
<div class="md:col-span-2">{{ form_widget(form.breite, {attr: {class:'form-input'}}) }}{{ form_errors(form.breite) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.laenge) }}</label>
<div class="md:col-span-2">{{ form_widget(form.laenge, {attr: {class:'form-input'}}) }}{{ form_errors(form.laenge) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.staerke) }}</label>
<div class="md:col-span-2">{{ form_widget(form.staerke, {attr: {class:'form-input'}}) }}{{ form_errors(form.staerke) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.eigenschaften) }}</label>
<div class="md:col-span-2">{{ form_widget(form.eigenschaften, {attr: {class:'form-input'}}) }}{{ form_errors(form.eigenschaften) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.farbnummer) }}</label>
<div class="md:col-span-2">{{ form_widget(form.farbnummer, {attr: {class:'form-input'}}) }}{{ form_errors(form.farbnummer) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.farbbezeichnung) }}</label>
<div class="md:col-span-2">{{ form_widget(form.farbbezeichnung, {attr: {class:'form-input'}}) }}{{ form_errors(form.farbbezeichnung) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.kleber) }}</label>
<div class="md:col-span-2">{{ form_widget(form.kleber, {attr: {class:'form-input'}}) }}{{ form_errors(form.kleber) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.laufrichtung) }}</label>
<div class="md:col-span-2">{{ form_widget(form.laufrichtung, {attr: {class:'form-input'}}) }}{{ form_errors(form.laufrichtung) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.etiketten_je_blatt) }}</label>
<div class="md:col-span-2">{{ form_widget(form.etiketten_je_blatt, {attr: {class:'form-input'}}) }}{{ form_errors(form.etiketten_je_blatt) }}</div>
</div>
<div id="settings" class="tab-content w-full text-stone-500 text-sm hidden">
<h6 class="text-sm mt-3 mb-6 font-bold uppercase text-psc">Eigenschaften</h6>
<div class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.breite) }}</label>
<div class="md:col-span-2">{{ form_widget(form.breite, {attr: {class:'form-input'}}) }}{{ form_errors(form.breite) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.laenge) }}</label>
<div class="md:col-span-2">{{ form_widget(form.laenge, {attr: {class:'form-input'}}) }}{{ form_errors(form.laenge) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.staerke) }}</label>
<div class="md:col-span-2">{{ form_widget(form.staerke, {attr: {class:'form-input'}}) }}{{ form_errors(form.staerke) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.eigenschaften) }}</label>
<div class="md:col-span-2">{{ form_widget(form.eigenschaften, {attr: {class:'form-input'}}) }}{{ form_errors(form.eigenschaften) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.farbnummer) }}</label>
<div class="md:col-span-2">{{ form_widget(form.farbnummer, {attr: {class:'form-input'}}) }}{{ form_errors(form.farbnummer) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.farbbezeichnung) }}</label>
<div class="md:col-span-2">{{ form_widget(form.farbbezeichnung, {attr: {class:'form-input'}}) }}{{ form_errors(form.farbbezeichnung) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.kleber) }}</label>
<div class="md:col-span-2">{{ form_widget(form.kleber, {attr: {class:'form-input'}}) }}{{ form_errors(form.kleber) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.laufrichtung) }}</label>
<div class="md:col-span-2">{{ form_widget(form.laufrichtung, {attr: {class:'form-input'}}) }}{{ form_errors(form.laufrichtung) }}</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.etiketten_je_blatt) }}</label>
<div class="md:col-span-2">{{ form_widget(form.etiketten_je_blatt, {attr: {class:'form-input'}}) }}{{ form_errors(form.etiketten_je_blatt) }}</div>
</div>
</div>
</div>
<div class="tab-pane" id="staffel" role="tabpanel">
<h2 class="text-psc text-xl font-medium mb-6">Staffelpreise</h2>
<div class="space-y-6">
{% for i in 1..5 %}
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'staffelmenge_' ~ i)) }}</label>
{{ form_widget(attribute(form, 'staffelmenge_' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'staffelmenge_' ~ i)) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'staffelpreis_' ~ i)) }}</label>
{{ form_widget(attribute(form, 'staffelpreis_' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'staffelpreis_' ~ i)) }}
</div>
<div id="staffel" class="tab-content w-full text-stone-500 text-sm hidden">
<h6 class="text-sm mt-3 mb-6 font-bold uppercase text-psc">Staffelpreise</h6>
<div class="space-y-6">
{% for i in 1..5 %}
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'staffelmenge_' ~ i)) }}</label>
{{ form_widget(attribute(form, 'staffelmenge_' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'staffelmenge_' ~ i)) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'staffelpreis_' ~ i)) }}</label>
{{ form_widget(attribute(form, 'staffelpreis_' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'staffelpreis_' ~ i)) }}
</div>
</div>
{% endfor %}
</div>
</div>
<div id="papertyp" class="tab-content w-full text-stone-500 text-sm hidden">
<h6 class="text-sm mt-3 mb-6 font-bold uppercase text-psc">Papiertypen</h6>
<div class="space-y-6">
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(form.offsetFix) }}</label>
{{ form_widget(form.offsetFix, {attr: {class:'form-input'}}) }}
{{ form_errors(form.offsetFix) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.offsetVar) }}</label>
{{ form_widget(form.offsetVar, {attr: {class:'form-input'}}) }}
{{ form_errors(form.offsetVar) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.digitalFix) }}</label>
{{ form_widget(form.digitalFix, {attr: {class:'form-input'}}) }}
{{ form_errors(form.digitalFix) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.digitalVar) }}</label>
{{ form_widget(form.digitalVar, {attr: {class:'form-input'}}) }}
{{ form_errors(form.digitalVar) }}
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
{% for i in 1..14 %}
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'papierTyp' ~ i)) }}</label>
{{ form_widget(attribute(form, 'papierTyp' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'papierTyp' ~ i)) }}
</div>
{% endfor %}
<div>
<label class="font-medium block mb-2">{{ form_label(form.umschlagen) }}</label>
{{ form_widget(form.umschlagen, {attr: {class:'form-input'}}) }}
{{ form_errors(form.umschlagen) }}
</div>
</div>
</div>
<div class="tab-pane" id="papertyp" role="tabpanel">
<h2 class="text-psc text-xl font-medium mb-6">Papiertypen</h2>
<div class="space-y-6">
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(form.offsetFix) }}</label>
{{ form_widget(form.offsetFix, {attr: {class:'form-input'}}) }}
{{ form_errors(form.offsetFix) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.offsetVar) }}</label>
{{ form_widget(form.offsetVar, {attr: {class:'form-input'}}) }}
{{ form_errors(form.offsetVar) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.digitalFix) }}</label>
{{ form_widget(form.digitalFix, {attr: {class:'form-input'}}) }}
{{ form_errors(form.digitalFix) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.digitalVar) }}</label>
{{ form_widget(form.digitalVar, {attr: {class:'form-input'}}) }}
{{ form_errors(form.digitalVar) }}
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(form.happy) }}</label>
{{ form_widget(form.happy, {attr: {class:'form-input'}}) }}
{{ form_errors(form.happy) }}
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
{% for i in 1..14 %}
<div>
<label class="font-medium block mb-2">{{ form_label(attribute(form, 'papierTyp' ~ i)) }}</label>
{{ form_widget(attribute(form, 'papierTyp' ~ i), {attr: {class:'form-input'}}) }}
{{ form_errors(attribute(form, 'papierTyp' ~ i)) }}
</div>
{% endfor %}
<div>
<label class="font-medium block mb-2">{{ form_label(form.umschlagen) }}</label>
{{ form_widget(form.umschlagen, {attr: {class:'form-input'}}) }}
{{ form_errors(form.umschlagen) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.eq) }}</label>
{{ form_widget(form.eq, {attr: {class:'form-input'}}) }}
{{ form_errors(form.eq) }}
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
<div>
<label class="font-medium block mb-2">{{ form_label(form.happy) }}</label>
{{ form_widget(form.happy, {attr: {class:'form-input'}}) }}
{{ form_errors(form.happy) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.eq) }}</label>
{{ form_widget(form.eq, {attr: {class:'form-input'}}) }}
{{ form_errors(form.eq) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.sense) }}</label>
{{ form_widget(form.sense, {attr: {class:'form-input'}}) }}
{{ form_errors(form.sense) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.sky) }}</label>
{{ form_widget(form.sky, {attr: {class:'form-input'}}) }}
{{ form_errors(form.sky) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.glam) }}</label>
{{ form_widget(form.glam, {attr: {class:'form-input'}}) }}
{{ form_errors(form.glam) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.post) }}</label>
{{ form_widget(form.post, {attr: {class:'form-input'}}) }}
{{ form_errors(form.post) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.sense) }}</label>
{{ form_widget(form.sense, {attr: {class:'form-input'}}) }}
{{ form_errors(form.sense) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.sky) }}</label>
{{ form_widget(form.sky, {attr: {class:'form-input'}}) }}
{{ form_errors(form.sky) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.glam) }}</label>
{{ form_widget(form.glam, {attr: {class:'form-input'}}) }}
{{ form_errors(form.glam) }}
</div>
<div>
<label class="font-medium block mb-2">{{ form_label(form.post) }}</label>
{{ form_widget(form.post, {attr: {class:'form-input'}}) }}
{{ form_errors(form.post) }}
</div>
</div>
</div>
</div>
</div>
</div>
<div class="mt-8 pt-6 border-t border-stroke">
{{ form_widget(form.save, {attr: {class: 'inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]'}}) }}
<div class="text-end my-2">
{{ form_widget(form.save, {attr: {class: 'inline-flex items-center justify-center py-1 gap-1 font-medium rounded-lg px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]'}}) }}
</div>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@ -1,6 +1,4 @@
{% extends 'backend_tailwind_base.html.twig' %}
{% do pagination.setSortableTemplate('tailwind_sortable.html.twig') %}
{% do pagination.setPaginationTemplate('tailwind_pagination.html.twig') %}
{% block header %}
<div>
@ -12,7 +10,7 @@
</h1>
</div>
<div class="flex flex-wrap items-center gap-4 justify-start shrink-0">
<a href="{{ path('psc_system_paper_container_settings') }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-meta-3 hover:bg-meta-3/90 hover:ring-2 hover:ring-meta-3 hover:ring-offset-2 min-h-[2.25rem]">
<a href="{{ path('psc_system_paper_container_settings') }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-indigo-500 hover:bg-indigo-600 hover:ring-2 hover:ring-indigo-500 hover:ring-offset-2 min-h-[2.25rem]">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z" />
</svg>
@ -30,19 +28,31 @@
{% block body %}
<div class="flex flex-col gap-6">
<div class="rounded-sm border bg-white px-7.5 py-6 shadow-lg dark:border-strokedark dark:bg-boxdark">
<div class="mb-4">
<div class="mb-6 px-4">
{{ form_start(form, { 'attr': {'class': ''}}) }}
<div class="flex items-center gap-4">
<label class="font-medium text-sm">
Suche
<div class="flex items-center gap-6">
<label class="font-medium text-gray-700 text-sm min-w-fit">
Suche:
</label>
<div class="flex-1 max-w-md">
<div class="flex gap-2">
{{ form_widget(form.term, {attr: {class:'form-input'}}) }}
<button type="submit" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<div class="flex-1 max-w-xl">
<div class="relative flex gap-3">
<div class="relative flex-1">
<div class="absolute inset-y-0 left-3.5 flex items-center pointer-events-none z-10">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-5 h-5 text-gray-400">
<path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" />
</svg>
</div>
{{ form_widget(form.term, {attr: {
class:'w-full pr-4 py-2.5 border border-gray-300 rounded-lg focus:ring-2 focus:ring-psc-500 focus:border-psc-500 transition-all text-sm',
placeholder: 'Papier suchen...',
style: 'padding-left: 2.75rem !important;'
}}) }}
</div>
<button type="submit" class="inline-flex items-center justify-center gap-2 font-medium rounded-lg px-5 py-2.5 text-sm text-white shadow-md bg-psc-500 hover:bg-psc-600 hover:shadow-lg transition-all duration-200">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-5 h-5">
<path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" />
</svg>
Suchen
</button>
</div>
</div>
@ -93,7 +103,9 @@
{% endfor %}
</div>
<div class="mt-4">
{{ knp_pagination_render(pagination) }}
{{ knp_pagination_render(pagination, 'tailwind_pagination.html.twig', {}, {
'sortableTemplate': 'tailwind_sortable.html.twig'
}) }}
</div>
</div>
</div>

View File

@ -6,11 +6,11 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-8">
<path stroke-linecap="round" stroke-linejoin="round" d="M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z" />
</svg>
Papier <span class="text-gray-500">Container</span>
Papiercontainer <span class="text-gray-500">Einstellungen</span>
</h1>
</div>
<div class="flex flex-wrap items-center gap-4 justify-start shrink-0">
<a href="{{ path("psc_system_paper_list") }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-meta-3 hover:bg-meta-3/90 hover:ring-2 hover:ring-meta-3 hover:ring-offset-2 min-h-[2.25rem]">
<a href="{{ path("psc_system_paper_list") }}" class="inline-flex items-center justify-center py-1 gap-1 font-medium rounded-lg px-4 text-sm text-white shadow-lg bg-indigo-500 hover:bg-indigo-600 hover:ring-2 hover:ring-indigo-500 hover:ring-offset-2 min-h-[2.25rem]">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" />
</svg>
@ -20,24 +20,36 @@
{% endblock %}
{% block body %}
<div class="rounded-sm border bg-white px-7.5 py-6 shadow-lg dark:border-strokedark dark:bg-boxdark">
{{ form_start(form, { 'attr': {'class': ''}}) }}
{{ form_errors(form) }}
<div class="space-y-6">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.paperContainer) }}</label>
<div class="md:col-span-2">
{{ form_widget(form.paperContainer, {attr: {class:'form-input'}}) }}
{{ form_errors(form.paperContainer) }}
<div class="w-full">
{{ form_start(form, {attr: {class: ''}}) }}
<div class="tab-group flex-none md:flex w-full" data-dui-orientation="vertical">
<div role="tablist" class="relative mr-5 rounded-sm flex flex-col p-1 w-full md:w-2/12">
<div class="tab-indicator absolute left-0 w-1 bg-psc-500 transition-transform duration-300"></div>
<a href="#" class="tab-link flex items-center text-sm active px-4 py-2 relative" data-dui-tab-target="settings">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="button-icon">
<path stroke-linecap="round" stroke-linejoin="round" d="M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z" />
</svg>
Einstellungen
</a>
</div>
<div class="rounded-sm w-full border bg-white p-5 shadow-lg dark:border-strokedark dark:bg-boxdark">
<div id="settings" class="tab-content w-full text-stone-500 text-sm block">
<h6 class="text-sm mt-3 mb-6 font-bold uppercase text-psc">Papiercontainer Konfiguration</h6>
<div class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
<label class="font-medium">{{ form_label(form.paperContainer) }}</label>
<div class="md:col-span-2">
{{ form_widget(form.paperContainer, {attr: {class:'form-input'}}) }}
{{ form_errors(form.paperContainer) }}
</div>
</div>
</div>
</div>
</div>
</div>
<div class="mt-8 pt-6 border-t border-stroke">
{{ form_widget(form.save, {attr: {class: 'inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]'}}) }}
<div class="text-end my-2">
{{ form_widget(form.save, {attr: {class: 'inline-flex items-center justify-center py-1 gap-1 font-medium rounded-lg px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]'}}) }}
</div>
{{ form_end(form) }}
</div>
{% endblock %}

View File

@ -1,39 +1,46 @@
{# tailwindcss Sliding pagination control implementation #}
{% if pageCount > 1 %}
<div class="inline-block">
<div class="flex items-baseline flex-row border border-gray-400 rounded-sm w-auto">
<div class="flex justify-center">
<div class="flex items-center gap-2">
{% if first is defined and current != first %}
<span class="bg-white text-blue-600 px-3 py-2 text-lg border-r border-gray-400 font-bold">
<a href="{{ path(route, knp_pagination_query(query, first)) }}">&lt;&lt;</a>
</span>
<a href="{{ path(route, query|merge({(pageParameterName): first})) }}"
class="inline-flex items-center justify-center min-w-[2.5rem] h-10 px-3 rounded-lg border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 hover:border-psc-500 transition-colors font-medium shadow-sm">
&lt;&lt;
</a>
{% endif %}
{% if previous is defined %}
<span class="bg-white text-blue-600 px-3 text-lg py-2 border-r border-gray-400">
<a rel="prev" href="{{ path(route, knp_pagination_query(query, previous)) }}">&lt;</a>
</span>
<a rel="prev" href="{{ path(route, query|merge({(pageParameterName): previous})) }}"
class="inline-flex items-center justify-center min-w-[2.5rem] h-10 px-3 rounded-lg border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 hover:border-psc-500 transition-colors font-medium shadow-sm">
&lt;
</a>
{% endif %}
{% for page in pagesInRange %}
{% if page != current %}
<span class="bg-white text-blue-600 px-3 py-2 text-lg border-r border-gray-400">
<a href="{{ path(route, knp_pagination_query(query, page)) }}">{{ page }}</a>
</span>
<a href="{{ path(route, query|merge({(pageParameterName): page})) }}"
class="inline-flex items-center justify-center min-w-[2.5rem] h-10 px-3 rounded-lg border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 hover:border-psc-500 transition-colors font-medium shadow-sm">
{{ page }}
</a>
{% else %}
<span class="bg-blue-600 text-white px-3 py-2 text-lg font-bold">{{ page }}</span>
<span class="inline-flex items-center justify-center min-w-[2.5rem] h-10 px-3 rounded-lg border border-psc-500 bg-psc-500 text-white font-bold shadow-md">
{{ page }}
</span>
{% endif %}
{% endfor %}
{% if next is defined %}
<span class="bg-white text-blue-600 px-3 py-2 text-lg border-r border-gray-400">
<a rel="next" href="{{ path(route, knp_pagination_query(query, next)) }}">&gt;</a>
</span>
<a rel="next" href="{{ path(route, query|merge({(pageParameterName): next})) }}"
class="inline-flex items-center justify-center min-w-[2.5rem] h-10 px-3 rounded-lg border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 hover:border-psc-500 transition-colors font-medium shadow-sm">
&gt;
</a>
{% endif %}
{% if last is defined and current != last %}
<span class="bg-white text-blue-600 px-3 py-2 text-lg border-gray-400 font-bold">
<a href="{{ path(route, knp_pagination_query(query, last)) }}">&gt;&gt;</a>
</span>
<a href="{{ path(route, query|merge({(pageParameterName): last})) }}"
class="inline-flex items-center justify-center min-w-[2.5rem] h-10 px-3 rounded-lg border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 hover:border-psc-500 transition-colors font-medium shadow-sm">
&gt;&gt;
</a>
{% endif %}
</div>
</div>

View File

@ -862,6 +862,14 @@ html {
left: 0px;
}
.left-3{
left: 0.75rem;
}
.left-3\.5{
left: 0.875rem;
}
.right-0{
right: 0px;
}
@ -1225,10 +1233,6 @@ html {
width: var(--sidebar-width);
}
.w-auto{
width: auto;
}
.w-full{
width: 100%;
}
@ -1241,6 +1245,15 @@ html {
min-width: 0px;
}
.min-w-\[2\.5rem\]{
min-width: 2.5rem;
}
.min-w-fit{
min-width: -moz-fit-content;
min-width: fit-content;
}
.max-w-7xl{
max-width: 80rem;
}
@ -1257,6 +1270,10 @@ html {
max-width: 28rem;
}
.max-w-xl{
max-width: 36rem;
}
.flex-1{
flex: 1 1 0%;
}
@ -1421,10 +1438,6 @@ html {
align-items: center;
}
.items-baseline{
align-items: baseline;
}
.justify-start{
justify-content: flex-start;
}
@ -1637,10 +1650,6 @@ html {
border-left-width: 4px;
}
.border-r{
border-right-width: 1px;
}
.border-r-0{
border-right-width: 0px;
}
@ -1674,9 +1683,9 @@ html {
border-color: rgb(209 213 219 / var(--tw-border-opacity));
}
.border-gray-400{
.border-psc-500{
--tw-border-opacity: 1;
border-color: rgb(156 163 175 / var(--tw-border-opacity));
border-color: rgb(234 100 27 / var(--tw-border-opacity));
}
.border-red-500{
@ -1694,11 +1703,6 @@ html {
border-color: rgb(250 204 21 / var(--tw-border-opacity));
}
.bg-blue-600{
--tw-bg-opacity: 1;
background-color: rgb(37 99 235 / var(--tw-bg-opacity));
}
.bg-blue-700{
--tw-bg-opacity: 1;
background-color: rgb(29 78 216 / var(--tw-bg-opacity));
@ -1733,6 +1737,11 @@ html {
background-color: rgb(220 252 231 / var(--tw-bg-opacity));
}
.bg-indigo-500{
--tw-bg-opacity: 1;
background-color: rgb(99 102 241 / var(--tw-bg-opacity));
}
.bg-lime-600{
--tw-bg-opacity: 1;
background-color: rgb(101 163 13 / var(--tw-bg-opacity));
@ -1924,6 +1933,10 @@ html {
padding-left: 2rem;
}
.pr-4{
padding-right: 1rem;
}
.pt-2{
padding-top: 0.5rem;
}
@ -2187,6 +2200,12 @@ html {
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md{
--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm{
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
@ -2289,6 +2308,10 @@ html {
transition-duration: 150ms;
}
.duration-200{
transition-duration: 200ms;
}
.duration-300{
transition-duration: 300ms;
}
@ -2548,6 +2571,11 @@ html {
border-color: rgb(209 213 219 / var(--tw-border-opacity));
}
.hover\:border-psc-500:hover{
--tw-border-opacity: 1;
border-color: rgb(234 100 27 / var(--tw-border-opacity));
}
.hover\:bg-blue-700:hover{
--tw-bg-opacity: 1;
background-color: rgb(29 78 216 / var(--tw-bg-opacity));
@ -2577,6 +2605,11 @@ html {
background-color: rgb(107 114 128 / 0.05);
}
.hover\:bg-indigo-600:hover{
--tw-bg-opacity: 1;
background-color: rgb(79 70 229 / var(--tw-bg-opacity));
}
.hover\:bg-psc-500:hover{
--tw-bg-opacity: 1;
background-color: rgb(234 100 27 / var(--tw-bg-opacity));
@ -2631,6 +2664,12 @@ html {
color: rgb(255 255 255 / var(--tw-text-opacity));
}
.hover\:shadow-lg:hover{
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:ring-2:hover{
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
@ -2642,6 +2681,11 @@ html {
--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity));
}
.hover\:ring-indigo-500:hover{
--tw-ring-opacity: 1;
--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));
}
.hover\:ring-psc-500:hover{
--tw-ring-opacity: 1;
--tw-ring-color: rgb(234 100 27 / var(--tw-ring-opacity));