@syntrologie/runtime-sdk 2.4.0-canary.22 → 2.4.0-canary.23

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.
@@ -16808,24 +16808,67 @@ var SyntrologieSDK = (() => {
16808
16808
  return { cleanup: () => {
16809
16809
  } };
16810
16810
  }
16811
- const duration = action.duration ?? 2e3;
16812
- if (!document.querySelector("[data-syntro-pulse-styles]")) {
16813
- const style = document.createElement("style");
16814
- style.setAttribute("data-syntro-pulse-styles", "");
16811
+ const duration = action.duration ?? 4e3;
16812
+ await new Promise((resolve) => requestAnimationFrame(resolve));
16813
+ const parseHex = (hex) => ({
16814
+ r: parseInt(hex.slice(1, 3), 16),
16815
+ g: parseInt(hex.slice(3, 5), 16),
16816
+ b: parseInt(hex.slice(5, 7), 16)
16817
+ });
16818
+ const fallback = { r: 79, g: 70, b: 229 };
16819
+ let primary = fallback;
16820
+ let secondary = null;
16821
+ try {
16822
+ const styles2 = getComputedStyle(context.overlayRoot);
16823
+ const pHex = styles2.getPropertyValue("--sc-color-primary")?.trim();
16824
+ const sHex = styles2.getPropertyValue("--sc-color-primary-hover")?.trim();
16825
+ if (pHex?.startsWith("#") && pHex.length >= 7) {
16826
+ primary = parseHex(pHex);
16827
+ }
16828
+ if (sHex?.startsWith("#") && sHex.length >= 7) {
16829
+ secondary = parseHex(sHex);
16830
+ }
16831
+ } catch {
16832
+ }
16833
+ const existing = document.querySelector("[data-syntro-pulse-styles]");
16834
+ if (existing)
16835
+ existing.remove();
16836
+ const style = document.createElement("style");
16837
+ style.setAttribute("data-syntro-pulse-styles", "");
16838
+ const { r: pr2, g: pg, b: pb } = primary;
16839
+ if (secondary) {
16840
+ const { r: sr2, g: sg, b: sb } = secondary;
16841
+ style.textContent = `
16842
+ @keyframes syntro-pulse-anim {
16843
+ 0%, 100% {
16844
+ box-shadow: 0 0 0 0 rgba(${pr2}, ${pg}, ${pb}, 0.35);
16845
+ }
16846
+ 25% {
16847
+ box-shadow: 0 0 0 12px rgba(${pr2}, ${pg}, ${pb}, 0);
16848
+ }
16849
+ 50% {
16850
+ box-shadow: 0 0 0 0 rgba(${sr2}, ${sg}, ${sb}, 0.35);
16851
+ }
16852
+ 75% {
16853
+ box-shadow: 0 0 0 12px rgba(${sr2}, ${sg}, ${sb}, 0);
16854
+ }
16855
+ }
16856
+ `;
16857
+ } else {
16815
16858
  style.textContent = `
16816
16859
  @keyframes syntro-pulse-anim {
16817
16860
  0%, 100% {
16818
- box-shadow: 0 0 0 0 rgba(79, 70, 229, 0.4);
16861
+ box-shadow: 0 0 0 0 rgba(${pr2}, ${pg}, ${pb}, 0.35);
16819
16862
  }
16820
16863
  50% {
16821
- box-shadow: 0 0 0 8px rgba(79, 70, 229, 0);
16864
+ box-shadow: 0 0 0 12px rgba(${pr2}, ${pg}, ${pb}, 0);
16822
16865
  }
16823
16866
  }
16824
16867
  `;
16825
- document.head.appendChild(style);
16826
16868
  }
16869
+ document.head.appendChild(style);
16827
16870
  const originalAnimation = anchorEl.style.animation;
16828
- anchorEl.style.animation = "syntro-pulse-anim 1s cubic-bezier(0.4, 0, 0.6, 1) infinite";
16871
+ anchorEl.style.animation = "syntro-pulse-anim 2.5s cubic-bezier(0.4, 0, 0.6, 1) infinite";
16829
16872
  anchorEl.setAttribute("data-syntro-pulse", "true");
16830
16873
  const timeoutId = setTimeout(() => {
16831
16874
  anchorEl.style.animation = originalAnimation;
@@ -16855,6 +16898,14 @@ var SyntrologieSDK = (() => {
16855
16898
  return { cleanup: () => {
16856
16899
  } };
16857
16900
  }
16901
+ let badgeColor = "#4f46e5";
16902
+ try {
16903
+ const primary = getComputedStyle(context.overlayRoot).getPropertyValue("--sc-color-primary")?.trim();
16904
+ if (primary?.startsWith("#") && primary.length >= 7) {
16905
+ badgeColor = primary;
16906
+ }
16907
+ } catch {
16908
+ }
16858
16909
  const badge2 = document.createElement("div");
16859
16910
  badge2.textContent = action.content;
16860
16911
  badge2.setAttribute("data-syntro-badge", action.anchorId.selector);
@@ -16865,7 +16916,7 @@ var SyntrologieSDK = (() => {
16865
16916
  fontWeight: "600",
16866
16917
  lineHeight: "1",
16867
16918
  color: "white",
16868
- background: "var(--syntro-accent, #4f46e5)",
16919
+ background: badgeColor,
16869
16920
  borderRadius: "9999px",
16870
16921
  pointerEvents: "none",
16871
16922
  zIndex: "2147483646",
@@ -18047,7 +18098,7 @@ var SyntrologieSDK = (() => {
18047
18098
  margin: "0 auto"
18048
18099
  },
18049
18100
  searchWrapper: {
18050
- marginBottom: "16px"
18101
+ marginBottom: "8px"
18051
18102
  },
18052
18103
  searchInput: {
18053
18104
  width: "100%",
@@ -18060,22 +18111,22 @@ var SyntrologieSDK = (() => {
18060
18111
  accordion: {
18061
18112
  display: "flex",
18062
18113
  flexDirection: "column",
18063
- gap: "8px"
18114
+ gap: "var(--sc-content-item-gap, 6px)"
18064
18115
  },
18065
18116
  item: {
18066
- borderRadius: "8px",
18117
+ borderRadius: "var(--sc-content-border-radius, 8px)",
18067
18118
  overflow: "hidden",
18068
18119
  transition: "box-shadow 0.15s ease"
18069
18120
  },
18070
18121
  question: {
18071
18122
  width: "100%",
18072
- padding: "16px 20px",
18123
+ padding: "var(--sc-content-item-padding, 12px 16px)",
18073
18124
  display: "flex",
18074
18125
  alignItems: "center",
18075
18126
  justifyContent: "space-between",
18076
18127
  border: "none",
18077
18128
  cursor: "pointer",
18078
- fontSize: "15px",
18129
+ fontSize: "var(--sc-content-item-font-size, 15px)",
18079
18130
  fontWeight: 500,
18080
18131
  textAlign: "left",
18081
18132
  transition: "background-color 0.15s ease"
@@ -18085,8 +18136,8 @@ var SyntrologieSDK = (() => {
18085
18136
  transition: "transform 0.2s ease"
18086
18137
  },
18087
18138
  answer: {
18088
- padding: "0 20px 16px 20px",
18089
- fontSize: "14px",
18139
+ padding: "var(--sc-content-body-padding, 0 16px 12px 16px)",
18140
+ fontSize: "var(--sc-content-body-font-size, 14px)",
18090
18141
  lineHeight: 1.6,
18091
18142
  overflow: "hidden",
18092
18143
  transition: "max-height 0.2s ease, padding 0.2s ease"
@@ -18102,12 +18153,12 @@ var SyntrologieSDK = (() => {
18102
18153
  marginBottom: "8px"
18103
18154
  },
18104
18155
  categoryHeader: {
18105
- fontSize: "13px",
18156
+ fontSize: "var(--sc-content-category-font-size, 12px)",
18106
18157
  fontWeight: 700,
18107
18158
  textTransform: "uppercase",
18108
18159
  letterSpacing: "0.05em",
18109
- padding: "12px 4px 6px 4px",
18110
- marginTop: "8px"
18160
+ padding: "var(--sc-content-category-padding, 8px 4px 4px 4px)",
18161
+ marginTop: "var(--sc-content-category-gap, 4px)"
18111
18162
  },
18112
18163
  feedback: {
18113
18164
  display: "flex",
@@ -18145,8 +18196,8 @@ var SyntrologieSDK = (() => {
18145
18196
  var themeStyles = {
18146
18197
  light: {
18147
18198
  container: {
18148
- backgroundColor: base.white,
18149
- color: slateGrey[1]
18199
+ backgroundColor: "transparent",
18200
+ color: "inherit"
18150
18201
  },
18151
18202
  searchInput: {
18152
18203
  backgroundColor: slateGrey[12],
@@ -18154,21 +18205,21 @@ var SyntrologieSDK = (() => {
18154
18205
  color: slateGrey[1]
18155
18206
  },
18156
18207
  item: {
18157
- backgroundColor: slateGrey[12],
18158
- border: `1px solid ${slateGrey[11]}`
18208
+ backgroundColor: "var(--sc-content-background)",
18209
+ border: "var(--sc-content-border)"
18159
18210
  },
18160
18211
  itemExpanded: {
18161
18212
  boxShadow: "0 4px 12px rgba(0, 0, 0, 0.08)"
18162
18213
  },
18163
18214
  question: {
18164
18215
  backgroundColor: "transparent",
18165
- color: slateGrey[1]
18216
+ color: "var(--sc-content-text-color)"
18166
18217
  },
18167
18218
  questionHover: {
18168
- backgroundColor: slateGrey[12]
18219
+ backgroundColor: "var(--sc-content-background-hover)"
18169
18220
  },
18170
18221
  answer: {
18171
- color: slateGrey[6]
18222
+ color: "var(--sc-content-text-secondary-color)"
18172
18223
  },
18173
18224
  category: {
18174
18225
  backgroundColor: purple[8],
@@ -18186,8 +18237,8 @@ var SyntrologieSDK = (() => {
18186
18237
  },
18187
18238
  dark: {
18188
18239
  container: {
18189
- backgroundColor: slateGrey[1],
18190
- color: slateGrey[12]
18240
+ backgroundColor: "transparent",
18241
+ color: "inherit"
18191
18242
  },
18192
18243
  searchInput: {
18193
18244
  backgroundColor: slateGrey[3],
@@ -18195,21 +18246,21 @@ var SyntrologieSDK = (() => {
18195
18246
  color: slateGrey[12]
18196
18247
  },
18197
18248
  item: {
18198
- backgroundColor: slateGrey[3],
18199
- border: `1px solid ${slateGrey[5]}`
18249
+ backgroundColor: "var(--sc-content-background)",
18250
+ border: "var(--sc-content-border)"
18200
18251
  },
18201
18252
  itemExpanded: {
18202
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.3)"
18253
+ boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)"
18203
18254
  },
18204
18255
  question: {
18205
18256
  backgroundColor: "transparent",
18206
- color: slateGrey[12]
18257
+ color: "var(--sc-content-text-color)"
18207
18258
  },
18208
18259
  questionHover: {
18209
- backgroundColor: slateGrey[5]
18260
+ backgroundColor: "var(--sc-content-background-hover)"
18210
18261
  },
18211
18262
  answer: {
18212
- color: slateGrey[8]
18263
+ color: "var(--sc-content-text-secondary-color)"
18213
18264
  },
18214
18265
  category: {
18215
18266
  backgroundColor: purple[0],
@@ -18580,18 +18631,17 @@ var SyntrologieSDK = (() => {
18580
18631
  }
18581
18632
  var baseStyles2 = {
18582
18633
  container: {
18583
- fontFamily: "system-ui, -apple-system, sans-serif",
18584
- padding: "8px",
18634
+ fontFamily: "var(--sc-font-family, system-ui, -apple-system, sans-serif)",
18585
18635
  maxWidth: "100%",
18586
18636
  overflow: "hidden"
18587
18637
  },
18588
18638
  accordion: {
18589
18639
  display: "flex",
18590
18640
  flexDirection: "column",
18591
- gap: "4px"
18641
+ gap: "var(--sc-content-item-gap, 6px)"
18592
18642
  },
18593
18643
  item: {
18594
- borderRadius: "8px",
18644
+ borderRadius: "var(--sc-content-border-radius, 8px)",
18595
18645
  overflow: "hidden",
18596
18646
  transition: "box-shadow 0.2s ease"
18597
18647
  },
@@ -18600,20 +18650,21 @@ var SyntrologieSDK = (() => {
18600
18650
  alignItems: "center",
18601
18651
  gap: "8px",
18602
18652
  width: "100%",
18603
- padding: "12px 16px",
18653
+ padding: "var(--sc-content-item-padding, 12px 16px)",
18604
18654
  border: "none",
18605
18655
  cursor: "pointer",
18606
- fontSize: "14px",
18656
+ fontSize: "var(--sc-content-item-font-size, 15px)",
18607
18657
  fontWeight: 500,
18608
18658
  fontFamily: "inherit",
18609
18659
  textAlign: "left",
18610
18660
  transition: "background-color 0.15s ease"
18611
18661
  },
18612
18662
  chevron: {
18613
- fontSize: "10px",
18663
+ fontSize: "20px",
18614
18664
  transition: "transform 0.2s ease",
18615
18665
  marginLeft: "auto",
18616
- flexShrink: 0
18666
+ flexShrink: 0,
18667
+ color: "var(--sc-content-chevron-color, currentColor)"
18617
18668
  },
18618
18669
  icon: {
18619
18670
  fontSize: "16px",
@@ -18622,10 +18673,10 @@ var SyntrologieSDK = (() => {
18622
18673
  body: {
18623
18674
  overflow: "hidden",
18624
18675
  transition: "max-height 0.25s ease, padding-bottom 0.25s ease",
18625
- padding: "0 16px"
18676
+ padding: "var(--sc-content-body-padding, 0 16px 12px 16px)"
18626
18677
  },
18627
18678
  description: {
18628
- fontSize: "13px",
18679
+ fontSize: "var(--sc-content-body-font-size, 14px)",
18629
18680
  lineHeight: "1.5",
18630
18681
  margin: 0
18631
18682
  },
@@ -18644,11 +18695,11 @@ var SyntrologieSDK = (() => {
18644
18695
  transition: "background-color 0.15s ease"
18645
18696
  },
18646
18697
  categoryHeader: {
18647
- fontSize: "11px",
18698
+ fontSize: "var(--sc-content-category-font-size, 12px)",
18648
18699
  fontWeight: 600,
18649
18700
  textTransform: "uppercase",
18650
18701
  letterSpacing: "0.05em",
18651
- padding: "12px 4px 4px"
18702
+ padding: "var(--sc-content-category-padding, 8px 4px 4px 4px)"
18652
18703
  },
18653
18704
  emptyState: {
18654
18705
  fontSize: "13px",
@@ -18659,29 +18710,29 @@ var SyntrologieSDK = (() => {
18659
18710
  var themeStyles2 = {
18660
18711
  light: {
18661
18712
  container: {
18662
- backgroundColor: base.white,
18663
- color: slateGrey[1]
18713
+ backgroundColor: "transparent",
18714
+ color: "inherit"
18664
18715
  },
18665
18716
  item: {
18666
- backgroundColor: slateGrey[12],
18667
- border: `1px solid ${slateGrey[11]}`
18717
+ backgroundColor: "var(--sc-content-background)",
18718
+ border: "var(--sc-content-border)"
18668
18719
  },
18669
18720
  itemExpanded: {
18670
18721
  boxShadow: "0 4px 12px rgba(0, 0, 0, 0.08)"
18671
18722
  },
18672
18723
  header: {
18673
18724
  backgroundColor: "transparent",
18674
- color: slateGrey[1]
18725
+ color: "var(--sc-content-text-color)"
18675
18726
  },
18676
18727
  headerHover: {
18677
- backgroundColor: slateGrey[12]
18728
+ backgroundColor: "var(--sc-content-background-hover)"
18678
18729
  },
18679
18730
  body: {
18680
- color: slateGrey[6]
18731
+ color: "var(--sc-content-text-secondary-color)"
18681
18732
  },
18682
18733
  linkButton: {
18683
- backgroundColor: purple[8],
18684
- color: purple[2]
18734
+ backgroundColor: "var(--sc-color-primary, #6366f1)",
18735
+ color: "#ffffff"
18685
18736
  },
18686
18737
  categoryHeader: {
18687
18738
  color: slateGrey[7]
@@ -18692,29 +18743,29 @@ var SyntrologieSDK = (() => {
18692
18743
  },
18693
18744
  dark: {
18694
18745
  container: {
18695
- backgroundColor: slateGrey[1],
18696
- color: slateGrey[12]
18746
+ backgroundColor: "transparent",
18747
+ color: "inherit"
18697
18748
  },
18698
18749
  item: {
18699
- backgroundColor: slateGrey[3],
18700
- border: `1px solid ${slateGrey[5]}`
18750
+ backgroundColor: "var(--sc-content-background)",
18751
+ border: "var(--sc-content-border)"
18701
18752
  },
18702
18753
  itemExpanded: {
18703
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.3)"
18754
+ boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)"
18704
18755
  },
18705
18756
  header: {
18706
18757
  backgroundColor: "transparent",
18707
- color: slateGrey[12]
18758
+ color: "var(--sc-content-text-color)"
18708
18759
  },
18709
18760
  headerHover: {
18710
- backgroundColor: slateGrey[5]
18761
+ backgroundColor: "var(--sc-content-background-hover)"
18711
18762
  },
18712
18763
  body: {
18713
- color: slateGrey[8]
18764
+ color: "var(--sc-content-text-secondary-color)"
18714
18765
  },
18715
18766
  linkButton: {
18716
- backgroundColor: purple[0],
18717
- color: purple[6]
18767
+ backgroundColor: "var(--sc-color-primary, #6366f1)",
18768
+ color: "#ffffff"
18718
18769
  },
18719
18770
  categoryHeader: {
18720
18771
  color: slateGrey[8]
@@ -18724,14 +18775,15 @@ var SyntrologieSDK = (() => {
18724
18775
  }
18725
18776
  }
18726
18777
  };
18727
- function NavTipItem({ item, isExpanded, onToggle, onNavigate, theme }) {
18778
+ function NavTipItem({ item, isExpanded, isLast, onToggle, onNavigate, theme }) {
18728
18779
  const [isHovered, setIsHovered] = (0, import_react5.useState)(false);
18729
18780
  const colors = themeStyles2[theme];
18730
18781
  const { title, description, href, icon, external } = item.config;
18731
18782
  const itemStyle = {
18732
18783
  ...baseStyles2.item,
18733
18784
  ...colors.item,
18734
- ...isExpanded ? colors.itemExpanded : {}
18785
+ ...isExpanded ? colors.itemExpanded : {},
18786
+ ...!isLast ? { borderBottom: "var(--sc-content-item-divider, none)" } : {}
18735
18787
  };
18736
18788
  const headerStyle = {
18737
18789
  ...baseStyles2.header,
@@ -18740,7 +18792,7 @@ var SyntrologieSDK = (() => {
18740
18792
  };
18741
18793
  const chevronStyle = {
18742
18794
  ...baseStyles2.chevron,
18743
- transform: isExpanded ? "rotate(180deg)" : "rotate(0deg)"
18795
+ transform: isExpanded ? "rotate(90deg)" : "rotate(0deg)"
18744
18796
  };
18745
18797
  const bodyStyle = {
18746
18798
  ...baseStyles2.body,
@@ -18755,7 +18807,7 @@ var SyntrologieSDK = (() => {
18755
18807
  onNavigate(href, external ?? false);
18756
18808
  }
18757
18809
  };
18758
- return (0, import_jsx_runtime5.jsxs)("div", { style: itemStyle, "data-nav-tip-id": item.config.id, children: [(0, import_jsx_runtime5.jsxs)("button", { type: "button", style: headerStyle, onClick: onToggle, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), "aria-expanded": isExpanded, children: [icon && (0, import_jsx_runtime5.jsx)("span", { style: baseStyles2.icon, children: icon }), (0, import_jsx_runtime5.jsx)("span", { children: title }), (0, import_jsx_runtime5.jsx)("span", { style: chevronStyle, children: "\u25BC" })] }), (0, import_jsx_runtime5.jsxs)("div", { style: bodyStyle, "aria-hidden": !isExpanded, children: [(0, import_jsx_runtime5.jsx)("p", { style: baseStyles2.description, children: description }), href && (0, import_jsx_runtime5.jsxs)("a", { href, onClick: handleLinkClick, style: { ...baseStyles2.linkButton, ...colors.linkButton }, target: external ? "_blank" : void 0, rel: external ? "noopener noreferrer" : void 0, children: ["Go ", external ? "\u2197" : "\u2192"] })] })] });
18810
+ return (0, import_jsx_runtime5.jsxs)("div", { style: itemStyle, "data-nav-tip-id": item.config.id, children: [(0, import_jsx_runtime5.jsxs)("button", { type: "button", style: headerStyle, onClick: onToggle, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), "aria-expanded": isExpanded, children: [icon && (0, import_jsx_runtime5.jsx)("span", { style: baseStyles2.icon, children: icon }), (0, import_jsx_runtime5.jsx)("span", { children: title }), (0, import_jsx_runtime5.jsx)("span", { style: chevronStyle, children: "\u203A" })] }), (0, import_jsx_runtime5.jsxs)("div", { style: bodyStyle, "aria-hidden": !isExpanded, children: [(0, import_jsx_runtime5.jsx)("p", { style: baseStyles2.description, children: description }), href && (0, import_jsx_runtime5.jsxs)("a", { href, onClick: handleLinkClick, style: { ...baseStyles2.linkButton, ...colors.linkButton }, target: external ? "_blank" : void 0, rel: external ? "noopener noreferrer" : void 0, children: ["Go ", external ? "\u2197" : "\u2192"] })] })] });
18759
18811
  }
18760
18812
  function NavWidget({ config, runtime: runtime7, instanceId }) {
18761
18813
  const [renderTick, forceUpdate] = (0, import_react5.useReducer)((x2) => x2 + 1, 0);
@@ -18867,7 +18919,7 @@ var SyntrologieSDK = (() => {
18867
18919
  ...baseStyles2.emptyState,
18868
18920
  ...themeStyles2[resolvedTheme].emptyState
18869
18921
  };
18870
- const renderItems = (items) => items.map((tip) => (0, import_jsx_runtime5.jsx)(NavTipItem, { item: tip, isExpanded: expandedIds.has(tip.config.id), onToggle: () => handleToggle(tip.config.id), onNavigate: handleNavigate, theme: resolvedTheme }, tip.config.id));
18922
+ const renderItems = (items) => items.map((tip, index2) => (0, import_jsx_runtime5.jsx)(NavTipItem, { item: tip, isExpanded: expandedIds.has(tip.config.id), isLast: index2 === items.length - 1, onToggle: () => handleToggle(tip.config.id), onNavigate: handleNavigate, theme: resolvedTheme }, tip.config.id));
18871
18923
  if (visibleTips.length === 0) {
18872
18924
  return (0, import_jsx_runtime5.jsx)("div", { style: containerStyle, "data-adaptive-id": instanceId, "data-adaptive-type": "adaptive-nav", children: (0, import_jsx_runtime5.jsx)("div", { style: emptyStateStyle, children: "No navigation tips available." }) });
18873
18925
  }
@@ -19166,7 +19218,7 @@ var SyntrologieSDK = (() => {
19166
19218
  }
19167
19219
 
19168
19220
  // src/version.ts
19169
- var SDK_VERSION = "2.4.0-canary.22";
19221
+ var SDK_VERSION = "2.4.0-canary.23";
19170
19222
 
19171
19223
  // src/types.ts
19172
19224
  var SDK_SCHEMA_VERSION = "2.0";
@@ -20244,7 +20296,7 @@ var SyntrologieSDK = (() => {
20244
20296
  ]
20245
20297
  }
20246
20298
  ),
20247
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { height: "2px", background: "rgba(255, 255, 255, 0.06)" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
20299
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { style: { height: "2px", background: "rgba(0, 0, 0, 0.08)" }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
20248
20300
  "div",
20249
20301
  {
20250
20302
  className: "syntro-toast-progress",
@@ -20703,17 +20755,19 @@ var SyntrologieSDK = (() => {
20703
20755
  borderRadius: "12px",
20704
20756
  canvas: {
20705
20757
  position: "right",
20758
+ layout: "overlay",
20706
20759
  background: withAlpha(slateGrey[1], 0.6),
20707
20760
  blur: "blur(24px)",
20708
20761
  border: "none",
20709
- width: "clamp(320px, 16.666vw, 420px)"
20762
+ width: "clamp(380px, 25vw, 520px)"
20710
20763
  },
20711
20764
  launcher: {
20712
20765
  background: button.primary.backgroundDefault,
20713
20766
  backgroundHover: button.primary.backgroundHover,
20714
20767
  color: button.primary.icon,
20715
20768
  size: "56px",
20716
- shadow: `0 8px 32px ${withAlpha(slateGrey[0], 0.6)}`
20769
+ shadow: `0 8px 32px ${withAlpha(slateGrey[0], 0.6)}`,
20770
+ borderRadius: "9999px"
20717
20771
  },
20718
20772
  tile: {
20719
20773
  background: withAlpha(slateGrey[1], 0.6),
@@ -20724,11 +20778,17 @@ var SyntrologieSDK = (() => {
20724
20778
  titleColor: text.primary,
20725
20779
  textColor: text.secondary,
20726
20780
  iconBackground: `linear-gradient(135deg, ${brand[3]} 0%, ${brand[3]}cc 100%)`,
20727
- iconShadow: `0 2px 8px ${brand[3]}40`
20781
+ iconShadow: `0 2px 8px ${brand[3]}40`,
20782
+ headerPadding: "0.375rem 0.75rem",
20783
+ bodyPadding: "0 0.75rem 0.5rem",
20784
+ gap: "0.25rem"
20728
20785
  },
20729
20786
  overlay: {
20730
20787
  background: withAlpha(slateGrey[1], 0.6),
20731
20788
  textColor: text.primary,
20789
+ titleColor: text.primary,
20790
+ arrowColor: withAlpha(slateGrey[1], 0.6),
20791
+ arrowSize: "8px",
20732
20792
  border: "none",
20733
20793
  borderRadius: "0",
20734
20794
  scrimOpacity: "0",
@@ -20745,6 +20805,26 @@ var SyntrologieSDK = (() => {
20745
20805
  errorColor: red[4],
20746
20806
  iconBackground: withAlpha(brand[3], 0.15),
20747
20807
  progressGradient: `linear-gradient(90deg, ${brand[3]}, ${brand[4]})`
20808
+ },
20809
+ content: {
20810
+ background: withAlpha(slateGrey[3], 0.8),
20811
+ backgroundHover: withAlpha(slateGrey[5], 0.6),
20812
+ border: `1px solid ${withAlpha(slateGrey[5], 0.5)}`,
20813
+ borderRadius: "8px",
20814
+ textColor: text.primary,
20815
+ textSecondaryColor: text.secondary,
20816
+ itemDivider: "none",
20817
+ itemGap: "6px",
20818
+ itemPadding: "12px 16px",
20819
+ itemFontSize: "15px",
20820
+ bodyPadding: "0 16px 12px 16px",
20821
+ bodyFontSize: "14px",
20822
+ categoryPadding: "8px 4px 4px 4px",
20823
+ categoryGap: "4px",
20824
+ categoryFontSize: "12px",
20825
+ searchBackground: withAlpha(slateGrey[3], 0.8),
20826
+ searchColor: text.primary,
20827
+ chevronColor: "currentColor"
20748
20828
  }
20749
20829
  };
20750
20830
  var lightDefaults = {
@@ -20755,17 +20835,19 @@ var SyntrologieSDK = (() => {
20755
20835
  borderRadius: "12px",
20756
20836
  canvas: {
20757
20837
  position: "right",
20838
+ layout: "overlay",
20758
20839
  background: withAlpha(slateGrey[12], 0.7),
20759
20840
  blur: "blur(24px)",
20760
20841
  border: "none",
20761
- width: "clamp(320px, 16.666vw, 420px)"
20842
+ width: "clamp(380px, 25vw, 520px)"
20762
20843
  },
20763
20844
  launcher: {
20764
20845
  background: brand[3],
20765
20846
  backgroundHover: brand[2],
20766
20847
  color: "#ffffff",
20767
20848
  size: "56px",
20768
- shadow: "0 8px 32px rgba(0, 0, 0, 0.15)"
20849
+ shadow: "0 8px 32px rgba(0, 0, 0, 0.15)",
20850
+ borderRadius: "9999px"
20769
20851
  },
20770
20852
  tile: {
20771
20853
  background: withAlpha(slateGrey[12], 0.7),
@@ -20776,11 +20858,17 @@ var SyntrologieSDK = (() => {
20776
20858
  titleColor: slateGrey[1],
20777
20859
  textColor: slateGrey[6],
20778
20860
  iconBackground: `linear-gradient(135deg, ${brand[3]} 0%, ${brand[3]}cc 100%)`,
20779
- iconShadow: `0 2px 8px ${brand[3]}40`
20861
+ iconShadow: `0 2px 8px ${brand[3]}40`,
20862
+ headerPadding: "0.375rem 0.75rem",
20863
+ bodyPadding: "0 0.75rem 0.5rem",
20864
+ gap: "0.25rem"
20780
20865
  },
20781
20866
  overlay: {
20782
20867
  background: withAlpha(slateGrey[12], 0.7),
20783
20868
  textColor: slateGrey[1],
20869
+ titleColor: slateGrey[1],
20870
+ arrowColor: withAlpha(slateGrey[12], 0.7),
20871
+ arrowSize: "8px",
20784
20872
  border: "none",
20785
20873
  borderRadius: "0",
20786
20874
  scrimOpacity: "0",
@@ -20797,6 +20885,26 @@ var SyntrologieSDK = (() => {
20797
20885
  errorColor: red[4],
20798
20886
  iconBackground: withAlpha(brand[3], 0.1),
20799
20887
  progressGradient: `linear-gradient(90deg, ${brand[3]}, ${brand[2]})`
20888
+ },
20889
+ content: {
20890
+ background: withAlpha(slateGrey[12], 0.8),
20891
+ backgroundHover: withAlpha(slateGrey[11], 0.6),
20892
+ border: `1px solid ${slateGrey[11]}`,
20893
+ borderRadius: "8px",
20894
+ textColor: slateGrey[1],
20895
+ textSecondaryColor: slateGrey[6],
20896
+ itemDivider: "none",
20897
+ itemGap: "6px",
20898
+ itemPadding: "12px 16px",
20899
+ itemFontSize: "15px",
20900
+ bodyPadding: "0 16px 12px 16px",
20901
+ bodyFontSize: "14px",
20902
+ categoryPadding: "8px 4px 4px 4px",
20903
+ categoryGap: "4px",
20904
+ categoryFontSize: "12px",
20905
+ searchBackground: slateGrey[12],
20906
+ searchColor: slateGrey[1],
20907
+ chevronColor: "currentColor"
20800
20908
  }
20801
20909
  };
20802
20910
  function mergeThemeConfig(customer) {
@@ -20811,7 +20919,8 @@ var SyntrologieSDK = (() => {
20811
20919
  launcher: { ...base2.launcher, ...customer.launcher },
20812
20920
  tile: { ...base2.tile, ...customer.tile },
20813
20921
  overlay: { ...base2.overlay, ...customer.overlay },
20814
- notification: { ...base2.notification, ...customer.notification }
20922
+ notification: { ...base2.notification, ...customer.notification },
20923
+ content: { ...base2.content, ...customer.content }
20815
20924
  };
20816
20925
  }
20817
20926
  function mergeThemeWithWorkspace(workspaceTheme, configTheme) {
@@ -20831,10 +20940,18 @@ var SyntrologieSDK = (() => {
20831
20940
  ...base2.notification,
20832
20941
  ...workspaceTheme.notification,
20833
20942
  ...configTheme.notification
20834
- }
20943
+ },
20944
+ content: { ...base2.content, ...workspaceTheme.content, ...configTheme.content }
20835
20945
  };
20836
20946
  }
20837
- var ELEMENT_SECTIONS = ["canvas", "launcher", "tile", "overlay", "notification"];
20947
+ var ELEMENT_SECTIONS = [
20948
+ "canvas",
20949
+ "launcher",
20950
+ "tile",
20951
+ "overlay",
20952
+ "notification",
20953
+ "content"
20954
+ ];
20838
20955
  function flattenThemeConfig(config) {
20839
20956
  const vars = {};
20840
20957
  if (config.fontFamily) vars["--sc-font-family"] = config.fontFamily;
@@ -21049,6 +21166,7 @@ ${cssRules}
21049
21166
  onToggle,
21050
21167
  telemetry,
21051
21168
  launcherLabel: _launcherLabel = "Adaptives",
21169
+ launcherIcon,
21052
21170
  launcherAnimate = false,
21053
21171
  launcherAnimationStyle: _launcherAnimationStyle = "pulse",
21054
21172
  notificationCount: _notificationCount,
@@ -21191,7 +21309,37 @@ ${cssRules}
21191
21309
  );
21192
21310
  const isFocused = displayMode === "focused";
21193
21311
  const isRight = config.canvas.position === "right";
21312
+ const isPush = config.canvas.layout === "push";
21313
+ const containerRef = (0, import_react12.useRef)(null);
21194
21314
  const zIndex = 2147483600;
21315
+ (0, import_react12.useEffect)(() => {
21316
+ if (!isPush) return;
21317
+ const root = document.documentElement;
21318
+ const prop = isRight ? "marginRight" : "marginLeft";
21319
+ const prevTransition = root.style.transition;
21320
+ root.style.transition = `${prop} 340ms cubic-bezier(0.16, 1, 0.3, 1)`;
21321
+ if (isOpen) {
21322
+ const width = containerRef.current?.offsetWidth ?? 380;
21323
+ root.style[prop] = `${width}px`;
21324
+ } else {
21325
+ root.style[prop] = "0px";
21326
+ }
21327
+ return () => {
21328
+ root.style[prop] = "";
21329
+ root.style.transition = prevTransition;
21330
+ };
21331
+ }, [isPush, isOpen, isRight]);
21332
+ (0, import_react12.useEffect)(() => {
21333
+ if (!isPush || !isOpen) return;
21334
+ const container = containerRef.current;
21335
+ if (!container) return;
21336
+ const prop = isRight ? "marginRight" : "marginLeft";
21337
+ const observer2 = new ResizeObserver(([entry]) => {
21338
+ document.documentElement.style[prop] = `${entry.contentRect.width}px`;
21339
+ });
21340
+ observer2.observe(container);
21341
+ return () => observer2.disconnect();
21342
+ }, [isPush, isOpen, isRight]);
21195
21343
  const containerStyle = {
21196
21344
  display: "flex",
21197
21345
  flexDirection: "column",
@@ -21239,7 +21387,7 @@ ${cssRules}
21239
21387
  zIndex
21240
21388
  },
21241
21389
  children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: wrapperStyle, children: [
21242
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { "data-shadow-canvas-id": "overlay-container", style: containerStyle, children: [
21390
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { ref: containerRef, "data-shadow-canvas-id": "overlay-container", style: containerStyle, children: [
21243
21391
  isFocused && canvasTitle && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("header", { style: { color: "white", padding: "1.5rem 1.5rem 0" }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
21244
21392
  "p",
21245
21393
  {
@@ -21364,7 +21512,7 @@ ${cssRules}
21364
21512
  justifyContent: "center",
21365
21513
  width: "var(--sc-launcher-size, 56px)",
21366
21514
  height: "var(--sc-launcher-size, 56px)",
21367
- borderRadius: "9999px",
21515
+ borderRadius: "var(--sc-launcher-border-radius, 9999px)",
21368
21516
  color: "var(--sc-launcher-color)",
21369
21517
  boxShadow: "var(--sc-launcher-shadow)",
21370
21518
  transition: dragRef.current ? "none" : "transform 0.2s ease, opacity 0.3s ease, background-color 0.2s ease",
@@ -21389,7 +21537,7 @@ ${cssRules}
21389
21537
  }
21390
21538
  },
21391
21539
  children: [
21392
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
21540
+ isOpen ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
21393
21541
  "svg",
21394
21542
  {
21395
21543
  width: "24",
@@ -21403,16 +21551,45 @@ ${cssRules}
21403
21551
  "aria-hidden": "true",
21404
21552
  focusable: "false",
21405
21553
  style: { transition: "transform 200ms ease" },
21406
- children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
21554
+ children: [
21407
21555
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { d: "M18 6L6 18" }),
21408
21556
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { d: "M6 6l12 12" })
21409
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
21557
+ ]
21558
+ }
21559
+ ) : launcherIcon ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
21560
+ "img",
21561
+ {
21562
+ src: launcherIcon,
21563
+ alt: "",
21564
+ "aria-hidden": "true",
21565
+ style: {
21566
+ width: "60%",
21567
+ height: "60%",
21568
+ objectFit: "contain",
21569
+ pointerEvents: "none"
21570
+ }
21571
+ }
21572
+ ) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
21573
+ "svg",
21574
+ {
21575
+ width: "24",
21576
+ height: "24",
21577
+ viewBox: "0 0 24 24",
21578
+ fill: "none",
21579
+ stroke: "currentColor",
21580
+ strokeWidth: "2",
21581
+ strokeLinecap: "round",
21582
+ strokeLinejoin: "round",
21583
+ "aria-hidden": "true",
21584
+ focusable: "false",
21585
+ style: { transition: "transform 200ms ease" },
21586
+ children: [
21410
21587
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { d: "M12 3l1.912 5.813a2 2 0 0 0 1.275 1.275L21 12l-5.813 1.912a2 2 0 0 0-1.275 1.275L12 21l-1.912-5.813a2 2 0 0 0-1.275-1.275L3 12l5.813-1.912a2 2 0 0 0 1.275-1.275L12 3Z" }),
21411
21588
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { d: "M5 3v4" }),
21412
21589
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { d: "M3 5h4" }),
21413
21590
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { d: "M19 17v4" }),
21414
21591
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("path", { d: "M17 19h4" })
21415
- ] })
21592
+ ]
21416
21593
  }
21417
21594
  ),
21418
21595
  !isOpen && notifications.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { style: { position: "absolute", top: -2, right: -2, pointerEvents: "none" }, children: [
@@ -35547,6 +35724,8 @@ ${cssRules}
35547
35724
  var TileZ = external_exports.object({
35548
35725
  id: external_exports.string(),
35549
35726
  title: external_exports.string().optional(),
35727
+ subtitle: external_exports.string().optional(),
35728
+ icon: external_exports.string().optional(),
35550
35729
  priority: external_exports.number().optional(),
35551
35730
  widget: external_exports.string(),
35552
35731
  props: external_exports.record(external_exports.unknown()).optional(),
@@ -35555,6 +35734,7 @@ ${cssRules}
35555
35734
  }).strict();
35556
35735
  var CanvasElementConfigZ = external_exports.object({
35557
35736
  position: external_exports.enum(["left", "right"]).optional(),
35737
+ layout: external_exports.enum(["overlay", "push"]).optional(),
35558
35738
  background: external_exports.string().optional(),
35559
35739
  blur: external_exports.string().optional(),
35560
35740
  border: external_exports.string().optional(),
@@ -35565,7 +35745,8 @@ ${cssRules}
35565
35745
  backgroundHover: external_exports.string().optional(),
35566
35746
  color: external_exports.string().optional(),
35567
35747
  size: external_exports.string().optional(),
35568
- shadow: external_exports.string().optional()
35748
+ shadow: external_exports.string().optional(),
35749
+ borderRadius: external_exports.string().optional()
35569
35750
  });
35570
35751
  var TileElementConfigZ = external_exports.object({
35571
35752
  background: external_exports.string().optional(),
@@ -35576,11 +35757,17 @@ ${cssRules}
35576
35757
  titleColor: external_exports.string().optional(),
35577
35758
  textColor: external_exports.string().optional(),
35578
35759
  iconBackground: external_exports.string().optional(),
35579
- iconShadow: external_exports.string().optional()
35760
+ iconShadow: external_exports.string().optional(),
35761
+ headerPadding: external_exports.string().optional(),
35762
+ bodyPadding: external_exports.string().optional(),
35763
+ gap: external_exports.string().optional()
35580
35764
  });
35581
35765
  var OverlayElementConfigZ = external_exports.object({
35582
35766
  background: external_exports.string().optional(),
35583
35767
  textColor: external_exports.string().optional(),
35768
+ titleColor: external_exports.string().optional(),
35769
+ arrowColor: external_exports.string().optional(),
35770
+ arrowSize: external_exports.string().optional(),
35584
35771
  border: external_exports.string().optional(),
35585
35772
  borderRadius: external_exports.string().optional(),
35586
35773
  scrimOpacity: external_exports.string().optional(),
@@ -35598,6 +35785,31 @@ ${cssRules}
35598
35785
  iconBackground: external_exports.string().optional(),
35599
35786
  progressGradient: external_exports.string().optional()
35600
35787
  });
35788
+ var ContentElementConfigZ = external_exports.object({
35789
+ background: external_exports.string().optional(),
35790
+ backgroundHover: external_exports.string().optional(),
35791
+ border: external_exports.string().optional(),
35792
+ borderRadius: external_exports.string().optional(),
35793
+ textColor: external_exports.string().optional(),
35794
+ textSecondaryColor: external_exports.string().optional(),
35795
+ // Accordion layout
35796
+ itemDivider: external_exports.string().optional(),
35797
+ itemGap: external_exports.string().optional(),
35798
+ itemPadding: external_exports.string().optional(),
35799
+ itemFontSize: external_exports.string().optional(),
35800
+ // Expanded content
35801
+ bodyPadding: external_exports.string().optional(),
35802
+ bodyFontSize: external_exports.string().optional(),
35803
+ // Category headers
35804
+ categoryPadding: external_exports.string().optional(),
35805
+ categoryGap: external_exports.string().optional(),
35806
+ categoryFontSize: external_exports.string().optional(),
35807
+ // Search
35808
+ searchBackground: external_exports.string().optional(),
35809
+ searchColor: external_exports.string().optional(),
35810
+ // Chevron
35811
+ chevronColor: external_exports.string().optional()
35812
+ });
35601
35813
  var CanvasThemeConfigZ = external_exports.object({
35602
35814
  mode: external_exports.enum(["dark", "light"]).optional(),
35603
35815
  fontFamily: external_exports.string().optional(),
@@ -35608,11 +35820,13 @@ ${cssRules}
35608
35820
  launcher: LauncherElementConfigZ.optional(),
35609
35821
  tile: TileElementConfigZ.optional(),
35610
35822
  overlay: OverlayElementConfigZ.optional(),
35611
- notification: NotificationElementConfigZ.optional()
35823
+ notification: NotificationElementConfigZ.optional(),
35824
+ content: ContentElementConfigZ.optional()
35612
35825
  }).strict();
35613
35826
  var LauncherConfigZ = external_exports.object({
35614
35827
  enabled: external_exports.boolean().optional(),
35615
35828
  label: external_exports.string().optional(),
35829
+ icon: external_exports.string().optional(),
35616
35830
  position: external_exports.string().optional(),
35617
35831
  animate: external_exports.boolean().optional(),
35618
35832
  animationStyle: external_exports.enum(["pulse", "bounce", "glow"]).optional(),
@@ -35631,8 +35845,7 @@ ${cssRules}
35631
35845
  }).strict();
35632
35846
 
35633
35847
  // src/actions/schema.ts
35634
- var ActionActivationZ = {
35635
- activation: ActivationConfigZ.optional(),
35848
+ var ActionTriggerZ = {
35636
35849
  triggerWhen: DecisionStrategyZ.nullable().optional()
35637
35850
  };
35638
35851
  var AnchorIdZ2 = external_exports.object({
@@ -35694,32 +35907,32 @@ ${cssRules}
35694
35907
  anchorId: AnchorIdZ2,
35695
35908
  text: external_exports.string(),
35696
35909
  label: external_exports.string().optional()
35697
- }).extend(ActionActivationZ).strict();
35910
+ }).extend(ActionTriggerZ).strict();
35698
35911
  var SetAttrZ = external_exports.object({
35699
35912
  kind: external_exports.literal("content:setAttr"),
35700
35913
  anchorId: AnchorIdZ2,
35701
35914
  attr: external_exports.string(),
35702
35915
  value: external_exports.string(),
35703
35916
  label: external_exports.string().optional()
35704
- }).extend(ActionActivationZ).strict();
35917
+ }).extend(ActionTriggerZ).strict();
35705
35918
  var AddClassZ = external_exports.object({
35706
35919
  kind: external_exports.literal("content:addClass"),
35707
35920
  anchorId: AnchorIdZ2,
35708
35921
  className: external_exports.string(),
35709
35922
  label: external_exports.string().optional()
35710
- }).extend(ActionActivationZ).strict();
35923
+ }).extend(ActionTriggerZ).strict();
35711
35924
  var RemoveClassZ = external_exports.object({
35712
35925
  kind: external_exports.literal("content:removeClass"),
35713
35926
  anchorId: AnchorIdZ2,
35714
35927
  className: external_exports.string(),
35715
35928
  label: external_exports.string().optional()
35716
- }).extend(ActionActivationZ).strict();
35929
+ }).extend(ActionTriggerZ).strict();
35717
35930
  var SetStyleZ = external_exports.object({
35718
35931
  kind: external_exports.literal("content:setStyle"),
35719
35932
  anchorId: AnchorIdZ2,
35720
35933
  styles: external_exports.record(external_exports.string()),
35721
35934
  label: external_exports.string().optional()
35722
- }).extend(ActionActivationZ).strict();
35935
+ }).extend(ActionTriggerZ).strict();
35723
35936
  var InsertHtmlZ = external_exports.object({
35724
35937
  kind: external_exports.literal("content:insertHtml"),
35725
35938
  anchorId: AnchorIdZ2,
@@ -35727,27 +35940,27 @@ ${cssRules}
35727
35940
  position: InsertPositionZ,
35728
35941
  deepLink: NotificationDeepLinkZ.optional(),
35729
35942
  label: external_exports.string().optional()
35730
- }).extend(ActionActivationZ).strict();
35943
+ }).extend(ActionTriggerZ).strict();
35731
35944
  var HighlightZ = external_exports.object({
35732
35945
  kind: external_exports.literal("overlays:highlight"),
35733
35946
  anchorId: AnchorIdZ2,
35734
35947
  style: HighlightStyleZ.optional(),
35735
35948
  duration: external_exports.number().optional(),
35736
35949
  label: external_exports.string().optional()
35737
- }).extend(ActionActivationZ).strict();
35950
+ }).extend(ActionTriggerZ).strict();
35738
35951
  var PulseZ = external_exports.object({
35739
35952
  kind: external_exports.literal("overlays:pulse"),
35740
35953
  anchorId: AnchorIdZ2,
35741
35954
  duration: external_exports.number().optional(),
35742
35955
  label: external_exports.string().optional()
35743
- }).extend(ActionActivationZ).strict();
35956
+ }).extend(ActionTriggerZ).strict();
35744
35957
  var BadgeZ = external_exports.object({
35745
35958
  kind: external_exports.literal("overlays:badge"),
35746
35959
  anchorId: AnchorIdZ2,
35747
35960
  content: external_exports.string(),
35748
35961
  position: BadgePositionZ.optional(),
35749
35962
  label: external_exports.string().optional()
35750
- }).extend(ActionActivationZ).strict();
35963
+ }).extend(ActionTriggerZ).strict();
35751
35964
  var TooltipZ = external_exports.object({
35752
35965
  kind: external_exports.literal("overlays:tooltip"),
35753
35966
  anchorId: AnchorIdZ2,
@@ -35756,7 +35969,7 @@ ${cssRules}
35756
35969
  placement: PlacementZ.optional(),
35757
35970
  waitFor: external_exports.string().optional(),
35758
35971
  label: external_exports.string().optional()
35759
- }).extend(ActionActivationZ).strict();
35972
+ }).extend(ActionTriggerZ).strict();
35760
35973
  var ModalZ = external_exports.object({
35761
35974
  kind: external_exports.literal("overlays:modal"),
35762
35975
  content: ModalContentZ,
@@ -35773,7 +35986,7 @@ ${cssRules}
35773
35986
  ctaButtons: external_exports.array(CtaButtonZ).optional(),
35774
35987
  waitFor: external_exports.string().optional(),
35775
35988
  label: external_exports.string().optional()
35776
- }).extend(ActionActivationZ).strict();
35989
+ }).extend(ActionTriggerZ).strict();
35777
35990
  var ScrollToZ = external_exports.object({
35778
35991
  kind: external_exports.literal("navigation:scrollTo"),
35779
35992
  anchorId: AnchorIdZ2,
@@ -35781,36 +35994,36 @@ ${cssRules}
35781
35994
  block: ScrollLogicalPositionZ.optional(),
35782
35995
  inline: ScrollLogicalPositionZ.optional(),
35783
35996
  label: external_exports.string().optional()
35784
- }).extend(ActionActivationZ).strict();
35997
+ }).extend(ActionTriggerZ).strict();
35785
35998
  var NavigateZ = external_exports.object({
35786
35999
  kind: external_exports.literal("navigation:navigate"),
35787
36000
  url: external_exports.string(),
35788
36001
  target: external_exports.enum(["_self", "_blank"]).optional(),
35789
36002
  label: external_exports.string().optional()
35790
- }).extend(ActionActivationZ).strict();
36003
+ }).extend(ActionTriggerZ).strict();
35791
36004
  var MountWidgetZ = external_exports.object({
35792
36005
  kind: external_exports.literal("core:mountWidget"),
35793
36006
  slot: external_exports.string(),
35794
36007
  widget: WidgetConfigZ,
35795
36008
  label: external_exports.string().optional()
35796
- }).extend(ActionActivationZ).strict();
36009
+ }).extend(ActionTriggerZ).strict();
35797
36010
  var WaitZ = external_exports.object({
35798
36011
  kind: external_exports.literal("core:wait"),
35799
36012
  durationMs: external_exports.number().min(0).optional(),
35800
36013
  event: external_exports.string().optional(),
35801
36014
  label: external_exports.string().optional()
35802
- }).extend(ActionActivationZ).strict();
36015
+ }).extend(ActionTriggerZ).strict();
35803
36016
  var SequenceZ = external_exports.object({
35804
36017
  kind: external_exports.literal("core:sequence"),
35805
36018
  actions: external_exports.array(external_exports.any()),
35806
36019
  label: external_exports.string().optional()
35807
- }).extend(ActionActivationZ).strict();
36020
+ }).extend(ActionTriggerZ).strict();
35808
36021
  var ParallelZ = external_exports.object({
35809
36022
  kind: external_exports.literal("core:parallel"),
35810
36023
  actions: external_exports.array(external_exports.any()),
35811
36024
  waitFor: external_exports.enum(["all", "any"]).optional(),
35812
36025
  label: external_exports.string().optional()
35813
- }).extend(ActionActivationZ).strict();
36026
+ }).extend(ActionTriggerZ).strict();
35814
36027
  var TourZ = external_exports.object({
35815
36028
  kind: external_exports.literal("core:tour"),
35816
36029
  tourId: external_exports.string(),
@@ -35818,7 +36031,7 @@ ${cssRules}
35818
36031
  startStep: external_exports.string().optional(),
35819
36032
  autoStart: external_exports.boolean().optional(),
35820
36033
  label: external_exports.string().optional()
35821
- }).extend(ActionActivationZ).passthrough();
36034
+ }).extend(ActionTriggerZ).passthrough();
35822
36035
  var coreActionStepSchemas = [
35823
36036
  { defName: "setText", schema: SetTextZ },
35824
36037
  { defName: "setAttr", schema: SetAttrZ },
@@ -36269,7 +36482,7 @@ ${cssRules}
36269
36482
  case "page_url": {
36270
36483
  const { url } = condition;
36271
36484
  const currentUrl = context.page.url;
36272
- const pattern = url.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/\*\*/g, ".*").replace(/\*/g, "[^/]*");
36485
+ const pattern = url.replace(/\*\*/g, "\0GLOBSTAR\0").replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/\*/g, "[^/]*").replace(/\0GLOBSTAR\0/g, ".*");
36273
36486
  const regex = new RegExp(`^${pattern}$`);
36274
36487
  return regex.test(currentUrl);
36275
36488
  }
@@ -38732,7 +38945,7 @@ ${cssRules}
38732
38945
  }
38733
38946
 
38734
38947
  // src/index.ts
38735
- var RUNTIME_SDK_BUILD = true ? `${"2026-03-03T18:45:20.063Z"} (${"2f42a46615"})` : "dev";
38948
+ var RUNTIME_SDK_BUILD = true ? `${"2026-03-03T23:31:20.312Z"} (${"19510df2c8"})` : "dev";
38736
38949
  if (typeof window !== "undefined") {
38737
38950
  console.log(`[Syntro Runtime] Build: ${RUNTIME_SDK_BUILD}`);
38738
38951
  const existing = window.SynOS;