@prosophia/lab-classic 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,213 @@
1
+ /* PublicationDetailPage.module.css - Verdant Edition */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 80px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .container {
9
+ max-width: 900px;
10
+ margin: 0 auto;
11
+ padding: var(--space-3xl, 6rem) var(--space-xl, 3rem);
12
+ }
13
+
14
+ /* Main Card - Glass morphism */
15
+ .card {
16
+ padding: var(--space-2xl, 4rem);
17
+ border-radius: var(--radius-2xl, 24px);
18
+ backdrop-filter: blur(20px) saturate(180%);
19
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
20
+ }
21
+
22
+ :global(body:not(.dark-mode)) .card,
23
+ :global(.light-mode) .card {
24
+ background: rgba(255, 255, 255, 0.7);
25
+ border: 1px solid rgba(21, 48, 33, 0.08);
26
+ box-shadow: 0 8px 32px rgba(10, 24, 16, 0.08);
27
+ }
28
+
29
+ :global(.dark-mode) .card,
30
+ :global(.dark) .card {
31
+ background: var(--dark-bg-tertiary);
32
+ border: 1px solid rgba(var(--accent-primary-rgb, 139, 218, 163), 0.12);
33
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
34
+ }
35
+
36
+ @media (max-width: 768px) {
37
+ .card {
38
+ padding: var(--space-xl, 3rem);
39
+ }
40
+ }
41
+
42
+ /* Header */
43
+ .header {
44
+ padding-bottom: var(--space-xl, 3rem);
45
+ margin-bottom: var(--space-xl, 3rem);
46
+ text-align: center;
47
+ border-bottom: 1px solid;
48
+ }
49
+
50
+ :global(body:not(.dark-mode)) .header,
51
+ :global(.light-mode) .header {
52
+ border-bottom-color: rgba(21, 48, 33, 0.1);
53
+ }
54
+
55
+ :global(.dark-mode) .header,
56
+ :global(.dark) .header {
57
+ border-bottom-color: rgba(139, 218, 163, 0.1);
58
+ }
59
+
60
+ .title {
61
+ font-size: clamp(1.5rem, 3vw, 2rem);
62
+ font-weight: 600;
63
+ line-height: 1.3;
64
+ letter-spacing: -0.01em;
65
+ margin: 0 0 var(--space-md, 1.5rem) 0;
66
+ }
67
+
68
+ .metaRow {
69
+ display: flex;
70
+ justify-content: center;
71
+ align-items: center;
72
+ flex-wrap: wrap;
73
+ gap: var(--space-sm, 1rem);
74
+ margin-top: var(--space-md, 1.5rem);
75
+ font-size: 0.875rem;
76
+ }
77
+
78
+ :global(body:not(.dark-mode)) .metaRow,
79
+ :global(.light-mode) .metaRow {
80
+ color: var(--light-text-muted, #7F878B);
81
+ }
82
+
83
+ :global(.dark-mode) .metaRow,
84
+ :global(.dark) .metaRow {
85
+ color: var(--dark-text-muted, #5C6366);
86
+ }
87
+
88
+ /* Abstract Section */
89
+ .abstractSection {
90
+ margin: var(--space-xl, 3rem) 0;
91
+ padding: var(--space-lg, 2rem);
92
+ border-radius: var(--radius-lg, 16px);
93
+ position: relative;
94
+ }
95
+
96
+ :global(body:not(.dark-mode)) .abstractSection,
97
+ :global(.light-mode) .abstractSection {
98
+ background: rgba(42, 104, 71, 0.06);
99
+ border-left: 4px solid var(--accent-tertiary, #5CB87A);
100
+ }
101
+
102
+ :global(.dark-mode) .abstractSection,
103
+ :global(.dark) .abstractSection {
104
+ background: rgba(92, 184, 122, 0.08);
105
+ border-left: 4px solid var(--accent-tertiary, #5CB87A);
106
+ }
107
+
108
+ .abstractTitle {
109
+ font-size: 0.875rem;
110
+ font-weight: 600;
111
+ letter-spacing: 0.12em;
112
+ text-transform: uppercase;
113
+ margin: 0 0 var(--space-md, 1.5rem) 0;
114
+ }
115
+
116
+ :global(body:not(.dark-mode)) .abstractTitle,
117
+ :global(.light-mode) .abstractTitle {
118
+ color: var(--accent-secondary, #3A8F62);
119
+ }
120
+
121
+ :global(.dark-mode) .abstractTitle,
122
+ :global(.dark) .abstractTitle {
123
+ color: var(--accent-tertiary, #5CB87A);
124
+ }
125
+
126
+ .abstractText {
127
+ line-height: 1.8;
128
+ font-size: 1rem;
129
+ }
130
+
131
+ :global(body:not(.dark-mode)) .abstractText,
132
+ :global(.light-mode) .abstractText {
133
+ color: var(--light-text-secondary, #153021);
134
+ }
135
+
136
+ :global(.dark-mode) .abstractText,
137
+ :global(.dark) .abstractText {
138
+ color: var(--dark-text-secondary, #8BDAA3);
139
+ }
140
+
141
+ /* Footer */
142
+ .footer {
143
+ margin-top: var(--space-xl, 3rem);
144
+ padding-top: var(--space-lg, 2rem);
145
+ border-top: 1px solid;
146
+ display: flex;
147
+ flex-wrap: wrap;
148
+ gap: var(--space-md, 1.5rem);
149
+ align-items: center;
150
+ }
151
+
152
+ :global(body:not(.dark-mode)) .footer,
153
+ :global(.light-mode) .footer {
154
+ border-top-color: rgba(21, 48, 33, 0.1);
155
+ }
156
+
157
+ :global(.dark-mode) .footer,
158
+ :global(.dark) .footer {
159
+ border-top-color: rgba(139, 218, 163, 0.1);
160
+ }
161
+
162
+ /* Action Button - Gradient */
163
+ .actionButton {
164
+ display: inline-flex;
165
+ align-items: center;
166
+ gap: 0.5rem;
167
+ padding: 0.875rem 1.75rem;
168
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
169
+ color: white;
170
+ border-radius: var(--radius-md, 12px);
171
+ font-weight: 500;
172
+ text-decoration: none;
173
+ transition: all var(--transition-base);
174
+ box-shadow: 0 4px 16px rgba(42, 104, 71, 0.3);
175
+ }
176
+
177
+ .actionButton:hover {
178
+ transform: translateY(-2px);
179
+ box-shadow: 0 8px 24px rgba(42, 104, 71, 0.4);
180
+ }
181
+
182
+ /* Back Link */
183
+ .backLink {
184
+ display: inline-flex;
185
+ align-items: center;
186
+ gap: 0.5rem;
187
+ padding: 0.75rem 1.5rem;
188
+ border: 1px solid var(--accent-tertiary, #5CB87A);
189
+ border-radius: var(--radius-md, 12px);
190
+ font-weight: 500;
191
+ font-size: 0.9375rem;
192
+ text-decoration: none;
193
+ transition: all var(--transition-base);
194
+ }
195
+
196
+ :global(body:not(.dark-mode)) .backLink,
197
+ :global(.light-mode) .backLink {
198
+ background: rgba(42, 104, 71, 0.08);
199
+ color: var(--accent-primary, #2A6847);
200
+ }
201
+
202
+ :global(.dark-mode) .backLink,
203
+ :global(.dark) .backLink {
204
+ background: rgba(92, 184, 122, 0.1);
205
+ color: var(--accent-tertiary, #5CB87A);
206
+ }
207
+
208
+ .backLink:hover {
209
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
210
+ color: white;
211
+ transform: translateY(-2px);
212
+ border-color: transparent;
213
+ }
@@ -0,0 +1,181 @@
1
+ /* PublicationsPage.module.css - Verdant Edition */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 80px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .pageContainer {
9
+ max-width: 1400px;
10
+ margin: 0 auto;
11
+ padding: 0 var(--space-xl, 3rem);
12
+ }
13
+
14
+ /* Page Header */
15
+ .pageHeader {
16
+ text-align: center;
17
+ padding: var(--space-3xl, 6rem) 0;
18
+ margin-bottom: var(--space-2xl, 4rem);
19
+ }
20
+
21
+ .title {
22
+ font-size: clamp(2rem, 4vw, 3rem);
23
+ font-weight: 500;
24
+ line-height: 1.2;
25
+ letter-spacing: -0.01em;
26
+ margin: 0 0 var(--space-md, 1.5rem) 0;
27
+ }
28
+
29
+ .subtitle {
30
+ font-size: 1.125rem;
31
+ line-height: 1.7;
32
+ max-width: 800px;
33
+ margin: 0 auto;
34
+ }
35
+
36
+ :global(body:not(.dark-mode)) .subtitle,
37
+ :global(.light-mode) .subtitle {
38
+ color: var(--light-text-muted, #7F878B);
39
+ }
40
+
41
+ :global(.dark-mode) .subtitle,
42
+ :global(.dark) .subtitle {
43
+ color: var(--dark-text-muted, #5C6366);
44
+ }
45
+
46
+ .main {
47
+ padding-bottom: var(--space-3xl, 6rem);
48
+ }
49
+
50
+ .publicationsList {
51
+ max-width: 950px;
52
+ margin: 0 auto;
53
+ display: flex;
54
+ flex-direction: column;
55
+ gap: var(--space-2xl, 4rem);
56
+ }
57
+
58
+ /* Year Section */
59
+ .yearSection {
60
+ width: 100%;
61
+ }
62
+
63
+ .yearHeader {
64
+ font-size: 0.875rem;
65
+ font-weight: 600;
66
+ letter-spacing: 0.12em;
67
+ text-transform: uppercase;
68
+ margin-bottom: var(--space-lg, 2rem);
69
+ padding-left: var(--space-md, 1.5rem);
70
+ position: relative;
71
+ }
72
+
73
+ :global(body:not(.dark-mode)) .yearHeader,
74
+ :global(.light-mode) .yearHeader {
75
+ color: var(--accent-secondary, #3A8F62);
76
+ }
77
+
78
+ :global(.dark-mode) .yearHeader,
79
+ :global(.dark) .yearHeader {
80
+ color: var(--dark-text-secondary, #8BDAA3);
81
+ }
82
+
83
+ .yearHeader::before {
84
+ content: '';
85
+ position: absolute;
86
+ left: 0;
87
+ top: 0;
88
+ width: 4px;
89
+ height: 100%;
90
+ background: linear-gradient(180deg, var(--accent-tertiary, #5CB87A), var(--accent-gold, #D4A574));
91
+ border-radius: 2px;
92
+ }
93
+
94
+ .publicationsGrid {
95
+ display: flex;
96
+ flex-direction: column;
97
+ gap: var(--space-md, 1.5rem);
98
+ }
99
+
100
+ /* Verdant Publication Item - Glass with translateX hover */
101
+ .publicationLink {
102
+ display: block;
103
+ text-decoration: none;
104
+ color: inherit;
105
+ padding: var(--space-lg, 2rem);
106
+ border-radius: var(--radius-lg, 16px);
107
+ backdrop-filter: blur(20px) saturate(180%);
108
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
109
+ transition: all var(--transition-base);
110
+ }
111
+
112
+ :global(body:not(.dark-mode)) .publicationLink,
113
+ :global(.light-mode) .publicationLink {
114
+ background: rgba(255, 255, 255, 0.6);
115
+ border: 1px solid rgba(21, 48, 33, 0.08);
116
+ }
117
+
118
+ :global(.dark-mode) .publicationLink,
119
+ :global(.dark) .publicationLink {
120
+ background: var(--dark-bg-tertiary);
121
+ border: 1px solid rgba(var(--accent-primary-rgb, 139, 218, 163), 0.08);
122
+ }
123
+
124
+ .publicationLink:hover {
125
+ transform: translateX(8px);
126
+ }
127
+
128
+ :global(body:not(.dark-mode)) .publicationLink:hover,
129
+ :global(.light-mode) .publicationLink:hover {
130
+ background: rgba(255, 255, 255, 0.9);
131
+ border-color: rgba(42, 104, 71, 0.15);
132
+ }
133
+
134
+ :global(.dark-mode) .publicationLink:hover,
135
+ :global(.dark) .publicationLink:hover {
136
+ background: var(--dark-bg-secondary);
137
+ border-color: rgba(var(--accent-primary-rgb, 139, 218, 163), 0.15);
138
+ }
139
+
140
+ .publicationTitle {
141
+ font-size: 1.125rem;
142
+ font-weight: 600;
143
+ line-height: 1.4;
144
+ margin: 0 0 var(--space-xs, 0.5rem) 0;
145
+ transition: color var(--transition-base);
146
+ }
147
+
148
+ .publicationLink:hover .publicationTitle {
149
+ color: var(--accent-tertiary, #5CB87A);
150
+ }
151
+
152
+ .authors {
153
+ font-size: 0.875rem;
154
+ margin: 0 0 var(--space-xs, 0.5rem) 0;
155
+ }
156
+
157
+ :global(body:not(.dark-mode)) .authors,
158
+ :global(.light-mode) .authors {
159
+ color: var(--light-text-muted, #7F878B);
160
+ }
161
+
162
+ :global(.dark-mode) .authors,
163
+ :global(.dark) .authors {
164
+ color: var(--dark-text-muted, #5C6366);
165
+ }
166
+
167
+ .journal {
168
+ font-size: 0.875rem;
169
+ font-style: italic;
170
+ margin: 0;
171
+ }
172
+
173
+ :global(body:not(.dark-mode)) .journal,
174
+ :global(.light-mode) .journal {
175
+ color: var(--light-text-muted, #7F878B);
176
+ }
177
+
178
+ :global(.dark-mode) .journal,
179
+ :global(.dark) .journal {
180
+ color: var(--dark-text-muted, #5C6366);
181
+ }
@@ -0,0 +1,173 @@
1
+ /* ResearchPage.module.css - Verdant Edition */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 80px);
5
+ min-height: 100vh;
6
+ }
7
+
8
+ .pageContainer {
9
+ max-width: 1400px;
10
+ margin: 0 auto;
11
+ padding: 0 var(--space-xl, 3rem);
12
+ }
13
+
14
+ /* Page Header */
15
+ .pageHeader {
16
+ text-align: center;
17
+ padding: var(--space-3xl, 6rem) 0;
18
+ margin-bottom: var(--space-2xl, 4rem);
19
+ }
20
+
21
+ .title {
22
+ font-size: clamp(2rem, 4vw, 3rem);
23
+ font-weight: 500;
24
+ line-height: 1.2;
25
+ letter-spacing: -0.01em;
26
+ margin: 0 0 var(--space-md, 1.5rem) 0;
27
+ }
28
+
29
+ .subtitle {
30
+ font-size: 1.125rem;
31
+ line-height: 1.7;
32
+ max-width: 800px;
33
+ margin: 0 auto;
34
+ }
35
+
36
+ :global(body:not(.dark-mode)) .subtitle,
37
+ :global(.light-mode) .subtitle {
38
+ color: var(--light-text-muted, #7F878B);
39
+ }
40
+
41
+ :global(.dark-mode) .subtitle,
42
+ :global(.dark) .subtitle {
43
+ color: var(--dark-text-muted, #5C6366);
44
+ }
45
+
46
+ .main {
47
+ padding-bottom: var(--space-3xl, 6rem);
48
+ }
49
+
50
+ .content {
51
+ max-width: 900px;
52
+ margin: 0 auto;
53
+ font-family: var(--font-body);
54
+ }
55
+
56
+ /* Content styling */
57
+ .content :global(p) {
58
+ margin: 0 0 var(--space-lg, 2rem) 0;
59
+ line-height: 1.8;
60
+ font-size: 1.0625rem;
61
+ }
62
+
63
+ :global(body:not(.dark-mode)) .content :global(p),
64
+ :global(.light-mode) .content :global(p) {
65
+ color: var(--light-text-secondary, #153021);
66
+ }
67
+
68
+ :global(.dark-mode) .content :global(p),
69
+ :global(.dark) .content :global(p) {
70
+ color: var(--dark-text-secondary, #8BDAA3);
71
+ }
72
+
73
+ .content :global(p:first-of-type) {
74
+ font-size: 1.25rem;
75
+ font-weight: 500;
76
+ margin-bottom: var(--space-xl, 3rem);
77
+ padding-left: var(--space-md, 1.5rem);
78
+ position: relative;
79
+ }
80
+
81
+ .content :global(p:first-of-type)::before {
82
+ content: '';
83
+ position: absolute;
84
+ left: 0;
85
+ top: 0;
86
+ width: 4px;
87
+ height: 100%;
88
+ background: linear-gradient(180deg, var(--accent-tertiary, #5CB87A), var(--accent-gold, #D4A574));
89
+ border-radius: 2px;
90
+ }
91
+
92
+ .content :global(h2) {
93
+ font-family: var(--font-heading);
94
+ font-size: 1.75rem;
95
+ font-weight: 600;
96
+ margin: var(--space-2xl, 4rem) 0 var(--space-lg, 2rem) 0;
97
+ padding-bottom: var(--space-sm, 1rem);
98
+ position: relative;
99
+ }
100
+
101
+ .content :global(h2)::after {
102
+ content: '';
103
+ position: absolute;
104
+ bottom: 0;
105
+ left: 0;
106
+ width: 60px;
107
+ height: 3px;
108
+ background: linear-gradient(90deg, var(--accent-tertiary, #5CB87A), var(--accent-gold, #D4A574));
109
+ border-radius: 2px;
110
+ }
111
+
112
+ .content :global(h3) {
113
+ font-family: var(--font-heading);
114
+ font-size: 1.375rem;
115
+ font-weight: 600;
116
+ margin: var(--space-xl, 3rem) 0 var(--space-md, 1.5rem) 0;
117
+ color: var(--accent-tertiary, #5CB87A);
118
+ }
119
+
120
+ .content :global(ul),
121
+ .content :global(ol) {
122
+ margin: 0 0 var(--space-lg, 2rem) var(--space-xl, 3rem);
123
+ padding: 0;
124
+ }
125
+
126
+ .content :global(li) {
127
+ margin-bottom: var(--space-md, 1.5rem);
128
+ line-height: 1.7;
129
+ }
130
+
131
+ .content :global(a) {
132
+ color: var(--accent-tertiary, #5CB87A);
133
+ text-decoration: none;
134
+ font-weight: 500;
135
+ border-bottom: 1px solid transparent;
136
+ transition: all var(--transition-base);
137
+ }
138
+
139
+ .content :global(a:hover) {
140
+ border-bottom-color: var(--accent-tertiary, #5CB87A);
141
+ }
142
+
143
+ .content :global(blockquote) {
144
+ margin: var(--space-xl, 3rem) 0;
145
+ padding: var(--space-lg, 2rem);
146
+ border-radius: var(--radius-lg, 16px);
147
+ font-style: italic;
148
+ backdrop-filter: blur(20px) saturate(180%);
149
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
150
+ }
151
+
152
+ :global(body:not(.dark-mode)) .content :global(blockquote),
153
+ :global(.light-mode) .content :global(blockquote) {
154
+ background: rgba(42, 104, 71, 0.08);
155
+ border-left: 4px solid var(--accent-tertiary, #5CB87A);
156
+ color: var(--light-text-secondary, #153021);
157
+ }
158
+
159
+ :global(.dark-mode) .content :global(blockquote),
160
+ :global(.dark) .content :global(blockquote) {
161
+ background: rgba(92, 184, 122, 0.1);
162
+ border-left: 4px solid var(--accent-tertiary, #5CB87A);
163
+ color: var(--dark-text-secondary, #8BDAA3);
164
+ }
165
+
166
+ .content :global(img) {
167
+ display: block;
168
+ max-width: 100%;
169
+ height: auto;
170
+ margin: var(--space-2xl, 4rem) 0;
171
+ border-radius: var(--radius-xl, 20px);
172
+ box-shadow: 0 20px 60px rgba(10, 24, 16, 0.15);
173
+ }
@@ -0,0 +1,114 @@
1
+ /* ThemeToggle.module.css - Intuitive sliding toggle */
2
+
3
+ .toggle {
4
+ position: relative;
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ padding: 4px;
9
+ background: transparent;
10
+ border: none;
11
+ cursor: pointer;
12
+ border-radius: var(--radius-full, 9999px);
13
+ transition: transform var(--transition-base, 0.3s ease);
14
+ }
15
+
16
+ .toggle:hover {
17
+ transform: scale(1.05);
18
+ }
19
+
20
+ .toggle:focus-visible {
21
+ outline: 2px solid var(--accent-tertiary);
22
+ outline-offset: 2px;
23
+ }
24
+
25
+ .togglePlaceholder {
26
+ width: 60px;
27
+ height: 32px;
28
+ }
29
+
30
+ .track {
31
+ position: relative;
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: space-between;
35
+ width: 60px;
36
+ height: 32px;
37
+ padding: 0 6px;
38
+ border-radius: var(--radius-full, 9999px);
39
+ transition: all var(--transition-base, 0.3s ease);
40
+ }
41
+
42
+ /* Light mode track */
43
+ :global(body:not(.dark-mode)) .track,
44
+ :global(.light-mode) .track {
45
+ background: rgba(42, 104, 71, 0.12);
46
+ border: 1px solid rgba(21, 48, 33, 0.15);
47
+ }
48
+
49
+ /* Dark mode track */
50
+ :global(.dark-mode) .track,
51
+ :global(.dark) .track {
52
+ background: rgba(139, 218, 163, 0.15);
53
+ border: 1px solid rgba(139, 218, 163, 0.2);
54
+ }
55
+
56
+ .thumb {
57
+ position: absolute;
58
+ top: 3px;
59
+ left: 3px;
60
+ width: 24px;
61
+ height: 24px;
62
+ border-radius: 50%;
63
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
64
+ z-index: 2;
65
+ }
66
+
67
+ /* Light mode thumb */
68
+ :global(body:not(.dark-mode)) .thumb,
69
+ :global(.light-mode) .thumb {
70
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
71
+ }
72
+
73
+ /* Dark mode thumb */
74
+ :global(.dark-mode) .thumb,
75
+ :global(.dark) .thumb {
76
+ background: linear-gradient(135deg, var(--accent-secondary, #3A8F62), var(--accent-tertiary, #5CB87A));
77
+ }
78
+
79
+ .icon {
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ width: 20px;
84
+ height: 20px;
85
+ z-index: 1;
86
+ transition: all var(--transition-base, 0.3s ease);
87
+ opacity: 0.4;
88
+ }
89
+
90
+ .iconActive {
91
+ opacity: 1;
92
+ }
93
+
94
+ /* Light mode icons */
95
+ :global(body:not(.dark-mode)) .sunIcon,
96
+ :global(.light-mode) .sunIcon {
97
+ color: var(--accent-primary, #2A6847);
98
+ }
99
+
100
+ :global(body:not(.dark-mode)) .moonIcon,
101
+ :global(.light-mode) .moonIcon {
102
+ color: var(--light-text-muted, #7F878B);
103
+ }
104
+
105
+ /* Dark mode icons */
106
+ :global(.dark-mode) .sunIcon,
107
+ :global(.dark) .sunIcon {
108
+ color: var(--dark-text-muted, #5C6366);
109
+ }
110
+
111
+ :global(.dark-mode) .moonIcon,
112
+ :global(.dark) .moonIcon {
113
+ color: var(--accent-tertiary, #5CB87A);
114
+ }
@@ -0,0 +1,26 @@
1
+ interface SiteSettings {
2
+ labName?: string;
3
+ labNameAccent?: string;
4
+ labNameDescription?: string;
5
+ footerText?: string;
6
+ showPrivacyPolicy?: boolean;
7
+ privacyPolicyUrl?: string;
8
+ showTerms?: boolean;
9
+ termsUrl?: string;
10
+ }
11
+ interface SiteConfig {
12
+ title: string;
13
+ description: string;
14
+ url?: string;
15
+ }
16
+ interface ThemeConfig {
17
+ primaryColor?: string;
18
+ accentColor?: string;
19
+ }
20
+ interface ProsophiaConfig {
21
+ template?: string;
22
+ site: SiteConfig;
23
+ theme?: ThemeConfig;
24
+ }
25
+
26
+ export type { ProsophiaConfig as P, SiteSettings as S, ThemeConfig as T, SiteConfig as a };