@pitcher/canvas-ui 2026.1.19-125708 → 2026.1.19-140513-beta

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/canvas-ui.css CHANGED
@@ -2667,7 +2667,7 @@ to {
2667
2667
  padding: 0;
2668
2668
  }
2669
2669
 
2670
- .data-accessor-input[data-v-dce6a881] .n-input__prefix {
2670
+ .data-accessor-input[data-v-1ab19780] .n-input__prefix {
2671
2671
  margin-right: 0;
2672
2672
  }
2673
2673
  .cb-dynamic-data-table-settings {
package/canvas-ui.js CHANGED
@@ -109730,18 +109730,16 @@ const _sfc_main$4U = /* @__PURE__ */ defineComponent({
109730
109730
 
109731
109731
  function filterByItemVisibility(items) {
109732
109732
  const isAdmin = state$3.appName.value === "admin";
109733
- const isSearchMode = state$3.showFilteredResults.value;
109734
109733
  return items.reduce((acc, item) => {
109735
109734
  const hasCountData = "files_count" in item || "folders_count" in item || "available_files_count" in item || "available_folders_count" in item;
109736
109735
  const filesCount = item.available_files_count ?? item.files_count ?? 0;
109737
109736
  const foldersCount = item.available_folders_count ?? item.folders_count ?? 0;
109738
109737
  const isFolderEmpty = item.type == "folder" && hasCountData && filesCount === 0 && foldersCount === 0;
109739
- const isFolderWithoutData = item.type == "folder" && !hasCountData && isSearchMode;
109740
109738
  const shouldHideItem = item.name?.startsWith(".") || isFolderEmpty || item.folder?.file_thumbnail_urls?.length === 0;
109741
109739
  if (!shouldHideItem && !isAdmin || isAdmin) {
109742
109740
  acc.push({
109743
109741
  ...item,
109744
- opacity: isFolderWithoutData || shouldHideItem && isAdmin ? 0.5 : 1
109742
+ opacity: shouldHideItem && isAdmin ? 0.5 : 1
109745
109743
  });
109746
109744
  }
109747
109745
  return acc;
@@ -110333,13 +110331,6 @@ function init({
110333
110331
  canvas_thumbnail_urls: []
110334
110332
  }
110335
110333
  ];
110336
- state$2.folderCache[folder.id] = {
110337
- files_count: 0,
110338
- folders_count: 0,
110339
- available_files_count: 0,
110340
- available_folders_count: 0,
110341
- timestamp: Date.now()
110342
- };
110343
110334
  return folder;
110344
110335
  };
110345
110336
  state$2.folderUpdater = async function(payload) {
@@ -110363,7 +110354,6 @@ function init({
110363
110354
  state$2.folderDeleter = async function(payload) {
110364
110355
  await onFolderDelete(payload);
110365
110356
  state$2.folders = state$2.folders.filter((folder) => folder.id !== payload);
110366
- delete state$2.folderCache[payload];
110367
110357
  useAppStore$4().removeSelectedItems([payload]);
110368
110358
  };
110369
110359
  state$2.folderFetcher = async function(folderId) {
@@ -110384,9 +110374,6 @@ function init({
110384
110374
  const response = await onFoldersDelete(payload);
110385
110375
  const deletedIdsSet = new Set(response.deleted_ids);
110386
110376
  state$2.folders = state$2.folders.filter((folder) => !deletedIdsSet.has(folder.id));
110387
- response.deleted_ids.forEach((id2) => {
110388
- delete state$2.folderCache[id2];
110389
- });
110390
110377
  useAppStore$4().removeSelectedItems(response.deleted_ids);
110391
110378
  return response;
110392
110379
  };
@@ -137883,19 +137870,37 @@ function useComponentPermissions({
137883
137870
  isAnyTypeOfAdmin: false
137884
137871
  }))
137885
137872
  );
137886
- const { canvasContent } = useCanvas$1();
137873
+ const launchDarkly = inject(
137874
+ "launchDarkly",
137875
+ computed(() => ({}))
137876
+ );
137877
+ const { canvasContent, activeCanvas } = useCanvas$1();
137887
137878
  return computed(() => {
137888
- if (!usedInSectionId.value) return calculateCanvasPermissions(id.value, !!pitcherInfo.value?.isAnyTypeOfAdmin);
137889
- const parent = findParentByNodeId(canvasContent.value, id.value);
137890
- const canRemove = !!when_used_in_section.value?.is_removable;
137891
- const canEdit = !!when_used_in_section.value?.is_editable;
137892
- const canDuplicate = parent ? !!parent.when_used_in_section?.is_editable : false;
137893
- return {
137894
- hasSomethingEditable: canEdit || canRemove || canDuplicate,
137895
- canRemove,
137896
- canEdit,
137897
- canDuplicate
137898
- };
137879
+ if (usedInSectionId.value) {
137880
+ const parent = findParentByNodeId(canvasContent.value, id.value);
137881
+ const canRemove = !!when_used_in_section.value?.is_removable;
137882
+ const canEdit = !!when_used_in_section.value?.is_editable;
137883
+ const canDuplicate = parent ? !!parent.when_used_in_section?.is_editable : false;
137884
+ return {
137885
+ hasSomethingEditable: canEdit || canRemove || canDuplicate,
137886
+ canRemove,
137887
+ canEdit,
137888
+ canDuplicate
137889
+ };
137890
+ }
137891
+ const hasExplicitPermissions = when_used_in_section.value !== null && when_used_in_section.value !== void 0 && (when_used_in_section.value.is_editable !== void 0 || when_used_in_section.value.is_removable !== void 0);
137892
+ if (activeCanvas.value?.template?.id && launchDarkly.value.enable_template_component_permissions && hasExplicitPermissions) {
137893
+ const canRemove = !!when_used_in_section.value?.is_removable;
137894
+ const canEdit = !!when_used_in_section.value?.is_editable;
137895
+ const canDuplicate = canEdit;
137896
+ return {
137897
+ hasSomethingEditable: canEdit || canRemove || canDuplicate,
137898
+ canRemove,
137899
+ canEdit,
137900
+ canDuplicate
137901
+ };
137902
+ }
137903
+ return calculateCanvasPermissions(id.value, !!pitcherInfo.value?.isAnyTypeOfAdmin);
137899
137904
  });
137900
137905
  }
137901
137906
 
@@ -156872,7 +156877,9 @@ const _sfc_main$1P = /* @__PURE__ */ defineComponent({
156872
156877
  visible: {},
156873
156878
  allow_admins_to_overwrite: { type: Boolean },
156874
156879
  style: {},
156875
- printModeIdx: {}
156880
+ printModeIdx: {},
156881
+ when_used_in_section: {},
156882
+ usedInSectionId: { default: "" }
156876
156883
  },
156877
156884
  emits: ["style"],
156878
156885
  setup(__props, { emit: __emit }) {
@@ -156887,12 +156894,42 @@ const _sfc_main$1P = /* @__PURE__ */ defineComponent({
156887
156894
  computed(() => [])
156888
156895
  );
156889
156896
  const { isCompletionWizardEnabled, retriggerWizard } = useCanvasCompletionWizard();
156890
- const isEditable = computed(
156891
- () => isImpact.value ? !props.data.selection_strategy || props.data.selection_strategy === "free" || isCompletionWizardEnabled.value && wizardStepSectionListIds.value.includes(props.id) : true
156892
- );
156893
- const isRemovable = computed(
156894
- () => isImpact.value ? !props.data.selection_strategy || props.data.selection_strategy === "free" : true
156895
- );
156897
+ const {
156898
+ isImpact,
156899
+ mode,
156900
+ isEditMode,
156901
+ componentSelectedMode,
156902
+ isViewOnlyMode,
156903
+ componentEditMode,
156904
+ componentNodesById,
156905
+ activeCanvas,
156906
+ saveCanvasContentWithContext,
156907
+ removeComponentById,
156908
+ setComponentSelectedMode,
156909
+ setComponentSettingsMode,
156910
+ updateNodeDataById,
156911
+ canvasContent
156912
+ } = useCanvas$1();
156913
+ const { id, usedInSectionId, when_used_in_section } = toRefs(props);
156914
+ const componentPermissions = useComponentPermissions({
156915
+ id,
156916
+ usedInSectionId,
156917
+ when_used_in_section
156918
+ });
156919
+ const isEditable = computed(() => {
156920
+ if (!componentPermissions.value.canEdit) return false;
156921
+ if (isImpact.value) {
156922
+ return !props.data.selection_strategy || props.data.selection_strategy === "free" || isCompletionWizardEnabled.value && wizardStepSectionListIds.value.includes(props.id);
156923
+ }
156924
+ return true;
156925
+ });
156926
+ const isRemovable = computed(() => {
156927
+ if (!componentPermissions.value.canRemove) return false;
156928
+ if (isImpact.value) {
156929
+ return !props.data.selection_strategy || props.data.selection_strategy === "free";
156930
+ }
156931
+ return true;
156932
+ });
156896
156933
  const sectionSelectorAppSrc = computed(() => {
156897
156934
  if (!sectionSelectorApps.value?.length || !props.data.selection_app_name) return null;
156898
156935
  const relatedApp = sectionSelectorApps.value.find((app) => app.app_metadata?.name === props.data.selection_app_name);
@@ -156959,7 +156996,7 @@ const _sfc_main$1P = /* @__PURE__ */ defineComponent({
156959
156996
  async (selectedData) => {
156960
156997
  console.info(`[SectionList]: Received done callback for ${props.id} with data`, selectedData);
156961
156998
  if (!selectedData) return;
156962
- const sections = (selectedData?.section_ids || []).map((id) => ({ id: typeof id === "string" ? id : id.id }));
156999
+ const sections = (selectedData?.section_ids || []).map((id2) => ({ id: typeof id2 === "string" ? id2 : id2.id }));
156963
157000
  const updatedData = { ...props.data, sections };
156964
157001
  updateNodeDataById(props.id, updatedData);
156965
157002
  const currentContext = cloneDeep(activeCanvas.value?.context || {});
@@ -156985,22 +157022,6 @@ const _sfc_main$1P = /* @__PURE__ */ defineComponent({
156985
157022
  sectionListRef.value?.toggleSectionSelector();
156986
157023
  }
156987
157024
  }
156988
- const {
156989
- isImpact,
156990
- mode,
156991
- isEditMode,
156992
- componentSelectedMode,
156993
- isViewOnlyMode,
156994
- componentEditMode,
156995
- componentNodesById,
156996
- activeCanvas,
156997
- saveCanvasContentWithContext,
156998
- removeComponentById,
156999
- setComponentSelectedMode,
157000
- setComponentSettingsMode,
157001
- updateNodeDataById,
157002
- canvasContent
157003
- } = useCanvas$1();
157004
157025
  return (_ctx, _cache) => {
157005
157026
  return openBlock(), createElementBlock(Fragment, null, [
157006
157027
  unref(shouldDisplayPlaceholderComponent)(unref(isEditMode), unref(mode), _ctx.visible) ? (openBlock(), createBlock(PlaceholderComponent, {
@@ -157008,25 +157029,25 @@ const _sfc_main$1P = /* @__PURE__ */ defineComponent({
157008
157029
  name: _ctx.tracking_id
157009
157030
  }, null, 8, ["name"])) : unref(isEditMode) && !unref(isViewOnlyMode) ? (openBlock(), createBlock(_sfc_main$34, {
157010
157031
  key: 1,
157011
- id: _ctx.id,
157012
- active: unref(componentEditMode) && unref(componentEditMode)?.id === _ctx.id,
157032
+ id: unref(id),
157033
+ active: unref(componentEditMode) && unref(componentEditMode)?.id === unref(id),
157013
157034
  class: normalizeClass({ "mt-12": sectionListName.value }),
157014
157035
  edit: isEditable.value,
157015
157036
  "exclude-stylables": [unref(ThemeComponentOptionEnum).COLOR_PICKER],
157016
157037
  remove: isRemovable.value,
157017
- selected: unref(componentSelectedMode) && unref(componentSelectedMode)?.id === _ctx.id,
157038
+ selected: unref(componentSelectedMode) && unref(componentSelectedMode)?.id === unref(id),
157018
157039
  settings: "",
157019
157040
  stylable: "",
157020
157041
  style: normalizeStyle(unref(omit$1)(_ctx.style, "paddingBottom", "paddingLeft", "paddingTop", "paddingRight")),
157021
157042
  onEdit: handleEdit,
157022
- onRemove: _cache[0] || (_cache[0] = ($event) => unref(removeComponentById)(_ctx.id)),
157023
- onSelect: _cache[1] || (_cache[1] = ($event) => unref(setComponentSelectedMode)(_ctx.id)),
157024
- onSettings: _cache[2] || (_cache[2] = ($event) => unref(setComponentSettingsMode)(_ctx.id)),
157043
+ onRemove: _cache[0] || (_cache[0] = ($event) => unref(removeComponentById)(unref(id))),
157044
+ onSelect: _cache[1] || (_cache[1] = ($event) => unref(setComponentSelectedMode)(unref(id))),
157045
+ onSettings: _cache[2] || (_cache[2] = ($event) => unref(setComponentSettingsMode)(unref(id))),
157025
157046
  onStyle: _cache[3] || (_cache[3] = ($event) => emit("style", $event))
157026
157047
  }, {
157027
157048
  default: withCtx(() => [
157028
157049
  createVNode(RawSectionList, mergeProps({
157029
- id: _ctx.id,
157050
+ id: unref(id),
157030
157051
  ref_key: "sectionListRef",
157031
157052
  ref: sectionListRef,
157032
157053
  class: "pa-2",
@@ -157044,7 +157065,7 @@ const _sfc_main$1P = /* @__PURE__ */ defineComponent({
157044
157065
  _: 1
157045
157066
  }, 8, ["id", "active", "class", "edit", "exclude-stylables", "remove", "selected", "style"])) : (openBlock(), createBlock(RawSectionList, mergeProps({
157046
157067
  key: 2,
157047
- id: _ctx.id,
157068
+ id: unref(id),
157048
157069
  data: _ctx.data
157049
157070
  }, unref(attrs), {
157050
157071
  "has-section-selector-app": !!sectionSelectorAppSrc.value,
@@ -159572,7 +159593,8 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
159572
159593
  autofill: {},
159573
159594
  linkable: {},
159574
159595
  autofill_content_types: {},
159575
- when_used_in_section: {}
159596
+ when_used_in_section: {},
159597
+ usedInSectionId: { default: "" }
159576
159598
  },
159577
159599
  emits: ["style"],
159578
159600
  setup(__props, { emit: __emit }) {
@@ -159582,17 +159604,43 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
159582
159604
  "sectionSelectorApps",
159583
159605
  computed(() => [])
159584
159606
  );
159585
- const launchDarkly = inject(
159586
- "launchDarkly",
159587
- computed(() => ({}))
159588
- );
159589
159607
  const { isCompletionWizardEnabled, retriggerWizard } = useCanvasCompletionWizard();
159590
- const isEditable = computed(
159591
- () => isImpact.value ? !props.data.selection_strategy || props.data.selection_strategy === "free" || isCompletionWizardEnabled.value && wizardStepSectionListIds.value.includes(props.id) : true
159592
- );
159593
- const isRemovable = computed(
159594
- () => isImpact.value ? !props.data.selection_strategy || props.data.selection_strategy === "free" : true
159595
- );
159608
+ const {
159609
+ isImpact,
159610
+ mode,
159611
+ isEditMode,
159612
+ componentSelectedMode,
159613
+ isViewOnlyMode,
159614
+ componentEditMode,
159615
+ componentNodesById,
159616
+ activeCanvas,
159617
+ saveCanvasContentWithContext,
159618
+ removeComponentById,
159619
+ setComponentSelectedMode,
159620
+ setComponentSettingsMode,
159621
+ updateNodeDataById,
159622
+ canvasContent
159623
+ } = useCanvas$1();
159624
+ const { id, usedInSectionId, when_used_in_section } = toRefs(props);
159625
+ const componentPermissions = useComponentPermissions({
159626
+ id,
159627
+ usedInSectionId,
159628
+ when_used_in_section
159629
+ });
159630
+ const isEditable = computed(() => {
159631
+ if (!componentPermissions.value.canEdit) return false;
159632
+ if (isImpact.value) {
159633
+ return !props.data.selection_strategy || props.data.selection_strategy === "free" || isCompletionWizardEnabled.value && wizardStepSectionListIds.value.includes(props.id);
159634
+ }
159635
+ return true;
159636
+ });
159637
+ const isRemovable = computed(() => {
159638
+ if (!componentPermissions.value.canRemove) return false;
159639
+ if (isImpact.value) {
159640
+ return !props.data.selection_strategy || props.data.selection_strategy === "free";
159641
+ }
159642
+ return true;
159643
+ });
159596
159644
  const sectionSelectorAppSrc = computed(() => {
159597
159645
  if (!sectionSelectorApps.value?.length || !props.data.selection_app_name) return null;
159598
159646
  const relatedApp = sectionSelectorApps.value.find((app) => app.app_metadata?.name === props.data.selection_app_name);
@@ -159611,7 +159659,6 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
159611
159659
  const attrs = useAttrs();
159612
159660
  const contentListRef = ref(null);
159613
159661
  const componentName = computed(() => {
159614
- if (!launchDarkly.value?.display_section_list_name) return;
159615
159662
  const node = componentNodesById.value[props.id];
159616
159663
  return node.tracking_id !== node.type ? node.tracking_id : "";
159617
159664
  });
@@ -159659,7 +159706,7 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
159659
159706
  async (selectedData) => {
159660
159707
  console.info(`[SectionList]: Received done callback for ${props.id} with data`, selectedData);
159661
159708
  if (!selectedData) return;
159662
- const sections = (selectedData?.section_ids || []).map((id) => ({ id: typeof id === "string" ? id : id.id }));
159709
+ const sections = (selectedData?.section_ids || []).map((id2) => ({ id: typeof id2 === "string" ? id2 : id2.id }));
159663
159710
  const updatedData = { ...props.data, sections };
159664
159711
  updateNodeDataById(props.id, updatedData);
159665
159712
  const currentContext = cloneDeep(activeCanvas.value?.context || {});
@@ -159685,22 +159732,6 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
159685
159732
  contentListRef.value?.toggleSectionSelector();
159686
159733
  }
159687
159734
  }
159688
- const {
159689
- isImpact,
159690
- mode,
159691
- isEditMode,
159692
- componentSelectedMode,
159693
- isViewOnlyMode,
159694
- componentEditMode,
159695
- componentNodesById,
159696
- activeCanvas,
159697
- saveCanvasContentWithContext,
159698
- removeComponentById,
159699
- setComponentSelectedMode,
159700
- setComponentSettingsMode,
159701
- updateNodeDataById,
159702
- canvasContent
159703
- } = useCanvas$1();
159704
159735
  return (_ctx, _cache) => {
159705
159736
  return openBlock(), createElementBlock(Fragment, null, [
159706
159737
  unref(shouldDisplayPlaceholderComponent)(unref(isEditMode), unref(mode), _ctx.visible) ? (openBlock(), createBlock(PlaceholderComponent, {
@@ -159708,25 +159739,25 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
159708
159739
  name: _ctx.tracking_id
159709
159740
  }, null, 8, ["name"])) : unref(isEditMode) && !unref(isViewOnlyMode) ? (openBlock(), createBlock(_sfc_main$34, {
159710
159741
  key: 1,
159711
- id: _ctx.id,
159712
- active: unref(componentEditMode) && unref(componentEditMode)?.id === _ctx.id,
159742
+ id: unref(id),
159743
+ active: unref(componentEditMode) && unref(componentEditMode)?.id === unref(id),
159713
159744
  class: normalizeClass({ "mt-12": componentName.value }),
159714
159745
  edit: isEditable.value,
159715
159746
  "exclude-stylables": [unref(ThemeComponentOptionEnum).COLOR_PICKER],
159716
159747
  remove: isRemovable.value,
159717
- selected: unref(componentSelectedMode) && unref(componentSelectedMode)?.id === _ctx.id,
159748
+ selected: unref(componentSelectedMode) && unref(componentSelectedMode)?.id === unref(id),
159718
159749
  settings: "",
159719
159750
  stylable: "",
159720
159751
  style: normalizeStyle(unref(omit$1)(_ctx.style, "paddingBottom", "paddingLeft", "paddingTop", "paddingRight")),
159721
159752
  onEdit: handleEdit,
159722
- onRemove: _cache[0] || (_cache[0] = ($event) => unref(removeComponentById)(_ctx.id)),
159723
- onSelect: _cache[1] || (_cache[1] = ($event) => unref(setComponentSelectedMode)(_ctx.id)),
159724
- onSettings: _cache[2] || (_cache[2] = ($event) => unref(setComponentSettingsMode)(_ctx.id)),
159753
+ onRemove: _cache[0] || (_cache[0] = ($event) => unref(removeComponentById)(unref(id))),
159754
+ onSelect: _cache[1] || (_cache[1] = ($event) => unref(setComponentSelectedMode)(unref(id))),
159755
+ onSettings: _cache[2] || (_cache[2] = ($event) => unref(setComponentSettingsMode)(unref(id))),
159725
159756
  onStyle: _cache[3] || (_cache[3] = ($event) => emit("style", $event))
159726
159757
  }, {
159727
159758
  default: withCtx(() => [
159728
159759
  createVNode(ContentListRaw, mergeProps({
159729
- id: _ctx.id,
159760
+ id: unref(id),
159730
159761
  ref_key: "contentListRef",
159731
159762
  ref: contentListRef,
159732
159763
  class: ["pa-2", props.class],
@@ -159744,7 +159775,7 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
159744
159775
  _: 1
159745
159776
  }, 8, ["id", "active", "class", "edit", "exclude-stylables", "remove", "selected", "style"])) : (openBlock(), createBlock(ContentListRaw, mergeProps({
159746
159777
  key: 2,
159747
- id: _ctx.id,
159778
+ id: unref(id),
159748
159779
  data: _ctx.data
159749
159780
  }, unref(attrs), {
159750
159781
  "has-section-selector-app": !!sectionSelectorAppSrc.value,
@@ -162656,7 +162687,7 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
162656
162687
  );
162657
162688
  const areSectionsSystemControlled = computed(() => launchDarkly.value?.are_sections_system_controlled);
162658
162689
  const allowEditOrRemove = computed(
162659
- () => (selectedComponentType.value === ComponentTypes.Text || selectedComponentType.value === ComponentTypes.Carousel || selectedComponentType.value === ComponentTypes.Multimedia) && isAdmin.value && isSection.value
162690
+ () => isAdmin.value && ((selectedComponentType.value === ComponentTypes.Text || selectedComponentType.value === ComponentTypes.Carousel || selectedComponentType.value === ComponentTypes.Multimedia) && isSection.value || launchDarkly.value.enable_template_component_permissions && isCanvasTemplate.value)
162660
162691
  );
162661
162692
  const canSelectSectionListStrategy = computed(
162662
162693
  () => isAdmin.value && isCanvasTemplate.value && isSectionOrContentList.value
@@ -162718,7 +162749,8 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
162718
162749
  formValues.contentGridDataAccessor = value || "";
162719
162750
  }
162720
162751
  function getEditOrRemoveOption() {
162721
- const map = activeSettingsNode.value?.when_used_in_section ?? cloneDeep(defaultWhenUsedInSection);
162752
+ const defaultPermissions = isCanvasTemplate.value && launchDarkly.value.enable_template_component_permissions ? { is_editable: true, is_removable: true } : cloneDeep(defaultWhenUsedInSection);
162753
+ const map = activeSettingsNode.value?.when_used_in_section ?? defaultPermissions;
162722
162754
  let value = "";
162723
162755
  value += map.is_editable ? "1" : "0";
162724
162756
  value += map.is_removable ? "1" : "0";
@@ -163219,7 +163251,7 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
163219
163251
  }
163220
163252
  });
163221
163253
 
163222
- const ComponentDrawerSettings = /* @__PURE__ */ _export_sfc(_sfc_main$1w, [["__scopeId", "data-v-dce6a881"]]);
163254
+ const ComponentDrawerSettings = /* @__PURE__ */ _export_sfc(_sfc_main$1w, [["__scopeId", "data-v-1ab19780"]]);
163223
163255
 
163224
163256
  function useConnectUpload() {
163225
163257
  async function uploadToConnect(formData) {