@salesmind-ai/design-system 0.3.3 → 0.3.4

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 (215) hide show
  1. package/dist/{SectionShell-BfBw5q0Y.d.cts → SectionShell-GlglHCzz.d.cts} +1 -0
  2. package/dist/{SectionShell-BfBw5q0Y.d.ts → SectionShell-GlglHCzz.d.ts} +1 -0
  3. package/dist/StatsSection-B8iD9L-o.d.ts +68 -0
  4. package/dist/StatsSection-wgd8Vge1.d.cts +68 -0
  5. package/dist/admin/index.cjs +2928 -68
  6. package/dist/admin/index.cjs.map +1 -1
  7. package/dist/admin/index.js +2915 -5
  8. package/dist/admin/index.js.map +1 -1
  9. package/dist/blog/index.cjs +1064 -53
  10. package/dist/blog/index.cjs.map +1 -1
  11. package/dist/blog/index.d.cts +1 -1
  12. package/dist/blog/index.d.ts +1 -1
  13. package/dist/blog/index.js +1054 -8
  14. package/dist/blog/index.js.map +1 -1
  15. package/dist/charts/index.cjs +2694 -46
  16. package/dist/charts/index.cjs.map +1 -1
  17. package/dist/charts/index.js +2680 -3
  18. package/dist/charts/index.js.map +1 -1
  19. package/dist/core/index.cjs +4333 -807
  20. package/dist/core/index.cjs.map +1 -1
  21. package/dist/core/index.js +4130 -14
  22. package/dist/core/index.js.map +1 -1
  23. package/dist/i18n/index.cjs +558 -86
  24. package/dist/i18n/index.cjs.map +1 -1
  25. package/dist/i18n/index.js +544 -1
  26. package/dist/i18n/index.js.map +1 -1
  27. package/dist/index.cjs +17140 -1432
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.css +24 -13
  30. package/dist/index.css.map +1 -1
  31. package/dist/index.d.cts +2 -2
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.js +16785 -31
  34. package/dist/index.js.map +1 -1
  35. package/dist/marketing/index.cjs +3072 -142
  36. package/dist/marketing/index.cjs.map +1 -1
  37. package/dist/marketing/index.d.cts +1 -1
  38. package/dist/marketing/index.d.ts +1 -1
  39. package/dist/marketing/index.js +3042 -11
  40. package/dist/marketing/index.js.map +1 -1
  41. package/dist/motion/index.cjs +1222 -26
  42. package/dist/motion/index.cjs.map +1 -1
  43. package/dist/motion/index.js +1215 -2
  44. package/dist/motion/index.js.map +1 -1
  45. package/dist/nav/index.cjs +1518 -101
  46. package/dist/nav/index.cjs.map +1 -1
  47. package/dist/nav/index.css +24 -13
  48. package/dist/nav/index.css.map +1 -1
  49. package/dist/nav/index.js +1498 -4
  50. package/dist/nav/index.js.map +1 -1
  51. package/dist/report/index.cjs +2403 -171
  52. package/dist/report/index.cjs.map +1 -1
  53. package/dist/report/index.js +2363 -3
  54. package/dist/report/index.js.map +1 -1
  55. package/dist/sections/index.cjs +382 -28
  56. package/dist/sections/index.cjs.map +1 -1
  57. package/dist/sections/index.d.cts +15 -69
  58. package/dist/sections/index.d.ts +15 -69
  59. package/dist/sections/index.js +376 -4
  60. package/dist/sections/index.js.map +1 -1
  61. package/dist/social-proof/index.cjs +1250 -53
  62. package/dist/social-proof/index.cjs.map +1 -1
  63. package/dist/social-proof/index.d.cts +1 -1
  64. package/dist/social-proof/index.d.ts +1 -1
  65. package/dist/social-proof/index.js +1235 -6
  66. package/dist/social-proof/index.js.map +1 -1
  67. package/dist/theme/index.cjs +565 -38
  68. package/dist/theme/index.cjs.map +1 -1
  69. package/dist/theme/index.js +555 -2
  70. package/dist/theme/index.js.map +1 -1
  71. package/dist/web/client/index.cjs +491 -38
  72. package/dist/web/client/index.cjs.map +1 -1
  73. package/dist/web/client/index.js +483 -4
  74. package/dist/web/client/index.js.map +1 -1
  75. package/dist/web/index.cjs +1346 -158
  76. package/dist/web/index.cjs.map +1 -1
  77. package/dist/web/index.js +1305 -9
  78. package/dist/web/index.js.map +1 -1
  79. package/dist/web/server/index.cjs +563 -26
  80. package/dist/web/server/index.cjs.map +1 -1
  81. package/dist/web/server/index.js +560 -1
  82. package/dist/web/server/index.js.map +1 -1
  83. package/package.json +1 -1
  84. package/dist/chunk-2GARWEJK.js +0 -17
  85. package/dist/chunk-2GARWEJK.js.map +0 -1
  86. package/dist/chunk-3NKRFUAR.js +0 -37
  87. package/dist/chunk-3NKRFUAR.js.map +0 -1
  88. package/dist/chunk-3TGSIILM.cjs +0 -201
  89. package/dist/chunk-3TGSIILM.cjs.map +0 -1
  90. package/dist/chunk-4GM5BGBN.cjs +0 -801
  91. package/dist/chunk-4GM5BGBN.cjs.map +0 -1
  92. package/dist/chunk-5LGDEZWY.cjs +0 -2434
  93. package/dist/chunk-5LGDEZWY.cjs.map +0 -1
  94. package/dist/chunk-6H4DSTXR.js +0 -786
  95. package/dist/chunk-6H4DSTXR.js.map +0 -1
  96. package/dist/chunk-6UNG76Y2.js +0 -153
  97. package/dist/chunk-6UNG76Y2.js.map +0 -1
  98. package/dist/chunk-7PX2AZ6Y.js +0 -39
  99. package/dist/chunk-7PX2AZ6Y.js.map +0 -1
  100. package/dist/chunk-B6AVAX4F.js +0 -1415
  101. package/dist/chunk-B6AVAX4F.js.map +0 -1
  102. package/dist/chunk-BILT5KD3.js +0 -264
  103. package/dist/chunk-BILT5KD3.js.map +0 -1
  104. package/dist/chunk-C2BCDNAV.js +0 -24
  105. package/dist/chunk-C2BCDNAV.js.map +0 -1
  106. package/dist/chunk-CH42VPWE.cjs +0 -421
  107. package/dist/chunk-CH42VPWE.cjs.map +0 -1
  108. package/dist/chunk-CJ2MKVAF.cjs +0 -46
  109. package/dist/chunk-CJ2MKVAF.cjs.map +0 -1
  110. package/dist/chunk-DP74LUXG.cjs +0 -98
  111. package/dist/chunk-DP74LUXG.cjs.map +0 -1
  112. package/dist/chunk-E7D6EKJ4.cjs +0 -44
  113. package/dist/chunk-E7D6EKJ4.cjs.map +0 -1
  114. package/dist/chunk-ECXBTUH6.cjs +0 -584
  115. package/dist/chunk-ECXBTUH6.cjs.map +0 -1
  116. package/dist/chunk-EFRAP5ES.js +0 -157
  117. package/dist/chunk-EFRAP5ES.js.map +0 -1
  118. package/dist/chunk-F6YYWMME.js +0 -485
  119. package/dist/chunk-F6YYWMME.js.map +0 -1
  120. package/dist/chunk-FAFAP4L5.js +0 -183
  121. package/dist/chunk-FAFAP4L5.js.map +0 -1
  122. package/dist/chunk-GUZIMHWS.js +0 -1608
  123. package/dist/chunk-GUZIMHWS.js.map +0 -1
  124. package/dist/chunk-H2Y6BSTL.cjs +0 -69
  125. package/dist/chunk-H2Y6BSTL.cjs.map +0 -1
  126. package/dist/chunk-HN4PHABT.js +0 -126
  127. package/dist/chunk-HN4PHABT.js.map +0 -1
  128. package/dist/chunk-HRENHNDJ.js +0 -211
  129. package/dist/chunk-HRENHNDJ.js.map +0 -1
  130. package/dist/chunk-I75BFEYT.cjs +0 -2561
  131. package/dist/chunk-I75BFEYT.cjs.map +0 -1
  132. package/dist/chunk-IFRATNLU.js +0 -562
  133. package/dist/chunk-IFRATNLU.js.map +0 -1
  134. package/dist/chunk-IYPXJ6YC.cjs +0 -69
  135. package/dist/chunk-IYPXJ6YC.cjs.map +0 -1
  136. package/dist/chunk-JPJN4YBC.js +0 -409
  137. package/dist/chunk-JPJN4YBC.js.map +0 -1
  138. package/dist/chunk-KBA2LFBG.js +0 -62
  139. package/dist/chunk-KBA2LFBG.js.map +0 -1
  140. package/dist/chunk-KCKUSU2M.cjs +0 -166
  141. package/dist/chunk-KCKUSU2M.cjs.map +0 -1
  142. package/dist/chunk-KJ2OXQF4.js +0 -287
  143. package/dist/chunk-KJ2OXQF4.js.map +0 -1
  144. package/dist/chunk-KNQEIU7O.cjs +0 -1202
  145. package/dist/chunk-KNQEIU7O.cjs.map +0 -1
  146. package/dist/chunk-KVGSVGRK.cjs +0 -569
  147. package/dist/chunk-KVGSVGRK.cjs.map +0 -1
  148. package/dist/chunk-L352JRV6.cjs +0 -105
  149. package/dist/chunk-L352JRV6.cjs.map +0 -1
  150. package/dist/chunk-LJADZITX.cjs +0 -298
  151. package/dist/chunk-LJADZITX.cjs.map +0 -1
  152. package/dist/chunk-LMJPWXTZ.cjs +0 -194
  153. package/dist/chunk-LMJPWXTZ.cjs.map +0 -1
  154. package/dist/chunk-LOWEAQST.js +0 -701
  155. package/dist/chunk-LOWEAQST.js.map +0 -1
  156. package/dist/chunk-MDB2WCRQ.cjs +0 -137
  157. package/dist/chunk-MDB2WCRQ.cjs.map +0 -1
  158. package/dist/chunk-MQDEE7HC.cjs +0 -283
  159. package/dist/chunk-MQDEE7HC.cjs.map +0 -1
  160. package/dist/chunk-MQRB634A.cjs +0 -34
  161. package/dist/chunk-MQRB634A.cjs.map +0 -1
  162. package/dist/chunk-MTI27RDV.js +0 -185
  163. package/dist/chunk-MTI27RDV.js.map +0 -1
  164. package/dist/chunk-MU6GW5ZV.js +0 -2317
  165. package/dist/chunk-MU6GW5ZV.js.map +0 -1
  166. package/dist/chunk-NN3TUHIH.js +0 -28
  167. package/dist/chunk-NN3TUHIH.js.map +0 -1
  168. package/dist/chunk-NT4LBP7D.cjs +0 -111
  169. package/dist/chunk-NT4LBP7D.cjs.map +0 -1
  170. package/dist/chunk-OLV7OD3X.cjs +0 -502
  171. package/dist/chunk-OLV7OD3X.cjs.map +0 -1
  172. package/dist/chunk-OXNXEQY7.js +0 -2538
  173. package/dist/chunk-OXNXEQY7.js.map +0 -1
  174. package/dist/chunk-P5BOFE5A.js +0 -546
  175. package/dist/chunk-P5BOFE5A.js.map +0 -1
  176. package/dist/chunk-Q2MFGYTE.cjs +0 -1449
  177. package/dist/chunk-Q2MFGYTE.cjs.map +0 -1
  178. package/dist/chunk-Q75DBVDY.cjs +0 -68
  179. package/dist/chunk-Q75DBVDY.cjs.map +0 -1
  180. package/dist/chunk-REQ5Q6ZI.js +0 -1022
  181. package/dist/chunk-REQ5Q6ZI.js.map +0 -1
  182. package/dist/chunk-SICKWUWB.js +0 -62
  183. package/dist/chunk-SICKWUWB.js.map +0 -1
  184. package/dist/chunk-T343CCH5.js +0 -1190
  185. package/dist/chunk-T343CCH5.js.map +0 -1
  186. package/dist/chunk-TEC62D4A.cjs +0 -1624
  187. package/dist/chunk-TEC62D4A.cjs.map +0 -1
  188. package/dist/chunk-TW5JB35D.js +0 -2122
  189. package/dist/chunk-TW5JB35D.js.map +0 -1
  190. package/dist/chunk-VC5LMUVQ.cjs +0 -20
  191. package/dist/chunk-VC5LMUVQ.cjs.map +0 -1
  192. package/dist/chunk-VM7WFMKI.cjs +0 -76
  193. package/dist/chunk-VM7WFMKI.cjs.map +0 -1
  194. package/dist/chunk-W2WTP6HS.cjs +0 -233
  195. package/dist/chunk-W2WTP6HS.cjs.map +0 -1
  196. package/dist/chunk-WH7PYHZY.cjs +0 -35
  197. package/dist/chunk-WH7PYHZY.cjs.map +0 -1
  198. package/dist/chunk-XQZVY7JJ.cjs +0 -717
  199. package/dist/chunk-XQZVY7JJ.cjs.map +0 -1
  200. package/dist/chunk-XU3OMQ7V.js +0 -98
  201. package/dist/chunk-XU3OMQ7V.js.map +0 -1
  202. package/dist/chunk-XWPDRMZG.js +0 -62
  203. package/dist/chunk-XWPDRMZG.js.map +0 -1
  204. package/dist/chunk-Y3CPKNB7.js +0 -67
  205. package/dist/chunk-Y3CPKNB7.js.map +0 -1
  206. package/dist/chunk-YNVRDD2P.js +0 -98
  207. package/dist/chunk-YNVRDD2P.js.map +0 -1
  208. package/dist/chunk-YSYR54XR.js +0 -92
  209. package/dist/chunk-YSYR54XR.js.map +0 -1
  210. package/dist/chunk-YTYDQBVY.cjs +0 -162
  211. package/dist/chunk-YTYDQBVY.cjs.map +0 -1
  212. package/dist/chunk-ZDLOA2UT.cjs +0 -1042
  213. package/dist/chunk-ZDLOA2UT.cjs.map +0 -1
  214. package/dist/chunk-ZWUKRCOJ.cjs +0 -2162
  215. package/dist/chunk-ZWUKRCOJ.cjs.map +0 -1
@@ -1,2162 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkW2WTP6HS_cjs = require('./chunk-W2WTP6HS.cjs');
4
- var chunkE7D6EKJ4_cjs = require('./chunk-E7D6EKJ4.cjs');
5
- var chunkH2Y6BSTL_cjs = require('./chunk-H2Y6BSTL.cjs');
6
- var chunkDP74LUXG_cjs = require('./chunk-DP74LUXG.cjs');
7
- var chunkQ75DBVDY_cjs = require('./chunk-Q75DBVDY.cjs');
8
- var chunkVC5LMUVQ_cjs = require('./chunk-VC5LMUVQ.cjs');
9
- var chunkVM7WFMKI_cjs = require('./chunk-VM7WFMKI.cjs');
10
- var chunkIYPXJ6YC_cjs = require('./chunk-IYPXJ6YC.cjs');
11
- var chunkLJADZITX_cjs = require('./chunk-LJADZITX.cjs');
12
- var React34 = require('react');
13
- var clsx27 = require('clsx');
14
- var lucideReact = require('lucide-react');
15
- var jsxRuntime = require('react/jsx-runtime');
16
-
17
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
-
19
- var React34__default = /*#__PURE__*/_interopDefault(React34);
20
- var clsx27__default = /*#__PURE__*/_interopDefault(clsx27);
21
-
22
- var AnnouncementBar = React34.forwardRef(
23
- ({
24
- badge,
25
- message,
26
- href,
27
- variant = "brand",
28
- dismissible = false,
29
- onDismiss,
30
- showArrow = true,
31
- className,
32
- ...props
33
- }, 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 } : {};
48
- return /* @__PURE__ */ jsxRuntime.jsxs(
49
- "div",
50
- {
51
- ref,
52
- className: clsx27__default.default(
53
- "ds-announcement-bar",
54
- `ds-announcement-bar--${variant}`,
55
- href && "ds-announcement-bar--clickable",
56
- className
57
- ),
58
- ...props,
59
- children: [
60
- /* @__PURE__ */ jsxRuntime.jsxs(Component, { className: "ds-announcement-bar__inner", ...componentProps, children: [
61
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-announcement-bar__content", children: [
62
- badge && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-announcement-bar__badge", children: badge }),
63
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-announcement-bar__message", children: message })
64
- ] }),
65
- href && showArrow && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { className: "ds-announcement-bar__arrow", size: 16 })
66
- ] }),
67
- dismissible && /* @__PURE__ */ jsxRuntime.jsx(
68
- "button",
69
- {
70
- type: "button",
71
- className: "ds-announcement-bar__close",
72
- onClick: handleDismiss,
73
- "aria-label": "Dismiss announcement",
74
- children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 6L6 18M6 6l12 12" }) })
75
- }
76
- )
77
- ]
78
- }
79
- );
80
- }
81
- );
82
- AnnouncementBar.displayName = "AnnouncementBar";
83
- var StickyActionBar = React34.forwardRef(
84
- ({
85
- message,
86
- primaryAction,
87
- secondaryAction,
88
- showThreshold = 300,
89
- position = "bottom",
90
- variant = "glass",
91
- className,
92
- ...props
93
- }, ref) => {
94
- const [isVisible, setIsVisible] = React34.useState(false);
95
- const { track } = chunkVC5LMUVQ_cjs.useAnalytics();
96
- React34.useEffect(() => {
97
- const handleScroll = () => {
98
- const shouldShow = window.scrollY > showThreshold;
99
- if (shouldShow && !isVisible) {
100
- setIsVisible(true);
101
- track("sticky_bar_show");
102
- } else if (!shouldShow && isVisible) {
103
- setIsVisible(false);
104
- }
105
- };
106
- window.addEventListener("scroll", handleScroll, { passive: true });
107
- handleScroll();
108
- return () => window.removeEventListener("scroll", handleScroll);
109
- }, [showThreshold, isVisible, track]);
110
- if (!isVisible) return null;
111
- return /* @__PURE__ */ jsxRuntime.jsx(
112
- "div",
113
- {
114
- ref,
115
- className: clsx27__default.default(
116
- "ds-sticky-action-bar",
117
- `ds-sticky-action-bar--${position}`,
118
- `ds-sticky-action-bar--${variant}`,
119
- className
120
- ),
121
- ...props,
122
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-sticky-action-bar__container", children: [
123
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-sticky-action-bar__content", children: message }),
124
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-sticky-action-bar__actions", children: [
125
- secondaryAction,
126
- primaryAction
127
- ] })
128
- ] })
129
- }
130
- );
131
- }
132
- );
133
- 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
- chunkW2WTP6HS_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(chunkW2WTP6HS_cjs.ToggleGroupItem, { value: "monthly", children: monthlyLabel }),
163
- /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.ToggleGroupItem, { value: "annual", children: annualLabel })
164
- ]
165
- }
166
- ),
167
- savingsBadge && /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.Badge, { className: "ds-pricing-toggle__badge", children: savingsBadge })
168
- ]
169
- }
170
- );
171
- }
172
- );
173
- PricingToggle.displayName = "PricingToggle";
174
- var BookingEmbed = React34.forwardRef(
175
- ({
176
- url,
177
- aspectRatio = "16/9",
178
- title = "Book a call",
179
- lazyLoad = true,
180
- className,
181
- style,
182
- ...props
183
- }, ref) => {
184
- const [isLoaded, setIsLoaded] = React34.useState(!lazyLoad);
185
- const [isIframeLoaded, setIsIframeLoaded] = React34.useState(false);
186
- const containerRef = React34.useRef(null);
187
- const { track } = chunkVC5LMUVQ_cjs.useAnalytics();
188
- React34.useEffect(() => {
189
- if (!lazyLoad) return;
190
- const observer = new IntersectionObserver(
191
- (entries) => {
192
- if (entries[0].isIntersecting) {
193
- setIsLoaded(true);
194
- track("booking_embed_visible", { url });
195
- observer.disconnect();
196
- }
197
- },
198
- { rootMargin: "200px" }
199
- );
200
- if (containerRef.current) {
201
- observer.observe(containerRef.current);
202
- }
203
- return () => observer.disconnect();
204
- }, [lazyLoad, url, track]);
205
- const handleIframeLoad = () => {
206
- setIsIframeLoaded(true);
207
- track("booking_embed_loaded", { url });
208
- };
209
- return /* @__PURE__ */ jsxRuntime.jsxs(
210
- "div",
211
- {
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 },
219
- ...props,
220
- children: [
221
- !isIframeLoaded && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-booking-embed__skeleton", children: [
222
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-booking-embed__spinner" }),
223
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Loading calendar..." })
224
- ] }),
225
- isLoaded && /* @__PURE__ */ jsxRuntime.jsx(
226
- "iframe",
227
- {
228
- src: url,
229
- title,
230
- className: clsx27__default.default("ds-booking-embed__iframe", isIframeLoaded && "ds-booking-embed__iframe--loaded"),
231
- onLoad: handleIframeLoad,
232
- frameBorder: "0",
233
- scrolling: "no"
234
- }
235
- )
236
- ]
237
- }
238
- );
239
- }
240
- );
241
- BookingEmbed.displayName = "BookingEmbed";
242
- var ProblemAgitation = React34.forwardRef(
243
- ({
244
- title,
245
- description,
246
- points,
247
- oldWayLabel = "The Old Way",
248
- newWayLabel = "The New Way",
249
- className,
250
- ...props
251
- }, ref) => {
252
- return /* @__PURE__ */ jsxRuntime.jsxs(
253
- "section",
254
- {
255
- ref,
256
- className: clsx27__default.default("ds-problem-agitation", className),
257
- ...props,
258
- children: [
259
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-problem-agitation__header", children: [
260
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "ds-problem-agitation__title", children: title }),
261
- description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-problem-agitation__description", children: description })
262
- ] }),
263
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-problem-agitation__grid", children: [
264
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__mobile-label ds-problem-agitation__mobile-label--old", children: oldWayLabel }),
265
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__mobile-label ds-problem-agitation__mobile-label--new", children: newWayLabel }),
266
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__column-header ds-problem-agitation__column-header--old", children: oldWayLabel }),
267
- /* @__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: [
269
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-problem-agitation__cell ds-problem-agitation__cell--old", children: [
270
- /* @__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
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__content", children: point.problem })
272
- ] }),
273
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-problem-agitation__cell ds-problem-agitation__cell--new", children: [
274
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__icon-wrapper ds-problem-agitation__icon-wrapper--new", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { size: 20, "aria-hidden": "true" }) }),
275
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-problem-agitation__content", children: point.solution })
276
- ] })
277
- ] }, index))
278
- ] })
279
- ]
280
- }
281
- );
282
- }
283
- );
284
- 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(
575
- ({
576
- company,
577
- logo,
578
- industry,
579
- headline,
580
- metrics,
581
- href,
582
- coverImage,
583
- quote,
584
- className,
585
- ...props
586
- }, ref) => {
587
- return /* @__PURE__ */ jsxRuntime.jsx(
588
- "article",
589
- {
590
- ref,
591
- className: clsx27__default.default("ds-case-study-card", className),
592
- ...props,
593
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkLJADZITX_cjs.OutboundLink, { href, context: "case-study-card", className: "ds-case-study-card__link", openInNewTab: false, children: [
594
- coverImage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-case-study-card__image-wrap", children: /* @__PURE__ */ jsxRuntime.jsx(
595
- "img",
596
- {
597
- src: coverImage,
598
- alt: "",
599
- className: "ds-case-study-card__image",
600
- loading: "lazy",
601
- decoding: "async"
602
- }
603
- ) }),
604
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__body", children: [
605
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-case-study-card__header", children: [
606
- 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(chunkW2WTP6HS_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
- )
726
- }
727
- );
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(chunkW2WTP6HS_cjs.Dialog, { open, onOpenChange: (isOpen) => {
826
- if (!isOpen) handleDismiss();
827
- }, children: /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.DialogContent, { className: "ds-exit-intent-overlay__dialog", children }) }) });
828
- }
829
- );
830
- ExitIntentOverlay.displayName = "ExitIntentOverlay";
831
- var BeforeAfterBlock = React34.forwardRef(
832
- ({
833
- eyebrow,
834
- title,
835
- before,
836
- after,
837
- variant = "split",
838
- className,
839
- ...props
840
- }, ref) => {
841
- const renderItems = (items, side) => items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs(
842
- "li",
843
- {
844
- className: clsx27__default.default(
845
- "ds-before-after__item",
846
- item.sentiment && `ds-before-after__item--${item.sentiment}`
847
- ),
848
- children: [
849
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-before-after__item-icon", "aria-hidden": "true", children: side === "before" ? "\u2717" : "\u2713" }),
850
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.text })
851
- ]
852
- },
853
- i
854
- ));
855
- return /* @__PURE__ */ jsxRuntime.jsxs(
856
- chunkIYPXJ6YC_cjs.SectionShell,
857
- {
858
- ref,
859
- className: clsx27__default.default("ds-before-after", className),
860
- ...props,
861
- children: [
862
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title }),
863
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx27__default.default("ds-before-after__layout", `ds-before-after__layout--${variant}`), children: [
864
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-before-after__column ds-before-after__column--before", children: [
865
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-before-after__label", children: before.label }),
866
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-before-after__list", children: renderItems(before.items, "before") }),
867
- before.media && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-before-after__media", children: before.media })
868
- ] }),
869
- variant === "split" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-before-after__divider", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-before-after__arrow", children: "\u2192" }) }),
870
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-before-after__column ds-before-after__column--after", children: [
871
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-before-after__label", children: after.label }),
872
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-before-after__list", children: renderItems(after.items, "after") }),
873
- after.media && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-before-after__media", children: after.media })
874
- ] })
875
- ] })
876
- ]
877
- }
878
- );
879
- }
880
- );
881
- BeforeAfterBlock.displayName = "BeforeAfterBlock";
882
- var CompetitorDiff = React34.forwardRef(
883
- ({
884
- eyebrow,
885
- title,
886
- subtitle,
887
- items,
888
- competitorLabel = "Others",
889
- ourLabel = "SalesMind AI",
890
- variant = "table",
891
- cta,
892
- className,
893
- ...props
894
- }, ref) => {
895
- return /* @__PURE__ */ jsxRuntime.jsxs(
896
- chunkIYPXJ6YC_cjs.SectionShell,
897
- {
898
- ref,
899
- className: clsx27__default.default("ds-competitor-diff", className),
900
- ...props,
901
- children: [
902
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
903
- variant === "table" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__table", role: "table", "aria-label": "Feature comparison", children: [
904
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__thead", role: "row", children: [
905
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-competitor-diff__th", role: "columnheader" }),
906
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-competitor-diff__th ds-competitor-diff__th--them", role: "columnheader", children: competitorLabel }),
907
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-competitor-diff__th ds-competitor-diff__th--us", role: "columnheader", children: ourLabel })
908
- ] }),
909
- items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__row", role: "row", children: [
910
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-competitor-diff__dimension", role: "rowheader", children: item.dimension }),
911
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__cell ds-competitor-diff__cell--them", role: "cell", children: [
912
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-competitor-diff__icon", "aria-hidden": "true", children: "\u2717" }),
913
- item.them
914
- ] }),
915
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__cell ds-competitor-diff__cell--us", role: "cell", children: [
916
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-competitor-diff__icon", "aria-hidden": "true", children: "\u2713" }),
917
- item.us
918
- ] })
919
- ] }, i))
920
- ] }),
921
- variant === "cards" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__cards", children: [
922
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__card ds-competitor-diff__card--them", children: [
923
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-competitor-diff__card-label", children: competitorLabel }),
924
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-competitor-diff__card-list", children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
925
- /* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
926
- item.dimension,
927
- ":"
928
- ] }),
929
- " ",
930
- item.them
931
- ] }, i)) })
932
- ] }),
933
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__card ds-competitor-diff__card--us", children: [
934
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-competitor-diff__card-label", children: ourLabel }),
935
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-competitor-diff__card-list", children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
936
- /* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
937
- item.dimension,
938
- ":"
939
- ] }),
940
- " ",
941
- item.us
942
- ] }, i)) })
943
- ] })
944
- ] }),
945
- variant === "narrative" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-competitor-diff__narrative", children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-competitor-diff__narrative-item", children: [
946
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "ds-competitor-diff__narrative-them", children: [
947
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-competitor-diff__narrative-label", children: "Instead of" }),
948
- " ",
949
- item.them
950
- ] }),
951
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "ds-competitor-diff__narrative-us", children: [
952
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-competitor-diff__narrative-label", children: ourLabel }),
953
- " ",
954
- item.us
955
- ] })
956
- ] }, 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 }) }) })
958
- ]
959
- }
960
- );
961
- }
962
- );
963
- 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
- chunkIYPXJ6YC_cjs.SectionShell,
975
- {
976
- ref,
977
- className: clsx27__default.default("ds-stakeholder-tabs", className),
978
- ...props,
979
- children: [
980
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title }),
981
- /* @__PURE__ */ jsxRuntime.jsxs(chunkW2WTP6HS_cjs.Tabs, { defaultValue: defaultIndex, children: [
982
- /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.TabsList, { className: "ds-stakeholder-tabs__list", children: stakeholders.map((s, i) => /* @__PURE__ */ jsxRuntime.jsxs(chunkW2WTP6HS_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(chunkW2WTP6HS_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
- chunkIYPXJ6YC_cjs.SectionShell,
1025
- {
1026
- ref,
1027
- className: clsx27__default.default("ds-integration-showcase", className),
1028
- ...props,
1029
- children: [
1030
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1031
- filterable && allCategories.length > 1 && /* @__PURE__ */ jsxRuntime.jsxs(
1032
- chunkW2WTP6HS_cjs.Tabs,
1033
- {
1034
- value: allCategories.indexOf(activeCategory),
1035
- onValueChange: (v) => setActiveCategory(allCategories[v] ?? "All"),
1036
- children: [
1037
- /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.TabsList, { className: "ds-integration-showcase__filters", children: allCategories.map((cat, i) => /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.TabsTrigger, { value: i, className: "ds-integration-showcase__filter", children: cat }, cat)) }),
1038
- allCategories.map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_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(chunkW2WTP6HS_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
- chunkIYPXJ6YC_cjs.SectionShell,
1074
- {
1075
- ref,
1076
- className: clsx27__default.default("ds-security-block", className),
1077
- ...props,
1078
- children: [
1079
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_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
- chunkIYPXJ6YC_cjs.SectionShell,
1125
- {
1126
- ref,
1127
- className: clsx27__default.default("ds-case-study-section", className),
1128
- ...props,
1129
- children: [
1130
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1131
- filterable && allFilters.length > 1 && /* @__PURE__ */ jsxRuntime.jsxs(
1132
- chunkW2WTP6HS_cjs.Tabs,
1133
- {
1134
- value: allFilters.indexOf(activeFilter),
1135
- onValueChange: (v) => setActiveFilter(allFilters[v] ?? "All"),
1136
- children: [
1137
- /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.TabsList, { className: "ds-case-study-section__filters", children: allFilters.map((filter, i) => /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.TabsTrigger, { value: i, className: "ds-case-study-section__filter", children: filter }, filter)) }),
1138
- allFilters.map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_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
- chunkIYPXJ6YC_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
- var STATUS_LABELS = {
1185
- certified: "Certified",
1186
- "in-progress": "In Progress",
1187
- planned: "Planned"
1188
- };
1189
- var ComplianceGrid = React34.forwardRef(
1190
- ({
1191
- eyebrow,
1192
- title,
1193
- subtitle,
1194
- items,
1195
- className,
1196
- ...props
1197
- }, ref) => {
1198
- return /* @__PURE__ */ jsxRuntime.jsxs(
1199
- chunkIYPXJ6YC_cjs.SectionShell,
1200
- {
1201
- ref,
1202
- className: clsx27__default.default("ds-compliance-grid", className),
1203
- ...props,
1204
- children: [
1205
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1206
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-compliance-grid__items", children: items.map((item, i) => {
1207
- const inner = /* @__PURE__ */ jsxRuntime.jsxs(
1208
- "div",
1209
- {
1210
- className: clsx27__default.default(
1211
- "ds-compliance-grid__item",
1212
- `ds-compliance-grid__item--${item.status}`
1213
- ),
1214
- children: [
1215
- item.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-compliance-grid__icon", children: item.icon }),
1216
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-compliance-grid__info", children: [
1217
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-compliance-grid__name", children: item.name }),
1218
- /* @__PURE__ */ jsxRuntime.jsx(
1219
- chunkW2WTP6HS_cjs.Badge,
1220
- {
1221
- className: clsx27__default.default(
1222
- "ds-compliance-grid__status",
1223
- `ds-compliance-grid__status--${item.status}`
1224
- ),
1225
- variant: "outline",
1226
- children: STATUS_LABELS[item.status]
1227
- }
1228
- ),
1229
- item.description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-compliance-grid__desc", children: item.description })
1230
- ] })
1231
- ]
1232
- },
1233
- i
1234
- );
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);
1236
- }) })
1237
- ]
1238
- }
1239
- );
1240
- }
1241
- );
1242
- ComplianceGrid.displayName = "ComplianceGrid";
1243
- var ArchitectureDiagram = React34.forwardRef(
1244
- ({
1245
- nodes,
1246
- connections,
1247
- direction = "horizontal",
1248
- className,
1249
- ...props
1250
- }, ref) => {
1251
- const isHorizontal = direction === "horizontal";
1252
- return /* @__PURE__ */ jsxRuntime.jsx(
1253
- "div",
1254
- {
1255
- ref,
1256
- className: clsx27__default.default(
1257
- "ds-architecture",
1258
- `ds-architecture--${direction}`,
1259
- className
1260
- ),
1261
- role: "img",
1262
- "aria-label": "Architecture diagram",
1263
- ...props,
1264
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-architecture__nodes", children: nodes.map((node, i) => /* @__PURE__ */ jsxRuntime.jsxs(React34__default.default.Fragment, { children: [
1265
- i > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-architecture__connection", "aria-hidden": "true", children: [
1266
- /* @__PURE__ */ jsxRuntime.jsx(
1267
- "div",
1268
- {
1269
- className: clsx27__default.default(
1270
- "ds-architecture__line",
1271
- connections.find(
1272
- (c) => c.from === nodes[i - 1]?.id && c.to === node.id
1273
- )?.animated && "ds-architecture__line--animated"
1274
- )
1275
- }
1276
- ),
1277
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-architecture__arrow", children: isHorizontal ? "\u2192" : "\u2193" }),
1278
- connections.find(
1279
- (c) => c.from === nodes[i - 1]?.id && c.to === node.id
1280
- )?.label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-architecture__connection-label", children: connections.find(
1281
- (c) => c.from === nodes[i - 1]?.id && c.to === node.id
1282
- )?.label })
1283
- ] }),
1284
- /* @__PURE__ */ jsxRuntime.jsxs(
1285
- "div",
1286
- {
1287
- className: clsx27__default.default(
1288
- "ds-architecture__node",
1289
- `ds-architecture__node--${node.type}`
1290
- ),
1291
- title: node.description,
1292
- children: [
1293
- node.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-architecture__node-icon", "aria-hidden": "true", children: node.icon }),
1294
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-architecture__node-label", children: node.label })
1295
- ]
1296
- }
1297
- )
1298
- ] }, node.id)) })
1299
- }
1300
- );
1301
- }
1302
- );
1303
- ArchitectureDiagram.displayName = "ArchitectureDiagram";
1304
- function getUtmSegment(param) {
1305
- if (typeof window === "undefined") return null;
1306
- const url = new URL(window.location.href);
1307
- return url.searchParams.get(param);
1308
- }
1309
- function getCookieSegment(name) {
1310
- if (typeof document === "undefined") return null;
1311
- const match = document.cookie.match(new RegExp(`(?:^|;\\s*)${name}=([^;]*)`));
1312
- return match ? decodeURIComponent(match[1]) : null;
1313
- }
1314
- var SegmentSwitch = React34.forwardRef(
1315
- ({
1316
- segment: controlledSegment,
1317
- segments,
1318
- fallback = null,
1319
- source = "manual",
1320
- utmParam = "utm_segment",
1321
- cookieName = "ds_segment",
1322
- className,
1323
- ...props
1324
- }, ref) => {
1325
- const resolvedSegment = React34.useMemo(() => {
1326
- if (controlledSegment) return controlledSegment;
1327
- switch (source) {
1328
- case "utm":
1329
- return getUtmSegment(utmParam) ?? void 0;
1330
- case "cookie":
1331
- return getCookieSegment(cookieName) ?? void 0;
1332
- default:
1333
- return void 0;
1334
- }
1335
- }, [controlledSegment, source, utmParam, cookieName]);
1336
- const content = resolvedSegment && segments[resolvedSegment] ? segments[resolvedSegment] : fallback;
1337
- if (!content) return null;
1338
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx27__default.default(className), ...props, children: content });
1339
- }
1340
- );
1341
- SegmentSwitch.displayName = "SegmentSwitch";
1342
- var IntentCTA = React34.forwardRef(
1343
- ({
1344
- stages,
1345
- defaultCta,
1346
- pageCount = 0,
1347
- className,
1348
- ...props
1349
- }, 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(() => {
1355
- pageCountRef.current = pageCount;
1356
- }, [pageCount]);
1357
- React34.useEffect(() => {
1358
- if (typeof window === "undefined") return;
1359
- timerRef.current = setInterval(() => {
1360
- timeRef.current += 1;
1361
- checkStages();
1362
- }, 1e3);
1363
- const handleScroll = () => {
1364
- checkStages();
1365
- };
1366
- window.addEventListener("scroll", handleScroll, { passive: true });
1367
- function checkStages() {
1368
- const scrollPercent = typeof document !== "undefined" ? Math.round(
1369
- window.scrollY / (document.documentElement.scrollHeight - window.innerHeight) * 100
1370
- ) : 0;
1371
- let highestTriggered = -1;
1372
- for (let i = 0; i < stages.length; i++) {
1373
- const stage = stages[i];
1374
- let triggered = false;
1375
- switch (stage.trigger.type) {
1376
- case "scroll":
1377
- triggered = scrollPercent >= stage.trigger.threshold;
1378
- break;
1379
- case "time":
1380
- triggered = timeRef.current >= stage.trigger.threshold;
1381
- break;
1382
- case "pages":
1383
- triggered = pageCountRef.current >= stage.trigger.threshold;
1384
- break;
1385
- }
1386
- if (triggered) highestTriggered = i;
1387
- }
1388
- setActiveStageIndex((prev) => Math.max(prev, highestTriggered));
1389
- }
1390
- checkStages();
1391
- return () => {
1392
- window.removeEventListener("scroll", handleScroll);
1393
- if (timerRef.current) clearInterval(timerRef.current);
1394
- };
1395
- }, [stages]);
1396
- const activeCta = activeStageIndex >= 0 ? stages[activeStageIndex] : defaultCta;
1397
- return /* @__PURE__ */ jsxRuntime.jsx(
1398
- "div",
1399
- {
1400
- ref,
1401
- className: clsx27__default.default("ds-intent-cta", className),
1402
- ...props,
1403
- children: /* @__PURE__ */ jsxRuntime.jsx(
1404
- chunkH2Y6BSTL_cjs.Button,
1405
- {
1406
- variant: activeCta.variant ?? "primary",
1407
- asChild: true,
1408
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { href: activeCta.href, context: "intent-cta", openInNewTab: false, children: activeCta.label })
1409
- }
1410
- )
1411
- }
1412
- );
1413
- }
1414
- );
1415
- IntentCTA.displayName = "IntentCTA";
1416
- var EvolutionTimeline = React34.forwardRef(
1417
- ({
1418
- eyebrow,
1419
- title,
1420
- subtitle,
1421
- eras,
1422
- youAreHere,
1423
- cta,
1424
- className,
1425
- ...props
1426
- }, ref) => {
1427
- return /* @__PURE__ */ jsxRuntime.jsxs(
1428
- chunkIYPXJ6YC_cjs.SectionShell,
1429
- {
1430
- ref,
1431
- className: clsx27__default.default("ds-evolution-timeline", className),
1432
- ...props,
1433
- children: [
1434
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1435
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-evolution-timeline__track", children: [
1436
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__line", "aria-hidden": "true" }),
1437
- eras.map((era, i) => /* @__PURE__ */ jsxRuntime.jsxs(
1438
- "div",
1439
- {
1440
- className: clsx27__default.default(
1441
- "ds-evolution-timeline__era",
1442
- `ds-evolution-timeline__era--${era.sentiment}`,
1443
- era.current && "ds-evolution-timeline__era--current"
1444
- ),
1445
- children: [
1446
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__marker", "aria-hidden": "true" }),
1447
- youAreHere === i && /* @__PURE__ */ jsxRuntime.jsx(chunkW2WTP6HS_cjs.Badge, { className: "ds-evolution-timeline__you-are-here", children: "Most tools are here" }),
1448
- era.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-evolution-timeline__icon", "aria-hidden": "true", children: era.icon }),
1449
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-evolution-timeline__content", children: [
1450
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-evolution-timeline__period", children: era.period }),
1451
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-evolution-timeline__label", children: era.label }),
1452
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-evolution-timeline__desc", children: era.description }),
1453
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-evolution-timeline__traits", children: era.traits.map((trait, j) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "ds-evolution-timeline__trait", children: [
1454
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-evolution-timeline__trait-icon", "aria-hidden": "true", children: era.sentiment === "future" ? "\u2713" : era.sentiment === "past" ? "\u2717" : "\u2022" }),
1455
- trait
1456
- ] }, j)) })
1457
- ] })
1458
- ]
1459
- },
1460
- i
1461
- ))
1462
- ] }),
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 }) }) })
1464
- ]
1465
- }
1466
- );
1467
- }
1468
- );
1469
- EvolutionTimeline.displayName = "EvolutionTimeline";
1470
- var EcosystemDiagram = React34.forwardRef(
1471
- ({
1472
- eyebrow,
1473
- title,
1474
- subtitle,
1475
- layers,
1476
- connections,
1477
- variant = "flywheel",
1478
- centerLabel,
1479
- className,
1480
- ...props
1481
- }, ref) => {
1482
- return /* @__PURE__ */ jsxRuntime.jsxs(
1483
- chunkIYPXJ6YC_cjs.SectionShell,
1484
- {
1485
- ref,
1486
- className: clsx27__default.default("ds-ecosystem", `ds-ecosystem--${variant}`, className),
1487
- ...props,
1488
- children: [
1489
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1490
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-ecosystem__diagram", role: "img", "aria-label": "Ecosystem diagram", children: [
1491
- centerLabel && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-ecosystem__center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-ecosystem__center-label", children: centerLabel }) }),
1492
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-ecosystem__layers", children: layers.map((layer, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-ecosystem__layer", children: [
1493
- layer.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-ecosystem__layer-icon", "aria-hidden": "true", children: layer.icon }),
1494
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-ecosystem__layer-name", children: layer.name }),
1495
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-ecosystem__layer-desc", children: layer.description }),
1496
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-ecosystem__capabilities", children: layer.capabilities.map((cap, j) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "ds-ecosystem__capability", children: cap }, j)) })
1497
- ] }, i)) }),
1498
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-ecosystem__connections", "aria-hidden": "true", children: connections.map((conn, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-ecosystem__connection", children: [
1499
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-ecosystem__connection-arrow", children: "\\u2192" }),
1500
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-ecosystem__connection-label", children: conn.label })
1501
- ] }, i)) })
1502
- ] })
1503
- ]
1504
- }
1505
- );
1506
- }
1507
- );
1508
- EcosystemDiagram.displayName = "EcosystemDiagram";
1509
- function formatNumber(n, prefix, suffix) {
1510
- const formatted = n >= 1e3 ? n.toLocaleString("en-US", { maximumFractionDigits: 0 }) : String(Math.round(n * 10) / 10);
1511
- return `${prefix ?? ""}${formatted}${suffix ?? ""}`;
1512
- }
1513
- var ValueAnchor = React34.forwardRef(
1514
- ({
1515
- eyebrow,
1516
- title,
1517
- subtitle,
1518
- inputs,
1519
- calculate,
1520
- cta,
1521
- className,
1522
- ...props
1523
- }, ref) => {
1524
- const initialValues = React34.useMemo(() => {
1525
- const vals = {};
1526
- inputs.forEach((inp) => {
1527
- vals[inp.name] = inp.defaultValue;
1528
- });
1529
- return vals;
1530
- }, [inputs]);
1531
- const [values, setValues] = React34.useState(initialValues);
1532
- const handleChange = React34.useCallback((name, value) => {
1533
- setValues((prev) => ({ ...prev, [name]: value }));
1534
- }, []);
1535
- const output = React34.useMemo(() => calculate(values), [values, calculate]);
1536
- return /* @__PURE__ */ jsxRuntime.jsxs(
1537
- chunkIYPXJ6YC_cjs.SectionShell,
1538
- {
1539
- ref,
1540
- className: clsx27__default.default("ds-value-anchor", className),
1541
- ...props,
1542
- children: [
1543
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1544
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__layout", children: [
1545
- /* @__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
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "ds-value-anchor__input-label", children: [
1547
- input.label,
1548
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__input-value", children: formatNumber(values[input.name], input.prefix, input.suffix) })
1549
- ] }),
1550
- input.type === "slider" ? /* @__PURE__ */ jsxRuntime.jsx(
1551
- chunkW2WTP6HS_cjs.Slider,
1552
- {
1553
- value: values[input.name],
1554
- min: input.min ?? 0,
1555
- max: input.max ?? 100,
1556
- step: input.step ?? 1,
1557
- onValueChange: (v) => handleChange(input.name, v)
1558
- }
1559
- ) : /* @__PURE__ */ jsxRuntime.jsx(
1560
- chunkE7D6EKJ4_cjs.TextField,
1561
- {
1562
- type: "number",
1563
- value: String(values[input.name]),
1564
- onChange: (e) => handleChange(input.name, Number(e.target.value) || 0)
1565
- }
1566
- )
1567
- ] }, input.name)) }),
1568
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__output", children: [
1569
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__primary", children: [
1570
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__primary-value", children: formatNumber(output.primaryMetric.value, output.primaryMetric.prefix, output.primaryMetric.suffix) }),
1571
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__primary-label", children: output.primaryMetric.label })
1572
- ] }),
1573
- output.secondaryMetrics.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-value-anchor__secondary", children: output.secondaryMetrics.map((m, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__secondary-metric", children: [
1574
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__secondary-value", children: formatNumber(m.value, m.prefix, m.suffix) }),
1575
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__secondary-label", children: m.label })
1576
- ] }, i)) }),
1577
- output.costComparison && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__comparison", children: [
1578
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__comparison-col ds-value-anchor__comparison-col--without", children: [
1579
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__comparison-value", children: formatNumber(output.costComparison.without.value, "$") }),
1580
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__comparison-label", children: output.costComparison.without.label })
1581
- ] }),
1582
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__comparison-col ds-value-anchor__comparison-col--with", children: [
1583
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__comparison-value", children: formatNumber(output.costComparison.with.value, "$") }),
1584
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__comparison-label", children: output.costComparison.with.label })
1585
- ] }),
1586
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-value-anchor__savings", children: [
1587
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__savings-value", children: formatNumber(output.costComparison.savings.value, "$") }),
1588
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-value-anchor__savings-label", children: output.costComparison.savings.label })
1589
- ] })
1590
- ] })
1591
- ] })
1592
- ] }),
1593
- 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 }) }) })
1594
- ]
1595
- }
1596
- );
1597
- }
1598
- );
1599
- ValueAnchor.displayName = "ValueAnchor";
1600
- var STATUS_LABELS2 = {
1601
- active: "Active",
1602
- "in-progress": "In Progress",
1603
- planned: "Planned"
1604
- };
1605
- var EnterpriseSignaling = React34.forwardRef(
1606
- ({
1607
- eyebrow,
1608
- title,
1609
- subtitle,
1610
- categories,
1611
- sla,
1612
- variant = "full",
1613
- className,
1614
- ...props
1615
- }, ref) => {
1616
- if (variant === "strip") {
1617
- return /* @__PURE__ */ jsxRuntime.jsx(
1618
- "div",
1619
- {
1620
- ref,
1621
- className: clsx27__default.default("ds-enterprise-signaling", "ds-enterprise-signaling--strip", className),
1622
- ...props,
1623
- 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)) })
1624
- }
1625
- );
1626
- }
1627
- return /* @__PURE__ */ jsxRuntime.jsxs(
1628
- chunkIYPXJ6YC_cjs.SectionShell,
1629
- {
1630
- ref,
1631
- className: clsx27__default.default("ds-enterprise-signaling", `ds-enterprise-signaling--${variant}`, className),
1632
- ...props,
1633
- children: [
1634
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1635
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-enterprise-signaling__categories", children: categories.map((cat, ci) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-enterprise-signaling__category", children: [
1636
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-enterprise-signaling__category-header", children: [
1637
- cat.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-enterprise-signaling__category-icon", children: cat.icon }),
1638
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-enterprise-signaling__category-name", children: cat.name })
1639
- ] }),
1640
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-enterprise-signaling__items", children: cat.items.map((item, ii) => {
1641
- const inner = /* @__PURE__ */ jsxRuntime.jsxs(
1642
- "div",
1643
- {
1644
- className: clsx27__default.default(
1645
- "ds-enterprise-signaling__item",
1646
- `ds-enterprise-signaling__item--${item.status}`
1647
- ),
1648
- children: [
1649
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-enterprise-signaling__item-name", children: item.name }),
1650
- /* @__PURE__ */ jsxRuntime.jsx(
1651
- chunkW2WTP6HS_cjs.Badge,
1652
- {
1653
- className: clsx27__default.default("ds-enterprise-signaling__item-status", `ds-enterprise-signaling__item-status--${item.status}`),
1654
- variant: "outline",
1655
- children: STATUS_LABELS2[item.status]
1656
- }
1657
- ),
1658
- variant === "full" && item.detail && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-enterprise-signaling__item-detail", children: item.detail })
1659
- ]
1660
- },
1661
- ii
1662
- );
1663
- 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);
1664
- }) })
1665
- ] }, ci)) }),
1666
- sla && sla.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-enterprise-signaling__sla", children: [
1667
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-enterprise-signaling__sla-title", children: "Service Level Agreements" }),
1668
- /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "ds-enterprise-signaling__sla-table", children: [
1669
- /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1670
- /* @__PURE__ */ jsxRuntime.jsx("th", { children: "Metric" }),
1671
- /* @__PURE__ */ jsxRuntime.jsx("th", { children: "SLA" }),
1672
- sla.some((s) => s.current) && /* @__PURE__ */ jsxRuntime.jsx("th", { children: "Current" })
1673
- ] }) }),
1674
- /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: sla.map((s, i) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1675
- /* @__PURE__ */ jsxRuntime.jsx("td", { children: s.metric }),
1676
- /* @__PURE__ */ jsxRuntime.jsx("td", { children: s.commitment }),
1677
- sla.some((sl) => sl.current) && /* @__PURE__ */ jsxRuntime.jsx("td", { className: "ds-enterprise-signaling__sla-current", children: s.current ?? "\u2014" })
1678
- ] }, i)) })
1679
- ] })
1680
- ] })
1681
- ]
1682
- }
1683
- );
1684
- }
1685
- );
1686
- EnterpriseSignaling.displayName = "EnterpriseSignaling";
1687
- var IntelligenceBlock = React34.forwardRef(
1688
- ({
1689
- eyebrow,
1690
- title,
1691
- subtitle,
1692
- metrics,
1693
- capabilities,
1694
- variant = "metrics-first",
1695
- className,
1696
- ...props
1697
- }, ref) => {
1698
- const metricsBlock = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-intelligence__metrics", children: metrics.map((m, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-intelligence__metric", children: [
1699
- /* @__PURE__ */ jsxRuntime.jsx(
1700
- chunkDP74LUXG_cjs.MetricCounter,
1701
- {
1702
- value: m.value,
1703
- prefix: m.prefix,
1704
- suffix: m.suffix,
1705
- label: m.label
1706
- }
1707
- ),
1708
- m.growth && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__growth", children: m.growth })
1709
- ] }, i)) });
1710
- const capabilitiesBlock = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-intelligence__capabilities", children: capabilities.map((cap, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-intelligence__capability", children: [
1711
- cap.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-intelligence__capability-icon", "aria-hidden": "true", children: cap.icon }),
1712
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-intelligence__capability-content", children: [
1713
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-intelligence__capability-title", children: cap.title }),
1714
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-intelligence__capability-desc", children: cap.description }),
1715
- cap.compoundingExample && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-intelligence__compound", children: [
1716
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-intelligence__compound-before", children: [
1717
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-label", children: "Before" }),
1718
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-text", children: cap.compoundingExample.before })
1719
- ] }),
1720
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-arrow", "aria-hidden": "true", children: "\\u2192" }),
1721
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-intelligence__compound-after", children: [
1722
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-label", children: cap.compoundingExample.timeframe }),
1723
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-intelligence__compound-text", children: cap.compoundingExample.after })
1724
- ] })
1725
- ] })
1726
- ] })
1727
- ] }, i)) });
1728
- return /* @__PURE__ */ jsxRuntime.jsxs(
1729
- chunkIYPXJ6YC_cjs.SectionShell,
1730
- {
1731
- ref,
1732
- className: clsx27__default.default("ds-intelligence", `ds-intelligence--${variant}`, className),
1733
- ...props,
1734
- children: [
1735
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1736
- variant === "capabilities-first" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1737
- capabilitiesBlock,
1738
- metricsBlock
1739
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1740
- metricsBlock,
1741
- capabilitiesBlock
1742
- ] })
1743
- ]
1744
- }
1745
- );
1746
- }
1747
- );
1748
- IntelligenceBlock.displayName = "IntelligenceBlock";
1749
- function fmtNum(n, prefix, suffix) {
1750
- return `${prefix ?? ""}${n.toLocaleString("en-US", { maximumFractionDigits: 0 })}${suffix ?? ""}`;
1751
- }
1752
- var PartnerValueProp = React34.forwardRef(
1753
- ({
1754
- eyebrow,
1755
- title,
1756
- subtitle,
1757
- calculator,
1758
- benefits,
1759
- differentiators,
1760
- differentiatorTitle = "Build In-House vs. White-Label",
1761
- differentiatorBuildLabel = "Build In-House",
1762
- differentiatorPartnerLabel = "White-Label",
1763
- cta,
1764
- className,
1765
- ...props
1766
- }, ref) => {
1767
- const initialValues = React34.useMemo(() => {
1768
- if (!calculator) return {};
1769
- const vals = {};
1770
- calculator.inputs.forEach((inp) => {
1771
- vals[inp.name] = inp.defaultValue;
1772
- });
1773
- return vals;
1774
- }, [calculator]);
1775
- const [values, setValues] = React34.useState(initialValues);
1776
- const handleChange = React34.useCallback((name, value) => {
1777
- setValues((prev) => ({ ...prev, [name]: value }));
1778
- }, []);
1779
- const calcOutput = React34.useMemo(() => {
1780
- if (!calculator) return null;
1781
- return calculator.calculate(values);
1782
- }, [values, calculator]);
1783
- return /* @__PURE__ */ jsxRuntime.jsxs(
1784
- chunkIYPXJ6YC_cjs.SectionShell,
1785
- {
1786
- ref,
1787
- className: clsx27__default.default("ds-partner-vp", className),
1788
- ...props,
1789
- children: [
1790
- /* @__PURE__ */ jsxRuntime.jsx(chunkIYPXJ6YC_cjs.SectionHeader, { eyebrow, title, subtitle }),
1791
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__layout", children: [
1792
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-partner-vp__benefits", children: benefits.map((b, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__benefit", children: [
1793
- b.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-partner-vp__benefit-icon", "aria-hidden": "true", children: b.icon }),
1794
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1795
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-partner-vp__benefit-title", children: b.title }),
1796
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-partner-vp__benefit-desc", children: b.description })
1797
- ] })
1798
- ] }, i)) }),
1799
- calculator && calcOutput && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calculator", children: [
1800
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-partner-vp__calc-title", children: "Partner Economics" }),
1801
- calculator.inputs.map((input) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-input", children: [
1802
- /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "ds-partner-vp__calc-label", children: [
1803
- input.label,
1804
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-value", children: fmtNum(values[input.name], input.prefix, input.suffix) })
1805
- ] }),
1806
- /* @__PURE__ */ jsxRuntime.jsx(
1807
- chunkW2WTP6HS_cjs.Slider,
1808
- {
1809
- value: values[input.name],
1810
- min: input.min ?? 0,
1811
- max: input.max ?? 100,
1812
- onValueChange: (v) => handleChange(input.name, v)
1813
- }
1814
- )
1815
- ] }, input.name)),
1816
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-results", children: [
1817
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-margin", children: [
1818
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-partner-vp__calc-margin-value", children: [
1819
- Math.round(calcOutput.marginPercentage),
1820
- "%"
1821
- ] }),
1822
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-margin-label", children: "Margin" })
1823
- ] }),
1824
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-metrics", children: [
1825
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-metric", children: [
1826
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-metric-value", children: fmtNum(calcOutput.monthlyRevenue, "$") }),
1827
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-metric-label", children: "Monthly Revenue" })
1828
- ] }),
1829
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-metric", children: [
1830
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-metric-value", children: fmtNum(calcOutput.monthlyCost, "$") }),
1831
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-metric-label", children: "Monthly Cost" })
1832
- ] }),
1833
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-metric", children: [
1834
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-metric-value ds-partner-vp__calc-metric-value--positive", children: fmtNum(calcOutput.monthlyMargin, "$") }),
1835
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-metric-label", children: "Monthly Profit" })
1836
- ] }),
1837
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__calc-metric", children: [
1838
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-metric-value", children: fmtNum(calcOutput.annualRevenue, "$") }),
1839
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-partner-vp__calc-metric-label", children: "Annual Revenue" })
1840
- ] })
1841
- ] })
1842
- ] })
1843
- ] })
1844
- ] }),
1845
- differentiators && differentiators.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-partner-vp__diff", children: [
1846
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-partner-vp__diff-title", children: differentiatorTitle }),
1847
- /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "ds-partner-vp__diff-table", children: [
1848
- /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1849
- /* @__PURE__ */ jsxRuntime.jsx("th", { children: "Dimension" }),
1850
- /* @__PURE__ */ jsxRuntime.jsx("th", { children: differentiatorBuildLabel }),
1851
- /* @__PURE__ */ jsxRuntime.jsx("th", { children: differentiatorPartnerLabel })
1852
- ] }) }),
1853
- /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: differentiators.map((d, i) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1854
- /* @__PURE__ */ jsxRuntime.jsx("td", { className: "ds-partner-vp__diff-dimension", children: d.dimension }),
1855
- /* @__PURE__ */ jsxRuntime.jsx("td", { className: "ds-partner-vp__diff-build", children: d.buildInHouse }),
1856
- /* @__PURE__ */ jsxRuntime.jsx("td", { className: "ds-partner-vp__diff-sm", children: d.withPartner })
1857
- ] }, i)) })
1858
- ] })
1859
- ] }),
1860
- /* @__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 }) }) })
1861
- ]
1862
- }
1863
- );
1864
- }
1865
- );
1866
- PartnerValueProp.displayName = "PartnerValueProp";
1867
- var ComparisonTable = React34__default.default.forwardRef(
1868
- ({ columns, rows, caption, className, ...props }, ref) => {
1869
- 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: [
1870
- caption && /* @__PURE__ */ jsxRuntime.jsx("caption", { className: "ds-comparison-table__caption", children: caption }),
1871
- /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "ds-comparison-table__head", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
1872
- /* @__PURE__ */ jsxRuntime.jsx("th", { className: "ds-comparison-table__corner", scope: "col", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-visually-hidden", children: "Feature" }) }),
1873
- columns.map((col, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1874
- "th",
1875
- {
1876
- scope: "col",
1877
- className: clsx27__default.default(
1878
- "ds-comparison-table__col-header",
1879
- col.highlighted && "ds-comparison-table__col-header--highlighted"
1880
- ),
1881
- children: [
1882
- col.badge && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-comparison-table__col-badge", children: col.badge }),
1883
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-comparison-table__col-label", children: col.label })
1884
- ]
1885
- },
1886
- idx
1887
- ))
1888
- ] }) }),
1889
- /* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "ds-comparison-table__body", children: rows.map(
1890
- (row, rowIdx) => row.isCategory ? /* @__PURE__ */ jsxRuntime.jsx("tr", { className: "ds-comparison-table__category-row", children: /* @__PURE__ */ jsxRuntime.jsx(
1891
- "td",
1892
- {
1893
- colSpan: columns.length + 1,
1894
- className: "ds-comparison-table__category",
1895
- children: row.label
1896
- }
1897
- ) }, rowIdx) : /* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "ds-comparison-table__row", children: [
1898
- /* @__PURE__ */ jsxRuntime.jsx("td", { className: "ds-comparison-table__row-label", children: row.label }),
1899
- row.values.map((val, colIdx) => /* @__PURE__ */ jsxRuntime.jsx(
1900
- "td",
1901
- {
1902
- className: clsx27__default.default(
1903
- "ds-comparison-table__cell",
1904
- columns[colIdx]?.highlighted && "ds-comparison-table__cell--highlighted"
1905
- ),
1906
- children: val
1907
- },
1908
- colIdx
1909
- ))
1910
- ] }, rowIdx)
1911
- ) })
1912
- ] }) }) });
1913
- }
1914
- );
1915
- ComparisonTable.displayName = "ComparisonTable";
1916
- var GuaranteeHighlight = React34__default.default.forwardRef(
1917
- ({
1918
- guarantee,
1919
- detail,
1920
- finePrint,
1921
- variant = "default",
1922
- icon,
1923
- className,
1924
- ...props
1925
- }, ref) => {
1926
- return /* @__PURE__ */ jsxRuntime.jsxs(
1927
- "div",
1928
- {
1929
- ref,
1930
- className: clsx27__default.default(
1931
- "ds-guarantee",
1932
- `ds-guarantee--${variant}`,
1933
- className
1934
- ),
1935
- ...props,
1936
- children: [
1937
- icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-guarantee__icon", children: icon }),
1938
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-guarantee__content", children: [
1939
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-guarantee__statement", children: guarantee }),
1940
- detail && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-guarantee__detail", children: detail }),
1941
- finePrint && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-guarantee__fine-print", children: finePrint })
1942
- ] })
1943
- ]
1944
- }
1945
- );
1946
- }
1947
- );
1948
- GuaranteeHighlight.displayName = "GuaranteeHighlight";
1949
- var ROICalculator = React34__default.default.forwardRef(
1950
- ({
1951
- eyebrow,
1952
- title,
1953
- items,
1954
- summary,
1955
- savingsCallout,
1956
- className,
1957
- ...props
1958
- }, ref) => {
1959
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx27__default.default("ds-roi-calculator", className), ...props, children: [
1960
- (eyebrow || title) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-roi-calculator__header", children: [
1961
- eyebrow && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-roi-calculator__eyebrow", children: eyebrow }),
1962
- title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-roi-calculator__title", children: title })
1963
- ] }),
1964
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-roi-calculator__grid", children: items.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1965
- "div",
1966
- {
1967
- className: clsx27__default.default(
1968
- "ds-roi-calculator__item",
1969
- item.isRecommended && "ds-roi-calculator__item--recommended"
1970
- ),
1971
- children: [
1972
- item.isRecommended && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-roi-calculator__item-badge", children: "Your Cost" }),
1973
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-roi-calculator__item-label", children: item.label }),
1974
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-roi-calculator__item-cost", children: item.monthlyCost }),
1975
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-roi-calculator__item-annual", children: item.annualCost }),
1976
- item.context && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-roi-calculator__item-context", children: item.context })
1977
- ]
1978
- },
1979
- idx
1980
- )) }),
1981
- savingsCallout && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-roi-calculator__savings", children: savingsCallout }),
1982
- summary && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-roi-calculator__summary", children: summary })
1983
- ] });
1984
- }
1985
- );
1986
- ROICalculator.displayName = "ROICalculator";
1987
- var ICPFilter = React34__default.default.forwardRef(
1988
- ({
1989
- qualifiedItems,
1990
- disqualifiedItems,
1991
- qualifiedHeading = "This Is For You If",
1992
- disqualifiedHeading = "This Is Not For You If",
1993
- variant = "columns",
1994
- className,
1995
- ...props
1996
- }, ref) => {
1997
- return /* @__PURE__ */ jsxRuntime.jsxs(
1998
- "div",
1999
- {
2000
- ref,
2001
- className: clsx27__default.default(
2002
- "ds-icp-filter",
2003
- `ds-icp-filter--${variant}`,
2004
- className
2005
- ),
2006
- ...props,
2007
- children: [
2008
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-icp-filter__column ds-icp-filter__column--qualified", children: [
2009
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "ds-icp-filter__heading ds-icp-filter__heading--qualified", children: qualifiedHeading }),
2010
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-icp-filter__list", children: qualifiedItems.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "ds-icp-filter__item ds-icp-filter__item--qualified", children: [
2011
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-icp-filter__icon", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "20 6 9 17 4 12" }) }) }),
2012
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-icp-filter__text", children: item.text })
2013
- ] }, idx)) })
2014
- ] }),
2015
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-icp-filter__column ds-icp-filter__column--disqualified", children: [
2016
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "ds-icp-filter__heading ds-icp-filter__heading--disqualified", children: disqualifiedHeading }),
2017
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ds-icp-filter__list", children: disqualifiedItems.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "ds-icp-filter__item ds-icp-filter__item--disqualified", children: [
2018
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-icp-filter__icon", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [
2019
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
2020
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
2021
- ] }) }),
2022
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-icp-filter__text", children: item.text })
2023
- ] }, idx)) })
2024
- ] })
2025
- ]
2026
- }
2027
- );
2028
- }
2029
- );
2030
- ICPFilter.displayName = "ICPFilter";
2031
- var ObjectionFAQ = React34__default.default.forwardRef(
2032
- ({
2033
- items,
2034
- title,
2035
- subtitle,
2036
- allowMultiple = false,
2037
- defaultOpenIndex,
2038
- className,
2039
- ...props
2040
- }, ref) => {
2041
- const [openItems, setOpenItems] = React34__default.default.useState(() => {
2042
- const initial = /* @__PURE__ */ new Set();
2043
- if (defaultOpenIndex !== void 0) initial.add(defaultOpenIndex);
2044
- return initial;
2045
- });
2046
- const toggle = React34__default.default.useCallback(
2047
- (index) => {
2048
- setOpenItems((prev) => {
2049
- const next = new Set(prev);
2050
- if (next.has(index)) {
2051
- next.delete(index);
2052
- } else {
2053
- if (!allowMultiple) next.clear();
2054
- next.add(index);
2055
- }
2056
- return next;
2057
- });
2058
- },
2059
- [allowMultiple]
2060
- );
2061
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx27__default.default("ds-objection-faq", className), ...props, children: [
2062
- (title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-objection-faq__header", children: [
2063
- title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-objection-faq__title", children: title }),
2064
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-objection-faq__subtitle", children: subtitle })
2065
- ] }),
2066
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-objection-faq__list", role: "list", children: items.map((item, idx) => {
2067
- const isOpen = openItems.has(idx);
2068
- return /* @__PURE__ */ jsxRuntime.jsxs(
2069
- "div",
2070
- {
2071
- className: clsx27__default.default(
2072
- "ds-objection-faq__item",
2073
- isOpen && "ds-objection-faq__item--open"
2074
- ),
2075
- "data-state": isOpen ? "open" : "closed",
2076
- role: "listitem",
2077
- children: [
2078
- /* @__PURE__ */ jsxRuntime.jsxs(
2079
- "button",
2080
- {
2081
- type: "button",
2082
- className: "ds-objection-faq__trigger",
2083
- onClick: () => toggle(idx),
2084
- "aria-expanded": isOpen,
2085
- children: [
2086
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-objection-faq__trigger-content", children: [
2087
- item.tag && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-objection-faq__tag", children: item.tag }),
2088
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-objection-faq__question", children: item.question })
2089
- ] }),
2090
- /* @__PURE__ */ jsxRuntime.jsx(
2091
- "svg",
2092
- {
2093
- className: "ds-objection-faq__chevron",
2094
- width: "16",
2095
- height: "16",
2096
- viewBox: "0 0 24 24",
2097
- fill: "none",
2098
- stroke: "currentColor",
2099
- strokeWidth: "2",
2100
- strokeLinecap: "round",
2101
- strokeLinejoin: "round",
2102
- "aria-hidden": "true",
2103
- children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "6 9 12 15 18 9" })
2104
- }
2105
- )
2106
- ]
2107
- }
2108
- ),
2109
- /* @__PURE__ */ jsxRuntime.jsx(
2110
- "div",
2111
- {
2112
- className: "ds-objection-faq__answer-wrapper",
2113
- hidden: !isOpen,
2114
- children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-objection-faq__answer", children: item.answer })
2115
- }
2116
- )
2117
- ]
2118
- },
2119
- idx
2120
- );
2121
- }) })
2122
- ] });
2123
- }
2124
- );
2125
- ObjectionFAQ.displayName = "ObjectionFAQ";
2126
-
2127
- exports.AnnouncementBar = AnnouncementBar;
2128
- exports.ArchitectureDiagram = ArchitectureDiagram;
2129
- exports.BeforeAfterBlock = BeforeAfterBlock;
2130
- exports.BookingEmbed = BookingEmbed;
2131
- exports.CaseStudyCard = CaseStudyCard;
2132
- exports.CaseStudySection = CaseStudySection;
2133
- exports.ComparisonTable = ComparisonTable;
2134
- exports.CompetitorDiff = CompetitorDiff;
2135
- exports.ComplianceGrid = ComplianceGrid;
2136
- exports.EcosystemDiagram = EcosystemDiagram;
2137
- exports.EnterpriseSignaling = EnterpriseSignaling;
2138
- exports.EvolutionTimeline = EvolutionTimeline;
2139
- exports.ExitIntentOverlay = ExitIntentOverlay;
2140
- exports.GuaranteeHighlight = GuaranteeHighlight;
2141
- exports.ICPFilter = ICPFilter;
2142
- exports.IntegrationShowcase = IntegrationShowcase;
2143
- exports.IntelligenceBlock = IntelligenceBlock;
2144
- exports.IntentCTA = IntentCTA;
2145
- exports.LeadCaptureForm = LeadCaptureForm;
2146
- exports.ManifestoBlock = ManifestoBlock;
2147
- exports.ObjectionFAQ = ObjectionFAQ;
2148
- exports.PartnerValueProp = PartnerValueProp;
2149
- exports.PricingCard = PricingCard;
2150
- exports.PricingSection = PricingSection;
2151
- exports.PricingToggle = PricingToggle;
2152
- exports.ProblemAgitation = ProblemAgitation;
2153
- exports.ProcessTimeline = ProcessTimeline;
2154
- exports.ROICalculator = ROICalculator;
2155
- exports.SecurityBlock = SecurityBlock;
2156
- exports.SegmentSwitch = SegmentSwitch;
2157
- exports.StakeholderTabs = StakeholderTabs;
2158
- exports.StickyActionBar = StickyActionBar;
2159
- exports.ValueAnchor = ValueAnchor;
2160
- exports.VideoEmbed = VideoEmbed;
2161
- //# sourceMappingURL=out.js.map
2162
- //# sourceMappingURL=chunk-ZWUKRCOJ.cjs.map