@morscherlab/mld-sdk 0.6.1 → 0.6.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.
Files changed (70) hide show
  1. package/dist/components/AuditTrail.vue.d.ts +1 -10
  2. package/dist/components/AuditTrail.vue.js.map +1 -1
  3. package/dist/components/BatchProgressList.vue.d.ts +1 -17
  4. package/dist/components/BatchProgressList.vue.js.map +1 -1
  5. package/dist/components/Breadcrumb.vue.d.ts +1 -5
  6. package/dist/components/Breadcrumb.vue.js.map +1 -1
  7. package/dist/components/ConcentrationInput.vue.js +17 -16
  8. package/dist/components/ConcentrationInput.vue.js.map +1 -1
  9. package/dist/components/DateTimePicker.vue.js +0 -1
  10. package/dist/components/DateTimePicker.vue.js.map +1 -1
  11. package/dist/components/MoleculeInput.vue.d.ts +1 -4
  12. package/dist/components/MoleculeInput.vue.js.map +1 -1
  13. package/dist/components/NumberInput.vue.js +1 -0
  14. package/dist/components/NumberInput.vue.js.map +1 -1
  15. package/dist/components/RackEditor.vue.js +2 -2
  16. package/dist/components/RackEditor.vue.js.map +1 -1
  17. package/dist/components/ReagentList.vue.d.ts +1 -15
  18. package/dist/components/ReagentList.vue.js.map +1 -1
  19. package/dist/components/SampleHierarchyTree.vue.d.ts +1 -12
  20. package/dist/components/SampleHierarchyTree.vue.js.map +1 -1
  21. package/dist/components/ScheduleCalendar.vue.js.map +1 -1
  22. package/dist/components/ScientificNumber.vue.d.ts +1 -1
  23. package/dist/components/ScientificNumber.vue.js.map +1 -1
  24. package/dist/components/SettingsModal.vue.d.ts +1 -5
  25. package/dist/components/SettingsModal.vue.js.map +1 -1
  26. package/dist/components/StepWizard.vue.d.ts +1 -8
  27. package/dist/components/StepWizard.vue.js.map +1 -1
  28. package/dist/components/UnitInput.vue.d.ts +1 -6
  29. package/dist/components/UnitInput.vue.js +19 -18
  30. package/dist/components/UnitInput.vue.js.map +1 -1
  31. package/dist/components/WellPlate.vue.js +23 -18
  32. package/dist/components/WellPlate.vue.js.map +1 -1
  33. package/dist/styles.css +163 -0
  34. package/dist/types/index.d.ts +1 -1
  35. package/package.json +1 -1
  36. package/src/components/AuditTrail.vue +1 -12
  37. package/src/components/BatchProgressList.vue +1 -20
  38. package/src/components/Breadcrumb.vue +1 -5
  39. package/src/components/ConcentrationInput.vue +1 -1
  40. package/src/components/DateTimePicker.vue +1 -1
  41. package/src/components/MoleculeInput.story.vue +1 -1
  42. package/src/components/MoleculeInput.vue +1 -5
  43. package/src/components/NumberInput.vue +1 -0
  44. package/src/components/RackEditor.vue +2 -2
  45. package/src/components/ReagentList.story.vue +1 -1
  46. package/src/components/ReagentList.vue +1 -26
  47. package/src/components/SampleHierarchyTree.story.vue +1 -1
  48. package/src/components/SampleHierarchyTree.vue +1 -25
  49. package/src/components/ScheduleCalendar.vue +1 -1
  50. package/src/components/ScientificNumber.story.vue +1 -2
  51. package/src/components/ScientificNumber.vue +1 -2
  52. package/src/components/SettingsModal.vue +1 -7
  53. package/src/components/StepWizard.vue +1 -10
  54. package/src/components/UnitInput.vue +2 -8
  55. package/src/components/WellPlate.vue +26 -19
  56. package/src/styles/components/button.css +6 -0
  57. package/src/styles/components/concentration-input.css +14 -0
  58. package/src/styles/components/date-picker.css +5 -0
  59. package/src/styles/components/datetime-picker.css +4 -0
  60. package/src/styles/components/dropdown-button.css +5 -0
  61. package/src/styles/components/icon-button.css +4 -0
  62. package/src/styles/components/input.css +5 -0
  63. package/src/styles/components/number-input.css +14 -0
  64. package/src/styles/components/rack-editor.css +6 -0
  65. package/src/styles/components/segmented-control.css +4 -0
  66. package/src/styles/components/select.css +5 -0
  67. package/src/styles/components/tags-input.css +4 -0
  68. package/src/styles/components/unit-input.css +14 -0
  69. package/src/styles/variables.css +5 -0
  70. package/src/types/index.ts +10 -0
package/dist/styles.css CHANGED
@@ -51,6 +51,11 @@
51
51
  --radius-md: 0.5rem;
52
52
  --radius-lg: 0.75rem;
53
53
 
54
+ /* Form element heights */
55
+ --form-height-sm: 2rem;
56
+ --form-height-md: 2.25rem;
57
+ --form-height-lg: 3rem;
58
+
54
59
  /* Semantic colors */
55
60
  --mld-success: #10B981;
56
61
  --mld-success-bg: rgba(16, 185, 129, 0.1);
@@ -1553,8 +1558,11 @@ html.dark .focus\:ring-offset-2:focus {
1553
1558
  border-radius: 0.5rem;
1554
1559
  font-weight: 500;
1555
1560
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
1561
+ line-height: 1.25;
1562
+ white-space: nowrap;
1556
1563
  cursor: pointer;
1557
1564
  border: none;
1565
+ box-sizing: border-box;
1558
1566
  }
1559
1567
  .mld-button:focus {
1560
1568
  outline: none;
@@ -1618,14 +1626,17 @@ html.dark .mld-button:focus {
1618
1626
  .mld-button--sm {
1619
1627
  padding: 0.375rem 0.75rem;
1620
1628
  font-size: 0.875rem;
1629
+ min-height: var(--form-height-sm);
1621
1630
  }
1622
1631
  .mld-button--md {
1623
1632
  padding: 0.5rem 1rem;
1624
1633
  font-size: 0.875rem;
1634
+ min-height: var(--form-height-md);
1625
1635
  }
1626
1636
  .mld-button--lg {
1627
1637
  padding: 0.75rem 1.5rem;
1628
1638
  font-size: 1rem;
1639
+ min-height: var(--form-height-lg);
1629
1640
  }
1630
1641
  /* Spinner */
1631
1642
  .mld-button__spinner {
@@ -2000,6 +2011,8 @@ html.dark .mld-checkbox__native:focus-visible + .mld-checkbox__box {
2000
2011
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
2001
2012
  cursor: pointer;
2002
2013
  padding-right: 2.5rem;
2014
+ box-sizing: border-box;
2015
+ line-height: 1.25;
2003
2016
  }
2004
2017
  .mld-date-picker__input:focus {
2005
2018
  outline: none;
@@ -2009,14 +2022,17 @@ html.dark .mld-checkbox__native:focus-visible + .mld-checkbox__box {
2009
2022
  .mld-date-picker__input--sm {
2010
2023
  padding: 0.375rem 0.625rem;
2011
2024
  font-size: 0.875rem;
2025
+ min-height: var(--form-height-sm);
2012
2026
  }
2013
2027
  .mld-date-picker__input--md {
2014
2028
  padding: 0.5rem 0.75rem;
2015
2029
  font-size: 0.875rem;
2030
+ min-height: var(--form-height-md);
2016
2031
  }
2017
2032
  .mld-date-picker__input--lg {
2018
2033
  padding: 0.75rem 1rem;
2019
2034
  font-size: 1rem;
2035
+ min-height: var(--form-height-lg);
2020
2036
  }
2021
2037
  .mld-date-picker__input--error {
2022
2038
  border-color: var(--mld-error);
@@ -3096,6 +3112,7 @@ html.dark .mld-checkbox__native:focus-visible + .mld-checkbox__box {
3096
3112
  transition: color 0.15s ease, background-color 0.15s ease;
3097
3113
  cursor: pointer;
3098
3114
  border: none;
3115
+ box-sizing: border-box;
3099
3116
  }
3100
3117
  .mld-icon-button:focus {
3101
3118
  outline: none;
@@ -3153,12 +3170,15 @@ html.dark .mld-checkbox__native:focus-visible + .mld-checkbox__box {
3153
3170
  /* Sizes */
3154
3171
  .mld-icon-button--sm {
3155
3172
  padding: 0.375rem;
3173
+ min-height: var(--form-height-sm);
3156
3174
  }
3157
3175
  .mld-icon-button--md {
3158
3176
  padding: 0.5rem;
3177
+ min-height: var(--form-height-md);
3159
3178
  }
3160
3179
  .mld-icon-button--lg {
3161
3180
  padding: 0.75rem;
3181
+ min-height: var(--form-height-lg);
3162
3182
  }
3163
3183
  .mld-icon-button__icon--sm,
3164
3184
  .mld-icon-button__icon--md,
@@ -3198,6 +3218,8 @@ html.dark .mld-checkbox__native:focus-visible + .mld-checkbox__box {
3198
3218
  border: 1px solid var(--border-color);
3199
3219
  background-color: var(--bg-secondary);
3200
3220
  color: var(--text-primary);
3221
+ box-sizing: border-box;
3222
+ line-height: 1.25;
3201
3223
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
3202
3224
  }
3203
3225
  .mld-input::placeholder {
@@ -3225,14 +3247,17 @@ html.dark .mld-checkbox__native:focus-visible + .mld-checkbox__box {
3225
3247
  .mld-input--sm {
3226
3248
  padding: 0.375rem 0.625rem;
3227
3249
  font-size: 0.875rem;
3250
+ min-height: var(--form-height-sm);
3228
3251
  }
3229
3252
  .mld-input--md {
3230
3253
  padding: 0.5rem 0.75rem;
3231
3254
  font-size: 0.875rem;
3255
+ min-height: var(--form-height-md);
3232
3256
  }
3233
3257
  .mld-input--lg {
3234
3258
  padding: 0.75rem 1rem;
3235
3259
  font-size: 1rem;
3260
+ min-height: var(--form-height-lg);
3236
3261
  }
3237
3262
  /* BaseModal Component Styles */
3238
3263
  /* Modal Backdrop */
@@ -3343,8 +3368,18 @@ html.dark .mld-checkbox__native:focus-visible + .mld-checkbox__box {
3343
3368
  border-radius: 0.5rem;
3344
3369
  border: 1px solid var(--border-color);
3345
3370
  overflow: hidden;
3371
+ box-sizing: border-box;
3346
3372
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
3347
3373
  }
3374
+ .mld-number-input--sm {
3375
+ min-height: var(--form-height-sm);
3376
+ }
3377
+ .mld-number-input--md {
3378
+ min-height: var(--form-height-md);
3379
+ }
3380
+ .mld-number-input--lg {
3381
+ min-height: var(--form-height-lg);
3382
+ }
3348
3383
  .mld-number-input:focus-within {
3349
3384
  border-color: transparent;
3350
3385
  box-shadow: 0 0 0 2px var(--color-primary);
@@ -3402,6 +3437,7 @@ html.dark .mld-checkbox__native:focus-visible + .mld-checkbox__box {
3402
3437
  color: var(--text-primary);
3403
3438
  border: none;
3404
3439
  outline: none;
3440
+ line-height: 1.25;
3405
3441
  -webkit-appearance: textfield;
3406
3442
  -moz-appearance: textfield;
3407
3443
  appearance: textfield;
@@ -4131,6 +4167,8 @@ html.dark .mld-radio-option__native:focus-visible + .mld-radio-option__circle {
4131
4167
  cursor: pointer;
4132
4168
  appearance: none;
4133
4169
  padding-right: 2.5rem;
4170
+ box-sizing: border-box;
4171
+ line-height: 1.25;
4134
4172
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
4135
4173
  }
4136
4174
  .mld-select__control:focus {
@@ -4153,16 +4191,19 @@ html.dark .mld-radio-option__native:focus-visible + .mld-radio-option__circle {
4153
4191
  padding: 0.375rem 0.625rem;
4154
4192
  padding-right: 2.5rem;
4155
4193
  font-size: 0.875rem;
4194
+ min-height: var(--form-height-sm);
4156
4195
  }
4157
4196
  .mld-select__control--md {
4158
4197
  padding: 0.5rem 0.75rem;
4159
4198
  padding-right: 2.5rem;
4160
4199
  font-size: 0.875rem;
4200
+ min-height: var(--form-height-md);
4161
4201
  }
4162
4202
  .mld-select__control--lg {
4163
4203
  padding: 0.75rem 1rem;
4164
4204
  padding-right: 2.5rem;
4165
4205
  font-size: 1rem;
4206
+ min-height: var(--form-height-lg);
4166
4207
  }
4167
4208
  .mld-select__icon {
4168
4209
  position: absolute;
@@ -4441,6 +4482,7 @@ html.dark .mld-slider__track {
4441
4482
  gap: 0.375rem;
4442
4483
  align-items: center;
4443
4484
  cursor: text;
4485
+ box-sizing: border-box;
4444
4486
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
4445
4487
  }
4446
4488
  .mld-tags-input:focus-within {
@@ -4461,12 +4503,15 @@ html.dark .mld-slider__track {
4461
4503
  }
4462
4504
  .mld-tags-input--sm {
4463
4505
  padding: 0.25rem 0.5rem;
4506
+ min-height: var(--form-height-sm);
4464
4507
  }
4465
4508
  .mld-tags-input--md {
4466
4509
  padding: 0.5rem 0.75rem;
4510
+ min-height: var(--form-height-md);
4467
4511
  }
4468
4512
  .mld-tags-input--lg {
4469
4513
  padding: 0.625rem 1rem;
4514
+ min-height: var(--form-height-lg);
4470
4515
  }
4471
4516
  /* Tags */
4472
4517
  .mld-tags-input__tag {
@@ -6249,8 +6294,18 @@ html.dark .mld-toggle__track:focus-visible {
6249
6294
  border-radius: 0.5rem;
6250
6295
  border: 1px solid var(--border-color);
6251
6296
  overflow: hidden;
6297
+ box-sizing: border-box;
6252
6298
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
6253
6299
  }
6300
+ .mld-concentration-input__controls--sm {
6301
+ min-height: var(--form-height-sm);
6302
+ }
6303
+ .mld-concentration-input__controls--md {
6304
+ min-height: var(--form-height-md);
6305
+ }
6306
+ .mld-concentration-input__controls--lg {
6307
+ min-height: var(--form-height-lg);
6308
+ }
6254
6309
  .mld-concentration-input__controls:focus-within {
6255
6310
  border-color: transparent;
6256
6311
  box-shadow: 0 0 0 2px var(--color-primary);
@@ -6272,6 +6327,7 @@ html.dark .mld-toggle__track:focus-visible {
6272
6327
  color: var(--text-primary);
6273
6328
  border: none;
6274
6329
  outline: none;
6330
+ line-height: 1.25;
6275
6331
  -webkit-appearance: textfield;
6276
6332
  -moz-appearance: textfield;
6277
6333
  appearance: textfield;
@@ -7645,6 +7701,7 @@ html.dark .mld-toggle__track:focus-visible {
7645
7701
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
7646
7702
  text-align: center;
7647
7703
  font-family: inherit;
7704
+ box-sizing: border-box;
7648
7705
  }
7649
7706
  .mld-segmented-control__option:focus-visible {
7650
7707
  outline: none;
@@ -7705,14 +7762,17 @@ html.dark .mld-toggle__track:focus-visible {
7705
7762
  .mld-segmented-control__option--simple.mld-segmented-control__option--sm {
7706
7763
  padding: 0.375rem 0.75rem;
7707
7764
  font-size: 0.75rem;
7765
+ min-height: var(--form-height-sm);
7708
7766
  }
7709
7767
  .mld-segmented-control__option--simple.mld-segmented-control__option--md {
7710
7768
  padding: 0.5rem 1rem;
7711
7769
  font-size: 0.875rem;
7770
+ min-height: var(--form-height-md);
7712
7771
  }
7713
7772
  .mld-segmented-control__option--simple.mld-segmented-control__option--lg {
7714
7773
  padding: 0.625rem 1.25rem;
7715
7774
  font-size: 1rem;
7775
+ min-height: var(--form-height-lg);
7716
7776
  }
7717
7777
  /* Size variants - card */
7718
7778
  .mld-segmented-control__option--card.mld-segmented-control__option--sm {
@@ -8028,6 +8088,8 @@ html.dark .mld-pill__remove:hover {
8028
8088
  cursor: pointer;
8029
8089
  border: none;
8030
8090
  white-space: nowrap;
8091
+ box-sizing: border-box;
8092
+ line-height: 1.25;
8031
8093
  }
8032
8094
  .mld-dropdown-button__trigger:focus {
8033
8095
  outline: none;
@@ -8084,14 +8146,17 @@ html.dark .mld-dropdown-button__trigger:focus {
8084
8146
  .mld-dropdown-button__trigger--sm {
8085
8147
  padding: 0.375rem 0.75rem;
8086
8148
  font-size: 0.875rem;
8149
+ min-height: var(--form-height-sm);
8087
8150
  }
8088
8151
  .mld-dropdown-button__trigger--md {
8089
8152
  padding: 0.5rem 1rem;
8090
8153
  font-size: 0.875rem;
8154
+ min-height: var(--form-height-md);
8091
8155
  }
8092
8156
  .mld-dropdown-button__trigger--lg {
8093
8157
  padding: 0.75rem 1.5rem;
8094
8158
  font-size: 1rem;
8159
+ min-height: var(--form-height-lg);
8095
8160
  }
8096
8161
  /* Trigger disabled */
8097
8162
  .mld-dropdown-button__trigger--disabled {
@@ -9061,6 +9126,11 @@ html.dark .mld-dataframe__loading {
9061
9126
  letter-spacing: 0.025em;
9062
9127
  color: var(--text-muted);
9063
9128
  }
9129
+ .mld-rack-editor__toolbar-section {
9130
+ display: flex;
9131
+ align-items: center;
9132
+ gap: 0.5rem;
9133
+ }
9064
9134
  .mld-rack-editor__toolbar-divider {
9065
9135
  width: 1px;
9066
9136
  height: 1.5rem;
@@ -10260,8 +10330,18 @@ html.dark .mld-settings-modal__option-btn--active {
10260
10330
  border-radius: 0.5rem;
10261
10331
  border: 1px solid var(--border-color);
10262
10332
  overflow: hidden;
10333
+ box-sizing: border-box;
10263
10334
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
10264
10335
  }
10336
+ .mld-unit-input__controls--sm {
10337
+ min-height: var(--form-height-sm);
10338
+ }
10339
+ .mld-unit-input__controls--md {
10340
+ min-height: var(--form-height-md);
10341
+ }
10342
+ .mld-unit-input__controls--lg {
10343
+ min-height: var(--form-height-lg);
10344
+ }
10265
10345
  .mld-unit-input__controls:focus-within {
10266
10346
  border-color: transparent;
10267
10347
  box-shadow: 0 0 0 2px var(--color-primary);
@@ -10283,6 +10363,7 @@ html.dark .mld-settings-modal__option-btn--active {
10283
10363
  color: var(--text-primary);
10284
10364
  border: none;
10285
10365
  outline: none;
10366
+ line-height: 1.25;
10286
10367
  -webkit-appearance: textfield;
10287
10368
  -moz-appearance: textfield;
10288
10369
  appearance: textfield;
@@ -11122,6 +11203,9 @@ html.dark .mld-settings-modal__option-btn--active {
11122
11203
  .mld-datetime-picker__footer-btn:hover {
11123
11204
  opacity: 0.8;
11124
11205
  }
11206
+ .mld-datetime-picker__footer-btn + .mld-datetime-picker__footer-btn {
11207
+ margin-left: 0.75rem;
11208
+ }
11125
11209
  .mld-datetime-picker__footer-btn--muted {
11126
11210
  color: var(--text-muted);
11127
11211
  }
@@ -11910,8 +11994,11 @@ html.dark .mld-settings-modal__option-btn--active {
11910
11994
  border-radius: 0.5rem;
11911
11995
  font-weight: 500;
11912
11996
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
11997
+ line-height: 1.25;
11998
+ white-space: nowrap;
11913
11999
  cursor: pointer;
11914
12000
  border: none;
12001
+ box-sizing: border-box;
11915
12002
  }
11916
12003
  .mld-button:focus {
11917
12004
  outline: none;
@@ -11977,14 +12064,17 @@ html.dark .mld-button:focus {
11977
12064
  .mld-button--sm {
11978
12065
  padding: 0.375rem 0.75rem;
11979
12066
  font-size: 0.875rem;
12067
+ min-height: var(--form-height-sm);
11980
12068
  }
11981
12069
  .mld-button--md {
11982
12070
  padding: 0.5rem 1rem;
11983
12071
  font-size: 0.875rem;
12072
+ min-height: var(--form-height-md);
11984
12073
  }
11985
12074
  .mld-button--lg {
11986
12075
  padding: 0.75rem 1.5rem;
11987
12076
  font-size: 1rem;
12077
+ min-height: var(--form-height-lg);
11988
12078
  }
11989
12079
 
11990
12080
  /* Spinner */
@@ -12008,6 +12098,8 @@ to {
12008
12098
  border: 1px solid var(--border-color);
12009
12099
  background-color: var(--bg-secondary);
12010
12100
  color: var(--text-primary);
12101
+ box-sizing: border-box;
12102
+ line-height: 1.25;
12011
12103
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
12012
12104
  }
12013
12105
  .mld-input::placeholder {
@@ -12035,14 +12127,17 @@ to {
12035
12127
  .mld-input--sm {
12036
12128
  padding: 0.375rem 0.625rem;
12037
12129
  font-size: 0.875rem;
12130
+ min-height: var(--form-height-sm);
12038
12131
  }
12039
12132
  .mld-input--md {
12040
12133
  padding: 0.5rem 0.75rem;
12041
12134
  font-size: 0.875rem;
12135
+ min-height: var(--form-height-md);
12042
12136
  }
12043
12137
  .mld-input--lg {
12044
12138
  padding: 0.75rem 1rem;
12045
12139
  font-size: 1rem;
12140
+ min-height: var(--form-height-lg);
12046
12141
  }
12047
12142
  /* BaseTextarea Component Styles */
12048
12143
  .mld-textarea {
@@ -12109,6 +12204,8 @@ to {
12109
12204
  cursor: pointer;
12110
12205
  appearance: none;
12111
12206
  padding-right: 2.5rem;
12207
+ box-sizing: border-box;
12208
+ line-height: 1.25;
12112
12209
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
12113
12210
  }
12114
12211
  .mld-select__control:focus {
@@ -12131,16 +12228,19 @@ to {
12131
12228
  padding: 0.375rem 0.625rem;
12132
12229
  padding-right: 2.5rem;
12133
12230
  font-size: 0.875rem;
12231
+ min-height: var(--form-height-sm);
12134
12232
  }
12135
12233
  .mld-select__control--md {
12136
12234
  padding: 0.5rem 0.75rem;
12137
12235
  padding-right: 2.5rem;
12138
12236
  font-size: 0.875rem;
12237
+ min-height: var(--form-height-md);
12139
12238
  }
12140
12239
  .mld-select__control--lg {
12141
12240
  padding: 0.75rem 1rem;
12142
12241
  padding-right: 2.5rem;
12143
12242
  font-size: 1rem;
12243
+ min-height: var(--form-height-lg);
12144
12244
  }
12145
12245
  .mld-select__icon {
12146
12246
  position: absolute;
@@ -12874,6 +12974,7 @@ html.dark .mld-slider__track {
12874
12974
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
12875
12975
  text-align: center;
12876
12976
  font-family: inherit;
12977
+ box-sizing: border-box;
12877
12978
  }
12878
12979
  .mld-segmented-control__option:focus-visible {
12879
12980
  outline: none;
@@ -12939,14 +13040,17 @@ html.dark .mld-slider__track {
12939
13040
  .mld-segmented-control__option--simple.mld-segmented-control__option--sm {
12940
13041
  padding: 0.375rem 0.75rem;
12941
13042
  font-size: 0.75rem;
13043
+ min-height: var(--form-height-sm);
12942
13044
  }
12943
13045
  .mld-segmented-control__option--simple.mld-segmented-control__option--md {
12944
13046
  padding: 0.5rem 1rem;
12945
13047
  font-size: 0.875rem;
13048
+ min-height: var(--form-height-md);
12946
13049
  }
12947
13050
  .mld-segmented-control__option--simple.mld-segmented-control__option--lg {
12948
13051
  padding: 0.625rem 1.25rem;
12949
13052
  font-size: 1rem;
13053
+ min-height: var(--form-height-lg);
12950
13054
  }
12951
13055
 
12952
13056
  /* Size variants - card */
@@ -13281,6 +13385,8 @@ html.dark .mld-pill__remove:hover {
13281
13385
  cursor: pointer;
13282
13386
  border: none;
13283
13387
  white-space: nowrap;
13388
+ box-sizing: border-box;
13389
+ line-height: 1.25;
13284
13390
  }
13285
13391
  .mld-dropdown-button__trigger:focus {
13286
13392
  outline: none;
@@ -13339,14 +13445,17 @@ html.dark .mld-dropdown-button__trigger:focus {
13339
13445
  .mld-dropdown-button__trigger--sm {
13340
13446
  padding: 0.375rem 0.75rem;
13341
13447
  font-size: 0.875rem;
13448
+ min-height: var(--form-height-sm);
13342
13449
  }
13343
13450
  .mld-dropdown-button__trigger--md {
13344
13451
  padding: 0.5rem 1rem;
13345
13452
  font-size: 0.875rem;
13453
+ min-height: var(--form-height-md);
13346
13454
  }
13347
13455
  .mld-dropdown-button__trigger--lg {
13348
13456
  padding: 0.75rem 1.5rem;
13349
13457
  font-size: 1rem;
13458
+ min-height: var(--form-height-lg);
13350
13459
  }
13351
13460
 
13352
13461
  /* Trigger disabled */
@@ -14032,6 +14141,8 @@ to { transform: rotate(360deg);
14032
14141
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
14033
14142
  cursor: pointer;
14034
14143
  padding-right: 2.5rem;
14144
+ box-sizing: border-box;
14145
+ line-height: 1.25;
14035
14146
  }
14036
14147
  .mld-date-picker__input:focus {
14037
14148
  outline: none;
@@ -14041,14 +14152,17 @@ to { transform: rotate(360deg);
14041
14152
  .mld-date-picker__input--sm {
14042
14153
  padding: 0.375rem 0.625rem;
14043
14154
  font-size: 0.875rem;
14155
+ min-height: var(--form-height-sm);
14044
14156
  }
14045
14157
  .mld-date-picker__input--md {
14046
14158
  padding: 0.5rem 0.75rem;
14047
14159
  font-size: 0.875rem;
14160
+ min-height: var(--form-height-md);
14048
14161
  }
14049
14162
  .mld-date-picker__input--lg {
14050
14163
  padding: 0.75rem 1rem;
14051
14164
  font-size: 1rem;
14165
+ min-height: var(--form-height-lg);
14052
14166
  }
14053
14167
  .mld-date-picker__input--error {
14054
14168
  border-color: var(--mld-error);
@@ -14385,6 +14499,7 @@ to { transform: rotate(360deg);
14385
14499
  gap: 0.375rem;
14386
14500
  align-items: center;
14387
14501
  cursor: text;
14502
+ box-sizing: border-box;
14388
14503
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
14389
14504
  }
14390
14505
  .mld-tags-input:focus-within {
@@ -14405,12 +14520,15 @@ to { transform: rotate(360deg);
14405
14520
  }
14406
14521
  .mld-tags-input--sm {
14407
14522
  padding: 0.25rem 0.5rem;
14523
+ min-height: var(--form-height-sm);
14408
14524
  }
14409
14525
  .mld-tags-input--md {
14410
14526
  padding: 0.5rem 0.75rem;
14527
+ min-height: var(--form-height-md);
14411
14528
  }
14412
14529
  .mld-tags-input--lg {
14413
14530
  padding: 0.625rem 1rem;
14531
+ min-height: var(--form-height-lg);
14414
14532
  }
14415
14533
 
14416
14534
  /* Tags */
@@ -14480,8 +14598,18 @@ to { transform: rotate(360deg);
14480
14598
  border-radius: 0.5rem;
14481
14599
  border: 1px solid var(--border-color);
14482
14600
  overflow: hidden;
14601
+ box-sizing: border-box;
14483
14602
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
14484
14603
  }
14604
+ .mld-number-input--sm {
14605
+ min-height: var(--form-height-sm);
14606
+ }
14607
+ .mld-number-input--md {
14608
+ min-height: var(--form-height-md);
14609
+ }
14610
+ .mld-number-input--lg {
14611
+ min-height: var(--form-height-lg);
14612
+ }
14485
14613
  .mld-number-input:focus-within {
14486
14614
  border-color: transparent;
14487
14615
  box-shadow: 0 0 0 2px var(--color-primary);
@@ -14539,6 +14667,7 @@ to { transform: rotate(360deg);
14539
14667
  color: var(--text-primary);
14540
14668
  border: none;
14541
14669
  outline: none;
14670
+ line-height: 1.25;
14542
14671
  -webkit-appearance: textfield;
14543
14672
  -moz-appearance: textfield;
14544
14673
  appearance: textfield;
@@ -15167,6 +15296,7 @@ to {
15167
15296
  transition: color 0.15s ease, background-color 0.15s ease;
15168
15297
  cursor: pointer;
15169
15298
  border: none;
15299
+ box-sizing: border-box;
15170
15300
  }
15171
15301
  .mld-icon-button:focus {
15172
15302
  outline: none;
@@ -15226,12 +15356,15 @@ to {
15226
15356
  /* Sizes */
15227
15357
  .mld-icon-button--sm {
15228
15358
  padding: 0.375rem;
15359
+ min-height: var(--form-height-sm);
15229
15360
  }
15230
15361
  .mld-icon-button--md {
15231
15362
  padding: 0.5rem;
15363
+ min-height: var(--form-height-md);
15232
15364
  }
15233
15365
  .mld-icon-button--lg {
15234
15366
  padding: 0.75rem;
15367
+ min-height: var(--form-height-lg);
15235
15368
  }
15236
15369
  .mld-icon-button__icon--sm,
15237
15370
  .mld-icon-button__icon--md,
@@ -17580,6 +17713,11 @@ to {
17580
17713
  letter-spacing: 0.025em;
17581
17714
  color: var(--text-muted);
17582
17715
  }
17716
+ .mld-rack-editor__toolbar-section {
17717
+ display: flex;
17718
+ align-items: center;
17719
+ gap: 0.5rem;
17720
+ }
17583
17721
  .mld-rack-editor__toolbar-divider {
17584
17722
  width: 1px;
17585
17723
  height: 1.5rem;
@@ -19948,8 +20086,18 @@ to {
19948
20086
  border-radius: 0.5rem;
19949
20087
  border: 1px solid var(--border-color);
19950
20088
  overflow: hidden;
20089
+ box-sizing: border-box;
19951
20090
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
19952
20091
  }
20092
+ .mld-concentration-input__controls--sm {
20093
+ min-height: var(--form-height-sm);
20094
+ }
20095
+ .mld-concentration-input__controls--md {
20096
+ min-height: var(--form-height-md);
20097
+ }
20098
+ .mld-concentration-input__controls--lg {
20099
+ min-height: var(--form-height-lg);
20100
+ }
19953
20101
  .mld-concentration-input__controls:focus-within {
19954
20102
  border-color: transparent;
19955
20103
  box-shadow: 0 0 0 2px var(--color-primary);
@@ -19972,6 +20120,7 @@ to {
19972
20120
  color: var(--text-primary);
19973
20121
  border: none;
19974
20122
  outline: none;
20123
+ line-height: 1.25;
19975
20124
  -webkit-appearance: textfield;
19976
20125
  -moz-appearance: textfield;
19977
20126
  appearance: textfield;
@@ -21706,8 +21855,18 @@ to {
21706
21855
  border-radius: 0.5rem;
21707
21856
  border: 1px solid var(--border-color);
21708
21857
  overflow: hidden;
21858
+ box-sizing: border-box;
21709
21859
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
21710
21860
  }
21861
+ .mld-unit-input__controls--sm {
21862
+ min-height: var(--form-height-sm);
21863
+ }
21864
+ .mld-unit-input__controls--md {
21865
+ min-height: var(--form-height-md);
21866
+ }
21867
+ .mld-unit-input__controls--lg {
21868
+ min-height: var(--form-height-lg);
21869
+ }
21711
21870
  .mld-unit-input__controls:focus-within {
21712
21871
  border-color: transparent;
21713
21872
  box-shadow: 0 0 0 2px var(--color-primary);
@@ -21730,6 +21889,7 @@ to {
21730
21889
  color: var(--text-primary);
21731
21890
  border: none;
21732
21891
  outline: none;
21892
+ line-height: 1.25;
21733
21893
  -webkit-appearance: textfield;
21734
21894
  -moz-appearance: textfield;
21735
21895
  appearance: textfield;
@@ -22462,6 +22622,9 @@ to { transform: rotate(360deg);
22462
22622
  .mld-datetime-picker__footer-btn:hover {
22463
22623
  opacity: 0.8;
22464
22624
  }
22625
+ .mld-datetime-picker__footer-btn + .mld-datetime-picker__footer-btn {
22626
+ margin-left: 0.75rem;
22627
+ }
22465
22628
  .mld-datetime-picker__footer-btn--muted {
22466
22629
  color: var(--text-muted);
22467
22630
  }
@@ -1,3 +1,3 @@
1
- export type { ContainerDirection, ButtonVariant, ButtonSize, InputType, ModalSize, AlertType, Toast, TabItem, SelectOption, RadioOption, FormFieldProps, SidebarToolSection, CollapsibleState, TopBarVariant, TopBarPage, TopBarTab, TopBarTabOption, TopBarSettingsConfig, WellPlateFormat, WellState, WellPlateSelectionMode, WellPlateSize, WellShape, Well, HeatmapColorScale, HeatmapConfig, SlotPosition, WellExtendedData, WellEditData, WellEditField, WellLegendItem, PlateCondition, ColumnCondition, RowCondition, Rack, SampleType, PlateMap, PlateMapEditorState, ProtocolStepType, ProtocolStepStatus, ProtocolStep, SampleGroup, GroupItem, FileUploaderMode, SegmentedOption, SegmentedControlVariant, SegmentedControlSize, MultiSelectOption, MultiSelectSize, PillVariant, PillSize, CalendarSelectionMode, CalendarMarker, CalendarDayContext, SortDirection, SortState, DataFrameColumn, PaginationState, SpinnerSize, SpinnerVariant, DividerSpacing, StatusType, ProgressVariant, ProgressSize, AvatarSize, EmptyStateColor, EmptyStateSize, BreadcrumbItem, TooltipPosition, ConfirmVariant, SettingsTab, NumberNotation, UnitOption, WizardStep, WizardStepState, AuditEntryType, AuditEntry, BatchItemStatus, BatchItem, BatchSummary, TimePickerFormat, TimeRange, ScheduleView, ScheduleEventStatus, ScheduleEvent, ScheduleBlockedSlot, ScheduleSlotContext, ScheduleEventCreateContext, ScheduleEventUpdateContext, ResourceStatus, ResourceSpec, } from './components';
1
+ export type { ContainerDirection, ButtonVariant, ButtonSize, InputType, ModalSize, AlertType, Toast, TabItem, SelectOption, RadioOption, FormFieldProps, SidebarToolSection, CollapsibleState, TopBarVariant, TopBarPage, TopBarTab, TopBarTabOption, TopBarSettingsConfig, WellPlateFormat, WellState, WellPlateSelectionMode, WellPlateSize, WellShape, Well, HeatmapColorScale, HeatmapConfig, SlotPosition, WellExtendedData, WellEditData, WellEditField, WellLegendItem, PlateCondition, ColumnCondition, RowCondition, Rack, SampleType, PlateMap, PlateMapEditorState, ProtocolStepType, ProtocolStepStatus, ProtocolStep, SampleGroup, GroupItem, FileUploaderMode, SegmentedOption, SegmentedControlVariant, SegmentedControlSize, MultiSelectOption, MultiSelectSize, PillVariant, PillSize, CalendarSelectionMode, CalendarMarker, CalendarDayContext, SortDirection, SortState, DataFrameColumn, PaginationState, SpinnerSize, SpinnerVariant, DividerSpacing, StatusType, ProgressVariant, ProgressSize, AvatarSize, EmptyStateColor, EmptyStateSize, BreadcrumbItem, TooltipPosition, ConfirmVariant, SettingsTab, NumberNotation, UnitOption, WizardStep, WizardStepState, AuditEntryType, AuditEntry, BatchItemStatus, BatchItem, BatchSummary, TimePickerFormat, TimeRange, ScheduleView, ScheduleEventStatus, ScheduleEvent, ScheduleBlockedSlot, ScheduleSlotContext, ScheduleEventCreateContext, ScheduleEventUpdateContext, ResourceStatus, ResourceSpec, MoleculeData, StorageCondition, ReagentColumn, Reagent, TreeNodeType, BadgeVariant, TreeNode, } from './components';
2
2
  export type { AuthConfig, UserInfo, LoginResponse, TokenVerifyResponse, RegisterRequest, UpdateProfileRequest, CredentialInfo, } from './auth';
3
3
  export type { PluginInfo, PluginNavItem, PluginSettings, PluginSettingField, PlatformContext, PlatformContextOptions, PlatformEventType, PlatformEvent, ThemeMode, ColorPalette, TableDensity, } from './platform';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morscherlab/mld-sdk",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "description": "MLD Platform SDK - Vue 3 components, composables, and types for plugin development",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,17 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, ref } from 'vue'
3
-
4
- type AuditEntryType = 'create' | 'update' | 'delete' | 'system'
5
-
6
- interface AuditEntry {
7
- id: string
8
- type: AuditEntryType
9
- action: string
10
- detail?: string
11
- user?: string
12
- timestamp: Date | string
13
- metadata?: Record<string, unknown>
14
- }
3
+ import type { AuditEntryType, AuditEntry } from '../types'
15
4
 
16
5
  interface Props {
17
6
  entries: AuditEntry[]
@@ -1,25 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, ref, watch, nextTick } from 'vue'
3
-
4
- type BatchItemStatus = 'pending' | 'processing' | 'completed' | 'error' | 'skipped'
5
-
6
- interface BatchItem {
7
- id: string
8
- label: string
9
- status: BatchItemStatus
10
- progress?: number
11
- message?: string
12
- }
13
-
14
- interface BatchSummary {
15
- total: number
16
- completed: number
17
- processing: number
18
- error: number
19
- pending: number
20
- skipped: number
21
- percent: number
22
- }
3
+ import type { BatchItem, BatchSummary } from '../types'
23
4
 
24
5
  interface Props {
25
6
  items: BatchItem[]
@@ -1,9 +1,5 @@
1
1
  <script setup lang="ts">
2
- interface BreadcrumbItem {
3
- label: string
4
- to?: string
5
- href?: string
6
- }
2
+ import type { BreadcrumbItem } from '../types'
7
3
 
8
4
  interface Props {
9
5
  items: BreadcrumbItem[]