cryogenic22 commited on
Commit
1d9eec8
·
verified ·
1 Parent(s): 32485ad

Create docmap.js

Browse files
Files changed (1) hide show
  1. docmap.js +349 -0
docmap.js ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Enhanced styles for R&D DocMap Catalog */
2
+
3
+ /* Document card enhancements */
4
+ .document-item {
5
+ transition: all 0.3s ease;
6
+ border-left: 4px solid transparent;
7
+ }
8
+
9
+ .document-item:hover {
10
+ transform: translateX(5px);
11
+ background-color: #f8fafc;
12
+ }
13
+
14
+ /* Phase-specific colors */
15
+ .document-item[data-phase="Discovery"] { border-left-color: #3b82f6; }
16
+ .document-item[data-phase="Preclinical"] { border-left-color: #10b981; }
17
+ .document-item[data-phase="Clinical Phase 1"] { border-left-color: #6366f1; }
18
+ .document-item[data-phase="Clinical Phase 2"] { border-left-color: #8b5cf6; }
19
+ .document-item[data-phase="Clinical Phase 3"] { border-left-color: #a855f7; }
20
+ .document-item[data-phase="Clinical (All Phases)"] { border-left-color: #7c3aed; }
21
+ .document-item[data-phase="Regulatory Submission"] { border-left-color: #ec4899; }
22
+ .document-item[data-phase="Post-Marketing"] { border-left-color: #f59e0b; }
23
+ .document-item[data-phase="Pre/Post-Approval"] { border-left-color: #f97316; }
24
+
25
+ /* Enhanced modal styles */
26
+ .details-tabs {
27
+ display: flex;
28
+ border-bottom: 1px solid #e5e7eb;
29
+ margin-bottom: 1rem;
30
+ }
31
+
32
+ .details-tab {
33
+ padding: 0.5rem 1rem;
34
+ cursor: pointer;
35
+ border-bottom: 3px solid transparent;
36
+ font-weight: 500;
37
+ transition: all 0.2s ease;
38
+ }
39
+
40
+ .details-tab.active {
41
+ border-bottom-color: #3b82f6;
42
+ color: #1e40af;
43
+ }
44
+
45
+ .details-tab:hover:not(.active) {
46
+ border-bottom-color: #e5e7eb;
47
+ }
48
+
49
+ .details-content {
50
+ display: none;
51
+ }
52
+
53
+ .details-content.active {
54
+ display: block;
55
+ animation: fadeIn 0.3s ease;
56
+ }
57
+
58
+ @keyframes fadeIn {
59
+ from { opacity: 0; }
60
+ to { opacity: 1; }
61
+ }
62
+
63
+ /* Dependency graph styles */
64
+ .dependency-graph {
65
+ width: 100%;
66
+ height: 400px;
67
+ border: 1px solid #e5e7eb;
68
+ border-radius: 0.375rem;
69
+ overflow: hidden;
70
+ }
71
+
72
+ /* Flow card styles */
73
+ .flow-card {
74
+ cursor: pointer;
75
+ transition: all 0.3s ease;
76
+ border: 1px solid #e5e7eb;
77
+ border-radius: 0.375rem;
78
+ padding: 1rem;
79
+ margin-bottom: 1rem;
80
+ background-color: white;
81
+ }
82
+
83
+ .flow-card:hover {
84
+ transform: translateY(-3px);
85
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
86
+ border-color: #3b82f6;
87
+ }
88
+
89
+ .flow-card.active {
90
+ border-color: #3b82f6;
91
+ background-color: #eff6ff;
92
+ }
93
+
94
+ /* Loading spinner */
95
+ .loading-spinner {
96
+ width: 40px;
97
+ height: 40px;
98
+ margin: 2rem auto;
99
+ border-radius: 50%;
100
+ border: 4px solid #e5e7eb;
101
+ border-top-color: #3b82f6;
102
+ animation: spin 1s linear infinite;
103
+ }
104
+
105
+ @keyframes spin {
106
+ to { transform: rotate(360deg); }
107
+ }
108
+
109
+ /* Enhanced detail card styles for better readability */
110
+ .detail-card {
111
+ background-color: white;
112
+ border-radius: 0.5rem;
113
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
114
+ padding: 1.25rem;
115
+ margin-bottom: 1rem;
116
+ border-left: 4px solid #3b82f6;
117
+ }
118
+
119
+ .detail-card-header {
120
+ display: flex;
121
+ justify-content: space-between;
122
+ margin-bottom: 0.75rem;
123
+ border-bottom: 1px solid #e5e7eb;
124
+ padding-bottom: 0.75rem;
125
+ }
126
+
127
+ .detail-card-title {
128
+ font-size: 1.125rem;
129
+ font-weight: 600;
130
+ color: #1e40af;
131
+ }
132
+
133
+ .detail-card-badge {
134
+ background-color: #eff6ff;
135
+ color: #1e40af;
136
+ padding: 0.25rem 0.5rem;
137
+ border-radius: 9999px;
138
+ font-size: 0.75rem;
139
+ font-weight: 500;
140
+ }
141
+
142
+ .detail-card-section {
143
+ margin-bottom: 0.75rem;
144
+ }
145
+
146
+ .detail-card-label {
147
+ font-weight: 500;
148
+ color: #4b5563;
149
+ margin-bottom: 0.25rem;
150
+ display: block;
151
+ }
152
+
153
+ .detail-card-value {
154
+ background-color: #f9fafb;
155
+ padding: 0.5rem;
156
+ border-radius: 0.25rem;
157
+ font-size: 0.875rem;
158
+ color: #1f2937;
159
+ }
160
+
161
+ /* Data lineage view styles */
162
+ .lineage-container {
163
+ padding: 1.5rem;
164
+ background-color: white;
165
+ border-radius: 0.5rem;
166
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
167
+ }
168
+
169
+ .lineage-filters {
170
+ display: flex;
171
+ gap: 1rem;
172
+ margin-bottom: 1.5rem;
173
+ flex-wrap: wrap;
174
+ }
175
+
176
+ .lineage-filters select {
177
+ padding: 0.5rem;
178
+ border-radius: 0.25rem;
179
+ border: 1px solid #d1d5db;
180
+ background-color: white;
181
+ min-width: 200px;
182
+ }
183
+
184
+ .lineage-graph {
185
+ height: 600px;
186
+ border: 1px solid #e5e7eb;
187
+ border-radius: 0.375rem;
188
+ overflow: hidden;
189
+ }
190
+
191
+ /* Template card styles */
192
+ .template-card {
193
+ border: 1px solid #e5e7eb;
194
+ border-radius: 0.5rem;
195
+ padding: 1rem;
196
+ background-color: white;
197
+ transition: all 0.3s ease;
198
+ margin-bottom: 1rem;
199
+ }
200
+
201
+ .template-card:hover {
202
+ transform: translateY(-3px);
203
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
204
+ }
205
+
206
+ .template-header {
207
+ display: flex;
208
+ justify-content: space-between;
209
+ align-items: center;
210
+ margin-bottom: 0.75rem;
211
+ border-bottom: 1px solid #e5e7eb;
212
+ padding-bottom: 0.75rem;
213
+ }
214
+
215
+ .template-header h3 {
216
+ font-size: 1rem;
217
+ font-weight: 600;
218
+ color: #1e3a8a;
219
+ margin: 0;
220
+ }
221
+
222
+ .template-badge {
223
+ background-color: #eff6ff;
224
+ color: #1e40af;
225
+ font-size: 0.75rem;
226
+ font-weight: 500;
227
+ padding: 0.25rem 0.5rem;
228
+ border-radius: 9999px;
229
+ }
230
+
231
+ .template-description {
232
+ font-size: 0.875rem;
233
+ color: #4b5563;
234
+ margin-bottom: 0.75rem;
235
+ }
236
+
237
+ .template-sections {
238
+ background-color: #f9fafb;
239
+ border-radius: 0.375rem;
240
+ padding: 0.75rem;
241
+ margin-bottom: 0.75rem;
242
+ }
243
+
244
+ .template-section {
245
+ margin-bottom: 0.5rem;
246
+ padding-bottom: 0.5rem;
247
+ border-bottom: 1px dashed #e5e7eb;
248
+ }
249
+
250
+ .template-section:last-child {
251
+ margin-bottom: 0;
252
+ padding-bottom: 0;
253
+ border-bottom: none;
254
+ }
255
+
256
+ .template-section-title {
257
+ font-weight: 500;
258
+ color: #1f2937;
259
+ font-size: 0.875rem;
260
+ }
261
+
262
+ .template-section-description {
263
+ font-size: 0.75rem;
264
+ color: #6b7280;
265
+ margin-top: 0.25rem;
266
+ }
267
+
268
+ .template-metadata {
269
+ display: flex;
270
+ flex-wrap: wrap;
271
+ gap: 0.5rem;
272
+ }
273
+
274
+ .template-metadata-item {
275
+ display: flex;
276
+ align-items: center;
277
+ font-size: 0.75rem;
278
+ color: #6b7280;
279
+ padding: 0.25rem 0.5rem;
280
+ background-color: #f3f4f6;
281
+ border-radius: 0.25rem;
282
+ }
283
+
284
+ .template-metadata-item i {
285
+ margin-right: 0.375rem;
286
+ color: #4b5563;
287
+ }
288
+
289
+ /* Section lineage specific styles */
290
+ .section-card {
291
+ border: 1px solid #e5e7eb;
292
+ border-radius: 0.375rem;
293
+ padding: 0.75rem;
294
+ margin-bottom: 0.75rem;
295
+ background-color: white;
296
+ transition: all 0.2s ease;
297
+ }
298
+
299
+ .section-card:hover {
300
+ background-color: #f9fafb;
301
+ cursor: pointer;
302
+ }
303
+
304
+ .section-card-title {
305
+ font-weight: 600;
306
+ color: #1e40af;
307
+ margin-bottom: 0.25rem;
308
+ }
309
+
310
+ .section-card-document {
311
+ font-size: 0.75rem;
312
+ color: #6b7280;
313
+ }
314
+
315
+ .section-input {
316
+ font-size: 0.75rem;
317
+ color: #4b5563;
318
+ margin-top: 0.25rem;
319
+ }
320
+
321
+ .section-input-name {
322
+ font-weight: 500;
323
+ }
324
+
325
+ /* Responsive adjustments */
326
+ @media (max-width: 768px) {
327
+ .details-tabs {
328
+ overflow-x: auto;
329
+ white-space: nowrap;
330
+ padding-bottom: 0.5rem;
331
+ }
332
+
333
+ .lineage-filters {
334
+ flex-direction: column;
335
+ }
336
+
337
+ .lineage-filters select {
338
+ width: 100%;
339
+ }
340
+
341
+ .detail-card-header {
342
+ flex-direction: column;
343
+ align-items: flex-start;
344
+ }
345
+
346
+ .detail-card-badge {
347
+ margin-top: 0.5rem;
348
+ }
349
+ }