@salesmind-ai/design-system 0.6.0 → 0.7.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-HDVAMYSG.js → chunk-27Y5ESMM.js} +7 -2
  20. package/dist/chunk-27Y5ESMM.js.map +1 -0
  21. package/dist/{chunk-YTYDQBVY.cjs → chunk-2VVRZBUR.cjs} +4 -4
  22. package/dist/{chunk-GQELL2MF.cjs → chunk-3NS6X2R4.cjs} +20 -203
  23. package/dist/chunk-3NS6X2R4.cjs.map +1 -0
  24. package/dist/{chunk-XEX2AEZK.cjs → chunk-65DTHLVX.cjs} +66 -186
  25. package/dist/chunk-65DTHLVX.cjs.map +1 -0
  26. package/dist/{chunk-QALDZ7WQ.js → chunk-6BUS7RMS.js} +21 -198
  27. package/dist/chunk-6BUS7RMS.js.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-FXYOSA4E.cjs +118 -0
  41. package/dist/chunk-FXYOSA4E.cjs.map +1 -0
  42. package/dist/{chunk-ECXBTUH6.cjs → chunk-GPHQGLR5.cjs} +27 -204
  43. package/dist/chunk-GPHQGLR5.cjs.map +1 -0
  44. package/dist/{chunk-Y26OHHMX.js → chunk-HHQ6J7B6.js} +513 -888
  45. package/dist/chunk-HHQ6J7B6.js.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-KXVFFEGD.js +60 -0
  52. package/dist/chunk-KXVFFEGD.js.map +1 -0
  53. package/dist/chunk-LQB7QLD3.js +288 -0
  54. package/dist/chunk-LQB7QLD3.js.map +1 -0
  55. package/dist/chunk-LUD52ZJF.cjs +726 -0
  56. package/dist/chunk-LUD52ZJF.cjs.map +1 -0
  57. package/dist/{chunk-7UZ5DETZ.js → chunk-MBAG654R.js} +4 -216
  58. package/dist/chunk-MBAG654R.js.map +1 -0
  59. package/dist/chunk-OMP6FAZ6.cjs +183 -0
  60. package/dist/chunk-OMP6FAZ6.cjs.map +1 -0
  61. package/dist/{chunk-WYH4TKS5.js → chunk-PBYRTNQ5.js} +6 -8
  62. package/dist/chunk-PBYRTNQ5.js.map +1 -0
  63. package/dist/chunk-PYREXCZK.js +679 -0
  64. package/dist/chunk-PYREXCZK.js.map +1 -0
  65. package/dist/{chunk-6D22TFLA.cjs → chunk-R3ZECV5P.cjs} +9 -4
  66. package/dist/chunk-R3ZECV5P.cjs.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-WB6XDNU7.js +115 -0
  78. package/dist/chunk-WB6XDNU7.js.map +1 -0
  79. package/dist/{chunk-LTPTW2US.cjs → chunk-WE4QIIVN.cjs} +592 -974
  80. package/dist/chunk-WE4QIIVN.cjs.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-BJ8rBqrO.d.cts +1100 -0
  92. package/dist/index-BxMqCbqE.d.ts +1100 -0
  93. package/dist/index.cjs +507 -1001
  94. package/dist/index.cjs.map +1 -1
  95. package/dist/index.css +6057 -16713
  96. package/dist/index.css.map +1 -1
  97. package/dist/index.d.cts +306 -21
  98. package/dist/index.d.ts +306 -21
  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 +657 -2990
  144. package/dist/theme/index.cjs +12 -16
  145. package/dist/theme/index.css +1 -245
  146. package/dist/theme/index.css.map +1 -1
  147. package/dist/theme/index.d.cts +4 -1
  148. package/dist/theme/index.d.ts +4 -1
  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,77 +1,53 @@
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,
41
+ "aria-hidden": "true",
59
42
  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",
43
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-aurora-void__aurora" }),
44
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-aurora-void__vignette" }),
45
+ children && /* @__PURE__ */ jsxRuntime.jsx(
46
+ "div",
69
47
  {
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" }) })
48
+ style: { position: "relative", zIndex: 1 },
49
+ "aria-hidden": void 0,
50
+ children
75
51
  }
76
52
  )
77
53
  ]
@@ -79,8 +55,49 @@ var AnnouncementBar = React34.forwardRef(
79
55
  );
80
56
  }
81
57
  );
82
- AnnouncementBar.displayName = "AnnouncementBar";
83
- var StickyActionBar = React34.forwardRef(
58
+ AuroraVoid.displayName = "AuroraVoid";
59
+ var Vignette = React24.forwardRef(
60
+ ({ intensity = "base", as: Tag = "div", className, children }, ref) => {
61
+ return /* @__PURE__ */ jsxRuntime.jsx(
62
+ Tag,
63
+ {
64
+ ref,
65
+ className: clsx17__default.default(
66
+ "ds-vignette",
67
+ `ds-vignette--${intensity}`,
68
+ className
69
+ ),
70
+ "aria-hidden": "true",
71
+ children
72
+ }
73
+ );
74
+ }
75
+ );
76
+ Vignette.displayName = "Vignette";
77
+ var GridOverlay = React24.forwardRef(
78
+ ({ cell = "64", opacity = 0.04, mask = true, className }, ref) => {
79
+ const style = {};
80
+ if (opacity !== 0.04) {
81
+ style.opacity = opacity;
82
+ }
83
+ return /* @__PURE__ */ jsxRuntime.jsx(
84
+ "div",
85
+ {
86
+ ref,
87
+ className: clsx17__default.default(
88
+ "ds-grid-overlay",
89
+ `ds-grid-overlay--cell-${cell}`,
90
+ mask && "ds-grid-overlay--masked",
91
+ className
92
+ ),
93
+ style,
94
+ "aria-hidden": "true"
95
+ }
96
+ );
97
+ }
98
+ );
99
+ GridOverlay.displayName = "GridOverlay";
100
+ var StickyActionBar = React24.forwardRef(
84
101
  ({
85
102
  message,
86
103
  primaryAction,
@@ -91,9 +108,9 @@ var StickyActionBar = React34.forwardRef(
91
108
  className,
92
109
  ...props
93
110
  }, ref) => {
94
- const [isVisible, setIsVisible] = React34.useState(false);
111
+ const [isVisible, setIsVisible] = React24.useState(false);
95
112
  const { track } = chunkVC5LMUVQ_cjs.useAnalytics();
96
- React34.useEffect(() => {
113
+ React24.useEffect(() => {
97
114
  const handleScroll = () => {
98
115
  const shouldShow = window.scrollY > showThreshold;
99
116
  if (shouldShow && !isVisible) {
@@ -112,7 +129,7 @@ var StickyActionBar = React34.forwardRef(
112
129
  "div",
113
130
  {
114
131
  ref,
115
- className: clsx27__default.default(
132
+ className: clsx17__default.default(
116
133
  "ds-sticky-action-bar",
117
134
  `ds-sticky-action-bar--${position}`,
118
135
  `ds-sticky-action-bar--${variant}`,
@@ -131,67 +148,92 @@ var StickyActionBar = React34.forwardRef(
131
148
  }
132
149
  );
133
150
  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
- ]
151
+ function parseSetHeight(data) {
152
+ if (!Array.isArray(data) || data[0] !== "highlevel.setHeight") return null;
153
+ const payload = data[1];
154
+ if (typeof payload !== "object" || payload === null) return null;
155
+ const height = payload.height;
156
+ if (typeof height !== "number" || !Number.isFinite(height) || height < 0) return null;
157
+ return { height: Math.min(height, 2e3) };
158
+ }
159
+ function parseBookingComplete(data) {
160
+ if (!Array.isArray(data) || data[0] !== "msgsndr-booking-complete") return null;
161
+ const raw = typeof data[1] === "object" && data[1] !== null ? data[1] : {};
162
+ const payload = {};
163
+ if (typeof raw.date === "string") payload.date = raw.date;
164
+ if (typeof raw.time === "string") payload.time = raw.time;
165
+ if (typeof raw.timezone === "string") payload.timezone = raw.timezone;
166
+ return payload;
167
+ }
168
+ function useGhlMessages(options) {
169
+ const { origin, onSetHeight, onBookingComplete, throttleMs = 200 } = options;
170
+ const lastHeightUpdateRef = React24.useRef(0);
171
+ const onSetHeightRef = React24.useRef(onSetHeight);
172
+ const onBookingCompleteRef = React24.useRef(onBookingComplete);
173
+ React24.useEffect(() => {
174
+ onSetHeightRef.current = onSetHeight;
175
+ onBookingCompleteRef.current = onBookingComplete;
176
+ }, [onSetHeight, onBookingComplete]);
177
+ React24.useEffect(() => {
178
+ const handler = (event) => {
179
+ if (event.origin !== origin) return;
180
+ const setHeightResult = parseSetHeight(event.data);
181
+ if (setHeightResult) {
182
+ const now = performance.now();
183
+ if (now - lastHeightUpdateRef.current >= throttleMs) {
184
+ lastHeightUpdateRef.current = now;
185
+ onSetHeightRef.current?.(setHeightResult.height);
186
+ }
187
+ return;
169
188
  }
170
- );
171
- }
172
- );
173
- PricingToggle.displayName = "PricingToggle";
174
- var BookingEmbed = React34.forwardRef(
189
+ const bookingCompleteResult = parseBookingComplete(event.data);
190
+ if (bookingCompleteResult) {
191
+ onBookingCompleteRef.current?.(bookingCompleteResult);
192
+ }
193
+ };
194
+ window.addEventListener("message", handler);
195
+ return () => window.removeEventListener("message", handler);
196
+ }, [origin, throttleMs]);
197
+ }
198
+ var BookingEmbed = React24.forwardRef(
175
199
  ({
176
200
  url,
177
201
  aspectRatio = "16/9",
178
202
  title = "Book a call",
179
203
  lazyLoad = true,
204
+ expectedHeight,
205
+ onError,
206
+ onReady,
207
+ onEvent,
208
+ showRetry = true,
209
+ maxRetries = 3,
210
+ timeoutMs,
180
211
  className,
181
212
  style,
182
213
  ...props
183
214
  }, ref) => {
184
- const [isLoaded, setIsLoaded] = React34.useState(!lazyLoad);
185
- const [isIframeLoaded, setIsIframeLoaded] = React34.useState(false);
186
- const containerRef = React34.useRef(null);
215
+ const [isLoaded, setIsLoaded] = React24.useState(!lazyLoad);
216
+ const [status, setStatus] = React24.useState("loading");
217
+ const [dynamicHeight, setDynamicHeight] = React24.useState(null);
218
+ const [retryCount, setRetryCount] = React24.useState(0);
219
+ const [iframeKey, setIframeKey] = React24.useState(0);
220
+ const containerRef = React24.useRef(null);
221
+ const timeoutRef = React24.useRef(null);
222
+ const readyCalledRef = React24.useRef(false);
223
+ const retryTimerRef = React24.useRef(null);
187
224
  const { track } = chunkVC5LMUVQ_cjs.useAnalytics();
188
- React34.useEffect(() => {
225
+ const intl = reactIntl.useIntl();
226
+ const handleTrack = React24.useCallback((event, trackProps = {}) => {
227
+ onEvent?.(event, trackProps);
228
+ track(event, trackProps);
229
+ }, [onEvent, track]);
230
+ React24.useEffect(() => {
189
231
  if (!lazyLoad) return;
190
232
  const observer = new IntersectionObserver(
191
233
  (entries) => {
192
234
  if (entries[0].isIntersecting) {
193
235
  setIsLoaded(true);
194
- track("booking_embed_visible", { url });
236
+ handleTrack("booking_embed_visible", { url });
195
237
  observer.disconnect();
196
238
  }
197
239
  },
@@ -201,37 +243,130 @@ var BookingEmbed = React34.forwardRef(
201
243
  observer.observe(containerRef.current);
202
244
  }
203
245
  return () => observer.disconnect();
204
- }, [lazyLoad, url, track]);
205
- const handleIframeLoad = () => {
206
- setIsIframeLoaded(true);
207
- track("booking_embed_loaded", { url });
246
+ }, [lazyLoad, url, handleTrack]);
247
+ React24.useEffect(() => {
248
+ if (status !== "loading") return;
249
+ const ms = timeoutMs ?? 8e3;
250
+ const id = window.setTimeout(() => {
251
+ setStatus("error");
252
+ onError?.("timeout");
253
+ }, ms);
254
+ timeoutRef.current = id;
255
+ return () => {
256
+ window.clearTimeout(id);
257
+ timeoutRef.current = null;
258
+ };
259
+ }, [status, timeoutMs, onError]);
260
+ const handleReady = React24.useCallback(() => {
261
+ if (readyCalledRef.current) return;
262
+ readyCalledRef.current = true;
263
+ setStatus((prev) => prev === "loading" ? "ready" : prev);
264
+ if (timeoutRef.current !== null) {
265
+ window.clearTimeout(timeoutRef.current);
266
+ timeoutRef.current = null;
267
+ }
268
+ onReady?.();
269
+ }, [onReady]);
270
+ const handleRetry = React24.useCallback(() => {
271
+ if (retryCount >= maxRetries) return;
272
+ const delay = 1e3 * Math.pow(2, retryCount);
273
+ setRetryCount((c) => c + 1);
274
+ readyCalledRef.current = false;
275
+ setStatus("loading");
276
+ retryTimerRef.current = window.setTimeout(() => {
277
+ setIframeKey((k) => k + 1);
278
+ }, delay);
279
+ }, [retryCount, maxRetries]);
280
+ React24.useEffect(() => () => {
281
+ if (retryTimerRef.current !== null) window.clearTimeout(retryTimerRef.current);
282
+ }, []);
283
+ const handleSetHeight = React24.useCallback((height) => {
284
+ setDynamicHeight(height);
285
+ handleReady();
286
+ }, [handleReady]);
287
+ const handleBookingComplete = React24.useCallback((payload) => {
288
+ containerRef.current?.dispatchEvent(
289
+ new CustomEvent("booking-complete", {
290
+ detail: {
291
+ date: payload.date,
292
+ time: payload.time,
293
+ timezone: payload.timezone
294
+ },
295
+ bubbles: true
296
+ })
297
+ );
298
+ }, []);
299
+ useGhlMessages({
300
+ origin: "https://meet.sales-mind.ai",
301
+ onSetHeight: handleSetHeight,
302
+ onBookingComplete: handleBookingComplete
303
+ });
304
+ const handleIframeLoad = React24.useCallback(() => {
305
+ handleReady();
306
+ handleTrack("booking_embed_loaded", { url });
307
+ }, [handleReady, handleTrack, url]);
308
+ const containerStyle = {
309
+ "--embed-aspect-ratio": aspectRatio,
310
+ ...dynamicHeight !== null ? { "--embed-dynamic-height": `${dynamicHeight}px` } : {},
311
+ ...expectedHeight !== void 0 ? { "--embed-min-height": `${expectedHeight}px` } : {},
312
+ ...style
208
313
  };
314
+ const handleRef = React24.useCallback((node) => {
315
+ containerRef.current = node;
316
+ if (typeof ref === "function") {
317
+ ref(node);
318
+ } else if (ref) {
319
+ ref.current = node;
320
+ }
321
+ }, [ref]);
209
322
  return /* @__PURE__ */ jsxRuntime.jsxs(
210
323
  "div",
211
324
  {
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 },
325
+ ref: handleRef,
326
+ className: clsx17__default.default(
327
+ "ds-booking-embed",
328
+ dynamicHeight !== null && "ds-booking-embed--dynamic-height",
329
+ status === "loading" && "ds-booking-embed--loading",
330
+ status === "ready" && "ds-booking-embed--ready",
331
+ status === "error" && "ds-booking-embed--error",
332
+ className
333
+ ),
334
+ style: containerStyle,
335
+ "aria-busy": status === "loading" || void 0,
219
336
  ...props,
220
337
  children: [
221
- !isIframeLoaded && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-booking-embed__skeleton", children: [
338
+ status !== "ready" && status !== "error" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-booking-embed__skeleton", children: [
222
339
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-booking-embed__spinner" }),
223
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Loading calendar..." })
340
+ /* @__PURE__ */ jsxRuntime.jsx("p", { children: /* @__PURE__ */ jsxRuntime.jsx(reactIntl.FormattedMessage, { ...chunkGPHQGLR5_cjs.bookingEmbedMessages.loading }) })
224
341
  ] }),
342
+ 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: [
343
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CalendarOff, { className: "ds-booking-embed__error-icon", "aria-hidden": true }),
344
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-booking-embed__error-title", children: intl.formatMessage(chunkGPHQGLR5_cjs.bookingEmbedMessages.errorTitle) }),
345
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-booking-embed__error-description", children: intl.formatMessage(chunkGPHQGLR5_cjs.bookingEmbedMessages.errorDescription) }),
346
+ 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(
347
+ chunkLJADZITX_cjs.OutboundLink,
348
+ {
349
+ href: url,
350
+ context: "booking-embed-fallback",
351
+ openInNewTab: true,
352
+ className: "ds-button ds-button--outline ds-button--md",
353
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-button__content", children: /* @__PURE__ */ jsxRuntime.jsx(reactIntl.FormattedMessage, { ...chunkGPHQGLR5_cjs.bookingEmbedMessages.openInNewTab }) })
354
+ }
355
+ )
356
+ ] }) }),
225
357
  isLoaded && /* @__PURE__ */ jsxRuntime.jsx(
226
358
  "iframe",
227
359
  {
228
360
  src: url,
229
361
  title,
230
- className: clsx27__default.default("ds-booking-embed__iframe", isIframeLoaded && "ds-booking-embed__iframe--loaded"),
362
+ className: clsx17__default.default(
363
+ "ds-booking-embed__iframe",
364
+ status === "ready" && "ds-booking-embed__iframe--loaded"
365
+ ),
231
366
  onLoad: handleIframeLoad,
232
- frameBorder: "0",
233
- scrolling: "no"
234
- }
367
+ frameBorder: "0"
368
+ },
369
+ iframeKey
235
370
  )
236
371
  ]
237
372
  }
@@ -239,7 +374,7 @@ var BookingEmbed = React34.forwardRef(
239
374
  }
240
375
  );
241
376
  BookingEmbed.displayName = "BookingEmbed";
242
- var ProblemAgitation = React34.forwardRef(
377
+ var ProblemAgitation = React24.forwardRef(
243
378
  ({
244
379
  title,
245
380
  description,
@@ -253,7 +388,7 @@ var ProblemAgitation = React34.forwardRef(
253
388
  "section",
254
389
  {
255
390
  ref,
256
- className: clsx27__default.default("ds-problem-agitation", className),
391
+ className: clsx17__default.default("ds-problem-agitation", className),
257
392
  ...props,
258
393
  children: [
259
394
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-problem-agitation__header", children: [
@@ -265,7 +400,7 @@ var ProblemAgitation = React34.forwardRef(
265
400
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__mobile-label ds-problem-agitation__mobile-label--new", children: newWayLabel }),
266
401
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__column-header ds-problem-agitation__column-header--old", children: oldWayLabel }),
267
402
  /* @__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: [
403
+ points.map((point, index) => /* @__PURE__ */ jsxRuntime.jsxs(React24__default.default.Fragment, { children: [
269
404
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-problem-agitation__cell ds-problem-agitation__cell--old", children: [
270
405
  /* @__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
406
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__content", children: point.problem })
@@ -282,296 +417,7 @@ var ProblemAgitation = React34.forwardRef(
282
417
  }
283
418
  );
284
419
  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(
420
+ var CaseStudyCard = React24.forwardRef(
575
421
  ({
576
422
  company,
577
423
  logo,
@@ -588,7 +434,7 @@ var CaseStudyCard = React34.forwardRef(
588
434
  "article",
589
435
  {
590
436
  ref,
591
- className: clsx27__default.default("ds-case-study-card", className),
437
+ className: clsx17__default.default("ds-case-study-card", className),
592
438
  ...props,
593
439
  children: /* @__PURE__ */ jsxRuntime.jsxs(chunkLJADZITX_cjs.OutboundLink, { href, context: "case-study-card", className: "ds-case-study-card__link", openInNewTab: false, children: [
594
440
  coverImage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-case-study-card__image-wrap", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -604,231 +450,33 @@ var CaseStudyCard = React34.forwardRef(
604
450
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__body", children: [
605
451
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__header", children: [
606
452
  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
- )
453
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__company-info", children: [
454
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-case-study-card__company", children: company }),
455
+ industry && /* @__PURE__ */ jsxRuntime.jsx(chunkJPUJWI7F_cjs.Badge, { variant: "secondary", className: "ds-case-study-card__industry", children: industry })
456
+ ] })
457
+ ] }),
458
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-case-study-card__headline", children: headline }),
459
+ 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: [
460
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-case-study-card__metric-value", children: [
461
+ metric.prefix,
462
+ metric.value,
463
+ metric.suffix
464
+ ] }),
465
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-case-study-card__metric-label", children: metric.label })
466
+ ] }, i)) }),
467
+ quote && /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "ds-case-study-card__quote", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
468
+ "\u201C",
469
+ quote,
470
+ "\u201D"
471
+ ] }) })
472
+ ] })
473
+ ] })
726
474
  }
727
475
  );
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
476
  }
829
477
  );
830
- ExitIntentOverlay.displayName = "ExitIntentOverlay";
831
- var BeforeAfterBlock = React34.forwardRef(
478
+ CaseStudyCard.displayName = "CaseStudyCard";
479
+ var BeforeAfterBlock = React24.forwardRef(
832
480
  ({
833
481
  eyebrow,
834
482
  title,
@@ -841,7 +489,7 @@ var BeforeAfterBlock = React34.forwardRef(
841
489
  const renderItems = (items, side) => items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs(
842
490
  "li",
843
491
  {
844
- className: clsx27__default.default(
492
+ className: clsx17__default.default(
845
493
  "ds-before-after__item",
846
494
  item.sentiment && `ds-before-after__item--${item.sentiment}`
847
495
  ),
@@ -853,14 +501,14 @@ var BeforeAfterBlock = React34.forwardRef(
853
501
  i
854
502
  ));
855
503
  return /* @__PURE__ */ jsxRuntime.jsxs(
856
- chunkBJZ2DKS5_cjs.SectionShell,
504
+ chunk6QIQCUYC_cjs.SectionShell,
857
505
  {
858
506
  ref,
859
- className: clsx27__default.default("ds-before-after", className),
507
+ className: clsx17__default.default("ds-before-after", className),
860
508
  ...props,
861
509
  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: [
510
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title }),
511
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx17__default.default("ds-before-after__layout", `ds-before-after__layout--${variant}`), children: [
864
512
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-before-after__column ds-before-after__column--before", children: [
865
513
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-before-after__label", children: before.label }),
866
514
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-before-after__list", children: renderItems(before.items, "before") }),
@@ -879,7 +527,7 @@ var BeforeAfterBlock = React34.forwardRef(
879
527
  }
880
528
  );
881
529
  BeforeAfterBlock.displayName = "BeforeAfterBlock";
882
- var CompetitorDiff = React34.forwardRef(
530
+ var CompetitorDiff = React24.forwardRef(
883
531
  ({
884
532
  eyebrow,
885
533
  title,
@@ -893,13 +541,13 @@ var CompetitorDiff = React34.forwardRef(
893
541
  ...props
894
542
  }, ref) => {
895
543
  return /* @__PURE__ */ jsxRuntime.jsxs(
896
- chunkBJZ2DKS5_cjs.SectionShell,
544
+ chunk6QIQCUYC_cjs.SectionShell,
897
545
  {
898
546
  ref,
899
- className: clsx27__default.default("ds-competitor-diff", className),
547
+ className: clsx17__default.default("ds-competitor-diff", className),
900
548
  ...props,
901
549
  children: [
902
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
550
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
903
551
  variant === "table" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__table", role: "table", "aria-label": "Feature comparison", children: [
904
552
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__thead", role: "row", children: [
905
553
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-competitor-diff__th", role: "columnheader" }),
@@ -954,239 +602,19 @@ var CompetitorDiff = React34.forwardRef(
954
602
  item.us
955
603
  ] })
956
604
  ] }, 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 }) }) })
605
+ 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
606
  ]
959
607
  }
960
608
  );
961
609
  }
962
610
  );
963
611
  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
612
  var STATUS_LABELS = {
1185
613
  certified: "Certified",
1186
614
  "in-progress": "In Progress",
1187
615
  planned: "Planned"
1188
616
  };
1189
- var ComplianceGrid = React34.forwardRef(
617
+ var ComplianceGrid = React24.forwardRef(
1190
618
  ({
1191
619
  eyebrow,
1192
620
  title,
@@ -1196,18 +624,18 @@ var ComplianceGrid = React34.forwardRef(
1196
624
  ...props
1197
625
  }, ref) => {
1198
626
  return /* @__PURE__ */ jsxRuntime.jsxs(
1199
- chunkBJZ2DKS5_cjs.SectionShell,
627
+ chunk6QIQCUYC_cjs.SectionShell,
1200
628
  {
1201
629
  ref,
1202
- className: clsx27__default.default("ds-compliance-grid", className),
630
+ className: clsx17__default.default("ds-compliance-grid", className),
1203
631
  ...props,
1204
632
  children: [
1205
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
633
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1206
634
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-compliance-grid__items", children: items.map((item, i) => {
1207
635
  const inner = /* @__PURE__ */ jsxRuntime.jsxs(
1208
636
  "div",
1209
637
  {
1210
- className: clsx27__default.default(
638
+ className: clsx17__default.default(
1211
639
  "ds-compliance-grid__item",
1212
640
  `ds-compliance-grid__item--${item.status}`
1213
641
  ),
@@ -1216,9 +644,9 @@ var ComplianceGrid = React34.forwardRef(
1216
644
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-compliance-grid__info", children: [
1217
645
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-compliance-grid__name", children: item.name }),
1218
646
  /* @__PURE__ */ jsxRuntime.jsx(
1219
- chunkHCZW5AJN_cjs.Badge,
647
+ chunkJPUJWI7F_cjs.Badge,
1220
648
  {
1221
- className: clsx27__default.default(
649
+ className: clsx17__default.default(
1222
650
  "ds-compliance-grid__status",
1223
651
  `ds-compliance-grid__status--${item.status}`
1224
652
  ),
@@ -1232,7 +660,7 @@ var ComplianceGrid = React34.forwardRef(
1232
660
  },
1233
661
  i
1234
662
  );
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);
663
+ 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
664
  }) })
1237
665
  ]
1238
666
  }
@@ -1240,7 +668,7 @@ var ComplianceGrid = React34.forwardRef(
1240
668
  }
1241
669
  );
1242
670
  ComplianceGrid.displayName = "ComplianceGrid";
1243
- var ArchitectureDiagram = React34.forwardRef(
671
+ var ArchitectureDiagram = React24.forwardRef(
1244
672
  ({
1245
673
  nodes,
1246
674
  connections,
@@ -1253,7 +681,7 @@ var ArchitectureDiagram = React34.forwardRef(
1253
681
  "div",
1254
682
  {
1255
683
  ref,
1256
- className: clsx27__default.default(
684
+ className: clsx17__default.default(
1257
685
  "ds-architecture",
1258
686
  `ds-architecture--${direction}`,
1259
687
  className
@@ -1261,12 +689,12 @@ var ArchitectureDiagram = React34.forwardRef(
1261
689
  role: "img",
1262
690
  "aria-label": "Architecture diagram",
1263
691
  ...props,
1264
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-architecture__nodes", children: nodes.map((node, i) => /* @__PURE__ */ jsxRuntime.jsxs(React34__default.default.Fragment, { children: [
692
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-architecture__nodes", children: nodes.map((node, i) => /* @__PURE__ */ jsxRuntime.jsxs(React24__default.default.Fragment, { children: [
1265
693
  i > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-architecture__connection", "aria-hidden": "true", children: [
1266
694
  /* @__PURE__ */ jsxRuntime.jsx(
1267
695
  "div",
1268
696
  {
1269
- className: clsx27__default.default(
697
+ className: clsx17__default.default(
1270
698
  "ds-architecture__line",
1271
699
  connections.find(
1272
700
  (c) => c.from === nodes[i - 1]?.id && c.to === node.id
@@ -1284,7 +712,7 @@ var ArchitectureDiagram = React34.forwardRef(
1284
712
  /* @__PURE__ */ jsxRuntime.jsxs(
1285
713
  "div",
1286
714
  {
1287
- className: clsx27__default.default(
715
+ className: clsx17__default.default(
1288
716
  "ds-architecture__node",
1289
717
  `ds-architecture__node--${node.type}`
1290
718
  ),
@@ -1311,7 +739,7 @@ function getCookieSegment(name) {
1311
739
  const match = document.cookie.match(new RegExp(`(?:^|;\\s*)${name}=([^;]*)`));
1312
740
  return match ? decodeURIComponent(match[1]) : null;
1313
741
  }
1314
- var SegmentSwitch = React34.forwardRef(
742
+ var SegmentSwitch = React24.forwardRef(
1315
743
  ({
1316
744
  segment: controlledSegment,
1317
745
  segments,
@@ -1322,7 +750,7 @@ var SegmentSwitch = React34.forwardRef(
1322
750
  className,
1323
751
  ...props
1324
752
  }, ref) => {
1325
- const resolvedSegment = React34.useMemo(() => {
753
+ const resolvedSegment = React24.useMemo(() => {
1326
754
  if (controlledSegment) return controlledSegment;
1327
755
  switch (source) {
1328
756
  case "utm":
@@ -1335,11 +763,11 @@ var SegmentSwitch = React34.forwardRef(
1335
763
  }, [controlledSegment, source, utmParam, cookieName]);
1336
764
  const content = resolvedSegment && segments[resolvedSegment] ? segments[resolvedSegment] : fallback;
1337
765
  if (!content) return null;
1338
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx27__default.default(className), ...props, children: content });
766
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx17__default.default(className), ...props, children: content });
1339
767
  }
1340
768
  );
1341
769
  SegmentSwitch.displayName = "SegmentSwitch";
1342
- var IntentCTA = React34.forwardRef(
770
+ var IntentCTA = React24.forwardRef(
1343
771
  ({
1344
772
  stages,
1345
773
  defaultCta,
@@ -1347,14 +775,14 @@ var IntentCTA = React34.forwardRef(
1347
775
  className,
1348
776
  ...props
1349
777
  }, 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(() => {
778
+ const [activeStageIndex, setActiveStageIndex] = React24.useState(-1);
779
+ const timeRef = React24.useRef(0);
780
+ const timerRef = React24.useRef(null);
781
+ const pageCountRef = React24.useRef(pageCount);
782
+ React24.useEffect(() => {
1355
783
  pageCountRef.current = pageCount;
1356
784
  }, [pageCount]);
1357
- React34.useEffect(() => {
785
+ React24.useEffect(() => {
1358
786
  if (typeof window === "undefined") return;
1359
787
  timerRef.current = setInterval(() => {
1360
788
  timeRef.current += 1;
@@ -1398,10 +826,10 @@ var IntentCTA = React34.forwardRef(
1398
826
  "div",
1399
827
  {
1400
828
  ref,
1401
- className: clsx27__default.default("ds-intent-cta", className),
829
+ className: clsx17__default.default("ds-intent-cta", className),
1402
830
  ...props,
1403
831
  children: /* @__PURE__ */ jsxRuntime.jsx(
1404
- chunkH2Y6BSTL_cjs.Button,
832
+ chunk7EUR3AKV_cjs.Button,
1405
833
  {
1406
834
  variant: activeCta.variant ?? "primary",
1407
835
  asChild: true,
@@ -1413,7 +841,7 @@ var IntentCTA = React34.forwardRef(
1413
841
  }
1414
842
  );
1415
843
  IntentCTA.displayName = "IntentCTA";
1416
- var EvolutionTimeline = React34.forwardRef(
844
+ var EvolutionTimeline = React24.forwardRef(
1417
845
  ({
1418
846
  eyebrow,
1419
847
  title,
@@ -1425,26 +853,26 @@ var EvolutionTimeline = React34.forwardRef(
1425
853
  ...props
1426
854
  }, ref) => {
1427
855
  return /* @__PURE__ */ jsxRuntime.jsxs(
1428
- chunkBJZ2DKS5_cjs.SectionShell,
856
+ chunk6QIQCUYC_cjs.SectionShell,
1429
857
  {
1430
858
  ref,
1431
- className: clsx27__default.default("ds-evolution-timeline", className),
859
+ className: clsx17__default.default("ds-evolution-timeline", className),
1432
860
  ...props,
1433
861
  children: [
1434
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
862
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1435
863
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-evolution-timeline__track", children: [
1436
864
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__line", "aria-hidden": "true" }),
1437
865
  eras.map((era, i) => /* @__PURE__ */ jsxRuntime.jsxs(
1438
866
  "div",
1439
867
  {
1440
- className: clsx27__default.default(
868
+ className: clsx17__default.default(
1441
869
  "ds-evolution-timeline__era",
1442
870
  `ds-evolution-timeline__era--${era.sentiment}`,
1443
871
  era.current && "ds-evolution-timeline__era--current"
1444
872
  ),
1445
873
  children: [
1446
874
  /* @__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" }),
875
+ youAreHere === i && /* @__PURE__ */ jsxRuntime.jsx(chunkJPUJWI7F_cjs.Badge, { className: "ds-evolution-timeline__you-are-here", children: "Most tools are here" }),
1448
876
  era.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__icon", "aria-hidden": "true", children: era.icon }),
1449
877
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-evolution-timeline__content", children: [
1450
878
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-evolution-timeline__period", children: era.period }),
@@ -1460,14 +888,14 @@ var EvolutionTimeline = React34.forwardRef(
1460
888
  i
1461
889
  ))
1462
890
  ] }),
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 }) }) })
891
+ 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
892
  ]
1465
893
  }
1466
894
  );
1467
895
  }
1468
896
  );
1469
897
  EvolutionTimeline.displayName = "EvolutionTimeline";
1470
- var EcosystemDiagram = React34.forwardRef(
898
+ var EcosystemDiagram = React24.forwardRef(
1471
899
  ({
1472
900
  eyebrow,
1473
901
  title,
@@ -1480,13 +908,13 @@ var EcosystemDiagram = React34.forwardRef(
1480
908
  ...props
1481
909
  }, ref) => {
1482
910
  return /* @__PURE__ */ jsxRuntime.jsxs(
1483
- chunkBJZ2DKS5_cjs.SectionShell,
911
+ chunk6QIQCUYC_cjs.SectionShell,
1484
912
  {
1485
913
  ref,
1486
- className: clsx27__default.default("ds-ecosystem", `ds-ecosystem--${variant}`, className),
914
+ className: clsx17__default.default("ds-ecosystem", `ds-ecosystem--${variant}`, className),
1487
915
  ...props,
1488
916
  children: [
1489
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
917
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1490
918
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-ecosystem__diagram", role: "img", "aria-label": "Ecosystem diagram", children: [
1491
919
  centerLabel && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-ecosystem__center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-ecosystem__center-label", children: centerLabel }) }),
1492
920
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-ecosystem__layers", children: layers.map((layer, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-ecosystem__layer", children: [
@@ -1510,7 +938,7 @@ function formatNumber(n, prefix, suffix) {
1510
938
  const formatted = n >= 1e3 ? n.toLocaleString("en-US", { maximumFractionDigits: 0 }) : String(Math.round(n * 10) / 10);
1511
939
  return `${prefix ?? ""}${formatted}${suffix ?? ""}`;
1512
940
  }
1513
- var ValueAnchor = React34.forwardRef(
941
+ var ValueAnchor = React24.forwardRef(
1514
942
  ({
1515
943
  eyebrow,
1516
944
  title,
@@ -1521,26 +949,26 @@ var ValueAnchor = React34.forwardRef(
1521
949
  className,
1522
950
  ...props
1523
951
  }, ref) => {
1524
- const initialValues = React34.useMemo(() => {
952
+ const initialValues = React24.useMemo(() => {
1525
953
  const vals = {};
1526
954
  inputs.forEach((inp) => {
1527
955
  vals[inp.name] = inp.defaultValue;
1528
956
  });
1529
957
  return vals;
1530
958
  }, [inputs]);
1531
- const [values, setValues] = React34.useState(initialValues);
1532
- const handleChange = React34.useCallback((name, value) => {
959
+ const [values, setValues] = React24.useState(initialValues);
960
+ const handleChange = React24.useCallback((name, value) => {
1533
961
  setValues((prev) => ({ ...prev, [name]: value }));
1534
962
  }, []);
1535
- const output = React34.useMemo(() => calculate(values), [values, calculate]);
963
+ const output = React24.useMemo(() => calculate(values), [values, calculate]);
1536
964
  return /* @__PURE__ */ jsxRuntime.jsxs(
1537
- chunkBJZ2DKS5_cjs.SectionShell,
965
+ chunk6QIQCUYC_cjs.SectionShell,
1538
966
  {
1539
967
  ref,
1540
- className: clsx27__default.default("ds-value-anchor", className),
968
+ className: clsx17__default.default("ds-value-anchor", className),
1541
969
  ...props,
1542
970
  children: [
1543
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
971
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1544
972
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__layout", children: [
1545
973
  /* @__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
974
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "ds-value-anchor__input-label", children: [
@@ -1548,19 +976,22 @@ var ValueAnchor = React34.forwardRef(
1548
976
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__input-value", children: formatNumber(values[input.name], input.prefix, input.suffix) })
1549
977
  ] }),
1550
978
  input.type === "slider" ? /* @__PURE__ */ jsxRuntime.jsx(
1551
- chunkHCZW5AJN_cjs.Slider,
979
+ "input",
1552
980
  {
981
+ type: "range",
982
+ className: "ds-slider",
1553
983
  value: values[input.name],
1554
984
  min: input.min ?? 0,
1555
985
  max: input.max ?? 100,
1556
986
  step: input.step ?? 1,
1557
- onValueChange: (v) => handleChange(input.name, v),
1558
- inputLabel: input.label
987
+ onChange: (e) => handleChange(input.name, Number(e.target.value)),
988
+ "aria-label": input.label
1559
989
  }
1560
990
  ) : /* @__PURE__ */ jsxRuntime.jsx(
1561
- chunkE7D6EKJ4_cjs.TextField,
991
+ "input",
1562
992
  {
1563
993
  type: "number",
994
+ className: "ds-text-field",
1564
995
  value: String(values[input.name]),
1565
996
  onChange: (e) => handleChange(input.name, Number(e.target.value) || 0)
1566
997
  }
@@ -1591,7 +1022,7 @@ var ValueAnchor = React34.forwardRef(
1591
1022
  ] })
1592
1023
  ] })
1593
1024
  ] }),
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 }) }) })
1025
+ 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
1026
  ]
1596
1027
  }
1597
1028
  );
@@ -1603,7 +1034,7 @@ var STATUS_LABELS2 = {
1603
1034
  "in-progress": "In Progress",
1604
1035
  planned: "Planned"
1605
1036
  };
1606
- var EnterpriseSignaling = React34.forwardRef(
1037
+ var EnterpriseSignaling = React24.forwardRef(
1607
1038
  ({
1608
1039
  eyebrow,
1609
1040
  title,
@@ -1619,20 +1050,20 @@ var EnterpriseSignaling = React34.forwardRef(
1619
1050
  "div",
1620
1051
  {
1621
1052
  ref,
1622
- className: clsx27__default.default("ds-enterprise-signaling", "ds-enterprise-signaling--strip", className),
1053
+ className: clsx17__default.default("ds-enterprise-signaling", "ds-enterprise-signaling--strip", className),
1623
1054
  ...props,
1624
1055
  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
1056
  }
1626
1057
  );
1627
1058
  }
1628
1059
  return /* @__PURE__ */ jsxRuntime.jsxs(
1629
- chunkBJZ2DKS5_cjs.SectionShell,
1060
+ chunk6QIQCUYC_cjs.SectionShell,
1630
1061
  {
1631
1062
  ref,
1632
- className: clsx27__default.default("ds-enterprise-signaling", `ds-enterprise-signaling--${variant}`, className),
1063
+ className: clsx17__default.default("ds-enterprise-signaling", `ds-enterprise-signaling--${variant}`, className),
1633
1064
  ...props,
1634
1065
  children: [
1635
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
1066
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1636
1067
  /* @__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
1068
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-enterprise-signaling__category-header", children: [
1638
1069
  cat.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-enterprise-signaling__category-icon", children: cat.icon }),
@@ -1642,16 +1073,16 @@ var EnterpriseSignaling = React34.forwardRef(
1642
1073
  const inner = /* @__PURE__ */ jsxRuntime.jsxs(
1643
1074
  "div",
1644
1075
  {
1645
- className: clsx27__default.default(
1076
+ className: clsx17__default.default(
1646
1077
  "ds-enterprise-signaling__item",
1647
1078
  `ds-enterprise-signaling__item--${item.status}`
1648
1079
  ),
1649
1080
  children: [
1650
1081
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-enterprise-signaling__item-name", children: item.name }),
1651
1082
  /* @__PURE__ */ jsxRuntime.jsx(
1652
- chunkHCZW5AJN_cjs.Badge,
1083
+ chunkJPUJWI7F_cjs.Badge,
1653
1084
  {
1654
- className: clsx27__default.default("ds-enterprise-signaling__item-status", `ds-enterprise-signaling__item-status--${item.status}`),
1085
+ className: clsx17__default.default("ds-enterprise-signaling__item-status", `ds-enterprise-signaling__item-status--${item.status}`),
1655
1086
  variant: "outline",
1656
1087
  children: STATUS_LABELS2[item.status]
1657
1088
  }
@@ -1661,7 +1092,7 @@ var EnterpriseSignaling = React34.forwardRef(
1661
1092
  },
1662
1093
  ii
1663
1094
  );
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);
1095
+ 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
1096
  }) })
1666
1097
  ] }, ci)) }),
1667
1098
  sla && sla.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-enterprise-signaling__sla", children: [
@@ -1685,7 +1116,7 @@ var EnterpriseSignaling = React34.forwardRef(
1685
1116
  }
1686
1117
  );
1687
1118
  EnterpriseSignaling.displayName = "EnterpriseSignaling";
1688
- var IntelligenceBlock = React34.forwardRef(
1119
+ var IntelligenceBlock = React24.forwardRef(
1689
1120
  ({
1690
1121
  eyebrow,
1691
1122
  title,
@@ -1727,13 +1158,13 @@ var IntelligenceBlock = React34.forwardRef(
1727
1158
  ] })
1728
1159
  ] }, i)) });
1729
1160
  return /* @__PURE__ */ jsxRuntime.jsxs(
1730
- chunkBJZ2DKS5_cjs.SectionShell,
1161
+ chunk6QIQCUYC_cjs.SectionShell,
1731
1162
  {
1732
1163
  ref,
1733
- className: clsx27__default.default("ds-intelligence", `ds-intelligence--${variant}`, className),
1164
+ className: clsx17__default.default("ds-intelligence", `ds-intelligence--${variant}`, className),
1734
1165
  ...props,
1735
1166
  children: [
1736
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
1167
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1737
1168
  variant === "capabilities-first" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1738
1169
  capabilitiesBlock,
1739
1170
  metricsBlock
@@ -1750,7 +1181,7 @@ IntelligenceBlock.displayName = "IntelligenceBlock";
1750
1181
  function fmtNum(n, prefix, suffix) {
1751
1182
  return `${prefix ?? ""}${n.toLocaleString("en-US", { maximumFractionDigits: 0 })}${suffix ?? ""}`;
1752
1183
  }
1753
- var PartnerValueProp = React34.forwardRef(
1184
+ var PartnerValueProp = React24.forwardRef(
1754
1185
  ({
1755
1186
  eyebrow,
1756
1187
  title,
@@ -1765,7 +1196,7 @@ var PartnerValueProp = React34.forwardRef(
1765
1196
  className,
1766
1197
  ...props
1767
1198
  }, ref) => {
1768
- const initialValues = React34.useMemo(() => {
1199
+ const initialValues = React24.useMemo(() => {
1769
1200
  if (!calculator) return {};
1770
1201
  const vals = {};
1771
1202
  calculator.inputs.forEach((inp) => {
@@ -1773,22 +1204,22 @@ var PartnerValueProp = React34.forwardRef(
1773
1204
  });
1774
1205
  return vals;
1775
1206
  }, [calculator]);
1776
- const [values, setValues] = React34.useState(initialValues);
1777
- const handleChange = React34.useCallback((name, value) => {
1207
+ const [values, setValues] = React24.useState(initialValues);
1208
+ const handleChange = React24.useCallback((name, value) => {
1778
1209
  setValues((prev) => ({ ...prev, [name]: value }));
1779
1210
  }, []);
1780
- const calcOutput = React34.useMemo(() => {
1211
+ const calcOutput = React24.useMemo(() => {
1781
1212
  if (!calculator) return null;
1782
1213
  return calculator.calculate(values);
1783
1214
  }, [values, calculator]);
1784
1215
  return /* @__PURE__ */ jsxRuntime.jsxs(
1785
- chunkBJZ2DKS5_cjs.SectionShell,
1216
+ chunk6QIQCUYC_cjs.SectionShell,
1786
1217
  {
1787
1218
  ref,
1788
- className: clsx27__default.default("ds-partner-vp", className),
1219
+ className: clsx17__default.default("ds-partner-vp", className),
1789
1220
  ...props,
1790
1221
  children: [
1791
- /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionHeader, { eyebrow, title, subtitle }),
1222
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6QIQCUYC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1792
1223
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__layout", children: [
1793
1224
  /* @__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
1225
  b.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-partner-vp__benefit-icon", "aria-hidden": "true", children: b.icon }),
@@ -1799,22 +1230,21 @@ var PartnerValueProp = React34.forwardRef(
1799
1230
  ] }, i)) }),
1800
1231
  calculator && calcOutput && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calculator", children: [
1801
1232
  /* @__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
- ] }),
1233
+ 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: [
1234
+ input.label,
1235
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-value", children: fmtNum(values[input.name], input.prefix, input.suffix) }),
1807
1236
  /* @__PURE__ */ jsxRuntime.jsx(
1808
- chunkHCZW5AJN_cjs.Slider,
1237
+ "input",
1809
1238
  {
1239
+ type: "range",
1810
1240
  value: values[input.name],
1811
1241
  min: input.min ?? 0,
1812
1242
  max: input.max ?? 100,
1813
- inputLabel: input.label,
1814
- onValueChange: (v) => handleChange(input.name, v)
1243
+ "aria-label": input.label,
1244
+ onChange: (e) => handleChange(input.name, Number(e.target.value))
1815
1245
  }
1816
1246
  )
1817
- ] }, input.name)),
1247
+ ] }) }, input.name)),
1818
1248
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-results", children: [
1819
1249
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-margin", children: [
1820
1250
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-partner-vp__calc-margin-value", children: [
@@ -1859,16 +1289,88 @@ var PartnerValueProp = React34.forwardRef(
1859
1289
  ] }, i)) })
1860
1290
  ] })
1861
1291
  ] }),
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 }) }) })
1292
+ /* @__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
1293
  ]
1864
1294
  }
1865
1295
  );
1866
1296
  }
1867
1297
  );
1868
1298
  PartnerValueProp.displayName = "PartnerValueProp";
1869
- var ComparisonTable = React34__default.default.forwardRef(
1299
+ var PricingCard = React24__default.default.forwardRef(
1300
+ ({
1301
+ tier,
1302
+ tagline,
1303
+ price,
1304
+ priceSuffix,
1305
+ anchorPrice,
1306
+ badge,
1307
+ highlighted = false,
1308
+ features = [],
1309
+ cta,
1310
+ secondaryCta,
1311
+ footerNote,
1312
+ className,
1313
+ children,
1314
+ ...props
1315
+ }, ref) => {
1316
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1317
+ "div",
1318
+ {
1319
+ ref,
1320
+ className: clsx17__default.default(
1321
+ "ds-pricing-card",
1322
+ highlighted && "ds-pricing-card--highlighted",
1323
+ className
1324
+ ),
1325
+ ...props,
1326
+ children: [
1327
+ badge && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-pricing-card__badge", children: badge }),
1328
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__header", children: [
1329
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-pricing-card__tier", children: tier }),
1330
+ tagline && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-pricing-card__tagline", children: tagline })
1331
+ ] }),
1332
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__price-block", children: [
1333
+ anchorPrice && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__anchor-price", children: anchorPrice }),
1334
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__price-row", children: [
1335
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__price", children: price }),
1336
+ priceSuffix && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__price-suffix", children: priceSuffix })
1337
+ ] })
1338
+ ] }),
1339
+ features.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-pricing-card__features", children: features.map((feature, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1340
+ "li",
1341
+ {
1342
+ className: clsx17__default.default(
1343
+ "ds-pricing-card__feature",
1344
+ feature.included === false && "ds-pricing-card__feature--excluded"
1345
+ ),
1346
+ children: [
1347
+ /* @__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: [
1348
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
1349
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
1350
+ ] }) : /* @__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" }) }) }),
1351
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-pricing-card__feature-text", children: [
1352
+ feature.text,
1353
+ feature.detail && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-pricing-card__feature-detail", children: feature.detail })
1354
+ ] })
1355
+ ]
1356
+ },
1357
+ idx
1358
+ )) }),
1359
+ (cta || secondaryCta) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-pricing-card__cta-area", children: [
1360
+ cta,
1361
+ secondaryCta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-pricing-card__secondary-cta", children: secondaryCta })
1362
+ ] }),
1363
+ footerNote && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-pricing-card__footer-note", children: footerNote }),
1364
+ children
1365
+ ]
1366
+ }
1367
+ );
1368
+ }
1369
+ );
1370
+ PricingCard.displayName = "PricingCard";
1371
+ var ComparisonTable = React24__default.default.forwardRef(
1870
1372
  ({ 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: [
1373
+ 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
1374
  caption && /* @__PURE__ */ jsxRuntime.jsx("caption", { className: "ds-comparison-table__caption", children: caption }),
1873
1375
  /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "ds-comparison-table__head", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1874
1376
  /* @__PURE__ */ jsxRuntime.jsx("th", { className: "ds-comparison-table__corner", scope: "col", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-visually-hidden", children: "Feature" }) }),
@@ -1876,7 +1378,7 @@ var ComparisonTable = React34__default.default.forwardRef(
1876
1378
  "th",
1877
1379
  {
1878
1380
  scope: "col",
1879
- className: clsx27__default.default(
1381
+ className: clsx17__default.default(
1880
1382
  "ds-comparison-table__col-header",
1881
1383
  col.highlighted && "ds-comparison-table__col-header--highlighted"
1882
1384
  ),
@@ -1901,7 +1403,7 @@ var ComparisonTable = React34__default.default.forwardRef(
1901
1403
  row.values.map((val, colIdx) => /* @__PURE__ */ jsxRuntime.jsx(
1902
1404
  "td",
1903
1405
  {
1904
- className: clsx27__default.default(
1406
+ className: clsx17__default.default(
1905
1407
  "ds-comparison-table__cell",
1906
1408
  columns[colIdx]?.highlighted && "ds-comparison-table__cell--highlighted"
1907
1409
  ),
@@ -1915,7 +1417,7 @@ var ComparisonTable = React34__default.default.forwardRef(
1915
1417
  }
1916
1418
  );
1917
1419
  ComparisonTable.displayName = "ComparisonTable";
1918
- var GuaranteeHighlight = React34__default.default.forwardRef(
1420
+ var GuaranteeHighlight = React24__default.default.forwardRef(
1919
1421
  ({
1920
1422
  guarantee,
1921
1423
  detail,
@@ -1929,7 +1431,7 @@ var GuaranteeHighlight = React34__default.default.forwardRef(
1929
1431
  "div",
1930
1432
  {
1931
1433
  ref,
1932
- className: clsx27__default.default(
1434
+ className: clsx17__default.default(
1933
1435
  "ds-guarantee",
1934
1436
  `ds-guarantee--${variant}`,
1935
1437
  className
@@ -1948,7 +1450,7 @@ var GuaranteeHighlight = React34__default.default.forwardRef(
1948
1450
  }
1949
1451
  );
1950
1452
  GuaranteeHighlight.displayName = "GuaranteeHighlight";
1951
- var ROICalculator = React34__default.default.forwardRef(
1453
+ var ROICalculator = React24__default.default.forwardRef(
1952
1454
  ({
1953
1455
  eyebrow,
1954
1456
  title,
@@ -1958,7 +1460,7 @@ var ROICalculator = React34__default.default.forwardRef(
1958
1460
  className,
1959
1461
  ...props
1960
1462
  }, ref) => {
1961
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx27__default.default("ds-roi-calculator", className), ...props, children: [
1463
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx17__default.default("ds-roi-calculator", className), ...props, children: [
1962
1464
  (eyebrow || title) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-roi-calculator__header", children: [
1963
1465
  eyebrow && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-roi-calculator__eyebrow", children: eyebrow }),
1964
1466
  title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-roi-calculator__title", children: title })
@@ -1966,7 +1468,7 @@ var ROICalculator = React34__default.default.forwardRef(
1966
1468
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-roi-calculator__grid", children: items.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1967
1469
  "div",
1968
1470
  {
1969
- className: clsx27__default.default(
1471
+ className: clsx17__default.default(
1970
1472
  "ds-roi-calculator__item",
1971
1473
  item.isRecommended && "ds-roi-calculator__item--recommended"
1972
1474
  ),
@@ -1986,7 +1488,7 @@ var ROICalculator = React34__default.default.forwardRef(
1986
1488
  }
1987
1489
  );
1988
1490
  ROICalculator.displayName = "ROICalculator";
1989
- var ICPFilter = React34__default.default.forwardRef(
1491
+ var ICPFilter = React24__default.default.forwardRef(
1990
1492
  ({
1991
1493
  qualifiedItems,
1992
1494
  disqualifiedItems,
@@ -2000,7 +1502,7 @@ var ICPFilter = React34__default.default.forwardRef(
2000
1502
  "div",
2001
1503
  {
2002
1504
  ref,
2003
- className: clsx27__default.default(
1505
+ className: clsx17__default.default(
2004
1506
  "ds-icp-filter",
2005
1507
  `ds-icp-filter--${variant}`,
2006
1508
  className
@@ -2030,7 +1532,7 @@ var ICPFilter = React34__default.default.forwardRef(
2030
1532
  }
2031
1533
  );
2032
1534
  ICPFilter.displayName = "ICPFilter";
2033
- var ObjectionFAQ = React34__default.default.forwardRef(
1535
+ var ObjectionFAQ = React24__default.default.forwardRef(
2034
1536
  ({
2035
1537
  items,
2036
1538
  title,
@@ -2040,12 +1542,12 @@ var ObjectionFAQ = React34__default.default.forwardRef(
2040
1542
  className,
2041
1543
  ...props
2042
1544
  }, ref) => {
2043
- const [openItems, setOpenItems] = React34__default.default.useState(() => {
1545
+ const [openItems, setOpenItems] = React24__default.default.useState(() => {
2044
1546
  const initial = /* @__PURE__ */ new Set();
2045
1547
  if (defaultOpenIndex !== void 0) initial.add(defaultOpenIndex);
2046
1548
  return initial;
2047
1549
  });
2048
- const toggle = React34__default.default.useCallback(
1550
+ const toggle = React24__default.default.useCallback(
2049
1551
  (index) => {
2050
1552
  setOpenItems((prev) => {
2051
1553
  const next = new Set(prev);
@@ -2060,7 +1562,7 @@ var ObjectionFAQ = React34__default.default.forwardRef(
2060
1562
  },
2061
1563
  [allowMultiple]
2062
1564
  );
2063
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx27__default.default("ds-objection-faq", className), ...props, children: [
1565
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx17__default.default("ds-objection-faq", className), ...props, children: [
2064
1566
  (title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-objection-faq__header", children: [
2065
1567
  title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-objection-faq__title", children: title }),
2066
1568
  subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-objection-faq__subtitle", children: subtitle })
@@ -2070,7 +1572,7 @@ var ObjectionFAQ = React34__default.default.forwardRef(
2070
1572
  return /* @__PURE__ */ jsxRuntime.jsxs(
2071
1573
  "div",
2072
1574
  {
2073
- className: clsx27__default.default(
1575
+ className: clsx17__default.default(
2074
1576
  "ds-objection-faq__item",
2075
1577
  isOpen && "ds-objection-faq__item--open"
2076
1578
  ),
@@ -2125,40 +1627,156 @@ var ObjectionFAQ = React34__default.default.forwardRef(
2125
1627
  }
2126
1628
  );
2127
1629
  ObjectionFAQ.displayName = "ObjectionFAQ";
1630
+ var DEFAULT_CELLS = [
1631
+ {
1632
+ label: "Leads",
1633
+ value: "1,248",
1634
+ trend: { direction: "up", delta: "16%", valence: "positive" },
1635
+ provenance: "7-day rolling avg"
1636
+ },
1637
+ {
1638
+ label: "Replies",
1639
+ value: "418",
1640
+ trend: { direction: "up", delta: "22%", valence: "positive" }
1641
+ },
1642
+ {
1643
+ label: "Reply Rate",
1644
+ value: "42%",
1645
+ trend: { direction: "up", delta: "8.4 pts", valence: "positive" }
1646
+ },
1647
+ {
1648
+ label: "Pipeline",
1649
+ value: "$3.4M",
1650
+ trend: { direction: "up", delta: "31%", valence: "positive" },
1651
+ provenance: "Qualified opps only"
1652
+ }
1653
+ ];
1654
+ var KPIPanel = React24.forwardRef(
1655
+ ({ cells = DEFAULT_CELLS, className }, ref) => {
1656
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx17__default.default("ds-kpi-panel", className), children: cells.map((cell, i) => {
1657
+ const valence = cell.trend?.valence ?? (cell.trend?.direction === "up" ? "positive" : "negative");
1658
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1659
+ chunkJPUJWI7F_cjs.Card,
1660
+ {
1661
+ tier: 1,
1662
+ className: "ds-kpi-panel__cell",
1663
+ children: [
1664
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-kpi-panel__label", children: cell.label }),
1665
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-kpi-panel__value", children: cell.value }),
1666
+ cell.trend && /* @__PURE__ */ jsxRuntime.jsxs(
1667
+ "span",
1668
+ {
1669
+ className: clsx17__default.default(
1670
+ "ds-kpi-panel__trend",
1671
+ `ds-kpi-panel__trend--${valence}`
1672
+ ),
1673
+ children: [
1674
+ /* @__PURE__ */ jsxRuntime.jsx(
1675
+ "span",
1676
+ {
1677
+ className: "ds-kpi-panel__trend-arrow",
1678
+ "aria-hidden": "true",
1679
+ children: cell.trend.direction === "up" ? "\u2191" : "\u2193"
1680
+ }
1681
+ ),
1682
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-kpi-panel__trend-delta", children: cell.trend.delta })
1683
+ ]
1684
+ }
1685
+ ),
1686
+ cell.provenance && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-kpi-panel__provenance", children: cell.provenance })
1687
+ ]
1688
+ },
1689
+ i
1690
+ );
1691
+ }) });
1692
+ }
1693
+ );
1694
+ KPIPanel.displayName = "KPIPanel";
1695
+ var HeroComposition = React24.forwardRef(
1696
+ ({
1697
+ headline = ["Pipeline that runs", "while you sleep"],
1698
+ subline = "Outbound sequences powered by intent signals. Replies routed to the right teammate. Always-on revenue motion.",
1699
+ eyebrow = "PIPELINE OPERATING SYSTEM",
1700
+ metrics,
1701
+ tone = "sentence",
1702
+ className
1703
+ }, ref) => {
1704
+ const [firstLine, ...restLines] = headline;
1705
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx17__default.default("ds-hero-composition", className), children: [
1706
+ /* @__PURE__ */ jsxRuntime.jsx(
1707
+ AuroraVoid,
1708
+ {
1709
+ intensity: "base",
1710
+ animated: true,
1711
+ className: "ds-hero-composition__aurora"
1712
+ }
1713
+ ),
1714
+ /* @__PURE__ */ jsxRuntime.jsx(
1715
+ Vignette,
1716
+ {
1717
+ intensity: "base",
1718
+ className: "ds-hero-composition__vignette"
1719
+ }
1720
+ ),
1721
+ /* @__PURE__ */ jsxRuntime.jsx(
1722
+ GridOverlay,
1723
+ {
1724
+ cell: "64",
1725
+ mask: true,
1726
+ className: "ds-hero-composition__grid"
1727
+ }
1728
+ ),
1729
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-hero-composition__content", children: [
1730
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-hero-composition__left", children: [
1731
+ eyebrow && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-hero-composition__eyebrow", children: eyebrow }),
1732
+ /* @__PURE__ */ jsxRuntime.jsxs(
1733
+ "h1",
1734
+ {
1735
+ className: clsx17__default.default(
1736
+ "ds-hero-composition__headline",
1737
+ tone === "shouty" && "ds-hero-composition__headline--shouty"
1738
+ ),
1739
+ children: [
1740
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-hero-composition__headline-dropcap", children: firstLine }),
1741
+ restLines.map((line, i) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-hero-composition__headline-line", children: line }, i))
1742
+ ]
1743
+ }
1744
+ ),
1745
+ subline && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-hero-composition__subline", children: subline })
1746
+ ] }),
1747
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-hero-composition__right", children: /* @__PURE__ */ jsxRuntime.jsx(KPIPanel, { cells: metrics }) })
1748
+ ] })
1749
+ ] });
1750
+ }
1751
+ );
1752
+ HeroComposition.displayName = "HeroComposition";
2128
1753
 
2129
- exports.AnnouncementBar = AnnouncementBar;
2130
1754
  exports.ArchitectureDiagram = ArchitectureDiagram;
1755
+ exports.AuroraVoid = AuroraVoid;
2131
1756
  exports.BeforeAfterBlock = BeforeAfterBlock;
2132
1757
  exports.BookingEmbed = BookingEmbed;
2133
1758
  exports.CaseStudyCard = CaseStudyCard;
2134
- exports.CaseStudySection = CaseStudySection;
2135
1759
  exports.ComparisonTable = ComparisonTable;
2136
1760
  exports.CompetitorDiff = CompetitorDiff;
2137
1761
  exports.ComplianceGrid = ComplianceGrid;
2138
1762
  exports.EcosystemDiagram = EcosystemDiagram;
2139
1763
  exports.EnterpriseSignaling = EnterpriseSignaling;
2140
1764
  exports.EvolutionTimeline = EvolutionTimeline;
2141
- exports.ExitIntentOverlay = ExitIntentOverlay;
1765
+ exports.GridOverlay = GridOverlay;
2142
1766
  exports.GuaranteeHighlight = GuaranteeHighlight;
1767
+ exports.HeroComposition = HeroComposition;
2143
1768
  exports.ICPFilter = ICPFilter;
2144
- exports.IntegrationShowcase = IntegrationShowcase;
2145
1769
  exports.IntelligenceBlock = IntelligenceBlock;
2146
1770
  exports.IntentCTA = IntentCTA;
2147
- exports.LeadCaptureForm = LeadCaptureForm;
2148
- exports.ManifestoBlock = ManifestoBlock;
1771
+ exports.KPIPanel = KPIPanel;
2149
1772
  exports.ObjectionFAQ = ObjectionFAQ;
2150
1773
  exports.PartnerValueProp = PartnerValueProp;
2151
1774
  exports.PricingCard = PricingCard;
2152
- exports.PricingSection = PricingSection;
2153
- exports.PricingToggle = PricingToggle;
2154
1775
  exports.ProblemAgitation = ProblemAgitation;
2155
- exports.ProcessTimeline = ProcessTimeline;
2156
1776
  exports.ROICalculator = ROICalculator;
2157
- exports.SecurityBlock = SecurityBlock;
2158
1777
  exports.SegmentSwitch = SegmentSwitch;
2159
- exports.StakeholderTabs = StakeholderTabs;
2160
1778
  exports.StickyActionBar = StickyActionBar;
2161
1779
  exports.ValueAnchor = ValueAnchor;
2162
- exports.VideoEmbed = VideoEmbed;
1780
+ exports.Vignette = Vignette;
2163
1781
  //# sourceMappingURL=out.js.map
2164
- //# sourceMappingURL=chunk-LTPTW2US.cjs.map
1782
+ //# sourceMappingURL=chunk-WE4QIIVN.cjs.map