@morscherlab/mint-sdk 1.2.0-beta.4 → 1.2.0-beta.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.
Files changed (136) hide show
  1. package/dist/{EmptyState-p90quq8Z.js → EmptyState-NBqf2_8z.js} +2 -2
  2. package/dist/{EmptyState-p90quq8Z.js.map → EmptyState-NBqf2_8z.js.map} +1 -1
  3. package/dist/{ExperimentPopover-tLwJ7XF4.js → ExperimentPopover-CfOdh5Rm.js} +3 -3
  4. package/dist/{ExperimentPopover-tLwJ7XF4.js.map → ExperimentPopover-CfOdh5Rm.js.map} +1 -1
  5. package/dist/{ExperimentSelectorModal-B6P2msT4.js → ExperimentSelectorModal-DvIagrxY.js} +4 -4
  6. package/dist/{ExperimentSelectorModal-B6P2msT4.js.map → ExperimentSelectorModal-DvIagrxY.js.map} +1 -1
  7. package/dist/{SettingsModal-CkNM8qAI.js → SettingsModal-W3TYfnP9.js} +4 -7
  8. package/dist/SettingsModal-W3TYfnP9.js.map +1 -0
  9. package/dist/__tests__/components/PluginWorkspaceView.internal.test.d.ts +1 -0
  10. package/dist/__tests__/components/SecretInput.test.d.ts +1 -0
  11. package/dist/__tests__/components/WellEditPopupInternal.test.d.ts +1 -0
  12. package/dist/components/AppAvatarMenu.vue.d.ts +4 -0
  13. package/dist/components/AppSidebar.vue.d.ts +1 -1
  14. package/dist/components/BioTemplateExperimentWorkspaceView.vue.d.ts +1 -1
  15. package/dist/components/DropdownButton.vue.d.ts +2 -0
  16. package/dist/components/FitPanel.vue.d.ts +1 -1
  17. package/dist/components/PluginWorkspaceView.props.d.ts +29 -1
  18. package/dist/components/PluginWorkspaceView.vue.d.ts +5 -5
  19. package/dist/components/SecretInput.vue.d.ts +28 -0
  20. package/dist/components/SmartGroupFieldRecipe.vue.d.ts +1 -1
  21. package/dist/components/index.d.ts +9 -0
  22. package/dist/components/index.js +8 -8
  23. package/dist/components/internal/WellEditPopupInternal.vue.d.ts +3 -1
  24. package/dist/components/internal/WorkspaceControlsInternal.vue.d.ts +23 -0
  25. package/dist/components/internal/WorkspaceShellInternal.vue.d.ts +70 -0
  26. package/dist/components/internal/WorkspaceSidebarInternal.vue.d.ts +43 -0
  27. package/dist/{components-MGNL6tRn.js → components-B80gV0P6.js} +575 -561
  28. package/dist/components-B80gV0P6.js.map +1 -0
  29. package/dist/composables/flattenWorkspaceBindings.d.ts +61 -0
  30. package/dist/composables/index.d.ts +5 -0
  31. package/dist/composables/index.js +9 -9
  32. package/dist/composables/pluginWorkspaceModel.d.ts +164 -0
  33. package/dist/composables/useAsync.d.ts +5 -1
  34. package/dist/composables/useBioTemplateWorkspace.d.ts +4 -20
  35. package/dist/composables/useCommandHistory.d.ts +5 -1
  36. package/dist/composables/useFocusTrap.d.ts +21 -0
  37. package/dist/composables/useMenuKeyboard.d.ts +29 -0
  38. package/dist/composables/useOptimisticMutation.d.ts +5 -1
  39. package/dist/composables/usePluginWorkspace.d.ts +51 -0
  40. package/dist/composables/useResourceCrud.d.ts +5 -1
  41. package/dist/composables/useRovingFocus.d.ts +24 -0
  42. package/dist/composables/useWellPainting.d.ts +5 -1
  43. package/dist/composables/useWellPlateAdapter.d.ts +5 -1
  44. package/dist/composables/useWellPlateValidation.d.ts +5 -1
  45. package/dist/composables/workspaceRecipes.d.ts +188 -0
  46. package/dist/{composables-CKxOcvgh.js → composables-C8mmD5ta.js} +65 -17
  47. package/dist/composables-C8mmD5ta.js.map +1 -0
  48. package/dist/{experiment-utils-CLnzPPq5.js → experiment-utils-DV3DrvE_.js} +70 -51
  49. package/dist/experiment-utils-DV3DrvE_.js.map +1 -0
  50. package/dist/index.d.ts +1 -0
  51. package/dist/index.js +13 -13
  52. package/dist/install.js +7 -7
  53. package/dist/styles.css +100 -49
  54. package/dist/templates/builderReadUtils.d.ts +1 -1
  55. package/dist/templates/index.js +4 -4
  56. package/dist/{templates-BTJ9C9Kb.js → templates-CK72aKO1.js} +14 -23
  57. package/dist/templates-CK72aKO1.js.map +1 -0
  58. package/dist/types/form-builder.d.ts +1 -1
  59. package/dist/{useControlSchema-CXhxTul7.js → useControlSchema-_OVhavKq.js} +280 -63
  60. package/dist/useControlSchema-_OVhavKq.js.map +1 -0
  61. package/dist/{useDropdownState-DSb3BC3N.js → useDropdownState-D5G4UvWd.js} +2 -2
  62. package/dist/{useDropdownState-DSb3BC3N.js.map → useDropdownState-D5G4UvWd.js.map} +1 -1
  63. package/dist/{useExperimentSelector-D0pjj9WH.js → useExperimentSelector-DSEckf_g.js} +3 -3
  64. package/dist/{useExperimentSelector-D0pjj9WH.js.map → useExperimentSelector-DSEckf_g.js.map} +1 -1
  65. package/dist/{useFormBuilder-CuOFB3aP.js → useFormBuilder-Bd714C7y.js} +2 -2
  66. package/dist/{useFormBuilder-CuOFB3aP.js.map → useFormBuilder-Bd714C7y.js.map} +1 -1
  67. package/dist/{useProtocolTemplates-BWhQIWV5.js → useProtocolTemplates-Dq5Pzwyd.js} +481 -46
  68. package/dist/useProtocolTemplates-Dq5Pzwyd.js.map +1 -0
  69. package/dist/utils/pluginSecrets.d.ts +53 -0
  70. package/dist/utils/records.d.ts +4 -0
  71. package/package.json +1 -1
  72. package/src/__tests__/components/AppAvatarMenu.test.ts +123 -0
  73. package/src/__tests__/components/BaseTabs.test.ts +67 -0
  74. package/src/__tests__/components/DropdownButton.test.ts +134 -0
  75. package/src/__tests__/components/PluginWorkspaceView.internal.test.ts +230 -0
  76. package/src/__tests__/components/SecretInput.test.ts +87 -0
  77. package/src/__tests__/components/WellEditPopupInternal.test.ts +108 -0
  78. package/src/__tests__/composables/usePluginClient.test.ts +140 -0
  79. package/src/components/AppAvatarMenu.vue +34 -3
  80. package/src/components/BaseModal.vue +8 -56
  81. package/src/components/BaseTabs.vue +26 -1
  82. package/src/components/BioTemplateExperimentWorkspaceView.vue +10 -21
  83. package/src/components/BioTemplatePackWorkspaceView.vue +11 -15
  84. package/src/components/BioTemplatePresetWorkspaceView.vue +8 -13
  85. package/src/components/ComponentBindingRenderer.vue +1 -3
  86. package/src/components/ControlWorkspaceView.vue +11 -22
  87. package/src/components/DoseDesignWorkspaceView.vue +6 -25
  88. package/src/components/DropdownButton.vue +32 -2
  89. package/src/components/PluginWorkspaceView.props.ts +38 -0
  90. package/src/components/PluginWorkspaceView.vue +53 -224
  91. package/src/components/SecretInput.story.vue +79 -0
  92. package/src/components/SecretInput.vue +150 -0
  93. package/src/components/index.ts +9 -0
  94. package/src/components/internal/WellEditPopupInternal.vue +20 -1
  95. package/src/components/internal/WorkspaceControlsInternal.vue +20 -0
  96. package/src/components/internal/WorkspaceShellInternal.vue +125 -0
  97. package/src/components/internal/WorkspaceSidebarInternal.vue +82 -0
  98. package/src/composables/experimentDesignData.ts +1 -3
  99. package/src/composables/flattenWorkspaceBindings.ts +104 -0
  100. package/src/composables/formBuilderRegistry.ts +5 -0
  101. package/src/composables/index.ts +26 -0
  102. package/src/composables/pluginWorkspaceModel.ts +182 -0
  103. package/src/composables/useAsync.ts +5 -1
  104. package/src/composables/useBioTemplatePackWorkspace.ts +15 -9
  105. package/src/composables/useBioTemplatePresetWorkspace.ts +14 -15
  106. package/src/composables/useBioTemplateWorkspace.ts +18 -43
  107. package/src/composables/useCommandHistory.ts +5 -1
  108. package/src/composables/useFocusTrap.ts +91 -0
  109. package/src/composables/useMenuKeyboard.ts +90 -0
  110. package/src/composables/useOptimisticMutation.ts +5 -1
  111. package/src/composables/usePluginClient.ts +42 -4
  112. package/src/composables/usePluginWorkspace.ts +208 -0
  113. package/src/composables/useResourceCrud.ts +5 -1
  114. package/src/composables/useRovingFocus.ts +66 -0
  115. package/src/composables/useWellPainting.ts +5 -1
  116. package/src/composables/useWellPlateAdapter.ts +5 -1
  117. package/src/composables/useWellPlateValidation.ts +5 -1
  118. package/src/composables/workspaceRecipes.ts +267 -0
  119. package/src/index.ts +16 -0
  120. package/src/styles/components/secret-input.css +60 -0
  121. package/src/styles/index.css +1 -0
  122. package/src/templates/builderReadUtils.ts +1 -3
  123. package/src/templates/componentTargetResolvers.ts +1 -3
  124. package/src/templates/controlSchemaTargets.ts +1 -3
  125. package/src/types/form-builder.ts +1 -0
  126. package/src/utils/formModelSync.ts +1 -3
  127. package/src/utils/pluginIcon.ts +1 -3
  128. package/src/utils/pluginSecrets.ts +102 -0
  129. package/src/utils/records.ts +9 -0
  130. package/dist/SettingsModal-CkNM8qAI.js.map +0 -1
  131. package/dist/components-MGNL6tRn.js.map +0 -1
  132. package/dist/composables-CKxOcvgh.js.map +0 -1
  133. package/dist/experiment-utils-CLnzPPq5.js.map +0 -1
  134. package/dist/templates-BTJ9C9Kb.js.map +0 -1
  135. package/dist/useControlSchema-CXhxTul7.js.map +0 -1
  136. package/dist/useProtocolTemplates-BWhQIWV5.js.map +0 -1
package/dist/styles.css CHANGED
@@ -15242,21 +15242,21 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1);
15242
15242
  text-decoration: underline;
15243
15243
  }
15244
15244
 
15245
- .mint-component-binding-renderer[data-v-ec0e5797] {
15245
+ .mint-component-binding-renderer[data-v-e6c3e169] {
15246
15246
  display: grid;
15247
15247
  gap: 1rem;
15248
15248
  min-width: 0;
15249
15249
  }
15250
- .mint-component-binding-renderer--grid[data-v-ec0e5797] {
15250
+ .mint-component-binding-renderer--grid[data-v-e6c3e169] {
15251
15251
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr));
15252
15252
  }
15253
- .mint-component-binding-renderer--stack[data-v-ec0e5797] {
15253
+ .mint-component-binding-renderer--stack[data-v-e6c3e169] {
15254
15254
  grid-template-columns: minmax(0, 1fr);
15255
15255
  }
15256
- .mint-component-binding-renderer--dense[data-v-ec0e5797] {
15256
+ .mint-component-binding-renderer--dense[data-v-e6c3e169] {
15257
15257
  gap: 0.75rem;
15258
15258
  }
15259
- .mint-component-binding-renderer__item[data-v-ec0e5797] {
15259
+ .mint-component-binding-renderer__item[data-v-e6c3e169] {
15260
15260
  min-width: 0;
15261
15261
  overflow: hidden;
15262
15262
  border: 1px solid var(--border-color, #e5e7eb);
@@ -15264,7 +15264,7 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1);
15264
15264
  background: var(--bg-card, #ffffff);
15265
15265
  box-shadow: var(--shadow-sm, 0 1px 2px rgb(15 23 42 / 0.06));
15266
15266
  }
15267
- .mint-component-binding-renderer__header[data-v-ec0e5797] {
15267
+ .mint-component-binding-renderer__header[data-v-e6c3e169] {
15268
15268
  display: flex;
15269
15269
  align-items: flex-start;
15270
15270
  justify-content: space-between;
@@ -15273,37 +15273,37 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1);
15273
15273
  border-bottom: 1px solid var(--border-color, #e5e7eb);
15274
15274
  background: var(--bg-secondary, #f8fafc);
15275
15275
  }
15276
- .mint-component-binding-renderer__title-group[data-v-ec0e5797] {
15276
+ .mint-component-binding-renderer__title-group[data-v-e6c3e169] {
15277
15277
  min-width: 0;
15278
15278
  }
15279
- .mint-component-binding-renderer__component[data-v-ec0e5797] {
15279
+ .mint-component-binding-renderer__component[data-v-e6c3e169] {
15280
15280
  margin: 0;
15281
15281
  color: var(--text-primary, #0f172a);
15282
15282
  font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
15283
15283
  font-size: 0.8125rem;
15284
15284
  font-weight: 600;
15285
15285
  }
15286
- .mint-component-binding-renderer__source[data-v-ec0e5797],
15287
- .mint-component-binding-renderer__description[data-v-ec0e5797],
15288
- .mint-component-binding-renderer__empty[data-v-ec0e5797] {
15286
+ .mint-component-binding-renderer__source[data-v-e6c3e169],
15287
+ .mint-component-binding-renderer__description[data-v-e6c3e169],
15288
+ .mint-component-binding-renderer__empty[data-v-e6c3e169] {
15289
15289
  margin: 0;
15290
15290
  color: var(--text-secondary, #475569);
15291
15291
  font-size: 0.75rem;
15292
15292
  line-height: 1.4;
15293
15293
  }
15294
- .mint-component-binding-renderer__description[data-v-ec0e5797] {
15294
+ .mint-component-binding-renderer__description[data-v-e6c3e169] {
15295
15295
  max-width: 24rem;
15296
15296
  text-align: right;
15297
15297
  }
15298
- .mint-component-binding-renderer__body[data-v-ec0e5797] {
15298
+ .mint-component-binding-renderer__body[data-v-e6c3e169] {
15299
15299
  min-width: 0;
15300
15300
  padding: 1rem;
15301
15301
  }
15302
- .mint-component-binding-renderer--dense .mint-component-binding-renderer__header[data-v-ec0e5797],
15303
- .mint-component-binding-renderer--dense .mint-component-binding-renderer__body[data-v-ec0e5797] {
15302
+ .mint-component-binding-renderer--dense .mint-component-binding-renderer__header[data-v-e6c3e169],
15303
+ .mint-component-binding-renderer--dense .mint-component-binding-renderer__body[data-v-e6c3e169] {
15304
15304
  padding: 0.75rem;
15305
15305
  }
15306
- .mint-component-binding-renderer__empty[data-v-ec0e5797] {
15306
+ .mint-component-binding-renderer__empty[data-v-e6c3e169] {
15307
15307
  padding: 1rem;
15308
15308
  border: 1px dashed var(--border-color, #e5e7eb);
15309
15309
  border-radius: 0.5rem;
@@ -15311,25 +15311,25 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1);
15311
15311
  text-align: center;
15312
15312
  }
15313
15313
  @media (max-width: 720px) {
15314
- .mint-component-binding-renderer__header[data-v-ec0e5797] {
15314
+ .mint-component-binding-renderer__header[data-v-e6c3e169] {
15315
15315
  display: block;
15316
15316
  }
15317
- .mint-component-binding-renderer__description[data-v-ec0e5797] {
15317
+ .mint-component-binding-renderer__description[data-v-e6c3e169] {
15318
15318
  max-width: none;
15319
15319
  margin-top: 0.25rem;
15320
15320
  text-align: left;
15321
15321
  }
15322
15322
  }
15323
15323
 
15324
- .mint-control-workspace-view[data-v-8121a7e6] {
15324
+ .mint-control-workspace-view[data-v-f3b22df2] {
15325
15325
  min-width: 0;
15326
15326
  }
15327
- .mint-control-workspace-view__content[data-v-8121a7e6] {
15327
+ .mint-control-workspace-view__content[data-v-f3b22df2] {
15328
15328
  min-width: 0;
15329
15329
  padding: 1rem;
15330
15330
  }
15331
15331
 
15332
- .mint-dose-design-workspace[data-v-9923dd0b] {
15332
+ .mint-dose-design-workspace[data-v-76c99098] {
15333
15333
  display: grid;
15334
15334
  grid-template-columns: minmax(360px, 1fr) minmax(300px, 420px);
15335
15335
  gap: 1rem;
@@ -15337,7 +15337,7 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1);
15337
15337
  min-width: 0;
15338
15338
  }
15339
15339
  @media (max-width: 900px) {
15340
- .mint-dose-design-workspace[data-v-9923dd0b] {
15340
+ .mint-dose-design-workspace[data-v-76c99098] {
15341
15341
  grid-template-columns: minmax(0, 1fr);
15342
15342
  }
15343
15343
  }
@@ -15749,130 +15749,130 @@ html.dark .sg-summary code { background: rgba(255, 255, 255, 0.1);
15749
15749
  height: 0.875rem;
15750
15750
  }
15751
15751
 
15752
- .mint-bio-template-experiment-workspace[data-v-319cba33] {
15752
+ .mint-bio-template-experiment-workspace[data-v-d823d800] {
15753
15753
  display: flex;
15754
15754
  flex-direction: column;
15755
15755
  gap: 1rem;
15756
15756
  min-width: 0;
15757
15757
  }
15758
- .mint-bio-template-experiment-workspace__toolbar[data-v-319cba33] {
15758
+ .mint-bio-template-experiment-workspace__toolbar[data-v-d823d800] {
15759
15759
  display: flex;
15760
15760
  align-items: center;
15761
15761
  justify-content: space-between;
15762
15762
  gap: 0.75rem;
15763
15763
  }
15764
- .mint-bio-template-experiment-workspace__status[data-v-319cba33] {
15764
+ .mint-bio-template-experiment-workspace__status[data-v-d823d800] {
15765
15765
  flex: 1 1 auto;
15766
15766
  min-width: 0;
15767
15767
  }
15768
- .mint-bio-template-experiment-workspace__actions[data-v-319cba33] {
15768
+ .mint-bio-template-experiment-workspace__actions[data-v-d823d800] {
15769
15769
  display: flex;
15770
15770
  flex: 0 0 auto;
15771
15771
  gap: 0.5rem;
15772
15772
  }
15773
- .mint-bio-template-experiment-workspace__meta[data-v-319cba33],
15774
- .mint-bio-template-experiment-workspace__template-version[data-v-319cba33] {
15773
+ .mint-bio-template-experiment-workspace__meta[data-v-d823d800],
15774
+ .mint-bio-template-experiment-workspace__template-version[data-v-d823d800] {
15775
15775
  margin: 0;
15776
15776
  color: var(--text-secondary, #64748b);
15777
15777
  font-family: var(--font-mono, 'Fira Code', monospace);
15778
15778
  font-size: 0.75rem;
15779
15779
  }
15780
- .mint-bio-template-experiment-workspace__templates[data-v-319cba33] {
15780
+ .mint-bio-template-experiment-workspace__templates[data-v-d823d800] {
15781
15781
  display: grid;
15782
15782
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
15783
15783
  gap: 0.75rem;
15784
15784
  }
15785
- .mint-bio-template-experiment-workspace__template[data-v-319cba33] {
15785
+ .mint-bio-template-experiment-workspace__template[data-v-d823d800] {
15786
15786
  min-width: 0;
15787
15787
  padding: 1rem;
15788
15788
  border: 1px solid var(--border-color, #e5e7eb);
15789
15789
  border-radius: 0.5rem;
15790
15790
  background: var(--bg-primary, #ffffff);
15791
15791
  }
15792
- .mint-bio-template-experiment-workspace__template-id[data-v-319cba33] {
15792
+ .mint-bio-template-experiment-workspace__template-id[data-v-d823d800] {
15793
15793
  margin: 0;
15794
15794
  color: var(--text-primary, #0f172a);
15795
15795
  font-family: var(--font-mono, 'Fira Code', monospace);
15796
15796
  font-size: 0.875rem;
15797
15797
  }
15798
15798
  @media (max-width: 48rem) {
15799
- .mint-bio-template-experiment-workspace__toolbar[data-v-319cba33],
15800
- .mint-bio-template-experiment-workspace__actions[data-v-319cba33] {
15799
+ .mint-bio-template-experiment-workspace__toolbar[data-v-d823d800],
15800
+ .mint-bio-template-experiment-workspace__actions[data-v-d823d800] {
15801
15801
  align-items: stretch;
15802
15802
  flex-direction: column;
15803
15803
  }
15804
15804
  }
15805
15805
 
15806
- .mint-bio-template-preset-workspace[data-v-f889ed9c] {
15806
+ .mint-bio-template-preset-workspace[data-v-7935b698] {
15807
15807
  display: flex;
15808
15808
  flex-direction: column;
15809
15809
  gap: 1rem;
15810
15810
  min-width: 0;
15811
15811
  }
15812
- .mint-bio-template-preset-workspace__toolbar[data-v-f889ed9c] {
15812
+ .mint-bio-template-preset-workspace__toolbar[data-v-7935b698] {
15813
15813
  display: flex;
15814
15814
  align-items: center;
15815
15815
  justify-content: space-between;
15816
15816
  gap: 0.75rem;
15817
15817
  }
15818
- .mint-bio-template-preset-workspace__status[data-v-f889ed9c] {
15818
+ .mint-bio-template-preset-workspace__status[data-v-7935b698] {
15819
15819
  flex: 1 1 auto;
15820
15820
  min-width: 0;
15821
15821
  }
15822
- .mint-bio-template-preset-workspace__actions[data-v-f889ed9c] {
15822
+ .mint-bio-template-preset-workspace__actions[data-v-7935b698] {
15823
15823
  display: flex;
15824
15824
  flex: 0 0 auto;
15825
15825
  gap: 0.5rem;
15826
15826
  }
15827
- .mint-bio-template-preset-workspace__meta[data-v-f889ed9c],
15828
- .mint-bio-template-preset-workspace__sidebar-subtitle[data-v-f889ed9c],
15829
- .mint-bio-template-preset-workspace__template-meta[data-v-f889ed9c] {
15827
+ .mint-bio-template-preset-workspace__meta[data-v-7935b698],
15828
+ .mint-bio-template-preset-workspace__sidebar-subtitle[data-v-7935b698],
15829
+ .mint-bio-template-preset-workspace__template-meta[data-v-7935b698] {
15830
15830
  margin: 0;
15831
15831
  color: var(--text-secondary, #64748b);
15832
15832
  font-family: var(--font-mono, 'Fira Code', monospace);
15833
15833
  font-size: 0.75rem;
15834
15834
  }
15835
- .mint-bio-template-preset-workspace__main[data-v-f889ed9c] {
15835
+ .mint-bio-template-preset-workspace__main[data-v-7935b698] {
15836
15836
  display: grid;
15837
15837
  grid-template-columns: minmax(16rem, max-content) minmax(0, 1fr);
15838
15838
  gap: 1rem;
15839
15839
  align-items: start;
15840
15840
  min-width: 0;
15841
15841
  }
15842
- .mint-bio-template-preset-workspace__sidebar-title[data-v-f889ed9c] {
15842
+ .mint-bio-template-preset-workspace__sidebar-title[data-v-7935b698] {
15843
15843
  margin: 0;
15844
15844
  color: var(--text-primary, #0f172a);
15845
15845
  font-size: 0.875rem;
15846
15846
  font-weight: 600;
15847
15847
  }
15848
- .mint-bio-template-preset-workspace__view-nav[data-v-f889ed9c] {
15848
+ .mint-bio-template-preset-workspace__view-nav[data-v-7935b698] {
15849
15849
  margin-top: 0.5rem;
15850
15850
  }
15851
- .mint-bio-template-preset-workspace__templates[data-v-f889ed9c] {
15851
+ .mint-bio-template-preset-workspace__templates[data-v-7935b698] {
15852
15852
  display: grid;
15853
15853
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
15854
15854
  gap: 0.75rem;
15855
15855
  }
15856
- .mint-bio-template-preset-workspace__template[data-v-f889ed9c] {
15856
+ .mint-bio-template-preset-workspace__template[data-v-7935b698] {
15857
15857
  min-width: 0;
15858
15858
  padding: 1rem;
15859
15859
  border: 1px solid var(--border-color, #e5e7eb);
15860
15860
  border-radius: 0.5rem;
15861
15861
  background: var(--bg-primary, #ffffff);
15862
15862
  }
15863
- .mint-bio-template-preset-workspace__template-id[data-v-f889ed9c] {
15863
+ .mint-bio-template-preset-workspace__template-id[data-v-7935b698] {
15864
15864
  margin: 0;
15865
15865
  color: var(--text-primary, #0f172a);
15866
15866
  font-family: var(--font-mono, 'Fira Code', monospace);
15867
15867
  font-size: 0.875rem;
15868
15868
  }
15869
15869
  @media (max-width: 48rem) {
15870
- .mint-bio-template-preset-workspace__toolbar[data-v-f889ed9c],
15871
- .mint-bio-template-preset-workspace__actions[data-v-f889ed9c] {
15870
+ .mint-bio-template-preset-workspace__toolbar[data-v-7935b698],
15871
+ .mint-bio-template-preset-workspace__actions[data-v-7935b698] {
15872
15872
  align-items: stretch;
15873
15873
  flex-direction: column;
15874
15874
  }
15875
- .mint-bio-template-preset-workspace__main[data-v-f889ed9c] {
15875
+ .mint-bio-template-preset-workspace__main[data-v-7935b698] {
15876
15876
  grid-template-columns: minmax(0, 1fr);
15877
15877
  }
15878
15878
  }
@@ -26179,6 +26179,57 @@ a.mint-section-card__row:hover,
26179
26179
  button.mint-section-card__row:hover {
26180
26180
  background: var(--bg-primary);
26181
26181
  }
26182
+ /* SecretInput — plugin secret settings field with a set / not set / environment badge. */
26183
+ .mint-secret-input {
26184
+ display: flex;
26185
+ flex-direction: column;
26186
+ gap: 0.5rem;
26187
+ }
26188
+ .mint-secret-input__status {
26189
+ display: flex;
26190
+ align-items: center;
26191
+ gap: 0.5rem;
26192
+ flex-wrap: wrap;
26193
+ }
26194
+ .mint-secret-input__badge {
26195
+ display: inline-flex;
26196
+ align-items: center;
26197
+ border-radius: 999px;
26198
+ padding: 0.125rem 0.5rem;
26199
+ font-size: 0.75rem;
26200
+ font-weight: 500;
26201
+ line-height: 1.4;
26202
+ border: 1px solid transparent;
26203
+ background-color: var(--bg-tertiary);
26204
+ color: var(--text-secondary);
26205
+ }
26206
+ .mint-secret-input__badge--set {
26207
+ background-color: color-mix(in srgb, var(--mint-success) 12%, transparent);
26208
+ border-color: color-mix(in srgb, var(--mint-success) 35%, transparent);
26209
+ color: var(--mint-success);
26210
+ }
26211
+ .mint-secret-input__badge--environment {
26212
+ background-color: color-mix(in srgb, var(--mint-info) 12%, transparent);
26213
+ border-color: color-mix(in srgb, var(--mint-info) 35%, transparent);
26214
+ color: var(--mint-info);
26215
+ }
26216
+ .mint-secret-input__badge--pending {
26217
+ background-color: color-mix(in srgb, var(--mint-warning) 12%, transparent);
26218
+ border-color: color-mix(in srgb, var(--mint-warning) 35%, transparent);
26219
+ color: var(--mint-warning);
26220
+ }
26221
+ .mint-secret-input__hint {
26222
+ font-size: 0.75rem;
26223
+ color: var(--text-muted);
26224
+ }
26225
+ .mint-secret-input__actions {
26226
+ display: flex;
26227
+ align-items: center;
26228
+ gap: 0.5rem;
26229
+ }
26230
+ .mint-secret-input--error .mint-secret-input__badge {
26231
+ border-color: color-mix(in srgb, var(--mint-error) 45%, transparent);
26232
+ }
26182
26233
  /* BaseSelect Component Styles */
26183
26234
  .mint-select {
26184
26235
  position: relative;
@@ -1,4 +1,4 @@
1
- export declare function isRecord(value: unknown): value is Record<string, unknown>;
1
+ export { isRecord } from '../utils/records';
2
2
  export declare function readStringList(value: unknown, fallback: string[]): string[];
3
3
  export declare function readNumberList(value: unknown, fallback: number[]): number[];
4
4
  export declare function readString(value: unknown, fallback: string): string;
@@ -1,5 +1,5 @@
1
- import "../experiment-utils-CLnzPPq5.js";
2
- import "../EmptyState-p90quq8Z.js";
3
- import "../useControlSchema-CXhxTul7.js";
4
- import { $ as toTimeCourseRows, $t as listBioTemplatePacks, A as createSamplePrepTemplate, At as toCalibrationCurveRows, B as toBioTemplateComponentProps, Bt as validatePlateMapData, C as createFlowCytometryPanelTemplate, Ct as toInstrumentRunScheduleEvents, D as createTimeCourseTemplate, Dt as toFlowPanelRows, E as createProtocolStepsTemplate, Et as toFlowPanelDataFrame, F as getBioTemplateComponentProps, Ft as validateAssayMatrixData, G as toTemplateDataFrame, Gt as validateSampleSheetData, H as toBioTemplateComponentPropsById, Ht as validateQpcrPlateData, I as listBioTemplateComponentBindings, It as validateCalibrationCurveData, J as toDoseLayoutState, Jt as getBioTemplatePresetInfo, K as toWellMapArray, Kt as validateTimeCourseData, L as toBioTemplateComponentBindings, Lt as validateDoseResponseData, M as createPlateMapTemplate, Mt as toAssayMatrixDataFrame, N as bioTemplatePresetControlValuesToOptions, Nt as toAssayMatrixRows, O as createCalibrationCurveTemplate, Ot as toCalibrationCurveColumns, P as getBioTemplateComponentBindings, Pt as toAssayMatrixSampleOptions, Q as toTimeCourseDataFrame, Qt as getBioTemplatePackInfo, R as toBioTemplateComponentBindingsById, Rt as validateFlowCytometryPanelData, S as createInstrumentRunTemplate, St as toInstrumentRunRows, T as createAssayMatrixTemplate, Tt as toFlowPanelColumns, U as toBioTemplateComponentSnippets, Ut as validateReagentListData, V as toBioTemplateComponentPropsByComponent, Vt as validateProtocolStepsData, W as toBioTemplateComponentUsage, Wt as validateSamplePrepData, X as toWellPlateWells, Xt as searchBioTemplatePresets, Y as toPlateMapEditorState, Yt as listBioTemplatePresets, Z as toTimeCourseColumns, Zt as bioTemplatePacks, _ as createElisaAssayCollection, _t as toProtocolDataFrame, a as getBioTemplateControlDefaults, an as TEMPLATE_COLLECTION_KEY, at as toSamplePrepColumns, b as createQpcrExpressionCollection, bt as toInstrumentRunColumns, c as listBioTemplatePresetControlSchemas, cn as createTemplateEnvelope, ct as toReagentColumns, d as createBioTemplatePresetCollectionFromControls, dn as extractTemplateCollection, dt as toReagentRows, en as searchBioTemplatePacks, et as toTimeCourseSteps, f as createWellPlateScreenCollection, fn as getTemplateData, ft as toQpcrColumns, g as createFlowCytometryAssayCollection, gt as toProtocolColumns, h as createWesternBlotAssayCollection, ht as toQpcrWellPlateWells, i as createBioTemplateControlToolkit, in as searchBioTemplateCatalog, it as toSampleRows, j as createSampleSheetTemplate, jt as toAssayMatrixColumns, k as createDoseResponseTemplate, kt as toCalibrationCurveDataFrame, l as requireBioTemplateControlSchema, ln as ensureTemplateEnvelope, lt as toReagentDataFrame, m as createDefaultBioTemplate, mt as toQpcrRows, n as bioTemplateControlsToSectionFormSchemas, nn as getBioTemplateInfo, nt as toSampleDataFrame, o as getBioTemplateControlSchema, on as assertTemplateEnvelope, ot as toSamplePrepDataFrame, p as createBioTemplatePackCollection, pt as toQpcrDataFrame, q as toDoseConditions, qt as bioTemplatePresets, r as bioTemplateControlsToSidebarPanels, rn as listBioTemplateCatalog, rt as toSampleOptions, s as listBioTemplateControlSchemas, sn as createTemplateCollection, st as toSamplePrepRows, t as bioTemplateControlsToFormSchema, tn as bioTemplateCatalog, tt as toSampleColumns, u as createBioTemplatePresetCollection, un as ensureTemplateFromCollection, ut as toReagentListItems, v as createTargetedMetabolomicsCollection, vt as toProtocolRows, w as createReagentListTemplate, wt as toInstrumentRunSteps, x as createQpcrPlateTemplate, xt as toInstrumentRunDataFrame, y as createLcmsBatchCollection, yt as toProtocolSteps, z as toBioTemplateComponentImports, zt as validateInstrumentRunData } from "../templates-BTJ9C9Kb.js";
1
+ import "../experiment-utils-DV3DrvE_.js";
2
+ import "../EmptyState-NBqf2_8z.js";
3
+ import "../useControlSchema-_OVhavKq.js";
4
+ import { $ as toTimeCourseRows, $t as listBioTemplatePacks, A as createSamplePrepTemplate, At as toCalibrationCurveRows, B as toBioTemplateComponentProps, Bt as validatePlateMapData, C as createFlowCytometryPanelTemplate, Ct as toInstrumentRunScheduleEvents, D as createTimeCourseTemplate, Dt as toFlowPanelRows, E as createProtocolStepsTemplate, Et as toFlowPanelDataFrame, F as getBioTemplateComponentProps, Ft as validateAssayMatrixData, G as toTemplateDataFrame, Gt as validateSampleSheetData, H as toBioTemplateComponentPropsById, Ht as validateQpcrPlateData, I as listBioTemplateComponentBindings, It as validateCalibrationCurveData, J as toDoseLayoutState, Jt as getBioTemplatePresetInfo, K as toWellMapArray, Kt as validateTimeCourseData, L as toBioTemplateComponentBindings, Lt as validateDoseResponseData, M as createPlateMapTemplate, Mt as toAssayMatrixDataFrame, N as bioTemplatePresetControlValuesToOptions, Nt as toAssayMatrixRows, O as createCalibrationCurveTemplate, Ot as toCalibrationCurveColumns, P as getBioTemplateComponentBindings, Pt as toAssayMatrixSampleOptions, Q as toTimeCourseDataFrame, Qt as getBioTemplatePackInfo, R as toBioTemplateComponentBindingsById, Rt as validateFlowCytometryPanelData, S as createInstrumentRunTemplate, St as toInstrumentRunRows, T as createAssayMatrixTemplate, Tt as toFlowPanelColumns, U as toBioTemplateComponentSnippets, Ut as validateReagentListData, V as toBioTemplateComponentPropsByComponent, Vt as validateProtocolStepsData, W as toBioTemplateComponentUsage, Wt as validateSamplePrepData, X as toWellPlateWells, Xt as searchBioTemplatePresets, Y as toPlateMapEditorState, Yt as listBioTemplatePresets, Z as toTimeCourseColumns, Zt as bioTemplatePacks, _ as createElisaAssayCollection, _t as toProtocolDataFrame, a as getBioTemplateControlDefaults, an as TEMPLATE_COLLECTION_KEY, at as toSamplePrepColumns, b as createQpcrExpressionCollection, bt as toInstrumentRunColumns, c as listBioTemplatePresetControlSchemas, cn as createTemplateEnvelope, ct as toReagentColumns, d as createBioTemplatePresetCollectionFromControls, dn as extractTemplateCollection, dt as toReagentRows, en as searchBioTemplatePacks, et as toTimeCourseSteps, f as createWellPlateScreenCollection, fn as getTemplateData, ft as toQpcrColumns, g as createFlowCytometryAssayCollection, gt as toProtocolColumns, h as createWesternBlotAssayCollection, ht as toQpcrWellPlateWells, i as createBioTemplateControlToolkit, in as searchBioTemplateCatalog, it as toSampleRows, j as createSampleSheetTemplate, jt as toAssayMatrixColumns, k as createDoseResponseTemplate, kt as toCalibrationCurveDataFrame, l as requireBioTemplateControlSchema, ln as ensureTemplateEnvelope, lt as toReagentDataFrame, m as createDefaultBioTemplate, mt as toQpcrRows, n as bioTemplateControlsToSectionFormSchemas, nn as getBioTemplateInfo, nt as toSampleDataFrame, o as getBioTemplateControlSchema, on as assertTemplateEnvelope, ot as toSamplePrepDataFrame, p as createBioTemplatePackCollection, pt as toQpcrDataFrame, q as toDoseConditions, qt as bioTemplatePresets, r as bioTemplateControlsToSidebarPanels, rn as listBioTemplateCatalog, rt as toSampleOptions, s as listBioTemplateControlSchemas, sn as createTemplateCollection, st as toSamplePrepRows, t as bioTemplateControlsToFormSchema, tn as bioTemplateCatalog, tt as toSampleColumns, u as createBioTemplatePresetCollection, un as ensureTemplateFromCollection, ut as toReagentListItems, v as createTargetedMetabolomicsCollection, vt as toProtocolRows, w as createReagentListTemplate, wt as toInstrumentRunSteps, x as createQpcrPlateTemplate, xt as toInstrumentRunDataFrame, y as createLcmsBatchCollection, yt as toProtocolSteps, z as toBioTemplateComponentImports, zt as validateInstrumentRunData } from "../templates-CK72aKO1.js";
5
5
  export { TEMPLATE_COLLECTION_KEY, assertTemplateEnvelope, bioTemplateCatalog, bioTemplateControlsToFormSchema, bioTemplateControlsToSectionFormSchemas, bioTemplateControlsToSidebarPanels, bioTemplatePacks, bioTemplatePresetControlValuesToOptions, bioTemplatePresets, createAssayMatrixTemplate, createBioTemplateControlToolkit, createBioTemplatePackCollection, createBioTemplatePresetCollection, createBioTemplatePresetCollectionFromControls, createCalibrationCurveTemplate, createDefaultBioTemplate, createDoseResponseTemplate, createElisaAssayCollection, createFlowCytometryAssayCollection, createFlowCytometryPanelTemplate, createInstrumentRunTemplate, createLcmsBatchCollection, createPlateMapTemplate, createProtocolStepsTemplate, createQpcrExpressionCollection, createQpcrPlateTemplate, createReagentListTemplate, createSamplePrepTemplate, createSampleSheetTemplate, createTargetedMetabolomicsCollection, createTemplateCollection, createTemplateEnvelope, createTimeCourseTemplate, createWellPlateScreenCollection, createWesternBlotAssayCollection, ensureTemplateEnvelope, ensureTemplateFromCollection, extractTemplateCollection, getBioTemplateComponentBindings, getBioTemplateComponentProps, getBioTemplateControlDefaults, getBioTemplateControlSchema, getBioTemplateInfo, getBioTemplatePackInfo, getBioTemplatePresetInfo, getTemplateData, listBioTemplateCatalog, listBioTemplateComponentBindings, listBioTemplateControlSchemas, listBioTemplatePacks, listBioTemplatePresetControlSchemas, listBioTemplatePresets, requireBioTemplateControlSchema, searchBioTemplateCatalog, searchBioTemplatePacks, searchBioTemplatePresets, toAssayMatrixColumns, toAssayMatrixDataFrame, toAssayMatrixRows, toAssayMatrixSampleOptions, toBioTemplateComponentBindings, toBioTemplateComponentBindingsById, toBioTemplateComponentImports, toBioTemplateComponentProps, toBioTemplateComponentPropsByComponent, toBioTemplateComponentPropsById, toBioTemplateComponentSnippets, toBioTemplateComponentUsage, toCalibrationCurveColumns, toCalibrationCurveDataFrame, toCalibrationCurveRows, toDoseConditions, toDoseLayoutState, toFlowPanelColumns, toFlowPanelDataFrame, toFlowPanelRows, toInstrumentRunColumns, toInstrumentRunDataFrame, toInstrumentRunRows, toInstrumentRunScheduleEvents, toInstrumentRunSteps, toPlateMapEditorState, toProtocolColumns, toProtocolDataFrame, toProtocolRows, toProtocolSteps, toQpcrColumns, toQpcrDataFrame, toQpcrRows, toQpcrWellPlateWells, toReagentColumns, toReagentDataFrame, toReagentListItems, toReagentRows, toSampleColumns, toSampleDataFrame, toSampleOptions, toSamplePrepColumns, toSamplePrepDataFrame, toSamplePrepRows, toSampleRows, toTemplateDataFrame, toTimeCourseColumns, toTimeCourseDataFrame, toTimeCourseRows, toTimeCourseSteps, toWellMapArray, toWellPlateWells, validateAssayMatrixData, validateCalibrationCurveData, validateDoseResponseData, validateFlowCytometryPanelData, validateInstrumentRunData, validatePlateMapData, validateProtocolStepsData, validateQpcrPlateData, validateReagentListData, validateSamplePrepData, validateSampleSheetData, validateTimeCourseData };
@@ -1,8 +1,5 @@
1
- import { _ as controlsToFormSchema, i as useControlSchema, r as getControlDefaults, x as controlsToSidebarPanels, y as controlsToSectionFormSchemas } from "./useControlSchema-CXhxTul7.js";
1
+ import { _ as controlsToFormSchema, i as useControlSchema, nt as isObjectLike, r as getControlDefaults, rt as isRecord, x as controlsToSidebarPanels, y as controlsToSectionFormSchemas } from "./useControlSchema-_OVhavKq.js";
2
2
  //#region src/templates/builderReadUtils.ts
3
- function isRecord$2(value) {
4
- return typeof value === "object" && value !== null && !Array.isArray(value);
5
- }
6
3
  function readStringList(value, fallback) {
7
4
  if (Array.isArray(value)) {
8
5
  const items = value.map((item) => String(item).trim()).filter(Boolean);
@@ -65,10 +62,10 @@ function extractTemplateCollection(value) {
65
62
  assertGenericTemplateEnvelope(value);
66
63
  return { [value.template_id]: value };
67
64
  }
68
- if (!isRecord$2(value)) throw new Error("Template collection payload must be an object.");
65
+ if (!isRecord(value)) throw new Error("Template collection payload must be an object.");
69
66
  const rawCollection = value[TEMPLATE_COLLECTION_KEY];
70
67
  if (rawCollection === void 0) return {};
71
- if (!isRecord$2(rawCollection)) throw new Error("Template collection must be an object.");
68
+ if (!isRecord(rawCollection)) throw new Error("Template collection must be an object.");
72
69
  const collection = {};
73
70
  for (const [templateId, template] of Object.entries(rawCollection)) {
74
71
  assertGenericTemplateEnvelope(template);
@@ -99,14 +96,14 @@ function getTemplateData(template, templateId) {
99
96
  return template;
100
97
  }
101
98
  function assertGenericTemplateEnvelope(value) {
102
- if (!isRecord$2(value)) throw new Error("Template envelope must be an object.");
99
+ if (!isRecord(value)) throw new Error("Template envelope must be an object.");
103
100
  if (typeof value.template_id !== "string" || value.template_id.length === 0) throw new Error("Template envelope requires a template_id string.");
104
101
  if (typeof value.template_version !== "string" || value.template_version.length === 0) throw new Error("Template envelope requires a template_version string.");
105
- if (!isRecord$2(value.data)) throw new Error("Template envelope data must be an object.");
106
- if ("metadata" in value && !isRecord$2(value.metadata)) throw new Error("Template envelope metadata must be an object.");
102
+ if (!isRecord(value.data)) throw new Error("Template envelope data must be an object.");
103
+ if ("metadata" in value && !isRecord(value.metadata)) throw new Error("Template envelope metadata must be an object.");
107
104
  }
108
105
  function isEnvelope(value) {
109
- return isRecord$2(value) && "template_id" in value && "data" in value;
106
+ return isRecord(value) && "template_id" in value && "data" in value;
110
107
  }
111
108
  //#endregion
112
109
  //#region src/templates/lookup.ts
@@ -956,19 +953,16 @@ function resolveComponentTemplateIds(target) {
956
953
  return Object.keys(extractTemplateCollection(target)).map((templateId) => getBioTemplateInfo(templateId)?.template_id).filter((templateId) => templateId !== void 0);
957
954
  }
958
955
  function isTemplateEnvelope$1(value) {
959
- return isRecord$1(value) && typeof value.template_id === "string" && "data" in value;
956
+ return isObjectLike(value) && typeof value.template_id === "string" && "data" in value;
960
957
  }
961
958
  function collectionPresetName$1(value) {
962
- if (!isRecord$1(value) || !isRecord$1(value.metadata)) return void 0;
959
+ if (!isObjectLike(value) || !isObjectLike(value.metadata)) return void 0;
963
960
  return typeof value.metadata.preset === "string" ? value.metadata.preset : void 0;
964
961
  }
965
962
  function collectionPackName$1(value) {
966
- if (!isRecord$1(value) || !isRecord$1(value.metadata)) return void 0;
963
+ if (!isObjectLike(value) || !isObjectLike(value.metadata)) return void 0;
967
964
  return typeof value.metadata.pack === "string" ? value.metadata.pack : void 0;
968
965
  }
969
- function isRecord$1(value) {
970
- return typeof value === "object" && value !== null;
971
- }
972
966
  //#endregion
973
967
  //#region src/templates/componentBindingHelpers.ts
974
968
  function cloneBindingMap(bindings) {
@@ -4167,19 +4161,16 @@ function describeControlTarget(target) {
4167
4161
  return collectionPresetName(target) ?? collectionPackName(target) ?? "template collection";
4168
4162
  }
4169
4163
  function isTemplateEnvelope(value) {
4170
- return isRecord(value) && typeof value.template_id === "string" && "data" in value;
4164
+ return isObjectLike(value) && typeof value.template_id === "string" && "data" in value;
4171
4165
  }
4172
4166
  function collectionPresetName(value) {
4173
- if (!isRecord(value) || !isRecord(value.metadata)) return void 0;
4167
+ if (!isObjectLike(value) || !isObjectLike(value.metadata)) return void 0;
4174
4168
  return typeof value.metadata.preset === "string" ? value.metadata.preset : void 0;
4175
4169
  }
4176
4170
  function collectionPackName(value) {
4177
- if (!isRecord(value) || !isRecord(value.metadata)) return void 0;
4171
+ if (!isObjectLike(value) || !isObjectLike(value.metadata)) return void 0;
4178
4172
  return typeof value.metadata.pack === "string" ? value.metadata.pack : void 0;
4179
4173
  }
4180
- function isRecord(value) {
4181
- return typeof value === "object" && value !== null;
4182
- }
4183
4174
  //#endregion
4184
4175
  //#region src/templates/controlSchemaConstants.ts
4185
4176
  var ICONS = {
@@ -5060,4 +5051,4 @@ function getBioTemplateControlDefaults(target) {
5060
5051
  //#endregion
5061
5052
  export { toTimeCourseRows as $, listBioTemplatePacks as $t, createSamplePrepTemplate as A, toCalibrationCurveRows as At, toBioTemplateComponentProps as B, validatePlateMapData as Bt, createFlowCytometryPanelTemplate as C, toInstrumentRunScheduleEvents as Ct, createTimeCourseTemplate as D, toFlowPanelRows as Dt, createProtocolStepsTemplate as E, toFlowPanelDataFrame as Et, getBioTemplateComponentProps as F, validateAssayMatrixData as Ft, toTemplateDataFrame as G, validateSampleSheetData as Gt, toBioTemplateComponentPropsById as H, validateQpcrPlateData as Ht, listBioTemplateComponentBindings as I, validateCalibrationCurveData as It, toDoseLayoutState as J, getBioTemplatePresetInfo as Jt, toWellMapArray as K, validateTimeCourseData as Kt, toBioTemplateComponentBindings as L, validateDoseResponseData as Lt, createPlateMapTemplate as M, toAssayMatrixDataFrame as Mt, bioTemplatePresetControlValuesToOptions as N, toAssayMatrixRows as Nt, createCalibrationCurveTemplate as O, toCalibrationCurveColumns as Ot, getBioTemplateComponentBindings as P, toAssayMatrixSampleOptions as Pt, toTimeCourseDataFrame as Q, getBioTemplatePackInfo as Qt, toBioTemplateComponentBindingsById as R, validateFlowCytometryPanelData as Rt, createInstrumentRunTemplate as S, toInstrumentRunRows as St, createAssayMatrixTemplate as T, toFlowPanelColumns as Tt, toBioTemplateComponentSnippets as U, validateReagentListData as Ut, toBioTemplateComponentPropsByComponent as V, validateProtocolStepsData as Vt, toBioTemplateComponentUsage as W, validateSamplePrepData as Wt, toWellPlateWells as X, searchBioTemplatePresets as Xt, toPlateMapEditorState as Y, listBioTemplatePresets as Yt, toTimeCourseColumns as Z, bioTemplatePacks as Zt, createElisaAssayCollection as _, toProtocolDataFrame as _t, getBioTemplateControlDefaults as a, TEMPLATE_COLLECTION_KEY as an, toSamplePrepColumns as at, createQpcrExpressionCollection as b, toInstrumentRunColumns as bt, listBioTemplatePresetControlSchemas as c, createTemplateEnvelope as cn, toReagentColumns as ct, createBioTemplatePresetCollectionFromControls as d, extractTemplateCollection as dn, toReagentRows as dt, searchBioTemplatePacks as en, toTimeCourseSteps as et, createWellPlateScreenCollection as f, getTemplateData as fn, toQpcrColumns as ft, createFlowCytometryAssayCollection as g, toProtocolColumns as gt, createWesternBlotAssayCollection as h, toQpcrWellPlateWells as ht, createBioTemplateControlToolkit as i, searchBioTemplateCatalog as in, toSampleRows as it, createSampleSheetTemplate as j, toAssayMatrixColumns as jt, createDoseResponseTemplate as k, toCalibrationCurveDataFrame as kt, requireBioTemplateControlSchema as l, ensureTemplateEnvelope as ln, toReagentDataFrame as lt, createDefaultBioTemplate as m, toQpcrRows as mt, bioTemplateControlsToSectionFormSchemas as n, getBioTemplateInfo as nn, toSampleDataFrame as nt, getBioTemplateControlSchema as o, assertTemplateEnvelope as on, toSamplePrepDataFrame as ot, createBioTemplatePackCollection as p, toQpcrDataFrame as pt, toDoseConditions as q, bioTemplatePresets as qt, bioTemplateControlsToSidebarPanels as r, listBioTemplateCatalog as rn, toSampleOptions as rt, listBioTemplateControlSchemas as s, createTemplateCollection as sn, toSamplePrepRows as st, bioTemplateControlsToFormSchema as t, bioTemplateCatalog as tn, toSampleColumns as tt, createBioTemplatePresetCollection as u, ensureTemplateFromCollection as un, toReagentListItems as ut, createTargetedMetabolomicsCollection as v, toProtocolRows as vt, createReagentListTemplate as w, toInstrumentRunSteps as wt, createQpcrPlateTemplate as x, toInstrumentRunDataFrame as xt, createLcmsBatchCollection as y, toProtocolSteps as yt, toBioTemplateComponentImports as z, validateInstrumentRunData as zt };
5062
5053
 
5063
- //# sourceMappingURL=templates-BTJ9C9Kb.js.map
5054
+ //# sourceMappingURL=templates-CK72aKO1.js.map