documentation updates

This commit is contained in:
Mark Gregory
2026-06-15 08:06:57 +01:00
parent 2a9d25ec18
commit 5aa026d3c6
80 changed files with 591 additions and 2469 deletions
@@ -6,104 +6,536 @@
<title>{{ trim($__env->yieldContent('title', 'Documentation')) }} - {{ config('app.name', 'Laravel') }}</title>
<style>
:root {
--doc-ink: #10231f;
--doc-muted: #64748b;
--doc-line: #dbe7e2;
--doc-ink: #18181b;
--doc-muted: #71717a;
--doc-line: #e4e4e7;
--doc-panel: #ffffff;
--doc-soft: #f5faf8;
--doc-brand: #0f766e;
--doc-brand-dark: #115e59;
--doc-accent: #16a34a;
--doc-danger: #b91c1c;
--doc-warning: #b45309;
--doc-soft: #f4f4f5;
--doc-brand: #2563eb;
--doc-brand-dark: #1d4ed8;
--doc-accent: #059669;
--doc-danger: #dc2626;
--doc-warning: #d97706;
--doc-radius: 22px;
--doc-shadow: 0 24px 70px rgba(15, 35, 31, .12);
--doc-shadow: 0 18px 55px rgba(15, 23, 42, .10);
}
html.dark {
--doc-ink: #f4f4f5;
--doc-muted: #a1a1aa;
--doc-line: #3f3f46;
--doc-panel: #18181b;
--doc-soft: #09090b;
--doc-shadow: 0 18px 55px rgba(0, 0, 0, .28);
}
body.documentation-module {
margin: 0;
background: linear-gradient(135deg, #eef8f3 0%, #f8fafc 45%, #ecfdf5 100%);
background: #ffffff;
color: var(--doc-ink);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
min-height: 100vh;
}
.doc-shell { max-width: 1240px; margin: 0 auto; padding: 28px 20px 56px; }
html.dark body.documentation-module {
background: #09090b;
}
.doc-shell {
max-width: 1800px;
margin: 0 auto;
padding: 0;
}
.doc-page {
margin: 0 auto;
max-width: 1800px;
padding: 0;
display: grid;
gap: 1.5rem;
}
.doc-hero-wrap {
overflow: hidden;
border: 1px solid var(--doc-line);
border-radius: 1.5rem;
background: var(--doc-panel);
box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
}
.doc-hero {
display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
padding: 28px; border-radius: 30px; color: #fff;
background: radial-gradient(circle at top left, rgba(255,255,255,.24), transparent 34%), linear-gradient(135deg, #064e3b, #0f766e 52%, #16a34a);
box-shadow: var(--doc-shadow); margin-bottom: 22px;
display: flex;
flex-direction: column;
gap: 1rem;
padding: 1.75rem 1.5rem;
color: #ffffff;
background: linear-gradient(135deg, #020617 0%, #0f172a 48%, #172554 100%);
}
.doc-eyebrow { text-transform: uppercase; font-size: 12px; letter-spacing: .16em; font-weight: 800; opacity: .82; margin: 0 0 10px; }
.doc-hero h1 { margin: 0; font-size: clamp(30px, 5vw, 52px); line-height: .98; letter-spacing: -.04em; }
.doc-hero p { max-width: 720px; margin: 14px 0 0; color: rgba(255,255,255,.84); font-size: 16px; line-height: 1.65; }
.doc-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.doc-hero-row {
display: flex;
flex-direction: column;
gap: 1rem;
}
.doc-hero h1 {
margin: .5rem 0 0;
font-size: clamp(1.875rem, 4vw, 3rem);
line-height: 1;
font-weight: 700;
letter-spacing: -.04em;
}
.doc-eyebrow {
margin: 0;
color: #bfdbfe;
text-transform: uppercase;
font-size: .75rem;
letter-spacing: .28em;
font-weight: 700;
}
.doc-hero p {
max-width: 48rem;
margin: .5rem 0 0;
color: rgba(219, 234, 254, .9);
font-size: .875rem;
line-height: 1.65;
}
.doc-actions {
display: flex;
flex-wrap: wrap;
gap: .5rem;
}
.doc-button {
border: 1px solid transparent; border-radius: 999px; padding: 11px 16px; font-weight: 800; font-size: 14px;
text-decoration: none; display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
border: 1px solid transparent;
border-radius: .75rem;
padding: .625rem .875rem;
font-weight: 700;
font-size: .875rem;
line-height: 1.25rem;
text-decoration: none;
display: inline-flex;
align-items: center;
justify-content: center;
gap: .5rem;
cursor: pointer;
transition: background-color .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.doc-button.primary { background: #fff; color: var(--doc-brand-dark); }
.doc-button.secondary { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.32); }
.doc-button.dark { background: var(--doc-brand); color: #fff; }
.doc-button.light { background: #f8fafc; color: var(--doc-ink); border-color: var(--doc-line); }
.doc-button.danger { background: #fef2f2; color: var(--doc-danger); border-color: #fecaca; padding: 8px 12px; }
.doc-card { background: rgba(255,255,255,.92); border: 1px solid var(--doc-line); border-radius: var(--doc-radius); box-shadow: 0 14px 45px rgba(15,35,31,.08); overflow: hidden; }
.doc-card-header { padding: 20px 22px; border-bottom: 1px solid var(--doc-line); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.doc-card-body { padding: 22px; }
.doc-grid { display: grid; gap: 18px; }
.doc-grid.stats { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 22px 0; }
.doc-stat { padding: 20px; }
.doc-stat strong { display:block; font-size: 30px; letter-spacing: -.04em; }
.doc-stat span { color: var(--doc-muted); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.doc-table { width: 100%; border-collapse: collapse; }
.doc-table th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--doc-muted); padding: 12px; border-bottom: 1px solid var(--doc-line); }
.doc-table td { padding: 14px 12px; border-bottom: 1px solid #edf3f0; vertical-align: top; }
.doc-table a { color: var(--doc-brand-dark); font-weight: 800; text-decoration: none; }
.doc-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 800; background: #ecfdf5; color: #065f46; border: 1px solid #bbf7d0; }
.doc-badge.draft { background: #f8fafc; color: #475569; border-color: #cbd5e1; }
.doc-badge.archived { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.doc-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.doc-field.full { grid-column: 1 / -1; }
.doc-label { display: block; font-weight: 800; margin-bottom: 8px; font-size: 14px; }
.doc-input, .doc-select, .doc-textarea {
width: 100%; box-sizing: border-box; border: 1px solid #cbd5e1; border-radius: 14px; padding: 12px 14px;
background: #fff; color: var(--doc-ink); font: inherit;
.doc-button:hover {
transform: translateY(-1px);
}
.doc-textarea { min-height: 360px; line-height: 1.6; resize: vertical; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.doc-editor { border: 1px solid #cbd5e1; border-radius: 16px; overflow: hidden; background: #fff; }
.doc-editor .doc-textarea { border: 0; border-radius: 0; min-height: 420px; }
.doc-editor-toolbar { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px; background: #f8fafc; border-bottom: 1px solid var(--doc-line); }
.doc-editor-toolbar button { border: 1px solid #cbd5e1; background: #fff; color: var(--doc-ink); border-radius: 10px; padding: 7px 10px; font-weight: 800; cursor: pointer; }
.doc-editor-toolbar button:hover, .doc-editor-toolbar button:focus { border-color: var(--doc-brand); outline: 2px solid rgba(15, 118, 110, .18); }
.editor-help { padding: 0 14px 12px; margin: -4px 0 0; font-size: 13px; }
.doc-error { color: var(--doc-danger); font-size: 13px; margin-top: 6px; }
.doc-alert { border-radius: 16px; padding: 14px 16px; background: #ecfdf5; color: #065f46; border: 1px solid #bbf7d0; margin-bottom: 18px; font-weight: 700; }
.doc-filter { display: grid; grid-template-columns: 1fr 180px 220px auto; gap: 12px; margin-bottom: 18px; }
.doc-content { line-height: 1.75; font-size: 16px; }
.doc-content h1, .doc-content h2, .doc-content h3 { line-height: 1.2; letter-spacing: -.025em; margin: 1.4em 0 .55em; }
.doc-button.primary,
.doc-button.dark {
background: #2563eb;
color: #ffffff;
border-color: #2563eb;
}
.doc-button.primary:hover,
.doc-button.dark:hover {
background: #1d4ed8;
border-color: #1d4ed8;
}
.doc-button.secondary {
background: rgba(255, 255, 255, .10);
color: #ffffff;
border-color: rgba(255, 255, 255, .22);
}
.doc-button.secondary:hover {
background: rgba(255, 255, 255, .16);
}
.doc-button.light {
background: #f8fafc;
color: #18181b;
border-color: #d4d4d8;
}
html.dark .doc-button.light {
background: #09090b;
color: #f4f4f5;
border-color: #3f3f46;
}
.doc-button.success {
background: #059669;
color: #ffffff;
border-color: #059669;
}
.doc-button.danger {
background: #dc2626;
color: #ffffff;
border-color: #dc2626;
}
.doc-card {
background: var(--doc-panel);
border: 1px solid var(--doc-line);
border-radius: 1rem;
box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
overflow: hidden;
}
.doc-card-header {
padding: 1rem 1.25rem;
border-bottom: 1px solid var(--doc-line);
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
}
.doc-card-body {
padding: 1.25rem;
}
.doc-grid {
display: grid;
gap: 1rem;
}
.doc-grid.stats {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.doc-stat {
padding: 1.25rem;
}
.doc-stat strong {
display: block;
font-size: 1.875rem;
line-height: 2.25rem;
letter-spacing: -.04em;
color: var(--doc-ink);
}
.doc-stat span {
color: var(--doc-muted);
font-size: .75rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
}
.doc-table {
width: 100%;
border-collapse: collapse;
}
.doc-table th {
text-align: left;
font-size: .75rem;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--doc-muted);
padding: .75rem;
border-bottom: 1px solid var(--doc-line);
}
.doc-table td {
padding: .875rem .75rem;
border-bottom: 1px solid var(--doc-line);
vertical-align: top;
}
.doc-table a,
.doc-link {
color: #1d4ed8;
font-weight: 700;
text-decoration: none;
}
html.dark .doc-table a,
html.dark .doc-link {
color: #93c5fd;
}
.doc-badge {
display: inline-flex;
align-items: center;
border-radius: 999px;
padding: .25rem .625rem;
font-size: .75rem;
font-weight: 800;
background: #dbeafe;
color: #1e40af;
border: 1px solid #bfdbfe;
}
.doc-badge.published {
background: #ecfdf5;
color: #065f46;
border-color: #a7f3d0;
}
.doc-badge.draft {
background: #f4f4f5;
color: #52525b;
border-color: #d4d4d8;
}
.doc-badge.archived {
background: #fef2f2;
color: #991b1b;
border-color: #fecaca;
}
html.dark .doc-badge {
background: rgba(37, 99, 235, .18);
color: #bfdbfe;
border-color: rgba(59, 130, 246, .35);
}
html.dark .doc-badge.published {
background: rgba(5, 150, 105, .18);
color: #a7f3d0;
border-color: rgba(16, 185, 129, .35);
}
html.dark .doc-badge.draft {
background: rgba(113, 113, 122, .18);
color: #d4d4d8;
border-color: rgba(161, 161, 170, .30);
}
html.dark .doc-badge.archived {
background: rgba(220, 38, 38, .16);
color: #fecaca;
border-color: rgba(248, 113, 113, .32);
}
.doc-form-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}
.doc-field.full {
grid-column: 1 / -1;
}
.doc-label {
display: block;
font-weight: 700;
margin-bottom: .5rem;
font-size: .875rem;
color: var(--doc-ink);
}
.doc-input,
.doc-select,
.doc-textarea {
width: 100%;
box-sizing: border-box;
border: 1px solid #d4d4d8;
border-radius: .75rem;
padding: .75rem .875rem;
background: #ffffff;
color: #18181b;
font: inherit;
box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.doc-input:focus,
.doc-select:focus,
.doc-textarea:focus {
outline: 2px solid rgba(37, 99, 235, .24);
border-color: #2563eb;
}
html.dark .doc-input,
html.dark .doc-select,
html.dark .doc-textarea {
background: #09090b;
color: #f4f4f5;
border-color: #3f3f46;
}
.doc-textarea {
min-height: 360px;
line-height: 1.6;
resize: vertical;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.doc-editor {
border: 1px solid #d4d4d8;
border-radius: 1rem;
overflow: hidden;
background: #ffffff;
}
html.dark .doc-editor {
background: #09090b;
border-color: #3f3f46;
}
.doc-editor .doc-textarea {
border: 0;
border-radius: 0;
min-height: 420px;
}
.doc-editor-toolbar {
display: flex;
flex-wrap: wrap;
gap: .375rem;
padding: .625rem;
background: #f4f4f5;
border-bottom: 1px solid var(--doc-line);
}
html.dark .doc-editor-toolbar {
background: #18181b;
}
.doc-editor-toolbar button {
border: 1px solid #d4d4d8;
background: #ffffff;
color: #18181b;
border-radius: .625rem;
padding: .45rem .625rem;
font-weight: 800;
cursor: pointer;
}
html.dark .doc-editor-toolbar button {
border-color: #3f3f46;
background: #09090b;
color: #f4f4f5;
}
.doc-editor-toolbar button:hover,
.doc-editor-toolbar button:focus {
border-color: #2563eb;
outline: 2px solid rgba(37, 99, 235, .20);
}
.editor-help {
padding: 0 .875rem .75rem;
margin: -.25rem 0 0;
font-size: .8125rem;
}
.doc-error {
color: #dc2626;
font-size: .8125rem;
margin-top: .375rem;
}
.doc-alert {
border-radius: 1rem;
padding: .875rem 1rem;
background: #ecfdf5;
color: #065f46;
border: 1px solid #a7f3d0;
font-size: .875rem;
font-weight: 700;
}
html.dark .doc-alert {
background: #022c22;
color: #a7f3d0;
border-color: #065f46;
}
.doc-warning {
border-radius: 1rem;
padding: .875rem 1rem;
background: #fffbeb;
color: #92400e;
border: 1px solid #fcd34d;
font-size: .875rem;
}
html.dark .doc-warning {
background: #451a03;
color: #fef3c7;
border-color: #92400e;
}
.doc-filter {
display: grid;
grid-template-columns: 1fr 180px 220px auto;
gap: .75rem;
margin-bottom: 1.125rem;
}
.doc-content {
line-height: 1.75;
font-size: 1rem;
}
.doc-content h1,
.doc-content h2,
.doc-content h3 {
line-height: 1.2;
letter-spacing: -.025em;
margin: 1.4em 0 .55em;
}
.doc-content h1 { font-size: 2rem; }
.doc-content h2 { font-size: 1.55rem; border-bottom: 1px solid var(--doc-line); padding-bottom: .35rem; }
.doc-content h3 { font-size: 1.25rem; }
.doc-content p, .doc-content ul, .doc-content ol, .doc-content blockquote, .doc-content pre { margin: 0 0 1rem; }
.doc-content code { background: #f1f5f9; border-radius: 7px; padding: .14rem .32rem; font-size: .92em; }
.doc-content pre { overflow-x: auto; background: #0f172a; color: #e2e8f0; border-radius: 16px; padding: 16px; }
.doc-content p,
.doc-content ul,
.doc-content ol,
.doc-content blockquote,
.doc-content pre { margin: 0 0 1rem; }
.doc-content code { background: #f1f5f9; border-radius: .4375rem; padding: .14rem .32rem; font-size: .92em; }
html.dark .doc-content code { background: #1e293b; color: #e2e8f0; }
.doc-content pre { overflow-x: auto; background: #0f172a; color: #e2e8f0; border-radius: 1rem; padding: 1rem; }
.doc-content pre code { background: transparent; color: inherit; padding: 0; }
.doc-content blockquote { border-left: 4px solid var(--doc-brand); padding-left: 16px; color: var(--doc-muted); }
.doc-content blockquote { border-left: 4px solid #2563eb; padding-left: 1rem; color: var(--doc-muted); }
.doc-content table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.doc-content th, .doc-content td { border: 1px solid var(--doc-line); padding: 10px 12px; text-align: left; }
.doc-content th,
.doc-content td { border: 1px solid var(--doc-line); padding: .625rem .75rem; text-align: left; }
.doc-muted { color: var(--doc-muted); }
.doc-link { color: var(--doc-brand-dark); font-weight: 800; text-decoration: none; }
.doc-attachment-list { display: grid; gap: 10px; }
.doc-attachment-item { display: flex; justify-content: space-between; align-items: center; gap: 14px; border: 1px solid var(--doc-line); border-radius: 14px; padding: 12px 14px; background: #fff; }
.doc-attachment-list {
display: grid;
gap: .625rem;
}
.doc-attachment-item {
display: flex;
justify-content: space-between;
align-items: center;
gap: .875rem;
border: 1px solid var(--doc-line);
border-radius: .875rem;
padding: .75rem .875rem;
background: var(--doc-panel);
}
@media (min-width: 1024px) {
.doc-hero-row {
flex-direction: row;
align-items: center;
justify-content: space-between;
}
}
@media (max-width: 860px) {
.doc-hero { grid-template-columns: 1fr; }
.doc-grid.stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.doc-filter, .doc-form-grid { grid-template-columns: 1fr; }
.doc-filter,
.doc-form-grid { grid-template-columns: 1fr; }
.doc-table { display: block; overflow-x: auto; }
}
@media (max-width: 560px) {
.doc-shell { padding: 16px 12px 36px; }
.doc-hero { padding: 22px; border-radius: 22px; }
.doc-grid.stats { grid-template-columns: 1fr; }
.doc-hero { padding: 1.375rem; border-radius: 1.375rem; }
}
</style>
</head>