@salesmind-ai/design-system 0.3.4 → 0.3.6
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.
- package/dist/{StatsSection-wgd8Vge1.d.cts → StatsSection-Dihy3zml.d.cts} +2 -0
- package/dist/{StatsSection-B8iD9L-o.d.ts → StatsSection-MfKKyqL1.d.ts} +2 -0
- package/dist/admin/index.cjs +68 -2928
- package/dist/admin/index.cjs.map +1 -1
- package/dist/admin/index.js +5 -2915
- package/dist/admin/index.js.map +1 -1
- package/dist/blog/index.cjs +53 -1064
- package/dist/blog/index.cjs.map +1 -1
- package/dist/blog/index.js +8 -1054
- package/dist/blog/index.js.map +1 -1
- package/dist/charts/index.cjs +46 -2694
- package/dist/charts/index.cjs.map +1 -1
- package/dist/charts/index.js +3 -2680
- package/dist/charts/index.js.map +1 -1
- package/dist/chunk-2GARWEJK.js +17 -0
- package/dist/chunk-2GARWEJK.js.map +1 -0
- package/dist/chunk-2KQVZ5FB.js +485 -0
- package/dist/chunk-2KQVZ5FB.js.map +1 -0
- package/dist/chunk-3NKRFUAR.js +37 -0
- package/dist/chunk-3NKRFUAR.js.map +1 -0
- package/dist/chunk-3TGSIILM.cjs +201 -0
- package/dist/chunk-3TGSIILM.cjs.map +1 -0
- package/dist/chunk-4GM5BGBN.cjs +801 -0
- package/dist/chunk-4GM5BGBN.cjs.map +1 -0
- package/dist/chunk-5LGDEZWY.cjs +2434 -0
- package/dist/chunk-5LGDEZWY.cjs.map +1 -0
- package/dist/chunk-6H4DSTXR.js +786 -0
- package/dist/chunk-6H4DSTXR.js.map +1 -0
- package/dist/chunk-6HKQ5ILL.cjs +1624 -0
- package/dist/chunk-6HKQ5ILL.cjs.map +1 -0
- package/dist/chunk-6UNG76Y2.js +153 -0
- package/dist/chunk-6UNG76Y2.js.map +1 -0
- package/dist/chunk-7PX2AZ6Y.js +39 -0
- package/dist/chunk-7PX2AZ6Y.js.map +1 -0
- package/dist/chunk-ARC5KXBC.js +187 -0
- package/dist/chunk-ARC5KXBC.js.map +1 -0
- package/dist/chunk-B6AVAX4F.js +1415 -0
- package/dist/chunk-B6AVAX4F.js.map +1 -0
- package/dist/chunk-BILT5KD3.js +264 -0
- package/dist/chunk-BILT5KD3.js.map +1 -0
- package/dist/chunk-C2BCDNAV.js +24 -0
- package/dist/chunk-C2BCDNAV.js.map +1 -0
- package/dist/chunk-CH42VPWE.cjs +421 -0
- package/dist/chunk-CH42VPWE.cjs.map +1 -0
- package/dist/chunk-CJ2MKVAF.cjs +46 -0
- package/dist/chunk-CJ2MKVAF.cjs.map +1 -0
- package/dist/chunk-DP74LUXG.cjs +98 -0
- package/dist/chunk-DP74LUXG.cjs.map +1 -0
- package/dist/chunk-E7D6EKJ4.cjs +44 -0
- package/dist/chunk-E7D6EKJ4.cjs.map +1 -0
- package/dist/chunk-ECXBTUH6.cjs +584 -0
- package/dist/chunk-ECXBTUH6.cjs.map +1 -0
- package/dist/chunk-EFRAP5ES.js +157 -0
- package/dist/chunk-EFRAP5ES.js.map +1 -0
- package/dist/chunk-EM7JHRYW.cjs +69 -0
- package/dist/chunk-EM7JHRYW.cjs.map +1 -0
- package/dist/chunk-FAFAP4L5.js +183 -0
- package/dist/chunk-FAFAP4L5.js.map +1 -0
- package/dist/chunk-H2Y6BSTL.cjs +69 -0
- package/dist/chunk-H2Y6BSTL.cjs.map +1 -0
- package/dist/chunk-HN4PHABT.js +126 -0
- package/dist/chunk-HN4PHABT.js.map +1 -0
- package/dist/chunk-HRENHNDJ.js +211 -0
- package/dist/chunk-HRENHNDJ.js.map +1 -0
- package/dist/chunk-I75BFEYT.cjs +2561 -0
- package/dist/chunk-I75BFEYT.cjs.map +1 -0
- package/dist/chunk-IFRATNLU.js +562 -0
- package/dist/chunk-IFRATNLU.js.map +1 -0
- package/dist/chunk-JNASH4OQ.js +1022 -0
- package/dist/chunk-JNASH4OQ.js.map +1 -0
- package/dist/chunk-JPJN4YBC.js +409 -0
- package/dist/chunk-JPJN4YBC.js.map +1 -0
- package/dist/chunk-KCKUSU2M.cjs +166 -0
- package/dist/chunk-KCKUSU2M.cjs.map +1 -0
- package/dist/chunk-KDLH35OI.cjs +1042 -0
- package/dist/chunk-KDLH35OI.cjs.map +1 -0
- package/dist/chunk-KJ2OXQF4.js +287 -0
- package/dist/chunk-KJ2OXQF4.js.map +1 -0
- package/dist/chunk-KK5UO2P4.cjs +717 -0
- package/dist/chunk-KK5UO2P4.cjs.map +1 -0
- package/dist/chunk-KNQEIU7O.cjs +1202 -0
- package/dist/chunk-KNQEIU7O.cjs.map +1 -0
- package/dist/chunk-KVGSVGRK.cjs +569 -0
- package/dist/chunk-KVGSVGRK.cjs.map +1 -0
- package/dist/chunk-L352JRV6.cjs +105 -0
- package/dist/chunk-L352JRV6.cjs.map +1 -0
- package/dist/chunk-LGNMFBLF.cjs +502 -0
- package/dist/chunk-LGNMFBLF.cjs.map +1 -0
- package/dist/chunk-LJADZITX.cjs +298 -0
- package/dist/chunk-LJADZITX.cjs.map +1 -0
- package/dist/chunk-LSR7JYVH.cjs +196 -0
- package/dist/chunk-LSR7JYVH.cjs.map +1 -0
- package/dist/chunk-MDB2WCRQ.cjs +137 -0
- package/dist/chunk-MDB2WCRQ.cjs.map +1 -0
- package/dist/chunk-MQDEE7HC.cjs +283 -0
- package/dist/chunk-MQDEE7HC.cjs.map +1 -0
- package/dist/chunk-MQRB634A.cjs +34 -0
- package/dist/chunk-MQRB634A.cjs.map +1 -0
- package/dist/chunk-MU6GW5ZV.js +2317 -0
- package/dist/chunk-MU6GW5ZV.js.map +1 -0
- package/dist/chunk-NN3TUHIH.js +28 -0
- package/dist/chunk-NN3TUHIH.js.map +1 -0
- package/dist/chunk-NT4LBP7D.cjs +111 -0
- package/dist/chunk-NT4LBP7D.cjs.map +1 -0
- package/dist/chunk-OGKGIXFC.cjs +2162 -0
- package/dist/chunk-OGKGIXFC.cjs.map +1 -0
- package/dist/chunk-OXNXEQY7.js +2538 -0
- package/dist/chunk-OXNXEQY7.js.map +1 -0
- package/dist/chunk-P5BOFE5A.js +546 -0
- package/dist/chunk-P5BOFE5A.js.map +1 -0
- package/dist/chunk-Q2MFGYTE.cjs +1449 -0
- package/dist/chunk-Q2MFGYTE.cjs.map +1 -0
- package/dist/chunk-Q75DBVDY.cjs +68 -0
- package/dist/chunk-Q75DBVDY.cjs.map +1 -0
- package/dist/chunk-RQUFZAZ7.js +1608 -0
- package/dist/chunk-RQUFZAZ7.js.map +1 -0
- package/dist/chunk-SICKWUWB.js +62 -0
- package/dist/chunk-SICKWUWB.js.map +1 -0
- package/dist/chunk-T343CCH5.js +1190 -0
- package/dist/chunk-T343CCH5.js.map +1 -0
- package/dist/chunk-T5H5PNLN.js +701 -0
- package/dist/chunk-T5H5PNLN.js.map +1 -0
- package/dist/chunk-U3LK2GID.js +2122 -0
- package/dist/chunk-U3LK2GID.js.map +1 -0
- package/dist/chunk-UFAJY2DM.js +62 -0
- package/dist/chunk-UFAJY2DM.js.map +1 -0
- package/dist/chunk-VC5LMUVQ.cjs +20 -0
- package/dist/chunk-VC5LMUVQ.cjs.map +1 -0
- package/dist/chunk-VM7WFMKI.cjs +76 -0
- package/dist/chunk-VM7WFMKI.cjs.map +1 -0
- package/dist/chunk-W2WTP6HS.cjs +233 -0
- package/dist/chunk-W2WTP6HS.cjs.map +1 -0
- package/dist/chunk-WH7PYHZY.cjs +35 -0
- package/dist/chunk-WH7PYHZY.cjs.map +1 -0
- package/dist/chunk-XU3OMQ7V.js +98 -0
- package/dist/chunk-XU3OMQ7V.js.map +1 -0
- package/dist/chunk-XWPDRMZG.js +62 -0
- package/dist/chunk-XWPDRMZG.js.map +1 -0
- package/dist/chunk-Y3CPKNB7.js +67 -0
- package/dist/chunk-Y3CPKNB7.js.map +1 -0
- package/dist/chunk-YNVRDD2P.js +98 -0
- package/dist/chunk-YNVRDD2P.js.map +1 -0
- package/dist/chunk-YSYR54XR.js +92 -0
- package/dist/chunk-YSYR54XR.js.map +1 -0
- package/dist/chunk-YTYDQBVY.cjs +162 -0
- package/dist/chunk-YTYDQBVY.cjs.map +1 -0
- package/dist/core/index.cjs +807 -4333
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.js +14 -4130
- package/dist/core/index.js.map +1 -1
- package/dist/i18n/index.cjs +86 -558
- package/dist/i18n/index.cjs.map +1 -1
- package/dist/i18n/index.js +1 -544
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.cjs +1432 -17140
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +31 -16785
- package/dist/index.js.map +1 -1
- package/dist/marketing/index.cjs +142 -3072
- package/dist/marketing/index.cjs.map +1 -1
- package/dist/marketing/index.js +11 -3042
- package/dist/marketing/index.js.map +1 -1
- package/dist/motion/index.cjs +26 -1222
- package/dist/motion/index.cjs.map +1 -1
- package/dist/motion/index.js +2 -1215
- package/dist/motion/index.js.map +1 -1
- package/dist/nav/index.cjs +101 -1518
- package/dist/nav/index.cjs.map +1 -1
- package/dist/nav/index.js +4 -1498
- package/dist/nav/index.js.map +1 -1
- package/dist/report/index.cjs +171 -2403
- package/dist/report/index.cjs.map +1 -1
- package/dist/report/index.js +3 -2363
- package/dist/report/index.js.map +1 -1
- package/dist/sections/index.cjs +22 -377
- package/dist/sections/index.cjs.map +1 -1
- package/dist/sections/index.d.cts +1 -1
- package/dist/sections/index.d.ts +1 -1
- package/dist/sections/index.js +6 -369
- package/dist/sections/index.js.map +1 -1
- package/dist/social-proof/index.cjs +53 -1250
- package/dist/social-proof/index.cjs.map +1 -1
- package/dist/social-proof/index.js +6 -1235
- package/dist/social-proof/index.js.map +1 -1
- package/dist/theme/index.cjs +38 -565
- package/dist/theme/index.cjs.map +1 -1
- package/dist/theme/index.js +2 -555
- package/dist/theme/index.js.map +1 -1
- package/dist/web/client/index.cjs +38 -491
- package/dist/web/client/index.cjs.map +1 -1
- package/dist/web/client/index.js +4 -483
- package/dist/web/client/index.js.map +1 -1
- package/dist/web/index.cjs +158 -1346
- package/dist/web/index.cjs.map +1 -1
- package/dist/web/index.js +9 -1305
- package/dist/web/index.js.map +1 -1
- package/dist/web/server/index.cjs +26 -563
- package/dist/web/server/index.cjs.map +1 -1
- package/dist/web/server/index.js +1 -560
- package/dist/web/server/index.js.map +1 -1
- package/package.json +1 -1
package/dist/sections/index.js
CHANGED
|
@@ -1,378 +1,15 @@
|
|
|
1
|
+
export { CTASection, FeatureSection, HeroSection, StatsSection } from '../chunk-ARC5KXBC.js';
|
|
2
|
+
import '../chunk-NN3TUHIH.js';
|
|
3
|
+
import { SectionShell, SectionHeader } from '../chunk-UFAJY2DM.js';
|
|
4
|
+
import '../chunk-HN4PHABT.js';
|
|
1
5
|
import { forwardRef } from 'react';
|
|
2
|
-
import
|
|
3
|
-
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
7
|
|
|
5
|
-
// src/sections/SectionShellBoundary.tsx
|
|
6
|
-
|
|
7
|
-
// src/tokens/spacing.ts
|
|
8
|
-
var SPACING = {
|
|
9
|
-
1: "var(--space-1)",
|
|
10
|
-
2: "var(--space-2)",
|
|
11
|
-
3: "var(--space-3)",
|
|
12
|
-
4: "var(--space-4)",
|
|
13
|
-
5: "var(--space-5)",
|
|
14
|
-
6: "var(--space-6)",
|
|
15
|
-
8: "var(--space-8)",
|
|
16
|
-
10: "var(--space-10)",
|
|
17
|
-
12: "var(--space-12)",
|
|
18
|
-
16: "var(--space-16)",
|
|
19
|
-
20: "var(--space-20)"
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// src/components/LayoutPrimitives/utils.ts
|
|
23
|
-
var SPACING_ALIASES = {
|
|
24
|
-
xs: "var(--space-2)",
|
|
25
|
-
sm: "var(--space-3)",
|
|
26
|
-
md: "var(--space-4)",
|
|
27
|
-
lg: "var(--space-6)",
|
|
28
|
-
xl: "var(--space-8)",
|
|
29
|
-
"2xl": "var(--space-12)"
|
|
30
|
-
};
|
|
31
|
-
function resolveSpacing(value) {
|
|
32
|
-
if (value === void 0) return void 0;
|
|
33
|
-
if (typeof value === "number" && SPACING[value]) {
|
|
34
|
-
return SPACING[value];
|
|
35
|
-
}
|
|
36
|
-
if (typeof value === "string" && value in SPACING_ALIASES) {
|
|
37
|
-
return SPACING_ALIASES[value];
|
|
38
|
-
}
|
|
39
|
-
return String(value);
|
|
40
|
-
}
|
|
41
|
-
function extractSpacingStyles(props) {
|
|
42
|
-
const styles = {};
|
|
43
|
-
if (props.m !== void 0) styles.margin = resolveSpacing(props.m);
|
|
44
|
-
if (props.mt !== void 0) styles.marginTop = resolveSpacing(props.mt);
|
|
45
|
-
if (props.mb !== void 0) styles.marginBottom = resolveSpacing(props.mb);
|
|
46
|
-
if (props.ml !== void 0) styles.marginLeft = resolveSpacing(props.ml);
|
|
47
|
-
if (props.mr !== void 0) styles.marginRight = resolveSpacing(props.mr);
|
|
48
|
-
if (props.mx !== void 0) {
|
|
49
|
-
styles.marginLeft = resolveSpacing(props.mx);
|
|
50
|
-
styles.marginRight = resolveSpacing(props.mx);
|
|
51
|
-
}
|
|
52
|
-
if (props.my !== void 0) {
|
|
53
|
-
styles.marginTop = resolveSpacing(props.my);
|
|
54
|
-
styles.marginBottom = resolveSpacing(props.my);
|
|
55
|
-
}
|
|
56
|
-
if (props.p !== void 0) styles.padding = resolveSpacing(props.p);
|
|
57
|
-
if (props.pt !== void 0) styles.paddingTop = resolveSpacing(props.pt);
|
|
58
|
-
if (props.pb !== void 0) styles.paddingBottom = resolveSpacing(props.pb);
|
|
59
|
-
if (props.pl !== void 0) styles.paddingLeft = resolveSpacing(props.pl);
|
|
60
|
-
if (props.pr !== void 0) styles.paddingRight = resolveSpacing(props.pr);
|
|
61
|
-
if (props.px !== void 0) {
|
|
62
|
-
styles.paddingLeft = resolveSpacing(props.px);
|
|
63
|
-
styles.paddingRight = resolveSpacing(props.px);
|
|
64
|
-
}
|
|
65
|
-
if (props.py !== void 0) {
|
|
66
|
-
styles.paddingTop = resolveSpacing(props.py);
|
|
67
|
-
styles.paddingBottom = resolveSpacing(props.py);
|
|
68
|
-
}
|
|
69
|
-
if (props.gap !== void 0) styles.gap = resolveSpacing(props.gap);
|
|
70
|
-
return styles;
|
|
71
|
-
}
|
|
72
|
-
var Box = forwardRef(
|
|
73
|
-
({ as: Component = "div", className, style, children, ...props }, ref) => {
|
|
74
|
-
const spacingStyles = extractSpacingStyles(props);
|
|
75
|
-
const { m, mt, mb, ml, mr, mx, my, p, pt, pb, pl, pr, px, py, gap, ...domProps } = props;
|
|
76
|
-
return /* @__PURE__ */ jsx(
|
|
77
|
-
Component,
|
|
78
|
-
{
|
|
79
|
-
ref,
|
|
80
|
-
className: clsx5("ds-box", className),
|
|
81
|
-
style: { ...spacingStyles, ...style },
|
|
82
|
-
...domProps,
|
|
83
|
-
children
|
|
84
|
-
}
|
|
85
|
-
);
|
|
86
|
-
}
|
|
87
|
-
);
|
|
88
|
-
Box.displayName = "Box";
|
|
89
|
-
var Stack = forwardRef(
|
|
90
|
-
({ direction = "column", align, justify, wrap, className, style, ...props }, ref) => {
|
|
91
|
-
return /* @__PURE__ */ jsx(
|
|
92
|
-
Box,
|
|
93
|
-
{
|
|
94
|
-
ref,
|
|
95
|
-
className: clsx5("ds-stack", direction === "row" && "ds-stack--horizontal", className),
|
|
96
|
-
style: {
|
|
97
|
-
alignItems: align,
|
|
98
|
-
justifyContent: justify === "between" ? "space-between" : justify,
|
|
99
|
-
flexWrap: wrap ? "wrap" : void 0,
|
|
100
|
-
...style
|
|
101
|
-
},
|
|
102
|
-
...props
|
|
103
|
-
}
|
|
104
|
-
);
|
|
105
|
-
}
|
|
106
|
-
);
|
|
107
|
-
Stack.displayName = "Stack";
|
|
108
|
-
var CONTAINER_SIZE_MAP = {
|
|
109
|
-
sm: "768px",
|
|
110
|
-
// 48rem — max-w-3xl
|
|
111
|
-
md: "1024px",
|
|
112
|
-
// 64rem — max-w-5xl
|
|
113
|
-
lg: "1152px",
|
|
114
|
-
// 72rem — max-w-6xl
|
|
115
|
-
xl: "1280px",
|
|
116
|
-
// 80rem — max-w-7xl
|
|
117
|
-
full: "100%"
|
|
118
|
-
};
|
|
119
|
-
var Container = forwardRef(
|
|
120
|
-
({ size, fluid, maxWidth, className, style, ...props }, ref) => {
|
|
121
|
-
let resolvedMaxWidth;
|
|
122
|
-
if (fluid) {
|
|
123
|
-
resolvedMaxWidth = "100%";
|
|
124
|
-
} else if (size) {
|
|
125
|
-
resolvedMaxWidth = CONTAINER_SIZE_MAP[size];
|
|
126
|
-
} else {
|
|
127
|
-
resolvedMaxWidth = maxWidth || "var(--container-default-max, 1200px)";
|
|
128
|
-
}
|
|
129
|
-
return /* @__PURE__ */ jsx(
|
|
130
|
-
Box,
|
|
131
|
-
{
|
|
132
|
-
ref,
|
|
133
|
-
className: clsx5("ds-container", className),
|
|
134
|
-
style: {
|
|
135
|
-
maxWidth: resolvedMaxWidth,
|
|
136
|
-
...style
|
|
137
|
-
},
|
|
138
|
-
...props
|
|
139
|
-
}
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
);
|
|
143
|
-
Container.displayName = "Container";
|
|
144
|
-
var SectionHeader = forwardRef(
|
|
145
|
-
({ title, subtitle, eyebrow, align = "center", className, ...props }, ref) => {
|
|
146
|
-
if (!title && !subtitle && !eyebrow) return null;
|
|
147
|
-
return /* @__PURE__ */ jsxs(
|
|
148
|
-
"header",
|
|
149
|
-
{
|
|
150
|
-
ref,
|
|
151
|
-
className: clsx5("ds-section-header", `ds-section-header--${align}`, className),
|
|
152
|
-
...props,
|
|
153
|
-
children: [
|
|
154
|
-
eyebrow && /* @__PURE__ */ jsx("span", { className: "ds-section-header__eyebrow", children: eyebrow }),
|
|
155
|
-
title && /* @__PURE__ */ jsx("h2", { className: "ds-section-header__title", children: title }),
|
|
156
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "ds-section-header__subtitle", children: subtitle })
|
|
157
|
-
]
|
|
158
|
-
}
|
|
159
|
-
);
|
|
160
|
-
}
|
|
161
|
-
);
|
|
162
|
-
SectionHeader.displayName = "SectionHeader";
|
|
163
|
-
var SectionShell = forwardRef(
|
|
164
|
-
({
|
|
165
|
-
className,
|
|
166
|
-
children,
|
|
167
|
-
background = "default",
|
|
168
|
-
padding = "md",
|
|
169
|
-
containerSize,
|
|
170
|
-
containerFluid = false,
|
|
171
|
-
...props
|
|
172
|
-
}, ref) => {
|
|
173
|
-
return /* @__PURE__ */ jsx(
|
|
174
|
-
"section",
|
|
175
|
-
{
|
|
176
|
-
ref,
|
|
177
|
-
className: clsx5(
|
|
178
|
-
"ds-section",
|
|
179
|
-
`ds-section--bg-${background}`,
|
|
180
|
-
`ds-section--padding-${padding}`,
|
|
181
|
-
className
|
|
182
|
-
),
|
|
183
|
-
...props,
|
|
184
|
-
children: /* @__PURE__ */ jsx(
|
|
185
|
-
Container,
|
|
186
|
-
{
|
|
187
|
-
size: containerSize === "fluid" ? "full" : containerSize,
|
|
188
|
-
fluid: containerFluid || containerSize === "fluid",
|
|
189
|
-
children
|
|
190
|
-
}
|
|
191
|
-
)
|
|
192
|
-
}
|
|
193
|
-
);
|
|
194
|
-
}
|
|
195
|
-
);
|
|
196
|
-
SectionShell.displayName = "SectionShell";
|
|
197
8
|
var SectionShell2 = forwardRef((props, ref) => /* @__PURE__ */ jsx(SectionShell, { ref, ...props }));
|
|
198
9
|
SectionShell2.displayName = "SectionShell";
|
|
199
10
|
var SectionHeader2 = forwardRef((props, ref) => /* @__PURE__ */ jsx(SectionHeader, { ref, ...props }));
|
|
200
11
|
SectionHeader2.displayName = "SectionHeader";
|
|
201
|
-
var HeroSection = forwardRef(
|
|
202
|
-
({
|
|
203
|
-
variant = "left",
|
|
204
|
-
title,
|
|
205
|
-
subtitle,
|
|
206
|
-
eyebrow,
|
|
207
|
-
primaryCta,
|
|
208
|
-
secondaryCta,
|
|
209
|
-
media,
|
|
210
|
-
mediaBrowserFrame = false,
|
|
211
|
-
floatingElement,
|
|
212
|
-
floatingPosition = "bottom-left",
|
|
213
|
-
withGrid = false,
|
|
214
|
-
withGlow = false,
|
|
215
|
-
align,
|
|
216
|
-
className,
|
|
217
|
-
children,
|
|
218
|
-
...props
|
|
219
|
-
}, ref) => {
|
|
220
|
-
const isSplit = variant === "split";
|
|
221
|
-
const isCenter = variant === "center";
|
|
222
|
-
const textAlignment = align || (isCenter ? "center" : "left");
|
|
223
|
-
const ContentBlock = /* @__PURE__ */ jsxs("div", { className: clsx5("ds-hero__content", `ds-hero__content--${textAlignment}`), children: [
|
|
224
|
-
eyebrow && /* @__PURE__ */ jsx("span", { className: "ds-section-header__eyebrow", style: { marginBottom: "var(--space-2)" }, children: eyebrow }),
|
|
225
|
-
/* @__PURE__ */ jsx("h1", { className: "ds-hero__title", children: title }),
|
|
226
|
-
subtitle && /* @__PURE__ */ jsx("p", { className: "ds-hero__subtitle", children: subtitle }),
|
|
227
|
-
(primaryCta || secondaryCta) && /* @__PURE__ */ jsxs("div", { className: "ds-hero__actions", children: [
|
|
228
|
-
primaryCta,
|
|
229
|
-
secondaryCta
|
|
230
|
-
] }),
|
|
231
|
-
children
|
|
232
|
-
] });
|
|
233
|
-
const MediaBlock = media && /* @__PURE__ */ jsxs("div", { className: "ds-hero__media-wrapper", children: [
|
|
234
|
-
/* @__PURE__ */ jsx("div", { className: clsx5("ds-hero__media", mediaBrowserFrame && "ds-hero__media--browser"), children: media }),
|
|
235
|
-
floatingElement && /* @__PURE__ */ jsx("div", { className: clsx5("ds-hero__float", `ds-hero__float--${floatingPosition}`), children: floatingElement })
|
|
236
|
-
] });
|
|
237
|
-
return /* @__PURE__ */ jsx(
|
|
238
|
-
SectionShell,
|
|
239
|
-
{
|
|
240
|
-
ref,
|
|
241
|
-
className: clsx5(
|
|
242
|
-
"ds-hero",
|
|
243
|
-
`ds-hero--${variant}`,
|
|
244
|
-
withGrid && "ds-hero--bg-grid",
|
|
245
|
-
withGlow && "ds-hero--bg-glow",
|
|
246
|
-
className
|
|
247
|
-
),
|
|
248
|
-
padding: "lg",
|
|
249
|
-
...props,
|
|
250
|
-
children: isSplit ? /* @__PURE__ */ jsxs(
|
|
251
|
-
"div",
|
|
252
|
-
{
|
|
253
|
-
style: {
|
|
254
|
-
display: "grid",
|
|
255
|
-
gridTemplateColumns: "repeat(auto-fit, minmax(min(100%, 500px), 1fr))",
|
|
256
|
-
gap: "var(--space-16)",
|
|
257
|
-
alignItems: "center"
|
|
258
|
-
},
|
|
259
|
-
children: [
|
|
260
|
-
/* @__PURE__ */ jsx(Box, { children: ContentBlock }),
|
|
261
|
-
/* @__PURE__ */ jsx(Box, { children: MediaBlock })
|
|
262
|
-
]
|
|
263
|
-
}
|
|
264
|
-
) : /* @__PURE__ */ jsxs(Stack, { gap: 16, align: isCenter ? "center" : "start", children: [
|
|
265
|
-
ContentBlock,
|
|
266
|
-
MediaBlock && /* @__PURE__ */ jsx(
|
|
267
|
-
Box,
|
|
268
|
-
{
|
|
269
|
-
style: {
|
|
270
|
-
width: "100%",
|
|
271
|
-
display: "flex",
|
|
272
|
-
justifyContent: isCenter ? "center" : "flex-start"
|
|
273
|
-
},
|
|
274
|
-
children: /* @__PURE__ */ jsx("div", { style: { width: "100%", maxWidth: isCenter ? "1200px" : "100%" }, children: MediaBlock })
|
|
275
|
-
}
|
|
276
|
-
)
|
|
277
|
-
] })
|
|
278
|
-
}
|
|
279
|
-
);
|
|
280
|
-
}
|
|
281
|
-
);
|
|
282
|
-
HeroSection.displayName = "HeroSection";
|
|
283
|
-
var FeatureCard = ({ item }) => /* @__PURE__ */ jsxs("div", { className: "ds-feature-card", children: [
|
|
284
|
-
item.icon && /* @__PURE__ */ jsx("div", { className: "ds-feature-card__icon", children: item.icon }),
|
|
285
|
-
/* @__PURE__ */ jsx("h3", { className: "ds-feature-card__title", children: item.title }),
|
|
286
|
-
/* @__PURE__ */ jsx("div", { className: "ds-feature-card__description", children: item.description }),
|
|
287
|
-
item.cta && /* @__PURE__ */ jsx("div", { className: "ds-feature-card__cta", children: item.cta })
|
|
288
|
-
] });
|
|
289
|
-
var FeatureRow = ({ item }) => /* @__PURE__ */ jsxs("div", { className: "ds-feature-row", children: [
|
|
290
|
-
/* @__PURE__ */ jsxs("div", { className: "ds-feature-row__content", children: [
|
|
291
|
-
item.step && /* @__PURE__ */ jsxs("div", { className: "ds-feature-row__step", children: [
|
|
292
|
-
"STEP ",
|
|
293
|
-
item.step
|
|
294
|
-
] }),
|
|
295
|
-
item.icon && /* @__PURE__ */ jsx("div", { className: "ds-feature-card__icon", children: item.icon }),
|
|
296
|
-
/* @__PURE__ */ jsx("h3", { className: "ds-section-header__title", style: { fontSize: "var(--font-size-2xl)" }, children: item.title }),
|
|
297
|
-
/* @__PURE__ */ jsx("div", { className: "ds-section-header__subtitle", style: { fontSize: "var(--font-size-lg)" }, children: item.description }),
|
|
298
|
-
item.cta && /* @__PURE__ */ jsx("div", { className: "ds-hero__actions", children: item.cta })
|
|
299
|
-
] }),
|
|
300
|
-
/* @__PURE__ */ jsx("div", { className: "ds-feature-row__media", children: item.media || /* @__PURE__ */ jsx("div", { style: { paddingBottom: "56.25%", background: "var(--glass-base-active)" } }) })
|
|
301
|
-
] });
|
|
302
|
-
var FeatureSection = forwardRef(
|
|
303
|
-
({
|
|
304
|
-
variant = "grid",
|
|
305
|
-
columns = 3,
|
|
306
|
-
features,
|
|
307
|
-
title,
|
|
308
|
-
subtitle,
|
|
309
|
-
eyebrow,
|
|
310
|
-
alignHeader = "center",
|
|
311
|
-
className,
|
|
312
|
-
...props
|
|
313
|
-
}, ref) => {
|
|
314
|
-
return /* @__PURE__ */ jsxs(SectionShell, { ref, className: clsx5("ds-feature-section", className), ...props, children: [
|
|
315
|
-
/* @__PURE__ */ jsx(SectionHeader, { title, subtitle, eyebrow, align: alignHeader }),
|
|
316
|
-
variant === "grid" ? /* @__PURE__ */ jsx("div", { className: clsx5("ds-feature-grid", `ds-feature-grid--${columns}-col`), children: features.map((feature, index) => /* @__PURE__ */ jsx(FeatureCard, { item: feature }, index)) }) : /* @__PURE__ */ jsx("div", { className: "ds-feature-zigzag", children: features.map((feature, index) => /* @__PURE__ */ jsx(FeatureRow, { item: feature }, index)) })
|
|
317
|
-
] });
|
|
318
|
-
}
|
|
319
|
-
);
|
|
320
|
-
FeatureSection.displayName = "FeatureSection";
|
|
321
|
-
var CTASection = forwardRef(
|
|
322
|
-
({
|
|
323
|
-
variant = "center",
|
|
324
|
-
title,
|
|
325
|
-
description,
|
|
326
|
-
primaryCta,
|
|
327
|
-
secondaryCta,
|
|
328
|
-
actions,
|
|
329
|
-
className,
|
|
330
|
-
children,
|
|
331
|
-
...props
|
|
332
|
-
}, ref) => {
|
|
333
|
-
const isBoxed = variant === "boxed";
|
|
334
|
-
const effectiveVariant = isBoxed ? "center" : variant;
|
|
335
|
-
const Content = /* @__PURE__ */ jsxs("div", { className: clsx5("ds-cta-section", `ds-cta-section--${effectiveVariant}`), children: [
|
|
336
|
-
effectiveVariant === "split" ? /* @__PURE__ */ jsxs("div", { className: "ds-cta-section--split", children: [
|
|
337
|
-
/* @__PURE__ */ jsxs("div", { className: "ds-cta-content", children: [
|
|
338
|
-
/* @__PURE__ */ jsx("h2", { className: "ds-cta-title", children: title }),
|
|
339
|
-
description && /* @__PURE__ */ jsx("p", { className: "ds-cta-description", children: description })
|
|
340
|
-
] }),
|
|
341
|
-
/* @__PURE__ */ jsx("div", { className: "ds-cta-actions", children: actions || /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
342
|
-
primaryCta,
|
|
343
|
-
secondaryCta
|
|
344
|
-
] }) })
|
|
345
|
-
] }) : /* @__PURE__ */ jsxs("div", { className: "ds-cta-content", children: [
|
|
346
|
-
/* @__PURE__ */ jsx("h2", { className: "ds-cta-title", children: title }),
|
|
347
|
-
description && /* @__PURE__ */ jsx("p", { className: "ds-cta-description", children: description }),
|
|
348
|
-
/* @__PURE__ */ jsx("div", { className: "ds-cta-actions", children: actions || /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
349
|
-
primaryCta,
|
|
350
|
-
secondaryCta
|
|
351
|
-
] }) })
|
|
352
|
-
] }),
|
|
353
|
-
children
|
|
354
|
-
] });
|
|
355
|
-
return /* @__PURE__ */ jsx(SectionShell, { ref, className: clsx5(className), ...props, children: isBoxed ? /* @__PURE__ */ jsx("div", { className: "ds-cta-card", children: Content }) : Content });
|
|
356
|
-
}
|
|
357
|
-
);
|
|
358
|
-
CTASection.displayName = "CTASection";
|
|
359
|
-
var StatsSection = forwardRef(
|
|
360
|
-
({ stats, title, subtitle, eyebrow, className, ...props }, ref) => {
|
|
361
|
-
return /* @__PURE__ */ jsxs(SectionShell, { ref, className: clsx5("ds-stats-section", className), ...props, children: [
|
|
362
|
-
/* @__PURE__ */ jsx(SectionHeader, { title, subtitle, eyebrow }),
|
|
363
|
-
/* @__PURE__ */ jsx("div", { className: "ds-stats-grid", children: stats.map((stat, idx) => /* @__PURE__ */ jsxs("div", { className: "ds-stat-card", children: [
|
|
364
|
-
/* @__PURE__ */ jsxs("div", { className: "ds-stat-value", children: [
|
|
365
|
-
stat.prefix,
|
|
366
|
-
stat.value,
|
|
367
|
-
/* @__PURE__ */ jsx("span", { className: "ds-stat-suffix", children: stat.suffix })
|
|
368
|
-
] }),
|
|
369
|
-
/* @__PURE__ */ jsx("div", { className: "ds-stat-label", children: stat.label })
|
|
370
|
-
] }, idx)) })
|
|
371
|
-
] });
|
|
372
|
-
}
|
|
373
|
-
);
|
|
374
|
-
StatsSection.displayName = "StatsSection";
|
|
375
12
|
|
|
376
|
-
export {
|
|
13
|
+
export { SectionHeader2 as SectionHeader, SectionShell2 as SectionShell };
|
|
377
14
|
//# sourceMappingURL=out.js.map
|
|
378
15
|
//# sourceMappingURL=index.js.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"]}
|