openxiangda-cli 2.0.0-alpha.56 → 2.0.0-alpha.58

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.
Files changed (36) hide show
  1. package/dist/commands/create.d.ts.map +1 -1
  2. package/dist/commands/create.js +13 -5
  3. package/dist/commands/create.js.map +1 -1
  4. package/dist/create-workspace.d.ts +6 -1
  5. package/dist/create-workspace.d.ts.map +1 -1
  6. package/dist/create-workspace.js +12 -9
  7. package/dist/create-workspace.js.map +1 -1
  8. package/package.json +4 -4
  9. package/template/.dockerignore +11 -0
  10. package/template/README.md +3 -1
  11. package/template/apps/server/package.json +1 -1
  12. package/template/apps/web/e2e/instruments.spec.ts +912 -9
  13. package/template/apps/web/package.json +1 -1
  14. package/template/apps/web/scripts/check.mjs +2 -2
  15. package/template/apps/web/src/AuthoritativeSelector.tsx +371 -0
  16. package/template/apps/web/src/CollegePage.tsx +181 -0
  17. package/template/apps/web/src/InstrumentDetailPage.tsx +94 -20
  18. package/template/apps/web/src/InstrumentForm.tsx +450 -88
  19. package/template/apps/web/src/InstrumentFormPage.tsx +49 -9
  20. package/template/apps/web/src/InstrumentListPage.tsx +30 -35
  21. package/template/apps/web/src/Shell.tsx +229 -41
  22. package/template/apps/web/src/components/platform-fields/PlatformDirectoryPicker.tsx +698 -0
  23. package/template/apps/web/src/data-provider.ts +1 -1
  24. package/template/apps/web/src/fields.ts +17 -6
  25. package/template/apps/web/src/instrument.ts +1 -1
  26. package/template/apps/web/src/main.tsx +16 -1
  27. package/template/apps/web/src/platform-client.ts +213 -2
  28. package/template/apps/web/src/runtime.tsx +4 -2
  29. package/template/apps/web/src/styles.css +869 -29
  30. package/template/apps/web/test/contracts.test.ts +369 -10
  31. package/template/openxiangda.config.ts +24 -5
  32. package/template/package.json +3 -3
  33. package/template/packages/contracts/src/generated.ts +22 -0
  34. package/template/platform/data/colleges.ts +21 -0
  35. package/template/platform/data/instruments.ts +1 -1
  36. package/template/scripts/verify-template-budget.mjs +1 -1
@@ -3,82 +3,922 @@ body,
3
3
  #root {
4
4
  min-height: 100%;
5
5
  margin: 0;
6
- background: #f5f7fa;
6
+ background: #f3f7fd;
7
7
  }
8
+
9
+ body {
10
+ color: #172033;
11
+ font-family:
12
+ Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
13
+ "Microsoft YaHei", sans-serif;
14
+ }
15
+
8
16
  * {
9
17
  box-sizing: border-box;
10
18
  }
11
- .oxa-loading {
19
+
20
+ .oxa-loading,
21
+ .oxa-page-loading {
12
22
  display: grid;
13
- min-height: 70vh;
23
+ min-height: 60vh;
14
24
  place-items: center;
15
25
  }
16
- .oxa-shell {
26
+
27
+ .oxa-app-layout {
17
28
  min-height: 100vh;
29
+ background: #f3f7fd;
30
+ }
31
+
32
+ .oxa-sider {
33
+ position: sticky !important;
34
+ top: 0;
35
+ z-index: 20;
36
+ height: 100vh;
37
+ border-right: 1px solid #e5eaf2;
38
+ background: #fff !important;
39
+ box-shadow: none;
40
+ }
41
+
42
+ .oxa-sider .ant-layout-sider-children {
43
+ display: flex;
44
+ flex-direction: column;
45
+ min-height: 100%;
46
+ }
47
+
48
+ .oxa-brand {
49
+ display: flex;
50
+ min-height: 104px;
51
+ align-items: center;
52
+ gap: 14px;
53
+ padding: 20px 22px;
54
+ }
55
+
56
+ .oxa-brand-mark {
57
+ position: relative;
58
+ width: 38px;
59
+ min-width: 38px;
60
+ height: 44px;
61
+ }
62
+
63
+ .oxa-brand-mark::before,
64
+ .oxa-brand-mark::after {
65
+ position: absolute;
66
+ bottom: 2px;
67
+ width: 10px;
68
+ height: 42px;
69
+ border-radius: 3px 3px 1px 1px;
70
+ background: linear-gradient(180deg, #1f78ff, #315eea);
71
+ content: "";
72
+ transform-origin: bottom;
73
+ }
74
+
75
+ .oxa-brand-mark::before {
76
+ left: 6px;
77
+ transform: rotate(27deg);
78
+ }
79
+
80
+ .oxa-brand-mark::after {
81
+ right: 6px;
82
+ transform: rotate(-27deg);
83
+ }
84
+
85
+ .oxa-brand-mark span {
86
+ position: absolute;
87
+ z-index: 1;
88
+ right: 5px;
89
+ bottom: 3px;
90
+ width: 15px;
91
+ height: 9px;
92
+ background: #fff;
93
+ transform: skewX(-27deg);
18
94
  }
19
- .oxa-header {
95
+
96
+ .oxa-brand-copy {
97
+ display: grid;
98
+ min-width: 0;
99
+ gap: 5px;
100
+ }
101
+
102
+ .oxa-brand-copy strong {
103
+ overflow: hidden;
104
+ color: #101828;
105
+ font-size: 19px;
106
+ line-height: 1.2;
107
+ text-overflow: ellipsis;
108
+ white-space: nowrap;
109
+ }
110
+
111
+ .oxa-brand-copy span {
112
+ overflow: hidden;
113
+ color: #667792;
114
+ font-size: 13px;
115
+ text-overflow: ellipsis;
116
+ white-space: nowrap;
117
+ }
118
+
119
+ .oxa-menu {
120
+ flex: 1;
121
+ overflow-y: auto;
122
+ border-inline-end: 0 !important;
123
+ background: transparent !important;
124
+ padding: 6px 12px 80px;
125
+ }
126
+
127
+ .oxa-menu .ant-menu-submenu-title,
128
+ .oxa-menu .ant-menu-item {
129
+ min-height: 44px;
130
+ margin-inline: 0;
131
+ margin-block: 4px;
132
+ color: #47566f;
133
+ font-weight: 600;
134
+ }
135
+
136
+ .oxa-menu .ant-menu-submenu .ant-menu-item {
137
+ font-weight: 500;
138
+ }
139
+
140
+ .oxa-menu .ant-menu-item-selected {
141
+ color: #1677ff;
142
+ background: #eaf3ff !important;
143
+ }
144
+
145
+ .oxa-sider-footer {
146
+ position: absolute;
147
+ right: 12px;
148
+ bottom: 16px;
149
+ left: 12px;
150
+ border-top: 1px solid #edf0f5;
151
+ background: #fff;
152
+ padding-top: 12px;
153
+ }
154
+
155
+ .oxa-sider-footer .ant-btn {
156
+ min-height: 42px;
157
+ justify-content: flex-start;
158
+ color: #52627a;
159
+ font-weight: 600;
160
+ }
161
+
162
+ .oxa-workspace {
163
+ min-width: 0;
164
+ background: #f3f7fd;
165
+ }
166
+
167
+ .oxa-topbar {
20
168
  position: sticky;
21
169
  top: 0;
22
- z-index: 10;
23
- min-height: 56px;
170
+ z-index: 15;
24
171
  display: flex;
172
+ height: 92px;
25
173
  align-items: center;
26
174
  justify-content: space-between;
27
- gap: 16px;
28
- padding: 10px 24px;
29
- background: #102a43;
30
- color: white;
31
- box-shadow: 0 2px 8px #0002;
175
+ border-bottom: 1px solid #edf0f5;
176
+ background: #fff !important;
177
+ padding: 14px 28px !important;
178
+ line-height: normal;
32
179
  }
33
- .oxa-header-roles {
34
- color: #cbd5e1;
180
+
181
+ .oxa-topbar-page {
182
+ display: grid;
183
+ gap: 8px;
35
184
  }
185
+
186
+ .oxa-topbar-page .ant-breadcrumb {
187
+ color: #64748b;
188
+ font-weight: 500;
189
+ }
190
+
191
+ .oxa-topbar-page .ant-typography {
192
+ margin: 0;
193
+ color: #101828;
194
+ font-size: 22px;
195
+ }
196
+
197
+ .oxa-current-user {
198
+ min-width: 180px;
199
+ justify-content: flex-end;
200
+ }
201
+
202
+ .oxa-current-user-avatar {
203
+ background: linear-gradient(135deg, #2868f0, #2ea8f2);
204
+ }
205
+
206
+ .oxa-current-user-copy {
207
+ display: grid;
208
+ gap: 4px;
209
+ }
210
+
211
+ .oxa-current-user-copy strong {
212
+ color: #101828;
213
+ font-size: 15px;
214
+ }
215
+
216
+ .oxa-current-user-copy span {
217
+ color: #75839a;
218
+ font-size: 12px;
219
+ }
220
+
221
+ .oxa-current-user-chevron {
222
+ color: #65748a;
223
+ font-size: 12px;
224
+ }
225
+
226
+ .oxa-content {
227
+ min-width: 0;
228
+ background: #f3f7fd;
229
+ }
230
+
36
231
  .oxa-main {
232
+ width: 100%;
37
233
  max-width: 1680px;
38
- margin: auto;
39
- padding: 20px 24px 40px;
234
+ min-height: calc(100vh - 92px);
235
+ margin: 0 auto;
236
+ padding: 24px 28px 48px;
40
237
  }
238
+
41
239
  .oxa-title {
42
240
  margin: 0;
43
- font-size: 20px;
241
+ color: #172033;
242
+ font-size: 19px;
44
243
  }
244
+
45
245
  .oxa-muted {
46
- color: #667085;
246
+ color: #7b879b;
47
247
  }
248
+
48
249
  .oxa-page-heading {
49
- width: 100%;
50
250
  display: flex;
51
- justify-content: space-between;
251
+ width: 100%;
52
252
  align-items: center;
253
+ justify-content: space-between;
254
+ gap: 16px;
255
+ margin-bottom: 18px;
256
+ }
257
+
258
+ .oxa-list-card,
259
+ .oxa-section-card,
260
+ .oxa-detail-hero,
261
+ .oxa-edit-hero {
262
+ border-color: #dfe6ef;
263
+ box-shadow: 0 1px 3px rgb(28 44 72 / 5%);
264
+ }
265
+
266
+ .oxa-list-card > .ant-card-body {
267
+ padding: 22px;
268
+ }
269
+
270
+ .oxa-filter-grid {
271
+ display: grid;
272
+ grid-template-columns: repeat(4, minmax(170px, 1fr));
53
273
  gap: 12px;
54
- margin-bottom: 16px;
274
+ border: 1px solid #e5eaf1;
275
+ border-radius: 8px;
276
+ background: #fbfcfe;
277
+ padding: 16px;
55
278
  }
279
+
280
+ .oxa-list-card .ant-table-wrapper {
281
+ border: 1px solid #e5eaf1;
282
+ border-radius: 8px;
283
+ overflow: hidden;
284
+ }
285
+
286
+ .oxa-list-card .ant-table-thead > tr > th {
287
+ background: #fafbfd;
288
+ color: #27364d;
289
+ font-weight: 600;
290
+ }
291
+
56
292
  .oxa-sections {
57
293
  display: grid;
58
294
  gap: 16px;
59
295
  }
296
+
297
+ .oxa-instrument-form {
298
+ display: grid;
299
+ gap: 16px;
300
+ }
301
+
302
+ .oxa-section-card .ant-card-head {
303
+ min-height: 48px;
304
+ padding-inline: 18px;
305
+ }
306
+
307
+ .oxa-section-card .ant-card-body {
308
+ padding: 18px;
309
+ }
310
+
60
311
  .oxa-grid {
61
312
  display: grid;
62
- grid-template-columns: repeat(2, minmax(0, 1fr));
63
- gap: 0 20px;
313
+ grid-template-columns: repeat(3, minmax(0, 1fr));
314
+ column-gap: 20px;
64
315
  }
316
+
317
+ .oxa-field-wide {
318
+ grid-column: 1 / -1;
319
+ }
320
+
65
321
  .oxa-actions {
322
+ position: sticky;
323
+ z-index: 5;
324
+ bottom: 0;
66
325
  display: flex;
67
326
  justify-content: flex-end;
327
+ gap: 10px;
328
+ border-top: 1px solid #e7ebf1;
329
+ background: rgb(255 255 255 / 96%);
330
+ padding: 14px 0;
331
+ backdrop-filter: blur(8px);
332
+ }
333
+
334
+ .oxa-form-full .oxa-actions {
335
+ margin-top: 4px;
336
+ padding-inline: 18px;
337
+ box-shadow: 0 -3px 12px rgb(25 43 70 / 4%);
338
+ }
339
+
340
+ .oxa-authoritative-selector {
341
+ width: 100%;
342
+ }
343
+
344
+ .oxa-selector-option {
345
+ display: flex;
346
+ width: 100%;
347
+ min-height: 40px;
348
+ align-items: center;
349
+ }
350
+
351
+ .oxa-selector-option-copy {
352
+ display: grid;
353
+ min-width: 0;
354
+ gap: 2px;
355
+ }
356
+
357
+ .oxa-selector-option-copy strong,
358
+ .oxa-selector-option-copy small {
359
+ overflow: hidden;
360
+ text-overflow: ellipsis;
361
+ white-space: nowrap;
362
+ }
363
+
364
+ .oxa-selector-option-copy small,
365
+ .oxa-selector-tag small,
366
+ .oxa-resolved-item small {
367
+ color: #7b879b;
368
+ font-size: 11px;
369
+ }
370
+
371
+ .oxa-selector-icon {
372
+ display: grid;
373
+ width: 28px;
374
+ height: 28px;
375
+ place-items: center;
376
+ border-radius: 7px;
377
+ background: #eaf3ff;
378
+ color: #1677ff;
379
+ font-size: 14px;
380
+ }
381
+
382
+ .oxa-selector-avatar {
383
+ background: #eaf3ff;
384
+ color: #1677ff;
385
+ font-size: 12px;
386
+ }
387
+
388
+ .oxa-selector-tag {
389
+ display: inline-flex;
390
+ height: 26px;
391
+ align-items: center;
392
+ gap: 5px;
393
+ border-color: #dbe5f2;
394
+ background: #f6f9fd;
395
+ padding-inline: 4px 7px;
396
+ }
397
+
398
+ .oxa-selector-tag .ant-avatar {
399
+ width: 20px !important;
400
+ min-width: 20px;
401
+ height: 20px !important;
402
+ font-size: 10px;
403
+ line-height: 20px;
404
+ }
405
+
406
+ .oxa-resolved-values {
407
+ display: inline-flex;
408
+ flex-wrap: wrap;
68
409
  gap: 8px;
69
- margin-top: 20px;
70
410
  }
71
- .oxa-filter-grid {
411
+
412
+ .oxa-resolved-item {
413
+ display: inline-flex;
414
+ min-height: 30px;
415
+ align-items: center;
416
+ gap: 7px;
417
+ border: 1px solid #dce5f0;
418
+ border-radius: 7px;
419
+ background: #f8faff;
420
+ padding: 4px 8px;
421
+ }
422
+
423
+ .oxa-resolved-item > span:last-child {
72
424
  display: grid;
73
- grid-template-columns: repeat(4, minmax(160px, 1fr));
74
- gap: 12px;
425
+ gap: 1px;
75
426
  }
76
- @media (max-width: 900px) {
427
+
428
+ .oxa-resolved-college .oxa-resolved-item {
429
+ border-color: #cfe1ff;
430
+ background: #eff6ff;
431
+ color: #155fc7;
432
+ }
433
+
434
+ .oxa-directory-trigger {
435
+ display: flex;
436
+ min-height: 38px;
437
+ align-items: center;
438
+ gap: 8px;
439
+ border: 1px solid #d9d9d9;
440
+ border-radius: 8px;
441
+ background: #fff;
442
+ padding: 3px 5px 3px 10px;
443
+ cursor: pointer;
444
+ transition: border-color 0.2s, box-shadow 0.2s;
445
+ }
446
+
447
+ .oxa-directory-trigger:hover,
448
+ .oxa-directory-trigger:focus-visible {
449
+ border-color: #1677ff;
450
+ box-shadow: 0 0 0 2px rgb(22 119 255 / 10%);
451
+ outline: 0;
452
+ }
453
+
454
+ .oxa-directory-trigger.is-disabled {
455
+ border-color: #d9d9d9;
456
+ background: #f5f5f5;
457
+ color: rgb(0 0 0 / 25%);
458
+ cursor: not-allowed;
459
+ }
460
+
461
+ .oxa-directory-trigger-icon {
462
+ color: #1677ff;
463
+ }
464
+
465
+ .oxa-directory-trigger-values {
466
+ display: flex;
467
+ min-width: 0;
468
+ flex: 1;
469
+ flex-wrap: wrap;
470
+ align-items: center;
471
+ gap: 4px;
472
+ }
473
+
474
+ .oxa-directory-placeholder {
475
+ color: rgb(0 0 0 / 25%);
476
+ }
477
+
478
+ .oxa-directory-panel {
479
+ display: grid;
480
+ gap: 14px;
481
+ }
482
+
483
+ .oxa-directory-main {
484
+ display: grid;
485
+ min-height: 460px;
486
+ grid-template-columns: 220px minmax(280px, 1fr) 240px;
487
+ overflow: hidden;
488
+ border: 1px solid #e5eaf1;
489
+ border-radius: 8px;
490
+ background: #fff;
491
+ }
492
+
493
+ .oxa-directory-tree-pane,
494
+ .oxa-directory-member-pane,
495
+ .oxa-directory-selected-pane {
496
+ min-width: 0;
497
+ padding: 14px;
498
+ }
499
+
500
+ .oxa-directory-tree-pane {
501
+ border-right: 1px solid #edf0f5;
502
+ background: #fafbfd;
503
+ }
504
+
505
+ .oxa-directory-member-pane {
506
+ display: grid;
507
+ min-height: 460px;
508
+ grid-template-rows: auto minmax(0, 1fr) auto;
509
+ gap: 10px;
510
+ }
511
+
512
+ .oxa-directory-members {
513
+ max-height: 364px;
514
+ overflow: auto;
515
+ }
516
+
517
+ .oxa-directory-member-row {
518
+ min-height: 58px;
519
+ border-bottom: 1px solid #edf0f5;
520
+ padding: 8px 4px;
521
+ }
522
+
523
+ .oxa-directory-results {
524
+ display: grid;
525
+ gap: 6px;
526
+ }
527
+
528
+ .oxa-directory-department-row {
529
+ display: flex;
530
+ min-height: 54px;
531
+ align-items: center;
532
+ gap: 10px;
533
+ border: 1px solid transparent;
534
+ border-radius: 7px;
535
+ padding: 8px;
536
+ cursor: pointer;
537
+ }
538
+
539
+ .oxa-directory-department-row:hover,
540
+ .oxa-directory-department-row:focus-visible {
541
+ border-color: #cfe1ff;
542
+ background: #f2f7ff;
543
+ outline: 0;
544
+ }
545
+
546
+ .oxa-directory-department-row > span:nth-child(2) {
547
+ display: grid;
548
+ min-width: 0;
549
+ flex: 1;
550
+ gap: 2px;
551
+ }
552
+
553
+ .oxa-directory-department-row small {
554
+ color: #7b879b;
555
+ font-size: 11px;
556
+ }
557
+
558
+ .oxa-directory-selected-pane {
559
+ border-left: 1px solid #edf0f5;
560
+ background: #fafbfd;
561
+ }
562
+
563
+ .oxa-directory-pane-title,
564
+ .oxa-directory-pagination,
565
+ .oxa-directory-footer {
566
+ display: flex;
567
+ align-items: center;
568
+ justify-content: space-between;
569
+ gap: 10px;
570
+ }
571
+
572
+ .oxa-directory-pane-title {
573
+ min-height: 32px;
574
+ margin-bottom: 10px;
575
+ color: #27364d;
576
+ font-weight: 600;
577
+ }
578
+
579
+ .oxa-directory-member-row {
580
+ display: flex;
581
+ width: 100%;
582
+ align-items: center;
583
+ gap: 10px;
584
+ cursor: pointer;
585
+ }
586
+
587
+ .oxa-directory-member-row > span:last-child,
588
+ .oxa-directory-selected-item > span:nth-child(2) {
589
+ display: grid;
590
+ min-width: 0;
591
+ flex: 1;
592
+ gap: 2px;
593
+ }
594
+
595
+ .oxa-directory-member-row small,
596
+ .oxa-directory-selected-item small {
597
+ overflow: hidden;
598
+ color: #7b879b;
599
+ font-size: 11px;
600
+ text-overflow: ellipsis;
601
+ white-space: nowrap;
602
+ }
603
+
604
+ .oxa-directory-selected-list {
605
+ display: grid;
606
+ gap: 8px;
607
+ }
608
+
609
+ .oxa-directory-selected-item {
610
+ display: flex;
611
+ align-items: center;
612
+ gap: 8px;
613
+ border: 1px solid #e1e7f0;
614
+ border-radius: 7px;
615
+ background: #fff;
616
+ padding: 7px;
617
+ }
618
+
619
+ .oxa-department-main {
620
+ grid-template-columns: minmax(300px, 1fr) 240px;
621
+ }
622
+
623
+ .oxa-directory-footer {
624
+ justify-content: flex-end;
625
+ border-top: 1px solid #edf0f5;
626
+ padding-top: 14px;
627
+ }
628
+
629
+ .oxa-file-field {
630
+ display: grid;
631
+ gap: 10px;
632
+ }
633
+
634
+ .oxa-file-dropzone .ant-upload-drag {
635
+ min-height: 72px;
636
+ border-color: #dbe3ee;
637
+ background: #fbfcfe;
638
+ padding: 12px;
639
+ }
640
+
641
+ .oxa-file-dropzone .ant-upload-drag-container {
642
+ display: grid;
643
+ gap: 5px;
644
+ color: #52627a;
645
+ }
646
+
647
+ .oxa-file-dropzone small {
648
+ color: #8a96a9;
649
+ }
650
+
651
+ .oxa-file-dropzone kbd {
652
+ border: 1px solid #d8dee8;
653
+ border-bottom-width: 2px;
654
+ border-radius: 4px;
655
+ background: #fff;
656
+ padding: 1px 5px;
657
+ color: #35445b;
658
+ font-family: inherit;
659
+ }
660
+
661
+ .oxa-file-list {
662
+ display: grid;
663
+ gap: 8px;
664
+ }
665
+
666
+ .oxa-file-item,
667
+ .oxa-file-error {
668
+ display: flex;
669
+ min-height: 50px;
670
+ align-items: center;
671
+ gap: 10px;
672
+ border: 1px solid #e2e8f0;
673
+ border-radius: 8px;
674
+ background: #fff;
675
+ padding: 7px 9px;
676
+ }
677
+
678
+ .oxa-file-kind {
679
+ display: grid;
680
+ width: 32px;
681
+ height: 32px;
682
+ place-items: center;
683
+ border-radius: 7px;
684
+ background: #edf5ff;
685
+ color: #1677ff;
686
+ }
687
+
688
+ .oxa-file-meta {
689
+ display: grid;
690
+ min-width: 0;
691
+ flex: 1;
692
+ gap: 2px;
693
+ }
694
+
695
+ .oxa-file-meta strong {
696
+ overflow: hidden;
697
+ text-overflow: ellipsis;
698
+ white-space: nowrap;
699
+ }
700
+
701
+ .oxa-file-meta small,
702
+ .oxa-file-empty {
703
+ color: #7b879b;
704
+ font-size: 12px;
705
+ }
706
+
707
+ .oxa-file-error {
708
+ border-color: #ffccc7;
709
+ background: #fff2f0;
710
+ color: #cf1322;
711
+ }
712
+
713
+ .oxa-file-error > span {
714
+ flex: 1;
715
+ }
716
+
717
+ .oxa-file-empty {
718
+ border: 1px dashed #dbe3ee;
719
+ border-radius: 8px;
720
+ padding: 10px;
721
+ text-align: center;
722
+ }
723
+
724
+ .oxa-dictionary-drawer .ant-drawer-body {
725
+ padding: 22px;
726
+ }
727
+
728
+ .oxa-attachment-readonly {
729
+ display: grid;
730
+ width: 100%;
731
+ gap: 8px;
732
+ }
733
+
734
+ .oxa-attachment-row {
735
+ display: grid;
736
+ grid-template-columns: auto minmax(0, 1fr) auto auto;
737
+ align-items: center;
738
+ gap: 10px;
739
+ min-height: 42px;
740
+ border: 1px solid #e2e8f0;
741
+ border-radius: 7px;
742
+ padding: 6px 10px;
743
+ }
744
+
745
+ .oxa-attachment-name {
746
+ overflow: hidden;
747
+ color: #27364d;
748
+ text-overflow: ellipsis;
749
+ white-space: nowrap;
750
+ }
751
+
752
+ .oxa-detail-hero,
753
+ .oxa-edit-hero {
754
+ margin-bottom: 16px;
755
+ }
756
+
757
+ .oxa-detail-hero .ant-card-body,
758
+ .oxa-edit-hero .ant-card-body {
759
+ padding: 18px 20px;
760
+ }
761
+
762
+ .oxa-detail-hero-top,
763
+ .oxa-detail-hero-main,
764
+ .oxa-edit-hero-title {
765
+ display: flex;
766
+ align-items: center;
767
+ justify-content: space-between;
768
+ gap: 16px;
769
+ }
770
+
771
+ .oxa-detail-hero-top {
772
+ align-items: flex-start;
773
+ }
774
+
775
+ .oxa-detail-hero-top > .ant-btn:first-child,
776
+ .oxa-edit-hero-title .ant-btn-link {
777
+ height: auto;
778
+ padding: 0;
779
+ }
780
+
781
+ .oxa-detail-hero-main {
782
+ margin-top: 14px;
783
+ align-items: flex-end;
784
+ }
785
+
786
+ .oxa-detail-hero-main .ant-typography,
787
+ .oxa-edit-hero-title .ant-typography {
788
+ margin-top: 0;
789
+ margin-bottom: 4px;
790
+ }
791
+
792
+ .oxa-detail-hero-main h2.ant-typography {
793
+ font-size: 22px;
794
+ }
795
+
796
+ .oxa-instrument-name.ant-typography {
797
+ margin-bottom: 2px;
798
+ font-size: 18px;
799
+ }
800
+
801
+ .oxa-record-meta {
802
+ color: #7b879b;
803
+ font-size: 12px;
804
+ }
805
+
806
+ .oxa-edit-hero-title {
807
+ margin-bottom: 14px;
808
+ align-items: flex-end;
809
+ }
810
+
811
+ .oxa-edit-hero-title h2.ant-typography {
812
+ margin-top: 8px;
813
+ font-size: 22px;
814
+ }
815
+
816
+ .oxa-detail-layout {
817
+ display: grid;
818
+ grid-template-columns: minmax(0, 1fr) 320px;
819
+ align-items: start;
820
+ gap: 16px;
821
+ }
822
+
823
+ .oxa-detail-main,
824
+ .oxa-detail-aside {
825
+ display: grid;
826
+ gap: 16px;
827
+ }
828
+
829
+ .oxa-detail-aside {
830
+ position: sticky;
831
+ top: 108px;
832
+ }
833
+
834
+ .oxa-detail-main .ant-descriptions-item-label,
835
+ .oxa-detail-aside .ant-descriptions-item-label {
836
+ color: #7b879b;
837
+ }
838
+
839
+ .oxa-audit-entry {
840
+ display: grid;
841
+ gap: 4px;
842
+ }
843
+
844
+ .oxa-audit-entry > span {
845
+ color: #7b879b;
846
+ font-size: 12px;
847
+ }
848
+
849
+ @media (max-width: 1280px) {
77
850
  .oxa-grid,
78
851
  .oxa-filter-grid {
852
+ grid-template-columns: repeat(2, minmax(0, 1fr));
853
+ }
854
+
855
+ .oxa-detail-layout {
79
856
  grid-template-columns: 1fr;
80
857
  }
81
- .oxa-header {
858
+
859
+ .oxa-detail-aside {
860
+ position: static;
861
+ grid-template-columns: repeat(2, minmax(0, 1fr));
862
+ }
863
+ }
864
+
865
+ @media (max-width: 900px) {
866
+ .oxa-topbar {
867
+ height: 80px;
868
+ padding: 12px 16px !important;
869
+ }
870
+
871
+ .oxa-topbar-page .ant-breadcrumb {
872
+ display: none;
873
+ }
874
+
875
+ .oxa-current-user {
876
+ min-width: 0;
877
+ }
878
+
879
+ .oxa-current-user-copy,
880
+ .oxa-current-user-chevron {
881
+ display: none;
882
+ }
883
+
884
+ .oxa-main {
885
+ padding: 16px;
886
+ }
887
+
888
+ .oxa-grid,
889
+ .oxa-filter-grid,
890
+ .oxa-detail-aside {
891
+ grid-template-columns: 1fr;
892
+ }
893
+
894
+ .oxa-detail-hero-main,
895
+ .oxa-detail-hero-top,
896
+ .oxa-edit-hero-title,
897
+ .oxa-page-heading {
82
898
  align-items: flex-start;
899
+ flex-direction: column;
900
+ }
901
+
902
+ .oxa-record-meta {
903
+ align-self: stretch;
904
+ }
905
+
906
+ .oxa-directory-main,
907
+ .oxa-department-main {
908
+ min-height: 0;
909
+ grid-template-columns: 1fr;
910
+ }
911
+
912
+ .oxa-directory-tree-pane,
913
+ .oxa-directory-selected-pane {
914
+ border: 0;
915
+ border-bottom: 1px solid #edf0f5;
916
+ }
917
+
918
+ .oxa-directory-tree-pane,
919
+ .oxa-directory-member-pane,
920
+ .oxa-directory-selected-pane {
921
+ max-height: 34vh;
922
+ overflow: auto;
83
923
  }
84
924
  }