@salesmind-ai/design-system 0.3.4 → 0.3.5

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 (197) hide show
  1. package/dist/admin/index.cjs +68 -2928
  2. package/dist/admin/index.cjs.map +1 -1
  3. package/dist/admin/index.js +5 -2915
  4. package/dist/admin/index.js.map +1 -1
  5. package/dist/blog/index.cjs +53 -1064
  6. package/dist/blog/index.cjs.map +1 -1
  7. package/dist/blog/index.js +8 -1054
  8. package/dist/blog/index.js.map +1 -1
  9. package/dist/charts/index.cjs +46 -2694
  10. package/dist/charts/index.cjs.map +1 -1
  11. package/dist/charts/index.js +3 -2680
  12. package/dist/charts/index.js.map +1 -1
  13. package/dist/chunk-2GARWEJK.js +17 -0
  14. package/dist/chunk-2GARWEJK.js.map +1 -0
  15. package/dist/chunk-2KQVZ5FB.js +485 -0
  16. package/dist/chunk-2KQVZ5FB.js.map +1 -0
  17. package/dist/chunk-2ZNR2F2V.cjs +194 -0
  18. package/dist/chunk-2ZNR2F2V.cjs.map +1 -0
  19. package/dist/chunk-3NKRFUAR.js +37 -0
  20. package/dist/chunk-3NKRFUAR.js.map +1 -0
  21. package/dist/chunk-3TGSIILM.cjs +201 -0
  22. package/dist/chunk-3TGSIILM.cjs.map +1 -0
  23. package/dist/chunk-4GM5BGBN.cjs +801 -0
  24. package/dist/chunk-4GM5BGBN.cjs.map +1 -0
  25. package/dist/chunk-5LGDEZWY.cjs +2434 -0
  26. package/dist/chunk-5LGDEZWY.cjs.map +1 -0
  27. package/dist/chunk-6H4DSTXR.js +786 -0
  28. package/dist/chunk-6H4DSTXR.js.map +1 -0
  29. package/dist/chunk-6HKQ5ILL.cjs +1624 -0
  30. package/dist/chunk-6HKQ5ILL.cjs.map +1 -0
  31. package/dist/chunk-6UNG76Y2.js +153 -0
  32. package/dist/chunk-6UNG76Y2.js.map +1 -0
  33. package/dist/chunk-7PX2AZ6Y.js +39 -0
  34. package/dist/chunk-7PX2AZ6Y.js.map +1 -0
  35. package/dist/chunk-B6AVAX4F.js +1415 -0
  36. package/dist/chunk-B6AVAX4F.js.map +1 -0
  37. package/dist/chunk-BILT5KD3.js +264 -0
  38. package/dist/chunk-BILT5KD3.js.map +1 -0
  39. package/dist/chunk-C2BCDNAV.js +24 -0
  40. package/dist/chunk-C2BCDNAV.js.map +1 -0
  41. package/dist/chunk-CH42VPWE.cjs +421 -0
  42. package/dist/chunk-CH42VPWE.cjs.map +1 -0
  43. package/dist/chunk-CJ2MKVAF.cjs +46 -0
  44. package/dist/chunk-CJ2MKVAF.cjs.map +1 -0
  45. package/dist/chunk-DP74LUXG.cjs +98 -0
  46. package/dist/chunk-DP74LUXG.cjs.map +1 -0
  47. package/dist/chunk-E7D6EKJ4.cjs +44 -0
  48. package/dist/chunk-E7D6EKJ4.cjs.map +1 -0
  49. package/dist/chunk-ECXBTUH6.cjs +584 -0
  50. package/dist/chunk-ECXBTUH6.cjs.map +1 -0
  51. package/dist/chunk-EFRAP5ES.js +157 -0
  52. package/dist/chunk-EFRAP5ES.js.map +1 -0
  53. package/dist/chunk-EM7JHRYW.cjs +69 -0
  54. package/dist/chunk-EM7JHRYW.cjs.map +1 -0
  55. package/dist/chunk-FAFAP4L5.js +183 -0
  56. package/dist/chunk-FAFAP4L5.js.map +1 -0
  57. package/dist/chunk-H2Y6BSTL.cjs +69 -0
  58. package/dist/chunk-H2Y6BSTL.cjs.map +1 -0
  59. package/dist/chunk-HN4PHABT.js +126 -0
  60. package/dist/chunk-HN4PHABT.js.map +1 -0
  61. package/dist/chunk-HRENHNDJ.js +211 -0
  62. package/dist/chunk-HRENHNDJ.js.map +1 -0
  63. package/dist/chunk-I75BFEYT.cjs +2561 -0
  64. package/dist/chunk-I75BFEYT.cjs.map +1 -0
  65. package/dist/chunk-IFRATNLU.js +562 -0
  66. package/dist/chunk-IFRATNLU.js.map +1 -0
  67. package/dist/chunk-JNASH4OQ.js +1022 -0
  68. package/dist/chunk-JNASH4OQ.js.map +1 -0
  69. package/dist/chunk-JPJN4YBC.js +409 -0
  70. package/dist/chunk-JPJN4YBC.js.map +1 -0
  71. package/dist/chunk-KCKUSU2M.cjs +166 -0
  72. package/dist/chunk-KCKUSU2M.cjs.map +1 -0
  73. package/dist/chunk-KDLH35OI.cjs +1042 -0
  74. package/dist/chunk-KDLH35OI.cjs.map +1 -0
  75. package/dist/chunk-KJ2OXQF4.js +287 -0
  76. package/dist/chunk-KJ2OXQF4.js.map +1 -0
  77. package/dist/chunk-KK5UO2P4.cjs +717 -0
  78. package/dist/chunk-KK5UO2P4.cjs.map +1 -0
  79. package/dist/chunk-KNQEIU7O.cjs +1202 -0
  80. package/dist/chunk-KNQEIU7O.cjs.map +1 -0
  81. package/dist/chunk-KVGSVGRK.cjs +569 -0
  82. package/dist/chunk-KVGSVGRK.cjs.map +1 -0
  83. package/dist/chunk-L352JRV6.cjs +105 -0
  84. package/dist/chunk-L352JRV6.cjs.map +1 -0
  85. package/dist/chunk-LGNMFBLF.cjs +502 -0
  86. package/dist/chunk-LGNMFBLF.cjs.map +1 -0
  87. package/dist/chunk-LJADZITX.cjs +298 -0
  88. package/dist/chunk-LJADZITX.cjs.map +1 -0
  89. package/dist/chunk-MDB2WCRQ.cjs +137 -0
  90. package/dist/chunk-MDB2WCRQ.cjs.map +1 -0
  91. package/dist/chunk-MQDEE7HC.cjs +283 -0
  92. package/dist/chunk-MQDEE7HC.cjs.map +1 -0
  93. package/dist/chunk-MQRB634A.cjs +34 -0
  94. package/dist/chunk-MQRB634A.cjs.map +1 -0
  95. package/dist/chunk-MU6GW5ZV.js +2317 -0
  96. package/dist/chunk-MU6GW5ZV.js.map +1 -0
  97. package/dist/chunk-NN3TUHIH.js +28 -0
  98. package/dist/chunk-NN3TUHIH.js.map +1 -0
  99. package/dist/chunk-NT4LBP7D.cjs +111 -0
  100. package/dist/chunk-NT4LBP7D.cjs.map +1 -0
  101. package/dist/chunk-OGKGIXFC.cjs +2162 -0
  102. package/dist/chunk-OGKGIXFC.cjs.map +1 -0
  103. package/dist/chunk-OXNXEQY7.js +2538 -0
  104. package/dist/chunk-OXNXEQY7.js.map +1 -0
  105. package/dist/chunk-P5BOFE5A.js +546 -0
  106. package/dist/chunk-P5BOFE5A.js.map +1 -0
  107. package/dist/chunk-PE2KJVRN.js +185 -0
  108. package/dist/chunk-PE2KJVRN.js.map +1 -0
  109. package/dist/chunk-Q2MFGYTE.cjs +1449 -0
  110. package/dist/chunk-Q2MFGYTE.cjs.map +1 -0
  111. package/dist/chunk-Q75DBVDY.cjs +68 -0
  112. package/dist/chunk-Q75DBVDY.cjs.map +1 -0
  113. package/dist/chunk-RQUFZAZ7.js +1608 -0
  114. package/dist/chunk-RQUFZAZ7.js.map +1 -0
  115. package/dist/chunk-SICKWUWB.js +62 -0
  116. package/dist/chunk-SICKWUWB.js.map +1 -0
  117. package/dist/chunk-T343CCH5.js +1190 -0
  118. package/dist/chunk-T343CCH5.js.map +1 -0
  119. package/dist/chunk-T5H5PNLN.js +701 -0
  120. package/dist/chunk-T5H5PNLN.js.map +1 -0
  121. package/dist/chunk-U3LK2GID.js +2122 -0
  122. package/dist/chunk-U3LK2GID.js.map +1 -0
  123. package/dist/chunk-UFAJY2DM.js +62 -0
  124. package/dist/chunk-UFAJY2DM.js.map +1 -0
  125. package/dist/chunk-VC5LMUVQ.cjs +20 -0
  126. package/dist/chunk-VC5LMUVQ.cjs.map +1 -0
  127. package/dist/chunk-VM7WFMKI.cjs +76 -0
  128. package/dist/chunk-VM7WFMKI.cjs.map +1 -0
  129. package/dist/chunk-W2WTP6HS.cjs +233 -0
  130. package/dist/chunk-W2WTP6HS.cjs.map +1 -0
  131. package/dist/chunk-WH7PYHZY.cjs +35 -0
  132. package/dist/chunk-WH7PYHZY.cjs.map +1 -0
  133. package/dist/chunk-XU3OMQ7V.js +98 -0
  134. package/dist/chunk-XU3OMQ7V.js.map +1 -0
  135. package/dist/chunk-XWPDRMZG.js +62 -0
  136. package/dist/chunk-XWPDRMZG.js.map +1 -0
  137. package/dist/chunk-Y3CPKNB7.js +67 -0
  138. package/dist/chunk-Y3CPKNB7.js.map +1 -0
  139. package/dist/chunk-YNVRDD2P.js +98 -0
  140. package/dist/chunk-YNVRDD2P.js.map +1 -0
  141. package/dist/chunk-YSYR54XR.js +92 -0
  142. package/dist/chunk-YSYR54XR.js.map +1 -0
  143. package/dist/chunk-YTYDQBVY.cjs +162 -0
  144. package/dist/chunk-YTYDQBVY.cjs.map +1 -0
  145. package/dist/core/index.cjs +807 -4333
  146. package/dist/core/index.cjs.map +1 -1
  147. package/dist/core/index.js +14 -4130
  148. package/dist/core/index.js.map +1 -1
  149. package/dist/i18n/index.cjs +86 -558
  150. package/dist/i18n/index.cjs.map +1 -1
  151. package/dist/i18n/index.js +1 -544
  152. package/dist/i18n/index.js.map +1 -1
  153. package/dist/index.cjs +1432 -17140
  154. package/dist/index.cjs.map +1 -1
  155. package/dist/index.js +31 -16785
  156. package/dist/index.js.map +1 -1
  157. package/dist/marketing/index.cjs +142 -3072
  158. package/dist/marketing/index.cjs.map +1 -1
  159. package/dist/marketing/index.js +11 -3042
  160. package/dist/marketing/index.js.map +1 -1
  161. package/dist/motion/index.cjs +26 -1222
  162. package/dist/motion/index.cjs.map +1 -1
  163. package/dist/motion/index.js +2 -1215
  164. package/dist/motion/index.js.map +1 -1
  165. package/dist/nav/index.cjs +101 -1518
  166. package/dist/nav/index.cjs.map +1 -1
  167. package/dist/nav/index.js +4 -1498
  168. package/dist/nav/index.js.map +1 -1
  169. package/dist/report/index.cjs +171 -2403
  170. package/dist/report/index.cjs.map +1 -1
  171. package/dist/report/index.js +3 -2363
  172. package/dist/report/index.js.map +1 -1
  173. package/dist/sections/index.cjs +22 -377
  174. package/dist/sections/index.cjs.map +1 -1
  175. package/dist/sections/index.js +6 -369
  176. package/dist/sections/index.js.map +1 -1
  177. package/dist/social-proof/index.cjs +53 -1250
  178. package/dist/social-proof/index.cjs.map +1 -1
  179. package/dist/social-proof/index.js +6 -1235
  180. package/dist/social-proof/index.js.map +1 -1
  181. package/dist/theme/index.cjs +38 -565
  182. package/dist/theme/index.cjs.map +1 -1
  183. package/dist/theme/index.js +2 -555
  184. package/dist/theme/index.js.map +1 -1
  185. package/dist/web/client/index.cjs +38 -491
  186. package/dist/web/client/index.cjs.map +1 -1
  187. package/dist/web/client/index.js +4 -483
  188. package/dist/web/client/index.js.map +1 -1
  189. package/dist/web/index.cjs +158 -1346
  190. package/dist/web/index.cjs.map +1 -1
  191. package/dist/web/index.js +9 -1305
  192. package/dist/web/index.js.map +1 -1
  193. package/dist/web/server/index.cjs +26 -563
  194. package/dist/web/server/index.cjs.map +1 -1
  195. package/dist/web/server/index.js +1 -560
  196. package/dist/web/server/index.js.map +1 -1
  197. package/package.json +1 -1
@@ -1,389 +1,34 @@
1
1
  'use strict';
2
2
 
3
+ var chunk2ZNR2F2V_cjs = require('../chunk-2ZNR2F2V.cjs');
4
+ require('../chunk-MQRB634A.cjs');
5
+ var chunkEM7JHRYW_cjs = require('../chunk-EM7JHRYW.cjs');
6
+ require('../chunk-MDB2WCRQ.cjs');
3
7
  var react = require('react');
4
- var clsx5 = require('clsx');
5
8
  var jsxRuntime = require('react/jsx-runtime');
6
9
 
7
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
-
9
- var clsx5__default = /*#__PURE__*/_interopDefault(clsx5);
10
-
11
- // src/sections/SectionShellBoundary.tsx
12
-
13
- // src/tokens/spacing.ts
14
- var SPACING = {
15
- 1: "var(--space-1)",
16
- 2: "var(--space-2)",
17
- 3: "var(--space-3)",
18
- 4: "var(--space-4)",
19
- 5: "var(--space-5)",
20
- 6: "var(--space-6)",
21
- 8: "var(--space-8)",
22
- 10: "var(--space-10)",
23
- 12: "var(--space-12)",
24
- 16: "var(--space-16)",
25
- 20: "var(--space-20)"
26
- };
27
-
28
- // src/components/LayoutPrimitives/utils.ts
29
- var SPACING_ALIASES = {
30
- xs: "var(--space-2)",
31
- sm: "var(--space-3)",
32
- md: "var(--space-4)",
33
- lg: "var(--space-6)",
34
- xl: "var(--space-8)",
35
- "2xl": "var(--space-12)"
36
- };
37
- function resolveSpacing(value) {
38
- if (value === void 0) return void 0;
39
- if (typeof value === "number" && SPACING[value]) {
40
- return SPACING[value];
41
- }
42
- if (typeof value === "string" && value in SPACING_ALIASES) {
43
- return SPACING_ALIASES[value];
44
- }
45
- return String(value);
46
- }
47
- function extractSpacingStyles(props) {
48
- const styles = {};
49
- if (props.m !== void 0) styles.margin = resolveSpacing(props.m);
50
- if (props.mt !== void 0) styles.marginTop = resolveSpacing(props.mt);
51
- if (props.mb !== void 0) styles.marginBottom = resolveSpacing(props.mb);
52
- if (props.ml !== void 0) styles.marginLeft = resolveSpacing(props.ml);
53
- if (props.mr !== void 0) styles.marginRight = resolveSpacing(props.mr);
54
- if (props.mx !== void 0) {
55
- styles.marginLeft = resolveSpacing(props.mx);
56
- styles.marginRight = resolveSpacing(props.mx);
57
- }
58
- if (props.my !== void 0) {
59
- styles.marginTop = resolveSpacing(props.my);
60
- styles.marginBottom = resolveSpacing(props.my);
61
- }
62
- if (props.p !== void 0) styles.padding = resolveSpacing(props.p);
63
- if (props.pt !== void 0) styles.paddingTop = resolveSpacing(props.pt);
64
- if (props.pb !== void 0) styles.paddingBottom = resolveSpacing(props.pb);
65
- if (props.pl !== void 0) styles.paddingLeft = resolveSpacing(props.pl);
66
- if (props.pr !== void 0) styles.paddingRight = resolveSpacing(props.pr);
67
- if (props.px !== void 0) {
68
- styles.paddingLeft = resolveSpacing(props.px);
69
- styles.paddingRight = resolveSpacing(props.px);
70
- }
71
- if (props.py !== void 0) {
72
- styles.paddingTop = resolveSpacing(props.py);
73
- styles.paddingBottom = resolveSpacing(props.py);
74
- }
75
- if (props.gap !== void 0) styles.gap = resolveSpacing(props.gap);
76
- return styles;
77
- }
78
- var Box = react.forwardRef(
79
- ({ as: Component = "div", className, style, children, ...props }, ref) => {
80
- const spacingStyles = extractSpacingStyles(props);
81
- const { m, mt, mb, ml, mr, mx, my, p, pt, pb, pl, pr, px, py, gap, ...domProps } = props;
82
- return /* @__PURE__ */ jsxRuntime.jsx(
83
- Component,
84
- {
85
- ref,
86
- className: clsx5__default.default("ds-box", className),
87
- style: { ...spacingStyles, ...style },
88
- ...domProps,
89
- children
90
- }
91
- );
92
- }
93
- );
94
- Box.displayName = "Box";
95
- var Stack = react.forwardRef(
96
- ({ direction = "column", align, justify, wrap, className, style, ...props }, ref) => {
97
- return /* @__PURE__ */ jsxRuntime.jsx(
98
- Box,
99
- {
100
- ref,
101
- className: clsx5__default.default("ds-stack", direction === "row" && "ds-stack--horizontal", className),
102
- style: {
103
- alignItems: align,
104
- justifyContent: justify === "between" ? "space-between" : justify,
105
- flexWrap: wrap ? "wrap" : void 0,
106
- ...style
107
- },
108
- ...props
109
- }
110
- );
111
- }
112
- );
113
- Stack.displayName = "Stack";
114
- var CONTAINER_SIZE_MAP = {
115
- sm: "768px",
116
- // 48rem — max-w-3xl
117
- md: "1024px",
118
- // 64rem — max-w-5xl
119
- lg: "1152px",
120
- // 72rem — max-w-6xl
121
- xl: "1280px",
122
- // 80rem — max-w-7xl
123
- full: "100%"
124
- };
125
- var Container = react.forwardRef(
126
- ({ size, fluid, maxWidth, className, style, ...props }, ref) => {
127
- let resolvedMaxWidth;
128
- if (fluid) {
129
- resolvedMaxWidth = "100%";
130
- } else if (size) {
131
- resolvedMaxWidth = CONTAINER_SIZE_MAP[size];
132
- } else {
133
- resolvedMaxWidth = maxWidth || "var(--container-default-max, 1200px)";
134
- }
135
- return /* @__PURE__ */ jsxRuntime.jsx(
136
- Box,
137
- {
138
- ref,
139
- className: clsx5__default.default("ds-container", className),
140
- style: {
141
- maxWidth: resolvedMaxWidth,
142
- ...style
143
- },
144
- ...props
145
- }
146
- );
147
- }
148
- );
149
- Container.displayName = "Container";
150
- var SectionHeader = react.forwardRef(
151
- ({ title, subtitle, eyebrow, align = "center", className, ...props }, ref) => {
152
- if (!title && !subtitle && !eyebrow) return null;
153
- return /* @__PURE__ */ jsxRuntime.jsxs(
154
- "header",
155
- {
156
- ref,
157
- className: clsx5__default.default("ds-section-header", `ds-section-header--${align}`, className),
158
- ...props,
159
- children: [
160
- eyebrow && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-section-header__eyebrow", children: eyebrow }),
161
- title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "ds-section-header__title", children: title }),
162
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-section-header__subtitle", children: subtitle })
163
- ]
164
- }
165
- );
166
- }
167
- );
168
- SectionHeader.displayName = "SectionHeader";
169
- var SectionShell = react.forwardRef(
170
- ({
171
- className,
172
- children,
173
- background = "default",
174
- padding = "md",
175
- containerSize,
176
- containerFluid = false,
177
- ...props
178
- }, ref) => {
179
- return /* @__PURE__ */ jsxRuntime.jsx(
180
- "section",
181
- {
182
- ref,
183
- className: clsx5__default.default(
184
- "ds-section",
185
- `ds-section--bg-${background}`,
186
- `ds-section--padding-${padding}`,
187
- className
188
- ),
189
- ...props,
190
- children: /* @__PURE__ */ jsxRuntime.jsx(
191
- Container,
192
- {
193
- size: containerSize === "fluid" ? "full" : containerSize,
194
- fluid: containerFluid || containerSize === "fluid",
195
- children
196
- }
197
- )
198
- }
199
- );
200
- }
201
- );
202
- SectionShell.displayName = "SectionShell";
203
- var SectionShell2 = react.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(SectionShell, { ref, ...props }));
10
+ var SectionShell2 = react.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(chunkEM7JHRYW_cjs.SectionShell, { ref, ...props }));
204
11
  SectionShell2.displayName = "SectionShell";
205
- var SectionHeader2 = react.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { ref, ...props }));
12
+ var SectionHeader2 = react.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(chunkEM7JHRYW_cjs.SectionHeader, { ref, ...props }));
206
13
  SectionHeader2.displayName = "SectionHeader";
207
- var HeroSection = react.forwardRef(
208
- ({
209
- variant = "left",
210
- title,
211
- subtitle,
212
- eyebrow,
213
- primaryCta,
214
- secondaryCta,
215
- media,
216
- mediaBrowserFrame = false,
217
- floatingElement,
218
- floatingPosition = "bottom-left",
219
- withGrid = false,
220
- withGlow = false,
221
- align,
222
- className,
223
- children,
224
- ...props
225
- }, ref) => {
226
- const isSplit = variant === "split";
227
- const isCenter = variant === "center";
228
- const textAlignment = align || (isCenter ? "center" : "left");
229
- const ContentBlock = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx5__default.default("ds-hero__content", `ds-hero__content--${textAlignment}`), children: [
230
- eyebrow && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-section-header__eyebrow", style: { marginBottom: "var(--space-2)" }, children: eyebrow }),
231
- /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "ds-hero__title", children: title }),
232
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-hero__subtitle", children: subtitle }),
233
- (primaryCta || secondaryCta) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-hero__actions", children: [
234
- primaryCta,
235
- secondaryCta
236
- ] }),
237
- children
238
- ] });
239
- const MediaBlock = media && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-hero__media-wrapper", children: [
240
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx5__default.default("ds-hero__media", mediaBrowserFrame && "ds-hero__media--browser"), children: media }),
241
- floatingElement && /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx5__default.default("ds-hero__float", `ds-hero__float--${floatingPosition}`), children: floatingElement })
242
- ] });
243
- return /* @__PURE__ */ jsxRuntime.jsx(
244
- SectionShell,
245
- {
246
- ref,
247
- className: clsx5__default.default(
248
- "ds-hero",
249
- `ds-hero--${variant}`,
250
- withGrid && "ds-hero--bg-grid",
251
- withGlow && "ds-hero--bg-glow",
252
- className
253
- ),
254
- padding: "lg",
255
- ...props,
256
- children: isSplit ? /* @__PURE__ */ jsxRuntime.jsxs(
257
- "div",
258
- {
259
- style: {
260
- display: "grid",
261
- gridTemplateColumns: "repeat(auto-fit, minmax(min(100%, 500px), 1fr))",
262
- gap: "var(--space-16)",
263
- alignItems: "center"
264
- },
265
- children: [
266
- /* @__PURE__ */ jsxRuntime.jsx(Box, { children: ContentBlock }),
267
- /* @__PURE__ */ jsxRuntime.jsx(Box, { children: MediaBlock })
268
- ]
269
- }
270
- ) : /* @__PURE__ */ jsxRuntime.jsxs(Stack, { gap: 16, align: isCenter ? "center" : "start", children: [
271
- ContentBlock,
272
- MediaBlock && /* @__PURE__ */ jsxRuntime.jsx(
273
- Box,
274
- {
275
- style: {
276
- width: "100%",
277
- display: "flex",
278
- justifyContent: isCenter ? "center" : "flex-start"
279
- },
280
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { width: "100%", maxWidth: isCenter ? "1200px" : "100%" }, children: MediaBlock })
281
- }
282
- )
283
- ] })
284
- }
285
- );
286
- }
287
- );
288
- HeroSection.displayName = "HeroSection";
289
- var FeatureCard = ({ item }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-feature-card", children: [
290
- item.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-feature-card__icon", children: item.icon }),
291
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-feature-card__title", children: item.title }),
292
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-feature-card__description", children: item.description }),
293
- item.cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-feature-card__cta", children: item.cta })
294
- ] });
295
- var FeatureRow = ({ item }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-feature-row", children: [
296
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-feature-row__content", children: [
297
- item.step && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-feature-row__step", children: [
298
- "STEP ",
299
- item.step
300
- ] }),
301
- item.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-feature-card__icon", children: item.icon }),
302
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "ds-section-header__title", style: { fontSize: "var(--font-size-2xl)" }, children: item.title }),
303
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-section-header__subtitle", style: { fontSize: "var(--font-size-lg)" }, children: item.description }),
304
- item.cta && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-hero__actions", children: item.cta })
305
- ] }),
306
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-feature-row__media", children: item.media || /* @__PURE__ */ jsxRuntime.jsx("div", { style: { paddingBottom: "56.25%", background: "var(--glass-base-active)" } }) })
307
- ] });
308
- var FeatureSection = react.forwardRef(
309
- ({
310
- variant = "grid",
311
- columns = 3,
312
- features,
313
- title,
314
- subtitle,
315
- eyebrow,
316
- alignHeader = "center",
317
- className,
318
- ...props
319
- }, ref) => {
320
- return /* @__PURE__ */ jsxRuntime.jsxs(SectionShell, { ref, className: clsx5__default.default("ds-feature-section", className), ...props, children: [
321
- /* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { title, subtitle, eyebrow, align: alignHeader }),
322
- variant === "grid" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx5__default.default("ds-feature-grid", `ds-feature-grid--${columns}-col`), children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureCard, { item: feature }, index)) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-feature-zigzag", children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(FeatureRow, { item: feature }, index)) })
323
- ] });
324
- }
325
- );
326
- FeatureSection.displayName = "FeatureSection";
327
- var CTASection = react.forwardRef(
328
- ({
329
- variant = "center",
330
- title,
331
- description,
332
- primaryCta,
333
- secondaryCta,
334
- actions,
335
- className,
336
- children,
337
- ...props
338
- }, ref) => {
339
- const isBoxed = variant === "boxed";
340
- const effectiveVariant = isBoxed ? "center" : variant;
341
- const Content = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx5__default.default("ds-cta-section", `ds-cta-section--${effectiveVariant}`), children: [
342
- effectiveVariant === "split" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-cta-section--split", children: [
343
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-cta-content", children: [
344
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "ds-cta-title", children: title }),
345
- description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-cta-description", children: description })
346
- ] }),
347
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-cta-actions", children: actions || /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
348
- primaryCta,
349
- secondaryCta
350
- ] }) })
351
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-cta-content", children: [
352
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "ds-cta-title", children: title }),
353
- description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "ds-cta-description", children: description }),
354
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-cta-actions", children: actions || /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
355
- primaryCta,
356
- secondaryCta
357
- ] }) })
358
- ] }),
359
- children
360
- ] });
361
- return /* @__PURE__ */ jsxRuntime.jsx(SectionShell, { ref, className: clsx5__default.default(className), ...props, children: isBoxed ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-cta-card", children: Content }) : Content });
362
- }
363
- );
364
- CTASection.displayName = "CTASection";
365
- var StatsSection = react.forwardRef(
366
- ({ stats, title, subtitle, eyebrow, className, ...props }, ref) => {
367
- return /* @__PURE__ */ jsxRuntime.jsxs(SectionShell, { ref, className: clsx5__default.default("ds-stats-section", className), ...props, children: [
368
- /* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { title, subtitle, eyebrow }),
369
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-stats-grid", children: stats.map((stat, idx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-stat-card", children: [
370
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ds-stat-value", children: [
371
- stat.prefix,
372
- stat.value,
373
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ds-stat-suffix", children: stat.suffix })
374
- ] }),
375
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-stat-label", children: stat.label })
376
- ] }, idx)) })
377
- ] });
378
- }
379
- );
380
- StatsSection.displayName = "StatsSection";
381
14
 
382
- exports.CTASection = CTASection;
383
- exports.FeatureSection = FeatureSection;
384
- exports.HeroSection = HeroSection;
15
+ Object.defineProperty(exports, "CTASection", {
16
+ enumerable: true,
17
+ get: function () { return chunk2ZNR2F2V_cjs.CTASection; }
18
+ });
19
+ Object.defineProperty(exports, "FeatureSection", {
20
+ enumerable: true,
21
+ get: function () { return chunk2ZNR2F2V_cjs.FeatureSection; }
22
+ });
23
+ Object.defineProperty(exports, "HeroSection", {
24
+ enumerable: true,
25
+ get: function () { return chunk2ZNR2F2V_cjs.HeroSection; }
26
+ });
27
+ Object.defineProperty(exports, "StatsSection", {
28
+ enumerable: true,
29
+ get: function () { return chunk2ZNR2F2V_cjs.StatsSection; }
30
+ });
385
31
  exports.SectionHeader = SectionHeader2;
386
32
  exports.SectionShell = SectionShell2;
387
- exports.StatsSection = StatsSection;
388
33
  //# sourceMappingURL=out.js.map
389
34
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sections/SectionShellBoundary.tsx","../../src/components/SectionShell/SectionShell.tsx","../../src/components/LayoutPrimitives/Box.tsx","../../src/tokens/spacing.ts","../../src/components/LayoutPrimitives/utils.ts","../../src/components/LayoutPrimitives/Stack.tsx","../../src/components/LayoutPrimitives/Container.tsx","../../src/components/HeroSection/HeroSection.tsx","../../src/components/FeatureSection/FeatureSection.tsx","../../src/components/CTASection/CTASection.tsx","../../src/components/StatsSection/StatsSection.tsx"],"names":["forwardRef","clsx","jsx","SectionShell","SectionHeader","jsxs"],"mappings":"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","sourcesContent":["import { forwardRef } from 'react';\nimport {\n SectionShell as BaseSectionShell,\n SectionHeader as BaseSectionHeader,\n type SectionShellProps,\n type SectionHeaderProps,\n} from '../components/SectionShell/SectionShell';\n\n/**\n * Stable public wrapper for the sections entry.\n *\n * This keeps the emitted `@salesmind-ai/design-system/sections` declaration\n * surface from degrading into hashed re-export aliases that confuse some\n * consumers during workspace builds.\n */\nexport const SectionShell = forwardRef<HTMLDivElement, SectionShellProps>((props, ref) => (\n <BaseSectionShell ref={ref} {...props} />\n));\n\nSectionShell.displayName = 'SectionShell';\n\nexport const SectionHeader = forwardRef<HTMLDivElement, SectionHeaderProps>((props, ref) => (\n <BaseSectionHeader ref={ref} {...props} />\n));\n\nSectionHeader.displayName = 'SectionHeader';\n\nexport type { SectionShellProps, SectionHeaderProps };\n","import React, { forwardRef, HTMLAttributes } from 'react';\nimport clsx from 'clsx';\nimport { Container } from '../LayoutPrimitives';\nimport './SectionShell.css';\n\n/* ============================================================================\n Section Header Component\n ============================================================================ */\n\nexport interface SectionHeaderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n eyebrow?: React.ReactNode;\n align?: 'left' | 'center' | 'right';\n}\n\nexport const SectionHeader = forwardRef<HTMLDivElement, SectionHeaderProps>(\n ({ title, subtitle, eyebrow, align = 'center', className, ...props }, ref) => {\n if (!title && !subtitle && !eyebrow) return null;\n\n return (\n <header\n ref={ref}\n className={clsx('ds-section-header', `ds-section-header--${align}`, className)}\n {...props}\n >\n {eyebrow && <span className=\"ds-section-header__eyebrow\">{eyebrow}</span>}\n {title && <h2 className=\"ds-section-header__title\">{title}</h2>}\n {subtitle && <p className=\"ds-section-header__subtitle\">{subtitle}</p>}\n </header>\n );\n },\n);\nSectionHeader.displayName = 'SectionHeader';\n\n/* ============================================================================\n Section Shell Component\n ============================================================================ */\n\nexport interface SectionShellProps extends HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n background?: 'default' | 'muted' | 'brand' | 'transparent';\n padding?: 'none' | 'sm' | 'md' | 'lg';\n containerSize?: 'sm' | 'md' | 'lg' | 'xl' | 'fluid'; // Maps to Container max-width\n containerFluid?: boolean;\n}\n\nexport const SectionShell = forwardRef<HTMLDivElement, SectionShellProps>(\n (\n {\n className,\n children,\n background = 'default',\n padding = 'md',\n containerSize,\n containerFluid = false,\n ...props\n },\n ref,\n ) => {\n return (\n <section\n ref={ref}\n className={clsx(\n 'ds-section',\n `ds-section--bg-${background}`,\n `ds-section--padding-${padding}`,\n className,\n )}\n {...props}\n >\n <Container\n size={containerSize === 'fluid' ? 'full' : (containerSize as 'sm' | 'md' | 'lg' | 'xl' | undefined)}\n fluid={containerFluid || containerSize === 'fluid'}\n >\n {children}\n </Container>\n </section>\n );\n },\n);\nSectionShell.displayName = 'SectionShell';\n","import { ElementType, HTMLAttributes, forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SpacingProps, extractSpacingStyles } from './utils';\nimport './LayoutPrimitives.css';\n\nexport interface BoxProps extends HTMLAttributes<HTMLElement>, SpacingProps {\n as?: ElementType;\n}\n\nexport const Box = forwardRef<HTMLElement, BoxProps>(\n ({ as: Component = 'div', className, style, children, ...props }, ref) => {\n const spacingStyles = extractSpacingStyles(props);\n\n // Filter out spacing props from passing to DOM\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { m, mt, mb, ml, mr, mx, my, p, pt, pb, pl, pr, px, py, gap, ...domProps } = props;\n\n return (\n <Component\n ref={ref}\n className={clsx('ds-box', className)}\n style={{ ...spacingStyles, ...style }}\n {...domProps}\n >\n {children}\n </Component>\n );\n },\n);\n\nBox.displayName = 'Box';\n","export const SPACING = {\n 1: 'var(--space-1)',\n 2: 'var(--space-2)',\n 3: 'var(--space-3)',\n 4: 'var(--space-4)',\n 5: 'var(--space-5)',\n 6: 'var(--space-6)',\n 8: 'var(--space-8)',\n 10: 'var(--space-10)',\n 12: 'var(--space-12)',\n 16: 'var(--space-16)',\n 20: 'var(--space-20)',\n} as const;\n\nexport type SpacingToken = keyof typeof SPACING;\n","import { CSSProperties } from 'react';\nimport { SPACING } from '../../tokens/spacing';\n\ntype SpacingValue = keyof typeof SPACING | number | string;\n\n/**\n * Named spacing aliases that map semantic sizes to DS space tokens.\n * Allows consumers to pass gap=\"lg\" instead of gap={6}.\n */\nconst SPACING_ALIASES: Record<string, string> = {\n xs: 'var(--space-2)',\n sm: 'var(--space-3)',\n md: 'var(--space-4)',\n lg: 'var(--space-6)',\n xl: 'var(--space-8)',\n '2xl': 'var(--space-12)',\n};\n\nexport function resolveSpacing(value: SpacingValue | undefined): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === 'number' && SPACING[value as keyof typeof SPACING]) {\n return SPACING[value as keyof typeof SPACING];\n }\n if (typeof value === 'string' && value in SPACING_ALIASES) {\n return SPACING_ALIASES[value];\n }\n return String(value);\n}\n\nexport interface SpacingProps {\n m?: SpacingValue;\n mt?: SpacingValue;\n mb?: SpacingValue;\n ml?: SpacingValue;\n mr?: SpacingValue;\n mx?: SpacingValue;\n my?: SpacingValue;\n p?: SpacingValue;\n pt?: SpacingValue;\n pb?: SpacingValue;\n pl?: SpacingValue;\n pr?: SpacingValue;\n px?: SpacingValue;\n py?: SpacingValue;\n gap?: SpacingValue;\n}\n\nexport function extractSpacingStyles(props: SpacingProps): CSSProperties {\n const styles: CSSProperties = {};\n\n if (props.m !== undefined) styles.margin = resolveSpacing(props.m);\n if (props.mt !== undefined) styles.marginTop = resolveSpacing(props.mt);\n if (props.mb !== undefined) styles.marginBottom = resolveSpacing(props.mb);\n if (props.ml !== undefined) styles.marginLeft = resolveSpacing(props.ml);\n if (props.mr !== undefined) styles.marginRight = resolveSpacing(props.mr);\n if (props.mx !== undefined) {\n styles.marginLeft = resolveSpacing(props.mx);\n styles.marginRight = resolveSpacing(props.mx);\n }\n if (props.my !== undefined) {\n styles.marginTop = resolveSpacing(props.my);\n styles.marginBottom = resolveSpacing(props.my);\n }\n\n if (props.p !== undefined) styles.padding = resolveSpacing(props.p);\n if (props.pt !== undefined) styles.paddingTop = resolveSpacing(props.pt);\n if (props.pb !== undefined) styles.paddingBottom = resolveSpacing(props.pb);\n if (props.pl !== undefined) styles.paddingLeft = resolveSpacing(props.pl);\n if (props.pr !== undefined) styles.paddingRight = resolveSpacing(props.pr);\n if (props.px !== undefined) {\n styles.paddingLeft = resolveSpacing(props.px);\n styles.paddingRight = resolveSpacing(props.px);\n }\n if (props.py !== undefined) {\n styles.paddingTop = resolveSpacing(props.py);\n styles.paddingBottom = resolveSpacing(props.py);\n }\n\n if (props.gap !== undefined) styles.gap = resolveSpacing(props.gap);\n\n return styles;\n}\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\n\nexport interface StackProps extends BoxProps {\n direction?: 'row' | 'column';\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n wrap?: boolean;\n}\n\nexport const Stack = forwardRef<HTMLElement, StackProps>(\n ({ direction = 'column', align, justify, wrap, className, style, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n className={clsx('ds-stack', direction === 'row' && 'ds-stack--horizontal', className)}\n style={{\n alignItems: align,\n justifyContent: justify === 'between' ? 'space-between' : justify,\n flexWrap: wrap ? 'wrap' : undefined,\n ...style,\n }}\n {...props}\n />\n );\n },\n);\n\nStack.displayName = 'Stack';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\n\nexport type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n/**\n * Maps named sizes to max-width values.\n * Aligns with common web breakpoints (Tailwind `max-w-*` scale).\n */\n// eslint-disable-next-line react-refresh/only-export-components\nexport const CONTAINER_SIZE_MAP: Record<ContainerSize, string> = {\n sm: '768px', // 48rem — max-w-3xl\n md: '1024px', // 64rem — max-w-5xl\n lg: '1152px', // 72rem — max-w-6xl\n xl: '1280px', // 80rem — max-w-7xl\n full: '100%',\n};\n\nexport interface ContainerProps extends BoxProps {\n /**\n * Named size preset. Overrides `maxWidth` when set.\n * @example <Container size=\"lg\">…</Container>\n */\n size?: ContainerSize;\n /** Pass `true` to stretch to 100% width (same as `size=\"full\"`). */\n fluid?: boolean;\n /** Custom max-width value. Ignored when `size` or `fluid` is set. */\n maxWidth?: number | string;\n}\n\nexport const Container = forwardRef<HTMLElement, ContainerProps>(\n ({ size, fluid, maxWidth, className, style, ...props }, ref) => {\n let resolvedMaxWidth: string | number;\n if (fluid) {\n resolvedMaxWidth = '100%';\n } else if (size) {\n resolvedMaxWidth = CONTAINER_SIZE_MAP[size];\n } else {\n resolvedMaxWidth = maxWidth || 'var(--container-default-max, 1200px)';\n }\n\n return (\n <Box\n ref={ref}\n className={clsx('ds-container', className)}\n style={{\n maxWidth: resolvedMaxWidth,\n ...style,\n }}\n {...props}\n />\n );\n },\n);\n\nContainer.displayName = 'Container';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, SectionShellProps } from '../SectionShell/SectionShell';\nimport { Stack, Box } from '../LayoutPrimitives';\nimport './HeroSection.css';\n\n/* ============================================================================\n Types\n ============================================================================ */\n\nexport interface HeroSectionProps extends Omit<SectionShellProps, 'title'> {\n variant?: 'left' | 'center' | 'split';\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n eyebrow?: React.ReactNode;\n primaryCta?: React.ReactNode;\n secondaryCta?: React.ReactNode;\n\n /** Main visual (Image, Video, or Component) */\n media?: React.ReactNode;\n /** Adds a browser-like header bar to the media container */\n mediaBrowserFrame?: boolean;\n\n /** Optional floating elements (e.g. SocialProof cards) over the media */\n floatingElement?: React.ReactNode;\n floatingPosition?: 'top-right' | 'bottom-left';\n\n /** Background Visuals */\n withGrid?: boolean;\n withGlow?: boolean;\n\n align?: 'left' | 'center'; // Text alignment overrides variant default\n}\n\n/* ============================================================================\n Component\n ============================================================================ */\n\nexport const HeroSection = forwardRef<HTMLDivElement, HeroSectionProps>(\n (\n {\n variant = 'left',\n title,\n subtitle,\n eyebrow,\n primaryCta,\n secondaryCta,\n media,\n mediaBrowserFrame = false,\n floatingElement,\n floatingPosition = 'bottom-left',\n withGrid = false,\n withGlow = false,\n align,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n // Determine layout based on variant\n const isSplit = variant === 'split';\n const isCenter = variant === 'center';\n\n // Default alignment\n const textAlignment = align || (isCenter ? 'center' : 'left');\n\n const ContentBlock = (\n <div className={clsx('ds-hero__content', `ds-hero__content--${textAlignment}`)}>\n {eyebrow && (\n <span className=\"ds-section-header__eyebrow\" style={{ marginBottom: 'var(--space-2)' }}>\n {eyebrow}\n </span>\n )}\n <h1 className=\"ds-hero__title\">{title}</h1>\n {subtitle && <p className=\"ds-hero__subtitle\">{subtitle}</p>}\n\n {(primaryCta || secondaryCta) && (\n <div className=\"ds-hero__actions\">\n {primaryCta}\n {secondaryCta}\n </div>\n )}\n {children}\n </div>\n );\n\n const MediaBlock = media && (\n <div className=\"ds-hero__media-wrapper\">\n <div className={clsx('ds-hero__media', mediaBrowserFrame && 'ds-hero__media--browser')}>\n {media}\n </div>\n {floatingElement && (\n <div className={clsx('ds-hero__float', `ds-hero__float--${floatingPosition}`)}>\n {floatingElement}\n </div>\n )}\n </div>\n );\n\n return (\n <SectionShell\n ref={ref}\n className={clsx(\n 'ds-hero',\n `ds-hero--${variant}`,\n withGrid && 'ds-hero--bg-grid',\n withGlow && 'ds-hero--bg-glow',\n className,\n )}\n padding=\"lg\"\n {...props}\n >\n {isSplit ? (\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 500px), 1fr))',\n gap: 'var(--space-16)',\n alignItems: 'center',\n }}\n >\n <Box>{ContentBlock}</Box>\n <Box>{MediaBlock}</Box>\n </div>\n ) : (\n <Stack gap={16} align={isCenter ? 'center' : 'start'}>\n {ContentBlock}\n {MediaBlock && (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: isCenter ? 'center' : 'flex-start',\n }}\n >\n <div style={{ width: '100%', maxWidth: isCenter ? '1200px' : '100%' }}>\n {MediaBlock}\n </div>\n </Box>\n )}\n </Stack>\n )}\n </SectionShell>\n );\n },\n);\n\nHeroSection.displayName = 'HeroSection';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, SectionShellProps, SectionHeader } from '../SectionShell/SectionShell';\nimport './FeatureSection.css';\n\n/* ============================================================================\n Types\n ============================================================================ */\n\nexport interface FeatureItem {\n title: React.ReactNode;\n description: React.ReactNode;\n icon?: React.ReactNode;\n media?: React.ReactNode; // For ZigZag\n step?: string | number; // For ZigZag steps\n cta?: React.ReactNode;\n}\n\nexport interface FeatureSectionProps extends Omit<SectionShellProps, 'title'> {\n variant?: 'grid' | 'zigzag';\n columns?: 2 | 3 | 4; // For grid variant\n features: FeatureItem[];\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n eyebrow?: React.ReactNode;\n alignHeader?: 'left' | 'center' | 'right';\n}\n\n/* ============================================================================\n Components\n ============================================================================ */\n\nconst FeatureCard = ({ item }: { item: FeatureItem }) => (\n <div className=\"ds-feature-card\">\n {item.icon && <div className=\"ds-feature-card__icon\">{item.icon}</div>}\n <h3 className=\"ds-feature-card__title\">{item.title}</h3>\n <div className=\"ds-feature-card__description\">{item.description}</div>\n {item.cta && <div className=\"ds-feature-card__cta\">{item.cta}</div>}\n </div>\n);\n\nconst FeatureRow = ({ item }: { item: FeatureItem }) => (\n <div className=\"ds-feature-row\">\n <div className=\"ds-feature-row__content\">\n {item.step && <div className=\"ds-feature-row__step\">STEP {item.step}</div>}\n {item.icon && <div className=\"ds-feature-card__icon\">{item.icon}</div>}\n <h3 className=\"ds-section-header__title\" style={{ fontSize: 'var(--font-size-2xl)' }}>\n {item.title}\n </h3>\n <div className=\"ds-section-header__subtitle\" style={{ fontSize: 'var(--font-size-lg)' }}>\n {item.description}\n </div>\n {item.cta && <div className=\"ds-hero__actions\">{item.cta}</div>}\n </div>\n <div className=\"ds-feature-row__media\">\n {item.media || (\n <div style={{ paddingBottom: '56.25%', background: 'var(--glass-base-active)' }} />\n )}\n </div>\n </div>\n);\n\nexport const FeatureSection = forwardRef<HTMLDivElement, FeatureSectionProps>(\n (\n {\n variant = 'grid',\n columns = 3,\n features,\n title,\n subtitle,\n eyebrow,\n alignHeader = 'center',\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <SectionShell ref={ref} className={clsx('ds-feature-section', className)} {...props}>\n <SectionHeader title={title} subtitle={subtitle} eyebrow={eyebrow} align={alignHeader} />\n\n {variant === 'grid' ? (\n <div className={clsx('ds-feature-grid', `ds-feature-grid--${columns}-col`)}>\n {features.map((feature, index) => (\n <FeatureCard key={index} item={feature} />\n ))}\n </div>\n ) : (\n <div className=\"ds-feature-zigzag\">\n {features.map((feature, index) => (\n <FeatureRow key={index} item={feature} />\n ))}\n </div>\n )}\n </SectionShell>\n );\n },\n);\nFeatureSection.displayName = 'FeatureSection';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, SectionShellProps } from '../SectionShell/SectionShell';\nimport './CTASection.css';\n\nexport interface CTASectionProps extends Omit<SectionShellProps, 'title'> {\n variant?: 'center' | 'split' | 'boxed';\n title: React.ReactNode;\n description?: React.ReactNode;\n primaryCta?: React.ReactNode;\n secondaryCta?: React.ReactNode;\n actions?: React.ReactNode; // Custom actions slot\n}\n\nexport const CTASection = forwardRef<HTMLDivElement, CTASectionProps>(\n (\n {\n variant = 'center',\n title,\n description,\n primaryCta,\n secondaryCta,\n actions,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n // \"Boxed\" is just centered content inside a card-like container within the section\n const isBoxed = variant === 'boxed';\n const effectiveVariant = isBoxed ? 'center' : variant;\n\n const Content = (\n <div className={clsx('ds-cta-section', `ds-cta-section--${effectiveVariant}`)}>\n {effectiveVariant === 'split' ? (\n <div className=\"ds-cta-section--split\">\n <div className=\"ds-cta-content\">\n <h2 className=\"ds-cta-title\">{title}</h2>\n {description && <p className=\"ds-cta-description\">{description}</p>}\n </div>\n <div className=\"ds-cta-actions\">\n {actions || (\n <>\n {primaryCta}\n {secondaryCta}\n </>\n )}\n </div>\n </div>\n ) : (\n <div className=\"ds-cta-content\">\n <h2 className=\"ds-cta-title\">{title}</h2>\n {description && <p className=\"ds-cta-description\">{description}</p>}\n <div className=\"ds-cta-actions\">\n {actions || (\n <>\n {primaryCta}\n {secondaryCta}\n </>\n )}\n </div>\n </div>\n )}\n {children}\n </div>\n );\n\n return (\n <SectionShell ref={ref} className={clsx(className)} {...props}>\n {isBoxed ? <div className=\"ds-cta-card\">{Content}</div> : Content}\n </SectionShell>\n );\n },\n);\nCTASection.displayName = 'CTASection';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, SectionShellProps, SectionHeader } from '../SectionShell/SectionShell';\nimport './StatsSection.css';\n\nexport interface StatItem {\n label: string;\n value: string | number;\n suffix?: string;\n prefix?: string;\n}\n\nexport interface StatsSectionProps extends Omit<SectionShellProps, 'title'> {\n stats: StatItem[];\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n eyebrow?: React.ReactNode;\n}\n\nexport const StatsSection = forwardRef<HTMLDivElement, StatsSectionProps>(\n ({ stats, title, subtitle, eyebrow, className, ...props }, ref) => {\n return (\n <SectionShell ref={ref} className={clsx('ds-stats-section', className)} {...props}>\n <SectionHeader title={title} subtitle={subtitle} eyebrow={eyebrow} />\n\n <div className=\"ds-stats-grid\">\n {stats.map((stat, idx) => (\n <div key={idx} className=\"ds-stat-card\">\n <div className=\"ds-stat-value\">\n {stat.prefix}\n {stat.value}\n <span className=\"ds-stat-suffix\">{stat.suffix}</span>\n </div>\n <div className=\"ds-stat-label\">{stat.label}</div>\n </div>\n ))}\n </div>\n </SectionShell>\n );\n },\n);\nStatsSection.displayName = 'StatsSection';\n"]}
1
+ {"version":3,"sources":["../../src/sections/SectionShellBoundary.tsx"],"names":["SectionShell","SectionHeader"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,kBAAkB;AAgBzB;AADK,IAAMA,gBAAe,WAA8C,CAAC,OAAO,QAChF,oBAAC,gBAAiB,KAAW,GAAG,OAAO,CACxC;AAEDA,cAAa,cAAc;AAEpB,IAAMC,iBAAgB,WAA+C,CAAC,OAAO,QAClF,oBAAC,iBAAkB,KAAW,GAAG,OAAO,CACzC;AAEDA,eAAc,cAAc","sourcesContent":["import { forwardRef } from 'react';\nimport {\n SectionShell as BaseSectionShell,\n SectionHeader as BaseSectionHeader,\n type SectionShellProps,\n type SectionHeaderProps,\n} from '../components/SectionShell/SectionShell';\n\n/**\n * Stable public wrapper for the sections entry.\n *\n * This keeps the emitted `@salesmind-ai/design-system/sections` declaration\n * surface from degrading into hashed re-export aliases that confuse some\n * consumers during workspace builds.\n */\nexport const SectionShell = forwardRef<HTMLDivElement, SectionShellProps>((props, ref) => (\n <BaseSectionShell ref={ref} {...props} />\n));\n\nSectionShell.displayName = 'SectionShell';\n\nexport const SectionHeader = forwardRef<HTMLDivElement, SectionHeaderProps>((props, ref) => (\n <BaseSectionHeader ref={ref} {...props} />\n));\n\nSectionHeader.displayName = 'SectionHeader';\n\nexport type { SectionShellProps, SectionHeaderProps };\n"]}