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,60 +1,66 @@
|
||||
blockquote {
|
||||
--blockquote-bg: var(--app-blockquote-background-color);
|
||||
--blockquote-color: inherit;
|
||||
--blockquote-border: var(--app-blockquote-border-color);
|
||||
--blockquote-footer-color: var(--app-blockquote-footer-color);
|
||||
@layer components {
|
||||
blockquote {
|
||||
--blockquote-bg: var(--app-blockquote-background-color);
|
||||
--blockquote-color: inherit;
|
||||
--blockquote-border: var(--app-blockquote-border-color);
|
||||
--blockquote-footer-color: var(--app-blockquote-footer-color);
|
||||
|
||||
display: block;
|
||||
margin: var(--app-typography-spacing-vertical) 0;
|
||||
padding: var(--app-spacing);
|
||||
border-right: none;
|
||||
border-left: 0.25rem solid var(--app-blockquote-border-color);
|
||||
border-inline-start: 0.25rem solid var(--app-blockquote-border-color);
|
||||
border-inline-end: none;
|
||||
background-color: var(--blockquote-bg);
|
||||
color: var(--blockquote-color);
|
||||
border-left-color: var(--blockquote-border);
|
||||
border-inline-start-color: var(--blockquote-border);
|
||||
border-radius: var(--app-border-radius);
|
||||
}
|
||||
display: block;
|
||||
margin: var(--app-typography-spacing-vertical) 0;
|
||||
padding: var(--app-spacing);
|
||||
border-right: none;
|
||||
border-left: 0.25rem solid var(--app-blockquote-border-color);
|
||||
border-inline-start: 0.25rem solid var(--app-blockquote-border-color);
|
||||
border-inline-end: none;
|
||||
background-color: var(--blockquote-bg);
|
||||
color: var(--blockquote-color);
|
||||
border-left-color: var(--blockquote-border);
|
||||
border-inline-start-color: var(--blockquote-border);
|
||||
border-radius: var(--app-border-radius);
|
||||
}
|
||||
blockquote p:last-child {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
blockquote footer {
|
||||
margin-top: calc(var(--app-typography-spacing-vertical) * 0.5);
|
||||
color: var(--blockquote-footer-color);
|
||||
}
|
||||
blockquote footer {
|
||||
margin-top: calc(var(--app-typography-spacing-vertical) * 0.5);
|
||||
color: var(--blockquote-footer-color);
|
||||
}
|
||||
|
||||
blockquote[data-variant="success"] {
|
||||
--blockquote-bg: var(--badge-success-bg);
|
||||
--blockquote-color: var(--badge-success-color);
|
||||
--blockquote-border: var(--badge-success-border);
|
||||
--blockquote-footer-color: var(--badge-success-color);
|
||||
}
|
||||
blockquote[data-variant="success"] {
|
||||
--blockquote-bg: var(--badge-success-bg);
|
||||
--blockquote-color: var(--badge-success-color);
|
||||
--blockquote-border: var(--badge-success-border);
|
||||
--blockquote-footer-color: var(--badge-success-color);
|
||||
}
|
||||
|
||||
blockquote[data-variant="danger"] {
|
||||
--blockquote-bg: var(--badge-danger-bg);
|
||||
--blockquote-color: var(--badge-danger-color);
|
||||
--blockquote-border: var(--badge-danger-border);
|
||||
--blockquote-footer-color: var(--badge-danger-color);
|
||||
}
|
||||
blockquote[data-variant="error"],
|
||||
blockquote[data-variant="danger"] {
|
||||
--blockquote-bg: var(--badge-danger-bg);
|
||||
--blockquote-color: var(--badge-danger-color);
|
||||
--blockquote-border: var(--badge-danger-border);
|
||||
--blockquote-footer-color: var(--badge-danger-color);
|
||||
}
|
||||
|
||||
blockquote[data-variant="info"] {
|
||||
--blockquote-bg: var(--badge-info-bg);
|
||||
--blockquote-color: var(--badge-info-color);
|
||||
--blockquote-border: var(--badge-info-border);
|
||||
--blockquote-footer-color: var(--badge-info-color);
|
||||
}
|
||||
blockquote[data-variant="info"] {
|
||||
--blockquote-bg: var(--badge-info-bg);
|
||||
--blockquote-color: var(--badge-info-color);
|
||||
--blockquote-border: var(--badge-info-border);
|
||||
--blockquote-footer-color: var(--badge-info-color);
|
||||
}
|
||||
|
||||
blockquote[data-variant="warn"],
|
||||
blockquote[data-variant="warning"] {
|
||||
--blockquote-bg: var(--badge-warn-bg);
|
||||
--blockquote-color: var(--badge-warn-color);
|
||||
--blockquote-border: var(--badge-warn-border);
|
||||
--blockquote-footer-color: var(--badge-warn-color);
|
||||
}
|
||||
blockquote[data-variant="warn"],
|
||||
blockquote[data-variant="warning"] {
|
||||
--blockquote-bg: var(--badge-warn-bg);
|
||||
--blockquote-color: var(--badge-warn-color);
|
||||
--blockquote-border: var(--badge-warn-border);
|
||||
--blockquote-footer-color: var(--badge-warn-color);
|
||||
}
|
||||
|
||||
blockquote[data-variant="neutral"] {
|
||||
--blockquote-bg: var(--badge-neutral-bg);
|
||||
--blockquote-color: var(--badge-neutral-color);
|
||||
--blockquote-border: var(--badge-neutral-border);
|
||||
--blockquote-footer-color: var(--badge-neutral-color);
|
||||
blockquote[data-variant="neutral"] {
|
||||
--blockquote-bg: var(--badge-neutral-bg);
|
||||
--blockquote-color: var(--badge-neutral-color);
|
||||
--blockquote-border: var(--badge-neutral-border);
|
||||
--blockquote-footer-color: var(--badge-neutral-color);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user