@syntrologie/runtime-sdk 2.4.0-canary.21 → 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.21";
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: [
@@ -21479,7 +21656,8 @@ ${cssRules}
21479
21656
  fetcher,
21480
21657
  experiments,
21481
21658
  runtime: runtime7,
21482
- pageUrl
21659
+ pageUrl,
21660
+ pollIntervalMs
21483
21661
  }) {
21484
21662
  const [state, setState] = (0, import_react13.useState)({
21485
21663
  tiles: [],
@@ -21534,6 +21712,13 @@ ${cssRules}
21534
21712
  return experiments.onFeaturesChanged(() => load());
21535
21713
  }
21536
21714
  }, [load, experiments, pageUrl]);
21715
+ (0, import_react13.useEffect)(() => {
21716
+ if (!pollIntervalMs) return;
21717
+ const id = setInterval(() => {
21718
+ load();
21719
+ }, pollIntervalMs);
21720
+ return () => clearInterval(id);
21721
+ }, [load, pollIntervalMs]);
21537
21722
  return (0, import_react13.useMemo)(() => state, [state]);
21538
21723
  }
21539
21724
 
@@ -35539,6 +35724,8 @@ ${cssRules}
35539
35724
  var TileZ = external_exports.object({
35540
35725
  id: external_exports.string(),
35541
35726
  title: external_exports.string().optional(),
35727
+ subtitle: external_exports.string().optional(),
35728
+ icon: external_exports.string().optional(),
35542
35729
  priority: external_exports.number().optional(),
35543
35730
  widget: external_exports.string(),
35544
35731
  props: external_exports.record(external_exports.unknown()).optional(),
@@ -35547,6 +35734,7 @@ ${cssRules}
35547
35734
  }).strict();
35548
35735
  var CanvasElementConfigZ = external_exports.object({
35549
35736
  position: external_exports.enum(["left", "right"]).optional(),
35737
+ layout: external_exports.enum(["overlay", "push"]).optional(),
35550
35738
  background: external_exports.string().optional(),
35551
35739
  blur: external_exports.string().optional(),
35552
35740
  border: external_exports.string().optional(),
@@ -35557,7 +35745,8 @@ ${cssRules}
35557
35745
  backgroundHover: external_exports.string().optional(),
35558
35746
  color: external_exports.string().optional(),
35559
35747
  size: external_exports.string().optional(),
35560
- shadow: external_exports.string().optional()
35748
+ shadow: external_exports.string().optional(),
35749
+ borderRadius: external_exports.string().optional()
35561
35750
  });
35562
35751
  var TileElementConfigZ = external_exports.object({
35563
35752
  background: external_exports.string().optional(),
@@ -35568,11 +35757,17 @@ ${cssRules}
35568
35757
  titleColor: external_exports.string().optional(),
35569
35758
  textColor: external_exports.string().optional(),
35570
35759
  iconBackground: external_exports.string().optional(),
35571
- 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()
35572
35764
  });
35573
35765
  var OverlayElementConfigZ = external_exports.object({
35574
35766
  background: external_exports.string().optional(),
35575
35767
  textColor: external_exports.string().optional(),
35768
+ titleColor: external_exports.string().optional(),
35769
+ arrowColor: external_exports.string().optional(),
35770
+ arrowSize: external_exports.string().optional(),
35576
35771
  border: external_exports.string().optional(),
35577
35772
  borderRadius: external_exports.string().optional(),
35578
35773
  scrimOpacity: external_exports.string().optional(),
@@ -35590,6 +35785,31 @@ ${cssRules}
35590
35785
  iconBackground: external_exports.string().optional(),
35591
35786
  progressGradient: external_exports.string().optional()
35592
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
+ });
35593
35813
  var CanvasThemeConfigZ = external_exports.object({
35594
35814
  mode: external_exports.enum(["dark", "light"]).optional(),
35595
35815
  fontFamily: external_exports.string().optional(),
@@ -35600,11 +35820,13 @@ ${cssRules}
35600
35820
  launcher: LauncherElementConfigZ.optional(),
35601
35821
  tile: TileElementConfigZ.optional(),
35602
35822
  overlay: OverlayElementConfigZ.optional(),
35603
- notification: NotificationElementConfigZ.optional()
35823
+ notification: NotificationElementConfigZ.optional(),
35824
+ content: ContentElementConfigZ.optional()
35604
35825
  }).strict();
35605
35826
  var LauncherConfigZ = external_exports.object({
35606
35827
  enabled: external_exports.boolean().optional(),
35607
35828
  label: external_exports.string().optional(),
35829
+ icon: external_exports.string().optional(),
35608
35830
  position: external_exports.string().optional(),
35609
35831
  animate: external_exports.boolean().optional(),
35610
35832
  animationStyle: external_exports.enum(["pulse", "bounce", "glow"]).optional(),
@@ -35623,8 +35845,7 @@ ${cssRules}
35623
35845
  }).strict();
35624
35846
 
35625
35847
  // src/actions/schema.ts
35626
- var ActionActivationZ = {
35627
- activation: ActivationConfigZ.optional(),
35848
+ var ActionTriggerZ = {
35628
35849
  triggerWhen: DecisionStrategyZ.nullable().optional()
35629
35850
  };
35630
35851
  var AnchorIdZ2 = external_exports.object({
@@ -35686,32 +35907,32 @@ ${cssRules}
35686
35907
  anchorId: AnchorIdZ2,
35687
35908
  text: external_exports.string(),
35688
35909
  label: external_exports.string().optional()
35689
- }).extend(ActionActivationZ).strict();
35910
+ }).extend(ActionTriggerZ).strict();
35690
35911
  var SetAttrZ = external_exports.object({
35691
35912
  kind: external_exports.literal("content:setAttr"),
35692
35913
  anchorId: AnchorIdZ2,
35693
35914
  attr: external_exports.string(),
35694
35915
  value: external_exports.string(),
35695
35916
  label: external_exports.string().optional()
35696
- }).extend(ActionActivationZ).strict();
35917
+ }).extend(ActionTriggerZ).strict();
35697
35918
  var AddClassZ = external_exports.object({
35698
35919
  kind: external_exports.literal("content:addClass"),
35699
35920
  anchorId: AnchorIdZ2,
35700
35921
  className: external_exports.string(),
35701
35922
  label: external_exports.string().optional()
35702
- }).extend(ActionActivationZ).strict();
35923
+ }).extend(ActionTriggerZ).strict();
35703
35924
  var RemoveClassZ = external_exports.object({
35704
35925
  kind: external_exports.literal("content:removeClass"),
35705
35926
  anchorId: AnchorIdZ2,
35706
35927
  className: external_exports.string(),
35707
35928
  label: external_exports.string().optional()
35708
- }).extend(ActionActivationZ).strict();
35929
+ }).extend(ActionTriggerZ).strict();
35709
35930
  var SetStyleZ = external_exports.object({
35710
35931
  kind: external_exports.literal("content:setStyle"),
35711
35932
  anchorId: AnchorIdZ2,
35712
35933
  styles: external_exports.record(external_exports.string()),
35713
35934
  label: external_exports.string().optional()
35714
- }).extend(ActionActivationZ).strict();
35935
+ }).extend(ActionTriggerZ).strict();
35715
35936
  var InsertHtmlZ = external_exports.object({
35716
35937
  kind: external_exports.literal("content:insertHtml"),
35717
35938
  anchorId: AnchorIdZ2,
@@ -35719,27 +35940,27 @@ ${cssRules}
35719
35940
  position: InsertPositionZ,
35720
35941
  deepLink: NotificationDeepLinkZ.optional(),
35721
35942
  label: external_exports.string().optional()
35722
- }).extend(ActionActivationZ).strict();
35943
+ }).extend(ActionTriggerZ).strict();
35723
35944
  var HighlightZ = external_exports.object({
35724
35945
  kind: external_exports.literal("overlays:highlight"),
35725
35946
  anchorId: AnchorIdZ2,
35726
35947
  style: HighlightStyleZ.optional(),
35727
35948
  duration: external_exports.number().optional(),
35728
35949
  label: external_exports.string().optional()
35729
- }).extend(ActionActivationZ).strict();
35950
+ }).extend(ActionTriggerZ).strict();
35730
35951
  var PulseZ = external_exports.object({
35731
35952
  kind: external_exports.literal("overlays:pulse"),
35732
35953
  anchorId: AnchorIdZ2,
35733
35954
  duration: external_exports.number().optional(),
35734
35955
  label: external_exports.string().optional()
35735
- }).extend(ActionActivationZ).strict();
35956
+ }).extend(ActionTriggerZ).strict();
35736
35957
  var BadgeZ = external_exports.object({
35737
35958
  kind: external_exports.literal("overlays:badge"),
35738
35959
  anchorId: AnchorIdZ2,
35739
35960
  content: external_exports.string(),
35740
35961
  position: BadgePositionZ.optional(),
35741
35962
  label: external_exports.string().optional()
35742
- }).extend(ActionActivationZ).strict();
35963
+ }).extend(ActionTriggerZ).strict();
35743
35964
  var TooltipZ = external_exports.object({
35744
35965
  kind: external_exports.literal("overlays:tooltip"),
35745
35966
  anchorId: AnchorIdZ2,
@@ -35748,7 +35969,7 @@ ${cssRules}
35748
35969
  placement: PlacementZ.optional(),
35749
35970
  waitFor: external_exports.string().optional(),
35750
35971
  label: external_exports.string().optional()
35751
- }).extend(ActionActivationZ).strict();
35972
+ }).extend(ActionTriggerZ).strict();
35752
35973
  var ModalZ = external_exports.object({
35753
35974
  kind: external_exports.literal("overlays:modal"),
35754
35975
  content: ModalContentZ,
@@ -35765,7 +35986,7 @@ ${cssRules}
35765
35986
  ctaButtons: external_exports.array(CtaButtonZ).optional(),
35766
35987
  waitFor: external_exports.string().optional(),
35767
35988
  label: external_exports.string().optional()
35768
- }).extend(ActionActivationZ).strict();
35989
+ }).extend(ActionTriggerZ).strict();
35769
35990
  var ScrollToZ = external_exports.object({
35770
35991
  kind: external_exports.literal("navigation:scrollTo"),
35771
35992
  anchorId: AnchorIdZ2,
@@ -35773,36 +35994,36 @@ ${cssRules}
35773
35994
  block: ScrollLogicalPositionZ.optional(),
35774
35995
  inline: ScrollLogicalPositionZ.optional(),
35775
35996
  label: external_exports.string().optional()
35776
- }).extend(ActionActivationZ).strict();
35997
+ }).extend(ActionTriggerZ).strict();
35777
35998
  var NavigateZ = external_exports.object({
35778
35999
  kind: external_exports.literal("navigation:navigate"),
35779
36000
  url: external_exports.string(),
35780
36001
  target: external_exports.enum(["_self", "_blank"]).optional(),
35781
36002
  label: external_exports.string().optional()
35782
- }).extend(ActionActivationZ).strict();
36003
+ }).extend(ActionTriggerZ).strict();
35783
36004
  var MountWidgetZ = external_exports.object({
35784
36005
  kind: external_exports.literal("core:mountWidget"),
35785
36006
  slot: external_exports.string(),
35786
36007
  widget: WidgetConfigZ,
35787
36008
  label: external_exports.string().optional()
35788
- }).extend(ActionActivationZ).strict();
36009
+ }).extend(ActionTriggerZ).strict();
35789
36010
  var WaitZ = external_exports.object({
35790
36011
  kind: external_exports.literal("core:wait"),
35791
36012
  durationMs: external_exports.number().min(0).optional(),
35792
36013
  event: external_exports.string().optional(),
35793
36014
  label: external_exports.string().optional()
35794
- }).extend(ActionActivationZ).strict();
36015
+ }).extend(ActionTriggerZ).strict();
35795
36016
  var SequenceZ = external_exports.object({
35796
36017
  kind: external_exports.literal("core:sequence"),
35797
36018
  actions: external_exports.array(external_exports.any()),
35798
36019
  label: external_exports.string().optional()
35799
- }).extend(ActionActivationZ).strict();
36020
+ }).extend(ActionTriggerZ).strict();
35800
36021
  var ParallelZ = external_exports.object({
35801
36022
  kind: external_exports.literal("core:parallel"),
35802
36023
  actions: external_exports.array(external_exports.any()),
35803
36024
  waitFor: external_exports.enum(["all", "any"]).optional(),
35804
36025
  label: external_exports.string().optional()
35805
- }).extend(ActionActivationZ).strict();
36026
+ }).extend(ActionTriggerZ).strict();
35806
36027
  var TourZ = external_exports.object({
35807
36028
  kind: external_exports.literal("core:tour"),
35808
36029
  tourId: external_exports.string(),
@@ -35810,7 +36031,7 @@ ${cssRules}
35810
36031
  startStep: external_exports.string().optional(),
35811
36032
  autoStart: external_exports.boolean().optional(),
35812
36033
  label: external_exports.string().optional()
35813
- }).extend(ActionActivationZ).passthrough();
36034
+ }).extend(ActionTriggerZ).passthrough();
35814
36035
  var coreActionStepSchemas = [
35815
36036
  { defName: "setText", schema: SetTextZ },
35816
36037
  { defName: "setAttr", schema: SetAttrZ },
@@ -36261,7 +36482,7 @@ ${cssRules}
36261
36482
  case "page_url": {
36262
36483
  const { url } = condition;
36263
36484
  const currentUrl = context.page.url;
36264
- 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, ".*");
36265
36486
  const regex = new RegExp(`^${pattern}$`);
36266
36487
  return regex.test(currentUrl);
36267
36488
  }
@@ -38724,7 +38945,7 @@ ${cssRules}
38724
38945
  }
38725
38946
 
38726
38947
  // src/index.ts
38727
- var RUNTIME_SDK_BUILD = true ? `${"2026-03-03T00:37:32.113Z"} (${"bf0eb79411"})` : "dev";
38948
+ var RUNTIME_SDK_BUILD = true ? `${"2026-03-03T23:31:20.312Z"} (${"19510df2c8"})` : "dev";
38728
38949
  if (typeof window !== "undefined") {
38729
38950
  console.log(`[Syntro Runtime] Build: ${RUNTIME_SDK_BUILD}`);
38730
38951
  const existing = window.SynOS;