@pitcher/canvas-ui 2026.1.9-131543-beta → 2026.1.9-135102-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
@@ -925,25 +925,25 @@ button[data-v-da2357d4]:focus {
925
925
  }.c-users-groups-access-manage__select[data-v-fe2300a1] {
926
926
  width: 180px;
927
927
  }
928
- .panel-title[data-v-aa03fa77] {
929
- color: var(--6fe3245a);
928
+ .panel-title[data-v-05db071e] {
929
+ color: var(--7e857d3a);
930
930
  letter-spacing: 0.15px;
931
931
  }
932
- .base[data-v-aa03fa77] {
933
- background-color: var(--6fdae5fe);
932
+ .base[data-v-05db071e] {
933
+ background-color: var(--7e7d3ede);
934
934
  }
935
- .selection-panel-list-item[data-v-aa03fa77] {
936
- background: var(--85f799be);
935
+ .selection-panel-list-item[data-v-05db071e] {
936
+ background: var(--e1e1c7fe);
937
937
  }
938
- .selection-panel-list-handle[data-v-aa03fa77] {
939
- color: var(--85f799c4);
938
+ .selection-panel-list-handle[data-v-05db071e] {
939
+ color: var(--e1e1c804);
940
940
  }
941
- .title[data-v-aa03fa77] {
942
- color: var(--6fe3245a);
941
+ .title[data-v-05db071e] {
942
+ color: var(--7e857d3a);
943
943
  letter-spacing: 0.4px;
944
944
  }
945
- .description[data-v-aa03fa77] {
946
- color: var(--85f799c4);
945
+ .description[data-v-05db071e] {
946
+ color: var(--e1e1c804);
947
947
  }
948
948
  .content-selector__section-title[data-v-2e7377ec] {
949
949
  font-size: 18px;
@@ -958,7 +958,7 @@ button[data-v-da2357d4]:focus {
958
958
  background-color: var(--49a7913e);
959
959
  }
960
960
 
961
- [data-v-1287b675] .dynamic-value-tree-select__trigger {
961
+ [data-v-ba7b39ff] .dynamic-value-tree-select__trigger {
962
962
  margin-right: -16px;
963
963
  }
964
964
  .ai-preview-container[data-v-2a9cccf6] {
@@ -1604,65 +1604,65 @@ to {
1604
1604
  object-fit: var(--1d3ef4cb);
1605
1605
  height: 100%;
1606
1606
  }
1607
- .canvas-text[data-v-b2424519] p {
1607
+ .canvas-text[data-v-73a884c3] p {
1608
1608
  margin-bottom: 20px;
1609
1609
  }
1610
- [data-v-b2424519] .ProseMirror:focus {
1610
+ [data-v-73a884c3] .ProseMirror:focus {
1611
1611
  outline: none;
1612
1612
  }
1613
- .cb-text-component[data-v-b2424519] p,
1614
- .c-text__rich-text-editor[data-v-b2424519] p,
1615
- .cb-text-component[data-v-b2424519] ol,
1616
- .c-text__rich-text-editor[data-v-b2424519] ol,
1617
- .cb-text-component[data-v-b2424519] ul,
1618
- .c-text__rich-text-editor[data-v-b2424519] ul {
1613
+ .cb-text-component[data-v-73a884c3] p,
1614
+ .c-text__rich-text-editor[data-v-73a884c3] p,
1615
+ .cb-text-component[data-v-73a884c3] ol,
1616
+ .c-text__rich-text-editor[data-v-73a884c3] ol,
1617
+ .cb-text-component[data-v-73a884c3] ul,
1618
+ .c-text__rich-text-editor[data-v-73a884c3] ul {
1619
1619
  margin: 0 0 1em 0;
1620
1620
  min-height: 1.6em;
1621
1621
  }
1622
- .cb-text-component[data-v-b2424519] ol,
1623
- .c-text__rich-text-editor[data-v-b2424519] ol,
1624
- .cb-text-component[data-v-b2424519] ul,
1625
- .c-text__rich-text-editor[data-v-b2424519] ul {
1622
+ .cb-text-component[data-v-73a884c3] ol,
1623
+ .c-text__rich-text-editor[data-v-73a884c3] ol,
1624
+ .cb-text-component[data-v-73a884c3] ul,
1625
+ .c-text__rich-text-editor[data-v-73a884c3] ul {
1626
1626
  padding: 0 0 0 1em;
1627
1627
  }
1628
- .cb-text-component[data-v-b2424519] p:last-of-type,
1629
- .c-text__rich-text-editor[data-v-b2424519] p:last-of-type,
1630
- .cb-text-component[data-v-b2424519] ol:last-of-type,
1631
- .c-text__rich-text-editor[data-v-b2424519] ol:last-of-type,
1632
- .cb-text-component[data-v-b2424519] ul:last-of-type,
1633
- .c-text__rich-text-editor[data-v-b2424519] ul:last-of-type {
1628
+ .cb-text-component[data-v-73a884c3] p:last-of-type,
1629
+ .c-text__rich-text-editor[data-v-73a884c3] p:last-of-type,
1630
+ .cb-text-component[data-v-73a884c3] ol:last-of-type,
1631
+ .c-text__rich-text-editor[data-v-73a884c3] ol:last-of-type,
1632
+ .cb-text-component[data-v-73a884c3] ul:last-of-type,
1633
+ .c-text__rich-text-editor[data-v-73a884c3] ul:last-of-type {
1634
1634
  margin-bottom: 0em;
1635
1635
  }
1636
- .cb-text-component[data-v-b2424519] p:last-of-type + ol,
1637
- .c-text__rich-text-editor[data-v-b2424519] p:last-of-type + ol,
1638
- .cb-text-component[data-v-b2424519] p:last-of-type + ul,
1639
- .c-text__rich-text-editor[data-v-b2424519] p:last-of-type + ul,
1640
- .cb-text-component[data-v-b2424519] ol:last-of-type + p,
1641
- .c-text__rich-text-editor[data-v-b2424519] ol:last-of-type + p,
1642
- .cb-text-component[data-v-b2424519] ol:last-of-type + ul,
1643
- .c-text__rich-text-editor[data-v-b2424519] ol:last-of-type + ul,
1644
- .cb-text-component[data-v-b2424519] ul:last-of-type + p,
1645
- .c-text__rich-text-editor[data-v-b2424519] ul:last-of-type + p,
1646
- .cb-text-component[data-v-b2424519] ul:last-of-type + ol,
1647
- .c-text__rich-text-editor[data-v-b2424519] ul:last-of-type + ol {
1636
+ .cb-text-component[data-v-73a884c3] p:last-of-type + ol,
1637
+ .c-text__rich-text-editor[data-v-73a884c3] p:last-of-type + ol,
1638
+ .cb-text-component[data-v-73a884c3] p:last-of-type + ul,
1639
+ .c-text__rich-text-editor[data-v-73a884c3] p:last-of-type + ul,
1640
+ .cb-text-component[data-v-73a884c3] ol:last-of-type + p,
1641
+ .c-text__rich-text-editor[data-v-73a884c3] ol:last-of-type + p,
1642
+ .cb-text-component[data-v-73a884c3] ol:last-of-type + ul,
1643
+ .c-text__rich-text-editor[data-v-73a884c3] ol:last-of-type + ul,
1644
+ .cb-text-component[data-v-73a884c3] ul:last-of-type + p,
1645
+ .c-text__rich-text-editor[data-v-73a884c3] ul:last-of-type + p,
1646
+ .cb-text-component[data-v-73a884c3] ul:last-of-type + ol,
1647
+ .c-text__rich-text-editor[data-v-73a884c3] ul:last-of-type + ol {
1648
1648
  margin-top: 1em;
1649
1649
  }
1650
- .cb-text-component[data-v-b2424519] ol > li ol,
1651
- .c-text__rich-text-editor[data-v-b2424519] ol > li ol,
1652
- .cb-text-component[data-v-b2424519] ol > li ul,
1653
- .c-text__rich-text-editor[data-v-b2424519] ol > li ul,
1654
- .cb-text-component[data-v-b2424519] ul > li ol,
1655
- .c-text__rich-text-editor[data-v-b2424519] ul > li ol,
1656
- .cb-text-component[data-v-b2424519] ul > li ul,
1657
- .c-text__rich-text-editor[data-v-b2424519] ul > li ul {
1650
+ .cb-text-component[data-v-73a884c3] ol > li ol,
1651
+ .c-text__rich-text-editor[data-v-73a884c3] ol > li ol,
1652
+ .cb-text-component[data-v-73a884c3] ol > li ul,
1653
+ .c-text__rich-text-editor[data-v-73a884c3] ol > li ul,
1654
+ .cb-text-component[data-v-73a884c3] ul > li ol,
1655
+ .c-text__rich-text-editor[data-v-73a884c3] ul > li ol,
1656
+ .cb-text-component[data-v-73a884c3] ul > li ul,
1657
+ .c-text__rich-text-editor[data-v-73a884c3] ul > li ul {
1658
1658
  margin-top: 0 !important;
1659
1659
  }
1660
1660
 
1661
1661
  /* Sortable table styles */
1662
- .canvas-text[data-v-b2424519] .sortable-header {
1662
+ .canvas-text[data-v-73a884c3] .sortable-header {
1663
1663
  position: relative;
1664
1664
  }
1665
- .canvas-text[data-v-b2424519] .sortable-header::after {
1665
+ .canvas-text[data-v-73a884c3] .sortable-header::after {
1666
1666
  content: "";
1667
1667
  position: absolute;
1668
1668
  right: 8px;
@@ -1670,22 +1670,22 @@ to {
1670
1670
  transform: translateY(-50%);
1671
1671
  opacity: 0.5;
1672
1672
  }
1673
- .canvas-text[data-v-b2424519] .sortable-header:hover::after {
1673
+ .canvas-text[data-v-73a884c3] .sortable-header:hover::after {
1674
1674
  content: "↕";
1675
1675
  opacity: 0.7;
1676
1676
  }
1677
- .canvas-text[data-v-b2424519] .sortable-header.sorted-asc::after {
1677
+ .canvas-text[data-v-73a884c3] .sortable-header.sorted-asc::after {
1678
1678
  content: "↑";
1679
1679
  opacity: 1;
1680
1680
  }
1681
- .canvas-text[data-v-b2424519] .sortable-header.sorted-desc::after {
1681
+ .canvas-text[data-v-73a884c3] .sortable-header.sorted-desc::after {
1682
1682
  content: "↓";
1683
1683
  opacity: 1;
1684
1684
  }
1685
- .canvas-text[data-v-b2424519] .sortable-header.sorted-original::after {
1685
+ .canvas-text[data-v-73a884c3] .sortable-header.sorted-original::after {
1686
1686
  content: "";
1687
1687
  }
1688
- .canvas-text[data-v-b2424519] .sortable-header.sorted-original:hover::after {
1688
+ .canvas-text[data-v-73a884c3] .sortable-header.sorted-original:hover::after {
1689
1689
  content: "↕";
1690
1690
  opacity: 0.5;
1691
1691
  }.cb-linkable-settings[data-v-4f5606e1] {
package/canvas-ui.js CHANGED
@@ -120824,7 +120824,11 @@ const _sfc_main$4k = /* @__PURE__ */ defineComponent({
120824
120824
 
120825
120825
  function useCanvasContext() {
120826
120826
  const { activeCanvas, isPrintDisplayMode, builderCache } = useCanvas$1();
120827
- const { crmShape } = useCrmShape();
120827
+ const { crmShape, getDefaultCrmShape } = useCrmShape();
120828
+ const myUser = inject(
120829
+ "myUser",
120830
+ computed(() => null)
120831
+ );
120828
120832
  const sectionListSectionInfo = inject(
120829
120833
  "sectionListSectionInfo",
120830
120834
  computed(() => null)
@@ -120852,13 +120856,21 @@ function useCanvasContext() {
120852
120856
  builderCache.value[sectionOverrideKey] = mergedCtx;
120853
120857
  return mergedCtx;
120854
120858
  };
120855
- const crmShapeWithSectionCtx = computed(() => {
120859
+ const fullContext = computed(() => {
120856
120860
  const mergedCtx = getSectionCtx();
120857
- return !isEmpty(crmShape.value) ? merge$1({}, crmShape.value, mergedCtx) : mergedCtx;
120861
+ const defaultShape = getDefaultCrmShape({
120862
+ myUser: myUser.value,
120863
+ showDefault: true
120864
+ });
120865
+ return mergeWith({}, defaultShape, crmShape.value ?? {}, mergedCtx, (_objValue, srcValue) => {
120866
+ if (Array.isArray(srcValue)) {
120867
+ return srcValue;
120868
+ }
120869
+ return void 0;
120870
+ });
120858
120871
  });
120859
120872
  return {
120860
- getSectionCtx,
120861
- crmShapeWithSectionCtx
120873
+ fullContext
120862
120874
  };
120863
120875
  }
120864
120876
 
@@ -120904,10 +120916,10 @@ const _sfc_main$4j = /* @__PURE__ */ defineComponent({
120904
120916
  __name: "SelectionPanel",
120905
120917
  setup(__props) {
120906
120918
  useCssVars((_ctx) => ({
120907
- "6fe3245a": unref(themeVars).text,
120908
- "6fdae5fe": unref(themeVars).base,
120909
- "85f799be": unref(themeVars).primary6,
120910
- "85f799c4": unref(themeVars).primary3
120919
+ "7e857d3a": unref(themeVars).text,
120920
+ "7e7d3ede": unref(themeVars).base,
120921
+ "e1e1c7fe": unref(themeVars).primary6,
120922
+ "e1e1c804": unref(themeVars).primary3
120911
120923
  }));
120912
120924
  const { t } = useI18n();
120913
120925
  const { renderContentType, isFileExpired, isFileExpiring } = useFileDisplayHelpers();
@@ -120929,7 +120941,7 @@ const _sfc_main$4j = /* @__PURE__ */ defineComponent({
120929
120941
  "launchDarkly",
120930
120942
  computed(() => ({}))
120931
120943
  );
120932
- const { crmShapeWithSectionCtx } = useCanvasContext();
120944
+ const { fullContext } = useCanvasContext();
120933
120945
  const isCrmShapeEnabled = computed(() => launchDarkly.value?.enable_crm_shape_for_external_links ?? false);
120934
120946
  const draggableItems = computed({
120935
120947
  get: () => isDragNDropEnabled.value ? addedItems.value : selectedItems.value,
@@ -120944,7 +120956,7 @@ const _sfc_main$4j = /* @__PURE__ */ defineComponent({
120944
120956
  function getParsedUrl(url) {
120945
120957
  if (!url || !isCrmShapeEnabled.value) return url;
120946
120958
  try {
120947
- return renderTemplate(url, crmShapeWithSectionCtx.value);
120959
+ return renderTemplate(url, fullContext.value);
120948
120960
  } catch (error) {
120949
120961
  console.warn("Failed to parse template in external URL, using original URL:", error);
120950
120962
  return url;
@@ -121248,7 +121260,7 @@ const _sfc_main$4j = /* @__PURE__ */ defineComponent({
121248
121260
  }
121249
121261
  });
121250
121262
 
121251
- const SelectionPanel = /* @__PURE__ */ _export_sfc(_sfc_main$4j, [["__scopeId", "data-v-aa03fa77"]]);
121263
+ const SelectionPanel = /* @__PURE__ */ _export_sfc(_sfc_main$4j, [["__scopeId", "data-v-05db071e"]]);
121252
121264
 
121253
121265
  const _hoisted_1$3q = { class: "flex justify-between gap-2 items-center truncate py-1" };
121254
121266
  const _hoisted_2$2z = {
@@ -123780,13 +123792,13 @@ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
123780
123792
  computed(() => ({}))
123781
123793
  );
123782
123794
  const { crmShape } = useCrmShape();
123783
- const { crmShapeWithSectionCtx } = useCanvasContext();
123795
+ const { fullContext } = useCanvasContext();
123784
123796
  const isCrmShapeEnabled = computed(() => launchDarkly.value?.enable_crm_shape_for_external_links ?? false);
123785
123797
  const parsedUrl = computed(() => {
123786
123798
  if (!url.value.trim()) return url.value;
123787
123799
  if (!isCrmShapeEnabled.value) return url.value;
123788
123800
  try {
123789
- return renderTemplate(url.value, crmShapeWithSectionCtx.value);
123801
+ return renderTemplate(url.value, fullContext.value);
123790
123802
  } catch (error) {
123791
123803
  console.error("Error parsing URL template:", error);
123792
123804
  return url.value;
@@ -123892,7 +123904,7 @@ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
123892
123904
  }
123893
123905
  });
123894
123906
 
123895
- const ExternalLinks = /* @__PURE__ */ _export_sfc(_sfc_main$45, [["__scopeId", "data-v-1287b675"]]);
123907
+ const ExternalLinks = /* @__PURE__ */ _export_sfc(_sfc_main$45, [["__scopeId", "data-v-ba7b39ff"]]);
123896
123908
 
123897
123909
  const _hoisted_1$3d = { class: "mr-3 h-full" };
123898
123910
  const _hoisted_2$2m = { class: "flex flex-col gap-3 mb-3" };
@@ -147978,7 +147990,7 @@ const _sfc_main$2i = /* @__PURE__ */ defineComponent({
147978
147990
  } = useCanvas$1();
147979
147991
  const { discardOverridesConfirmationOptions, getComponentOverrides } = useCanvasSectionOverrides();
147980
147992
  const { getDerivedStyleFromFeatureFlags } = useComponentStyle(componentNode);
147981
- const { crmShapeWithSectionCtx } = useCanvasContext();
147993
+ const { fullContext } = useCanvasContext();
147982
147994
  const { setContentSelectorMode } = useContentSelector();
147983
147995
  const confirmation = useConfirmation();
147984
147996
  const themeVars = useThemeVars();
@@ -148131,7 +148143,7 @@ const _sfc_main$2i = /* @__PURE__ */ defineComponent({
148131
148143
  try {
148132
148144
  return {
148133
148145
  ...value,
148134
- external_url: renderTemplate(value.external_url, crmShapeWithSectionCtx.value)
148146
+ external_url: renderTemplate(value.external_url, fullContext.value)
148135
148147
  };
148136
148148
  } catch (error) {
148137
148149
  console.warn("Failed to parse template in external URL, using original URL:", error);
@@ -148649,7 +148661,7 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
148649
148661
  setCanvasMetadata,
148650
148662
  isImpact
148651
148663
  } = useCanvas$1();
148652
- const { crmShapeWithSectionCtx } = useCanvasContext();
148664
+ const { fullContext } = useCanvasContext();
148653
148665
  const { coreRestApiAxios } = useCoreApi();
148654
148666
  const { applyPrintModeToElement } = usePrintMode();
148655
148667
  const { discardOverridesConfirmationOptions, getComponentOverrides } = useCanvasSectionOverrides();
@@ -148706,7 +148718,7 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
148706
148718
  const memoizedModelValue = computed(() => getModelValue(computedTextProps.value.data?.content));
148707
148719
  function getModelValue(value = "") {
148708
148720
  if (!shouldInterpolate.value || !value.trim()) return value;
148709
- return renderTemplate(value, crmShapeWithSectionCtx.value);
148721
+ return renderTemplate(value, fullContext.value);
148710
148722
  }
148711
148723
  const debouncedUpdateNodeData = debounce((data2, nodeId, sectionId) => {
148712
148724
  return updateNodeData(data2, nodeId, sectionId);
@@ -148814,7 +148826,7 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
148814
148826
  );
148815
148827
  applyPrintModeToElement(contentElement.value, () => {
148816
148828
  const content = computedTextProps.value.data?.content || "";
148817
- return shouldInterpolate.value ? renderTemplate(content, crmShapeWithSectionCtx.value) : content;
148829
+ return shouldInterpolate.value ? renderTemplate(content, fullContext.value) : content;
148818
148830
  });
148819
148831
  if (enableScaleContent && spanStyles) {
148820
148832
  setTimeout(() => {
@@ -148926,7 +148938,7 @@ const _sfc_main$2h = /* @__PURE__ */ defineComponent({
148926
148938
  }
148927
148939
  });
148928
148940
 
148929
- const Text = /* @__PURE__ */ _export_sfc(_sfc_main$2h, [["__scopeId", "data-v-b2424519"]]);
148941
+ const Text = /* @__PURE__ */ _export_sfc(_sfc_main$2h, [["__scopeId", "data-v-73a884c3"]]);
148930
148942
 
148931
148943
  const _hoisted_1$1Q = { class: "absolute top-2 right-2 flex items-center gap-1 z-10" };
148932
148944
  const _hoisted_2$1m = { class: "text-xs" };