@salesmind-ai/design-system 0.6.0 → 1.0.0

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.
Files changed (257) hide show
  1. package/README.md +2 -0
  2. package/dist/Anton-Regular-MLEXVTB2.woff2 +0 -0
  3. package/dist/admin/index.cjs +5 -61
  4. package/dist/admin/index.css +0 -3918
  5. package/dist/admin/index.css.map +1 -1
  6. package/dist/admin/index.d.cts +1 -422
  7. package/dist/admin/index.d.ts +1 -422
  8. package/dist/admin/index.js +1 -5
  9. package/dist/blog/index.cjs +13 -34
  10. package/dist/blog/index.css +0 -579
  11. package/dist/blog/index.css.map +1 -1
  12. package/dist/blog/index.d.cts +1 -54
  13. package/dist/blog/index.d.ts +1 -54
  14. package/dist/blog/index.js +5 -6
  15. package/dist/charts/index.cjs +0 -46
  16. package/dist/charts/index.d.cts +1 -452
  17. package/dist/charts/index.d.ts +1 -452
  18. package/dist/charts/index.js +1 -3
  19. package/dist/{chunk-YTYDQBVY.cjs → chunk-2VVRZBUR.cjs} +4 -4
  20. package/dist/{chunk-GQELL2MF.cjs → chunk-3NS6X2R4.cjs} +20 -203
  21. package/dist/chunk-3NS6X2R4.cjs.map +1 -0
  22. package/dist/{chunk-XEX2AEZK.cjs → chunk-65DTHLVX.cjs} +66 -186
  23. package/dist/chunk-65DTHLVX.cjs.map +1 -0
  24. package/dist/{chunk-QALDZ7WQ.js → chunk-6BUS7RMS.js} +21 -198
  25. package/dist/chunk-6BUS7RMS.js.map +1 -0
  26. package/dist/{chunk-LTPTW2US.cjs → chunk-6BXKRDK5.cjs} +587 -977
  27. package/dist/chunk-6BXKRDK5.cjs.map +1 -0
  28. package/dist/{chunk-BJZ2DKS5.cjs → chunk-6QIQCUYC.cjs} +11 -10
  29. package/dist/chunk-6QIQCUYC.cjs.map +1 -0
  30. package/dist/{chunk-H2Y6BSTL.cjs → chunk-7EUR3AKV.cjs} +1 -1
  31. package/dist/chunk-7EUR3AKV.cjs.map +1 -0
  32. package/dist/{chunk-VFJZQQZU.js → chunk-AMNY5TS3.js} +11 -10
  33. package/dist/chunk-AMNY5TS3.js.map +1 -0
  34. package/dist/{chunk-YJ6C3EKW.js → chunk-CLXLQCNQ.js} +52 -168
  35. package/dist/chunk-CLXLQCNQ.js.map +1 -0
  36. package/dist/{chunk-H2KQ3WSH.cjs → chunk-CVLD5RQK.cjs} +12 -14
  37. package/dist/chunk-CVLD5RQK.cjs.map +1 -0
  38. package/dist/chunk-EPD4ZEPY.cjs +344 -0
  39. package/dist/chunk-EPD4ZEPY.cjs.map +1 -0
  40. package/dist/{chunk-6D22TFLA.cjs → chunk-FVSL5YMB.cjs} +16 -32
  41. package/dist/chunk-FVSL5YMB.cjs.map +1 -0
  42. package/dist/chunk-FXYOSA4E.cjs +118 -0
  43. package/dist/chunk-FXYOSA4E.cjs.map +1 -0
  44. package/dist/{chunk-ECXBTUH6.cjs → chunk-GPHQGLR5.cjs} +27 -204
  45. package/dist/chunk-GPHQGLR5.cjs.map +1 -0
  46. package/dist/chunk-JPUJWI7F.cjs +73 -0
  47. package/dist/chunk-JPUJWI7F.cjs.map +1 -0
  48. package/dist/{chunk-6UNG76Y2.js → chunk-K526GN7P.js} +2 -2
  49. package/dist/{chunk-SICKWUWB.js → chunk-KJHPOB3J.js} +1 -1
  50. package/dist/chunk-KJHPOB3J.js.map +1 -0
  51. package/dist/{chunk-Y26OHHMX.js → chunk-KSEETC4E.js} +508 -891
  52. package/dist/chunk-KSEETC4E.js.map +1 -0
  53. package/dist/chunk-KXVFFEGD.js +60 -0
  54. package/dist/chunk-KXVFFEGD.js.map +1 -0
  55. package/dist/chunk-LQB7QLD3.js +288 -0
  56. package/dist/chunk-LQB7QLD3.js.map +1 -0
  57. package/dist/chunk-LUD52ZJF.cjs +726 -0
  58. package/dist/chunk-LUD52ZJF.cjs.map +1 -0
  59. package/dist/{chunk-7UZ5DETZ.js → chunk-MBAG654R.js} +4 -216
  60. package/dist/chunk-MBAG654R.js.map +1 -0
  61. package/dist/chunk-OMP6FAZ6.cjs +183 -0
  62. package/dist/chunk-OMP6FAZ6.cjs.map +1 -0
  63. package/dist/{chunk-WYH4TKS5.js → chunk-PBYRTNQ5.js} +6 -8
  64. package/dist/chunk-PBYRTNQ5.js.map +1 -0
  65. package/dist/chunk-PYREXCZK.js +679 -0
  66. package/dist/chunk-PYREXCZK.js.map +1 -0
  67. package/dist/{chunk-P5BOFE5A.js → chunk-RSLA2FJN.js} +28 -183
  68. package/dist/chunk-RSLA2FJN.js.map +1 -0
  69. package/dist/chunk-S46SKHMD.js +173 -0
  70. package/dist/chunk-S46SKHMD.js.map +1 -0
  71. package/dist/chunk-SFXTB7JL.js +190 -0
  72. package/dist/chunk-SFXTB7JL.js.map +1 -0
  73. package/dist/chunk-SGYXYMKZ.cjs +214 -0
  74. package/dist/chunk-SGYXYMKZ.cjs.map +1 -0
  75. package/dist/chunk-UGKYP6F3.cjs +296 -0
  76. package/dist/chunk-UGKYP6F3.cjs.map +1 -0
  77. package/dist/{chunk-HDVAMYSG.js → chunk-VFO2MUPI.js} +14 -29
  78. package/dist/chunk-VFO2MUPI.js.map +1 -0
  79. package/dist/chunk-WB6XDNU7.js +115 -0
  80. package/dist/chunk-WB6XDNU7.js.map +1 -0
  81. package/dist/core/index.cjs +144 -626
  82. package/dist/core/index.css +178 -3567
  83. package/dist/core/index.css.map +1 -1
  84. package/dist/core/index.d.cts +940 -902
  85. package/dist/core/index.d.ts +940 -902
  86. package/dist/core/index.js +6 -12
  87. package/dist/i18n/index.cjs +54 -49
  88. package/dist/i18n/index.d.cts +46 -11
  89. package/dist/i18n/index.d.ts +46 -11
  90. package/dist/i18n/index.js +2 -1
  91. package/dist/index-C8A3X92-.d.cts +1100 -0
  92. package/dist/index-wZPBPkOV.d.ts +1100 -0
  93. package/dist/index.cjs +506 -1004
  94. package/dist/index.cjs.map +1 -1
  95. package/dist/index.css +6026 -16790
  96. package/dist/index.css.map +1 -1
  97. package/dist/index.d.cts +307 -22
  98. package/dist/index.d.ts +307 -22
  99. package/dist/index.js +274 -39
  100. package/dist/index.js.map +1 -1
  101. package/dist/marketing/index.cjs +33 -76
  102. package/dist/marketing/index.css +1896 -3234
  103. package/dist/marketing/index.css.map +1 -1
  104. package/dist/marketing/index.d.cts +3 -1351
  105. package/dist/marketing/index.d.ts +3 -1351
  106. package/dist/marketing/index.js +5 -8
  107. package/dist/motion/index.cjs +3 -20
  108. package/dist/motion/index.css +0 -580
  109. package/dist/motion/index.css.map +1 -1
  110. package/dist/motion/index.d.cts +1 -37
  111. package/dist/motion/index.d.ts +1 -37
  112. package/dist/motion/index.js +1 -2
  113. package/dist/nav/index.cjs +10 -35
  114. package/dist/nav/index.css +28 -580
  115. package/dist/nav/index.css.map +1 -1
  116. package/dist/nav/index.d.cts +2 -60
  117. package/dist/nav/index.d.ts +2 -60
  118. package/dist/nav/index.js +1 -2
  119. package/dist/report/index.cjs +1166 -175
  120. package/dist/report/index.cjs.map +1 -1
  121. package/dist/report/index.d.cts +208 -5
  122. package/dist/report/index.d.ts +208 -5
  123. package/dist/report/index.js +1141 -3
  124. package/dist/report/index.js.map +1 -1
  125. package/dist/sections/index.cjs +8 -10
  126. package/dist/sections/index.cjs.map +1 -1
  127. package/dist/sections/index.css +0 -206
  128. package/dist/sections/index.css.map +1 -1
  129. package/dist/sections/index.js +2 -4
  130. package/dist/sections/index.js.map +1 -1
  131. package/dist/social-media/index.cjs +4 -0
  132. package/dist/social-media/index.cjs.map +1 -0
  133. package/dist/social-media/index.d.cts +2 -0
  134. package/dist/social-media/index.d.ts +2 -0
  135. package/dist/social-media/index.js +3 -0
  136. package/dist/social-media/index.js.map +1 -0
  137. package/dist/social-proof/index.cjs +4 -36
  138. package/dist/social-proof/index.css +3 -1106
  139. package/dist/social-proof/index.css.map +1 -1
  140. package/dist/social-proof/index.d.cts +26 -171
  141. package/dist/social-proof/index.d.ts +26 -171
  142. package/dist/social-proof/index.js +1 -5
  143. package/dist/styles/styles.css +602 -3044
  144. package/dist/theme/index.cjs +11 -19
  145. package/dist/theme/index.css +0 -352
  146. package/dist/theme/index.css.map +1 -1
  147. package/dist/theme/index.d.cts +1 -25
  148. package/dist/theme/index.d.ts +1 -25
  149. package/dist/theme/index.js +2 -2
  150. package/dist/web/client/index.cjs +10 -10
  151. package/dist/web/client/index.css +118 -0
  152. package/dist/web/client/index.css.map +1 -1
  153. package/dist/web/client/index.js +2 -2
  154. package/dist/web/index.cjs +10 -10
  155. package/dist/web/index.css +118 -0
  156. package/dist/web/index.css.map +1 -1
  157. package/dist/web/index.js +2 -2
  158. package/package.json +10 -4
  159. package/dist/AppearancePanel-UT57J69V.d.cts +0 -51
  160. package/dist/AppearancePanel-UT57J69V.d.ts +0 -51
  161. package/dist/ExportMenu-A2TLFiVv.d.cts +0 -311
  162. package/dist/ExportMenu-C8qck5AT.d.ts +0 -311
  163. package/dist/Select-BdZmK0Lt.d.cts +0 -66
  164. package/dist/Select-BdZmK0Lt.d.ts +0 -66
  165. package/dist/chart-types-BGVVO-zl.d.cts +0 -208
  166. package/dist/chart-types-BGVVO-zl.d.ts +0 -208
  167. package/dist/charts/index.css +0 -1167
  168. package/dist/charts/index.css.map +0 -1
  169. package/dist/chunk-3BAQDW3V.cjs +0 -1207
  170. package/dist/chunk-3BAQDW3V.cjs.map +0 -1
  171. package/dist/chunk-3NKRFUAR.js +0 -37
  172. package/dist/chunk-3NKRFUAR.js.map +0 -1
  173. package/dist/chunk-3TGSIILM.cjs +0 -201
  174. package/dist/chunk-3TGSIILM.cjs.map +0 -1
  175. package/dist/chunk-4GM5BGBN.cjs +0 -801
  176. package/dist/chunk-4GM5BGBN.cjs.map +0 -1
  177. package/dist/chunk-5LA3T22E.cjs +0 -562
  178. package/dist/chunk-5LA3T22E.cjs.map +0 -1
  179. package/dist/chunk-5SN66B2X.js +0 -2542
  180. package/dist/chunk-5SN66B2X.js.map +0 -1
  181. package/dist/chunk-6D22TFLA.cjs.map +0 -1
  182. package/dist/chunk-6H4DSTXR.js +0 -786
  183. package/dist/chunk-6H4DSTXR.js.map +0 -1
  184. package/dist/chunk-6HKQ5ILL.cjs +0 -1624
  185. package/dist/chunk-6HKQ5ILL.cjs.map +0 -1
  186. package/dist/chunk-7PX2AZ6Y.js +0 -39
  187. package/dist/chunk-7PX2AZ6Y.js.map +0 -1
  188. package/dist/chunk-7UZ5DETZ.js.map +0 -1
  189. package/dist/chunk-B6AVAX4F.js +0 -1415
  190. package/dist/chunk-B6AVAX4F.js.map +0 -1
  191. package/dist/chunk-BJZ2DKS5.cjs.map +0 -1
  192. package/dist/chunk-BUTQSDQH.js +0 -200
  193. package/dist/chunk-BUTQSDQH.js.map +0 -1
  194. package/dist/chunk-C2BCDNAV.js +0 -24
  195. package/dist/chunk-C2BCDNAV.js.map +0 -1
  196. package/dist/chunk-CJ2MKVAF.cjs +0 -46
  197. package/dist/chunk-CJ2MKVAF.cjs.map +0 -1
  198. package/dist/chunk-E7D6EKJ4.cjs +0 -44
  199. package/dist/chunk-E7D6EKJ4.cjs.map +0 -1
  200. package/dist/chunk-ECXBTUH6.cjs.map +0 -1
  201. package/dist/chunk-FAFAP4L5.js +0 -183
  202. package/dist/chunk-FAFAP4L5.js.map +0 -1
  203. package/dist/chunk-G2XGBO5V.cjs +0 -2565
  204. package/dist/chunk-G2XGBO5V.cjs.map +0 -1
  205. package/dist/chunk-GQELL2MF.cjs.map +0 -1
  206. package/dist/chunk-H2KQ3WSH.cjs.map +0 -1
  207. package/dist/chunk-H2Y6BSTL.cjs.map +0 -1
  208. package/dist/chunk-HCZW5AJN.cjs +0 -234
  209. package/dist/chunk-HCZW5AJN.cjs.map +0 -1
  210. package/dist/chunk-HDVAMYSG.js.map +0 -1
  211. package/dist/chunk-HN4PHABT.js +0 -126
  212. package/dist/chunk-HN4PHABT.js.map +0 -1
  213. package/dist/chunk-LTPTW2US.cjs.map +0 -1
  214. package/dist/chunk-MDB2WCRQ.cjs +0 -137
  215. package/dist/chunk-MDB2WCRQ.cjs.map +0 -1
  216. package/dist/chunk-MQRB634A.cjs +0 -34
  217. package/dist/chunk-MQRB634A.cjs.map +0 -1
  218. package/dist/chunk-NN3TUHIH.js +0 -28
  219. package/dist/chunk-NN3TUHIH.js.map +0 -1
  220. package/dist/chunk-OWS2KAXZ.js +0 -701
  221. package/dist/chunk-OWS2KAXZ.js.map +0 -1
  222. package/dist/chunk-P5BOFE5A.js.map +0 -1
  223. package/dist/chunk-PUPSK3DI.cjs +0 -216
  224. package/dist/chunk-PUPSK3DI.cjs.map +0 -1
  225. package/dist/chunk-Q2MFGYTE.cjs +0 -1449
  226. package/dist/chunk-Q2MFGYTE.cjs.map +0 -1
  227. package/dist/chunk-Q75DBVDY.cjs +0 -68
  228. package/dist/chunk-Q75DBVDY.cjs.map +0 -1
  229. package/dist/chunk-QALDZ7WQ.js.map +0 -1
  230. package/dist/chunk-QWE2RNCS.js +0 -1195
  231. package/dist/chunk-QWE2RNCS.js.map +0 -1
  232. package/dist/chunk-RQUFZAZ7.js +0 -1608
  233. package/dist/chunk-RQUFZAZ7.js.map +0 -1
  234. package/dist/chunk-SICKWUWB.js.map +0 -1
  235. package/dist/chunk-TCFC7XTB.js +0 -212
  236. package/dist/chunk-TCFC7XTB.js.map +0 -1
  237. package/dist/chunk-UTVXGAQP.cjs +0 -2437
  238. package/dist/chunk-UTVXGAQP.cjs.map +0 -1
  239. package/dist/chunk-UVEMY3FQ.cjs +0 -717
  240. package/dist/chunk-UVEMY3FQ.cjs.map +0 -1
  241. package/dist/chunk-VFJZQQZU.js.map +0 -1
  242. package/dist/chunk-WH7PYHZY.cjs +0 -35
  243. package/dist/chunk-WH7PYHZY.cjs.map +0 -1
  244. package/dist/chunk-WYH4TKS5.js.map +0 -1
  245. package/dist/chunk-XEX2AEZK.cjs.map +0 -1
  246. package/dist/chunk-XPTVHPCN.js +0 -2320
  247. package/dist/chunk-XPTVHPCN.js.map +0 -1
  248. package/dist/chunk-XWPDRMZG.js +0 -62
  249. package/dist/chunk-XWPDRMZG.js.map +0 -1
  250. package/dist/chunk-Y26OHHMX.js.map +0 -1
  251. package/dist/chunk-YJ6C3EKW.js.map +0 -1
  252. package/dist/motion-C651Ry6d.d.cts +0 -832
  253. package/dist/motion-C651Ry6d.d.ts +0 -832
  254. package/dist/report/index.css +0 -1239
  255. package/dist/report/index.css.map +0 -1
  256. /package/dist/{chunk-6UNG76Y2.js.map → chunk-2VVRZBUR.cjs.map} +0 -0
  257. /package/dist/{chunk-YTYDQBVY.cjs.map → chunk-K526GN7P.js.map} +0 -0
@@ -1,86 +1,95 @@
1
1
  'use strict';
2
2
 
3
- var chunkHCZW5AJN_cjs = require('./chunk-HCZW5AJN.cjs');
4
- var chunkE7D6EKJ4_cjs = require('./chunk-E7D6EKJ4.cjs');
5
- var chunkH2Y6BSTL_cjs = require('./chunk-H2Y6BSTL.cjs');
3
+ var chunkJPUJWI7F_cjs = require('./chunk-JPUJWI7F.cjs');
4
+ var chunk7EUR3AKV_cjs = require('./chunk-7EUR3AKV.cjs');
6
5
  var chunkDP74LUXG_cjs = require('./chunk-DP74LUXG.cjs');
7
- var chunkQ75DBVDY_cjs = require('./chunk-Q75DBVDY.cjs');
8
6
  var chunkVC5LMUVQ_cjs = require('./chunk-VC5LMUVQ.cjs');
9
- var chunkVM7WFMKI_cjs = require('./chunk-VM7WFMKI.cjs');
10
- var chunkBJZ2DKS5_cjs = require('./chunk-BJZ2DKS5.cjs');
7
+ var chunkGPHQGLR5_cjs = require('./chunk-GPHQGLR5.cjs');
8
+ var chunk6QIQCUYC_cjs = require('./chunk-6QIQCUYC.cjs');
11
9
  var chunkLJADZITX_cjs = require('./chunk-LJADZITX.cjs');
12
- var React34 = require('react');
13
- var clsx27 = require('clsx');
14
- var lucideReact = require('lucide-react');
10
+ var React24 = require('react');
11
+ var clsx17 = require('clsx');
15
12
  var jsxRuntime = require('react/jsx-runtime');
13
+ var lucideReact = require('lucide-react');
14
+ var reactIntl = require('react-intl');
16
15
 
17
16
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
17
 
19
- var React34__default = /*#__PURE__*/_interopDefault(React34);
20
- var clsx27__default = /*#__PURE__*/_interopDefault(clsx27);
18
+ var React24__default = /*#__PURE__*/_interopDefault(React24);
19
+ var clsx17__default = /*#__PURE__*/_interopDefault(clsx17);
21
20
 
22
- var AnnouncementBar = React34.forwardRef(
21
+ var AuroraVoid = React24.forwardRef(
23
22
  ({
24
- badge,
25
- message,
26
- href,
27
- variant = "brand",
28
- dismissible = false,
29
- onDismiss,
30
- showArrow = true,
23
+ intensity = "base",
24
+ animated = true,
25
+ static: isStatic = false,
31
26
  className,
32
- ...props
27
+ children
33
28
  }, ref) => {
34
- const { track } = chunkVC5LMUVQ_cjs.useAnalytics();
35
- const handleClick = () => {
36
- if (href) {
37
- track("announcement_click", { href, variant });
38
- }
39
- };
40
- const handleDismiss = (e) => {
41
- e.preventDefault();
42
- e.stopPropagation();
43
- track("announcement_dismiss", { variant });
44
- onDismiss?.();
45
- };
46
- const Component = href ? "a" : "div";
47
- const componentProps = href ? { href, onClick: handleClick } : {};
29
+ const isAnimated = animated && !isStatic;
48
30
  return /* @__PURE__ */ jsxRuntime.jsxs(
49
31
  "div",
50
32
  {
51
33
  ref,
52
- className: clsx27__default.default(
53
- "ds-announcement-bar",
54
- `ds-announcement-bar--${variant}`,
55
- href && "ds-announcement-bar--clickable",
34
+ className: clsx17__default.default(
35
+ "ds-aurora-void",
36
+ `ds-aurora-void--intensity-${intensity}`,
37
+ isAnimated && "ds-aurora-void--animated",
38
+ isStatic && "ds-aurora-void--static",
56
39
  className
57
40
  ),
58
- ...props,
59
41
  children: [
60
- /* @__PURE__ */ jsxRuntime.jsxs(Component, { className: "ds-announcement-bar__inner", ...componentProps, children: [
61
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-announcement-bar__content", children: [
62
- badge && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-announcement-bar__badge", children: badge }),
63
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-announcement-bar__message", children: message })
64
- ] }),
65
- href && showArrow && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { className: "ds-announcement-bar__arrow", size: 16 })
66
- ] }),
67
- dismissible && /* @__PURE__ */ jsxRuntime.jsx(
68
- "button",
69
- {
70
- type: "button",
71
- className: "ds-announcement-bar__close",
72
- onClick: handleDismiss,
73
- "aria-label": "Dismiss announcement",
74
- children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 6L6 18M6 6l12 12" }) })
75
- }
76
- )
42
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-aurora-void__aurora", "aria-hidden": "true" }),
43
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-aurora-void__vignette", "aria-hidden": "true" }),
44
+ children && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { position: "relative", zIndex: 1 }, children })
77
45
  ]
78
46
  }
79
47
  );
80
48
  }
81
49
  );
82
- AnnouncementBar.displayName = "AnnouncementBar";
83
- var StickyActionBar = React34.forwardRef(
50
+ AuroraVoid.displayName = "AuroraVoid";
51
+ var Vignette = React24.forwardRef(
52
+ ({ intensity = "base", as: Tag = "div", className, children }, ref) => {
53
+ return /* @__PURE__ */ jsxRuntime.jsx(
54
+ Tag,
55
+ {
56
+ ref,
57
+ className: clsx17__default.default(
58
+ "ds-vignette",
59
+ `ds-vignette--${intensity}`,
60
+ className
61
+ ),
62
+ "aria-hidden": "true",
63
+ children
64
+ }
65
+ );
66
+ }
67
+ );
68
+ Vignette.displayName = "Vignette";
69
+ var GridOverlay = React24.forwardRef(
70
+ ({ cell = "64", opacity = 0.04, mask = true, className }, ref) => {
71
+ const style = {};
72
+ if (opacity !== 0.04) {
73
+ style.opacity = opacity;
74
+ }
75
+ return /* @__PURE__ */ jsxRuntime.jsx(
76
+ "div",
77
+ {
78
+ ref,
79
+ className: clsx17__default.default(
80
+ "ds-grid-overlay",
81
+ `ds-grid-overlay--cell-${cell}`,
82
+ mask && "ds-grid-overlay--masked",
83
+ className
84
+ ),
85
+ style,
86
+ "aria-hidden": "true"
87
+ }
88
+ );
89
+ }
90
+ );
91
+ GridOverlay.displayName = "GridOverlay";
92
+ var StickyActionBar = React24.forwardRef(
84
93
  ({
85
94
  message,
86
95
  primaryAction,
@@ -91,9 +100,9 @@ var StickyActionBar = React34.forwardRef(
91
100
  className,
92
101
  ...props
93
102
  }, ref) => {
94
- const [isVisible, setIsVisible] = React34.useState(false);
103
+ const [isVisible, setIsVisible] = React24.useState(false);
95
104
  const { track } = chunkVC5LMUVQ_cjs.useAnalytics();
96
- React34.useEffect(() => {
105
+ React24.useEffect(() => {
97
106
  const handleScroll = () => {
98
107
  const shouldShow = window.scrollY > showThreshold;
99
108
  if (shouldShow && !isVisible) {
@@ -112,7 +121,7 @@ var StickyActionBar = React34.forwardRef(
112
121
  "div",
113
122
  {
114
123
  ref,
115
- className: clsx27__default.default(
124
+ className: clsx17__default.default(
116
125
  "ds-sticky-action-bar",
117
126
  `ds-sticky-action-bar--${position}`,
118
127
  `ds-sticky-action-bar--${variant}`,
@@ -131,67 +140,92 @@ var StickyActionBar = React34.forwardRef(
131
140
  }
132
141
  );
133
142
  StickyActionBar.displayName = "StickyActionBar";
134
- var PricingToggle = React34.forwardRef(
135
- ({
136
- value,
137
- onChange,
138
- monthlyLabel = "Monthly",
139
- annualLabel = "Annual",
140
- savingsBadge,
141
- className,
142
- ...props
143
- }, ref) => {
144
- return /* @__PURE__ */ jsxRuntime.jsxs(
145
- "div",
146
- {
147
- ref,
148
- className: clsx27__default.default("ds-pricing-toggle", className),
149
- ...props,
150
- children: [
151
- /* @__PURE__ */ jsxRuntime.jsxs(
152
- chunkHCZW5AJN_cjs.ToggleGroup,
153
- {
154
- type: "single",
155
- value,
156
- onValueChange: (v) => {
157
- if (v && typeof v === "string") {
158
- onChange(v);
159
- }
160
- },
161
- children: [
162
- /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.ToggleGroupItem, { value: "monthly", children: monthlyLabel }),
163
- /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.ToggleGroupItem, { value: "annual", children: annualLabel })
164
- ]
165
- }
166
- ),
167
- savingsBadge && /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.Badge, { className: "ds-pricing-toggle__badge", children: savingsBadge })
168
- ]
143
+ function parseSetHeight(data) {
144
+ if (!Array.isArray(data) || data[0] !== "highlevel.setHeight") return null;
145
+ const payload = data[1];
146
+ if (typeof payload !== "object" || payload === null) return null;
147
+ const height = payload.height;
148
+ if (typeof height !== "number" || !Number.isFinite(height) || height < 0) return null;
149
+ return { height: Math.min(height, 2e3) };
150
+ }
151
+ function parseBookingComplete(data) {
152
+ if (!Array.isArray(data) || data[0] !== "msgsndr-booking-complete") return null;
153
+ const raw = typeof data[1] === "object" && data[1] !== null ? data[1] : {};
154
+ const payload = {};
155
+ if (typeof raw.date === "string") payload.date = raw.date;
156
+ if (typeof raw.time === "string") payload.time = raw.time;
157
+ if (typeof raw.timezone === "string") payload.timezone = raw.timezone;
158
+ return payload;
159
+ }
160
+ function useGhlMessages(options) {
161
+ const { origin, onSetHeight, onBookingComplete, throttleMs = 200 } = options;
162
+ const lastHeightUpdateRef = React24.useRef(0);
163
+ const onSetHeightRef = React24.useRef(onSetHeight);
164
+ const onBookingCompleteRef = React24.useRef(onBookingComplete);
165
+ React24.useEffect(() => {
166
+ onSetHeightRef.current = onSetHeight;
167
+ onBookingCompleteRef.current = onBookingComplete;
168
+ }, [onSetHeight, onBookingComplete]);
169
+ React24.useEffect(() => {
170
+ const handler = (event) => {
171
+ if (event.origin !== origin) return;
172
+ const setHeightResult = parseSetHeight(event.data);
173
+ if (setHeightResult) {
174
+ const now = performance.now();
175
+ if (now - lastHeightUpdateRef.current >= throttleMs) {
176
+ lastHeightUpdateRef.current = now;
177
+ onSetHeightRef.current?.(setHeightResult.height);
178
+ }
179
+ return;
169
180
  }
170
- );
171
- }
172
- );
173
- PricingToggle.displayName = "PricingToggle";
174
- var BookingEmbed = React34.forwardRef(
181
+ const bookingCompleteResult = parseBookingComplete(event.data);
182
+ if (bookingCompleteResult) {
183
+ onBookingCompleteRef.current?.(bookingCompleteResult);
184
+ }
185
+ };
186
+ window.addEventListener("message", handler);
187
+ return () => window.removeEventListener("message", handler);
188
+ }, [origin, throttleMs]);
189
+ }
190
+ var BookingEmbed = React24.forwardRef(
175
191
  ({
176
192
  url,
177
193
  aspectRatio = "16/9",
178
194
  title = "Book a call",
179
195
  lazyLoad = true,
196
+ expectedHeight,
197
+ onError,
198
+ onReady,
199
+ onEvent,
200
+ showRetry = true,
201
+ maxRetries = 3,
202
+ timeoutMs,
180
203
  className,
181
204
  style,
182
205
  ...props
183
206
  }, ref) => {
184
- const [isLoaded, setIsLoaded] = React34.useState(!lazyLoad);
185
- const [isIframeLoaded, setIsIframeLoaded] = React34.useState(false);
186
- const containerRef = React34.useRef(null);
207
+ const [isLoaded, setIsLoaded] = React24.useState(!lazyLoad);
208
+ const [status, setStatus] = React24.useState("loading");
209
+ const [dynamicHeight, setDynamicHeight] = React24.useState(null);
210
+ const [retryCount, setRetryCount] = React24.useState(0);
211
+ const [iframeKey, setIframeKey] = React24.useState(0);
212
+ const containerRef = React24.useRef(null);
213
+ const timeoutRef = React24.useRef(null);
214
+ const readyCalledRef = React24.useRef(false);
215
+ const retryTimerRef = React24.useRef(null);
187
216
  const { track } = chunkVC5LMUVQ_cjs.useAnalytics();
188
- React34.useEffect(() => {
217
+ const intl = reactIntl.useIntl();
218
+ const handleTrack = React24.useCallback((event, trackProps = {}) => {
219
+ onEvent?.(event, trackProps);
220
+ track(event, trackProps);
221
+ }, [onEvent, track]);
222
+ React24.useEffect(() => {
189
223
  if (!lazyLoad) return;
190
224
  const observer = new IntersectionObserver(
191
225
  (entries) => {
192
226
  if (entries[0].isIntersecting) {
193
227
  setIsLoaded(true);
194
- track("booking_embed_visible", { url });
228
+ handleTrack("booking_embed_visible", { url });
195
229
  observer.disconnect();
196
230
  }
197
231
  },
@@ -201,37 +235,130 @@ var BookingEmbed = React34.forwardRef(
201
235
  observer.observe(containerRef.current);
202
236
  }
203
237
  return () => observer.disconnect();
204
- }, [lazyLoad, url, track]);
205
- const handleIframeLoad = () => {
206
- setIsIframeLoaded(true);
207
- track("booking_embed_loaded", { url });
238
+ }, [lazyLoad, url, handleTrack]);
239
+ React24.useEffect(() => {
240
+ if (status !== "loading") return;
241
+ const ms = timeoutMs ?? 8e3;
242
+ const id = window.setTimeout(() => {
243
+ setStatus("error");
244
+ onError?.("timeout");
245
+ }, ms);
246
+ timeoutRef.current = id;
247
+ return () => {
248
+ window.clearTimeout(id);
249
+ timeoutRef.current = null;
250
+ };
251
+ }, [status, timeoutMs, onError]);
252
+ const handleReady = React24.useCallback(() => {
253
+ if (readyCalledRef.current) return;
254
+ readyCalledRef.current = true;
255
+ setStatus((prev) => prev === "loading" ? "ready" : prev);
256
+ if (timeoutRef.current !== null) {
257
+ window.clearTimeout(timeoutRef.current);
258
+ timeoutRef.current = null;
259
+ }
260
+ onReady?.();
261
+ }, [onReady]);
262
+ const handleRetry = React24.useCallback(() => {
263
+ if (retryCount >= maxRetries) return;
264
+ const delay = 1e3 * Math.pow(2, retryCount);
265
+ setRetryCount((c) => c + 1);
266
+ readyCalledRef.current = false;
267
+ setStatus("loading");
268
+ retryTimerRef.current = window.setTimeout(() => {
269
+ setIframeKey((k) => k + 1);
270
+ }, delay);
271
+ }, [retryCount, maxRetries]);
272
+ React24.useEffect(() => () => {
273
+ if (retryTimerRef.current !== null) window.clearTimeout(retryTimerRef.current);
274
+ }, []);
275
+ const handleSetHeight = React24.useCallback((height) => {
276
+ setDynamicHeight(height);
277
+ handleReady();
278
+ }, [handleReady]);
279
+ const handleBookingComplete = React24.useCallback((payload) => {
280
+ containerRef.current?.dispatchEvent(
281
+ new CustomEvent("booking-complete", {
282
+ detail: {
283
+ date: payload.date,
284
+ time: payload.time,
285
+ timezone: payload.timezone
286
+ },
287
+ bubbles: true
288
+ })
289
+ );
290
+ }, []);
291
+ useGhlMessages({
292
+ origin: "https://meet.sales-mind.ai",
293
+ onSetHeight: handleSetHeight,
294
+ onBookingComplete: handleBookingComplete
295
+ });
296
+ const handleIframeLoad = React24.useCallback(() => {
297
+ handleReady();
298
+ handleTrack("booking_embed_loaded", { url });
299
+ }, [handleReady, handleTrack, url]);
300
+ const containerStyle = {
301
+ "--embed-aspect-ratio": aspectRatio,
302
+ ...dynamicHeight !== null ? { "--embed-dynamic-height": `${dynamicHeight}px` } : {},
303
+ ...expectedHeight !== void 0 ? { "--embed-min-height": `${expectedHeight}px` } : {},
304
+ ...style
208
305
  };
306
+ const handleRef = React24.useCallback((node) => {
307
+ containerRef.current = node;
308
+ if (typeof ref === "function") {
309
+ ref(node);
310
+ } else if (ref) {
311
+ ref.current = node;
312
+ }
313
+ }, [ref]);
209
314
  return /* @__PURE__ */ jsxRuntime.jsxs(
210
315
  "div",
211
316
  {
212
- ref: (node) => {
213
- containerRef.current = node;
214
- if (typeof ref === "function") ref(node);
215
- else if (ref) ref.current = node;
216
- },
217
- className: clsx27__default.default("ds-booking-embed", className),
218
- style: { "--embed-aspect-ratio": aspectRatio, ...style },
317
+ ref: handleRef,
318
+ className: clsx17__default.default(
319
+ "ds-booking-embed",
320
+ dynamicHeight !== null && "ds-booking-embed--dynamic-height",
321
+ status === "loading" && "ds-booking-embed--loading",
322
+ status === "ready" && "ds-booking-embed--ready",
323
+ status === "error" && "ds-booking-embed--error",
324
+ className
325
+ ),
326
+ style: containerStyle,
327
+ "aria-busy": status === "loading" || void 0,
219
328
  ...props,
220
329
  children: [
221
- !isIframeLoaded && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-booking-embed__skeleton", children: [
330
+ status !== "ready" && status !== "error" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-booking-embed__skeleton", children: [
222
331
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-booking-embed__spinner" }),
223
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Loading calendar..." })
332
+ /* @__PURE__ */ jsxRuntime.jsx("p", { children: /* @__PURE__ */ jsxRuntime.jsx(reactIntl.FormattedMessage, { ...chunkGPHQGLR5_cjs.bookingEmbedMessages.loading }) })
224
333
  ] }),
334
+ status === "error" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-booking-embed__error", role: "alert", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-booking-embed__error-content", children: [
335
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CalendarOff, { className: "ds-booking-embed__error-icon", "aria-hidden": true }),
336
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-booking-embed__error-title", children: intl.formatMessage(chunkGPHQGLR5_cjs.bookingEmbedMessages.errorTitle) }),
337
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-booking-embed__error-description", children: intl.formatMessage(chunkGPHQGLR5_cjs.bookingEmbedMessages.errorDescription) }),
338
+ showRetry && retryCount < maxRetries ? /* @__PURE__ */ jsxRuntime.jsx(chunk7EUR3AKV_cjs.Button, { variant: "secondary", onClick: handleRetry, children: /* @__PURE__ */ jsxRuntime.jsx(reactIntl.FormattedMessage, { ...chunkGPHQGLR5_cjs.commonMessages.retry }) }) : /* @__PURE__ */ jsxRuntime.jsx(
339
+ chunkLJADZITX_cjs.OutboundLink,
340
+ {
341
+ href: url,
342
+ context: "booking-embed-fallback",
343
+ openInNewTab: true,
344
+ className: "ds-button ds-button--outline ds-button--md",
345
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-button__content", children: /* @__PURE__ */ jsxRuntime.jsx(reactIntl.FormattedMessage, { ...chunkGPHQGLR5_cjs.bookingEmbedMessages.openInNewTab }) })
346
+ }
347
+ )
348
+ ] }) }),
225
349
  isLoaded && /* @__PURE__ */ jsxRuntime.jsx(
226
350
  "iframe",
227
351
  {
228
352
  src: url,
229
353
  title,
230
- className: clsx27__default.default("ds-booking-embed__iframe", isIframeLoaded && "ds-booking-embed__iframe--loaded"),
354
+ className: clsx17__default.default(
355
+ "ds-booking-embed__iframe",
356
+ status === "ready" && "ds-booking-embed__iframe--loaded"
357
+ ),
231
358
  onLoad: handleIframeLoad,
232
- frameBorder: "0",
233
- scrolling: "no"
234
- }
359
+ frameBorder: "0"
360
+ },
361
+ iframeKey
235
362
  )
236
363
  ]
237
364
  }
@@ -239,7 +366,7 @@ var BookingEmbed = React34.forwardRef(
239
366
  }
240
367
  );
241
368
  BookingEmbed.displayName = "BookingEmbed";
242
- var ProblemAgitation = React34.forwardRef(
369
+ var ProblemAgitation = React24.forwardRef(
243
370
  ({
244
371
  title,
245
372
  description,
@@ -253,7 +380,7 @@ var ProblemAgitation = React34.forwardRef(
253
380
  "section",
254
381
  {
255
382
  ref,
256
- className: clsx27__default.default("ds-problem-agitation", className),
383
+ className: clsx17__default.default("ds-problem-agitation", className),
257
384
  ...props,
258
385
  children: [
259
386
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-problem-agitation__header", children: [
@@ -265,7 +392,7 @@ var ProblemAgitation = React34.forwardRef(
265
392
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__mobile-label ds-problem-agitation__mobile-label--new", children: newWayLabel }),
266
393
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__column-header ds-problem-agitation__column-header--old", children: oldWayLabel }),
267
394
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__column-header ds-problem-agitation__column-header--new", children: newWayLabel }),
268
- points.map((point, index) => /* @__PURE__ */ jsxRuntime.jsxs(React34__default.default.Fragment, { children: [
395
+ points.map((point, index) => /* @__PURE__ */ jsxRuntime.jsxs(React24__default.default.Fragment, { children: [
269
396
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-problem-agitation__cell ds-problem-agitation__cell--old", children: [
270
397
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__icon-wrapper ds-problem-agitation__icon-wrapper--old", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { size: 20, "aria-hidden": "true" }) }),
271
398
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__content", children: point.problem })
@@ -282,296 +409,7 @@ var ProblemAgitation = React34.forwardRef(
282
409
  }
283
410
  );
284
411
  ProblemAgitation.displayName = "ProblemAgitation";
285
- var ProcessTimeline = React34.forwardRef(
286
- ({
287
- steps,
288
- animated = true,
289
- className,
290
- ...props
291
- }, ref) => {
292
- const [progress, setProgress] = React34.useState(0);
293
- const containerRef = React34.useRef(null);
294
- const { track } = chunkVC5LMUVQ_cjs.useAnalytics();
295
- const hasTrackedRef = React34.useRef(false);
296
- React34.useEffect(() => {
297
- if (!animated) return;
298
- const handleScroll = () => {
299
- if (!containerRef.current) return;
300
- const rect = containerRef.current.getBoundingClientRect();
301
- const windowHeight = window.innerHeight;
302
- const startDraw = windowHeight * 0.5;
303
- const travelDistance = rect.height;
304
- const currentPos = startDraw - rect.top;
305
- if (currentPos < 0) {
306
- setProgress(0);
307
- } else if (currentPos > travelDistance) {
308
- setProgress(100);
309
- if (!hasTrackedRef.current) {
310
- hasTrackedRef.current = true;
311
- track("timeline_complete");
312
- }
313
- } else {
314
- setProgress(currentPos / travelDistance * 100);
315
- }
316
- };
317
- window.addEventListener("scroll", handleScroll, { passive: true });
318
- handleScroll();
319
- return () => window.removeEventListener("scroll", handleScroll);
320
- }, [animated, track]);
321
- return /* @__PURE__ */ jsxRuntime.jsxs(
322
- "div",
323
- {
324
- ref: (node) => {
325
- containerRef.current = node;
326
- if (typeof ref === "function") ref(node);
327
- else if (ref) ref.current = node;
328
- },
329
- className: clsx27__default.default(
330
- "ds-process-timeline",
331
- animated && "ds-process-timeline--animated",
332
- className
333
- ),
334
- ...props,
335
- children: [
336
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-process-timeline__track", children: /* @__PURE__ */ jsxRuntime.jsx(
337
- "div",
338
- {
339
- className: "ds-process-timeline__progress",
340
- style: { height: animated ? `${progress}%` : "100%" }
341
- }
342
- ) }),
343
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-process-timeline__steps", children: steps.map((step, index) => {
344
- const stepProgress = index / (steps.length - 1) * 100;
345
- const isActive = !animated || progress >= stepProgress;
346
- return /* @__PURE__ */ jsxRuntime.jsxs(
347
- "div",
348
- {
349
- className: clsx27__default.default(
350
- "ds-process-timeline__step",
351
- isActive && "ds-process-timeline__step--active"
352
- ),
353
- children: [
354
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-process-timeline__indicator", children: step.indicator }),
355
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-process-timeline__content", children: [
356
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-process-timeline__title", children: step.title }),
357
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-process-timeline__description", children: step.description })
358
- ] })
359
- ]
360
- },
361
- index
362
- );
363
- }) })
364
- ]
365
- }
366
- );
367
- }
368
- );
369
- ProcessTimeline.displayName = "ProcessTimeline";
370
- var PricingCard = React34__default.default.forwardRef(
371
- ({
372
- tier,
373
- tagline,
374
- price,
375
- priceSuffix,
376
- anchorPrice,
377
- badge,
378
- highlighted = false,
379
- features = [],
380
- cta,
381
- secondaryCta,
382
- footerNote,
383
- className,
384
- children,
385
- ...props
386
- }, ref) => {
387
- return /* @__PURE__ */ jsxRuntime.jsxs(
388
- "div",
389
- {
390
- ref,
391
- className: clsx27__default.default(
392
- "ds-pricing-card",
393
- highlighted && "ds-pricing-card--highlighted",
394
- className
395
- ),
396
- ...props,
397
- children: [
398
- badge && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-pricing-card__badge", children: badge }),
399
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__header", children: [
400
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-pricing-card__tier", children: tier }),
401
- tagline && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-pricing-card__tagline", children: tagline })
402
- ] }),
403
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__price-block", children: [
404
- anchorPrice && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__anchor-price", children: anchorPrice }),
405
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__price-row", children: [
406
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__price", children: price }),
407
- priceSuffix && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__price-suffix", children: priceSuffix })
408
- ] })
409
- ] }),
410
- features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-pricing-card__features", children: features.map((feature, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
411
- "li",
412
- {
413
- className: clsx27__default.default(
414
- "ds-pricing-card__feature",
415
- feature.included === false && "ds-pricing-card__feature--excluded"
416
- ),
417
- children: [
418
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__feature-icon", "aria-hidden": "true", children: feature.included === false ? /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
419
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
420
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
421
- ] }) : /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "20 6 9 17 4 12" }) }) }),
422
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-pricing-card__feature-text", children: [
423
- feature.text,
424
- feature.detail && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__feature-detail", children: feature.detail })
425
- ] })
426
- ]
427
- },
428
- idx
429
- )) }),
430
- (cta || secondaryCta) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__cta-area", children: [
431
- cta,
432
- secondaryCta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-pricing-card__secondary-cta", children: secondaryCta })
433
- ] }),
434
- footerNote && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-pricing-card__footer-note", children: footerNote }),
435
- children
436
- ]
437
- }
438
- );
439
- }
440
- );
441
- PricingCard.displayName = "PricingCard";
442
- var PricingSection = React34.forwardRef(
443
- ({
444
- title,
445
- description,
446
- plans,
447
- toggle,
448
- className,
449
- ...props
450
- }, ref) => {
451
- return /* @__PURE__ */ jsxRuntime.jsxs(
452
- "section",
453
- {
454
- ref,
455
- className: clsx27__default.default("ds-pricing-section", className),
456
- ...props,
457
- children: [
458
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-section__header", children: [
459
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "ds-pricing-section__title", children: title }),
460
- description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-pricing-section__description", children: description }),
461
- toggle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-pricing-section__toggle", children: toggle })
462
- ] }),
463
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-pricing-section__grid", children: plans.map((plan, index) => /* @__PURE__ */ jsxRuntime.jsx(
464
- PricingCard,
465
- {
466
- ...plan,
467
- className: clsx27__default.default(
468
- "ds-pricing-section__card",
469
- plan.highlighted && "ds-pricing-section__card--popular"
470
- )
471
- },
472
- index
473
- )) })
474
- ]
475
- }
476
- );
477
- }
478
- );
479
- PricingSection.displayName = "PricingSection";
480
- var LeadCaptureForm = React34.forwardRef(
481
- ({
482
- buttonText = "Subscribe",
483
- emailLabel = "Work Email",
484
- emailPlaceholder = "you@company.com",
485
- disclaimer,
486
- onSubmitSuccess,
487
- layout = "horizontal",
488
- isLoading = false,
489
- className,
490
- onSubmit,
491
- ...props
492
- }, ref) => {
493
- const [email, setEmail] = React34.useState("");
494
- const [error, setError] = React34.useState();
495
- const [internalLoading, setInternalLoading] = React34.useState(false);
496
- const { track } = chunkVC5LMUVQ_cjs.useAnalytics();
497
- const isCurrentlyLoading = isLoading || internalLoading;
498
- const handleSubmit = async (e) => {
499
- e.preventDefault();
500
- if (!email) {
501
- setError("Email is required");
502
- return;
503
- }
504
- if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
505
- setError("Please enter a valid email address");
506
- return;
507
- }
508
- setError(void 0);
509
- setInternalLoading(true);
510
- track("lead_capture_submit", { email_domain: email.split("@")[1] });
511
- try {
512
- if (onSubmitSuccess) {
513
- await onSubmitSuccess(email);
514
- }
515
- track("lead_capture_success");
516
- } catch (err) {
517
- setError("Something went wrong. Please try again.");
518
- track("lead_capture_error", { error: String(err) });
519
- } finally {
520
- setInternalLoading(false);
521
- }
522
- if (onSubmit) {
523
- onSubmit(e);
524
- }
525
- };
526
- return /* @__PURE__ */ jsxRuntime.jsxs(
527
- "form",
528
- {
529
- ref,
530
- className: clsx27__default.default(
531
- "ds-lead-capture",
532
- `ds-lead-capture--${layout}`,
533
- className
534
- ),
535
- onSubmit: handleSubmit,
536
- noValidate: true,
537
- ...props,
538
- children: [
539
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-lead-capture__inputs", children: [
540
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-lead-capture__input-wrapper", children: [
541
- layout === "vertical" && /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: "lead-email", className: "ds-lead-capture__label", children: emailLabel }),
542
- /* @__PURE__ */ jsxRuntime.jsx(
543
- chunkE7D6EKJ4_cjs.TextField,
544
- {
545
- id: "lead-email",
546
- type: "email",
547
- value: email,
548
- onChange: (e) => setEmail(e.target.value),
549
- placeholder: emailPlaceholder,
550
- disabled: isCurrentlyLoading,
551
- "aria-label": layout === "horizontal" ? emailLabel : void 0,
552
- className: clsx27__default.default("ds-lead-capture__input", error && "ds-lead-capture__input--error")
553
- }
554
- ),
555
- error && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-lead-capture__error", children: error })
556
- ] }),
557
- /* @__PURE__ */ jsxRuntime.jsx(
558
- chunkH2Y6BSTL_cjs.Button,
559
- {
560
- type: "submit",
561
- isLoading: isCurrentlyLoading,
562
- className: "ds-lead-capture__submit",
563
- children: buttonText
564
- }
565
- )
566
- ] }),
567
- disclaimer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-lead-capture__disclaimer", children: disclaimer })
568
- ]
569
- }
570
- );
571
- }
572
- );
573
- LeadCaptureForm.displayName = "LeadCaptureForm";
574
- var CaseStudyCard = React34.forwardRef(
412
+ var CaseStudyCard = React24.forwardRef(
575
413
  ({
576
414
  company,
577
415
  logo,
@@ -588,7 +426,7 @@ var CaseStudyCard = React34.forwardRef(
588
426
  "article",
589
427
  {
590
428
  ref,
591
- className: clsx27__default.default("ds-case-study-card", className),
429
+ className: clsx17__default.default("ds-case-study-card", className),
592
430
  ...props,
593
431
  children: /* @__PURE__ */ jsxRuntime.jsxs(chunkLJADZITX_cjs.OutboundLink, { href, context: "case-study-card", className: "ds-case-study-card__link", openInNewTab: false, children: [
594
432
  coverImage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-case-study-card__image-wrap", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -604,231 +442,33 @@ var CaseStudyCard = React34.forwardRef(
604
442
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__body", children: [
605
443
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__header", children: [
606
444
  logo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-case-study-card__logo", children: logo }),
607
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__company-info", children: [
608
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-case-study-card__company", children: company }),
609
- industry && /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.Badge, { variant: "secondary", className: "ds-case-study-card__industry", children: industry })
610
- ] })
611
- ] }),
612
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-case-study-card__headline", children: headline }),
613
- metrics && metrics.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-case-study-card__metrics", children: metrics.map((metric, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__metric", children: [
614
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-case-study-card__metric-value", children: [
615
- metric.prefix,
616
- metric.value,
617
- metric.suffix
618
- ] }),
619
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-case-study-card__metric-label", children: metric.label })
620
- ] }, i)) }),
621
- quote && /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "ds-case-study-card__quote", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
622
- "\u201C",
623
- quote,
624
- "\u201D"
625
- ] }) })
626
- ] })
627
- ] })
628
- }
629
- );
630
- }
631
- );
632
- CaseStudyCard.displayName = "CaseStudyCard";
633
- function getEmbedUrl(src, muted = false) {
634
- const ytMatch = src.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([a-zA-Z0-9_-]+)/);
635
- if (ytMatch) {
636
- const params = muted ? "autoplay=1&mute=1&rel=0" : "autoplay=1&rel=0";
637
- return `https://www.youtube.com/embed/${ytMatch[1]}?${params}`;
638
- }
639
- const vimeoMatch = src.match(/(?:vimeo\.com\/)(\d+)/);
640
- if (vimeoMatch) {
641
- const params = muted ? "autoplay=1&muted=1" : "autoplay=1";
642
- return `https://player.vimeo.com/video/${vimeoMatch[1]}?${params}`;
643
- }
644
- const loomMatch = src.match(/(?:loom\.com\/share\/)([a-zA-Z0-9]+)/);
645
- if (loomMatch) return `https://www.loom.com/embed/${loomMatch[1]}?autoplay=1`;
646
- return src;
647
- }
648
- var VideoEmbed = React34.forwardRef(
649
- ({
650
- src,
651
- poster,
652
- title,
653
- aspectRatio = "16/9",
654
- autoPlay = false,
655
- withFrame = false,
656
- onPlay,
657
- className,
658
- ...props
659
- }, ref) => {
660
- const [playing, setPlaying] = React34.useState(false);
661
- const containerRef = React34.useRef(null);
662
- const handlePlay = React34.useCallback(() => {
663
- setPlaying(true);
664
- onPlay?.();
665
- }, [onPlay]);
666
- React34.useEffect(() => {
667
- if (!autoPlay || playing) return;
668
- if (typeof window === "undefined") return;
669
- const motionQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
670
- if (motionQuery.matches) return;
671
- const target = containerRef.current;
672
- if (!target) return;
673
- const observer = new IntersectionObserver(
674
- ([entry]) => {
675
- if (entry.isIntersecting) {
676
- handlePlay();
677
- observer.disconnect();
678
- }
679
- },
680
- { threshold: 0.5 }
681
- );
682
- observer.observe(target);
683
- return () => observer.disconnect();
684
- }, [autoPlay, playing, handlePlay]);
685
- const embedContent = /* @__PURE__ */ jsxRuntime.jsx(
686
- "div",
687
- {
688
- ref: containerRef,
689
- className: clsx27__default.default("ds-video-embed", withFrame && "ds-video-embed--framed", className),
690
- style: { aspectRatio },
691
- children: !playing ? /* @__PURE__ */ jsxRuntime.jsxs(
692
- "button",
693
- {
694
- type: "button",
695
- className: "ds-video-embed__poster-btn",
696
- onClick: handlePlay,
697
- "aria-label": `Play video: ${title}`,
698
- children: [
699
- poster && /* @__PURE__ */ jsxRuntime.jsx(
700
- "img",
701
- {
702
- src: poster,
703
- alt: "",
704
- className: "ds-video-embed__poster",
705
- loading: "lazy",
706
- decoding: "async"
707
- }
708
- ),
709
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-video-embed__overlay" }),
710
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-video-embed__play", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "48", height: "48", viewBox: "0 0 48 48", fill: "none", children: [
711
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "24", cy: "24", r: "24", fill: "rgba(0,0,0,0.5)" }),
712
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19 15l14 9-14 9V15z", fill: "white" })
713
- ] }) })
714
- ]
715
- }
716
- ) : /* @__PURE__ */ jsxRuntime.jsx(
717
- "iframe",
718
- {
719
- src: getEmbedUrl(src, autoPlay),
720
- title,
721
- className: "ds-video-embed__iframe",
722
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
723
- allowFullScreen: true
724
- }
725
- )
445
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__company-info", children: [
446
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-case-study-card__company", children: company }),
447
+ industry && /* @__PURE__ */ jsxRuntime.jsx(chunkJPUJWI7F_cjs.Badge, { variant: "secondary", className: "ds-case-study-card__industry", children: industry })
448
+ ] })
449
+ ] }),
450
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-case-study-card__headline", children: headline }),
451
+ metrics && metrics.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-case-study-card__metrics", children: metrics.map((metric, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__metric", children: [
452
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-case-study-card__metric-value", children: [
453
+ metric.prefix,
454
+ metric.value,
455
+ metric.suffix
456
+ ] }),
457
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-case-study-card__metric-label", children: metric.label })
458
+ ] }, i)) }),
459
+ quote && /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "ds-case-study-card__quote", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
460
+ "\u201C",
461
+ quote,
462
+ "\u201D"
463
+ ] }) })
464
+ ] })
465
+ ] })
726
466
  }
727
467
  );
728
- if (withFrame) {
729
- return /* @__PURE__ */ jsxRuntime.jsx(chunkQ75DBVDY_cjs.BrowserFrame, { ref, variant: "browser", url: src, ...props, children: embedContent });
730
- }
731
- return React34__default.default.cloneElement(embedContent, { ref, ...props });
732
- }
733
- );
734
- VideoEmbed.displayName = "VideoEmbed";
735
- var DEFAULT_SUPPRESSION = 7 * 24 * 60 * 60 * 1e3;
736
- var DEFAULT_ACTIVATION_DELAY = 5e3;
737
- var MOBILE_INACTIVITY_TIMEOUT = 45e3;
738
- function isSuppressed(key, duration) {
739
- if (typeof window === "undefined") return true;
740
- try {
741
- const ts = localStorage.getItem(key);
742
- if (!ts) return false;
743
- return Date.now() - Number(ts) < duration;
744
- } catch {
745
- return false;
746
- }
747
- }
748
- function suppress(key) {
749
- try {
750
- localStorage.setItem(key, String(Date.now()));
751
- } catch {
752
- }
753
- }
754
- function isMobile() {
755
- if (typeof window === "undefined") return false;
756
- return window.matchMedia("(max-width: 768px)").matches || "ontouchstart" in window;
757
- }
758
- var ExitIntentOverlay = React34.forwardRef(
759
- ({
760
- children,
761
- enabled = true,
762
- activationDelay = DEFAULT_ACTIVATION_DELAY,
763
- excludePaths,
764
- storageKey = "ds-exit-intent",
765
- suppressionDuration = DEFAULT_SUPPRESSION,
766
- onShow,
767
- onDismiss,
768
- className,
769
- ...props
770
- }, ref) => {
771
- const [open, setOpen] = React34.useState(false);
772
- const activatedRef = React34.useRef(false);
773
- const shownRef = React34.useRef(false);
774
- const show = React34.useCallback(() => {
775
- if (shownRef.current) return;
776
- shownRef.current = true;
777
- setOpen(true);
778
- onShow?.();
779
- }, [onShow]);
780
- const handleDismiss = React34.useCallback(() => {
781
- setOpen(false);
782
- suppress(storageKey);
783
- onDismiss?.();
784
- }, [storageKey, onDismiss]);
785
- React34.useEffect(() => {
786
- if (!enabled) return;
787
- if (typeof window === "undefined") return;
788
- if (excludePaths?.some((p) => window.location.pathname.startsWith(p))) return;
789
- if (isSuppressed(storageKey, suppressionDuration)) return;
790
- const activationTimer = setTimeout(() => {
791
- activatedRef.current = true;
792
- }, activationDelay);
793
- const handleMouseOut = (e) => {
794
- if (!activatedRef.current) return;
795
- if (e.clientY < 10 && e.relatedTarget === null) {
796
- show();
797
- }
798
- };
799
- let mobileTimer = null;
800
- const resetMobileTimer = () => {
801
- if (mobileTimer) clearTimeout(mobileTimer);
802
- if (!activatedRef.current) return;
803
- mobileTimer = setTimeout(show, MOBILE_INACTIVITY_TIMEOUT);
804
- };
805
- if (isMobile()) {
806
- const mobileStart = setTimeout(() => {
807
- resetMobileTimer();
808
- document.addEventListener("touchstart", resetMobileTimer, { passive: true });
809
- document.addEventListener("scroll", resetMobileTimer, { passive: true });
810
- }, activationDelay);
811
- return () => {
812
- clearTimeout(activationTimer);
813
- clearTimeout(mobileStart);
814
- if (mobileTimer) clearTimeout(mobileTimer);
815
- document.removeEventListener("touchstart", resetMobileTimer);
816
- document.removeEventListener("scroll", resetMobileTimer);
817
- };
818
- }
819
- document.addEventListener("mouseout", handleMouseOut);
820
- return () => {
821
- clearTimeout(activationTimer);
822
- document.removeEventListener("mouseout", handleMouseOut);
823
- };
824
- }, [enabled, activationDelay, excludePaths, storageKey, suppressionDuration, show]);
825
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx27__default.default("ds-exit-intent-overlay", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.Dialog, { open, onOpenChange: (isOpen) => {
826
- if (!isOpen) handleDismiss();
827
- }, children: /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.DialogContent, { className: "ds-exit-intent-overlay__dialog", children }) }) });
828
468
  }
829
469
  );
830
- ExitIntentOverlay.displayName = "ExitIntentOverlay";
831
- var BeforeAfterBlock = React34.forwardRef(
470
+ CaseStudyCard.displayName = "CaseStudyCard";
471
+ var BeforeAfterBlock = React24.forwardRef(
832
472
  ({
833
473
  eyebrow,
834
474
  title,
@@ -841,7 +481,7 @@ var BeforeAfterBlock = React34.forwardRef(
841
481
  const renderItems = (items, side) => items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs(
842
482
  "li",
843
483
  {
844
- className: clsx27__default.default(
484
+ className: clsx17__default.default(
845
485
  "ds-before-after__item",
846
486
  item.sentiment && `ds-before-after__item--${item.sentiment}`
847
487
  ),
@@ -853,14 +493,14 @@ var BeforeAfterBlock = React34.forwardRef(
853
493
  i
854
494
  ));
855
495
  return /* @__PURE__ */ jsxRuntime.jsxs(
856
- chunkBJZ2DKS5_cjs.SectionShell,
496
+ chunk6QIQCUYC_cjs.SectionShell,
857
497
  {
858
498
  ref,
859
- className: clsx27__default.default("ds-before-after", className),
499
+ className: clsx17__default.default("ds-before-after", className),
860
500
  ...props,
861
501
  children: [
862
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title }),
863
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx27__default.default("ds-before-after__layout", `ds-before-after__layout--${variant}`), children: [
502
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title }),
503
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx17__default.default("ds-before-after__layout", `ds-before-after__layout--${variant}`), children: [
864
504
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-before-after__column ds-before-after__column--before", children: [
865
505
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-before-after__label", children: before.label }),
866
506
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-before-after__list", children: renderItems(before.items, "before") }),
@@ -879,7 +519,7 @@ var BeforeAfterBlock = React34.forwardRef(
879
519
  }
880
520
  );
881
521
  BeforeAfterBlock.displayName = "BeforeAfterBlock";
882
- var CompetitorDiff = React34.forwardRef(
522
+ var CompetitorDiff = React24.forwardRef(
883
523
  ({
884
524
  eyebrow,
885
525
  title,
@@ -893,13 +533,13 @@ var CompetitorDiff = React34.forwardRef(
893
533
  ...props
894
534
  }, ref) => {
895
535
  return /* @__PURE__ */ jsxRuntime.jsxs(
896
- chunkBJZ2DKS5_cjs.SectionShell,
536
+ chunk6QIQCUYC_cjs.SectionShell,
897
537
  {
898
538
  ref,
899
- className: clsx27__default.default("ds-competitor-diff", className),
539
+ className: clsx17__default.default("ds-competitor-diff", className),
900
540
  ...props,
901
541
  children: [
902
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
542
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
903
543
  variant === "table" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__table", role: "table", "aria-label": "Feature comparison", children: [
904
544
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__thead", role: "row", children: [
905
545
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-competitor-diff__th", role: "columnheader" }),
@@ -954,239 +594,19 @@ var CompetitorDiff = React34.forwardRef(
954
594
  item.us
955
595
  ] })
956
596
  ] }, i)) }),
957
- cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-competitor-diff__cta", children: /* @__PURE__ */ jsxRuntime.jsx(chunkH2Y6BSTL_cjs.Button, { variant: "primary", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: cta.href, context: "competitor-diff-cta", openInNewTab: false, children: cta.label }) }) })
597
+ cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-competitor-diff__cta", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7EUR3AKV_cjs.Button, { variant: "primary", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: cta.href, context: "competitor-diff-cta", openInNewTab: false, children: cta.label }) }) })
958
598
  ]
959
599
  }
960
600
  );
961
601
  }
962
602
  );
963
603
  CompetitorDiff.displayName = "CompetitorDiff";
964
- var StakeholderTabs = React34.forwardRef(
965
- ({
966
- eyebrow,
967
- title,
968
- stakeholders,
969
- defaultIndex = 0,
970
- className,
971
- ...props
972
- }, ref) => {
973
- return /* @__PURE__ */ jsxRuntime.jsxs(
974
- chunkBJZ2DKS5_cjs.SectionShell,
975
- {
976
- ref,
977
- className: clsx27__default.default("ds-stakeholder-tabs", className),
978
- ...props,
979
- children: [
980
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title }),
981
- /* @__PURE__ */ jsxRuntime.jsxs(chunkHCZW5AJN_cjs.Tabs, { defaultValue: defaultIndex, children: [
982
- /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.TabsList, { className: "ds-stakeholder-tabs__list", children: stakeholders.map((s, i) => /* @__PURE__ */ jsxRuntime.jsxs(chunkHCZW5AJN_cjs.TabsTrigger, { value: i, className: "ds-stakeholder-tabs__trigger", children: [
983
- s.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-stakeholder-tabs__icon", "aria-hidden": "true", children: s.icon }),
984
- s.label
985
- ] }, i)) }),
986
- stakeholders.map((s, i) => /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.TabsContent, { value: i, className: "ds-stakeholder-tabs__content", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-stakeholder-tabs__panel", children: [
987
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-stakeholder-tabs__text", children: [
988
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-stakeholder-tabs__headline", children: s.content.headline }),
989
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-stakeholder-tabs__desc", children: s.content.description }),
990
- s.content.features && s.content.features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-stakeholder-tabs__features", children: s.content.features.map((f, j) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "ds-stakeholder-tabs__feature", children: [
991
- f.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-stakeholder-tabs__feature-icon", "aria-hidden": "true", children: f.icon }),
992
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
993
- /* @__PURE__ */ jsxRuntime.jsx("strong", { children: f.title }),
994
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: f.description })
995
- ] })
996
- ] }, j)) }),
997
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-stakeholder-tabs__cta-wrap", children: /* @__PURE__ */ jsxRuntime.jsx(chunkH2Y6BSTL_cjs.Button, { variant: "primary", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: s.content.cta.href, context: "stakeholder-tabs-cta", openInNewTab: false, children: s.content.cta.label }) }) })
998
- ] }),
999
- s.content.testimonial && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-stakeholder-tabs__testimonial", children: s.content.testimonial })
1000
- ] }) }, i))
1001
- ] })
1002
- ]
1003
- }
1004
- );
1005
- }
1006
- );
1007
- StakeholderTabs.displayName = "StakeholderTabs";
1008
- var IntegrationShowcase = React34.forwardRef(
1009
- ({
1010
- eyebrow,
1011
- title,
1012
- subtitle,
1013
- integrations,
1014
- categories,
1015
- variant = "grid",
1016
- filterable = !!categories,
1017
- className,
1018
- ...props
1019
- }, ref) => {
1020
- const [activeCategory, setActiveCategory] = React34.useState("All");
1021
- const allCategories = categories ?? ["All", ...new Set(integrations.map((i) => i.category))];
1022
- const filtered = activeCategory === "All" ? integrations : integrations.filter((i) => i.category === activeCategory);
1023
- return /* @__PURE__ */ jsxRuntime.jsxs(
1024
- chunkBJZ2DKS5_cjs.SectionShell,
1025
- {
1026
- ref,
1027
- className: clsx27__default.default("ds-integration-showcase", className),
1028
- ...props,
1029
- children: [
1030
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
1031
- filterable && allCategories.length > 1 && /* @__PURE__ */ jsxRuntime.jsxs(
1032
- chunkHCZW5AJN_cjs.Tabs,
1033
- {
1034
- value: allCategories.indexOf(activeCategory),
1035
- onValueChange: (v) => setActiveCategory(allCategories[v] ?? "All"),
1036
- children: [
1037
- /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.TabsList, { className: "ds-integration-showcase__filters", children: allCategories.map((cat, i) => /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.TabsTrigger, { value: i, className: "ds-integration-showcase__filter", children: cat }, cat)) }),
1038
- allCategories.map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.TabsContent, { value: i, className: "ds-integration-showcase__tab-content" }, i))
1039
- ]
1040
- }
1041
- ),
1042
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx27__default.default("ds-integration-showcase__grid", `ds-integration-showcase__grid--${variant}`), children: filtered.map((integration, i) => {
1043
- const Card = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-integration-showcase__card", children: [
1044
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-integration-showcase__logo", children: integration.logo }),
1045
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-integration-showcase__info", children: [
1046
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-integration-showcase__name", children: [
1047
- integration.name,
1048
- integration.badge && /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.Badge, { variant: "secondary", className: "ds-integration-showcase__badge", children: integration.badge })
1049
- ] }),
1050
- integration.description && variant !== "compact" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-integration-showcase__desc", children: integration.description })
1051
- ] })
1052
- ] }, i);
1053
- return integration.href ? /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: integration.href, context: "integration-showcase-card", className: "ds-integration-showcase__card-link", children: Card }, i) : Card;
1054
- }) })
1055
- ]
1056
- }
1057
- );
1058
- }
1059
- );
1060
- IntegrationShowcase.displayName = "IntegrationShowcase";
1061
- var SecurityBlock = React34.forwardRef(
1062
- ({
1063
- eyebrow,
1064
- title,
1065
- subtitle,
1066
- certifications,
1067
- features,
1068
- variant = "badges",
1069
- className,
1070
- ...props
1071
- }, ref) => {
1072
- return /* @__PURE__ */ jsxRuntime.jsxs(
1073
- chunkBJZ2DKS5_cjs.SectionShell,
1074
- {
1075
- ref,
1076
- className: clsx27__default.default("ds-security-block", className),
1077
- ...props,
1078
- children: [
1079
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
1080
- certifications && certifications.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx27__default.default("ds-security-block__certs", `ds-security-block__certs--${variant}`), children: certifications.map((cert, i) => {
1081
- const inner = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-security-block__cert", children: [
1082
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-security-block__cert-icon", children: cert.icon }),
1083
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-security-block__cert-info", children: [
1084
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-security-block__cert-name", children: cert.name }),
1085
- variant === "detailed" && cert.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-security-block__cert-desc", children: cert.description })
1086
- ] })
1087
- ] }, i);
1088
- return cert.href ? /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: cert.href, context: "security-block-cert", className: "ds-security-block__cert-link", children: inner }, i) : /* @__PURE__ */ jsxRuntime.jsx(React34__default.default.Fragment, { children: inner }, i);
1089
- }) }),
1090
- features && features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-security-block__features", children: features.map((feature, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-security-block__feature", children: [
1091
- feature.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-security-block__feature-icon", "aria-hidden": "true", children: feature.icon }),
1092
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1093
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "ds-security-block__feature-title", children: feature.title }),
1094
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-security-block__feature-desc", children: feature.description })
1095
- ] })
1096
- ] }, i)) })
1097
- ]
1098
- }
1099
- );
1100
- }
1101
- );
1102
- SecurityBlock.displayName = "SecurityBlock";
1103
- var CaseStudySection = React34.forwardRef(
1104
- ({
1105
- eyebrow,
1106
- title,
1107
- subtitle,
1108
- caseStudies,
1109
- filterable = false,
1110
- filters,
1111
- maxVisible,
1112
- seeAllHref,
1113
- className,
1114
- ...props
1115
- }, ref) => {
1116
- const allFilters = filters ?? [
1117
- "All",
1118
- ...new Set(caseStudies.map((cs) => cs.industry).filter(Boolean))
1119
- ];
1120
- const [activeFilter, setActiveFilter] = React34.useState("All");
1121
- const filtered = activeFilter === "All" ? caseStudies : caseStudies.filter((cs) => cs.industry === activeFilter);
1122
- const visible = maxVisible ? filtered.slice(0, maxVisible) : filtered;
1123
- return /* @__PURE__ */ jsxRuntime.jsxs(
1124
- chunkBJZ2DKS5_cjs.SectionShell,
1125
- {
1126
- ref,
1127
- className: clsx27__default.default("ds-case-study-section", className),
1128
- ...props,
1129
- children: [
1130
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
1131
- filterable && allFilters.length > 1 && /* @__PURE__ */ jsxRuntime.jsxs(
1132
- chunkHCZW5AJN_cjs.Tabs,
1133
- {
1134
- value: allFilters.indexOf(activeFilter),
1135
- onValueChange: (v) => setActiveFilter(allFilters[v] ?? "All"),
1136
- children: [
1137
- /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.TabsList, { className: "ds-case-study-section__filters", children: allFilters.map((filter, i) => /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.TabsTrigger, { value: i, className: "ds-case-study-section__filter", children: filter }, filter)) }),
1138
- allFilters.map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.TabsContent, { value: i, className: "ds-case-study-section__tab-content" }, i))
1139
- ]
1140
- }
1141
- ),
1142
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-case-study-section__grid", children: visible.map((cs, i) => /* @__PURE__ */ jsxRuntime.jsx(CaseStudyCard, { ...cs }, i)) }),
1143
- seeAllHref && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-case-study-section__see-all", children: /* @__PURE__ */ jsxRuntime.jsx(chunkH2Y6BSTL_cjs.Button, { variant: "outline", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: seeAllHref, context: "case-study-section-see-all", openInNewTab: false, children: "See all case studies" }) }) })
1144
- ]
1145
- }
1146
- );
1147
- }
1148
- );
1149
- CaseStudySection.displayName = "CaseStudySection";
1150
- var ManifestoBlock = React34.forwardRef(
1151
- ({
1152
- statement,
1153
- attribution,
1154
- variant = "centered",
1155
- className,
1156
- ...props
1157
- }, ref) => {
1158
- const initials = attribution ? attribution.name.split(" ").map((n) => n[0]).join("").slice(0, 2) : "";
1159
- return /* @__PURE__ */ jsxRuntime.jsx(
1160
- chunkBJZ2DKS5_cjs.SectionShell,
1161
- {
1162
- ref,
1163
- className: clsx27__default.default("ds-manifesto", `ds-manifesto--${variant}`, className),
1164
- ...props,
1165
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-manifesto__inner", children: [
1166
- variant === "quote" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-manifesto__quote-mark", "aria-hidden": "true", children: "\u201C" }),
1167
- /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "ds-manifesto__statement", children: statement }),
1168
- attribution && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-manifesto__attribution", children: [
1169
- /* @__PURE__ */ jsxRuntime.jsxs(chunkVM7WFMKI_cjs.Avatar, { size: "sm", children: [
1170
- attribution.avatar && /* @__PURE__ */ jsxRuntime.jsx(chunkVM7WFMKI_cjs.AvatarImage, { src: attribution.avatar, alt: attribution.name }),
1171
- /* @__PURE__ */ jsxRuntime.jsx(chunkVM7WFMKI_cjs.AvatarFallback, { children: initials })
1172
- ] }),
1173
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-manifesto__attribution-text", children: [
1174
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-manifesto__attribution-name", children: attribution.name }),
1175
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-manifesto__attribution-role", children: attribution.role })
1176
- ] })
1177
- ] })
1178
- ] })
1179
- }
1180
- );
1181
- }
1182
- );
1183
- ManifestoBlock.displayName = "ManifestoBlock";
1184
604
  var STATUS_LABELS = {
1185
605
  certified: "Certified",
1186
606
  "in-progress": "In Progress",
1187
607
  planned: "Planned"
1188
608
  };
1189
- var ComplianceGrid = React34.forwardRef(
609
+ var ComplianceGrid = React24.forwardRef(
1190
610
  ({
1191
611
  eyebrow,
1192
612
  title,
@@ -1196,18 +616,18 @@ var ComplianceGrid = React34.forwardRef(
1196
616
  ...props
1197
617
  }, ref) => {
1198
618
  return /* @__PURE__ */ jsxRuntime.jsxs(
1199
- chunkBJZ2DKS5_cjs.SectionShell,
619
+ chunk6QIQCUYC_cjs.SectionShell,
1200
620
  {
1201
621
  ref,
1202
- className: clsx27__default.default("ds-compliance-grid", className),
622
+ className: clsx17__default.default("ds-compliance-grid", className),
1203
623
  ...props,
1204
624
  children: [
1205
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
625
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1206
626
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-compliance-grid__items", children: items.map((item, i) => {
1207
627
  const inner = /* @__PURE__ */ jsxRuntime.jsxs(
1208
628
  "div",
1209
629
  {
1210
- className: clsx27__default.default(
630
+ className: clsx17__default.default(
1211
631
  "ds-compliance-grid__item",
1212
632
  `ds-compliance-grid__item--${item.status}`
1213
633
  ),
@@ -1216,9 +636,9 @@ var ComplianceGrid = React34.forwardRef(
1216
636
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-compliance-grid__info", children: [
1217
637
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-compliance-grid__name", children: item.name }),
1218
638
  /* @__PURE__ */ jsxRuntime.jsx(
1219
- chunkHCZW5AJN_cjs.Badge,
639
+ chunkJPUJWI7F_cjs.Badge,
1220
640
  {
1221
- className: clsx27__default.default(
641
+ className: clsx17__default.default(
1222
642
  "ds-compliance-grid__status",
1223
643
  `ds-compliance-grid__status--${item.status}`
1224
644
  ),
@@ -1232,7 +652,7 @@ var ComplianceGrid = React34.forwardRef(
1232
652
  },
1233
653
  i
1234
654
  );
1235
- return item.documentHref ? /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: item.documentHref, context: "compliance-grid-doc", className: "ds-compliance-grid__link", children: inner }, i) : /* @__PURE__ */ jsxRuntime.jsx(React34__default.default.Fragment, { children: inner }, i);
655
+ return item.documentHref ? /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: item.documentHref, context: "compliance-grid-doc", className: "ds-compliance-grid__link", children: inner }, i) : /* @__PURE__ */ jsxRuntime.jsx(React24__default.default.Fragment, { children: inner }, i);
1236
656
  }) })
1237
657
  ]
1238
658
  }
@@ -1240,7 +660,7 @@ var ComplianceGrid = React34.forwardRef(
1240
660
  }
1241
661
  );
1242
662
  ComplianceGrid.displayName = "ComplianceGrid";
1243
- var ArchitectureDiagram = React34.forwardRef(
663
+ var ArchitectureDiagram = React24.forwardRef(
1244
664
  ({
1245
665
  nodes,
1246
666
  connections,
@@ -1253,7 +673,7 @@ var ArchitectureDiagram = React34.forwardRef(
1253
673
  "div",
1254
674
  {
1255
675
  ref,
1256
- className: clsx27__default.default(
676
+ className: clsx17__default.default(
1257
677
  "ds-architecture",
1258
678
  `ds-architecture--${direction}`,
1259
679
  className
@@ -1261,12 +681,12 @@ var ArchitectureDiagram = React34.forwardRef(
1261
681
  role: "img",
1262
682
  "aria-label": "Architecture diagram",
1263
683
  ...props,
1264
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-architecture__nodes", children: nodes.map((node, i) => /* @__PURE__ */ jsxRuntime.jsxs(React34__default.default.Fragment, { children: [
684
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-architecture__nodes", children: nodes.map((node, i) => /* @__PURE__ */ jsxRuntime.jsxs(React24__default.default.Fragment, { children: [
1265
685
  i > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-architecture__connection", "aria-hidden": "true", children: [
1266
686
  /* @__PURE__ */ jsxRuntime.jsx(
1267
687
  "div",
1268
688
  {
1269
- className: clsx27__default.default(
689
+ className: clsx17__default.default(
1270
690
  "ds-architecture__line",
1271
691
  connections.find(
1272
692
  (c) => c.from === nodes[i - 1]?.id && c.to === node.id
@@ -1284,7 +704,7 @@ var ArchitectureDiagram = React34.forwardRef(
1284
704
  /* @__PURE__ */ jsxRuntime.jsxs(
1285
705
  "div",
1286
706
  {
1287
- className: clsx27__default.default(
707
+ className: clsx17__default.default(
1288
708
  "ds-architecture__node",
1289
709
  `ds-architecture__node--${node.type}`
1290
710
  ),
@@ -1311,7 +731,7 @@ function getCookieSegment(name) {
1311
731
  const match = document.cookie.match(new RegExp(`(?:^|;\\s*)${name}=([^;]*)`));
1312
732
  return match ? decodeURIComponent(match[1]) : null;
1313
733
  }
1314
- var SegmentSwitch = React34.forwardRef(
734
+ var SegmentSwitch = React24.forwardRef(
1315
735
  ({
1316
736
  segment: controlledSegment,
1317
737
  segments,
@@ -1322,7 +742,7 @@ var SegmentSwitch = React34.forwardRef(
1322
742
  className,
1323
743
  ...props
1324
744
  }, ref) => {
1325
- const resolvedSegment = React34.useMemo(() => {
745
+ const resolvedSegment = React24.useMemo(() => {
1326
746
  if (controlledSegment) return controlledSegment;
1327
747
  switch (source) {
1328
748
  case "utm":
@@ -1335,11 +755,11 @@ var SegmentSwitch = React34.forwardRef(
1335
755
  }, [controlledSegment, source, utmParam, cookieName]);
1336
756
  const content = resolvedSegment && segments[resolvedSegment] ? segments[resolvedSegment] : fallback;
1337
757
  if (!content) return null;
1338
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx27__default.default(className), ...props, children: content });
758
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx17__default.default(className), ...props, children: content });
1339
759
  }
1340
760
  );
1341
761
  SegmentSwitch.displayName = "SegmentSwitch";
1342
- var IntentCTA = React34.forwardRef(
762
+ var IntentCTA = React24.forwardRef(
1343
763
  ({
1344
764
  stages,
1345
765
  defaultCta,
@@ -1347,14 +767,14 @@ var IntentCTA = React34.forwardRef(
1347
767
  className,
1348
768
  ...props
1349
769
  }, ref) => {
1350
- const [activeStageIndex, setActiveStageIndex] = React34.useState(-1);
1351
- const timeRef = React34.useRef(0);
1352
- const timerRef = React34.useRef(null);
1353
- const pageCountRef = React34.useRef(pageCount);
1354
- React34.useEffect(() => {
770
+ const [activeStageIndex, setActiveStageIndex] = React24.useState(-1);
771
+ const timeRef = React24.useRef(0);
772
+ const timerRef = React24.useRef(null);
773
+ const pageCountRef = React24.useRef(pageCount);
774
+ React24.useEffect(() => {
1355
775
  pageCountRef.current = pageCount;
1356
776
  }, [pageCount]);
1357
- React34.useEffect(() => {
777
+ React24.useEffect(() => {
1358
778
  if (typeof window === "undefined") return;
1359
779
  timerRef.current = setInterval(() => {
1360
780
  timeRef.current += 1;
@@ -1398,10 +818,10 @@ var IntentCTA = React34.forwardRef(
1398
818
  "div",
1399
819
  {
1400
820
  ref,
1401
- className: clsx27__default.default("ds-intent-cta", className),
821
+ className: clsx17__default.default("ds-intent-cta", className),
1402
822
  ...props,
1403
823
  children: /* @__PURE__ */ jsxRuntime.jsx(
1404
- chunkH2Y6BSTL_cjs.Button,
824
+ chunk7EUR3AKV_cjs.Button,
1405
825
  {
1406
826
  variant: activeCta.variant ?? "primary",
1407
827
  asChild: true,
@@ -1413,7 +833,7 @@ var IntentCTA = React34.forwardRef(
1413
833
  }
1414
834
  );
1415
835
  IntentCTA.displayName = "IntentCTA";
1416
- var EvolutionTimeline = React34.forwardRef(
836
+ var EvolutionTimeline = React24.forwardRef(
1417
837
  ({
1418
838
  eyebrow,
1419
839
  title,
@@ -1425,26 +845,26 @@ var EvolutionTimeline = React34.forwardRef(
1425
845
  ...props
1426
846
  }, ref) => {
1427
847
  return /* @__PURE__ */ jsxRuntime.jsxs(
1428
- chunkBJZ2DKS5_cjs.SectionShell,
848
+ chunk6QIQCUYC_cjs.SectionShell,
1429
849
  {
1430
850
  ref,
1431
- className: clsx27__default.default("ds-evolution-timeline", className),
851
+ className: clsx17__default.default("ds-evolution-timeline", className),
1432
852
  ...props,
1433
853
  children: [
1434
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
854
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1435
855
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-evolution-timeline__track", children: [
1436
856
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__line", "aria-hidden": "true" }),
1437
857
  eras.map((era, i) => /* @__PURE__ */ jsxRuntime.jsxs(
1438
858
  "div",
1439
859
  {
1440
- className: clsx27__default.default(
860
+ className: clsx17__default.default(
1441
861
  "ds-evolution-timeline__era",
1442
862
  `ds-evolution-timeline__era--${era.sentiment}`,
1443
863
  era.current && "ds-evolution-timeline__era--current"
1444
864
  ),
1445
865
  children: [
1446
866
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__marker", "aria-hidden": "true" }),
1447
- youAreHere === i && /* @__PURE__ */ jsxRuntime.jsx(chunkHCZW5AJN_cjs.Badge, { className: "ds-evolution-timeline__you-are-here", children: "Most tools are here" }),
867
+ youAreHere === i && /* @__PURE__ */ jsxRuntime.jsx(chunkJPUJWI7F_cjs.Badge, { className: "ds-evolution-timeline__you-are-here", children: "Most tools are here" }),
1448
868
  era.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__icon", "aria-hidden": "true", children: era.icon }),
1449
869
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-evolution-timeline__content", children: [
1450
870
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-evolution-timeline__period", children: era.period }),
@@ -1460,14 +880,14 @@ var EvolutionTimeline = React34.forwardRef(
1460
880
  i
1461
881
  ))
1462
882
  ] }),
1463
- cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__cta", children: /* @__PURE__ */ jsxRuntime.jsx(chunkH2Y6BSTL_cjs.Button, { variant: "primary", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: cta.href, context: "evolution-timeline-cta", openInNewTab: false, children: cta.label }) }) })
883
+ cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__cta", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7EUR3AKV_cjs.Button, { variant: "primary", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: cta.href, context: "evolution-timeline-cta", openInNewTab: false, children: cta.label }) }) })
1464
884
  ]
1465
885
  }
1466
886
  );
1467
887
  }
1468
888
  );
1469
889
  EvolutionTimeline.displayName = "EvolutionTimeline";
1470
- var EcosystemDiagram = React34.forwardRef(
890
+ var EcosystemDiagram = React24.forwardRef(
1471
891
  ({
1472
892
  eyebrow,
1473
893
  title,
@@ -1480,13 +900,13 @@ var EcosystemDiagram = React34.forwardRef(
1480
900
  ...props
1481
901
  }, ref) => {
1482
902
  return /* @__PURE__ */ jsxRuntime.jsxs(
1483
- chunkBJZ2DKS5_cjs.SectionShell,
903
+ chunk6QIQCUYC_cjs.SectionShell,
1484
904
  {
1485
905
  ref,
1486
- className: clsx27__default.default("ds-ecosystem", `ds-ecosystem--${variant}`, className),
906
+ className: clsx17__default.default("ds-ecosystem", `ds-ecosystem--${variant}`, className),
1487
907
  ...props,
1488
908
  children: [
1489
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
909
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1490
910
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-ecosystem__diagram", role: "img", "aria-label": "Ecosystem diagram", children: [
1491
911
  centerLabel && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-ecosystem__center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-ecosystem__center-label", children: centerLabel }) }),
1492
912
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-ecosystem__layers", children: layers.map((layer, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-ecosystem__layer", children: [
@@ -1510,7 +930,7 @@ function formatNumber(n, prefix, suffix) {
1510
930
  const formatted = n >= 1e3 ? n.toLocaleString("en-US", { maximumFractionDigits: 0 }) : String(Math.round(n * 10) / 10);
1511
931
  return `${prefix ?? ""}${formatted}${suffix ?? ""}`;
1512
932
  }
1513
- var ValueAnchor = React34.forwardRef(
933
+ var ValueAnchor = React24.forwardRef(
1514
934
  ({
1515
935
  eyebrow,
1516
936
  title,
@@ -1521,26 +941,26 @@ var ValueAnchor = React34.forwardRef(
1521
941
  className,
1522
942
  ...props
1523
943
  }, ref) => {
1524
- const initialValues = React34.useMemo(() => {
944
+ const initialValues = React24.useMemo(() => {
1525
945
  const vals = {};
1526
946
  inputs.forEach((inp) => {
1527
947
  vals[inp.name] = inp.defaultValue;
1528
948
  });
1529
949
  return vals;
1530
950
  }, [inputs]);
1531
- const [values, setValues] = React34.useState(initialValues);
1532
- const handleChange = React34.useCallback((name, value) => {
951
+ const [values, setValues] = React24.useState(initialValues);
952
+ const handleChange = React24.useCallback((name, value) => {
1533
953
  setValues((prev) => ({ ...prev, [name]: value }));
1534
954
  }, []);
1535
- const output = React34.useMemo(() => calculate(values), [values, calculate]);
955
+ const output = React24.useMemo(() => calculate(values), [values, calculate]);
1536
956
  return /* @__PURE__ */ jsxRuntime.jsxs(
1537
- chunkBJZ2DKS5_cjs.SectionShell,
957
+ chunk6QIQCUYC_cjs.SectionShell,
1538
958
  {
1539
959
  ref,
1540
- className: clsx27__default.default("ds-value-anchor", className),
960
+ className: clsx17__default.default("ds-value-anchor", className),
1541
961
  ...props,
1542
962
  children: [
1543
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
963
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1544
964
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__layout", children: [
1545
965
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-value-anchor__inputs", children: inputs.map((input) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__input-group", children: [
1546
966
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "ds-value-anchor__input-label", children: [
@@ -1548,19 +968,22 @@ var ValueAnchor = React34.forwardRef(
1548
968
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__input-value", children: formatNumber(values[input.name], input.prefix, input.suffix) })
1549
969
  ] }),
1550
970
  input.type === "slider" ? /* @__PURE__ */ jsxRuntime.jsx(
1551
- chunkHCZW5AJN_cjs.Slider,
971
+ "input",
1552
972
  {
973
+ type: "range",
974
+ className: "ds-slider",
1553
975
  value: values[input.name],
1554
976
  min: input.min ?? 0,
1555
977
  max: input.max ?? 100,
1556
978
  step: input.step ?? 1,
1557
- onValueChange: (v) => handleChange(input.name, v),
1558
- inputLabel: input.label
979
+ onChange: (e) => handleChange(input.name, Number(e.target.value)),
980
+ "aria-label": input.label
1559
981
  }
1560
982
  ) : /* @__PURE__ */ jsxRuntime.jsx(
1561
- chunkE7D6EKJ4_cjs.TextField,
983
+ "input",
1562
984
  {
1563
985
  type: "number",
986
+ className: "ds-text-field",
1564
987
  value: String(values[input.name]),
1565
988
  onChange: (e) => handleChange(input.name, Number(e.target.value) || 0)
1566
989
  }
@@ -1591,7 +1014,7 @@ var ValueAnchor = React34.forwardRef(
1591
1014
  ] })
1592
1015
  ] })
1593
1016
  ] }),
1594
- cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-value-anchor__cta", children: /* @__PURE__ */ jsxRuntime.jsx(chunkH2Y6BSTL_cjs.Button, { variant: "primary", size: "lg", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: cta.href, context: "value-anchor-cta", openInNewTab: false, children: cta.label }) }) })
1017
+ cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-value-anchor__cta", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7EUR3AKV_cjs.Button, { variant: "primary", size: "lg", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: cta.href, context: "value-anchor-cta", openInNewTab: false, children: cta.label }) }) })
1595
1018
  ]
1596
1019
  }
1597
1020
  );
@@ -1603,7 +1026,7 @@ var STATUS_LABELS2 = {
1603
1026
  "in-progress": "In Progress",
1604
1027
  planned: "Planned"
1605
1028
  };
1606
- var EnterpriseSignaling = React34.forwardRef(
1029
+ var EnterpriseSignaling = React24.forwardRef(
1607
1030
  ({
1608
1031
  eyebrow,
1609
1032
  title,
@@ -1619,20 +1042,20 @@ var EnterpriseSignaling = React34.forwardRef(
1619
1042
  "div",
1620
1043
  {
1621
1044
  ref,
1622
- className: clsx27__default.default("ds-enterprise-signaling", "ds-enterprise-signaling--strip", className),
1045
+ className: clsx17__default.default("ds-enterprise-signaling", "ds-enterprise-signaling--strip", className),
1623
1046
  ...props,
1624
1047
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-enterprise-signaling__strip-inner", children: categories.flatMap((cat) => cat.items.filter((i) => i.status === "active")).map((item, i) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-enterprise-signaling__strip-item", children: item.name }, i)) })
1625
1048
  }
1626
1049
  );
1627
1050
  }
1628
1051
  return /* @__PURE__ */ jsxRuntime.jsxs(
1629
- chunkBJZ2DKS5_cjs.SectionShell,
1052
+ chunk6QIQCUYC_cjs.SectionShell,
1630
1053
  {
1631
1054
  ref,
1632
- className: clsx27__default.default("ds-enterprise-signaling", `ds-enterprise-signaling--${variant}`, className),
1055
+ className: clsx17__default.default("ds-enterprise-signaling", `ds-enterprise-signaling--${variant}`, className),
1633
1056
  ...props,
1634
1057
  children: [
1635
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
1058
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1636
1059
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-enterprise-signaling__categories", children: categories.map((cat, ci) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-enterprise-signaling__category", children: [
1637
1060
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-enterprise-signaling__category-header", children: [
1638
1061
  cat.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-enterprise-signaling__category-icon", children: cat.icon }),
@@ -1642,16 +1065,16 @@ var EnterpriseSignaling = React34.forwardRef(
1642
1065
  const inner = /* @__PURE__ */ jsxRuntime.jsxs(
1643
1066
  "div",
1644
1067
  {
1645
- className: clsx27__default.default(
1068
+ className: clsx17__default.default(
1646
1069
  "ds-enterprise-signaling__item",
1647
1070
  `ds-enterprise-signaling__item--${item.status}`
1648
1071
  ),
1649
1072
  children: [
1650
1073
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-enterprise-signaling__item-name", children: item.name }),
1651
1074
  /* @__PURE__ */ jsxRuntime.jsx(
1652
- chunkHCZW5AJN_cjs.Badge,
1075
+ chunkJPUJWI7F_cjs.Badge,
1653
1076
  {
1654
- className: clsx27__default.default("ds-enterprise-signaling__item-status", `ds-enterprise-signaling__item-status--${item.status}`),
1077
+ className: clsx17__default.default("ds-enterprise-signaling__item-status", `ds-enterprise-signaling__item-status--${item.status}`),
1655
1078
  variant: "outline",
1656
1079
  children: STATUS_LABELS2[item.status]
1657
1080
  }
@@ -1661,7 +1084,7 @@ var EnterpriseSignaling = React34.forwardRef(
1661
1084
  },
1662
1085
  ii
1663
1086
  );
1664
- return item.href ? /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: item.href, context: "enterprise-signaling-item", className: "ds-enterprise-signaling__item-link", children: inner }, ii) : /* @__PURE__ */ jsxRuntime.jsx(React34__default.default.Fragment, { children: inner }, ii);
1087
+ return item.href ? /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: item.href, context: "enterprise-signaling-item", className: "ds-enterprise-signaling__item-link", children: inner }, ii) : /* @__PURE__ */ jsxRuntime.jsx(React24__default.default.Fragment, { children: inner }, ii);
1665
1088
  }) })
1666
1089
  ] }, ci)) }),
1667
1090
  sla && sla.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-enterprise-signaling__sla", children: [
@@ -1685,7 +1108,7 @@ var EnterpriseSignaling = React34.forwardRef(
1685
1108
  }
1686
1109
  );
1687
1110
  EnterpriseSignaling.displayName = "EnterpriseSignaling";
1688
- var IntelligenceBlock = React34.forwardRef(
1111
+ var IntelligenceBlock = React24.forwardRef(
1689
1112
  ({
1690
1113
  eyebrow,
1691
1114
  title,
@@ -1727,13 +1150,13 @@ var IntelligenceBlock = React34.forwardRef(
1727
1150
  ] })
1728
1151
  ] }, i)) });
1729
1152
  return /* @__PURE__ */ jsxRuntime.jsxs(
1730
- chunkBJZ2DKS5_cjs.SectionShell,
1153
+ chunk6QIQCUYC_cjs.SectionShell,
1731
1154
  {
1732
1155
  ref,
1733
- className: clsx27__default.default("ds-intelligence", `ds-intelligence--${variant}`, className),
1156
+ className: clsx17__default.default("ds-intelligence", `ds-intelligence--${variant}`, className),
1734
1157
  ...props,
1735
1158
  children: [
1736
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
1159
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1737
1160
  variant === "capabilities-first" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1738
1161
  capabilitiesBlock,
1739
1162
  metricsBlock
@@ -1750,7 +1173,7 @@ IntelligenceBlock.displayName = "IntelligenceBlock";
1750
1173
  function fmtNum(n, prefix, suffix) {
1751
1174
  return `${prefix ?? ""}${n.toLocaleString("en-US", { maximumFractionDigits: 0 })}${suffix ?? ""}`;
1752
1175
  }
1753
- var PartnerValueProp = React34.forwardRef(
1176
+ var PartnerValueProp = React24.forwardRef(
1754
1177
  ({
1755
1178
  eyebrow,
1756
1179
  title,
@@ -1765,7 +1188,7 @@ var PartnerValueProp = React34.forwardRef(
1765
1188
  className,
1766
1189
  ...props
1767
1190
  }, ref) => {
1768
- const initialValues = React34.useMemo(() => {
1191
+ const initialValues = React24.useMemo(() => {
1769
1192
  if (!calculator) return {};
1770
1193
  const vals = {};
1771
1194
  calculator.inputs.forEach((inp) => {
@@ -1773,22 +1196,22 @@ var PartnerValueProp = React34.forwardRef(
1773
1196
  });
1774
1197
  return vals;
1775
1198
  }, [calculator]);
1776
- const [values, setValues] = React34.useState(initialValues);
1777
- const handleChange = React34.useCallback((name, value) => {
1199
+ const [values, setValues] = React24.useState(initialValues);
1200
+ const handleChange = React24.useCallback((name, value) => {
1778
1201
  setValues((prev) => ({ ...prev, [name]: value }));
1779
1202
  }, []);
1780
- const calcOutput = React34.useMemo(() => {
1203
+ const calcOutput = React24.useMemo(() => {
1781
1204
  if (!calculator) return null;
1782
1205
  return calculator.calculate(values);
1783
1206
  }, [values, calculator]);
1784
1207
  return /* @__PURE__ */ jsxRuntime.jsxs(
1785
- chunkBJZ2DKS5_cjs.SectionShell,
1208
+ chunk6QIQCUYC_cjs.SectionShell,
1786
1209
  {
1787
1210
  ref,
1788
- className: clsx27__default.default("ds-partner-vp", className),
1211
+ className: clsx17__default.default("ds-partner-vp", className),
1789
1212
  ...props,
1790
1213
  children: [
1791
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
1214
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1792
1215
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__layout", children: [
1793
1216
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-partner-vp__benefits", children: benefits.map((b, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__benefit", children: [
1794
1217
  b.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-partner-vp__benefit-icon", "aria-hidden": "true", children: b.icon }),
@@ -1799,22 +1222,21 @@ var PartnerValueProp = React34.forwardRef(
1799
1222
  ] }, i)) }),
1800
1223
  calculator && calcOutput && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calculator", children: [
1801
1224
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-partner-vp__calc-title", children: "Partner Economics" }),
1802
- calculator.inputs.map((input) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-input", children: [
1803
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "ds-partner-vp__calc-label", children: [
1804
- input.label,
1805
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-value", children: fmtNum(values[input.name], input.prefix, input.suffix) })
1806
- ] }),
1225
+ calculator.inputs.map((input) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-partner-vp__calc-input", children: /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "ds-partner-vp__calc-label", children: [
1226
+ input.label,
1227
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-value", children: fmtNum(values[input.name], input.prefix, input.suffix) }),
1807
1228
  /* @__PURE__ */ jsxRuntime.jsx(
1808
- chunkHCZW5AJN_cjs.Slider,
1229
+ "input",
1809
1230
  {
1231
+ type: "range",
1810
1232
  value: values[input.name],
1811
1233
  min: input.min ?? 0,
1812
1234
  max: input.max ?? 100,
1813
- inputLabel: input.label,
1814
- onValueChange: (v) => handleChange(input.name, v)
1235
+ "aria-label": input.label,
1236
+ onChange: (e) => handleChange(input.name, Number(e.target.value))
1815
1237
  }
1816
1238
  )
1817
- ] }, input.name)),
1239
+ ] }) }, input.name)),
1818
1240
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-results", children: [
1819
1241
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-margin", children: [
1820
1242
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-partner-vp__calc-margin-value", children: [
@@ -1859,16 +1281,88 @@ var PartnerValueProp = React34.forwardRef(
1859
1281
  ] }, i)) })
1860
1282
  ] })
1861
1283
  ] }),
1862
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-partner-vp__cta", children: /* @__PURE__ */ jsxRuntime.jsx(chunkH2Y6BSTL_cjs.Button, { variant: "primary", size: "lg", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: cta.href, context: "partner-value-prop-cta", openInNewTab: false, children: cta.label }) }) })
1284
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-partner-vp__cta", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7EUR3AKV_cjs.Button, { variant: "primary", size: "lg", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: cta.href, context: "partner-value-prop-cta", openInNewTab: false, children: cta.label }) }) })
1863
1285
  ]
1864
1286
  }
1865
1287
  );
1866
1288
  }
1867
1289
  );
1868
1290
  PartnerValueProp.displayName = "PartnerValueProp";
1869
- var ComparisonTable = React34__default.default.forwardRef(
1291
+ var PricingCard = React24__default.default.forwardRef(
1292
+ ({
1293
+ tier,
1294
+ tagline,
1295
+ price,
1296
+ priceSuffix,
1297
+ anchorPrice,
1298
+ badge,
1299
+ highlighted = false,
1300
+ features = [],
1301
+ cta,
1302
+ secondaryCta,
1303
+ footerNote,
1304
+ className,
1305
+ children,
1306
+ ...props
1307
+ }, ref) => {
1308
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1309
+ "div",
1310
+ {
1311
+ ref,
1312
+ className: clsx17__default.default(
1313
+ "ds-pricing-card",
1314
+ highlighted && "ds-pricing-card--highlighted",
1315
+ className
1316
+ ),
1317
+ ...props,
1318
+ children: [
1319
+ badge && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-pricing-card__badge", children: badge }),
1320
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__header", children: [
1321
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-pricing-card__tier", children: tier }),
1322
+ tagline && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-pricing-card__tagline", children: tagline })
1323
+ ] }),
1324
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__price-block", children: [
1325
+ anchorPrice && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__anchor-price", children: anchorPrice }),
1326
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__price-row", children: [
1327
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__price", children: price }),
1328
+ priceSuffix && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__price-suffix", children: priceSuffix })
1329
+ ] })
1330
+ ] }),
1331
+ features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-pricing-card__features", children: features.map((feature, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1332
+ "li",
1333
+ {
1334
+ className: clsx17__default.default(
1335
+ "ds-pricing-card__feature",
1336
+ feature.included === false && "ds-pricing-card__feature--excluded"
1337
+ ),
1338
+ children: [
1339
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__feature-icon", "aria-hidden": "true", children: feature.included === false ? /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
1340
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
1341
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
1342
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "20 6 9 17 4 12" }) }) }),
1343
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-pricing-card__feature-text", children: [
1344
+ feature.text,
1345
+ feature.detail && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__feature-detail", children: feature.detail })
1346
+ ] })
1347
+ ]
1348
+ },
1349
+ idx
1350
+ )) }),
1351
+ (cta || secondaryCta) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__cta-area", children: [
1352
+ cta,
1353
+ secondaryCta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-pricing-card__secondary-cta", children: secondaryCta })
1354
+ ] }),
1355
+ footerNote && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-pricing-card__footer-note", children: footerNote }),
1356
+ children
1357
+ ]
1358
+ }
1359
+ );
1360
+ }
1361
+ );
1362
+ PricingCard.displayName = "PricingCard";
1363
+ var ComparisonTable = React24__default.default.forwardRef(
1870
1364
  ({ columns, rows, caption, className, ...props }, ref) => {
1871
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx27__default.default("ds-comparison-table", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-comparison-table__scroll", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "ds-comparison-table__table", role: "table", children: [
1365
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx17__default.default("ds-comparison-table", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-comparison-table__scroll", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "ds-comparison-table__table", role: "table", children: [
1872
1366
  caption && /* @__PURE__ */ jsxRuntime.jsx("caption", { className: "ds-comparison-table__caption", children: caption }),
1873
1367
  /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "ds-comparison-table__head", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1874
1368
  /* @__PURE__ */ jsxRuntime.jsx("th", { className: "ds-comparison-table__corner", scope: "col", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-visually-hidden", children: "Feature" }) }),
@@ -1876,7 +1370,7 @@ var ComparisonTable = React34__default.default.forwardRef(
1876
1370
  "th",
1877
1371
  {
1878
1372
  scope: "col",
1879
- className: clsx27__default.default(
1373
+ className: clsx17__default.default(
1880
1374
  "ds-comparison-table__col-header",
1881
1375
  col.highlighted && "ds-comparison-table__col-header--highlighted"
1882
1376
  ),
@@ -1901,7 +1395,7 @@ var ComparisonTable = React34__default.default.forwardRef(
1901
1395
  row.values.map((val, colIdx) => /* @__PURE__ */ jsxRuntime.jsx(
1902
1396
  "td",
1903
1397
  {
1904
- className: clsx27__default.default(
1398
+ className: clsx17__default.default(
1905
1399
  "ds-comparison-table__cell",
1906
1400
  columns[colIdx]?.highlighted && "ds-comparison-table__cell--highlighted"
1907
1401
  ),
@@ -1915,7 +1409,7 @@ var ComparisonTable = React34__default.default.forwardRef(
1915
1409
  }
1916
1410
  );
1917
1411
  ComparisonTable.displayName = "ComparisonTable";
1918
- var GuaranteeHighlight = React34__default.default.forwardRef(
1412
+ var GuaranteeHighlight = React24__default.default.forwardRef(
1919
1413
  ({
1920
1414
  guarantee,
1921
1415
  detail,
@@ -1929,7 +1423,7 @@ var GuaranteeHighlight = React34__default.default.forwardRef(
1929
1423
  "div",
1930
1424
  {
1931
1425
  ref,
1932
- className: clsx27__default.default(
1426
+ className: clsx17__default.default(
1933
1427
  "ds-guarantee",
1934
1428
  `ds-guarantee--${variant}`,
1935
1429
  className
@@ -1948,7 +1442,7 @@ var GuaranteeHighlight = React34__default.default.forwardRef(
1948
1442
  }
1949
1443
  );
1950
1444
  GuaranteeHighlight.displayName = "GuaranteeHighlight";
1951
- var ROICalculator = React34__default.default.forwardRef(
1445
+ var ROICalculator = React24__default.default.forwardRef(
1952
1446
  ({
1953
1447
  eyebrow,
1954
1448
  title,
@@ -1958,7 +1452,7 @@ var ROICalculator = React34__default.default.forwardRef(
1958
1452
  className,
1959
1453
  ...props
1960
1454
  }, ref) => {
1961
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx27__default.default("ds-roi-calculator", className), ...props, children: [
1455
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx17__default.default("ds-roi-calculator", className), ...props, children: [
1962
1456
  (eyebrow || title) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-roi-calculator__header", children: [
1963
1457
  eyebrow && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-roi-calculator__eyebrow", children: eyebrow }),
1964
1458
  title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-roi-calculator__title", children: title })
@@ -1966,7 +1460,7 @@ var ROICalculator = React34__default.default.forwardRef(
1966
1460
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-roi-calculator__grid", children: items.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1967
1461
  "div",
1968
1462
  {
1969
- className: clsx27__default.default(
1463
+ className: clsx17__default.default(
1970
1464
  "ds-roi-calculator__item",
1971
1465
  item.isRecommended && "ds-roi-calculator__item--recommended"
1972
1466
  ),
@@ -1986,7 +1480,7 @@ var ROICalculator = React34__default.default.forwardRef(
1986
1480
  }
1987
1481
  );
1988
1482
  ROICalculator.displayName = "ROICalculator";
1989
- var ICPFilter = React34__default.default.forwardRef(
1483
+ var ICPFilter = React24__default.default.forwardRef(
1990
1484
  ({
1991
1485
  qualifiedItems,
1992
1486
  disqualifiedItems,
@@ -2000,7 +1494,7 @@ var ICPFilter = React34__default.default.forwardRef(
2000
1494
  "div",
2001
1495
  {
2002
1496
  ref,
2003
- className: clsx27__default.default(
1497
+ className: clsx17__default.default(
2004
1498
  "ds-icp-filter",
2005
1499
  `ds-icp-filter--${variant}`,
2006
1500
  className
@@ -2030,7 +1524,7 @@ var ICPFilter = React34__default.default.forwardRef(
2030
1524
  }
2031
1525
  );
2032
1526
  ICPFilter.displayName = "ICPFilter";
2033
- var ObjectionFAQ = React34__default.default.forwardRef(
1527
+ var ObjectionFAQ = React24__default.default.forwardRef(
2034
1528
  ({
2035
1529
  items,
2036
1530
  title,
@@ -2040,12 +1534,12 @@ var ObjectionFAQ = React34__default.default.forwardRef(
2040
1534
  className,
2041
1535
  ...props
2042
1536
  }, ref) => {
2043
- const [openItems, setOpenItems] = React34__default.default.useState(() => {
1537
+ const [openItems, setOpenItems] = React24__default.default.useState(() => {
2044
1538
  const initial = /* @__PURE__ */ new Set();
2045
1539
  if (defaultOpenIndex !== void 0) initial.add(defaultOpenIndex);
2046
1540
  return initial;
2047
1541
  });
2048
- const toggle = React34__default.default.useCallback(
1542
+ const toggle = React24__default.default.useCallback(
2049
1543
  (index) => {
2050
1544
  setOpenItems((prev) => {
2051
1545
  const next = new Set(prev);
@@ -2060,7 +1554,7 @@ var ObjectionFAQ = React34__default.default.forwardRef(
2060
1554
  },
2061
1555
  [allowMultiple]
2062
1556
  );
2063
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx27__default.default("ds-objection-faq", className), ...props, children: [
1557
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx17__default.default("ds-objection-faq", className), ...props, children: [
2064
1558
  (title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-objection-faq__header", children: [
2065
1559
  title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-objection-faq__title", children: title }),
2066
1560
  subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-objection-faq__subtitle", children: subtitle })
@@ -2070,7 +1564,7 @@ var ObjectionFAQ = React34__default.default.forwardRef(
2070
1564
  return /* @__PURE__ */ jsxRuntime.jsxs(
2071
1565
  "div",
2072
1566
  {
2073
- className: clsx27__default.default(
1567
+ className: clsx17__default.default(
2074
1568
  "ds-objection-faq__item",
2075
1569
  isOpen && "ds-objection-faq__item--open"
2076
1570
  ),
@@ -2125,40 +1619,156 @@ var ObjectionFAQ = React34__default.default.forwardRef(
2125
1619
  }
2126
1620
  );
2127
1621
  ObjectionFAQ.displayName = "ObjectionFAQ";
1622
+ var DEFAULT_CELLS = [
1623
+ {
1624
+ label: "Leads",
1625
+ value: "1,248",
1626
+ trend: { direction: "up", delta: "16%", valence: "positive" },
1627
+ provenance: "7-day rolling avg"
1628
+ },
1629
+ {
1630
+ label: "Replies",
1631
+ value: "418",
1632
+ trend: { direction: "up", delta: "22%", valence: "positive" }
1633
+ },
1634
+ {
1635
+ label: "Reply Rate",
1636
+ value: "42%",
1637
+ trend: { direction: "up", delta: "8.4 pts", valence: "positive" }
1638
+ },
1639
+ {
1640
+ label: "Pipeline",
1641
+ value: "$3.4M",
1642
+ trend: { direction: "up", delta: "31%", valence: "positive" },
1643
+ provenance: "Qualified opps only"
1644
+ }
1645
+ ];
1646
+ var KPIPanel = React24.forwardRef(
1647
+ ({ cells = DEFAULT_CELLS, className }, ref) => {
1648
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx17__default.default("ds-kpi-panel", className), children: cells.map((cell, i) => {
1649
+ const valence = cell.trend?.valence ?? (cell.trend?.direction === "up" ? "positive" : "negative");
1650
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1651
+ chunkJPUJWI7F_cjs.Card,
1652
+ {
1653
+ tier: 1,
1654
+ className: "ds-kpi-panel__cell",
1655
+ children: [
1656
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-kpi-panel__label", children: cell.label }),
1657
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-kpi-panel__value", children: cell.value }),
1658
+ cell.trend && /* @__PURE__ */ jsxRuntime.jsxs(
1659
+ "span",
1660
+ {
1661
+ className: clsx17__default.default(
1662
+ "ds-kpi-panel__trend",
1663
+ `ds-kpi-panel__trend--${valence}`
1664
+ ),
1665
+ children: [
1666
+ /* @__PURE__ */ jsxRuntime.jsx(
1667
+ "span",
1668
+ {
1669
+ className: "ds-kpi-panel__trend-arrow",
1670
+ "aria-hidden": "true",
1671
+ children: cell.trend.direction === "up" ? "\u2191" : "\u2193"
1672
+ }
1673
+ ),
1674
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-kpi-panel__trend-delta", children: cell.trend.delta })
1675
+ ]
1676
+ }
1677
+ ),
1678
+ cell.provenance && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-kpi-panel__provenance", children: cell.provenance })
1679
+ ]
1680
+ },
1681
+ i
1682
+ );
1683
+ }) });
1684
+ }
1685
+ );
1686
+ KPIPanel.displayName = "KPIPanel";
1687
+ var HeroComposition = React24.forwardRef(
1688
+ ({
1689
+ headline = ["Pipeline that runs", "while you sleep"],
1690
+ subline = "Outbound sequences powered by intent signals. Replies routed to the right teammate. Always-on revenue motion.",
1691
+ eyebrow = "PIPELINE OPERATING SYSTEM",
1692
+ metrics,
1693
+ tone = "sentence",
1694
+ className
1695
+ }, ref) => {
1696
+ const [firstLine, ...restLines] = headline;
1697
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx17__default.default("ds-hero-composition", className), children: [
1698
+ /* @__PURE__ */ jsxRuntime.jsx(
1699
+ AuroraVoid,
1700
+ {
1701
+ intensity: "base",
1702
+ animated: true,
1703
+ className: "ds-hero-composition__aurora"
1704
+ }
1705
+ ),
1706
+ /* @__PURE__ */ jsxRuntime.jsx(
1707
+ Vignette,
1708
+ {
1709
+ intensity: "base",
1710
+ className: "ds-hero-composition__vignette"
1711
+ }
1712
+ ),
1713
+ /* @__PURE__ */ jsxRuntime.jsx(
1714
+ GridOverlay,
1715
+ {
1716
+ cell: "64",
1717
+ mask: true,
1718
+ className: "ds-hero-composition__grid"
1719
+ }
1720
+ ),
1721
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-hero-composition__content", children: [
1722
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-hero-composition__left", children: [
1723
+ eyebrow && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-hero-composition__eyebrow", children: eyebrow }),
1724
+ /* @__PURE__ */ jsxRuntime.jsxs(
1725
+ "h1",
1726
+ {
1727
+ className: clsx17__default.default(
1728
+ "ds-hero-composition__headline",
1729
+ tone === "shouty" && "ds-hero-composition__headline--shouty"
1730
+ ),
1731
+ children: [
1732
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-hero-composition__headline-dropcap", children: firstLine }),
1733
+ restLines.map((line, i) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-hero-composition__headline-line", children: line }, i))
1734
+ ]
1735
+ }
1736
+ ),
1737
+ subline && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-hero-composition__subline", children: subline })
1738
+ ] }),
1739
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-hero-composition__right", children: /* @__PURE__ */ jsxRuntime.jsx(KPIPanel, { cells: metrics }) })
1740
+ ] })
1741
+ ] });
1742
+ }
1743
+ );
1744
+ HeroComposition.displayName = "HeroComposition";
2128
1745
 
2129
- exports.AnnouncementBar = AnnouncementBar;
2130
1746
  exports.ArchitectureDiagram = ArchitectureDiagram;
1747
+ exports.AuroraVoid = AuroraVoid;
2131
1748
  exports.BeforeAfterBlock = BeforeAfterBlock;
2132
1749
  exports.BookingEmbed = BookingEmbed;
2133
1750
  exports.CaseStudyCard = CaseStudyCard;
2134
- exports.CaseStudySection = CaseStudySection;
2135
1751
  exports.ComparisonTable = ComparisonTable;
2136
1752
  exports.CompetitorDiff = CompetitorDiff;
2137
1753
  exports.ComplianceGrid = ComplianceGrid;
2138
1754
  exports.EcosystemDiagram = EcosystemDiagram;
2139
1755
  exports.EnterpriseSignaling = EnterpriseSignaling;
2140
1756
  exports.EvolutionTimeline = EvolutionTimeline;
2141
- exports.ExitIntentOverlay = ExitIntentOverlay;
1757
+ exports.GridOverlay = GridOverlay;
2142
1758
  exports.GuaranteeHighlight = GuaranteeHighlight;
1759
+ exports.HeroComposition = HeroComposition;
2143
1760
  exports.ICPFilter = ICPFilter;
2144
- exports.IntegrationShowcase = IntegrationShowcase;
2145
1761
  exports.IntelligenceBlock = IntelligenceBlock;
2146
1762
  exports.IntentCTA = IntentCTA;
2147
- exports.LeadCaptureForm = LeadCaptureForm;
2148
- exports.ManifestoBlock = ManifestoBlock;
1763
+ exports.KPIPanel = KPIPanel;
2149
1764
  exports.ObjectionFAQ = ObjectionFAQ;
2150
1765
  exports.PartnerValueProp = PartnerValueProp;
2151
1766
  exports.PricingCard = PricingCard;
2152
- exports.PricingSection = PricingSection;
2153
- exports.PricingToggle = PricingToggle;
2154
1767
  exports.ProblemAgitation = ProblemAgitation;
2155
- exports.ProcessTimeline = ProcessTimeline;
2156
1768
  exports.ROICalculator = ROICalculator;
2157
- exports.SecurityBlock = SecurityBlock;
2158
1769
  exports.SegmentSwitch = SegmentSwitch;
2159
- exports.StakeholderTabs = StakeholderTabs;
2160
1770
  exports.StickyActionBar = StickyActionBar;
2161
1771
  exports.ValueAnchor = ValueAnchor;
2162
- exports.VideoEmbed = VideoEmbed;
1772
+ exports.Vignette = Vignette;
2163
1773
  //# sourceMappingURL=out.js.map
2164
- //# sourceMappingURL=chunk-LTPTW2US.cjs.map
1774
+ //# sourceMappingURL=chunk-6BXKRDK5.cjs.map