@morscherlab/mld-sdk 0.7.1 → 0.7.3
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.
- package/dist/components/BaseInput.vue.d.ts +1 -0
- package/dist/components/BaseInput.vue.js +5 -2
- package/dist/components/BaseInput.vue.js.map +1 -1
- package/dist/components/BaseModal.vue.d.ts +6 -2
- package/dist/components/BaseModal.vue.js +54 -10
- package/dist/components/BaseModal.vue.js.map +1 -1
- package/dist/components/BaseSelect.vue.d.ts +1 -0
- package/dist/components/BaseSelect.vue.js +5 -2
- package/dist/components/BaseSelect.vue.js.map +1 -1
- package/dist/components/BaseTextarea.vue.d.ts +1 -0
- package/dist/components/BaseTextarea.vue.js +5 -2
- package/dist/components/BaseTextarea.vue.js.map +1 -1
- package/dist/components/ExperimentCodeBadge.vue.d.ts +8 -0
- package/dist/components/ExperimentCodeBadge.vue.js +19 -0
- package/dist/components/ExperimentCodeBadge.vue.js.map +1 -0
- package/dist/components/ExperimentCodeBadge.vue3.js +6 -0
- package/dist/components/ExperimentCodeBadge.vue3.js.map +1 -0
- package/dist/components/ExperimentDataViewer.vue.d.ts +29 -0
- package/dist/components/ExperimentDataViewer.vue.js +258 -0
- package/dist/components/ExperimentDataViewer.vue.js.map +1 -0
- package/dist/components/ExperimentDataViewer.vue3.js +6 -0
- package/dist/components/ExperimentDataViewer.vue3.js.map +1 -0
- package/dist/components/FormField.vue.d.ts +4 -1
- package/dist/components/FormField.vue.js +24 -12
- package/dist/components/FormField.vue.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +14 -8
- package/dist/components/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +14 -8
- package/dist/index.js.map +1 -1
- package/dist/styles.css +340 -67
- package/dist/types/components.d.ts +23 -0
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/BaseInput.vue +3 -0
- package/src/components/BaseModal.vue +59 -10
- package/src/components/BaseSelect.vue +3 -0
- package/src/components/BaseTextarea.vue +3 -0
- package/src/components/ExperimentCodeBadge.vue +20 -0
- package/src/components/ExperimentDataViewer.vue +250 -0
- package/src/components/FormField.vue +17 -4
- package/src/components/index.ts +4 -0
- package/src/index.ts +10 -0
- package/src/styles/components/app-top-bar.css +9 -9
- package/src/styles/components/button.css +4 -4
- package/src/styles/components/experiment-code-badge.css +13 -0
- package/src/styles/components/experiment-data-viewer.css +131 -0
- package/src/styles/components/form-field.css +5 -3
- package/src/styles/components/modal.css +1 -1
- package/src/styles/components/select.css +1 -1
- package/src/styles/components/slider.css +4 -8
- package/src/styles/components/tabs.css +1 -1
- package/src/styles/components/textarea.css +5 -1
- package/src/styles/index.css +2 -0
- package/src/styles/variables.css +19 -13
- package/src/types/components.ts +27 -0
- package/src/types/index.ts +4 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
.mld-data-viewer {
|
|
2
|
+
border: 1px solid var(--mld-color-border, #e0e0e0);
|
|
3
|
+
border-radius: var(--mld-radius-md, 8px);
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
}
|
|
6
|
+
.mld-data-viewer__header {
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
justify-content: space-between;
|
|
10
|
+
padding: 8px 12px;
|
|
11
|
+
border-bottom: 1px solid var(--mld-color-border, #e0e0e0);
|
|
12
|
+
background: var(--mld-color-surface-1, #fafafa);
|
|
13
|
+
gap: 8px;
|
|
14
|
+
}
|
|
15
|
+
.mld-data-viewer__controls { display: flex; gap: 8px; }
|
|
16
|
+
.mld-data-viewer__actions { display: flex; gap: 4px; align-items: center; }
|
|
17
|
+
.mld-data-viewer__content {
|
|
18
|
+
padding: 12px;
|
|
19
|
+
max-height: 600px;
|
|
20
|
+
overflow-y: auto;
|
|
21
|
+
}
|
|
22
|
+
.mld-data-viewer__loading,
|
|
23
|
+
.mld-data-viewer__empty {
|
|
24
|
+
text-align: center;
|
|
25
|
+
padding: 32px;
|
|
26
|
+
color: var(--mld-color-text-muted, #999);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Summary view */
|
|
30
|
+
.mld-summary {
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
gap: 16px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Metadata pills row */
|
|
37
|
+
.mld-summary__metadata {
|
|
38
|
+
display: flex;
|
|
39
|
+
flex-wrap: wrap;
|
|
40
|
+
gap: 6px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.mld-summary__pill {
|
|
44
|
+
display: inline-flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
border-radius: 6px;
|
|
47
|
+
overflow: hidden;
|
|
48
|
+
font-size: 0.8125rem;
|
|
49
|
+
line-height: 1;
|
|
50
|
+
border: 1px solid var(--mld-color-border, #e0e0e0);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.mld-summary__pill--sm {
|
|
54
|
+
font-size: 0.75rem;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.mld-summary__pill-key {
|
|
58
|
+
padding: 4px 8px;
|
|
59
|
+
background: var(--mld-color-surface-1, #f5f5f5);
|
|
60
|
+
color: var(--mld-color-text-muted, #666);
|
|
61
|
+
text-transform: capitalize;
|
|
62
|
+
font-weight: 500;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.mld-summary__pill-value {
|
|
66
|
+
padding: 4px 8px;
|
|
67
|
+
color: var(--mld-color-text, #1a1a1a);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* Section */
|
|
71
|
+
.mld-summary__section {
|
|
72
|
+
display: flex;
|
|
73
|
+
flex-direction: column;
|
|
74
|
+
gap: 12px;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.mld-summary__section-label {
|
|
78
|
+
font-weight: 600;
|
|
79
|
+
font-size: 0.875rem;
|
|
80
|
+
color: var(--mld-color-text, #1a1a1a);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.mld-summary__section-count {
|
|
84
|
+
font-size: 0.75rem;
|
|
85
|
+
color: var(--mld-color-text-muted, #999);
|
|
86
|
+
margin-left: 8px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.mld-summary__table-header {
|
|
90
|
+
display: flex;
|
|
91
|
+
align-items: baseline;
|
|
92
|
+
gap: 4px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Group cards */
|
|
96
|
+
.mld-summary__group-card {
|
|
97
|
+
border: 1px solid var(--mld-color-border, #e0e0e0);
|
|
98
|
+
border-radius: var(--mld-radius-md, 8px);
|
|
99
|
+
overflow: hidden;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.mld-summary__group-header {
|
|
103
|
+
display: flex;
|
|
104
|
+
align-items: center;
|
|
105
|
+
justify-content: space-between;
|
|
106
|
+
padding: 10px 14px;
|
|
107
|
+
background: var(--mld-color-surface-1, #fafafa);
|
|
108
|
+
border-bottom: 1px solid var(--mld-color-border, #e0e0e0);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.mld-summary__group-label {
|
|
112
|
+
font-weight: 600;
|
|
113
|
+
font-size: 0.875rem;
|
|
114
|
+
color: var(--mld-color-text, #1a1a1a);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.mld-summary__group-count {
|
|
118
|
+
font-size: 0.75rem;
|
|
119
|
+
color: var(--mld-color-text-muted, #999);
|
|
120
|
+
background: var(--mld-color-surface-2, #eee);
|
|
121
|
+
padding: 2px 8px;
|
|
122
|
+
border-radius: 10px;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.mld-summary__group-meta {
|
|
126
|
+
display: flex;
|
|
127
|
+
flex-wrap: wrap;
|
|
128
|
+
gap: 6px;
|
|
129
|
+
padding: 8px 14px;
|
|
130
|
+
border-bottom: 1px solid var(--mld-color-border, #e0e0e0);
|
|
131
|
+
}
|
|
@@ -8,9 +8,11 @@
|
|
|
8
8
|
|
|
9
9
|
.mld-form-field__label {
|
|
10
10
|
display: block;
|
|
11
|
-
font-size: 0.
|
|
12
|
-
font-weight:
|
|
13
|
-
|
|
11
|
+
font-size: 0.6875rem;
|
|
12
|
+
font-weight: 600;
|
|
13
|
+
text-transform: uppercase;
|
|
14
|
+
letter-spacing: 0.05em;
|
|
15
|
+
color: var(--text-secondary);
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
.mld-form-field__required {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
.mld-slider--disabled {
|
|
10
|
-
opacity:
|
|
10
|
+
opacity: var(--mld-disabled-opacity);
|
|
11
11
|
cursor: not-allowed;
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -24,18 +24,14 @@
|
|
|
24
24
|
left: 0;
|
|
25
25
|
right: 0;
|
|
26
26
|
border-radius: 9999px;
|
|
27
|
-
background-color:
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
html.dark .mld-slider__track {
|
|
31
|
-
background-color: #334155;
|
|
27
|
+
background-color: var(--bg-tertiary);
|
|
32
28
|
}
|
|
33
29
|
|
|
34
30
|
.mld-slider__fill {
|
|
35
31
|
position: absolute;
|
|
36
32
|
left: 0;
|
|
37
33
|
border-radius: 9999px;
|
|
38
|
-
background-color:
|
|
34
|
+
background-color: var(--color-primary);
|
|
39
35
|
}
|
|
40
36
|
|
|
41
37
|
.mld-slider__input {
|
|
@@ -59,7 +55,7 @@ html.dark .mld-slider__track {
|
|
|
59
55
|
transform: translateX(-50%) translateY(-50%);
|
|
60
56
|
border-radius: 9999px;
|
|
61
57
|
background-color: white;
|
|
62
|
-
border: 2px solid
|
|
58
|
+
border: 2px solid var(--color-primary);
|
|
63
59
|
box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
|
|
64
60
|
pointer-events: none;
|
|
65
61
|
transition: transform 150ms ease;
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
color: var(--text-muted);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
.mld-textarea:hover:not(:focus):not(.mld-textarea--disabled):not(.mld-textarea--error) {
|
|
17
|
+
border-color: var(--text-muted);
|
|
18
|
+
}
|
|
19
|
+
|
|
16
20
|
.mld-textarea:focus {
|
|
17
21
|
outline: none;
|
|
18
22
|
border-color: transparent;
|
|
@@ -28,7 +32,7 @@
|
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
.mld-textarea--disabled {
|
|
31
|
-
opacity:
|
|
35
|
+
opacity: var(--mld-disabled-opacity);
|
|
32
36
|
cursor: not-allowed;
|
|
33
37
|
background-color: var(--bg-tertiary);
|
|
34
38
|
}
|
package/src/styles/index.css
CHANGED
package/src/styles/variables.css
CHANGED
|
@@ -24,8 +24,9 @@
|
|
|
24
24
|
--text-muted: #94A3B8;
|
|
25
25
|
|
|
26
26
|
/* Brand colors */
|
|
27
|
-
--color-primary: #
|
|
28
|
-
--color-primary-hover: #
|
|
27
|
+
--color-primary: #6366F1;
|
|
28
|
+
--color-primary-hover: #4F46E5;
|
|
29
|
+
--color-primary-soft: rgba(99, 102, 241, 0.12);
|
|
29
30
|
--color-cta: #F97316;
|
|
30
31
|
--color-cta-hover: #EA580C;
|
|
31
32
|
--color-purple: #8B5CF6;
|
|
@@ -54,14 +55,19 @@
|
|
|
54
55
|
|
|
55
56
|
/* Semantic colors */
|
|
56
57
|
--mld-success: #10B981;
|
|
58
|
+
--mld-success-hover: #059669;
|
|
57
59
|
--mld-success-bg: rgba(16, 185, 129, 0.1);
|
|
58
60
|
--mld-error: #EF4444;
|
|
61
|
+
--mld-error-hover: #DC2626;
|
|
59
62
|
--mld-error-bg: rgba(239, 68, 68, 0.1);
|
|
60
63
|
--mld-warning: #F59E0B;
|
|
61
64
|
--mld-warning-bg: rgba(245, 158, 11, 0.1);
|
|
62
65
|
--mld-info: #3B82F6;
|
|
63
66
|
--mld-info-bg: rgba(59, 130, 246, 0.1);
|
|
64
67
|
|
|
68
|
+
/* Shared component tokens */
|
|
69
|
+
--mld-disabled-opacity: 0.6;
|
|
70
|
+
|
|
65
71
|
/* Legacy aliases (for backwards compatibility) */
|
|
66
72
|
--mld-bg-primary: var(--bg-primary);
|
|
67
73
|
--mld-bg-secondary: var(--bg-secondary);
|
|
@@ -308,7 +314,7 @@ code, pre {
|
|
|
308
314
|
|
|
309
315
|
.input-modern:focus {
|
|
310
316
|
border-color: var(--color-primary);
|
|
311
|
-
box-shadow: 0 0 0 3px rgba(
|
|
317
|
+
box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
|
|
312
318
|
}
|
|
313
319
|
|
|
314
320
|
.input-modern::placeholder {
|
|
@@ -341,7 +347,7 @@ code, pre {
|
|
|
341
347
|
|
|
342
348
|
.select-modern:focus {
|
|
343
349
|
border-color: var(--color-primary);
|
|
344
|
-
box-shadow: 0 0 0 3px rgba(
|
|
350
|
+
box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
|
|
345
351
|
}
|
|
346
352
|
|
|
347
353
|
/* Label styles */
|
|
@@ -549,7 +555,7 @@ code, pre {
|
|
|
549
555
|
}
|
|
550
556
|
|
|
551
557
|
.bg-mld-primary {
|
|
552
|
-
background-color:
|
|
558
|
+
background-color: var(--color-primary);
|
|
553
559
|
}
|
|
554
560
|
|
|
555
561
|
.text-mld-primary {
|
|
@@ -561,11 +567,11 @@ code, pre {
|
|
|
561
567
|
}
|
|
562
568
|
|
|
563
569
|
.bg-mld-primary\/5 {
|
|
564
|
-
background-color: rgba(
|
|
570
|
+
background-color: rgba(99, 102, 241, 0.05);
|
|
565
571
|
}
|
|
566
572
|
|
|
567
573
|
.hover\:border-mld-primary\/50:hover {
|
|
568
|
-
border-color: rgba(
|
|
574
|
+
border-color: rgba(99, 102, 241, 0.5);
|
|
569
575
|
}
|
|
570
576
|
|
|
571
577
|
/* Danger/error color utilities */
|
|
@@ -630,19 +636,19 @@ code, pre {
|
|
|
630
636
|
}
|
|
631
637
|
|
|
632
638
|
.hover\:bg-mld-success-hover:hover {
|
|
633
|
-
background-color:
|
|
639
|
+
background-color: var(--mld-success-hover);
|
|
634
640
|
}
|
|
635
641
|
|
|
636
642
|
.hover\:bg-mld-danger-hover:hover {
|
|
637
|
-
background-color:
|
|
643
|
+
background-color: var(--mld-error-hover);
|
|
638
644
|
}
|
|
639
645
|
|
|
640
646
|
.bg-mld-primary\/10 {
|
|
641
|
-
background-color: rgba(
|
|
647
|
+
background-color: rgba(99, 102, 241, 0.1);
|
|
642
648
|
}
|
|
643
649
|
|
|
644
650
|
.hover\:bg-mld-primary\/20:hover {
|
|
645
|
-
background-color: rgba(
|
|
651
|
+
background-color: rgba(99, 102, 241, 0.2);
|
|
646
652
|
}
|
|
647
653
|
|
|
648
654
|
.bg-mld-info {
|
|
@@ -681,11 +687,11 @@ code, pre {
|
|
|
681
687
|
}
|
|
682
688
|
|
|
683
689
|
.text-mld-primary\/80 {
|
|
684
|
-
color: rgba(
|
|
690
|
+
color: rgba(99, 102, 241, 0.8);
|
|
685
691
|
}
|
|
686
692
|
|
|
687
693
|
.hover\:text-mld-primary\/70:hover {
|
|
688
|
-
color: rgba(
|
|
694
|
+
color: rgba(99, 102, 241, 0.7);
|
|
689
695
|
}
|
|
690
696
|
|
|
691
697
|
/* ==========================================================================
|
package/src/types/components.ts
CHANGED
|
@@ -567,6 +567,33 @@ export interface ScheduleEventUpdateContext {
|
|
|
567
567
|
newEnd: Date
|
|
568
568
|
}
|
|
569
569
|
|
|
570
|
+
// Summary data types (for ExperimentDataViewer compact mode)
|
|
571
|
+
export interface SummarySectionItem {
|
|
572
|
+
label: string
|
|
573
|
+
metadata?: Record<string, unknown>
|
|
574
|
+
item_count: number
|
|
575
|
+
item_key: string
|
|
576
|
+
columns: string[]
|
|
577
|
+
rows: Record<string, unknown>[]
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
export interface SummarySection {
|
|
581
|
+
key: string
|
|
582
|
+
label: string
|
|
583
|
+
type: 'table' | 'group'
|
|
584
|
+
/** Group sections: list of group items with embedded tables */
|
|
585
|
+
items?: SummarySectionItem[]
|
|
586
|
+
/** Table sections: flat table columns and rows */
|
|
587
|
+
columns?: string[]
|
|
588
|
+
rows?: Record<string, unknown>[]
|
|
589
|
+
row_count?: number
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
export interface SummaryData {
|
|
593
|
+
metadata: Record<string, unknown>
|
|
594
|
+
sections: SummarySection[]
|
|
595
|
+
}
|
|
596
|
+
|
|
570
597
|
// Resource types
|
|
571
598
|
export type ResourceStatus = 'available' | 'in-use' | 'maintenance' | 'offline'
|
|
572
599
|
|
package/src/types/index.ts
CHANGED
|
@@ -117,6 +117,10 @@ export type {
|
|
|
117
117
|
ScheduleSlotContext,
|
|
118
118
|
ScheduleEventCreateContext,
|
|
119
119
|
ScheduleEventUpdateContext,
|
|
120
|
+
// Summary data types
|
|
121
|
+
SummarySectionItem,
|
|
122
|
+
SummarySection,
|
|
123
|
+
SummaryData,
|
|
120
124
|
// Resource types
|
|
121
125
|
ResourceStatus,
|
|
122
126
|
ResourceSpec,
|