@morscherlab/mint-sdk 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ExperimentSelectorModal-DCXmwKNS.js → ExperimentSelectorModal-DHE9k8TP.js} +3 -3
- package/dist/{ExperimentSelectorModal-DCXmwKNS.js.map → ExperimentSelectorModal-DHE9k8TP.js.map} +1 -1
- package/dist/{SettingsModal-BYR20I4c.js → SettingsModal-DOcCf0Vo.js} +39 -16
- package/dist/SettingsModal-DOcCf0Vo.js.map +1 -0
- package/dist/{Skeleton-BAF3CKY7.js → Skeleton-jhF9wUkU.js} +17 -7
- package/dist/Skeleton-jhF9wUkU.js.map +1 -0
- package/dist/__tests__/components/FormField.test.d.ts +1 -0
- package/dist/__tests__/components/NumberInput.test.d.ts +1 -0
- package/dist/__tests__/composables/localFiles.test.d.ts +1 -0
- package/dist/__tests__/composables/usePickerSelection.test.d.ts +1 -0
- package/dist/__tests__/styles/tokenOnlyColors.test.d.ts +1 -0
- package/dist/components/AppSidebar.vue.d.ts +7 -7
- package/dist/components/BasePill.vue.d.ts +3 -0
- package/dist/components/BaseTabs.vue.d.ts +1 -4
- package/dist/components/FileUploader.vue.d.ts +3 -0
- package/dist/components/FormField.vue.d.ts +8 -1
- package/dist/components/PluginWorkspaceView.props.d.ts +3 -3
- package/dist/components/index.js +5 -5
- package/dist/{components-DIum5hkx.js → components-Cp8DcNrU.js} +472 -259
- package/dist/components-Cp8DcNrU.js.map +1 -0
- package/dist/composables/index.js +7 -7
- package/dist/composables/pluginWorkspaceModel.d.ts +0 -3
- package/dist/composables/useToast.d.ts +22 -1
- package/dist/{composables-mFXsTA4g.js → composables-D_4qqOlp.js} +6 -6
- package/dist/{composables-mFXsTA4g.js.map → composables-D_4qqOlp.js.map} +1 -1
- package/dist/index.js +10 -10
- package/dist/install.js +2 -2
- package/dist/styles.css +560 -303
- package/dist/templates/index.js +2 -2
- package/dist/{templates-CmGfmBRA.js → templates-Dd9bBSs6.js} +2 -2
- package/dist/{templates-CmGfmBRA.js.map → templates-Dd9bBSs6.js.map} +1 -1
- package/dist/types/components.d.ts +21 -0
- package/dist/types/form-builder.d.ts +2 -0
- package/dist/types/generated-ui.d.ts +2 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/{useControlSchema-DldpxNOP.js → useControlSchema-BB2GRPhW.js} +151 -71
- package/dist/useControlSchema-BB2GRPhW.js.map +1 -0
- package/dist/{useExperimentSelector-CEcIaueJ.js → useExperimentSelector-G_CAOFTX.js} +2 -2
- package/dist/{useExperimentSelector-CEcIaueJ.js.map → useExperimentSelector-G_CAOFTX.js.map} +1 -1
- package/dist/{useFormBuilder-z5L_dUIy.js → useFormBuilder-BnGSdSRG.js} +2 -2
- package/dist/{useFormBuilder-z5L_dUIy.js.map → useFormBuilder-BnGSdSRG.js.map} +1 -1
- package/dist/{validation-uwoJGEb6.js → validation-CTxuzLIX.js} +21 -9
- package/dist/validation-CTxuzLIX.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/components/AppSidebar.test.ts +84 -94
- package/src/__tests__/components/AppToastContainer.test.ts +55 -1
- package/src/__tests__/components/BioTemplatePresetWorkspaceView.test.ts +0 -21
- package/src/__tests__/components/ControlWorkspaceView.test.ts +0 -2
- package/src/__tests__/components/DoseDesignWorkspaceView.test.ts +0 -2
- package/src/__tests__/components/FormBuilder.test.ts +26 -0
- package/src/__tests__/components/FormField.test.ts +26 -0
- package/src/__tests__/components/GeneratedPathInput.test.ts +18 -0
- package/src/__tests__/components/NumberInput.test.ts +105 -0
- package/src/__tests__/components/PluginWorkspaceView.internal.test.ts +1 -2
- package/src/__tests__/components/PluginWorkspaceView.test.ts +1 -2
- package/src/__tests__/composables/localFiles.test.ts +57 -0
- package/src/__tests__/composables/usePickerSelection.test.ts +98 -0
- package/src/__tests__/generatedUi.test.ts +111 -0
- package/src/__tests__/styles/tokenOnlyColors.test.ts +16 -0
- package/src/components/AppLayout.story.vue +1 -1
- package/src/components/AppSidebar.story.vue +7 -10
- package/src/components/AppSidebar.vue +178 -58
- package/src/components/AppToastContainer.vue +65 -23
- package/src/components/BasePill.story.vue +2 -0
- package/src/components/BasePill.vue +4 -0
- package/src/components/BaseTabs.story.vue +0 -42
- package/src/components/BaseTabs.vue +3 -6
- package/src/components/FileUploader.vue +10 -1
- package/src/components/FormField.vue +10 -3
- package/src/components/GeneratedPathInput.vue +11 -7
- package/src/components/NumberInput.story.vue +32 -13
- package/src/components/NumberInput.vue +116 -55
- package/src/components/PluginWorkspaceView.props.ts +3 -3
- package/src/components/internal/FormFieldRendererInternal.vue +17 -0
- package/src/components/internal/WorkspaceSidebarInternal.vue +1 -2
- package/src/composables/filePicker/localFiles.ts +21 -14
- package/src/composables/filePicker/usePickerSelection.ts +15 -4
- package/src/composables/pluginWorkspaceModel.ts +0 -3
- package/src/composables/usePluginWorkspace.ts +1 -2
- package/src/composables/useToast.ts +21 -5
- package/src/generated/schema.ts +58 -18
- package/src/styles/components/app-sidebar.css +282 -121
- package/src/styles/components/form-builder.css +1 -1
- package/src/styles/components/form-field.css +28 -0
- package/src/styles/components/number-input.css +73 -91
- package/src/styles/components/pill.css +49 -51
- package/src/styles/components/segmented-control.css +16 -11
- package/src/styles/components/tabs.css +18 -34
- package/src/styles/components/toast.css +136 -27
- package/src/styles/variables.css +25 -5
- package/src/types/components.ts +23 -0
- package/src/types/form-builder.ts +2 -0
- package/src/types/generated-ui.ts +2 -0
- package/src/types/index.ts +2 -0
- package/dist/SettingsModal-BYR20I4c.js.map +0 -1
- package/dist/Skeleton-BAF3CKY7.js.map +0 -1
- package/dist/components-DIum5hkx.js.map +0 -1
- package/dist/useControlSchema-DldpxNOP.js.map +0 -1
- package/dist/validation-uwoJGEb6.js.map +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { n as __exportAll, r as __toESM } from "./chunk-BoAXSpZd.js";
|
|
2
2
|
import { i as useApi, l as tableDensityToSize, u as tryUseSettingsStore } from "./errors-BLuqMee5.js";
|
|
3
3
|
import { f as BaseModal_default, h as BaseButton_default, m as useEventListener, p as useFocusTrap } from "./experiment-utils-CV2Wza3z.js";
|
|
4
|
-
import { a as BaseSelect_default, i as BasePill_default, n as useRequestSyncState, o as normalizeOptionInput, r as EmptyState_default, s as BaseInput_default, t as Skeleton_default } from "./Skeleton-
|
|
5
|
-
import { A as useConcentrationUnits, Bt as MultiSelect_default, Gt as BaseToggle_default, I as useChemicalFormula, Jt as BaseTextarea_default, K as useGeneratedAnalysis, Kt as BaseCheckbox_default, L as GeneratedPathInput_default, M as SequenceInput_default, O as ConcentrationInput_default, Ot as formatDuration, P as FormulaInput_default, R as ArtifactSelectorModal_default, St as TimePicker_default, Tt as durationMinutes, U as resolveCurrentExperimentId, Ut as BaseSlider_default, V as getInjectedPlatformContext, Vt as useListSelection, Wt as BaseRadioGroup_default, X as jobStatusLabel, Z as normalizeJobPercent, _ as controlsToFormSchema, at as AlertBox_default, ct as SecretInput_default, f as resolveControlModel, g as mergeControlWorkspaceOptions, it as _plugin_vue_export_helper_default, j as MoleculeInput_default, k as UnitInput_default, kt as formatTime, o as defineDoseDesignControlModel, ot as FileUploader_default, qt as Tooltip_default, r as getControlDefaults, rt as isRecord, st as NumberInput_default, tt as DateTimePicker_default, u as useControlWorkspace, wt as compareTime, x as controlsToSidebarPanels, xt as TagsInput_default, y as controlsToSectionFormSchemas, zt as DatePicker_default } from "./useControlSchema-
|
|
6
|
-
import { a as pickExistingRecordKeys, c as normalizeItemInput, i as formSchemaFieldNames, l as normalizeLabelItemInput, o as recordValuesEqualForKeys, r as FormFieldRendererInternal_default, s as FormField_default, t as SettingsModal_default } from "./SettingsModal-
|
|
7
|
-
import { $ as getInjectedFrontendRevision, C as useExpansionSet, E as getSampleGroupParentPath, H as useListReorder, J as usePluginWorkspace, N as useAutoGroup, P as parseCSV, Q as useAppExperiment, R as DEFAULT_COLORS, S as useExperimentData, T as getSampleGroupMajorPrefix, U as useReorderAnnouncer, W as useDoseCalculator, X as useMobileSupportGate, Y as DEFAULT_MOBILE_VIEWPORT_QUERY, Z as APP_EXPERIMENT_KEY, a as DEFAULT_PRESETS, b as useScheduleDrag, c as useReagentSeries, d as useBioTemplatePresetWorkspace, dt as useRovingFocus, et as useRuntimeAlignment, f as useBioTemplatePackWorkspace, i as useProtocolTemplates, it as useToast, k as readFileAsText, l as useGroupAssignment, lt as useSortedItems, n as pickerFormat, nt as usePresenceHeartbeat, o as DEFAULT_UNITS, q as usePluginJobCenter, r as pickerReason, rt as useTheme, st as useTextSearch, t as pickerExclusion, u as useRackEditor, ut as useMenuKeyboard, w as useSampleGroups, x as useExperimentSamples, z as useWellPlateEditor } from "./validation-
|
|
4
|
+
import { a as BaseSelect_default, i as BasePill_default, n as useRequestSyncState, o as normalizeOptionInput, r as EmptyState_default, s as BaseInput_default, t as Skeleton_default } from "./Skeleton-jhF9wUkU.js";
|
|
5
|
+
import { A as useConcentrationUnits, Bt as MultiSelect_default, Gt as BaseToggle_default, I as useChemicalFormula, Jt as BaseTextarea_default, K as useGeneratedAnalysis, Kt as BaseCheckbox_default, L as GeneratedPathInput_default, M as SequenceInput_default, O as ConcentrationInput_default, Ot as formatDuration, P as FormulaInput_default, R as ArtifactSelectorModal_default, St as TimePicker_default, Tt as durationMinutes, U as resolveCurrentExperimentId, Ut as BaseSlider_default, V as getInjectedPlatformContext, Vt as useListSelection, Wt as BaseRadioGroup_default, X as jobStatusLabel, Z as normalizeJobPercent, _ as controlsToFormSchema, at as AlertBox_default, ct as SecretInput_default, f as resolveControlModel, g as mergeControlWorkspaceOptions, it as _plugin_vue_export_helper_default, j as MoleculeInput_default, k as UnitInput_default, kt as formatTime, o as defineDoseDesignControlModel, ot as FileUploader_default, qt as Tooltip_default, r as getControlDefaults, rt as isRecord, st as NumberInput_default, tt as DateTimePicker_default, u as useControlWorkspace, wt as compareTime, x as controlsToSidebarPanels, xt as TagsInput_default, y as controlsToSectionFormSchemas, zt as DatePicker_default } from "./useControlSchema-BB2GRPhW.js";
|
|
6
|
+
import { a as pickExistingRecordKeys, c as normalizeItemInput, i as formSchemaFieldNames, l as normalizeLabelItemInput, o as recordValuesEqualForKeys, r as FormFieldRendererInternal_default, s as FormField_default, t as SettingsModal_default } from "./SettingsModal-DOcCf0Vo.js";
|
|
7
|
+
import { $ as getInjectedFrontendRevision, C as useExpansionSet, E as getSampleGroupParentPath, H as useListReorder, J as usePluginWorkspace, N as useAutoGroup, P as parseCSV, Q as useAppExperiment, R as DEFAULT_COLORS, S as useExperimentData, T as getSampleGroupMajorPrefix, U as useReorderAnnouncer, W as useDoseCalculator, X as useMobileSupportGate, Y as DEFAULT_MOBILE_VIEWPORT_QUERY, Z as APP_EXPERIMENT_KEY, a as DEFAULT_PRESETS, b as useScheduleDrag, c as useReagentSeries, d as useBioTemplatePresetWorkspace, dt as useRovingFocus, et as useRuntimeAlignment, f as useBioTemplatePackWorkspace, i as useProtocolTemplates, it as useToast, k as readFileAsText, l as useGroupAssignment, lt as useSortedItems, n as pickerFormat, nt as usePresenceHeartbeat, o as DEFAULT_UNITS, q as usePluginJobCenter, r as pickerReason, rt as useTheme, st as useTextSearch, t as pickerExclusion, u as useRackEditor, ut as useMenuKeyboard, w as useSampleGroups, x as useExperimentSamples, z as useWellPlateEditor } from "./validation-CTxuzLIX.js";
|
|
8
8
|
import { t as useDropdownState } from "./useDropdownState-C7hRiVQf.js";
|
|
9
|
-
import { i as usePlatformContext, t as useFormBuilder } from "./useFormBuilder-
|
|
9
|
+
import { i as usePlatformContext, t as useFormBuilder } from "./useFormBuilder-BnGSdSRG.js";
|
|
10
10
|
import { t as ANALYSIS_FILE_ARTIFACT_SCHEMA } from "./analysisArtifactTypes-DQ0MjwHZ.js";
|
|
11
|
-
import { B as toBioTemplateComponentProps, Cn as SLOT_ORDER, F as getBioTemplateComponentProps, H as toBioTemplateComponentPropsById, L as toBioTemplateComponentBindings, R as toBioTemplateComponentBindingsById, Sn as SLOT_COLORS, V as toBioTemplateComponentPropsByComponent, _n as createWellGrid, dn as extractTemplateCollection, gn as createPlateRowLabels, hn as createPlateColumnLabels, mn as WELL_PLATE_SIZE_CONFIGS, pn as PLATE_CONFIGS, vn as getRectangleWellIds, xn as SAMPLE_COLOR_SCALE } from "./templates-
|
|
11
|
+
import { B as toBioTemplateComponentProps, Cn as SLOT_ORDER, F as getBioTemplateComponentProps, H as toBioTemplateComponentPropsById, L as toBioTemplateComponentBindings, R as toBioTemplateComponentBindingsById, Sn as SLOT_COLORS, V as toBioTemplateComponentPropsByComponent, _n as createWellGrid, dn as extractTemplateCollection, gn as createPlateRowLabels, hn as createPlateColumnLabels, mn as WELL_PLATE_SIZE_CONFIGS, pn as PLATE_CONFIGS, vn as getRectangleWellIds, xn as SAMPLE_COLOR_SCALE } from "./templates-Dd9bBSs6.js";
|
|
12
12
|
import { r as ConfirmDialog_default, t as ExperimentPopover_default } from "./ExperimentPopover-CJdNlCZb.js";
|
|
13
|
-
import { r as ExperimentCodeBadge_default, t as ExperimentSelectorModal_default } from "./ExperimentSelectorModal-
|
|
13
|
+
import { r as ExperimentCodeBadge_default, t as ExperimentSelectorModal_default } from "./ExperimentSelectorModal-DHE9k8TP.js";
|
|
14
14
|
import { Fragment, Teleport, Transition, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, effectScope, guardReactiveProps, h, inject, isRef, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, reactive, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toHandlers, toRaw, toRef, unref, useId, useModel, useSlots, vModelCheckbox, vModelSelect, vModelText, vShow, watch, withCtx, withDirectives, withKeys, withModifiers } from "vue";
|
|
15
15
|
import { computePosition, flip, offset, shift } from "@floating-ui/dom";
|
|
16
16
|
import { Ellipsis, RefreshCw } from "lucide-vue-next";
|
|
@@ -168,7 +168,11 @@ var ColorSlider_default = /* @__PURE__ */ defineComponent({
|
|
|
168
168
|
});
|
|
169
169
|
//#endregion
|
|
170
170
|
//#region src/components/BaseTabs.vue?vue&type=script&setup=true&lang.ts
|
|
171
|
-
var _hoisted_1$85 =
|
|
171
|
+
var _hoisted_1$85 = {
|
|
172
|
+
class: "mint-tabs mint-tabs--underline",
|
|
173
|
+
role: "tablist"
|
|
174
|
+
};
|
|
175
|
+
var _hoisted_2$75 = [
|
|
172
176
|
"id",
|
|
173
177
|
"aria-selected",
|
|
174
178
|
"aria-disabled",
|
|
@@ -176,8 +180,8 @@ var _hoisted_1$85 = [
|
|
|
176
180
|
"tabindex",
|
|
177
181
|
"onClick"
|
|
178
182
|
];
|
|
179
|
-
var
|
|
180
|
-
var
|
|
183
|
+
var _hoisted_3$68 = { class: "mint-tab__content" };
|
|
184
|
+
var _hoisted_4$64 = {
|
|
181
185
|
key: 0,
|
|
182
186
|
class: "mint-tab__icon mint-tab__icon--svg",
|
|
183
187
|
viewBox: "0 0 24 24",
|
|
@@ -188,13 +192,13 @@ var _hoisted_3$68 = {
|
|
|
188
192
|
"stroke-linejoin": "round",
|
|
189
193
|
"aria-hidden": "true"
|
|
190
194
|
};
|
|
191
|
-
var
|
|
192
|
-
var
|
|
193
|
-
var
|
|
195
|
+
var _hoisted_5$61 = ["d"];
|
|
196
|
+
var _hoisted_6$57 = ["d"];
|
|
197
|
+
var _hoisted_7$51 = {
|
|
194
198
|
key: 1,
|
|
195
199
|
class: "mint-tab__icon"
|
|
196
200
|
};
|
|
197
|
-
var
|
|
201
|
+
var _hoisted_8$46 = {
|
|
198
202
|
key: 2,
|
|
199
203
|
class: "mint-tab__badge"
|
|
200
204
|
};
|
|
@@ -204,12 +208,11 @@ var BaseTabs_default = /* @__PURE__ */ defineComponent({
|
|
|
204
208
|
__name: "BaseTabs",
|
|
205
209
|
props: {
|
|
206
210
|
modelValue: {},
|
|
207
|
-
tabs: {}
|
|
208
|
-
variant: { default: "underline" }
|
|
211
|
+
tabs: {}
|
|
209
212
|
},
|
|
210
213
|
emits: ["update:modelValue"],
|
|
211
214
|
setup(__props, { emit: __emit }) {
|
|
212
|
-
/** Renders
|
|
215
|
+
/** Renders an underline tab bar with mono count badges, icons, and disabled tab support. */
|
|
213
216
|
const props = __props;
|
|
214
217
|
const emit = __emit;
|
|
215
218
|
const activeTab = computed(() => props.modelValue);
|
|
@@ -234,10 +237,7 @@ var BaseTabs_default = /* @__PURE__ */ defineComponent({
|
|
|
234
237
|
getElement: (id) => tabButtonRefs.get(id)
|
|
235
238
|
});
|
|
236
239
|
return (_ctx, _cache) => {
|
|
237
|
-
return openBlock(), createElementBlock("div", {
|
|
238
|
-
class: normalizeClass(["mint-tabs", `mint-tabs--${__props.variant}`]),
|
|
239
|
-
role: "tablist"
|
|
240
|
-
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedTabs.value, (tab) => {
|
|
240
|
+
return openBlock(), createElementBlock("div", _hoisted_1$85, [(openBlock(true), createElementBlock(Fragment, null, renderList(normalizedTabs.value, (tab) => {
|
|
241
241
|
return openBlock(), createElementBlock("button", {
|
|
242
242
|
id: `mint-tab-${tab.id}`,
|
|
243
243
|
key: tab.id,
|
|
@@ -256,20 +256,20 @@ var BaseTabs_default = /* @__PURE__ */ defineComponent({
|
|
|
256
256
|
]),
|
|
257
257
|
onClick: ($event) => selectTab(tab.id),
|
|
258
258
|
onKeydown: _cache[0] || (_cache[0] = (...args) => unref(handleKeydown) && unref(handleKeydown)(...args))
|
|
259
|
-
}, [createElementVNode("span",
|
|
260
|
-
isSvgIcon(tab.icon) ? (openBlock(), createElementBlock("svg",
|
|
259
|
+
}, [createElementVNode("span", _hoisted_3$68, [
|
|
260
|
+
isSvgIcon(tab.icon) ? (openBlock(), createElementBlock("svg", _hoisted_4$64, [Array.isArray(tab.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(tab.icon, (d, index) => {
|
|
261
261
|
return openBlock(), createElementBlock("path", {
|
|
262
262
|
key: index,
|
|
263
263
|
d
|
|
264
|
-
}, null, 8,
|
|
264
|
+
}, null, 8, _hoisted_5$61);
|
|
265
265
|
}), 128)) : (openBlock(), createElementBlock("path", {
|
|
266
266
|
key: 1,
|
|
267
267
|
d: tab.icon
|
|
268
|
-
}, null, 8,
|
|
268
|
+
}, null, 8, _hoisted_6$57))])) : tab.icon ? (openBlock(), createElementBlock("span", _hoisted_7$51, toDisplayString(tab.icon), 1)) : createCommentVNode("", true),
|
|
269
269
|
createTextVNode(" " + toDisplayString(tab.label) + " ", 1),
|
|
270
|
-
tab.badge !== void 0 ? (openBlock(), createElementBlock("span",
|
|
271
|
-
])], 42,
|
|
272
|
-
}), 128))]
|
|
270
|
+
tab.badge !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_8$46, toDisplayString(tab.badge), 1)) : createCommentVNode("", true)
|
|
271
|
+
])], 42, _hoisted_2$75);
|
|
272
|
+
}), 128))]);
|
|
273
273
|
};
|
|
274
274
|
}
|
|
275
275
|
});
|
|
@@ -403,20 +403,20 @@ var _hoisted_2$73 = {
|
|
|
403
403
|
"aria-hidden": "true"
|
|
404
404
|
};
|
|
405
405
|
var _hoisted_3$66 = { class: "mint-dropdown-button__label" };
|
|
406
|
-
var _hoisted_4$
|
|
407
|
-
var _hoisted_5$
|
|
406
|
+
var _hoisted_4$63 = ["aria-activedescendant"];
|
|
407
|
+
var _hoisted_5$60 = [
|
|
408
408
|
"id",
|
|
409
409
|
"aria-selected",
|
|
410
410
|
"aria-disabled",
|
|
411
411
|
"onClick",
|
|
412
412
|
"onKeydown"
|
|
413
413
|
];
|
|
414
|
-
var _hoisted_6$
|
|
415
|
-
var _hoisted_7$
|
|
414
|
+
var _hoisted_6$56 = { class: "mint-dropdown-button__option-label" };
|
|
415
|
+
var _hoisted_7$50 = {
|
|
416
416
|
key: 0,
|
|
417
417
|
class: "mint-dropdown-button__option-description"
|
|
418
418
|
};
|
|
419
|
-
var _hoisted_8$
|
|
419
|
+
var _hoisted_8$45 = {
|
|
420
420
|
key: 1,
|
|
421
421
|
class: "mint-dropdown-button__option-check",
|
|
422
422
|
viewBox: "0 0 24 24",
|
|
@@ -552,11 +552,11 @@ var DropdownButton_default = /* @__PURE__ */ defineComponent({
|
|
|
552
552
|
onClick: ($event) => selectOption(option),
|
|
553
553
|
onKeydown: [withKeys(withModifiers(($event) => selectOption(option), ["prevent"]), ["enter"]), withKeys(withModifiers(($event) => selectOption(option), ["prevent"]), ["space"])]
|
|
554
554
|
}, [
|
|
555
|
-
createElementVNode("span", _hoisted_6$
|
|
556
|
-
option.description ? (openBlock(), createElementBlock("span", _hoisted_7$
|
|
557
|
-
option.value === __props.modelValue ? (openBlock(), createElementBlock("svg", _hoisted_8$
|
|
558
|
-
], 42, _hoisted_5$
|
|
559
|
-
}), 128))], 40, _hoisted_4$
|
|
555
|
+
createElementVNode("span", _hoisted_6$56, toDisplayString(option.label), 1),
|
|
556
|
+
option.description ? (openBlock(), createElementBlock("span", _hoisted_7$50, toDisplayString(option.description), 1)) : createCommentVNode("", true),
|
|
557
|
+
option.value === __props.modelValue ? (openBlock(), createElementBlock("svg", _hoisted_8$45, [..._cache[4] || (_cache[4] = [createElementVNode("path", { d: "M20 6 9 17l-5-5" }, null, -1)])])) : createCommentVNode("", true)
|
|
558
|
+
], 42, _hoisted_5$60);
|
|
559
|
+
}), 128))], 40, _hoisted_4$63)) : createCommentVNode("", true)]),
|
|
560
560
|
_: 1
|
|
561
561
|
})], 512);
|
|
562
562
|
};
|
|
@@ -570,19 +570,19 @@ var _hoisted_2$72 = {
|
|
|
570
570
|
class: "mint-calendar__header"
|
|
571
571
|
};
|
|
572
572
|
var _hoisted_3$65 = { class: "mint-calendar__title" };
|
|
573
|
-
var _hoisted_4$
|
|
574
|
-
var _hoisted_5$
|
|
575
|
-
var _hoisted_6$
|
|
573
|
+
var _hoisted_4$62 = { class: "mint-calendar__weekdays" };
|
|
574
|
+
var _hoisted_5$59 = { class: "mint-calendar__grid" };
|
|
575
|
+
var _hoisted_6$55 = [
|
|
576
576
|
"disabled",
|
|
577
577
|
"onClick",
|
|
578
578
|
"onMouseenter"
|
|
579
579
|
];
|
|
580
|
-
var _hoisted_7$
|
|
581
|
-
var _hoisted_8$
|
|
580
|
+
var _hoisted_7$49 = { class: "mint-calendar__day-number" };
|
|
581
|
+
var _hoisted_8$44 = {
|
|
582
582
|
key: 0,
|
|
583
583
|
class: "mint-calendar__markers"
|
|
584
584
|
};
|
|
585
|
-
var _hoisted_9$
|
|
585
|
+
var _hoisted_9$42 = ["title"];
|
|
586
586
|
//#endregion
|
|
587
587
|
//#region src/components/Calendar.vue
|
|
588
588
|
var Calendar_default = /* @__PURE__ */ defineComponent({
|
|
@@ -833,7 +833,7 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
|
|
|
833
833
|
"stroke-linejoin": "round"
|
|
834
834
|
}, [createElementVNode("path", { d: "m9 18 6-6-6-6" })], -1)])])
|
|
835
835
|
])) : createCommentVNode("", true),
|
|
836
|
-
createElementVNode("div", _hoisted_4$
|
|
836
|
+
createElementVNode("div", _hoisted_4$62, [(openBlock(true), createElementBlock(Fragment, null, renderList(weekDayLabels.value, (label, i) => {
|
|
837
837
|
return openBlock(), createElementBlock("span", {
|
|
838
838
|
key: i,
|
|
839
839
|
class: "mint-calendar__weekday"
|
|
@@ -842,7 +842,7 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
|
|
|
842
842
|
index: i
|
|
843
843
|
}, () => [createTextVNode(toDisplayString(label), 1)])]);
|
|
844
844
|
}), 128))]),
|
|
845
|
-
createElementVNode("div", _hoisted_5$
|
|
845
|
+
createElementVNode("div", _hoisted_5$59, [(openBlock(true), createElementBlock(Fragment, null, renderList(calendarDays.value, (day, i) => {
|
|
846
846
|
return openBlock(), createElementBlock("button", {
|
|
847
847
|
key: i,
|
|
848
848
|
type: "button",
|
|
@@ -857,14 +857,14 @@ var Calendar_default = /* @__PURE__ */ defineComponent({
|
|
|
857
857
|
}]),
|
|
858
858
|
onClick: ($event) => handleDayClick(day),
|
|
859
859
|
onMouseenter: ($event) => handleDayHover(day)
|
|
860
|
-
}, [renderSlot(_ctx.$slots, "day-content", { day }, () => [createElementVNode("span", _hoisted_7$
|
|
860
|
+
}, [renderSlot(_ctx.$slots, "day-content", { day }, () => [createElementVNode("span", _hoisted_7$49, toDisplayString(day.dayOfMonth), 1), day.markers.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_8$44, [(openBlock(true), createElementBlock(Fragment, null, renderList(day.markers.slice(0, 3), (marker, mi) => {
|
|
861
861
|
return openBlock(), createElementBlock("span", {
|
|
862
862
|
key: mi,
|
|
863
863
|
class: normalizeClass(["mint-calendar__marker", `mint-calendar__marker--${marker.type ?? "dot"}`]),
|
|
864
864
|
style: normalizeStyle(marker.color ? { "--marker-color": marker.color } : {}),
|
|
865
865
|
title: marker.label
|
|
866
|
-
}, null, 14, _hoisted_9$
|
|
867
|
-
}), 128))])) : createCommentVNode("", true)])], 42, _hoisted_6$
|
|
866
|
+
}, null, 14, _hoisted_9$42);
|
|
867
|
+
}), 128))])) : createCommentVNode("", true)])], 42, _hoisted_6$55);
|
|
868
868
|
}), 128))])
|
|
869
869
|
]);
|
|
870
870
|
};
|
|
@@ -990,39 +990,39 @@ var _hoisted_1$79 = {
|
|
|
990
990
|
};
|
|
991
991
|
var _hoisted_2$70 = { class: "mint-dataframe__search-wrapper" };
|
|
992
992
|
var _hoisted_3$64 = ["placeholder"];
|
|
993
|
-
var _hoisted_4$
|
|
994
|
-
var _hoisted_5$
|
|
993
|
+
var _hoisted_4$61 = { class: "mint-dataframe__table" };
|
|
994
|
+
var _hoisted_5$58 = {
|
|
995
995
|
key: 0,
|
|
996
996
|
class: "mint-dataframe__th mint-dataframe__th--checkbox"
|
|
997
997
|
};
|
|
998
|
-
var _hoisted_6$
|
|
999
|
-
var _hoisted_7$
|
|
1000
|
-
var _hoisted_8$
|
|
1001
|
-
var _hoisted_9$
|
|
998
|
+
var _hoisted_6$54 = ["checked", "indeterminate"];
|
|
999
|
+
var _hoisted_7$48 = ["aria-sort"];
|
|
1000
|
+
var _hoisted_8$43 = { class: "mint-dataframe__th-content" };
|
|
1001
|
+
var _hoisted_9$41 = [
|
|
1002
1002
|
"aria-label",
|
|
1003
1003
|
"aria-valuemin",
|
|
1004
1004
|
"aria-valuenow",
|
|
1005
1005
|
"onMousedown",
|
|
1006
1006
|
"onKeydown"
|
|
1007
1007
|
];
|
|
1008
|
-
var _hoisted_10$
|
|
1008
|
+
var _hoisted_10$37 = [
|
|
1009
1009
|
"tabindex",
|
|
1010
1010
|
"role",
|
|
1011
1011
|
"onClick",
|
|
1012
1012
|
"onKeydown"
|
|
1013
1013
|
];
|
|
1014
|
-
var _hoisted_11$
|
|
1014
|
+
var _hoisted_11$35 = {
|
|
1015
1015
|
key: 0,
|
|
1016
1016
|
class: "mint-dataframe__td mint-dataframe__td--checkbox"
|
|
1017
1017
|
};
|
|
1018
|
-
var _hoisted_12$
|
|
1019
|
-
var _hoisted_13$
|
|
1020
|
-
var _hoisted_14$
|
|
1018
|
+
var _hoisted_12$31 = ["checked", "onChange"];
|
|
1019
|
+
var _hoisted_13$31 = ["onClick"];
|
|
1020
|
+
var _hoisted_14$29 = [
|
|
1021
1021
|
"aria-label",
|
|
1022
1022
|
"title",
|
|
1023
1023
|
"onClick"
|
|
1024
1024
|
];
|
|
1025
|
-
var _hoisted_15$
|
|
1025
|
+
var _hoisted_15$29 = {
|
|
1026
1026
|
key: 0,
|
|
1027
1027
|
class: "mint-dataframe__state"
|
|
1028
1028
|
};
|
|
@@ -1034,15 +1034,15 @@ var _hoisted_17$23 = {
|
|
|
1034
1034
|
key: 2,
|
|
1035
1035
|
class: "mint-dataframe__loading"
|
|
1036
1036
|
};
|
|
1037
|
-
var _hoisted_18$
|
|
1037
|
+
var _hoisted_18$21 = {
|
|
1038
1038
|
key: 1,
|
|
1039
1039
|
class: "mint-dataframe__footer"
|
|
1040
1040
|
};
|
|
1041
|
-
var _hoisted_19$
|
|
1042
|
-
var _hoisted_20$
|
|
1043
|
-
var _hoisted_21$
|
|
1044
|
-
var _hoisted_22$
|
|
1045
|
-
var _hoisted_23$
|
|
1041
|
+
var _hoisted_19$18 = { class: "mint-dataframe__page-info" };
|
|
1042
|
+
var _hoisted_20$17 = { class: "mint-dataframe__page-controls" };
|
|
1043
|
+
var _hoisted_21$16 = ["disabled"];
|
|
1044
|
+
var _hoisted_22$15 = { class: "mint-dataframe__page-number" };
|
|
1045
|
+
var _hoisted_23$14 = ["disabled"];
|
|
1046
1046
|
/** Inbox glyph kept from the pre-1.2 hand-rolled empty state. */
|
|
1047
1047
|
var EMPTY_ICON_PATH$2 = "M22 12L16 12L14 15L10 15L8 12L2 12M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z";
|
|
1048
1048
|
var MIN_COL_WIDTH = 48;
|
|
@@ -1347,14 +1347,14 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1347
1347
|
class: "mint-dataframe__table-wrapper",
|
|
1348
1348
|
style: normalizeStyle(wrapperStyle.value)
|
|
1349
1349
|
}, [
|
|
1350
|
-
createElementVNode("table", _hoisted_4$
|
|
1351
|
-
__props.selectable ? (openBlock(), createElementBlock("th", _hoisted_5$
|
|
1350
|
+
createElementVNode("table", _hoisted_4$61, [createElementVNode("thead", { class: normalizeClass(["mint-dataframe__thead", { "mint-dataframe__thead--sticky": __props.stickyHeader }]) }, [createElementVNode("tr", null, [
|
|
1351
|
+
__props.selectable ? (openBlock(), createElementBlock("th", _hoisted_5$58, [createElementVNode("input", {
|
|
1352
1352
|
type: "checkbox",
|
|
1353
1353
|
checked: allSelected.value,
|
|
1354
1354
|
indeterminate: selectIndeterminate.value,
|
|
1355
1355
|
class: "mint-dataframe__checkbox",
|
|
1356
1356
|
onChange: toggleSelectAll
|
|
1357
|
-
}, null, 40, _hoisted_6$
|
|
1357
|
+
}, null, 40, _hoisted_6$54)])) : createCommentVNode("", true),
|
|
1358
1358
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (col) => {
|
|
1359
1359
|
return openBlock(), createElementBlock("th", {
|
|
1360
1360
|
key: col.key,
|
|
@@ -1376,7 +1376,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1376
1376
|
onClick: ($event) => isColumnSortable(col) ? handleSort(col) : void 0,
|
|
1377
1377
|
onKeydown: ($event) => isColumnSortable(col) ? handleSortKeydown($event, col) : void 0
|
|
1378
1378
|
}, {
|
|
1379
|
-
default: withCtx(() => [renderSlot(_ctx.$slots, `header-${col.key}`, { column: col }, () => [createElementVNode("div", _hoisted_8$
|
|
1379
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, `header-${col.key}`, { column: col }, () => [createElementVNode("div", _hoisted_8$43, [createElementVNode("span", null, toDisplayString(col.label), 1), isColumnSortable(col) ? (openBlock(), createElementBlock("svg", {
|
|
1380
1380
|
key: 0,
|
|
1381
1381
|
class: normalizeClass(["mint-dataframe__sort-icon", {
|
|
1382
1382
|
"mint-dataframe__sort-icon--asc": activeSort.value?.key === col.key && activeSort.value?.direction === "asc",
|
|
@@ -1411,7 +1411,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1411
1411
|
onMousedown: ($event) => startResize(col, $event),
|
|
1412
1412
|
onKeydown: ($event) => handleResizeKeydown($event, col),
|
|
1413
1413
|
onClick: _cache[1] || (_cache[1] = withModifiers(() => {}, ["stop"]))
|
|
1414
|
-
}, null, 40, _hoisted_9$
|
|
1414
|
+
}, null, 40, _hoisted_9$41)) : createCommentVNode("", true)], 14, _hoisted_7$48);
|
|
1415
1415
|
}), 128)),
|
|
1416
1416
|
__props.deletable ? (openBlock(), createElementBlock("th", {
|
|
1417
1417
|
key: 1,
|
|
@@ -1435,13 +1435,13 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1435
1435
|
onClick: ($event) => handleRowClick(row, rowIndex),
|
|
1436
1436
|
onKeydown: ($event) => handleRowKeydown($event, row, rowIndex)
|
|
1437
1437
|
}, [
|
|
1438
|
-
__props.selectable ? (openBlock(), createElementBlock("td", _hoisted_11$
|
|
1438
|
+
__props.selectable ? (openBlock(), createElementBlock("td", _hoisted_11$35, [createElementVNode("input", {
|
|
1439
1439
|
type: "checkbox",
|
|
1440
1440
|
checked: unref(rowSelection).isSelected(getRowKey(row, rowIndex)),
|
|
1441
1441
|
class: "mint-dataframe__checkbox",
|
|
1442
1442
|
onClick: _cache[2] || (_cache[2] = withModifiers(() => {}, ["stop"])),
|
|
1443
1443
|
onChange: ($event) => toggleRowSelect(getRowKey(row, rowIndex))
|
|
1444
|
-
}, null, 40, _hoisted_12$
|
|
1444
|
+
}, null, 40, _hoisted_12$31)])) : createCommentVNode("", true),
|
|
1445
1445
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (col) => {
|
|
1446
1446
|
return openBlock(), createElementBlock("td", {
|
|
1447
1447
|
key: col.key,
|
|
@@ -1457,7 +1457,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1457
1457
|
row,
|
|
1458
1458
|
column: col,
|
|
1459
1459
|
index: rowIndex
|
|
1460
|
-
}, () => [createTextVNode(toDisplayString(formatCell(col, row, rowIndex)), 1)])], 10, _hoisted_13$
|
|
1460
|
+
}, () => [createTextVNode(toDisplayString(formatCell(col, row, rowIndex)), 1)])], 10, _hoisted_13$31);
|
|
1461
1461
|
}), 128)),
|
|
1462
1462
|
__props.deletable ? (openBlock(), createElementBlock("td", {
|
|
1463
1463
|
key: 1,
|
|
@@ -1472,10 +1472,10 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1472
1472
|
"aria-label": __props.deleteLabel,
|
|
1473
1473
|
title: __props.deleteLabel,
|
|
1474
1474
|
onClick: withModifiers(($event) => handleDeleteRow(row, rowIndex), ["stop"])
|
|
1475
|
-
}, [..._cache[7] || (_cache[7] = [createStaticVNode("<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 6h18\"></path><path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"></path><path d=\"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6\"></path><path d=\"M10 11v6\"></path><path d=\"M14 11v6\"></path></svg>", 1)])], 8, _hoisted_14$
|
|
1476
|
-
], 42, _hoisted_10$
|
|
1475
|
+
}, [..._cache[7] || (_cache[7] = [createStaticVNode("<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 6h18\"></path><path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"></path><path d=\"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6\"></path><path d=\"M10 11v6\"></path><path d=\"M14 11v6\"></path></svg>", 1)])], 8, _hoisted_14$29)], 2)) : createCommentVNode("", true)
|
|
1476
|
+
], 42, _hoisted_10$37);
|
|
1477
1477
|
}), 128))])]),
|
|
1478
|
-
__props.error ? (openBlock(), createElementBlock("div", _hoisted_15$
|
|
1478
|
+
__props.error ? (openBlock(), createElementBlock("div", _hoisted_15$29, [renderSlot(_ctx.$slots, "error", { error: __props.error }, () => [createVNode(DataStateInternal_default, {
|
|
1479
1479
|
state: "error",
|
|
1480
1480
|
title: __props.error
|
|
1481
1481
|
}, null, 8, ["title"])])])) : paginatedData.value.length === 0 && !__props.loading ? (openBlock(), createElementBlock("div", _hoisted_16$25, [renderSlot(_ctx.$slots, "empty", {}, () => [createVNode(DataStateInternal_default, {
|
|
@@ -1485,7 +1485,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1485
1485
|
}, null, 8, ["title"])])])) : createCommentVNode("", true),
|
|
1486
1486
|
__props.loading ? (openBlock(), createElementBlock("div", _hoisted_17$23, [renderSlot(_ctx.$slots, "loading", {}, () => [createVNode(LoadingSpinner_default, { size: "lg" })])])) : createCommentVNode("", true)
|
|
1487
1487
|
], 4),
|
|
1488
|
-
__props.pagination ? (openBlock(), createElementBlock("div", _hoisted_18$
|
|
1488
|
+
__props.pagination ? (openBlock(), createElementBlock("div", _hoisted_18$21, [renderSlot(_ctx.$slots, "footer", {}, () => [createElementVNode("span", _hoisted_19$18, toDisplayString((__props.pagination.page - 1) * __props.pagination.pageSize + 1) + "–" + toDisplayString(Math.min(__props.pagination.page * __props.pagination.pageSize, unref(sortedData).length)) + " of " + toDisplayString(unref(sortedData).length), 1), createElementVNode("div", _hoisted_20$17, [
|
|
1489
1489
|
createElementVNode("button", {
|
|
1490
1490
|
type: "button",
|
|
1491
1491
|
class: "mint-dataframe__page-btn",
|
|
@@ -1498,8 +1498,8 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1498
1498
|
"stroke-width": "2",
|
|
1499
1499
|
"stroke-linecap": "round",
|
|
1500
1500
|
"stroke-linejoin": "round"
|
|
1501
|
-
}, [createElementVNode("path", { d: "m15 18-6-6 6-6" })], -1)])], 8, _hoisted_21$
|
|
1502
|
-
createElementVNode("span", _hoisted_22$
|
|
1501
|
+
}, [createElementVNode("path", { d: "m15 18-6-6 6-6" })], -1)])], 8, _hoisted_21$16),
|
|
1502
|
+
createElementVNode("span", _hoisted_22$15, toDisplayString(__props.pagination.page) + " / " + toDisplayString(totalPages.value), 1),
|
|
1503
1503
|
createElementVNode("button", {
|
|
1504
1504
|
type: "button",
|
|
1505
1505
|
class: "mint-dataframe__page-btn",
|
|
@@ -1512,7 +1512,7 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1512
1512
|
"stroke-width": "2",
|
|
1513
1513
|
"stroke-linecap": "round",
|
|
1514
1514
|
"stroke-linejoin": "round"
|
|
1515
|
-
}, [createElementVNode("path", { d: "m9 18 6-6-6-6" })], -1)])], 8, _hoisted_23$
|
|
1515
|
+
}, [createElementVNode("path", { d: "m9 18 6-6-6-6" })], -1)])], 8, _hoisted_23$14)
|
|
1516
1516
|
])])])) : createCommentVNode("", true)
|
|
1517
1517
|
], 2);
|
|
1518
1518
|
};
|
|
@@ -1521,56 +1521,110 @@ var DataFrame_default = /* @__PURE__ */ defineComponent({
|
|
|
1521
1521
|
//#endregion
|
|
1522
1522
|
//#region src/components/AppToastContainer.vue?vue&type=script&setup=true&lang.ts
|
|
1523
1523
|
var _hoisted_1$78 = { class: "mint-toast__container" };
|
|
1524
|
-
var _hoisted_2$69 = ["onClick"];
|
|
1525
|
-
var _hoisted_3$63 = {
|
|
1524
|
+
var _hoisted_2$69 = ["role", "onClick"];
|
|
1525
|
+
var _hoisted_3$63 = {
|
|
1526
|
+
key: 0,
|
|
1527
|
+
class: "mint-toast__icon",
|
|
1528
|
+
viewBox: "0 0 24 24",
|
|
1529
|
+
fill: "none",
|
|
1530
|
+
stroke: "currentColor",
|
|
1531
|
+
"stroke-width": "2",
|
|
1532
|
+
"stroke-linecap": "round",
|
|
1533
|
+
"stroke-linejoin": "round",
|
|
1534
|
+
"aria-hidden": "true"
|
|
1535
|
+
};
|
|
1536
|
+
var _hoisted_4$60 = {
|
|
1537
|
+
key: 1,
|
|
1538
|
+
class: "mint-toast__icon",
|
|
1539
|
+
viewBox: "0 0 24 24",
|
|
1540
|
+
fill: "none",
|
|
1541
|
+
stroke: "currentColor",
|
|
1542
|
+
"stroke-width": "2",
|
|
1543
|
+
"stroke-linecap": "round",
|
|
1544
|
+
"stroke-linejoin": "round",
|
|
1545
|
+
"aria-hidden": "true"
|
|
1546
|
+
};
|
|
1547
|
+
var _hoisted_5$57 = {
|
|
1548
|
+
key: 2,
|
|
1549
|
+
class: "mint-toast__icon",
|
|
1550
|
+
viewBox: "0 0 24 24",
|
|
1551
|
+
fill: "none",
|
|
1552
|
+
stroke: "currentColor",
|
|
1553
|
+
"stroke-width": "2",
|
|
1554
|
+
"stroke-linecap": "round",
|
|
1555
|
+
"stroke-linejoin": "round",
|
|
1556
|
+
"aria-hidden": "true"
|
|
1557
|
+
};
|
|
1558
|
+
var _hoisted_6$53 = {
|
|
1559
|
+
key: 3,
|
|
1560
|
+
class: "mint-toast__icon",
|
|
1561
|
+
viewBox: "0 0 24 24",
|
|
1562
|
+
fill: "none",
|
|
1563
|
+
stroke: "currentColor",
|
|
1564
|
+
"stroke-width": "2",
|
|
1565
|
+
"stroke-linecap": "round",
|
|
1566
|
+
"stroke-linejoin": "round",
|
|
1567
|
+
"aria-hidden": "true"
|
|
1568
|
+
};
|
|
1569
|
+
var _hoisted_7$47 = { class: "mint-toast__body" };
|
|
1570
|
+
var _hoisted_8$42 = { class: "mint-toast__title" };
|
|
1571
|
+
var _hoisted_9$40 = { class: "mint-toast__message" };
|
|
1572
|
+
var _hoisted_10$36 = {
|
|
1573
|
+
key: 0,
|
|
1574
|
+
class: "mint-toast__count"
|
|
1575
|
+
};
|
|
1576
|
+
var _hoisted_11$34 = {
|
|
1577
|
+
key: 0,
|
|
1578
|
+
class: "mint-toast__detail"
|
|
1579
|
+
};
|
|
1580
|
+
var _hoisted_12$30 = {
|
|
1581
|
+
key: 1,
|
|
1582
|
+
class: "mint-toast__actions"
|
|
1583
|
+
};
|
|
1584
|
+
var _hoisted_13$30 = ["onClick"];
|
|
1585
|
+
var _hoisted_14$28 = ["onClick"];
|
|
1586
|
+
var _hoisted_15$28 = {
|
|
1587
|
+
key: 6,
|
|
1588
|
+
class: "mint-toast__progress mint-toast__progress--indeterminate"
|
|
1589
|
+
};
|
|
1526
1590
|
//#endregion
|
|
1527
1591
|
//#region src/components/AppToastContainer.vue
|
|
1528
1592
|
var AppToastContainer_default = /* @__PURE__ */ defineComponent({
|
|
1529
1593
|
__name: "AppToastContainer",
|
|
1530
1594
|
setup(__props) {
|
|
1531
|
-
/** Preferred toast container driven by useToast,
|
|
1595
|
+
/** Preferred toast container driven by useToast: title/detail, up to two actions, TTL or indeterminate bar, click-to-close. */
|
|
1532
1596
|
const { toasts, dismiss } = useToast();
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
}
|
|
1597
|
+
function title(toast) {
|
|
1598
|
+
return toast.title ?? toast.message;
|
|
1599
|
+
}
|
|
1600
|
+
function actions(toast) {
|
|
1601
|
+
return (toast.actions ?? []).slice(0, 2);
|
|
1602
|
+
}
|
|
1603
|
+
function progress(toast) {
|
|
1604
|
+
return toast.progress ?? "ttl";
|
|
1605
|
+
}
|
|
1606
|
+
function runAction(toast, action) {
|
|
1607
|
+
action.onClick();
|
|
1608
|
+
dismiss(toast.id);
|
|
1609
|
+
}
|
|
1539
1610
|
return (_ctx, _cache) => {
|
|
1540
1611
|
return openBlock(), createBlock(Teleport, { to: "body" }, [createElementVNode("div", _hoisted_1$78, [createVNode(TransitionGroup, { name: "toast" }, {
|
|
1541
1612
|
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(toasts), (toast) => {
|
|
1542
1613
|
return openBlock(), createElementBlock("div", {
|
|
1543
1614
|
key: toast.id,
|
|
1544
|
-
class: normalizeClass([
|
|
1545
|
-
|
|
1546
|
-
|
|
1615
|
+
class: normalizeClass([
|
|
1616
|
+
"mint-toast__item",
|
|
1617
|
+
`mint-toast__item--${toast.type}`,
|
|
1618
|
+
(toast.count ?? 1) > 1 ? "mint-toast__item--stacked" : ""
|
|
1619
|
+
]),
|
|
1620
|
+
role: toast.type === "error" || toast.type === "warning" ? "alert" : "status",
|
|
1547
1621
|
onClick: ($event) => unref(dismiss)(toast.id)
|
|
1548
1622
|
}, [
|
|
1549
|
-
toast.type === "success" ? (openBlock(), createElementBlock("svg", {
|
|
1550
|
-
key: 0,
|
|
1551
|
-
class: "mint-toast__icon",
|
|
1552
|
-
viewBox: "0 0 24 24",
|
|
1553
|
-
fill: "none",
|
|
1554
|
-
stroke: "currentColor",
|
|
1555
|
-
"stroke-width": "2",
|
|
1556
|
-
"stroke-linecap": "round",
|
|
1557
|
-
"stroke-linejoin": "round",
|
|
1558
|
-
style: normalizeStyle({ color: accentColors[toast.type] })
|
|
1559
|
-
}, [..._cache[0] || (_cache[0] = [createElementVNode("circle", {
|
|
1623
|
+
toast.type === "success" ? (openBlock(), createElementBlock("svg", _hoisted_3$63, [..._cache[0] || (_cache[0] = [createElementVNode("circle", {
|
|
1560
1624
|
cx: "12",
|
|
1561
1625
|
cy: "12",
|
|
1562
1626
|
r: "10"
|
|
1563
|
-
}, null, -1), createElementVNode("path", { d: "m9 12 2 2 4-4" }, null, -1)])]
|
|
1564
|
-
key: 1,
|
|
1565
|
-
class: "mint-toast__icon",
|
|
1566
|
-
viewBox: "0 0 24 24",
|
|
1567
|
-
fill: "none",
|
|
1568
|
-
stroke: "currentColor",
|
|
1569
|
-
"stroke-width": "2",
|
|
1570
|
-
"stroke-linecap": "round",
|
|
1571
|
-
"stroke-linejoin": "round",
|
|
1572
|
-
style: normalizeStyle({ color: accentColors[toast.type] })
|
|
1573
|
-
}, [..._cache[1] || (_cache[1] = [
|
|
1627
|
+
}, null, -1), createElementVNode("path", { d: "m9 12 2 2 4-4" }, null, -1)])])) : toast.type === "error" ? (openBlock(), createElementBlock("svg", _hoisted_4$60, [..._cache[1] || (_cache[1] = [
|
|
1574
1628
|
createElementVNode("circle", {
|
|
1575
1629
|
cx: "12",
|
|
1576
1630
|
cy: "12",
|
|
@@ -1578,31 +1632,11 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
|
|
|
1578
1632
|
}, null, -1),
|
|
1579
1633
|
createElementVNode("path", { d: "m15 9-6 6" }, null, -1),
|
|
1580
1634
|
createElementVNode("path", { d: "m9 9 6 6" }, null, -1)
|
|
1581
|
-
])]
|
|
1582
|
-
key: 2,
|
|
1583
|
-
class: "mint-toast__icon",
|
|
1584
|
-
viewBox: "0 0 24 24",
|
|
1585
|
-
fill: "none",
|
|
1586
|
-
stroke: "currentColor",
|
|
1587
|
-
"stroke-width": "2",
|
|
1588
|
-
"stroke-linecap": "round",
|
|
1589
|
-
"stroke-linejoin": "round",
|
|
1590
|
-
style: normalizeStyle({ color: accentColors[toast.type] })
|
|
1591
|
-
}, [..._cache[2] || (_cache[2] = [
|
|
1635
|
+
])])) : toast.type === "warning" ? (openBlock(), createElementBlock("svg", _hoisted_5$57, [..._cache[2] || (_cache[2] = [
|
|
1592
1636
|
createElementVNode("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }, null, -1),
|
|
1593
1637
|
createElementVNode("path", { d: "M12 9v4" }, null, -1),
|
|
1594
1638
|
createElementVNode("path", { d: "M12 17h.01" }, null, -1)
|
|
1595
|
-
])]
|
|
1596
|
-
key: 3,
|
|
1597
|
-
class: "mint-toast__icon",
|
|
1598
|
-
viewBox: "0 0 24 24",
|
|
1599
|
-
fill: "none",
|
|
1600
|
-
stroke: "currentColor",
|
|
1601
|
-
"stroke-width": "2",
|
|
1602
|
-
"stroke-linecap": "round",
|
|
1603
|
-
"stroke-linejoin": "round",
|
|
1604
|
-
style: normalizeStyle({ color: accentColors[toast.type] })
|
|
1605
|
-
}, [..._cache[3] || (_cache[3] = [
|
|
1639
|
+
])])) : (openBlock(), createElementBlock("svg", _hoisted_6$53, [..._cache[3] || (_cache[3] = [
|
|
1606
1640
|
createElementVNode("circle", {
|
|
1607
1641
|
cx: "12",
|
|
1608
1642
|
cy: "12",
|
|
@@ -1610,16 +1644,39 @@ var AppToastContainer_default = /* @__PURE__ */ defineComponent({
|
|
|
1610
1644
|
}, null, -1),
|
|
1611
1645
|
createElementVNode("path", { d: "M12 16v-4" }, null, -1),
|
|
1612
1646
|
createElementVNode("path", { d: "M12 8h.01" }, null, -1)
|
|
1613
|
-
])]
|
|
1614
|
-
createElementVNode("
|
|
1615
|
-
|
|
1647
|
+
])])),
|
|
1648
|
+
createElementVNode("div", _hoisted_7$47, [
|
|
1649
|
+
createElementVNode("div", _hoisted_8$42, [createElementVNode("span", _hoisted_9$40, toDisplayString(title(toast)), 1), (toast.count ?? 1) > 1 ? (openBlock(), createElementBlock("span", _hoisted_10$36, "×" + toDisplayString(toast.count), 1)) : createCommentVNode("", true)]),
|
|
1650
|
+
toast.detail ? (openBlock(), createElementBlock("div", _hoisted_11$34, toDisplayString(toast.detail), 1)) : createCommentVNode("", true),
|
|
1651
|
+
actions(toast).length ? (openBlock(), createElementBlock("div", _hoisted_12$30, [(openBlock(true), createElementBlock(Fragment, null, renderList(actions(toast), (action) => {
|
|
1652
|
+
return openBlock(), createElementBlock("button", {
|
|
1653
|
+
key: action.label,
|
|
1654
|
+
type: "button",
|
|
1655
|
+
class: normalizeClass(["mint-toast__action", action.primary ? "mint-toast__action--primary" : ""]),
|
|
1656
|
+
onClick: withModifiers(($event) => runAction(toast, action), ["stop"])
|
|
1657
|
+
}, toDisplayString(action.label), 11, _hoisted_13$30);
|
|
1658
|
+
}), 128))])) : createCommentVNode("", true)
|
|
1659
|
+
]),
|
|
1660
|
+
toast.dismissible !== false ? (openBlock(), createElementBlock("button", {
|
|
1661
|
+
key: 4,
|
|
1662
|
+
type: "button",
|
|
1663
|
+
class: "mint-toast__close",
|
|
1664
|
+
"aria-label": "Dismiss",
|
|
1665
|
+
onClick: withModifiers(($event) => unref(dismiss)(toast.id), ["stop"])
|
|
1666
|
+
}, [..._cache[4] || (_cache[4] = [createElementVNode("svg", {
|
|
1667
|
+
viewBox: "0 0 24 24",
|
|
1668
|
+
fill: "none",
|
|
1669
|
+
stroke: "currentColor",
|
|
1670
|
+
"stroke-width": "2.2",
|
|
1671
|
+
"stroke-linecap": "round",
|
|
1672
|
+
"aria-hidden": "true"
|
|
1673
|
+
}, [createElementVNode("path", { d: "M18 6 6 18" }), createElementVNode("path", { d: "m6 6 12 12" })], -1)])], 8, _hoisted_14$28)) : createCommentVNode("", true),
|
|
1674
|
+
progress(toast) === "ttl" ? (openBlock(), createElementBlock("span", {
|
|
1675
|
+
key: 5,
|
|
1616
1676
|
class: "mint-toast__progress",
|
|
1617
|
-
style: normalizeStyle({
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
})
|
|
1621
|
-
}, null, 4)
|
|
1622
|
-
], 14, _hoisted_2$69);
|
|
1677
|
+
style: normalizeStyle({ animationDuration: `${toast.duration ?? 3500}ms` })
|
|
1678
|
+
}, null, 4)) : progress(toast) === "indeterminate" ? (openBlock(), createElementBlock("span", _hoisted_15$28)) : createCommentVNode("", true)
|
|
1679
|
+
], 10, _hoisted_2$69);
|
|
1623
1680
|
}), 128))]),
|
|
1624
1681
|
_: 1
|
|
1625
1682
|
})])]);
|
|
@@ -1980,7 +2037,7 @@ var _hoisted_16$24 = [
|
|
|
1980
2037
|
"aria-expanded"
|
|
1981
2038
|
];
|
|
1982
2039
|
var _hoisted_17$22 = { class: "mint-collapsible-card__body" };
|
|
1983
|
-
var _hoisted_18$
|
|
2040
|
+
var _hoisted_18$20 = { class: "mint-collapsible-card__content" };
|
|
1984
2041
|
//#endregion
|
|
1985
2042
|
//#region src/components/CollapsibleCard.vue
|
|
1986
2043
|
var CollapsibleCard_default = /* @__PURE__ */ defineComponent({
|
|
@@ -2147,7 +2204,7 @@ var CollapsibleCard_default = /* @__PURE__ */ defineComponent({
|
|
|
2147
2204
|
"aria-hidden": "true"
|
|
2148
2205
|
}, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)])], 2))], 8, _hoisted_16$24)
|
|
2149
2206
|
])]), createVNode(Transition, { name: "collapse" }, {
|
|
2150
|
-
default: withCtx(() => [withDirectives(createElementVNode("div", _hoisted_17$22, [createElementVNode("div", _hoisted_18$
|
|
2207
|
+
default: withCtx(() => [withDirectives(createElementVNode("div", _hoisted_17$22, [createElementVNode("div", _hoisted_18$20, [renderSlot(_ctx.$slots, "default")])], 512), [[vShow, isOpen.value]])]),
|
|
2151
2208
|
_: 3
|
|
2152
2209
|
})], 2);
|
|
2153
2210
|
};
|
|
@@ -3239,7 +3296,7 @@ var _hoisted_17$21 = {
|
|
|
3239
3296
|
key: 2,
|
|
3240
3297
|
class: "mint-topbar__standalone-badge"
|
|
3241
3298
|
};
|
|
3242
|
-
var _hoisted_18$
|
|
3299
|
+
var _hoisted_18$19 = {
|
|
3243
3300
|
key: 0,
|
|
3244
3301
|
class: "mint-topbar__icon-btn-dot",
|
|
3245
3302
|
"aria-hidden": "true"
|
|
@@ -3309,9 +3366,9 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
|
|
|
3309
3366
|
setup(__props, { emit: __emit }) {
|
|
3310
3367
|
/** Full application top bar with brand logo, page selector or plugin switcher, centered pill nav, experiment popover, and avatar menu. */
|
|
3311
3368
|
const props = __props;
|
|
3312
|
-
const SettingsModal = defineAsyncComponent(() => import("./SettingsModal-
|
|
3369
|
+
const SettingsModal = defineAsyncComponent(() => import("./SettingsModal-DOcCf0Vo.js").then((n) => n.n));
|
|
3313
3370
|
const ExperimentPopover = defineAsyncComponent(() => import("./ExperimentPopover-CJdNlCZb.js").then((n) => n.n));
|
|
3314
|
-
const ExperimentSelectorModal = defineAsyncComponent(() => import("./ExperimentSelectorModal-
|
|
3371
|
+
const ExperimentSelectorModal = defineAsyncComponent(() => import("./ExperimentSelectorModal-DHE9k8TP.js").then((n) => n.n));
|
|
3315
3372
|
const emit = __emit;
|
|
3316
3373
|
const settingsOpen = ref(false);
|
|
3317
3374
|
const { isIntegrated, plugin } = usePlatformContext();
|
|
@@ -3461,7 +3518,7 @@ var AppTopBar_default = /* @__PURE__ */ defineComponent({
|
|
|
3461
3518
|
"stroke-width": "2",
|
|
3462
3519
|
"stroke-linecap": "round",
|
|
3463
3520
|
"stroke-linejoin": "round"
|
|
3464
|
-
}, [createElementVNode("path", { d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" }), createElementVNode("path", { d: "M10.3 21a1.94 1.94 0 0 0 3.4 0" })], -1)), __props.hasNotificationDot ? (openBlock(), createElementBlock("span", _hoisted_18$
|
|
3521
|
+
}, [createElementVNode("path", { d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" }), createElementVNode("path", { d: "M10.3 21a1.94 1.94 0 0 0 3.4 0" })], -1)), __props.hasNotificationDot ? (openBlock(), createElementBlock("span", _hoisted_18$19)) : createCommentVNode("", true)])) : createCommentVNode("", true),
|
|
3465
3522
|
__props.showThemeToggle ? (openBlock(), createBlock(ThemeToggle_default, {
|
|
3466
3523
|
key: 4,
|
|
3467
3524
|
size: "sm"
|
|
@@ -4212,16 +4269,73 @@ var _hoisted_6$44 = {
|
|
|
4212
4269
|
};
|
|
4213
4270
|
var _hoisted_7$38 = ["aria-label", "aria-expanded"];
|
|
4214
4271
|
var _hoisted_8$34 = ["id"];
|
|
4215
|
-
var _hoisted_9$32 = {
|
|
4272
|
+
var _hoisted_9$32 = { class: "mint-sidebar__group-head" };
|
|
4273
|
+
var _hoisted_10$30 = ["aria-expanded", "onClick"];
|
|
4274
|
+
var _hoisted_11$28 = {
|
|
4275
|
+
key: 0,
|
|
4276
|
+
class: "mint-sidebar__group-svg",
|
|
4277
|
+
viewBox: "0 0 24 24",
|
|
4278
|
+
fill: "none",
|
|
4279
|
+
stroke: "currentColor",
|
|
4280
|
+
"stroke-width": "2",
|
|
4281
|
+
"stroke-linecap": "round",
|
|
4282
|
+
"stroke-linejoin": "round",
|
|
4283
|
+
"aria-hidden": "true"
|
|
4284
|
+
};
|
|
4285
|
+
var _hoisted_12$27 = ["d"];
|
|
4286
|
+
var _hoisted_13$27 = ["d"];
|
|
4287
|
+
var _hoisted_14$25 = {
|
|
4288
|
+
key: 1,
|
|
4289
|
+
class: "mint-sidebar__group-text-icon"
|
|
4290
|
+
};
|
|
4291
|
+
var _hoisted_15$25 = { class: "mint-sidebar__group-copy" };
|
|
4292
|
+
var _hoisted_16$22 = { class: "mint-sidebar__group-label" };
|
|
4293
|
+
var _hoisted_17$20 = {
|
|
4294
|
+
key: 0,
|
|
4295
|
+
class: "mint-sidebar__group-subtitle"
|
|
4296
|
+
};
|
|
4297
|
+
var _hoisted_18$18 = { class: "mint-sidebar__group-tail" };
|
|
4298
|
+
var _hoisted_19$17 = [
|
|
4299
|
+
"disabled",
|
|
4300
|
+
"aria-label",
|
|
4301
|
+
"title",
|
|
4302
|
+
"onClick"
|
|
4303
|
+
];
|
|
4304
|
+
var _hoisted_20$16 = {
|
|
4305
|
+
key: 0,
|
|
4306
|
+
class: "mint-sidebar__group-action-icon",
|
|
4307
|
+
viewBox: "0 0 24 24",
|
|
4308
|
+
fill: "none",
|
|
4309
|
+
stroke: "currentColor",
|
|
4310
|
+
"stroke-width": "2",
|
|
4311
|
+
"stroke-linecap": "round",
|
|
4312
|
+
"stroke-linejoin": "round",
|
|
4313
|
+
"aria-hidden": "true"
|
|
4314
|
+
};
|
|
4315
|
+
var _hoisted_21$15 = ["d"];
|
|
4316
|
+
var _hoisted_22$14 = ["d"];
|
|
4317
|
+
var _hoisted_23$13 = { key: 1 };
|
|
4318
|
+
var _hoisted_24$13 = [
|
|
4319
|
+
"aria-checked",
|
|
4320
|
+
"aria-label",
|
|
4321
|
+
"onClick"
|
|
4322
|
+
];
|
|
4323
|
+
var _hoisted_25$11 = [
|
|
4324
|
+
"aria-label",
|
|
4325
|
+
"aria-expanded",
|
|
4326
|
+
"onClick"
|
|
4327
|
+
];
|
|
4328
|
+
var _hoisted_26$10 = { class: "mint-sidebar__group-body" };
|
|
4329
|
+
var _hoisted_27$10 = {
|
|
4216
4330
|
key: 2,
|
|
4217
4331
|
class: "mint-sidebar__collapsed"
|
|
4218
4332
|
};
|
|
4219
|
-
var
|
|
4333
|
+
var _hoisted_28$9 = {
|
|
4220
4334
|
key: 3,
|
|
4221
4335
|
class: "mint-sidebar__collapsed mint-sidebar__collapsed--default"
|
|
4222
4336
|
};
|
|
4223
|
-
var
|
|
4224
|
-
var
|
|
4337
|
+
var _hoisted_29$7 = ["aria-label", "title"];
|
|
4338
|
+
var _hoisted_30$6 = {
|
|
4225
4339
|
key: 0,
|
|
4226
4340
|
class: "mint-sidebar__rail-svg",
|
|
4227
4341
|
viewBox: "0 0 24 24",
|
|
@@ -4232,17 +4346,17 @@ var _hoisted_12$27 = {
|
|
|
4232
4346
|
"stroke-linejoin": "round",
|
|
4233
4347
|
"aria-hidden": "true"
|
|
4234
4348
|
};
|
|
4235
|
-
var
|
|
4236
|
-
var
|
|
4237
|
-
var
|
|
4349
|
+
var _hoisted_31$6 = ["d"];
|
|
4350
|
+
var _hoisted_32$6 = ["d"];
|
|
4351
|
+
var _hoisted_33$6 = {
|
|
4238
4352
|
key: 1,
|
|
4239
4353
|
class: "mint-sidebar__rail-text-icon"
|
|
4240
4354
|
};
|
|
4241
|
-
var
|
|
4355
|
+
var _hoisted_34$6 = {
|
|
4242
4356
|
key: 4,
|
|
4243
4357
|
class: "mint-sidebar__footer"
|
|
4244
4358
|
};
|
|
4245
|
-
var
|
|
4359
|
+
var _hoisted_35$5 = {
|
|
4246
4360
|
key: 5,
|
|
4247
4361
|
class: "mint-sidebar__footer mint-sidebar__footer--collapsed"
|
|
4248
4362
|
};
|
|
@@ -4254,18 +4368,18 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4254
4368
|
title: { default: void 0 },
|
|
4255
4369
|
subtitle: { default: void 0 },
|
|
4256
4370
|
badge: { default: void 0 },
|
|
4257
|
-
variant: { default: "default" },
|
|
4258
4371
|
panels: { default: () => ({}) },
|
|
4259
4372
|
activeView: { default: "" },
|
|
4260
4373
|
floating: {
|
|
4261
4374
|
type: Boolean,
|
|
4262
|
-
default:
|
|
4375
|
+
default: true
|
|
4263
4376
|
},
|
|
4377
|
+
density: { default: void 0 },
|
|
4264
4378
|
dense: {
|
|
4265
4379
|
type: Boolean,
|
|
4266
|
-
default:
|
|
4380
|
+
default: void 0
|
|
4267
4381
|
},
|
|
4268
|
-
width: { default:
|
|
4382
|
+
width: { default: "280px" },
|
|
4269
4383
|
side: { default: "left" },
|
|
4270
4384
|
toggleState: { default: () => ({}) },
|
|
4271
4385
|
forms: { default: () => ({}) },
|
|
@@ -4302,7 +4416,7 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4302
4416
|
formSize: { default: "sm" },
|
|
4303
4417
|
collapsible: {
|
|
4304
4418
|
type: Boolean,
|
|
4305
|
-
default:
|
|
4419
|
+
default: false
|
|
4306
4420
|
},
|
|
4307
4421
|
collapsed: {
|
|
4308
4422
|
type: Boolean,
|
|
@@ -4330,8 +4444,9 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4330
4444
|
* AppSidebar - Context-sensitive toolkit panel
|
|
4331
4445
|
*
|
|
4332
4446
|
* Shows tool sections relevant to the active view. Sections are defined via
|
|
4333
|
-
* the `panels` config and rendered as
|
|
4334
|
-
* provided through named slots or
|
|
4447
|
+
* the `panels` config and rendered as flat groups (header row + hairline,
|
|
4448
|
+
* no nested card). Controls can be provided through named slots or
|
|
4449
|
+
* auto-rendered from FormBuilder schemas.
|
|
4335
4450
|
*
|
|
4336
4451
|
* When activeView is omitted, the first non-empty panel view is selected.
|
|
4337
4452
|
* When no view has matching panels, the sidebar hides entirely.
|
|
@@ -4352,10 +4467,14 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4352
4467
|
emit("update:collapsed", value);
|
|
4353
4468
|
}
|
|
4354
4469
|
});
|
|
4355
|
-
const
|
|
4356
|
-
const
|
|
4357
|
-
|
|
4358
|
-
|
|
4470
|
+
const resolvedDensity = computed(() => props.density ?? (props.dense === false ? "comfortable" : "compact"));
|
|
4471
|
+
const openState = ref({});
|
|
4472
|
+
function isSectionOpen(section) {
|
|
4473
|
+
return openState.value[section.id] ?? section.defaultOpen !== false;
|
|
4474
|
+
}
|
|
4475
|
+
function toggleSection(section) {
|
|
4476
|
+
openState.value[section.id] = !isSectionOpen(section);
|
|
4477
|
+
}
|
|
4359
4478
|
const resolvedModel = computed(() => {
|
|
4360
4479
|
return resolveControlModel(props.model);
|
|
4361
4480
|
});
|
|
@@ -4398,14 +4517,13 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4398
4517
|
const sidebarClasses = computed(() => [
|
|
4399
4518
|
"mint-sidebar",
|
|
4400
4519
|
`mint-sidebar--${props.side}`,
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
props.
|
|
4404
|
-
resolvedCollapsible.value ? "mint-sidebar--collapsible" : "",
|
|
4520
|
+
props.floating ? "mint-sidebar--floating" : "mint-sidebar--static",
|
|
4521
|
+
resolvedDensity.value === "comfortable" ? "mint-sidebar--comfortable" : "",
|
|
4522
|
+
props.collapsible ? "mint-sidebar--collapsible" : "",
|
|
4405
4523
|
collapsedModel.value ? "mint-sidebar--collapsed" : "",
|
|
4406
4524
|
!isVisible.value ? "mint-sidebar--hidden" : ""
|
|
4407
4525
|
]);
|
|
4408
|
-
const sidebarStyle = computed(() => ({ width: collapsedModel.value ? props.collapsedWidth :
|
|
4526
|
+
const sidebarStyle = computed(() => ({ width: collapsedModel.value ? props.collapsedWidth : props.width }));
|
|
4409
4527
|
function handleFormUpdate(values) {
|
|
4410
4528
|
const nextValues = {
|
|
4411
4529
|
...resolvedValues.value,
|
|
@@ -4445,6 +4563,12 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4445
4563
|
function badgeToneClass(section) {
|
|
4446
4564
|
return `mint-sidebar__rail-badge--${section.badgeTone ?? "cta"}`;
|
|
4447
4565
|
}
|
|
4566
|
+
function tagToneClass(section) {
|
|
4567
|
+
return `mint-sidebar__tag--${section.badgeTone ?? "cta"}`;
|
|
4568
|
+
}
|
|
4569
|
+
function actionClasses(action) {
|
|
4570
|
+
return ["mint-sidebar__group-action", action.tone ? `mint-sidebar__group-action--${action.tone}` : ""];
|
|
4571
|
+
}
|
|
4448
4572
|
function mergeSidebarPanels(generated, explicit) {
|
|
4449
4573
|
const merged = {};
|
|
4450
4574
|
const viewIds = new Set([...Object.keys(generated), ...Object.keys(explicit)]);
|
|
@@ -4465,10 +4589,10 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4465
4589
|
class: normalizeClass(sidebarClasses.value),
|
|
4466
4590
|
style: normalizeStyle(sidebarStyle.value)
|
|
4467
4591
|
}, [
|
|
4468
|
-
_ctx.$slots.header || __props.title || __props.subtitle || __props.badge !== void 0 ||
|
|
4592
|
+
_ctx.$slots.header || __props.title || __props.subtitle || __props.badge !== void 0 || __props.collapsible ? (openBlock(), createElementBlock("div", _hoisted_1$61, [renderSlot(_ctx.$slots, "header", {
|
|
4469
4593
|
collapsed: collapsedModel.value,
|
|
4470
4594
|
toggleCollapsed
|
|
4471
|
-
}, () => [!collapsedModel.value ? (openBlock(), createElementBlock("div", _hoisted_2$56, [createElementVNode("div", _hoisted_3$52, [__props.title ? (openBlock(), createElementBlock("h2", _hoisted_4$50, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_5$47, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)]), __props.badge !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_6$44, toDisplayString(__props.badge), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true),
|
|
4595
|
+
}, () => [!collapsedModel.value ? (openBlock(), createElementBlock("div", _hoisted_2$56, [createElementVNode("div", _hoisted_3$52, [__props.title ? (openBlock(), createElementBlock("h2", _hoisted_4$50, toDisplayString(__props.title), 1)) : createCommentVNode("", true), __props.subtitle ? (openBlock(), createElementBlock("p", _hoisted_5$47, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)]), __props.badge !== void 0 ? (openBlock(), createElementBlock("span", _hoisted_6$44, toDisplayString(__props.badge), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true), __props.collapsible ? (openBlock(), createElementBlock("button", {
|
|
4472
4596
|
key: 1,
|
|
4473
4597
|
type: "button",
|
|
4474
4598
|
class: "mint-sidebar__collapse-button",
|
|
@@ -4490,24 +4614,78 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4490
4614
|
id: __props.contentId,
|
|
4491
4615
|
class: "mint-sidebar__sections"
|
|
4492
4616
|
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(activeSections.value, (section) => {
|
|
4493
|
-
return openBlock(),
|
|
4617
|
+
return openBlock(), createElementBlock("div", {
|
|
4494
4618
|
key: section.id,
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
"
|
|
4499
|
-
"
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
"
|
|
4507
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
|
|
4619
|
+
class: normalizeClass(["mint-sidebar__group", isSectionOpen(section) ? "mint-sidebar__group--open" : "mint-sidebar__group--closed"])
|
|
4620
|
+
}, [createElementVNode("div", _hoisted_9$32, [createElementVNode("button", {
|
|
4621
|
+
type: "button",
|
|
4622
|
+
class: "mint-sidebar__group-toggle",
|
|
4623
|
+
"aria-expanded": isSectionOpen(section),
|
|
4624
|
+
onClick: ($event) => toggleSection(section)
|
|
4625
|
+
}, [section.icon ? (openBlock(), createElementBlock("span", {
|
|
4626
|
+
key: 0,
|
|
4627
|
+
class: "mint-sidebar__group-icon",
|
|
4628
|
+
style: normalizeStyle(railIconStyle(section))
|
|
4629
|
+
}, [isSvgIcon(section.icon) ? (openBlock(), createElementBlock("svg", _hoisted_11$28, [Array.isArray(section.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(section.icon, (d, i) => {
|
|
4630
|
+
return openBlock(), createElementBlock("path", {
|
|
4631
|
+
key: i,
|
|
4632
|
+
d
|
|
4633
|
+
}, null, 8, _hoisted_12$27);
|
|
4634
|
+
}), 128)) : (openBlock(), createElementBlock("path", {
|
|
4635
|
+
key: 1,
|
|
4636
|
+
d: section.icon
|
|
4637
|
+
}, null, 8, _hoisted_13$27))])) : (openBlock(), createElementBlock("span", _hoisted_14$25, toDisplayString(section.icon), 1))], 4)) : createCommentVNode("", true), createElementVNode("span", _hoisted_15$25, [createElementVNode("span", _hoisted_16$22, toDisplayString(section.label), 1), section.subtitle ? (openBlock(), createElementBlock("span", _hoisted_17$20, toDisplayString(section.subtitle), 1)) : createCommentVNode("", true)])], 8, _hoisted_10$30), createElementVNode("div", _hoisted_18$18, [
|
|
4638
|
+
section.badge !== void 0 ? (openBlock(), createElementBlock("span", {
|
|
4639
|
+
key: 0,
|
|
4640
|
+
class: normalizeClass(["mint-sidebar__tag", tagToneClass(section)])
|
|
4641
|
+
}, toDisplayString(section.badge), 3)) : createCommentVNode("", true),
|
|
4642
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(section.actions ?? [], (action) => {
|
|
4643
|
+
return openBlock(), createElementBlock("button", {
|
|
4644
|
+
key: action.id,
|
|
4645
|
+
type: "button",
|
|
4646
|
+
class: normalizeClass(actionClasses(action)),
|
|
4647
|
+
style: normalizeStyle(action.iconColor ? { color: action.iconColor } : void 0),
|
|
4648
|
+
disabled: action.disabled,
|
|
4649
|
+
"aria-label": action.label,
|
|
4650
|
+
title: action.label,
|
|
4651
|
+
onClick: ($event) => handleSectionAction(section.id, action.id)
|
|
4652
|
+
}, [action.icon && isSvgIcon(action.icon) ? (openBlock(), createElementBlock("svg", _hoisted_20$16, [Array.isArray(action.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(action.icon, (d, i) => {
|
|
4653
|
+
return openBlock(), createElementBlock("path", {
|
|
4654
|
+
key: i,
|
|
4655
|
+
d
|
|
4656
|
+
}, null, 8, _hoisted_21$15);
|
|
4657
|
+
}), 128)) : (openBlock(), createElementBlock("path", {
|
|
4658
|
+
key: 1,
|
|
4659
|
+
d: action.icon
|
|
4660
|
+
}, null, 8, _hoisted_22$14))])) : action.icon ? (openBlock(), createElementBlock("span", _hoisted_23$13, toDisplayString(action.icon), 1)) : createCommentVNode("", true)], 14, _hoisted_19$17);
|
|
4661
|
+
}), 128)),
|
|
4662
|
+
section.showToggle ? (openBlock(), createElementBlock("button", {
|
|
4663
|
+
key: 1,
|
|
4664
|
+
type: "button",
|
|
4665
|
+
role: "switch",
|
|
4666
|
+
"aria-checked": __props.toggleState[section.id] ?? false,
|
|
4667
|
+
"aria-label": `Enable ${section.label}`,
|
|
4668
|
+
class: normalizeClass(["mint-sidebar__switch", __props.toggleState[section.id] ?? false ? "mint-sidebar__switch--on" : ""]),
|
|
4669
|
+
onClick: ($event) => emit("update:toggle", section.id, !(__props.toggleState[section.id] ?? false))
|
|
4670
|
+
}, [..._cache[1] || (_cache[1] = [createElementVNode("span", { class: "mint-sidebar__switch-knob" }, null, -1)])], 10, _hoisted_24$13)) : createCommentVNode("", true),
|
|
4671
|
+
createElementVNode("button", {
|
|
4672
|
+
type: "button",
|
|
4673
|
+
class: "mint-sidebar__chevron-button",
|
|
4674
|
+
"aria-label": isSectionOpen(section) ? "Collapse section" : "Expand section",
|
|
4675
|
+
"aria-expanded": isSectionOpen(section),
|
|
4676
|
+
onClick: ($event) => toggleSection(section)
|
|
4677
|
+
}, [(openBlock(), createElementBlock("svg", {
|
|
4678
|
+
class: normalizeClass(["mint-sidebar__chevron", isSectionOpen(section) ? "mint-sidebar__chevron--open" : ""]),
|
|
4679
|
+
viewBox: "0 0 24 24",
|
|
4680
|
+
fill: "none",
|
|
4681
|
+
stroke: "currentColor",
|
|
4682
|
+
"stroke-width": "2",
|
|
4683
|
+
"stroke-linecap": "round",
|
|
4684
|
+
"stroke-linejoin": "round",
|
|
4685
|
+
"aria-hidden": "true"
|
|
4686
|
+
}, [..._cache[2] || (_cache[2] = [createElementVNode("path", { d: "m6 9 6 6 6-6" }, null, -1)])], 2))], 8, _hoisted_25$11)
|
|
4687
|
+
])]), createVNode(Transition, { name: "collapse" }, {
|
|
4688
|
+
default: withCtx(() => [withDirectives(createElementVNode("div", _hoisted_26$10, [renderSlot(_ctx.$slots, `section-${section.id}`, {}, () => [resolvedForms.value[section.id] ? (openBlock(), createBlock(FormBuilder_default, {
|
|
4511
4689
|
key: 0,
|
|
4512
4690
|
"model-value": resolvedValues.value,
|
|
4513
4691
|
schema: resolvedForms.value[section.id],
|
|
@@ -4531,32 +4709,17 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4531
4709
|
"show-actions",
|
|
4532
4710
|
"onSubmit",
|
|
4533
4711
|
"onCancel"
|
|
4534
|
-
])) : createCommentVNode("", true)])]),
|
|
4712
|
+
])) : createCommentVNode("", true)])], 512), [[vShow, isSectionOpen(section)]])]),
|
|
4535
4713
|
_: 2
|
|
4536
|
-
},
|
|
4537
|
-
"title",
|
|
4538
|
-
"subtitle",
|
|
4539
|
-
"icon",
|
|
4540
|
-
"icon-color",
|
|
4541
|
-
"icon-bg",
|
|
4542
|
-
"badge",
|
|
4543
|
-
"badge-tone",
|
|
4544
|
-
"actions",
|
|
4545
|
-
"dense",
|
|
4546
|
-
"default-open",
|
|
4547
|
-
"show-toggle",
|
|
4548
|
-
"toggle-value",
|
|
4549
|
-
"onAction",
|
|
4550
|
-
"onUpdate:toggleValue"
|
|
4551
|
-
]);
|
|
4714
|
+
}, 1024)], 2);
|
|
4552
4715
|
}), 128)), renderSlot(_ctx.$slots, "default", {
|
|
4553
4716
|
sections: activeSections.value,
|
|
4554
4717
|
activeView: resolvedActiveView.value,
|
|
4555
4718
|
values: resolvedValues.value
|
|
4556
|
-
})], 8, _hoisted_8$34)) : _ctx.$slots.collapsed ? (openBlock(), createElementBlock("div",
|
|
4719
|
+
})], 8, _hoisted_8$34)) : _ctx.$slots.collapsed ? (openBlock(), createElementBlock("div", _hoisted_27$10, [renderSlot(_ctx.$slots, "collapsed", {
|
|
4557
4720
|
sections: activeSections.value,
|
|
4558
4721
|
expand: expandCollapsed
|
|
4559
|
-
})])) : (openBlock(), createElementBlock("div",
|
|
4722
|
+
})])) : (openBlock(), createElementBlock("div", _hoisted_28$9, [(openBlock(true), createElementBlock(Fragment, null, renderList(activeSections.value, (section) => {
|
|
4560
4723
|
return openBlock(), createElementBlock("button", {
|
|
4561
4724
|
key: section.id,
|
|
4562
4725
|
type: "button",
|
|
@@ -4567,20 +4730,20 @@ var AppSidebar_default = /* @__PURE__ */ defineComponent({
|
|
|
4567
4730
|
}, [createElementVNode("span", {
|
|
4568
4731
|
class: "mint-sidebar__rail-icon",
|
|
4569
4732
|
style: normalizeStyle(railIconStyle(section))
|
|
4570
|
-
}, [section.icon && isSvgIcon(section.icon) ? (openBlock(), createElementBlock("svg",
|
|
4733
|
+
}, [section.icon && isSvgIcon(section.icon) ? (openBlock(), createElementBlock("svg", _hoisted_30$6, [Array.isArray(section.icon) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(section.icon, (d, i) => {
|
|
4571
4734
|
return openBlock(), createElementBlock("path", {
|
|
4572
4735
|
key: i,
|
|
4573
4736
|
d
|
|
4574
|
-
}, null, 8,
|
|
4737
|
+
}, null, 8, _hoisted_31$6);
|
|
4575
4738
|
}), 128)) : (openBlock(), createElementBlock("path", {
|
|
4576
4739
|
key: 1,
|
|
4577
4740
|
d: section.icon
|
|
4578
|
-
}, null, 8,
|
|
4741
|
+
}, null, 8, _hoisted_32$6))])) : (openBlock(), createElementBlock("span", _hoisted_33$6, toDisplayString(section.icon || sectionInitial(section)), 1))], 4), section.badge !== void 0 ? (openBlock(), createElementBlock("span", {
|
|
4579
4742
|
key: 0,
|
|
4580
4743
|
class: normalizeClass(["mint-sidebar__rail-badge", badgeToneClass(section)])
|
|
4581
|
-
}, toDisplayString(section.badge), 3)) : createCommentVNode("", true)], 8,
|
|
4744
|
+
}, toDisplayString(section.badge), 3)) : createCommentVNode("", true)], 8, _hoisted_29$7);
|
|
4582
4745
|
}), 128))])),
|
|
4583
|
-
!collapsedModel.value && _ctx.$slots.footer ? (openBlock(), createElementBlock("div",
|
|
4746
|
+
!collapsedModel.value && _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_34$6, [renderSlot(_ctx.$slots, "footer")])) : collapsedModel.value && _ctx.$slots["collapsed-footer"] ? (openBlock(), createElementBlock("div", _hoisted_35$5, [renderSlot(_ctx.$slots, "collapsed-footer")])) : createCommentVNode("", true)
|
|
4584
4747
|
], 6);
|
|
4585
4748
|
};
|
|
4586
4749
|
}
|
|
@@ -4945,11 +5108,10 @@ var WorkspaceSidebarInternal_default = /* @__PURE__ */ defineComponent({
|
|
|
4945
5108
|
title: __props.sidebar.title,
|
|
4946
5109
|
subtitle: __props.sidebar.subtitle,
|
|
4947
5110
|
badge: __props.sidebar.badge,
|
|
4948
|
-
variant: __props.sidebar.variant,
|
|
4949
5111
|
panels: __props.sidebar.panels,
|
|
4950
5112
|
"active-view": __props.sidebar.activeView,
|
|
4951
5113
|
floating: __props.sidebar.floating,
|
|
4952
|
-
|
|
5114
|
+
density: __props.sidebar.dense ? "compact" : "comfortable",
|
|
4953
5115
|
width: __props.sidebar.width,
|
|
4954
5116
|
side: __props.sidebar.side,
|
|
4955
5117
|
forms: __props.sidebar.forms,
|
|
@@ -4986,11 +5148,10 @@ var WorkspaceSidebarInternal_default = /* @__PURE__ */ defineComponent({
|
|
|
4986
5148
|
"title",
|
|
4987
5149
|
"subtitle",
|
|
4988
5150
|
"badge",
|
|
4989
|
-
"variant",
|
|
4990
5151
|
"panels",
|
|
4991
5152
|
"active-view",
|
|
4992
5153
|
"floating",
|
|
4993
|
-
"
|
|
5154
|
+
"density",
|
|
4994
5155
|
"width",
|
|
4995
5156
|
"side",
|
|
4996
5157
|
"forms",
|
|
@@ -5285,60 +5446,89 @@ function generatedJobFormSchema(definition) {
|
|
|
5285
5446
|
};
|
|
5286
5447
|
}
|
|
5287
5448
|
function generatedJobDefaults(definition) {
|
|
5288
|
-
return Object.fromEntries(Object.entries(definition.input_schema.properties ?? {}).
|
|
5449
|
+
return Object.fromEntries(Object.entries(definition.input_schema.properties ?? {}).map(([name, schema]) => [name, resolveGeneratedField(definition.input_schema, schema)]).filter(([, field]) => field.hasDefault).map(([name, field]) => [name, structuredClone(field.defaultValue)]));
|
|
5289
5450
|
}
|
|
5290
5451
|
function normalizeGeneratedJobInput(definition, values) {
|
|
5291
5452
|
const normalized = {};
|
|
5292
5453
|
for (const [name, value] of Object.entries(values)) {
|
|
5293
|
-
|
|
5294
|
-
|
|
5454
|
+
const field = definition.input_schema.properties?.[name];
|
|
5455
|
+
if (!field) continue;
|
|
5456
|
+
const { schema, reference } = resolveGeneratedField(definition.input_schema, field);
|
|
5457
|
+
if (reference !== "path" && Array.isArray(value) && ["integer", "number"].includes(String(schema.items?.type))) normalized[name] = value.map((item) => {
|
|
5458
|
+
const numeric = typeof item === "string" && item.trim() !== "" ? Number(item) : item;
|
|
5459
|
+
return typeof numeric === "number" && Number.isFinite(numeric) ? numeric : item;
|
|
5460
|
+
});
|
|
5461
|
+
else if (reference !== "path" && Array.isArray(value) && schema.items?.type === "boolean") normalized[name] = value.map((item) => item === "true" ? true : item === "false" ? false : item);
|
|
5462
|
+
else normalized[name] = value === void 0 && allowsNull(schema) ? null : value;
|
|
5295
5463
|
}
|
|
5296
5464
|
return normalized;
|
|
5297
5465
|
}
|
|
5298
5466
|
function toFormField(name, resolved, required) {
|
|
5299
5467
|
const { schema, reference } = resolved;
|
|
5300
5468
|
const validation = {};
|
|
5301
|
-
|
|
5469
|
+
const allowsEmpty = schema.type === "array" || schema.type === "string" && reference !== "path" && !(schema.minLength && schema.minLength > 0) && (!schema.enum || schema.enum.includes(""));
|
|
5470
|
+
if (required && !allowsNull(schema) && !allowsEmpty) validation.required = true;
|
|
5302
5471
|
if (schema.minimum !== void 0) validation.min = schema.minimum;
|
|
5303
5472
|
if (schema.maximum !== void 0) validation.max = schema.maximum;
|
|
5304
5473
|
if (schema.minLength !== void 0) validation.minLength = schema.minLength;
|
|
5305
5474
|
if (schema.maxLength !== void 0) validation.maxLength = schema.maxLength;
|
|
5306
5475
|
const props = {};
|
|
5307
5476
|
if (schema.enum) props.options = [...schema.enum];
|
|
5477
|
+
if (schema.type === "integer") {
|
|
5478
|
+
if (schema.exclusiveMinimum !== void 0) validation.min = Math.max(Number(validation.min ?? -Infinity), Math.floor(schema.exclusiveMinimum) + 1);
|
|
5479
|
+
if (schema.exclusiveMaximum !== void 0) validation.max = Math.min(Number(validation.max ?? Infinity), Math.ceil(schema.exclusiveMaximum) - 1);
|
|
5480
|
+
if (validation.min !== void 0) validation.min = Math.ceil(Number(validation.min));
|
|
5481
|
+
if (validation.max !== void 0) validation.max = Math.floor(Number(validation.max));
|
|
5482
|
+
if (schema.multipleOf && Number.isInteger(schema.multipleOf)) {
|
|
5483
|
+
if (validation.min !== void 0) validation.min = Math.ceil(Number(validation.min) / schema.multipleOf) * schema.multipleOf;
|
|
5484
|
+
if (validation.max !== void 0) validation.max = Math.floor(Number(validation.max) / schema.multipleOf) * schema.multipleOf;
|
|
5485
|
+
}
|
|
5486
|
+
props.step = 1;
|
|
5487
|
+
}
|
|
5488
|
+
if (schema.type === "integer" || schema.type === "number") {
|
|
5489
|
+
if (validation.min !== void 0) props.min = validation.min;
|
|
5490
|
+
if (validation.max !== void 0) props.max = validation.max;
|
|
5491
|
+
if (schema.multipleOf !== void 0) props.step = schema.multipleOf;
|
|
5492
|
+
}
|
|
5493
|
+
if (schema.type === "array" && reference !== "path") if (schema.items?.enum) props.options = [...schema.items.enum];
|
|
5494
|
+
else props.allowDuplicates = true;
|
|
5308
5495
|
if (reference === "path" && schema.type === "array") props.multiple = true;
|
|
5309
5496
|
return {
|
|
5310
5497
|
name,
|
|
5311
5498
|
label: schema.title || humanize(name),
|
|
5312
5499
|
type: fieldType(schema, reference),
|
|
5313
5500
|
defaultValue: resolved.hasDefault ? structuredClone(resolved.defaultValue) : void 0,
|
|
5501
|
+
disabled: Object.prototype.hasOwnProperty.call(schema, "const") || void 0,
|
|
5314
5502
|
hint: schema.description,
|
|
5315
5503
|
validation,
|
|
5316
|
-
props
|
|
5504
|
+
props,
|
|
5505
|
+
itemType: schema.items?.type === "number" || schema.items?.type === "integer" ? "number" : void 0
|
|
5317
5506
|
};
|
|
5318
5507
|
}
|
|
5319
5508
|
function resolveGeneratedField(root, field) {
|
|
5320
|
-
const hasDefault = hasOwnDefault(field);
|
|
5321
5509
|
const candidate = field.anyOf?.find((item) => item.type !== "null") ?? field.allOf?.[0] ?? field;
|
|
5510
|
+
let schema = {
|
|
5511
|
+
...candidate,
|
|
5512
|
+
...field
|
|
5513
|
+
};
|
|
5322
5514
|
if (candidate.$ref) {
|
|
5323
5515
|
const referenceParts = candidate.$ref.split("/");
|
|
5324
5516
|
const key = referenceParts[referenceParts.length - 1];
|
|
5325
|
-
const
|
|
5326
|
-
if (!
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
|
|
5331
|
-
},
|
|
5332
|
-
reference: field["x-mint-component"] ?? schema["x-mint-component"],
|
|
5333
|
-
hasDefault,
|
|
5334
|
-
defaultValue: field.default
|
|
5517
|
+
const referenced = key ? root.$defs?.[key] : void 0;
|
|
5518
|
+
if (!referenced) throw new Error(`Generated field reference is missing: ${candidate.$ref}`);
|
|
5519
|
+
schema = {
|
|
5520
|
+
...referenced,
|
|
5521
|
+
...candidate,
|
|
5522
|
+
...field
|
|
5335
5523
|
};
|
|
5336
5524
|
}
|
|
5525
|
+
if (schema.items) schema.items = resolveGeneratedField(root, schema.items).schema;
|
|
5526
|
+
const constant = Object.prototype.hasOwnProperty.call(schema, "const");
|
|
5337
5527
|
return {
|
|
5338
|
-
schema
|
|
5339
|
-
reference:
|
|
5340
|
-
hasDefault,
|
|
5341
|
-
defaultValue: field.default
|
|
5528
|
+
schema,
|
|
5529
|
+
reference: schema["x-mint-component"],
|
|
5530
|
+
hasDefault: constant || hasOwnDefault(field) || allowsNull(schema),
|
|
5531
|
+
defaultValue: constant ? schema.const : hasOwnDefault(field) ? field.default : null
|
|
5342
5532
|
};
|
|
5343
5533
|
}
|
|
5344
5534
|
function fieldType(schema, reference) {
|
|
@@ -5347,12 +5537,15 @@ function fieldType(schema, reference) {
|
|
|
5347
5537
|
const type = Array.isArray(schema.type) ? schema.type.find((value) => value !== "null") : schema.type;
|
|
5348
5538
|
if (type === "boolean") return "toggle";
|
|
5349
5539
|
if (type === "number" || type === "integer") return "number";
|
|
5350
|
-
if (type === "array") return "tags";
|
|
5540
|
+
if (type === "array") return schema.items?.enum ? "multiselect" : "tags";
|
|
5351
5541
|
return "text";
|
|
5352
5542
|
}
|
|
5353
5543
|
function hasOwnDefault(schema) {
|
|
5354
5544
|
return Object.prototype.hasOwnProperty.call(schema, "default");
|
|
5355
5545
|
}
|
|
5546
|
+
function allowsNull(schema) {
|
|
5547
|
+
return schema.type === "null" || Array.isArray(schema.type) && schema.type.includes("null") || !!schema.anyOf?.some((item) => item.type === "null");
|
|
5548
|
+
}
|
|
5356
5549
|
function humanize(value) {
|
|
5357
5550
|
return value.replace(/[_-]+/g, " ").replace(/^\w/, (character) => character.toUpperCase());
|
|
5358
5551
|
}
|
|
@@ -20234,10 +20427,22 @@ function usePickerSelection(nav, mode, capability, skipBlanks) {
|
|
|
20234
20427
|
watch(() => new Map([...nav.nodes.value].map(([path, node]) => [path, nav.isAllowed(node)])), (allowed, previous) => {
|
|
20235
20428
|
if (keys.value.size && [...allowed].some(([path, value]) => previous.has(path) && value !== previous.get(path))) resolve();
|
|
20236
20429
|
});
|
|
20430
|
+
const selectedFileCounts = computed(() => {
|
|
20431
|
+
const counts = /* @__PURE__ */ new Map();
|
|
20432
|
+
for (const file of chosen.value.files) {
|
|
20433
|
+
const seen = /* @__PURE__ */ new Set();
|
|
20434
|
+
let parent = file.parentPath;
|
|
20435
|
+
while (parent && !seen.has(parent)) {
|
|
20436
|
+
seen.add(parent);
|
|
20437
|
+
counts.set(parent, (counts.get(parent) ?? 0) + 1);
|
|
20438
|
+
parent = nav.nodes.value.get(parent)?.parentPath;
|
|
20439
|
+
}
|
|
20440
|
+
}
|
|
20441
|
+
return counts;
|
|
20442
|
+
});
|
|
20237
20443
|
function folderProgress(node) {
|
|
20238
20444
|
if (node.kind !== "folder" || node.fileCount == null) return "";
|
|
20239
|
-
|
|
20240
|
-
return `${selected(node) ? allowed : 0} / ${node.fileCount}`;
|
|
20445
|
+
return `${selected(node) ? selectedFileCounts.value.get(node.path) ?? 0 : 0} / ${node.fileCount}`;
|
|
20241
20446
|
}
|
|
20242
20447
|
return {
|
|
20243
20448
|
keys,
|
|
@@ -20273,7 +20478,10 @@ function localFilesAdapter(files, relativePaths) {
|
|
|
20273
20478
|
kind: "folder",
|
|
20274
20479
|
name: parts[i],
|
|
20275
20480
|
path,
|
|
20276
|
-
parentPath: parent
|
|
20481
|
+
parentPath: parent,
|
|
20482
|
+
fileCount: 0,
|
|
20483
|
+
bytes: 0,
|
|
20484
|
+
formats: {}
|
|
20277
20485
|
});
|
|
20278
20486
|
parent = path;
|
|
20279
20487
|
}
|
|
@@ -20289,17 +20497,22 @@ function localFilesAdapter(files, relativePaths) {
|
|
|
20289
20497
|
file
|
|
20290
20498
|
});
|
|
20291
20499
|
}
|
|
20500
|
+
const children = /* @__PURE__ */ new Map();
|
|
20292
20501
|
for (const node of nodes.values()) {
|
|
20293
|
-
|
|
20294
|
-
const
|
|
20295
|
-
|
|
20296
|
-
|
|
20297
|
-
node.
|
|
20298
|
-
|
|
20299
|
-
|
|
20300
|
-
|
|
20502
|
+
const parent = node.parentPath ?? "";
|
|
20503
|
+
const siblings = children.get(parent);
|
|
20504
|
+
if (siblings) siblings.push(node);
|
|
20505
|
+
else children.set(parent, [node]);
|
|
20506
|
+
if (node.kind !== "file") continue;
|
|
20507
|
+
for (let slash = node.path.indexOf("/"); slash >= 0; slash = node.path.indexOf("/", slash + 1)) {
|
|
20508
|
+
const folder = nodes.get(node.path.slice(0, slash));
|
|
20509
|
+
if (folder?.kind !== "folder") continue;
|
|
20510
|
+
folder.fileCount = (folder.fileCount ?? 0) + 1;
|
|
20511
|
+
folder.bytes = (folder.bytes ?? 0) + (node.bytes ?? 0);
|
|
20512
|
+
folder.formats[node.format] = (folder.formats[node.format] ?? 0) + 1;
|
|
20513
|
+
}
|
|
20301
20514
|
}
|
|
20302
|
-
const list = (path) => [...
|
|
20515
|
+
const list = (path) => [...children.get(path) ?? []];
|
|
20303
20516
|
return {
|
|
20304
20517
|
listRoot: async () => list(""),
|
|
20305
20518
|
listChildren: async (path) => list(path),
|
|
@@ -21018,4 +21231,4 @@ var components_exports = /* @__PURE__ */ __exportAll({
|
|
|
21018
21231
|
//#endregion
|
|
21019
21232
|
export { AutoGroupModal_default as $, ChemicalFormula_default as A, ActionMenu_default as At, BioTemplateExperimentWorkspaceView_default as B, ColorSlider_default as Bt, SequenceProgressBar_default as C, StepWizard_default as Ct, formatSequenceRemaining as D, PluginIcon_default as Dt, formatSequenceEta as E, AppAvatarMenu_default as Et, SmartGroupModal_default as F, LoadingSpinner_default as Ft, StatusIndicator_default as G, Breadcrumb_default as H, GroupAssigner_default as I, Calendar_default as It, DoseDesignWorkspaceView_default as J, Divider_default as K, RackEditor_default as L, DropdownButton_default as Lt, ProtocolStepEditor_default as M, RuntimeUpdateNotice_default as Mt, SampleHierarchyTree_default as N, AppToastContainer_default as Nt, sequenceProgressPercent as O, CollapsibleCard_default as Ot, ReagentEditor_default as P, DataFrame_default as Pt, SampleSelector_default as Q, BioTemplatePresetWorkspaceView_default as R, SegmentedControl_default as Rt, InstrumentAlertLog_default as S, FormActions_default as St, estimateSequenceRemainingSeconds as T, AppPluginSwitcher_default as Tt, Avatar_default as U, BioTemplateRenderer_default as V, ProgressBar_default as W, ComponentBindingRenderer_default as X, ControlWorkspaceView_default as Y, ScheduleCalendar_default as Z, inferLcmsPlateTypeFromWellIds as _, PluginWorkspaceView_default as _t, FileBrowserModal_default as a, WellPlate_default as at, InstrumentStatusCard_default as b, AppSidebar_default as bt, TimeRangeInput_default as c, GeneratedPluginView_default as ct, AuditTrail_default as d, GeneratedPlotlyResult_default as dt, SmartGroupManual_default as et, LcmsSequenceTable_default as f, PlotlyChart_default as ft, extractLcmsSampleName as g, normalizeGeneratedJobInput as gt, extractLcmsCommonPrefix as h, generatedJobFormSchema as ht, ArtifactSaveDialog_default as i, SampleLegend_default as it, ScientificNumber_default as j, IconButton_default as jt, sequenceSamplesRemaining as k, ThemeToggle_default as kt, ExperimentDataViewer_default as l, JobsStatusTray_default as lt, basenameFromWindowsPath as m, generatedJobDefaults as mt, FilePicker_default as n, ReagentList_default as nt, SectionCard_default as o, ExperimentTimeline_default as ot, DEFAULT_LCMS_SEQUENCE_COLUMNS as p, ChartContainer_default as pt, AppContainer_default as q, FitPanel_default as r, PlateMapEditor_default as rt, ResourceCard_default as s, DoseCalculator_default as st, components_exports as t, SmartGroupFieldRecipe_default as tt, BatchProgressList_default as u, GeneratedResultRenderer_default as ut, lcmsWellIdFromPosition as v, MobileSupportGate_default as vt, estimateSequenceFinishDate as w, AppTopBar_default as wt, InstrumentStateBadge_default as x, FormBuilder_default as xt, reconstructLcmsPlateCellsFromSequenceItems as y, AppLayout_default as yt, BioTemplatePackWorkspaceView_default as z, BaseTabs_default as zt };
|
|
21020
21233
|
|
|
21021
|
-
//# sourceMappingURL=components-
|
|
21234
|
+
//# sourceMappingURL=components-Cp8DcNrU.js.map
|