@salesmind-ai/design-system 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/README.md +2 -0
  2. package/dist/Anton-Regular-MLEXVTB2.woff2 +0 -0
  3. package/dist/admin/index.cjs +5 -61
  4. package/dist/admin/index.css +0 -3918
  5. package/dist/admin/index.css.map +1 -1
  6. package/dist/admin/index.d.cts +1 -422
  7. package/dist/admin/index.d.ts +1 -422
  8. package/dist/admin/index.js +1 -5
  9. package/dist/blog/index.cjs +13 -34
  10. package/dist/blog/index.css +0 -579
  11. package/dist/blog/index.css.map +1 -1
  12. package/dist/blog/index.d.cts +1 -54
  13. package/dist/blog/index.d.ts +1 -54
  14. package/dist/blog/index.js +5 -6
  15. package/dist/charts/index.cjs +0 -46
  16. package/dist/charts/index.d.cts +1 -452
  17. package/dist/charts/index.d.ts +1 -452
  18. package/dist/charts/index.js +1 -3
  19. package/dist/{chunk-HDVAMYSG.js → chunk-27Y5ESMM.js} +7 -2
  20. package/dist/chunk-27Y5ESMM.js.map +1 -0
  21. package/dist/{chunk-YTYDQBVY.cjs → chunk-2VVRZBUR.cjs} +4 -4
  22. package/dist/{chunk-GQELL2MF.cjs → chunk-3NS6X2R4.cjs} +20 -203
  23. package/dist/chunk-3NS6X2R4.cjs.map +1 -0
  24. package/dist/{chunk-XEX2AEZK.cjs → chunk-65DTHLVX.cjs} +66 -186
  25. package/dist/chunk-65DTHLVX.cjs.map +1 -0
  26. package/dist/{chunk-QALDZ7WQ.js → chunk-6BUS7RMS.js} +21 -198
  27. package/dist/chunk-6BUS7RMS.js.map +1 -0
  28. package/dist/{chunk-BJZ2DKS5.cjs → chunk-6QIQCUYC.cjs} +11 -10
  29. package/dist/chunk-6QIQCUYC.cjs.map +1 -0
  30. package/dist/{chunk-H2Y6BSTL.cjs → chunk-7EUR3AKV.cjs} +1 -1
  31. package/dist/chunk-7EUR3AKV.cjs.map +1 -0
  32. package/dist/{chunk-VFJZQQZU.js → chunk-AMNY5TS3.js} +11 -10
  33. package/dist/chunk-AMNY5TS3.js.map +1 -0
  34. package/dist/{chunk-YJ6C3EKW.js → chunk-CLXLQCNQ.js} +52 -168
  35. package/dist/chunk-CLXLQCNQ.js.map +1 -0
  36. package/dist/{chunk-H2KQ3WSH.cjs → chunk-CVLD5RQK.cjs} +12 -14
  37. package/dist/chunk-CVLD5RQK.cjs.map +1 -0
  38. package/dist/chunk-EPD4ZEPY.cjs +344 -0
  39. package/dist/chunk-EPD4ZEPY.cjs.map +1 -0
  40. package/dist/chunk-FXYOSA4E.cjs +118 -0
  41. package/dist/chunk-FXYOSA4E.cjs.map +1 -0
  42. package/dist/{chunk-ECXBTUH6.cjs → chunk-GPHQGLR5.cjs} +27 -204
  43. package/dist/chunk-GPHQGLR5.cjs.map +1 -0
  44. package/dist/{chunk-Y26OHHMX.js → chunk-HHQ6J7B6.js} +513 -888
  45. package/dist/chunk-HHQ6J7B6.js.map +1 -0
  46. package/dist/chunk-JPUJWI7F.cjs +73 -0
  47. package/dist/chunk-JPUJWI7F.cjs.map +1 -0
  48. package/dist/{chunk-6UNG76Y2.js → chunk-K526GN7P.js} +2 -2
  49. package/dist/{chunk-SICKWUWB.js → chunk-KJHPOB3J.js} +1 -1
  50. package/dist/chunk-KJHPOB3J.js.map +1 -0
  51. package/dist/chunk-KXVFFEGD.js +60 -0
  52. package/dist/chunk-KXVFFEGD.js.map +1 -0
  53. package/dist/chunk-LQB7QLD3.js +288 -0
  54. package/dist/chunk-LQB7QLD3.js.map +1 -0
  55. package/dist/chunk-LUD52ZJF.cjs +726 -0
  56. package/dist/chunk-LUD52ZJF.cjs.map +1 -0
  57. package/dist/{chunk-7UZ5DETZ.js → chunk-MBAG654R.js} +4 -216
  58. package/dist/chunk-MBAG654R.js.map +1 -0
  59. package/dist/chunk-OMP6FAZ6.cjs +183 -0
  60. package/dist/chunk-OMP6FAZ6.cjs.map +1 -0
  61. package/dist/{chunk-WYH4TKS5.js → chunk-PBYRTNQ5.js} +6 -8
  62. package/dist/chunk-PBYRTNQ5.js.map +1 -0
  63. package/dist/chunk-PYREXCZK.js +679 -0
  64. package/dist/chunk-PYREXCZK.js.map +1 -0
  65. package/dist/{chunk-6D22TFLA.cjs → chunk-R3ZECV5P.cjs} +9 -4
  66. package/dist/chunk-R3ZECV5P.cjs.map +1 -0
  67. package/dist/{chunk-P5BOFE5A.js → chunk-RSLA2FJN.js} +28 -183
  68. package/dist/chunk-RSLA2FJN.js.map +1 -0
  69. package/dist/chunk-S46SKHMD.js +173 -0
  70. package/dist/chunk-S46SKHMD.js.map +1 -0
  71. package/dist/chunk-SFXTB7JL.js +190 -0
  72. package/dist/chunk-SFXTB7JL.js.map +1 -0
  73. package/dist/chunk-SGYXYMKZ.cjs +214 -0
  74. package/dist/chunk-SGYXYMKZ.cjs.map +1 -0
  75. package/dist/chunk-UGKYP6F3.cjs +296 -0
  76. package/dist/chunk-UGKYP6F3.cjs.map +1 -0
  77. package/dist/chunk-WB6XDNU7.js +115 -0
  78. package/dist/chunk-WB6XDNU7.js.map +1 -0
  79. package/dist/{chunk-LTPTW2US.cjs → chunk-WE4QIIVN.cjs} +592 -974
  80. package/dist/chunk-WE4QIIVN.cjs.map +1 -0
  81. package/dist/core/index.cjs +144 -626
  82. package/dist/core/index.css +178 -3567
  83. package/dist/core/index.css.map +1 -1
  84. package/dist/core/index.d.cts +940 -902
  85. package/dist/core/index.d.ts +940 -902
  86. package/dist/core/index.js +6 -12
  87. package/dist/i18n/index.cjs +54 -49
  88. package/dist/i18n/index.d.cts +46 -11
  89. package/dist/i18n/index.d.ts +46 -11
  90. package/dist/i18n/index.js +2 -1
  91. package/dist/index-BJ8rBqrO.d.cts +1100 -0
  92. package/dist/index-BxMqCbqE.d.ts +1100 -0
  93. package/dist/index.cjs +507 -1001
  94. package/dist/index.cjs.map +1 -1
  95. package/dist/index.css +6057 -16713
  96. package/dist/index.css.map +1 -1
  97. package/dist/index.d.cts +306 -21
  98. package/dist/index.d.ts +306 -21
  99. package/dist/index.js +274 -39
  100. package/dist/index.js.map +1 -1
  101. package/dist/marketing/index.cjs +33 -76
  102. package/dist/marketing/index.css +1896 -3234
  103. package/dist/marketing/index.css.map +1 -1
  104. package/dist/marketing/index.d.cts +3 -1351
  105. package/dist/marketing/index.d.ts +3 -1351
  106. package/dist/marketing/index.js +5 -8
  107. package/dist/motion/index.cjs +3 -20
  108. package/dist/motion/index.css +0 -580
  109. package/dist/motion/index.css.map +1 -1
  110. package/dist/motion/index.d.cts +1 -37
  111. package/dist/motion/index.d.ts +1 -37
  112. package/dist/motion/index.js +1 -2
  113. package/dist/nav/index.cjs +10 -35
  114. package/dist/nav/index.css +28 -580
  115. package/dist/nav/index.css.map +1 -1
  116. package/dist/nav/index.d.cts +2 -60
  117. package/dist/nav/index.d.ts +2 -60
  118. package/dist/nav/index.js +1 -2
  119. package/dist/report/index.cjs +1166 -175
  120. package/dist/report/index.cjs.map +1 -1
  121. package/dist/report/index.d.cts +208 -5
  122. package/dist/report/index.d.ts +208 -5
  123. package/dist/report/index.js +1141 -3
  124. package/dist/report/index.js.map +1 -1
  125. package/dist/sections/index.cjs +8 -10
  126. package/dist/sections/index.cjs.map +1 -1
  127. package/dist/sections/index.css +0 -206
  128. package/dist/sections/index.css.map +1 -1
  129. package/dist/sections/index.js +2 -4
  130. package/dist/sections/index.js.map +1 -1
  131. package/dist/social-media/index.cjs +4 -0
  132. package/dist/social-media/index.cjs.map +1 -0
  133. package/dist/social-media/index.d.cts +2 -0
  134. package/dist/social-media/index.d.ts +2 -0
  135. package/dist/social-media/index.js +3 -0
  136. package/dist/social-media/index.js.map +1 -0
  137. package/dist/social-proof/index.cjs +4 -36
  138. package/dist/social-proof/index.css +3 -1106
  139. package/dist/social-proof/index.css.map +1 -1
  140. package/dist/social-proof/index.d.cts +26 -171
  141. package/dist/social-proof/index.d.ts +26 -171
  142. package/dist/social-proof/index.js +1 -5
  143. package/dist/styles/styles.css +657 -2990
  144. package/dist/theme/index.cjs +12 -16
  145. package/dist/theme/index.css +1 -245
  146. package/dist/theme/index.css.map +1 -1
  147. package/dist/theme/index.d.cts +4 -1
  148. package/dist/theme/index.d.ts +4 -1
  149. package/dist/theme/index.js +2 -2
  150. package/dist/web/client/index.cjs +10 -10
  151. package/dist/web/client/index.css +118 -0
  152. package/dist/web/client/index.css.map +1 -1
  153. package/dist/web/client/index.js +2 -2
  154. package/dist/web/index.cjs +10 -10
  155. package/dist/web/index.css +118 -0
  156. package/dist/web/index.css.map +1 -1
  157. package/dist/web/index.js +2 -2
  158. package/package.json +10 -4
  159. package/dist/AppearancePanel-UT57J69V.d.cts +0 -51
  160. package/dist/AppearancePanel-UT57J69V.d.ts +0 -51
  161. package/dist/ExportMenu-A2TLFiVv.d.cts +0 -311
  162. package/dist/ExportMenu-C8qck5AT.d.ts +0 -311
  163. package/dist/Select-BdZmK0Lt.d.cts +0 -66
  164. package/dist/Select-BdZmK0Lt.d.ts +0 -66
  165. package/dist/chart-types-BGVVO-zl.d.cts +0 -208
  166. package/dist/chart-types-BGVVO-zl.d.ts +0 -208
  167. package/dist/charts/index.css +0 -1167
  168. package/dist/charts/index.css.map +0 -1
  169. package/dist/chunk-3BAQDW3V.cjs +0 -1207
  170. package/dist/chunk-3BAQDW3V.cjs.map +0 -1
  171. package/dist/chunk-3NKRFUAR.js +0 -37
  172. package/dist/chunk-3NKRFUAR.js.map +0 -1
  173. package/dist/chunk-3TGSIILM.cjs +0 -201
  174. package/dist/chunk-3TGSIILM.cjs.map +0 -1
  175. package/dist/chunk-4GM5BGBN.cjs +0 -801
  176. package/dist/chunk-4GM5BGBN.cjs.map +0 -1
  177. package/dist/chunk-5LA3T22E.cjs +0 -562
  178. package/dist/chunk-5LA3T22E.cjs.map +0 -1
  179. package/dist/chunk-5SN66B2X.js +0 -2542
  180. package/dist/chunk-5SN66B2X.js.map +0 -1
  181. package/dist/chunk-6D22TFLA.cjs.map +0 -1
  182. package/dist/chunk-6H4DSTXR.js +0 -786
  183. package/dist/chunk-6H4DSTXR.js.map +0 -1
  184. package/dist/chunk-6HKQ5ILL.cjs +0 -1624
  185. package/dist/chunk-6HKQ5ILL.cjs.map +0 -1
  186. package/dist/chunk-7PX2AZ6Y.js +0 -39
  187. package/dist/chunk-7PX2AZ6Y.js.map +0 -1
  188. package/dist/chunk-7UZ5DETZ.js.map +0 -1
  189. package/dist/chunk-B6AVAX4F.js +0 -1415
  190. package/dist/chunk-B6AVAX4F.js.map +0 -1
  191. package/dist/chunk-BJZ2DKS5.cjs.map +0 -1
  192. package/dist/chunk-BUTQSDQH.js +0 -200
  193. package/dist/chunk-BUTQSDQH.js.map +0 -1
  194. package/dist/chunk-C2BCDNAV.js +0 -24
  195. package/dist/chunk-C2BCDNAV.js.map +0 -1
  196. package/dist/chunk-CJ2MKVAF.cjs +0 -46
  197. package/dist/chunk-CJ2MKVAF.cjs.map +0 -1
  198. package/dist/chunk-E7D6EKJ4.cjs +0 -44
  199. package/dist/chunk-E7D6EKJ4.cjs.map +0 -1
  200. package/dist/chunk-ECXBTUH6.cjs.map +0 -1
  201. package/dist/chunk-FAFAP4L5.js +0 -183
  202. package/dist/chunk-FAFAP4L5.js.map +0 -1
  203. package/dist/chunk-G2XGBO5V.cjs +0 -2565
  204. package/dist/chunk-G2XGBO5V.cjs.map +0 -1
  205. package/dist/chunk-GQELL2MF.cjs.map +0 -1
  206. package/dist/chunk-H2KQ3WSH.cjs.map +0 -1
  207. package/dist/chunk-H2Y6BSTL.cjs.map +0 -1
  208. package/dist/chunk-HCZW5AJN.cjs +0 -234
  209. package/dist/chunk-HCZW5AJN.cjs.map +0 -1
  210. package/dist/chunk-HDVAMYSG.js.map +0 -1
  211. package/dist/chunk-HN4PHABT.js +0 -126
  212. package/dist/chunk-HN4PHABT.js.map +0 -1
  213. package/dist/chunk-LTPTW2US.cjs.map +0 -1
  214. package/dist/chunk-MDB2WCRQ.cjs +0 -137
  215. package/dist/chunk-MDB2WCRQ.cjs.map +0 -1
  216. package/dist/chunk-MQRB634A.cjs +0 -34
  217. package/dist/chunk-MQRB634A.cjs.map +0 -1
  218. package/dist/chunk-NN3TUHIH.js +0 -28
  219. package/dist/chunk-NN3TUHIH.js.map +0 -1
  220. package/dist/chunk-OWS2KAXZ.js +0 -701
  221. package/dist/chunk-OWS2KAXZ.js.map +0 -1
  222. package/dist/chunk-P5BOFE5A.js.map +0 -1
  223. package/dist/chunk-PUPSK3DI.cjs +0 -216
  224. package/dist/chunk-PUPSK3DI.cjs.map +0 -1
  225. package/dist/chunk-Q2MFGYTE.cjs +0 -1449
  226. package/dist/chunk-Q2MFGYTE.cjs.map +0 -1
  227. package/dist/chunk-Q75DBVDY.cjs +0 -68
  228. package/dist/chunk-Q75DBVDY.cjs.map +0 -1
  229. package/dist/chunk-QALDZ7WQ.js.map +0 -1
  230. package/dist/chunk-QWE2RNCS.js +0 -1195
  231. package/dist/chunk-QWE2RNCS.js.map +0 -1
  232. package/dist/chunk-RQUFZAZ7.js +0 -1608
  233. package/dist/chunk-RQUFZAZ7.js.map +0 -1
  234. package/dist/chunk-SICKWUWB.js.map +0 -1
  235. package/dist/chunk-TCFC7XTB.js +0 -212
  236. package/dist/chunk-TCFC7XTB.js.map +0 -1
  237. package/dist/chunk-UTVXGAQP.cjs +0 -2437
  238. package/dist/chunk-UTVXGAQP.cjs.map +0 -1
  239. package/dist/chunk-UVEMY3FQ.cjs +0 -717
  240. package/dist/chunk-UVEMY3FQ.cjs.map +0 -1
  241. package/dist/chunk-VFJZQQZU.js.map +0 -1
  242. package/dist/chunk-WH7PYHZY.cjs +0 -35
  243. package/dist/chunk-WH7PYHZY.cjs.map +0 -1
  244. package/dist/chunk-WYH4TKS5.js.map +0 -1
  245. package/dist/chunk-XEX2AEZK.cjs.map +0 -1
  246. package/dist/chunk-XPTVHPCN.js +0 -2320
  247. package/dist/chunk-XPTVHPCN.js.map +0 -1
  248. package/dist/chunk-XWPDRMZG.js +0 -62
  249. package/dist/chunk-XWPDRMZG.js.map +0 -1
  250. package/dist/chunk-Y26OHHMX.js.map +0 -1
  251. package/dist/chunk-YJ6C3EKW.js.map +0 -1
  252. package/dist/motion-C651Ry6d.d.cts +0 -832
  253. package/dist/motion-C651Ry6d.d.ts +0 -832
  254. package/dist/report/index.css +0 -1239
  255. package/dist/report/index.css.map +0 -1
  256. /package/dist/{chunk-6UNG76Y2.js.map → chunk-2VVRZBUR.cjs.map} +0 -0
  257. /package/dist/{chunk-YTYDQBVY.cjs.map → chunk-K526GN7P.js.map} +0 -0
@@ -1,717 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkPUPSK3DI_cjs = require('./chunk-PUPSK3DI.cjs');
4
- var chunkBJZ2DKS5_cjs = require('./chunk-BJZ2DKS5.cjs');
5
- var chunkLJADZITX_cjs = require('./chunk-LJADZITX.cjs');
6
- var React3 = require('react');
7
- var clsx4 = require('clsx');
8
- var jsxRuntime = require('react/jsx-runtime');
9
- var framerMotion = require('framer-motion');
10
- var dialog = require('@base-ui/react/dialog');
11
-
12
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
-
14
- var React3__default = /*#__PURE__*/_interopDefault(React3);
15
- var clsx4__default = /*#__PURE__*/_interopDefault(clsx4);
16
-
17
- var StarRating = React3.forwardRef(
18
- ({
19
- value,
20
- max = 5,
21
- size = "md",
22
- animate = false,
23
- showValue = false,
24
- valueLabel,
25
- className,
26
- ...props
27
- }, ref) => {
28
- const [visible, setVisible] = React3.useState(!animate);
29
- const containerRef = React3.useRef(null);
30
- React3.useEffect(() => {
31
- if (!animate) return;
32
- if (typeof window !== "undefined") {
33
- const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
34
- if (mq.matches) {
35
- setVisible(true);
36
- return;
37
- }
38
- }
39
- const target = containerRef.current;
40
- if (!target) return;
41
- const observer = new IntersectionObserver(
42
- ([entry]) => {
43
- if (entry.isIntersecting) {
44
- setVisible(true);
45
- observer.disconnect();
46
- }
47
- },
48
- { threshold: 0.5 }
49
- );
50
- observer.observe(target);
51
- return () => observer.disconnect();
52
- }, [animate]);
53
- const clampedValue = Math.min(Math.max(value, 0), max);
54
- const stars = Array.from({ length: max }, (_, i) => {
55
- const starIndex = i + 1;
56
- const fillPercent = clampedValue >= starIndex ? 100 : clampedValue > starIndex - 1 ? (clampedValue - (starIndex - 1)) * 100 : 0;
57
- return /* @__PURE__ */ jsxRuntime.jsxs(
58
- "span",
59
- {
60
- className: clsx4__default.default(
61
- "ds-star-rating__star",
62
- visible && "ds-star-rating__star--visible"
63
- ),
64
- style: {
65
- "--star-fill": `${fillPercent}%`,
66
- "--star-delay": animate ? `${i * 100}ms` : "0ms"
67
- },
68
- children: [
69
- /* @__PURE__ */ jsxRuntime.jsx(
70
- "svg",
71
- {
72
- viewBox: "0 0 24 24",
73
- fill: "none",
74
- xmlns: "http://www.w3.org/2000/svg",
75
- className: "ds-star-rating__svg",
76
- "aria-hidden": "true",
77
- children: /* @__PURE__ */ jsxRuntime.jsx(
78
- "path",
79
- {
80
- d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z",
81
- className: "ds-star-rating__empty"
82
- }
83
- )
84
- }
85
- ),
86
- /* @__PURE__ */ jsxRuntime.jsx(
87
- "svg",
88
- {
89
- viewBox: "0 0 24 24",
90
- fill: "none",
91
- xmlns: "http://www.w3.org/2000/svg",
92
- className: "ds-star-rating__svg ds-star-rating__svg--filled",
93
- "aria-hidden": "true",
94
- style: {
95
- clipPath: `inset(0 ${100 - fillPercent}% 0 0)`
96
- },
97
- children: /* @__PURE__ */ jsxRuntime.jsx(
98
- "path",
99
- {
100
- d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z",
101
- className: "ds-star-rating__filled"
102
- }
103
- )
104
- }
105
- )
106
- ]
107
- },
108
- i
109
- );
110
- });
111
- return /* @__PURE__ */ jsxRuntime.jsxs(
112
- "div",
113
- {
114
- ref: (node) => {
115
- containerRef.current = node;
116
- if (typeof ref === "function") ref(node);
117
- else if (ref) ref.current = node;
118
- },
119
- className: clsx4__default.default("ds-star-rating", `ds-star-rating--${size}`, className),
120
- role: "img",
121
- "aria-label": `${clampedValue} out of ${max} stars`,
122
- ...props,
123
- children: [
124
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-star-rating__stars", children: stars }),
125
- showValue && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-star-rating__value", children: [
126
- clampedValue.toLocaleString(void 0, {
127
- minimumFractionDigits: clampedValue % 1 !== 0 ? 1 : 0,
128
- maximumFractionDigits: 1
129
- }),
130
- valueLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-star-rating__value-label", children: valueLabel })
131
- ] })
132
- ]
133
- }
134
- );
135
- }
136
- );
137
- StarRating.displayName = "StarRating";
138
- var TrustpilotIcon = ({ size }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2l2.9 8.9H24l-7.35 5.34 2.81 8.64L12 19.56l-7.46 5.32 2.81-8.64L0 10.9h9.1L12 2z", fill: "#00B67A" }) });
139
- var G2Icon = ({ size }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: [
140
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z", fill: "#FF492C" }),
141
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: "50%", y: "54%", dominantBaseline: "middle", textAnchor: "middle", fill: "white", fontWeight: "bold", fontSize: "11", fontFamily: "Arial, sans-serif", children: "G2" })
142
- ] });
143
- var GoogleIcon = ({ size }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: [
144
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 01-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z", fill: "#4285F4" }),
145
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z", fill: "#34A853" }),
146
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A10.96 10.96 0 001 12c0 1.77.42 3.45 1.18 4.93l3.66-2.84z", fill: "#FBBC05" }),
147
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z", fill: "#EA4335" })
148
- ] });
149
- var ChromeWebStoreIcon = ({ size }) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: [
150
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: "#4285F4", opacity: "0.1", stroke: "#4285F4", strokeWidth: "1.5" }),
151
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0 8.5c-1.93 0-3.5-1.57-3.5-3.5S10.07 8.5 12 8.5s3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z", fill: "#4285F4" }),
152
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.5 10.5L4 5.5", stroke: "#EA4335", strokeWidth: "1.5", strokeLinecap: "round" }),
153
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16.5 10.5L20 5.5", stroke: "#FBBC05", strokeWidth: "1.5", strokeLinecap: "round" }),
154
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 17l-3.5 5", stroke: "#34A853", strokeWidth: "1.5", strokeLinecap: "round" })
155
- ] });
156
- var PLATFORM_ICONS = {
157
- trustpilot: TrustpilotIcon,
158
- g2: G2Icon,
159
- google: GoogleIcon,
160
- "chrome-web-store": ChromeWebStoreIcon
161
- };
162
- var PLATFORM_LABELS = {
163
- trustpilot: "Trustpilot",
164
- g2: "G2",
165
- google: "Google",
166
- "chrome-web-store": "Chrome Web Store"
167
- };
168
- var PLATFORM_COLORS = {
169
- trustpilot: "#00B67A",
170
- g2: "#FF492C",
171
- google: "#4285F4",
172
- "chrome-web-store": "#4285F4"
173
- };
174
- var PlatformBadge = React3.forwardRef(
175
- ({
176
- platform,
177
- variant = "icon-label",
178
- rating,
179
- count,
180
- size = "sm",
181
- className,
182
- ...props
183
- }, ref) => {
184
- const Icon = PLATFORM_ICONS[platform];
185
- const label = PLATFORM_LABELS[platform];
186
- const accentColor = PLATFORM_COLORS[platform];
187
- const iconSize = size === "sm" ? 18 : 22;
188
- return /* @__PURE__ */ jsxRuntime.jsxs(
189
- "div",
190
- {
191
- ref,
192
- role: "img",
193
- className: clsx4__default.default(
194
- "ds-platform-badge",
195
- `ds-platform-badge--${variant}`,
196
- `ds-platform-badge--${size}`,
197
- className
198
- ),
199
- style: { "--platform-accent": accentColor },
200
- "aria-label": variant === "full" && rating ? `${label}: ${rating} stars${count ? ` from ${count} reviews` : ""}` : label,
201
- ...props,
202
- children: [
203
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-platform-badge__icon", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: iconSize }) }),
204
- variant !== "icon-only" && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-platform-badge__label", children: label }),
205
- variant === "full" && rating != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-platform-badge__rating", children: [
206
- /* @__PURE__ */ jsxRuntime.jsx(StarRating, { value: rating, size: "sm" }),
207
- count != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-platform-badge__count", children: [
208
- "(",
209
- count,
210
- ")"
211
- ] })
212
- ] })
213
- ]
214
- }
215
- );
216
- }
217
- );
218
- PlatformBadge.displayName = "PlatformBadge";
219
- var PlayIcon = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 5v14l11-7z" }) });
220
- var SocialProofCard = React3.forwardRef(
221
- ({
222
- variant = "simple",
223
- content,
224
- author,
225
- media,
226
- sourceIcon,
227
- platform,
228
- starRating,
229
- date,
230
- badges,
231
- ctaText,
232
- href,
233
- className,
234
- children,
235
- animationDelay,
236
- headline,
237
- logo,
238
- industry,
239
- metrics,
240
- ...props
241
- }, ref) => {
242
- const cardClass = clsx4__default.default(
243
- "ds-social-card",
244
- `ds-social-card--${variant}`,
245
- animationDelay != null && "ds-social-card--animated",
246
- className
247
- );
248
- const cardStyle = animationDelay != null ? { "--card-delay": `${animationDelay}ms` } : void 0;
249
- if (variant === "rating-only") {
250
- const inner = /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__rating-row", children: [
251
- starRating != null && /* @__PURE__ */ jsxRuntime.jsx(StarRating, { value: starRating, size: "lg" }),
252
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__meta", children: [
253
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__name", children: author.name }),
254
- (author.role || author.company) && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-social-card__role", children: [
255
- author.role,
256
- author.role && author.company && " \xB7 ",
257
- author.company
258
- ] })
259
- ] }),
260
- platform && /* @__PURE__ */ jsxRuntime.jsx(PlatformBadge, { platform, variant: "icon-label", size: "sm" })
261
- ] }) });
262
- if (href) {
263
- return /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { ref, href, context: "social-proof-card", className: cardClass, style: cardStyle, openInNewTab: false, ...props, children: inner });
264
- }
265
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cardClass, style: cardStyle, ...props, children: inner });
266
- }
267
- if (variant === "case-study") {
268
- const defaultCta2 = ctaText || "Read Case Study \u2192";
269
- const inner = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
270
- media && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__media", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: media.src, alt: media.alt || `${author.company} case study` }) }),
271
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__content", children: [
272
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__cs-header", children: [
273
- logo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__cs-logo", children: logo }),
274
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__cs-company", children: [
275
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__name", children: author.company || author.name }),
276
- industry && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__cs-industry", children: industry })
277
- ] })
278
- ] }),
279
- headline && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-social-card__cs-headline", children: headline }),
280
- metrics && metrics.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__cs-metrics", children: metrics.map((m, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__cs-metric", children: [
281
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-social-card__cs-metric-value", children: [
282
- m.prefix,
283
- m.value,
284
- m.suffix
285
- ] }),
286
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__cs-metric-label", children: m.label })
287
- ] }, i)) }),
288
- content && /* @__PURE__ */ jsxRuntime.jsxs("blockquote", { className: "ds-social-card__quote ds-social-card__quote--excerpt", children: [
289
- "\u201C",
290
- content,
291
- "\u201D"
292
- ] }),
293
- href && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__cta", children: defaultCta2 })
294
- ] })
295
- ] });
296
- if (href) {
297
- return /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { ref, href, context: "social-proof-card", className: cardClass, style: cardStyle, openInNewTab: false, ...props, children: inner });
298
- }
299
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cardClass, style: cardStyle, ...props, children: inner });
300
- }
301
- if (variant === "video") {
302
- const defaultCta2 = ctaText || "Watch Video \u2192";
303
- const inner = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
304
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__media", children: [
305
- media ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: media.src, alt: media.alt || `${author.name} video` }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__media-placeholder" }),
306
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__play", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__play-icon", children: /* @__PURE__ */ jsxRuntime.jsx(PlayIcon, {}) }) }),
307
- badges && badges.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__badges", children: badges.map((badge, idx) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__badge", children: badge }, idx)) })
308
- ] }),
309
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__content", children: [
310
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__author", children: [
311
- author.avatar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__avatar", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: author.avatar, alt: author.name }) }),
312
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__meta", children: [
313
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__name", children: author.name }),
314
- (author.role || author.company) && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-social-card__role", children: [
315
- author.role,
316
- author.role && author.company && " \xB7 ",
317
- author.company
318
- ] })
319
- ] }),
320
- platform && /* @__PURE__ */ jsxRuntime.jsx(PlatformBadge, { platform, variant: "icon-only", size: "sm" })
321
- ] }),
322
- content && /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "ds-social-card__quote", children: content }),
323
- href && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__cta", children: defaultCta2 })
324
- ] })
325
- ] });
326
- if (href) {
327
- return /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { ref, href, context: "social-proof-card", className: cardClass, style: cardStyle, openInNewTab: false, ...props, children: inner });
328
- }
329
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cardClass, style: cardStyle, ...props, children: inner });
330
- }
331
- if (variant === "social") {
332
- const inner = /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__content", children: [
333
- (platform || sourceIcon) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__source", children: platform ? /* @__PURE__ */ jsxRuntime.jsx(PlatformBadge, { platform, variant: "icon-only", size: "sm" }) : sourceIcon }),
334
- content && /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "ds-social-card__quote ds-social-card__quote--clamp", children: content }),
335
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__author", children: [
336
- author.avatar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__avatar", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: author.avatar, alt: author.name }) }),
337
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__meta", children: [
338
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__name", children: author.name }),
339
- (author.role || author.company) && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-social-card__role", children: [
340
- author.role,
341
- author.role && author.company && " \xB7 ",
342
- author.company
343
- ] }),
344
- date && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__role", children: date })
345
- ] })
346
- ] }),
347
- starRating != null && /* @__PURE__ */ jsxRuntime.jsx(StarRating, { value: starRating, size: "sm" }),
348
- children
349
- ] }) });
350
- if (href) {
351
- return /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { ref, href, context: "social-proof-card", className: cardClass, style: cardStyle, openInNewTab: false, ...props, children: inner });
352
- }
353
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cardClass, style: cardStyle, ...props, children: inner });
354
- }
355
- const BadgeList = badges && badges.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__badges", children: badges.map((badge, idx) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__badge", children: badge }, idx)) });
356
- const defaultCta = ctaText || "Read Story \u2192";
357
- const simpleInner = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__content", children: [
358
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__deco-quote", "aria-hidden": "true", children: "\u201C" }),
359
- (platform || sourceIcon) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__source", children: platform ? /* @__PURE__ */ jsxRuntime.jsx(PlatformBadge, { platform, variant: "icon-only", size: "sm" }) : sourceIcon }),
360
- BadgeList,
361
- content && /* @__PURE__ */ jsxRuntime.jsx("blockquote", { className: "ds-social-card__quote", children: content }),
362
- starRating != null && /* @__PURE__ */ jsxRuntime.jsx(StarRating, { value: starRating, size: "sm" }),
363
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__author", children: [
364
- author.avatar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__avatar", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: author.avatar, alt: author.name }) }),
365
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__meta", children: [
366
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-social-card__name", children: [
367
- author.name,
368
- author.handle && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-social-card__handle", children: [
369
- "@",
370
- author.handle
371
- ] })
372
- ] }),
373
- (author.role || author.company) && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-social-card__role", children: [
374
- author.role,
375
- author.role && author.company && " \xB7 ",
376
- author.company
377
- ] }),
378
- date && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__role", children: date })
379
- ] })
380
- ] }),
381
- children,
382
- href && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__cta", children: defaultCta })
383
- ] });
384
- if (href) {
385
- return /* @__PURE__ */ jsxRuntime.jsx(chunkLJADZITX_cjs.OutboundLink, { ref, href, context: "social-proof-card", className: cardClass, style: cardStyle, openInNewTab: false, ...props, children: simpleInner });
386
- }
387
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cardClass, style: cardStyle, ...props, children: simpleInner });
388
- }
389
- );
390
- SocialProofCard.displayName = "SocialProofCard";
391
- var SocialProofGrid = React3.forwardRef(
392
- ({ columns = 3, masonry = false, staggered = false, className, children, ...props }, ref) => {
393
- const enhancedChildren = staggered ? React3__default.default.Children.map(children, (child, index) => {
394
- if (!React3__default.default.isValidElement(child)) return child;
395
- const delay = Math.min(index * 50, 600);
396
- const childProps = child.props;
397
- return React3__default.default.cloneElement(child, {
398
- style: { ...childProps.style, "--card-delay": `${delay}ms` },
399
- className: clsx4__default.default(childProps.className, "ds-social-card--animated")
400
- });
401
- }) : children;
402
- return /* @__PURE__ */ jsxRuntime.jsx(
403
- chunkBJZ2DKS5_cjs.SectionShell,
404
- {
405
- ref,
406
- padding: "md",
407
- className: clsx4__default.default("ds-social-proof", className),
408
- ...props,
409
- children: masonry ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-masonry", children: enhancedChildren }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx4__default.default("ds-social-grid", `ds-social-grid--${columns}-col`), children: enhancedChildren })
410
- }
411
- );
412
- }
413
- );
414
- SocialProofGrid.displayName = "SocialProofGrid";
415
- var LogoItemRender = ({ item, className }) => {
416
- const content = item.logo ? item.logo : /* @__PURE__ */ jsxRuntime.jsx(
417
- "img",
418
- {
419
- src: item.src,
420
- alt: item.alt,
421
- width: 120,
422
- height: 48,
423
- loading: "lazy",
424
- decoding: "async",
425
- style: { objectFit: "contain", width: "auto", height: "100%" }
426
- }
427
- );
428
- const innerContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
429
- content,
430
- item.badge && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-logos__badge", children: item.badge })
431
- ] });
432
- if (item.href) {
433
- const isInternal = item.href.startsWith("/");
434
- return /* @__PURE__ */ jsxRuntime.jsx(
435
- chunkLJADZITX_cjs.OutboundLink,
436
- {
437
- href: item.href,
438
- context: "social-proof-logo",
439
- className: clsx4__default.default("ds-social-logos__item", className),
440
- title: item.alt,
441
- openInNewTab: !isInternal,
442
- children: innerContent
443
- }
444
- );
445
- }
446
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx4__default.default("ds-social-logos__item", className), title: item.alt, children: innerContent });
447
- };
448
- var SocialProofLogos = React3.forwardRef(
449
- ({ title, logos, variant = "grid", speed = 40, className, ...props }, ref) => {
450
- return /* @__PURE__ */ jsxRuntime.jsxs(
451
- chunkBJZ2DKS5_cjs.SectionShell,
452
- {
453
- ref,
454
- padding: "sm",
455
- className: clsx4__default.default("ds-social-logos", className),
456
- ...props,
457
- children: [
458
- title && /* @__PURE__ */ jsxRuntime.jsx(
459
- "p",
460
- {
461
- className: "ds-section-header__eyebrow",
462
- style: { textAlign: "center", marginBottom: "var(--space-8)" },
463
- children: title
464
- }
465
- ),
466
- variant === "marquee" ? /* @__PURE__ */ jsxRuntime.jsxs(
467
- "div",
468
- {
469
- className: "ds-social-logos__marquee",
470
- style: { "--marquee-duration": `${speed}s` },
471
- children: [
472
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-logos__track", children: logos.map((item) => /* @__PURE__ */ jsxRuntime.jsx(LogoItemRender, { item }, `set1-${item.id}`)) }),
473
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-logos__track", "aria-hidden": "true", children: logos.map((item) => /* @__PURE__ */ jsxRuntime.jsx(LogoItemRender, { item }, `set2-${item.id}`)) })
474
- ]
475
- }
476
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-grid ds-social-grid--4-col", style: { alignItems: "center" }, children: logos.map((item) => /* @__PURE__ */ jsxRuntime.jsx(LogoItemRender, { item }, item.id)) })
477
- ]
478
- }
479
- );
480
- }
481
- );
482
- SocialProofLogos.displayName = "SocialProofLogos";
483
- var PlayIconLarge = () => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "64", height: "64", viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: [
484
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "32", cy: "32", r: "32", fill: "white", fillOpacity: "0.9" }),
485
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M42 32L26 41.2376L26 22.7624L42 32Z", fill: "black" })
486
- ] });
487
- var SocialProofFeatured = React3.forwardRef(
488
- ({
489
- quote,
490
- author,
491
- media,
492
- mediaSrc,
493
- orientation = "horizontal",
494
- featuredVariant = "standard",
495
- starRating,
496
- platform,
497
- logo,
498
- className,
499
- ...props
500
- }, ref) => {
501
- const showMedia = media || mediaSrc;
502
- const effectiveOrientation = featuredVariant === "spotlight" ? "vertical" : orientation;
503
- return /* @__PURE__ */ jsxRuntime.jsx(
504
- chunkBJZ2DKS5_cjs.SectionShell,
505
- {
506
- ref,
507
- padding: "md",
508
- className: clsx4__default.default("ds-social-featured-section", className),
509
- ...props,
510
- children: /* @__PURE__ */ jsxRuntime.jsxs(
511
- "div",
512
- {
513
- className: clsx4__default.default(
514
- "ds-social-featured",
515
- `ds-social-featured--${effectiveOrientation}`,
516
- `ds-social-featured--${featuredVariant}`
517
- ),
518
- children: [
519
- showMedia && featuredVariant !== "spotlight" && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-featured__media", children: media ? media : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
520
- /* @__PURE__ */ jsxRuntime.jsx(
521
- "img",
522
- {
523
- src: mediaSrc || "https://placehold.co/1920x1080/111/FFF?text=Video+Case+Study",
524
- alt: `Case study by ${author.name}`,
525
- style: { width: "100%", height: "100%", objectFit: "cover" }
526
- }
527
- ),
528
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__play", children: /* @__PURE__ */ jsxRuntime.jsx(PlayIconLarge, {}) })
529
- ] }) }),
530
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-featured__content", children: [
531
- logo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-featured__logo", children: logo }),
532
- /* @__PURE__ */ jsxRuntime.jsxs("blockquote", { className: "ds-social-featured__quote", children: [
533
- "\u201C",
534
- quote,
535
- "\u201D"
536
- ] }),
537
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-featured__author-large", children: [
538
- author.avatar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-social-card__avatar", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: author.avatar, alt: author.name }) }),
539
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-card__meta", children: [
540
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-social-card__name", children: author.name }),
541
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ds-social-card__role", children: [
542
- author.role,
543
- author.role && author.company && ", ",
544
- author.company
545
- ] })
546
- ] })
547
- ] }),
548
- (starRating != null || platform) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-social-featured__trust", children: [
549
- starRating != null && /* @__PURE__ */ jsxRuntime.jsx(StarRating, { value: starRating, size: "md", showValue: true }),
550
- platform && /* @__PURE__ */ jsxRuntime.jsx(PlatformBadge, { platform, variant: "icon-label", size: "md" })
551
- ] })
552
- ] })
553
- ]
554
- }
555
- )
556
- }
557
- );
558
- }
559
- );
560
- SocialProofFeatured.displayName = "SocialProofFeatured";
561
- var SocialProofCarousel = React3.forwardRef(
562
- ({ children, className, ...props }, ref) => {
563
- return /* @__PURE__ */ jsxRuntime.jsx(
564
- chunkBJZ2DKS5_cjs.SectionShell,
565
- {
566
- ref,
567
- padding: "none",
568
- containerFluid: true,
569
- className: clsx4__default.default("ds-social-carousel", className),
570
- ...props,
571
- children: /* @__PURE__ */ jsxRuntime.jsxs(
572
- framerMotion.motion.div,
573
- {
574
- className: "ds-social-carousel__track",
575
- variants: chunkPUPSK3DI_cjs.VARIANTS.fadeIn,
576
- initial: "hidden",
577
- whileInView: "visible",
578
- viewport: { once: true, margin: "-10%" },
579
- children: [
580
- children,
581
- children
582
- ]
583
- }
584
- )
585
- }
586
- );
587
- }
588
- );
589
- SocialProofCarousel.displayName = "SocialProofCarousel";
590
- function getShortsEmbedUrl(url) {
591
- const match = url.match(/(?:youtube\.com\/shorts\/|youtu\.be\/|youtube\.com\/embed\/)([a-zA-Z0-9_-]+)/);
592
- if (match) {
593
- return `https://www.youtube-nocookie.com/embed/${match[1]}?rel=0&modestbranding=1&playsinline=1&controls=1`;
594
- }
595
- return url.replace("youtube.com", "youtube-nocookie.com") + (url.includes("?") ? "&" : "?") + "rel=0&modestbranding=1&playsinline=1";
596
- }
597
- function VerticalVideoGrid({ urls, className }) {
598
- if (!urls || urls.length === 0) return null;
599
- return /* @__PURE__ */ jsxRuntime.jsx(chunkBJZ2DKS5_cjs.SectionShell, { className: clsx4__default.default("ds-vertical-video-grid my-16", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4 md:gap-6 max-w-6xl mx-auto", children: urls.map((url, i) => /* @__PURE__ */ jsxRuntime.jsx(
600
- "div",
601
- {
602
- className: "relative w-full overflow-hidden rounded-[20px] shadow-lg border border-white/10 bg-black",
603
- style: { aspectRatio: "9/16" },
604
- children: /* @__PURE__ */ jsxRuntime.jsx(
605
- "iframe",
606
- {
607
- src: getShortsEmbedUrl(url),
608
- title: `Short testimonial ${i + 1}`,
609
- className: "absolute inset-0 w-full h-full",
610
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
611
- allowFullScreen: true,
612
- loading: "lazy"
613
- }
614
- )
615
- },
616
- i
617
- )) }) });
618
- }
619
-
620
- // src/components/SocialProof/index.ts
621
- var SocialProof = {
622
- Card: SocialProofCard,
623
- Grid: SocialProofGrid,
624
- Logos: SocialProofLogos,
625
- Featured: SocialProofFeatured,
626
- Carousel: SocialProofCarousel,
627
- VerticalGrid: VerticalVideoGrid
628
- };
629
- function getEmbedUrl(src) {
630
- const ytMatch = src.match(
631
- /(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([a-zA-Z0-9_-]+)/
632
- );
633
- if (ytMatch) return `https://www.youtube-nocookie.com/embed/${ytMatch[1]}?autoplay=1&rel=0`;
634
- const vimeoMatch = src.match(/(?:vimeo\.com\/)(\d+)/);
635
- if (vimeoMatch) return `https://player.vimeo.com/video/${vimeoMatch[1]}?autoplay=1`;
636
- const loomMatch = src.match(/(?:loom\.com\/share\/)([a-zA-Z0-9]+)/);
637
- if (loomMatch) return `https://www.loom.com/embed/${loomMatch[1]}?autoplay=1`;
638
- return src;
639
- }
640
- var PlayIcon2 = () => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "64", height: "64", viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: [
641
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "32", cy: "32", r: "32", className: "ds-video-lightbox__play-bg" }),
642
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M26 20v24l20-12L26 20z", fill: "white" })
643
- ] });
644
- var CloseIcon = () => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
645
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
646
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
647
- ] });
648
- var VideoLightbox = React3.forwardRef(
649
- ({
650
- videoUrl,
651
- thumbnailSrc,
652
- thumbnailAlt,
653
- title = "Video",
654
- trigger,
655
- className,
656
- onPlay
657
- }, ref) => {
658
- const [open, setOpen] = React3.useState(false);
659
- const handleOpen = React3.useCallback(() => {
660
- setOpen(true);
661
- onPlay?.();
662
- }, [onPlay]);
663
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx4__default.default("ds-video-lightbox", className), children: /* @__PURE__ */ jsxRuntime.jsxs(dialog.Dialog.Root, { open, onOpenChange: setOpen, children: [
664
- /* @__PURE__ */ jsxRuntime.jsx(
665
- dialog.Dialog.Trigger,
666
- {
667
- className: "ds-video-lightbox__trigger",
668
- onClick: handleOpen,
669
- children: trigger || /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-video-lightbox__thumbnail-wrap", children: [
670
- thumbnailSrc ? /* @__PURE__ */ jsxRuntime.jsx(
671
- "img",
672
- {
673
- src: thumbnailSrc,
674
- alt: thumbnailAlt || `Play: ${title}`,
675
- className: "ds-video-lightbox__thumbnail",
676
- loading: "lazy",
677
- decoding: "async"
678
- }
679
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-video-lightbox__placeholder" }),
680
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-video-lightbox__overlay", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-video-lightbox__play-btn", children: /* @__PURE__ */ jsxRuntime.jsx(PlayIcon2, {}) }) })
681
- ] })
682
- }
683
- ),
684
- /* @__PURE__ */ jsxRuntime.jsxs(dialog.Dialog.Portal, { children: [
685
- /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Backdrop, { className: "ds-video-lightbox__backdrop" }),
686
- /* @__PURE__ */ jsxRuntime.jsxs(dialog.Dialog.Popup, { className: "ds-video-lightbox__popup", children: [
687
- /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Close, { className: "ds-video-lightbox__close", "aria-label": "Close video", children: /* @__PURE__ */ jsxRuntime.jsx(CloseIcon, {}) }),
688
- /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Title, { className: "ds-sr-only", children: title }),
689
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-video-lightbox__iframe-wrap", children: open && /* @__PURE__ */ jsxRuntime.jsx(
690
- "iframe",
691
- {
692
- src: getEmbedUrl(videoUrl),
693
- title,
694
- className: "ds-video-lightbox__iframe",
695
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
696
- allowFullScreen: true
697
- }
698
- ) })
699
- ] })
700
- ] })
701
- ] }) });
702
- }
703
- );
704
- VideoLightbox.displayName = "VideoLightbox";
705
-
706
- exports.PlatformBadge = PlatformBadge;
707
- exports.SocialProof = SocialProof;
708
- exports.SocialProofCard = SocialProofCard;
709
- exports.SocialProofCarousel = SocialProofCarousel;
710
- exports.SocialProofFeatured = SocialProofFeatured;
711
- exports.SocialProofGrid = SocialProofGrid;
712
- exports.SocialProofLogos = SocialProofLogos;
713
- exports.StarRating = StarRating;
714
- exports.VerticalVideoGrid = VerticalVideoGrid;
715
- exports.VideoLightbox = VideoLightbox;
716
- //# sourceMappingURL=out.js.map
717
- //# sourceMappingURL=chunk-UVEMY3FQ.cjs.map