✨ feat(Devis): Ajoute l'entité DevisLine et le formulaire de création de devis non terminer
Ajoute l'entité DevisLine, le formulaire NewDevisType et la route pour la création de devis.
```
356 lines
8.7 KiB
SCSS
356 lines
8.7 KiB
SCSS
@import "tailwindcss";
|
|
@import "tom-select/dist/css/tom-select.css";
|
|
|
|
|
|
form {
|
|
label {
|
|
color: white;
|
|
}
|
|
}
|
|
.animate-fadeIn { animation: fadeIn 0.3s ease-in-out; }
|
|
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
|
|
.custom-scrollbar::-webkit-scrollbar { width: 5px; height: 5px; }
|
|
.custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
|
|
.custom-scrollbar::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }
|
|
.dark .custom-scrollbar::-webkit-scrollbar-thumb { background: #334155; }
|
|
|
|
.page-transition { animation: fadeIn 0.3s ease-out; }
|
|
@keyframes fadeIn {
|
|
from { opacity: 0; transform: translateY(4px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
/* Menu Accordion sans JS */
|
|
details summary::-webkit-details-marker { display:none; }
|
|
details[open] .arrow-icon { transform: rotate(180deg); }
|
|
|
|
.ts-control {
|
|
border: 1px solid rgba(255, 255, 255, 0.05); /* Dark border */
|
|
padding: 8px 8px;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
position: relative;
|
|
z-index: 1;
|
|
box-sizing: border-box;
|
|
box-shadow: none; /* Removed inset shadow */
|
|
border-radius: 3px;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
background-color: rgba(15, 23, 42, 0.6) !important; /* Slate-900 transparent */
|
|
}
|
|
.ts-wrapper.multi.has-items .ts-control {
|
|
padding: calc(8px - 2px - 1px) 8px calc(8px - 2px - 3px - 1px);
|
|
}
|
|
.full .ts-control {
|
|
background-color: #0f172a; /* Slate-900 */
|
|
}
|
|
.disabled .ts-control, .disabled .ts-control * {
|
|
cursor: default !important;
|
|
}
|
|
.focus .ts-control {
|
|
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2); /* Blue halo */
|
|
border-color: #3b82f6;
|
|
}
|
|
.ts-control > * {
|
|
vertical-align: baseline;
|
|
display: inline-block;
|
|
}
|
|
.ts-wrapper.multi .ts-control > div {
|
|
cursor: pointer;
|
|
margin: 0 3px 3px 0;
|
|
padding: 2px 6px;
|
|
background: #2563eb; /* Blue-600 */
|
|
color: #fff;
|
|
border: 1px solid #1d4ed8;
|
|
}
|
|
.ts-wrapper.multi .ts-control > div.active {
|
|
background: #1e40af; /* Deeper blue */
|
|
color: #fff;
|
|
border: 1px solid #1e3a8a;
|
|
}
|
|
.ts-wrapper.multi.disabled .ts-control > div, .ts-wrapper.multi.disabled .ts-control > div.active {
|
|
color: #475569;
|
|
background: #1e293b;
|
|
border: 1px solid #334155;
|
|
}
|
|
.ts-control > input {
|
|
flex: 1 1 auto;
|
|
min-width: 7rem;
|
|
display: inline-block !important;
|
|
padding: 0 !important;
|
|
min-height: 0 !important;
|
|
max-height: none !important;
|
|
max-width: 100% !important;
|
|
margin: 0 !important;
|
|
text-indent: 0 !important;
|
|
border: 0 none !important;
|
|
background: none !important;
|
|
line-height: inherit !important;
|
|
-webkit-user-select: auto !important;
|
|
-moz-user-select: auto !important;
|
|
-ms-user-select: auto !important;
|
|
user-select: auto !important;
|
|
box-shadow: none !important;
|
|
color: #f8fafc !important; /* Slate-50 text */
|
|
}
|
|
.ts-control > input::-ms-clear {
|
|
display: none;
|
|
}
|
|
.ts-control > input:focus {
|
|
outline: none !important;
|
|
}
|
|
.has-items .ts-control > input {
|
|
margin: 0 4px !important;
|
|
}
|
|
.ts-control.rtl {
|
|
text-align: right;
|
|
}
|
|
.ts-control.rtl.single .ts-control:after {
|
|
left: 15px;
|
|
right: auto;
|
|
}
|
|
.ts-control.rtl .ts-control > input {
|
|
margin: 0 4px 0 -2px !important;
|
|
}
|
|
.disabled .ts-control {
|
|
opacity: 0.5;
|
|
background-color: #0f172a;
|
|
}
|
|
.input-hidden .ts-control > input {
|
|
opacity: 0;
|
|
position: absolute;
|
|
left: -10000px;
|
|
}
|
|
|
|
.ts-dropdown {
|
|
position: absolute;
|
|
top: 100%;
|
|
left: 0;
|
|
width: 100%;
|
|
z-index: 10;
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
background: #0f172a; /* Dark background */
|
|
margin: 0.25rem 0 0;
|
|
border-top: 0 none;
|
|
box-sizing: border-box;
|
|
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
|
|
border-radius: 0 0 3px 3px;
|
|
color: #f8fafc;
|
|
}
|
|
.ts-dropdown [data-selectable] {
|
|
cursor: pointer;
|
|
overflow: hidden;
|
|
}
|
|
.ts-dropdown [data-selectable] .highlight {
|
|
background: rgba(59, 130, 246, 0.3); /* Blue highlight */
|
|
border-radius: 1px;
|
|
}
|
|
.ts-dropdown .option,
|
|
.ts-dropdown .optgroup-header,
|
|
.ts-dropdown .no-results,
|
|
.ts-dropdown .create {
|
|
padding: 5px 8px;
|
|
}
|
|
.ts-dropdown .option, .ts-dropdown [data-disabled], .ts-dropdown [data-disabled] [data-selectable].option {
|
|
cursor: inherit;
|
|
opacity: 0.5;
|
|
}
|
|
.ts-dropdown [data-selectable].option {
|
|
opacity: 1;
|
|
cursor: pointer;
|
|
}
|
|
.ts-dropdown .optgroup:first-child .optgroup-header {
|
|
border-top: 0 none;
|
|
}
|
|
.ts-dropdown .optgroup-header {
|
|
color: #94a3b8; /* Slate-400 */
|
|
background: #0f172a;
|
|
cursor: default;
|
|
}
|
|
.ts-dropdown .active {
|
|
background-color: #1e293b; /* Slate-800 */
|
|
color: #3b82f6; /* Blue-500 */
|
|
}
|
|
.ts-dropdown .active.create {
|
|
color: #3b82f6;
|
|
}
|
|
.ts-dropdown .create {
|
|
color: rgba(248, 248, 248, 0.5);
|
|
}
|
|
.ts-dropdown .spinner {
|
|
display: inline-block;
|
|
width: 30px;
|
|
height: 30px;
|
|
margin: 5px 8px;
|
|
}
|
|
.ts-dropdown .spinner::after {
|
|
content: " ";
|
|
display: block;
|
|
width: 24px;
|
|
height: 24px;
|
|
margin: 3px;
|
|
border-radius: 50%;
|
|
border: 5px solid #1e293b;
|
|
border-color: #3b82f6 transparent #3b82f6 transparent;
|
|
animation: lds-dual-ring 1.2s linear infinite;
|
|
}
|
|
@keyframes lds-dual-ring {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
.ts-dropdown-content {
|
|
overflow: hidden auto;
|
|
max-height: 200px;
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
.ts-wrapper.plugin-drag_drop .ts-dragging {
|
|
color: transparent !important;
|
|
}
|
|
.ts-wrapper.plugin-drag_drop .ts-dragging > * {
|
|
visibility: hidden !important;
|
|
}
|
|
|
|
.plugin-checkbox_options:not(.rtl) .option input {
|
|
margin-right: 0.5rem;
|
|
}
|
|
|
|
.plugin-checkbox_options.rtl .option input {
|
|
margin-left: 0.5rem;
|
|
}
|
|
|
|
/* stylelint-disable function-name-case */
|
|
.plugin-clear_button {
|
|
--ts-pr-clear-button: 1em;
|
|
}
|
|
.plugin-clear_button .clear-button {
|
|
opacity: 0;
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
right: calc(8px - 6px);
|
|
margin-right: 0 !important;
|
|
background: transparent !important;
|
|
transition: opacity 0.5s;
|
|
cursor: pointer;
|
|
color: #ef4444; /* Red for clear */
|
|
}
|
|
.plugin-clear_button.focus.has-items .clear-button, .plugin-clear_button:not(.disabled):hover.has-items .clear-button {
|
|
opacity: 1;
|
|
}
|
|
|
|
.ts-wrapper .dropdown-header {
|
|
position: relative;
|
|
padding: 10px 8px;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
background: #1e293b;
|
|
border-radius: 3px 3px 0 0;
|
|
}
|
|
.ts-wrapper .dropdown-header-close {
|
|
position: absolute;
|
|
right: 8px;
|
|
top: 50%;
|
|
color: #f8fafc;
|
|
opacity: 0.4;
|
|
margin-top: -12px;
|
|
line-height: 20px;
|
|
font-size: 20px !important;
|
|
}
|
|
.ts-wrapper .dropdown-header-close:hover {
|
|
color: #fff;
|
|
}
|
|
|
|
.plugin-dropdown_input.focus.dropdown-active .ts-control {
|
|
box-shadow: none;
|
|
border: 1px solid #3b82f6;
|
|
}
|
|
.plugin-dropdown_input .dropdown-input {
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
border-width: 0 0 1px;
|
|
display: block;
|
|
padding: 8px 8px;
|
|
box-shadow: none;
|
|
width: 100%;
|
|
background: #0f172a;
|
|
color: #fff;
|
|
}
|
|
|
|
.ts-dropdown.plugin-optgroup_columns .optgroup {
|
|
border-right: 1px solid rgba(255, 255, 255, 0.05);
|
|
border-top: 0 none;
|
|
flex-grow: 1;
|
|
flex-basis: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
.ts-wrapper.plugin-remove_button .item .remove {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
vertical-align: middle;
|
|
display: inline-block;
|
|
padding: 0 6px;
|
|
border-radius: 0 2px 2px 0;
|
|
box-sizing: border-box;
|
|
}
|
|
.ts-wrapper.plugin-remove_button .item .remove:hover {
|
|
background: rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.ts-wrapper {
|
|
position: relative;
|
|
}
|
|
|
|
.ts-dropdown,
|
|
.ts-control,
|
|
.ts-control input {
|
|
color: #f8fafc; /* Global text color */
|
|
font-family: inherit;
|
|
font-size: 13px;
|
|
line-height: 18px;
|
|
}
|
|
|
|
.ts-control,
|
|
.ts-wrapper.single.input-active .ts-control {
|
|
background: rgba(15, 23, 42, 0.6) !important;
|
|
cursor: text;
|
|
}
|
|
|
|
.ts-wrapper.single .ts-control::after {
|
|
border-color: #64748b transparent transparent transparent; /* Slate-500 arrow */
|
|
}
|
|
|
|
.ts-wrapper.single.dropdown-active .ts-control::after {
|
|
border-color: transparent transparent #3b82f6 transparent;
|
|
}
|
|
|
|
.ts-wrapper.multi .ts-control [data-value] {
|
|
text-shadow: none;
|
|
border-radius: 3px;
|
|
background-color: #3b82f6;
|
|
background-image: none;
|
|
box-shadow: none;
|
|
}
|
|
.ts-wrapper.multi.disabled .ts-control [data-value] {
|
|
color: #475569;
|
|
background: #1e293b;
|
|
}
|
|
|
|
.ts-wrapper.single .ts-control {
|
|
box-shadow: none;
|
|
background-color: rgba(15, 23, 42, 0.6) !important;
|
|
background-image: none;
|
|
}
|
|
|
|
.ts-wrapper.single .ts-control, .ts-dropdown.single {
|
|
border-color: rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
.ts-dropdown .optgroup {
|
|
border-top: 1px solid rgba(255, 255, 255, 0.05);
|
|
}
|