add composer-unused, comprehensive docs, and project restructure
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks - Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists - Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services - Add Microsoft OIDC SSO, API token management, and user lifecycle features - Add swagger-ui vendor integration and OpenAPI spec - Add production Docker setup and bin/ scripts - Update composer dependencies, config, templates, and frontend assets throughout Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,62 +1,103 @@
|
||||
.form-hint {
|
||||
font-size: small;
|
||||
}
|
||||
@layer components {
|
||||
.form-hint {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
ul.form-hint-list {
|
||||
margin: 0;
|
||||
padding-left: var(--app-spacing);
|
||||
}
|
||||
ul.form-hint-list {
|
||||
margin: 0;
|
||||
padding-left: var(--app-spacing);
|
||||
}
|
||||
|
||||
ul.form-hint-list li {
|
||||
margin: 0;
|
||||
}
|
||||
ul.form-hint-list li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
ul.form-hint-list li.is-valid {
|
||||
color: var(--app-form-element-valid-border-color);
|
||||
}
|
||||
ul.form-hint-list li.is-valid {
|
||||
color: var(--app-form-element-valid-border-color);
|
||||
}
|
||||
|
||||
ul.form-hint-list li.is-invalid {
|
||||
color: var(--app-form-element-invalid-border-color);
|
||||
}
|
||||
ul.form-hint-list li.is-invalid {
|
||||
color: var(--app-form-element-invalid-border-color);
|
||||
}
|
||||
|
||||
ul.form-hint-list li.is-valid:after {
|
||||
content: "\F26B";
|
||||
font-family: "Bootstrap-icons";
|
||||
margin-left: 4px;
|
||||
font-size: 10px;
|
||||
}
|
||||
ul.form-hint-list li.is-valid:after {
|
||||
content: "\F26B";
|
||||
font-family: "Bootstrap-icons";
|
||||
margin-left: 4px;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
ul.form-hint-list li.is-invalid:after {
|
||||
content: "\F33A";
|
||||
font-family: "Bootstrap-icons";
|
||||
margin-left: 4px;
|
||||
font-size: 10px;
|
||||
}
|
||||
ul.form-hint-list li.is-invalid:after {
|
||||
content: "\F33A";
|
||||
font-family: "Bootstrap-icons";
|
||||
margin-left: 4px;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
label:has([type="checkbox"], [type="radio"]) {
|
||||
display: flex;
|
||||
line-height: 1;
|
||||
align-items: center;
|
||||
}
|
||||
label:has([type="checkbox"], [type="radio"]) {
|
||||
display: flex;
|
||||
line-height: 1;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
input[type="color"] {
|
||||
input[type="color"] {
|
||||
padding: 0;
|
||||
width: 42px;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
height: 42px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
|
||||
label:has(input[type="color"]) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
label:has(input[type="color"]) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
small.muted {
|
||||
small.muted {
|
||||
display: block;
|
||||
width: 100%;
|
||||
color: var(--app-muted-color);
|
||||
}
|
||||
}
|
||||
a.muted {
|
||||
color: var(--app-muted-color);
|
||||
}
|
||||
|
||||
label.app-field:has(input[type="checkbox"][disabled]),
|
||||
label.app-field:has(input[type="radio"][disabled]) {
|
||||
cursor: not-allowed;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
label.app-field:has(input[type="checkbox"][disabled]) > span,
|
||||
label.app-field:has(input[type="radio"][disabled]) > span {
|
||||
color: var(--app-muted-color);
|
||||
}
|
||||
|
||||
input[type="checkbox"][disabled],
|
||||
input[type="radio"][disabled] {
|
||||
--app-border-color: var(--app-muted-border-color);
|
||||
--app-background-color: var(--app-form-element-background-color);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
input[type="checkbox"][disabled]:checked,
|
||||
input[type="checkbox"][disabled]:indeterminate,
|
||||
input[type="radio"][disabled]:checked {
|
||||
--app-border-color: var(--app-muted-border-color);
|
||||
--app-background-color: var(--app-muted-border-color);
|
||||
}
|
||||
|
||||
fieldset[aria-disabled="true"] {
|
||||
border-color: var(--app-muted-border-color);
|
||||
}
|
||||
|
||||
fieldset[aria-disabled="true"] .muted,
|
||||
fieldset[aria-disabled="true"] legend small {
|
||||
color: var(--app-muted-color);
|
||||
}
|
||||
label:has(.badge) > span {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user