@morscherlab/mint-sdk 1.4.0-beta.7 → 1.4.0-beta.9

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 (257) hide show
  1. package/dist/{ActionMenu-CScINahU.js → AlertBox-B2Bgr3ei.js} +40 -209
  2. package/dist/AlertBox-B2Bgr3ei.js.map +1 -0
  3. package/dist/{AppSidebar-BmiiPfz9.js → AppSidebar-Dq9W1jE2.js} +160 -109
  4. package/dist/AppSidebar-Dq9W1jE2.js.map +1 -0
  5. package/dist/{ConfirmDialog-CJ7hqYUP.js → ConfirmDialog-nbJj51is.js} +2 -2
  6. package/dist/{ConfirmDialog-CJ7hqYUP.js.map → ConfirmDialog-nbJj51is.js.map} +1 -1
  7. package/dist/ExperimentPopover-5T1fAq2L.js +337 -0
  8. package/dist/ExperimentPopover-5T1fAq2L.js.map +1 -0
  9. package/dist/{ExperimentSelectorModal-D-9z7cNx.js → ExperimentSelectorModal-65peG4Up.js} +198 -181
  10. package/dist/ExperimentSelectorModal-65peG4Up.js.map +1 -0
  11. package/dist/{SegmentedControl-DERBN-Xd.js → SegmentedControl-BtnnjWzs.js} +2 -2
  12. package/dist/{SegmentedControl-DERBN-Xd.js.map → SegmentedControl-BtnnjWzs.js.map} +1 -1
  13. package/dist/{SettingsModal-CSLE31yg.js → SettingsModal-483nyI6b.js} +9 -9
  14. package/dist/SettingsModal-483nyI6b.js.map +1 -0
  15. package/dist/components/AppSidebar.vue.d.ts +1 -1
  16. package/dist/components/ArtifactSaveDialog.vue.d.ts +9 -1
  17. package/dist/components/AuditTrail.vue.d.ts +1 -1
  18. package/dist/components/BaseSelect.vue.d.ts +2 -2
  19. package/dist/components/ChartContainer.vue.d.ts +2 -0
  20. package/dist/components/DatePicker.vue.d.ts +1 -1
  21. package/dist/components/ExperimentPopover.vue.d.ts +18 -0
  22. package/dist/components/ExperimentSelectorModal.vue.d.ts +0 -4
  23. package/dist/components/FilePicker.vue.d.ts +1 -1
  24. package/dist/components/FileUploader.vue.d.ts +2 -2
  25. package/dist/components/PluginIcon.vue.d.ts +2 -2
  26. package/dist/components/SampleSelector.vue.d.ts +6 -6
  27. package/dist/components/SequenceProgressBar.vue.d.ts +3 -0
  28. package/dist/components/StepWizard.vue.d.ts +3 -0
  29. package/dist/components/internal/AutoGroupModalInternal.vue.d.ts +1 -1
  30. package/dist/components/internal/DatePickerTimeInternal.vue.d.ts +1 -1
  31. package/dist/components/internal/ResourcePickerListInternal.vue.d.ts +2 -7
  32. package/dist/components/internal/SelectMultipleInternal.vue.d.ts +4 -0
  33. package/dist/composables/createClient.d.ts +2 -0
  34. package/dist/composables/index.d.ts +1 -0
  35. package/dist/composables/pluginIdentity.d.ts +24 -0
  36. package/dist/composables/useAppExperiment.d.ts +8 -0
  37. package/dist/composables/useCalendarGrid.d.ts +1 -1
  38. package/dist/composables/useExperimentSelector.d.ts +6 -2
  39. package/dist/composables/usePlatform.d.ts +1 -0
  40. package/dist/{controlSchemaModel-CP5-_nAj.js → controlSchemaModel-B8CTXagP.js} +2 -2
  41. package/dist/{controlSchemaModel-CP5-_nAj.js.map → controlSchemaModel-B8CTXagP.js.map} +1 -1
  42. package/dist/{data-C2PwI_dn.js → data-CgILxDLW.js} +178 -124
  43. package/dist/data-CgILxDLW.js.map +1 -0
  44. package/dist/data.js +8 -8
  45. package/dist/{experimentStatus-BZmU4czV.js → experimentStatus-Cqp6qNrR.js} +3 -3
  46. package/dist/{experimentStatus-BZmU4czV.js.map → experimentStatus-Cqp6qNrR.js.map} +1 -1
  47. package/dist/index.js +19 -19
  48. package/dist/{install-DAID6c2-.js → install-BtLWTk6H.js} +15 -14
  49. package/dist/{install-DAID6c2-.js.map → install-BtLWTk6H.js.map} +1 -1
  50. package/dist/install.js +1 -1
  51. package/dist/{lab-DLwRl_Ql.js → lab-MHzp-_J8.js} +128 -147
  52. package/dist/lab-MHzp-_J8.js.map +1 -0
  53. package/dist/lab.js +4 -3
  54. package/dist/{records-BzTcxekG.js → records-B6gpM_3e.js} +472 -274
  55. package/dist/records-B6gpM_3e.js.map +1 -0
  56. package/dist/{runtime-D6gVat6r.js → runtime-7vfl_bI3.js} +27 -31
  57. package/dist/runtime-7vfl_bI3.js.map +1 -0
  58. package/dist/runtime.js +6 -6
  59. package/dist/{shell-5ju97nOS.js → shell-Cs9OJMnm.js} +5 -5
  60. package/dist/{shell-5ju97nOS.js.map → shell-Cs9OJMnm.js.map} +1 -1
  61. package/dist/shell.js +5 -5
  62. package/dist/styles.css +1606 -1666
  63. package/dist/types/componentWorkflowTypes.d.ts +2 -0
  64. package/dist/types/generated/platformContext.d.ts +1 -0
  65. package/dist/types/generated-ui.d.ts +4 -0
  66. package/dist/{BaseModal-DfRIuVoj.js → useDropdownState-8yWMu-7_.js} +60 -2
  67. package/dist/useDropdownState-8yWMu-7_.js.map +1 -0
  68. package/dist/{useExperimentSamples-CxcnxZ8h.js → useExperimentSamples-DHnxKFAF.js} +3 -3
  69. package/dist/{useExperimentSamples-CxcnxZ8h.js.map → useExperimentSamples-DHnxKFAF.js.map} +1 -1
  70. package/dist/{useListReorder-CcbEYxX-.js → useListReorder-BitdUhxn.js} +109 -277
  71. package/dist/useListReorder-BitdUhxn.js.map +1 -0
  72. package/dist/{useRackEditor-BD5NIo5s.js → useRackEditor-DiwCt77M.js} +71 -57
  73. package/dist/useRackEditor-DiwCt77M.js.map +1 -0
  74. package/dist/{useRealtime-PalKue84.js → useRealtime-C3iy9QkU.js} +7 -4
  75. package/dist/useRealtime-C3iy9QkU.js.map +1 -0
  76. package/dist/useRequest-D506eHi8.js +244 -0
  77. package/dist/useRequest-D506eHi8.js.map +1 -0
  78. package/dist/utils/time.d.ts +7 -0
  79. package/package.json +1 -1
  80. package/src/__tests__/components/AppTopBar.test.ts +51 -2
  81. package/src/__tests__/components/AppTopBarPillNav.test.ts +35 -0
  82. package/src/__tests__/components/ArtifactSaveDialog.test.ts +78 -0
  83. package/src/__tests__/components/BaseSelect.multiple.test.ts +87 -32
  84. package/src/__tests__/components/BaseSelect.test.ts +2 -1
  85. package/src/__tests__/components/BatchProgressList.test.ts +16 -0
  86. package/src/__tests__/components/CalendarGridPanel.test.ts +2 -2
  87. package/src/__tests__/components/ChartContainer.test.ts +11 -0
  88. package/src/__tests__/components/ChemicalFormula.test.ts +6 -3
  89. package/src/__tests__/components/DatePicker.datetime.test.ts +6 -0
  90. package/src/__tests__/components/DatePicker.test.ts +21 -0
  91. package/src/__tests__/components/DatePicker.time.test.ts +2 -2
  92. package/src/__tests__/components/EmptyState.test.ts +1 -1
  93. package/src/__tests__/components/ExperimentPopover.test.ts +125 -16
  94. package/src/__tests__/components/ExperimentSelectorModal.test.ts +119 -13
  95. package/src/__tests__/components/GeneratedPluginView.test.ts +22 -1
  96. package/src/__tests__/components/InstrumentStateBadge.test.ts +4 -4
  97. package/src/__tests__/components/ResourcePickerListInternal.test.ts +0 -20
  98. package/src/__tests__/components/SampleSelector.test.ts +13 -8
  99. package/src/__tests__/components/SequenceProgressBar.test.ts +12 -0
  100. package/src/__tests__/components/StepWizard.test.ts +11 -0
  101. package/src/__tests__/components/WellPlate.decoration.test.ts +11 -4
  102. package/src/__tests__/components/deprecationTags.test.ts +1 -1
  103. package/src/__tests__/composables/useAppExperiment.test.ts +27 -1
  104. package/src/__tests__/composables/useCalendarGrid.test.ts +4 -2
  105. package/src/__tests__/composables/useExperimentSelector.test.ts +111 -0
  106. package/src/__tests__/styles/baseControlsRules.test.ts +6 -2
  107. package/src/__tests__/styles/controlRefreshRules.test.ts +0 -6
  108. package/src/__tests__/styles/cssTokens.test.ts +2 -2
  109. package/src/__tests__/styles/menusShellRefresh.test.ts +14 -10
  110. package/src/__tests__/utils/plotlyTemplate.test.ts +4 -4
  111. package/src/__tests__/utils/time.test.ts +18 -1
  112. package/src/components/AdductText.story.vue +7 -0
  113. package/src/components/AdductText.vue +1 -1
  114. package/src/components/AlertBox.story.vue +2 -2
  115. package/src/components/AlertBox.vue +18 -16
  116. package/src/components/AppSidebar.story.vue +0 -28
  117. package/src/components/AppTopBar.story.vue +47 -12
  118. package/src/components/AppTopBar.vue +118 -114
  119. package/src/components/ArtifactSaveDialog.story.vue +23 -0
  120. package/src/components/ArtifactSaveDialog.vue +102 -12
  121. package/src/components/AuditTrail.story.vue +2 -1
  122. package/src/components/AuditTrail.vue +2 -21
  123. package/src/components/Avatar.vue +10 -14
  124. package/src/components/BaseSelect.multiple.story.vue +13 -2
  125. package/src/components/BaseSelect.vue +4 -3
  126. package/src/components/BatchProgressList.vue +35 -25
  127. package/src/components/ChartContainer.story.vue +2 -1
  128. package/src/components/ChartContainer.vue +8 -6
  129. package/src/components/ConfirmDialog.story.vue +1 -1
  130. package/src/components/EmptyState.vue +1 -1
  131. package/src/components/ExperimentPopover.story.vue +165 -53
  132. package/src/components/ExperimentPopover.vue +169 -187
  133. package/src/components/ExperimentSelectorModal.story.vue +40 -36
  134. package/src/components/ExperimentSelectorModal.vue +124 -110
  135. package/src/components/FormField.story.vue +8 -48
  136. package/src/components/GeneratedPluginView.vue +7 -1
  137. package/src/components/InstrumentStateBadge.vue +1 -1
  138. package/src/components/JobsStatusTray.vue +1 -1
  139. package/src/components/LoadingSpinner.vue +1 -1
  140. package/src/components/NumberInput.vue +3 -6
  141. package/src/components/PluginIcon.story.vue +2 -10
  142. package/src/components/PluginIcon.vue +2 -2
  143. package/src/components/PluginWorkspaceView.story.vue +1 -1
  144. package/src/components/RuntimeUpdateNotice.vue +1 -1
  145. package/src/components/SampleSelector.story.vue +1 -1
  146. package/src/components/SampleSelector.vue +27 -37
  147. package/src/components/SampleSelectorGroupNode.vue +1 -1
  148. package/src/components/SectionCard.story.vue +2 -2
  149. package/src/components/SequenceProgressBar.story.vue +9 -0
  150. package/src/components/SequenceProgressBar.vue +6 -1
  151. package/src/components/SettingsModal.schema.ts +1 -1
  152. package/src/components/SettingsModal.vue +2 -2
  153. package/src/components/SmartGroupFieldRecipe.story.vue +1 -1
  154. package/src/components/SmartGroupManual.story.vue +1 -1
  155. package/src/components/StepWizard.story.vue +33 -0
  156. package/src/components/StepWizard.vue +8 -1
  157. package/src/components/WellPlate.story.vue +3 -1
  158. package/src/components/WellPlate.vue +7 -0
  159. package/src/components/internal/AppTopBarPillNavInternal.vue +33 -2
  160. package/src/components/internal/DatePickerDateInternal.vue +16 -40
  161. package/src/components/internal/DatePickerDateTimeInternal.vue +3 -13
  162. package/src/components/internal/DatePickerTimeInternal.vue +5 -8
  163. package/src/components/internal/ResourcePickerListInternal.vue +45 -85
  164. package/src/components/internal/SelectMultipleInternal.vue +182 -65
  165. package/src/components/internal/SelectSearchableInternal.vue +2 -3
  166. package/src/composables/createClient.ts +2 -0
  167. package/src/composables/index.ts +1 -0
  168. package/src/composables/pluginIdentity.ts +31 -0
  169. package/src/composables/useAppExperiment.ts +20 -0
  170. package/src/composables/useCalendarGrid.ts +4 -3
  171. package/src/composables/useExperimentSelector.ts +77 -31
  172. package/src/styles/components/adduct-text.css +13 -5
  173. package/src/styles/components/alert-box.css +39 -58
  174. package/src/styles/components/app-layout.css +6 -5
  175. package/src/styles/components/app-page-selector.css +3 -1
  176. package/src/styles/components/app-pill-nav.css +11 -12
  177. package/src/styles/components/app-sidebar.css +9 -18
  178. package/src/styles/components/app-top-bar.css +57 -55
  179. package/src/styles/components/artifact-save-dialog.css +153 -2
  180. package/src/styles/components/audit-trail.css +16 -19
  181. package/src/styles/components/avatar.css +6 -4
  182. package/src/styles/components/batch-progress-list.css +38 -36
  183. package/src/styles/components/button.css +28 -59
  184. package/src/styles/components/calendar.css +12 -12
  185. package/src/styles/components/chart-container.css +34 -23
  186. package/src/styles/components/checkbox.css +2 -12
  187. package/src/styles/components/collapsible-card.css +27 -29
  188. package/src/styles/components/confirm-dialog.css +13 -14
  189. package/src/styles/components/dataframe.css +12 -4
  190. package/src/styles/components/date-picker.css +80 -92
  191. package/src/styles/components/datetime-picker.css +31 -43
  192. package/src/styles/components/divider.css +20 -20
  193. package/src/styles/components/dose-calculator.css +3 -3
  194. package/src/styles/components/empty-state.css +20 -17
  195. package/src/styles/components/experiment-code-badge.css +2 -0
  196. package/src/styles/components/experiment-popover.css +174 -329
  197. package/src/styles/components/experiment-selector-modal.css +75 -56
  198. package/src/styles/components/file-picker.css +3 -3
  199. package/src/styles/components/file-uploader.css +38 -49
  200. package/src/styles/components/form-builder.css +3 -3
  201. package/src/styles/components/formula-input.css +1 -1
  202. package/src/styles/components/icon-button.css +18 -24
  203. package/src/styles/components/input.css +5 -4
  204. package/src/styles/components/instrument-monitor.css +13 -15
  205. package/src/styles/components/jobs-status-tray.css +31 -25
  206. package/src/styles/components/modal.css +2 -4
  207. package/src/styles/components/molecule-input.css +2 -2
  208. package/src/styles/components/multi-select.css +65 -117
  209. package/src/styles/components/number-input.css +26 -19
  210. package/src/styles/components/pill.css +3 -2
  211. package/src/styles/components/plate-editor.css +0 -1
  212. package/src/styles/components/plugin-icon.css +26 -23
  213. package/src/styles/components/popover.css +2 -2
  214. package/src/styles/components/presence-avatars.css +1 -1
  215. package/src/styles/components/protocol-step-editor.css +1 -3
  216. package/src/styles/components/resource-card.css +2 -2
  217. package/src/styles/components/resource-picker-list.css +6 -57
  218. package/src/styles/components/sample-hierarchy-tree.css +4 -4
  219. package/src/styles/components/sample-selector.css +95 -79
  220. package/src/styles/components/schedule-calendar.css +8 -8
  221. package/src/styles/components/searchable-select.css +12 -12
  222. package/src/styles/components/section-card.css +28 -47
  223. package/src/styles/components/segmented-control.css +18 -15
  224. package/src/styles/components/select.css +3 -3
  225. package/src/styles/components/sequence-input.css +2 -2
  226. package/src/styles/components/sequence-progress-bar.css +17 -8
  227. package/src/styles/components/smart-group.css +18 -18
  228. package/src/styles/components/step-wizard.css +52 -16
  229. package/src/styles/components/tabs.css +2 -2
  230. package/src/styles/components/textarea.css +3 -3
  231. package/src/styles/components/time-picker.css +36 -21
  232. package/src/styles/components/toast.css +12 -10
  233. package/src/styles/components/toggle.css +1 -11
  234. package/src/styles/components/tooltip.css +10 -9
  235. package/src/styles/components/unit-input.css +8 -7
  236. package/src/styles/components/well-plate.css +9 -2
  237. package/src/styles/variables.css +106 -75
  238. package/src/types/componentWorkflowTypes.ts +2 -0
  239. package/src/types/generated/platformContext.ts +1 -0
  240. package/src/types/generated-ui.ts +4 -0
  241. package/src/utils/time.ts +21 -0
  242. package/dist/ActionMenu-CScINahU.js.map +0 -1
  243. package/dist/AppSidebar-BmiiPfz9.js.map +0 -1
  244. package/dist/BaseModal-DfRIuVoj.js.map +0 -1
  245. package/dist/ExperimentPopover-C4sGw-is.js +0 -359
  246. package/dist/ExperimentPopover-C4sGw-is.js.map +0 -1
  247. package/dist/ExperimentSelectorModal-D-9z7cNx.js.map +0 -1
  248. package/dist/SettingsModal-CSLE31yg.js.map +0 -1
  249. package/dist/data-C2PwI_dn.js.map +0 -1
  250. package/dist/lab-DLwRl_Ql.js.map +0 -1
  251. package/dist/records-BzTcxekG.js.map +0 -1
  252. package/dist/runtime-D6gVat6r.js.map +0 -1
  253. package/dist/useListReorder-CcbEYxX-.js.map +0 -1
  254. package/dist/useRackEditor-BD5NIo5s.js.map +0 -1
  255. package/dist/useRealtime-PalKue84.js.map +0 -1
  256. package/dist/useRequest-D5JDfsgZ.js +0 -76
  257. package/dist/useRequest-D5JDfsgZ.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { i as BaseButton_default, r as useEventListener } from "./BaseModal-DfRIuVoj.js";
1
+ import { a as BaseButton_default, i as useEventListener, t as useDropdownState } from "./useDropdownState-8yWMu-7_.js";
2
2
  import { f as useSettingsStore, n as integrationHost } from "./experiment-43OJtH7R.js";
3
- import { D as useDropdownState, O as FormField_default, _ as APP_EXPERIMENT_KEY, j as BaseCheckbox_default, t as isRecord } from "./records-BzTcxekG.js";
4
- import { _ as getFieldRegistryEntry, a as StepWizard_default, d as humanize, f as numericValue, l as normalizeControls, m as orderedUnique, o as usePlatform, s as defaultValueForControl, u as normalizeOption, v as getTypeDefault, z as applySpecDefaults } from "./useListReorder-CcbEYxX-.js";
5
- import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineAsyncComponent, defineComponent, guardReactiveProps, inject, mergeProps, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, reactive, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toRaw, toValue, unref, useSlots, useTemplateRef, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
3
+ import { I as FormField_default, _ as APP_EXPERIMENT_KEY, t as isRecord, z as BaseCheckbox_default } from "./records-B6gpM_3e.js";
4
+ import { F as applySpecDefaults, _ as getFieldRegistryEntry, a as StepWizard_default, d as humanize, f as numericValue, l as normalizeControls, m as orderedUnique, o as usePlatform, s as defaultValueForControl, u as normalizeOption, v as getTypeDefault } from "./useListReorder-BitdUhxn.js";
5
+ import { Fragment, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineAsyncComponent, defineComponent, guardReactiveProps, inject, mergeProps, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, openBlock, reactive, readonly, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toRaw, toValue, unref, useSlots, useTemplateRef, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
6
6
  import { Moon, Sun } from "lucide-vue-next";
7
7
  //#region src/composables/useTheme.ts
8
8
  /** Reads and toggles the active theme (light/dark/system) with reactivity to OS preference changes. */
@@ -1542,6 +1542,8 @@ var _hoisted_13$2 = {
1542
1542
  key: 0,
1543
1543
  class: "mint-pill-nav__dropdown-description"
1544
1544
  };
1545
+ var MAX_VISIBLE_ITEMS = 4;
1546
+ var MORE_ITEM_ID = "__mint-pill-nav-more";
1545
1547
  //#endregion
1546
1548
  //#region src/components/internal/AppTopBarPillNavInternal.vue
1547
1549
  var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
@@ -1557,7 +1559,18 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
1557
1559
  const emit = __emit;
1558
1560
  const openItemId = ref(null);
1559
1561
  const itemRefs = ref(/* @__PURE__ */ new Map());
1560
- const normalizedItems = computed(() => props.items.map(normalizePillNavItem));
1562
+ /** The bar shows this many items; the rest fold into a More dropdown. */
1563
+ const allItems = computed(() => props.items.map(normalizePillNavItem));
1564
+ const normalizedItems = computed(() => {
1565
+ if (allItems.value.length <= MAX_VISIBLE_ITEMS) return allItems.value;
1566
+ const folded = allItems.value.slice(MAX_VISIBLE_ITEMS);
1567
+ return [...allItems.value.slice(0, MAX_VISIBLE_ITEMS), {
1568
+ id: MORE_ITEM_ID,
1569
+ label: "More",
1570
+ dot: folded.some((item) => item.dot),
1571
+ children: folded.flatMap((item) => item.children?.length ? item.children : [item])
1572
+ }];
1573
+ });
1561
1574
  function handleClick(item) {
1562
1575
  if (item.disabled) return;
1563
1576
  if (item.children?.length) {
@@ -1569,8 +1582,19 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
1569
1582
  }
1570
1583
  function handleOptionClick(option, item) {
1571
1584
  if (option.disabled) return;
1572
- if (!option.href && !option.to) emit("option-select", option, item);
1573
1585
  openItemId.value = null;
1586
+ if (option.href || option.to) return;
1587
+ if (item.id !== MORE_ITEM_ID) {
1588
+ emit("option-select", option, item);
1589
+ return;
1590
+ }
1591
+ const folded = allItems.value.find((candidate) => candidate.id === option.id && !candidate.children?.length);
1592
+ if (folded) {
1593
+ emit("select", folded);
1594
+ return;
1595
+ }
1596
+ const group = allItems.value.find((candidate) => candidate.children?.some((child) => child.id === option.id));
1597
+ if (group) emit("option-select", option, group);
1574
1598
  }
1575
1599
  function normalizePillNavItem(item) {
1576
1600
  const normalized = normalizeItemInput(item);
@@ -1711,6 +1735,29 @@ var AppTopBarPillNavInternal_default = /* @__PURE__ */ defineComponent({
1711
1735
  }
1712
1736
  });
1713
1737
  //#endregion
1738
+ //#region src/composables/pluginIdentity.ts
1739
+ var identity = reactive({});
1740
+ /** The seeded identity AppTopBar shows in standalone mode. Internal: not exported from the package. */
1741
+ var pluginIdentity = readonly(identity);
1742
+ /**
1743
+ * Seed the standalone AppTopBar with the plugin name, subtitle and icon. In integrated
1744
+ * mode the platform supplies them. Explicit `title`/`subtitle` props and the `#icon` slot still win.
1745
+ *
1746
+ * @example
1747
+ * ```typescript
1748
+ * import { providePluginIdentity } from '@morscherlab/mint-sdk'
1749
+ * import { contract } from './generated/mint-plugin'
1750
+ *
1751
+ * providePluginIdentity(contract)
1752
+ * ```
1753
+ */
1754
+ function providePluginIdentity(contract) {
1755
+ const { plugin } = contract;
1756
+ identity.name = plugin.displayName || plugin.name || void 0;
1757
+ identity.subtitle = plugin.subtitle || plugin.description || void 0;
1758
+ identity.icon = plugin.icon || void 0;
1759
+ }
1760
+ //#endregion
1714
1761
  //#region src/components/AppTopBar.toastOffset.ts
1715
1762
  /**
1716
1763
  * Publishes the top-most mounted AppTopBar's bottom edge as `--mint-toast-offset-top`
@@ -1757,53 +1804,58 @@ function trackTopBarForToasts(el) {
1757
1804
  //#endregion
1758
1805
  //#region src/components/AppTopBar.vue?vue&type=script&setup=true&lang.ts
1759
1806
  var _hoisted_1$4 = { class: "mint-topbar__container" };
1760
- var _hoisted_2$2 = { class: "mint-topbar__brand" };
1761
- var _hoisted_3$2 = ["href"];
1762
- var _hoisted_4$2 = {
1807
+ var _hoisted_2$2 = { class: "mint-topbar__start" };
1808
+ var _hoisted_3$2 = { class: "mint-topbar__brand" };
1809
+ var _hoisted_4$2 = ["href"];
1810
+ var _hoisted_5$2 = {
1763
1811
  key: 0,
1764
1812
  class: "mint-topbar__identity"
1765
1813
  };
1766
- var _hoisted_5$2 = {
1814
+ var _hoisted_6$1 = {
1767
1815
  key: 0,
1768
1816
  class: "mint-topbar__logo"
1769
1817
  };
1770
- var _hoisted_6$1 = {
1818
+ var _hoisted_7$1 = {
1771
1819
  key: 0,
1772
1820
  class: "mint-topbar__identity"
1773
1821
  };
1774
- var _hoisted_7$1 = {
1822
+ var _hoisted_8$1 = {
1775
1823
  key: 0,
1776
1824
  class: "mint-topbar__logo"
1777
1825
  };
1778
- var _hoisted_8$1 = {
1826
+ var _hoisted_9$1 = {
1779
1827
  key: 0,
1780
1828
  class: "mint-topbar__identity"
1781
1829
  };
1782
- var _hoisted_9$1 = {
1830
+ var _hoisted_10$1 = {
1783
1831
  key: 0,
1784
1832
  class: "mint-topbar__logo"
1785
1833
  };
1786
- var _hoisted_10$1 = {
1834
+ var _hoisted_11$1 = {
1787
1835
  key: 0,
1788
1836
  class: "mint-topbar__plugin-identity"
1789
1837
  };
1790
- var _hoisted_11$1 = { class: "mint-topbar__plugin-name" };
1791
- var _hoisted_12$1 = {
1838
+ var _hoisted_12$1 = { class: "mint-topbar__plugin-name" };
1839
+ var _hoisted_13$1 = {
1840
+ key: 0,
1841
+ class: "mint-topbar__plugin-subtitle"
1842
+ };
1843
+ var _hoisted_14$1 = {
1792
1844
  key: 3,
1793
1845
  class: "mint-topbar-title-group"
1794
1846
  };
1795
- var _hoisted_13$1 = { class: "mint-topbar-title" };
1796
- var _hoisted_14$1 = { class: "mint-topbar-subtitle" };
1797
- var _hoisted_15$1 = {
1847
+ var _hoisted_15$1 = { class: "mint-topbar-title" };
1848
+ var _hoisted_16$1 = { class: "mint-topbar-subtitle" };
1849
+ var _hoisted_17$1 = {
1798
1850
  key: 4,
1799
1851
  class: "mint-topbar__title-only"
1800
1852
  };
1801
- var _hoisted_16$1 = {
1802
- key: 5,
1853
+ var _hoisted_18$1 = {
1854
+ key: 0,
1803
1855
  class: "mint-topbar__center"
1804
1856
  };
1805
- var _hoisted_17$1 = { class: "mint-topbar__right" };
1806
- var _hoisted_18$1 = {
1857
+ var _hoisted_19$1 = { class: "mint-topbar__right" };
1858
+ var _hoisted_20$1 = {
1807
1859
  key: 0,
1808
1860
  class: "mint-topbar__standalone-badge"
1809
1861
  };
@@ -1827,7 +1879,11 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
1827
1879
  "settings-values-change"
1828
1880
  ],
1829
1881
  setup(__props, { emit: __emit }) {
1830
- /** Full application top bar with brand logo, static plugin identity, page selector, centered pill nav, experiment popover, and an account slot. */
1882
+ /**
1883
+ * Full application top bar with brand logo, static plugin identity, page selector, centered pill nav, experiment popover, and an account slot.
1884
+ *
1885
+ * The `#icon` slot applies in standalone mode only; integrated branding comes from `Metadata.icon`.
1886
+ */
1831
1887
  const props = __props;
1832
1888
  const config = computed(() => applySpecDefaults({
1833
1889
  variant: "card",
@@ -1839,9 +1895,9 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
1839
1895
  }, props.spec));
1840
1896
  const settingsConfig = computed(() => toValue(config.value.settings) || void 0);
1841
1897
  const showSettings = computed(() => settingsConfig.value !== void 0);
1842
- const SettingsModal = defineAsyncComponent(() => import("./SettingsModal-CSLE31yg.js").then((n) => n.n));
1843
- const ExperimentPopover = defineAsyncComponent(() => import("./ExperimentPopover-C4sGw-is.js").then((n) => n.n));
1844
- const ExperimentSelectorModal = defineAsyncComponent(() => import("./ExperimentSelectorModal-D-9z7cNx.js").then((n) => n.n));
1898
+ const SettingsModal = defineAsyncComponent(() => import("./SettingsModal-483nyI6b.js").then((n) => n.n));
1899
+ const ExperimentPopover = defineAsyncComponent(() => import("./ExperimentPopover-5T1fAq2L.js").then((n) => n.n));
1900
+ const ExperimentSelectorModal = defineAsyncComponent(() => import("./ExperimentSelectorModal-65peG4Up.js").then((n) => n.n));
1845
1901
  const emit = __emit;
1846
1902
  const settingsOpen = ref(false);
1847
1903
  const headerEl = ref(null);
@@ -1854,13 +1910,11 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
1854
1910
  const isStandalone = computed(() => !isIntegrated.value);
1855
1911
  const appExperiment = inject(APP_EXPERIMENT_KEY, null);
1856
1912
  const canBindExperiment = computed(() => plugin.value?.plugin_type !== "static");
1857
- const pluginIcon = computed(() => {
1858
- const currentPlugin = plugin.value;
1859
- return currentPlugin?.icon ? {
1860
- icon: currentPlugin.icon,
1861
- color: currentPlugin.color
1862
- } : null;
1863
- });
1913
+ const slots = useSlots();
1914
+ const pluginIcon = computed(() => plugin.value?.icon || (slots.logo ? void 0 : pluginIdentity.icon));
1915
+ const seeded = computed(() => isStandalone.value && !props.title && !props.subtitle);
1916
+ const titleText = computed(() => props.title || (seeded.value ? pluginIdentity.name : void 0));
1917
+ const subtitleText = computed(() => props.subtitle || (seeded.value ? pluginIdentity.subtitle : void 0));
1864
1918
  const hasPlatformPageSelector = computed(() => props.pageSelector === void 0 && (plugin.value?.nav_items?.length ?? 0) > 1);
1865
1919
  const hasPropPageSelector = computed(() => (props.pageSelector?.length ?? 0) > 1);
1866
1920
  const hasPageSelector = computed(() => hasPropPageSelector.value || hasPlatformPageSelector.value);
@@ -1871,9 +1925,10 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
1871
1925
  }, { flush: "sync" });
1872
1926
  /** Integrated plugins show their name as a static identity in place of the title; the page selector replaces it. */
1873
1927
  const identityName = computed(() => isIntegrated.value && !hasPageSelector.value ? plugin.value?.display_name || plugin.value?.name : void 0);
1928
+ const identitySubtitle = computed(() => plugin.value?.subtitle || plugin.value?.description);
1874
1929
  const hasPillNav = computed(() => !!config.value.pills?.length);
1875
- const hasTitleGroup = computed(() => !hasPageSelector.value && !identityName.value && !!props.title && !!props.subtitle);
1876
- const hasTitleOnly = computed(() => !hasPageSelector.value && !identityName.value && !hasTitleGroup.value && !!props.title);
1930
+ const hasTitleGroup = computed(() => !hasPageSelector.value && !identityName.value && !!titleText.value && !!subtitleText.value);
1931
+ const hasTitleOnly = computed(() => !hasPageSelector.value && !identityName.value && !hasTitleGroup.value && !!titleText.value);
1877
1932
  const normalizedPageSelector = computed(() => props.pageSelector?.map(normalizeItemInput) ?? []);
1878
1933
  const normalizedPillNav = computed(() => config.value.pills ?? []);
1879
1934
  function handlePillSelect(item) {
@@ -1889,91 +1944,87 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
1889
1944
  ref: headerEl,
1890
1945
  class: normalizeClass(["mint-topbar", `mint-topbar--${config.value.variant}`])
1891
1946
  }, [createElementVNode("div", _hoisted_1$4, [
1892
- createElementVNode("div", _hoisted_2$2, [config.value.homePath && (config.value.homePath.startsWith("http") || config.value.homePath.startsWith("/")) ? (openBlock(), createElementBlock("a", {
1893
- key: 0,
1894
- href: config.value.homePath,
1895
- class: "mint-topbar-home-link"
1896
- }, [unref(isIntegrated) || _ctx.$slots.icon || _ctx.$slots.logo || pluginIcon.value || config.value.logo ? (openBlock(), createElementBlock("span", _hoisted_4$2, [unref(isIntegrated) ? (openBlock(), createBlock(PluginIcon_default, {
1897
- key: 0,
1898
- class: "mint-topbar__plugin-icon",
1899
- icon: unref(plugin)?.icon,
1900
- color: unref(plugin)?.color,
1901
- size: "topbar",
1902
- variant: "solid"
1903
- }, null, 8, ["icon", "color"])) : renderSlot(_ctx.$slots, "icon", {}, () => [pluginIcon.value ? (openBlock(), createBlock(PluginIcon_default, {
1904
- key: 0,
1905
- class: "mint-topbar__plugin-icon",
1906
- icon: pluginIcon.value.icon,
1907
- color: pluginIcon.value.color,
1908
- size: "topbar",
1909
- variant: "solid"
1910
- }, null, 8, ["icon", "color"])) : renderSlot(_ctx.$slots, "logo", {}, () => [config.value.logo ? (openBlock(), createElementBlock("div", _hoisted_5$2, [..._cache[9] || (_cache[9] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)], void 0, 1)], void 0, 1)])) : createCommentVNode("", true)], 8, _hoisted_3$2)) : config.value.homePath ? (openBlock(), createBlock(_component_router_link, {
1911
- key: 1,
1912
- to: config.value.homePath,
1913
- class: "mint-topbar-home-link"
1914
- }, {
1915
- default: withCtx(() => [unref(isIntegrated) || _ctx.$slots.icon || _ctx.$slots.logo || pluginIcon.value || config.value.logo ? (openBlock(), createElementBlock("span", _hoisted_6$1, [unref(isIntegrated) ? (openBlock(), createBlock(PluginIcon_default, {
1947
+ createElementVNode("div", _hoisted_2$2, [
1948
+ createElementVNode("div", _hoisted_3$2, [config.value.homePath && (config.value.homePath.startsWith("http") || config.value.homePath.startsWith("/")) ? (openBlock(), createElementBlock("a", {
1949
+ key: 0,
1950
+ href: config.value.homePath,
1951
+ class: "mint-topbar-home-link"
1952
+ }, [unref(isIntegrated) || _ctx.$slots.icon || _ctx.$slots.logo || pluginIcon.value || config.value.logo ? (openBlock(), createElementBlock("span", _hoisted_5$2, [unref(isIntegrated) ? (openBlock(), createBlock(PluginIcon_default, {
1916
1953
  key: 0,
1917
1954
  class: "mint-topbar__plugin-icon",
1918
1955
  icon: unref(plugin)?.icon,
1919
- color: unref(plugin)?.color,
1920
1956
  size: "topbar",
1921
1957
  variant: "solid"
1922
- }, null, 8, ["icon", "color"])) : renderSlot(_ctx.$slots, "icon", {}, () => [pluginIcon.value ? (openBlock(), createBlock(PluginIcon_default, {
1958
+ }, null, 8, ["icon"])) : renderSlot(_ctx.$slots, "icon", {}, () => [pluginIcon.value ? (openBlock(), createBlock(PluginIcon_default, {
1923
1959
  key: 0,
1924
1960
  class: "mint-topbar__plugin-icon",
1925
- icon: pluginIcon.value.icon,
1926
- color: pluginIcon.value.color,
1961
+ icon: pluginIcon.value,
1927
1962
  size: "topbar",
1928
1963
  variant: "solid"
1929
- }, null, 8, ["icon", "color"])) : renderSlot(_ctx.$slots, "logo", {}, () => [config.value.logo ? (openBlock(), createElementBlock("div", _hoisted_7$1, [..._cache[10] || (_cache[10] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)], void 0, 1)], void 0, 1)])) : createCommentVNode("", true)]),
1930
- _: 3
1931
- }, 8, ["to"])) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [unref(isIntegrated) || _ctx.$slots.icon || _ctx.$slots.logo || pluginIcon.value || config.value.logo ? (openBlock(), createElementBlock("span", _hoisted_8$1, [unref(isIntegrated) ? (openBlock(), createBlock(PluginIcon_default, {
1932
- key: 0,
1933
- class: "mint-topbar__plugin-icon",
1934
- icon: unref(plugin)?.icon,
1935
- color: unref(plugin)?.color,
1936
- size: "topbar",
1937
- variant: "solid"
1938
- }, null, 8, ["icon", "color"])) : renderSlot(_ctx.$slots, "icon", {}, () => [pluginIcon.value ? (openBlock(), createBlock(PluginIcon_default, {
1939
- key: 0,
1940
- class: "mint-topbar__plugin-icon",
1941
- icon: pluginIcon.value.icon,
1942
- color: pluginIcon.value.color,
1943
- size: "topbar",
1944
- variant: "solid"
1945
- }, null, 8, ["icon", "color"])) : renderSlot(_ctx.$slots, "logo", {}, () => [config.value.logo ? (openBlock(), createElementBlock("div", _hoisted_9$1, [..._cache[11] || (_cache[11] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)], void 0, 1)], void 0, 1)])) : createCommentVNode("", true)], 64))]),
1946
- identityName.value ? (openBlock(), createElementBlock("span", _hoisted_10$1, [createElementVNode("span", _hoisted_11$1, toDisplayString(identityName.value), 1)])) : createCommentVNode("", true),
1947
- hasPlatformPageSelector.value ? (openBlock(), createElementBlock("span", {
1948
- key: 1,
1949
- ref_key: "platformPageSelectorEl",
1950
- ref: platformPageSelectorEl,
1951
- class: "mint-topbar__platform-page-selector"
1952
- }, null, 512)) : hasPropPageSelector.value ? (openBlock(), createBlock(AppTopBarPageSelectorInternal_default, {
1953
- key: 2,
1954
- pages: normalizedPageSelector.value,
1955
- "current-page-id": __props.currentPageSelectorId,
1956
- onSelect: _cache[0] || (_cache[0] = ($event) => emit("page-selector-select", $event))
1957
- }, createSlots({ _: 2 }, [_ctx.$slots["page-selector-icon"] ? {
1958
- name: "icon",
1959
- fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, "page-selector-icon", normalizeProps(guardReactiveProps(slotProps)))]),
1960
- key: "0"
1961
- } : void 0, _ctx.$slots["page-selector-item-icon"] ? {
1962
- name: "item-icon",
1963
- fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, "page-selector-item-icon", normalizeProps(guardReactiveProps(slotProps)))]),
1964
- key: "1"
1965
- } : void 0]), 1032, ["pages", "current-page-id"])) : createCommentVNode("", true),
1966
- hasTitleGroup.value ? (openBlock(), createElementBlock("div", _hoisted_12$1, [createElementVNode("span", _hoisted_13$1, toDisplayString(__props.title), 1), createElementVNode("span", _hoisted_14$1, toDisplayString(__props.subtitle), 1)])) : hasTitleOnly.value ? (openBlock(), createElementBlock("span", _hoisted_15$1, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
1967
- renderSlot(_ctx.$slots, "nav"),
1968
- hasPillNav.value || _ctx.$slots.center ? (openBlock(), createElementBlock("div", _hoisted_16$1, [renderSlot(_ctx.$slots, "center", {}, () => [hasPillNav.value ? (openBlock(), createBlock(AppTopBarPillNavInternal_default, {
1964
+ }, null, 8, ["icon"])) : renderSlot(_ctx.$slots, "logo", {}, () => [config.value.logo ? (openBlock(), createElementBlock("div", _hoisted_6$1, [..._cache[9] || (_cache[9] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)], void 0, 1)], void 0, 1)])) : createCommentVNode("", true)], 8, _hoisted_4$2)) : config.value.homePath ? (openBlock(), createBlock(_component_router_link, {
1965
+ key: 1,
1966
+ to: config.value.homePath,
1967
+ class: "mint-topbar-home-link"
1968
+ }, {
1969
+ default: withCtx(() => [unref(isIntegrated) || _ctx.$slots.icon || _ctx.$slots.logo || pluginIcon.value || config.value.logo ? (openBlock(), createElementBlock("span", _hoisted_7$1, [unref(isIntegrated) ? (openBlock(), createBlock(PluginIcon_default, {
1970
+ key: 0,
1971
+ class: "mint-topbar__plugin-icon",
1972
+ icon: unref(plugin)?.icon,
1973
+ size: "topbar",
1974
+ variant: "solid"
1975
+ }, null, 8, ["icon"])) : renderSlot(_ctx.$slots, "icon", {}, () => [pluginIcon.value ? (openBlock(), createBlock(PluginIcon_default, {
1976
+ key: 0,
1977
+ class: "mint-topbar__plugin-icon",
1978
+ icon: pluginIcon.value,
1979
+ size: "topbar",
1980
+ variant: "solid"
1981
+ }, null, 8, ["icon"])) : renderSlot(_ctx.$slots, "logo", {}, () => [config.value.logo ? (openBlock(), createElementBlock("div", _hoisted_8$1, [..._cache[10] || (_cache[10] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)], void 0, 1)], void 0, 1)])) : createCommentVNode("", true)]),
1982
+ _: 3
1983
+ }, 8, ["to"])) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [unref(isIntegrated) || _ctx.$slots.icon || _ctx.$slots.logo || pluginIcon.value || config.value.logo ? (openBlock(), createElementBlock("span", _hoisted_9$1, [unref(isIntegrated) ? (openBlock(), createBlock(PluginIcon_default, {
1984
+ key: 0,
1985
+ class: "mint-topbar__plugin-icon",
1986
+ icon: unref(plugin)?.icon,
1987
+ size: "topbar",
1988
+ variant: "solid"
1989
+ }, null, 8, ["icon"])) : renderSlot(_ctx.$slots, "icon", {}, () => [pluginIcon.value ? (openBlock(), createBlock(PluginIcon_default, {
1990
+ key: 0,
1991
+ class: "mint-topbar__plugin-icon",
1992
+ icon: pluginIcon.value,
1993
+ size: "topbar",
1994
+ variant: "solid"
1995
+ }, null, 8, ["icon"])) : renderSlot(_ctx.$slots, "logo", {}, () => [config.value.logo ? (openBlock(), createElementBlock("div", _hoisted_10$1, [..._cache[11] || (_cache[11] = [createElementVNode("div", { class: "mint-topbar__logo-icon" }, [createElementVNode("span", { class: "mint-topbar__logo-text" }, "M")], -1)])])) : createCommentVNode("", true)], void 0, 1)], void 0, 1)])) : createCommentVNode("", true)], 64))]),
1996
+ identityName.value ? (openBlock(), createElementBlock("span", _hoisted_11$1, [createElementVNode("span", _hoisted_12$1, toDisplayString(identityName.value), 1), identitySubtitle.value ? (openBlock(), createElementBlock("span", _hoisted_13$1, toDisplayString(identitySubtitle.value), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true),
1997
+ hasPlatformPageSelector.value ? (openBlock(), createElementBlock("span", {
1998
+ key: 1,
1999
+ ref_key: "platformPageSelectorEl",
2000
+ ref: platformPageSelectorEl,
2001
+ class: "mint-topbar__platform-page-selector"
2002
+ }, null, 512)) : hasPropPageSelector.value ? (openBlock(), createBlock(AppTopBarPageSelectorInternal_default, {
2003
+ key: 2,
2004
+ pages: normalizedPageSelector.value,
2005
+ "current-page-id": __props.currentPageSelectorId,
2006
+ onSelect: _cache[0] || (_cache[0] = ($event) => emit("page-selector-select", $event))
2007
+ }, createSlots({ _: 2 }, [_ctx.$slots["page-selector-icon"] ? {
2008
+ name: "icon",
2009
+ fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, "page-selector-icon", normalizeProps(guardReactiveProps(slotProps)))]),
2010
+ key: "0"
2011
+ } : void 0, _ctx.$slots["page-selector-item-icon"] ? {
2012
+ name: "item-icon",
2013
+ fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, "page-selector-item-icon", normalizeProps(guardReactiveProps(slotProps)))]),
2014
+ key: "1"
2015
+ } : void 0]), 1032, ["pages", "current-page-id"])) : createCommentVNode("", true),
2016
+ hasTitleGroup.value ? (openBlock(), createElementBlock("div", _hoisted_14$1, [createElementVNode("span", _hoisted_15$1, toDisplayString(titleText.value), 1), createElementVNode("span", _hoisted_16$1, toDisplayString(subtitleText.value), 1)])) : hasTitleOnly.value ? (openBlock(), createElementBlock("span", _hoisted_17$1, toDisplayString(titleText.value), 1)) : createCommentVNode("", true),
2017
+ renderSlot(_ctx.$slots, "nav")
2018
+ ]),
2019
+ hasPillNav.value || _ctx.$slots.center ? (openBlock(), createElementBlock("div", _hoisted_18$1, [renderSlot(_ctx.$slots, "center", {}, () => [hasPillNav.value ? (openBlock(), createBlock(AppTopBarPillNavInternal_default, {
1969
2020
  key: 0,
1970
2021
  items: normalizedPillNav.value,
1971
2022
  "current-item-id": __props.pill,
1972
2023
  onSelect: handlePillSelect,
1973
2024
  onOptionSelect: _cache[1] || (_cache[1] = (option, item) => emit("pill-option-select", option, item))
1974
2025
  }, null, 8, ["items", "current-item-id"])) : createCommentVNode("", true)])])) : createCommentVNode("", true),
1975
- createElementVNode("div", _hoisted_17$1, [
1976
- config.value.standaloneLabel !== false && isStandalone.value ? (openBlock(), createElementBlock("span", _hoisted_18$1, toDisplayString(config.value.standaloneLabel), 1)) : createCommentVNode("", true),
2026
+ createElementVNode("div", _hoisted_19$1, [
2027
+ config.value.standaloneLabel !== false && isStandalone.value ? (openBlock(), createElementBlock("span", _hoisted_20$1, toDisplayString(config.value.standaloneLabel), 1)) : createCommentVNode("", true),
1977
2028
  unref(appExperiment) && !isStandalone.value && canBindExperiment.value ? (openBlock(), createBlock(unref(ExperimentPopover), mergeProps({ key: 1 }, unref(appExperiment).popover.value, {
1978
2029
  onSelect: _cache[2] || (_cache[2] = ($event) => unref(appExperiment).openModal()),
1979
2030
  onSave: _cache[3] || (_cache[3] = ($event) => unref(appExperiment).handleSave()),
@@ -3509,6 +3560,6 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
3509
3560
  }
3510
3561
  });
3511
3562
  //#endregion
3512
- export { CollapsibleCard_default as A, controlValuesToComponentBindings as C, controlsToFormSchema as D, controlsTo as E, useTheme as M, controlsToSettingsSchema as O, controlBindings as S, controlValuesToComponentProps as T, usePluginWorkspace as _, pickExistingRecordKeys as a, getControlDefaults as b, valuesEqual as c, useForm as d, AppTopBar_default as f, AppLayout_default as g, normalizeLabelItemInput as h, formSchemaFieldNames as i, ThemeToggle_default as j, getDefaultControlView as k, useFormBuilder as l, normalizeItemInput as m, FormSchemaInternal_default as n, pickRecordKeys as o, PluginIcon_default as p, FormFieldRendererInternal_default as r, recordValuesEqualForKeys as s, AppSidebar_default as t, evaluateCondition as u, defineControlComponentBindings as v, controlValuesToComponentBindingsById as w, useControlSchema as x, defineControls as y };
3563
+ export { getDefaultControlView as A, controlBindings as C, controlsTo as D, controlValuesToComponentProps as E, ThemeToggle_default as M, useTheme as N, controlsToFormSchema as O, useControlSchema as S, controlValuesToComponentBindingsById as T, AppLayout_default as _, pickExistingRecordKeys as a, defineControls as b, valuesEqual as c, useForm as d, AppTopBar_default as f, normalizeLabelItemInput as g, normalizeItemInput as h, formSchemaFieldNames as i, CollapsibleCard_default as j, controlsToSettingsSchema as k, useFormBuilder as l, PluginIcon_default as m, FormSchemaInternal_default as n, pickRecordKeys as o, providePluginIdentity as p, FormFieldRendererInternal_default as r, recordValuesEqualForKeys as s, AppSidebar_default as t, evaluateCondition as u, usePluginWorkspace as v, controlValuesToComponentBindings as w, getControlDefaults as x, defineControlComponentBindings as y };
3513
3564
 
3514
- //# sourceMappingURL=AppSidebar-BmiiPfz9.js.map
3565
+ //# sourceMappingURL=AppSidebar-Dq9W1jE2.js.map