@electroplix/components 0.5.0-alpha.10 → 0.5.0-alpha.11

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/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 0.5.0-alpha.11 (2026-06-27)
2
+
3
+ ### 🚀 Features
4
+
5
+ - add ImageHero component with responsive design ([3f42f5b](https://github.com/electroplix/Design-System/commit/3f42f5b))
6
+
7
+ ### ❤️ Thank You
8
+
9
+ - Adnan
10
+
1
11
  ## 0.5.0-alpha.10 (2026-06-27)
2
12
 
3
13
  ### 🩹 Fixes
package/dist/index.esm.js CHANGED
@@ -354,7 +354,7 @@ function useBlogTheme() {
354
354
  return useElectroplixConfig().blog;
355
355
  }
356
356
 
357
- const _excluded$$ = ["name", "size", "color", "style"];
357
+ const _excluded$10 = ["name", "size", "color", "style"];
358
358
  /**
359
359
  * Render an inline SVG icon by name.
360
360
  *
@@ -370,7 +370,7 @@ function Icon(_ref) {
370
370
  color = 'currentColor',
371
371
  style
372
372
  } = _ref,
373
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$$);
373
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$10);
374
374
  const path = ICON_PATHS[name];
375
375
  if (!path) return null;
376
376
  return jsx("svg", _extends({
@@ -2297,7 +2297,7 @@ const maxLengthRule = max => ({
2297
2297
  message: `Must be at most ${max} characters`
2298
2298
  });
2299
2299
 
2300
- const _excluded$_ = ["as", "items", "orientation", "offset", "maxW", "px", "py", "radius", "gap", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "style", "className"];
2300
+ const _excluded$$ = ["as", "items", "orientation", "offset", "maxW", "px", "py", "radius", "gap", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "style", "className"];
2301
2301
  function AnchorLinks(_ref) {
2302
2302
  var _ref2, _ref3, _ref4, _ref5, _ref6, _items$0$targetId, _items$;
2303
2303
  let {
@@ -2318,7 +2318,7 @@ function AnchorLinks(_ref) {
2318
2318
  style = {},
2319
2319
  className = ''
2320
2320
  } = _ref,
2321
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$_);
2321
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$$);
2322
2322
  const t = useNavTheme();
2323
2323
  const radius = (_ref2 = radiusProp != null ? radiusProp : t.radius) != null ? _ref2 : 16;
2324
2324
  const bgColor = (_ref3 = bgColorProp != null ? bgColorProp : t.bgColor) != null ? _ref3 : '#ffffff';
@@ -2415,7 +2415,7 @@ function AnchorLinks(_ref) {
2415
2415
  }));
2416
2416
  }
2417
2417
 
2418
- const _excluded$Z = ["as", "items", "showHomeIcon", "maxW", "px", "py", "radius", "gap", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "style", "className"];
2418
+ const _excluded$_ = ["as", "items", "showHomeIcon", "maxW", "px", "py", "radius", "gap", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "style", "className"];
2419
2419
  function Breadcrumbs(_ref) {
2420
2420
  var _ref2, _ref3, _ref4, _ref5, _rest$separatorColor;
2421
2421
  let {
@@ -2435,7 +2435,7 @@ function Breadcrumbs(_ref) {
2435
2435
  style = {},
2436
2436
  className = ''
2437
2437
  } = _ref,
2438
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$Z);
2438
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$_);
2439
2439
  const t = useNavTheme();
2440
2440
  const bgColor = (_ref2 = bgColorProp != null ? bgColorProp : t.bgColor) != null ? _ref2 : '#ffffff';
2441
2441
  const textColor = (_ref3 = textColorProp != null ? textColorProp : t.textColor) != null ? _ref3 : '#09090b';
@@ -2531,7 +2531,7 @@ function Breadcrumbs(_ref) {
2531
2531
  }));
2532
2532
  }
2533
2533
 
2534
- const _excluded$Y = ["as", "languages", "current", "onChange", "px", "py", "radius", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "style", "className"];
2534
+ const _excluded$Z = ["as", "languages", "current", "onChange", "px", "py", "radius", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "style", "className"];
2535
2535
  function LanguageSelector(_ref) {
2536
2536
  var _ref2, _ref3, _ref4, _ref5, _languages$find;
2537
2537
  let {
@@ -2550,7 +2550,7 @@ function LanguageSelector(_ref) {
2550
2550
  style = {},
2551
2551
  className = ''
2552
2552
  } = _ref,
2553
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$Y);
2553
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$Z);
2554
2554
  const t = useNavTheme();
2555
2555
  const bgColor = (_ref2 = bgColorProp != null ? bgColorProp : t.bgColor) != null ? _ref2 : '#ffffff';
2556
2556
  const textColor = (_ref3 = textColorProp != null ? textColorProp : t.textColor) != null ? _ref3 : '#09090b';
@@ -2658,7 +2658,7 @@ function LanguageSelector(_ref) {
2658
2658
  }));
2659
2659
  }
2660
2660
 
2661
- const _excluded$X = ["as", "label", "sections", "maxW", "px", "py", "radius", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "style", "className"];
2661
+ const _excluded$Y = ["as", "label", "sections", "maxW", "px", "py", "radius", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "style", "className"];
2662
2662
  function MegaMenu(_ref) {
2663
2663
  var _ref2, _ref3, _ref4, _ref5;
2664
2664
  let {
@@ -2677,7 +2677,7 @@ function MegaMenu(_ref) {
2677
2677
  style = {},
2678
2678
  className = ''
2679
2679
  } = _ref,
2680
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$X);
2680
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$Y);
2681
2681
  const t = useNavTheme();
2682
2682
  (_ref2 = bgColorProp != null ? bgColorProp : t.bgColor) != null ? _ref2 : '#ffffff';
2683
2683
  const textColor = (_ref3 = textColorProp != null ? textColorProp : t.textColor) != null ? _ref3 : '#09090b';
@@ -2824,7 +2824,7 @@ function MegaMenu(_ref) {
2824
2824
  }));
2825
2825
  }
2826
2826
 
2827
- const _excluded$W = ["currentPage", "totalPages", "onPageChange", "maxVisible", "showFirstLast", "showPrevNext", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "fontSize", "radius", "gap", "className", "style"];
2827
+ const _excluded$X = ["currentPage", "totalPages", "onPageChange", "maxVisible", "showFirstLast", "showPrevNext", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "fontSize", "radius", "gap", "className", "style"];
2828
2828
  function Pagination(_ref) {
2829
2829
  var _ref2, _ref3, _ref4, _ref5;
2830
2830
  let {
@@ -2845,7 +2845,7 @@ function Pagination(_ref) {
2845
2845
  className,
2846
2846
  style
2847
2847
  } = _ref,
2848
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$W);
2848
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$X);
2849
2849
  const t = useNavTheme();
2850
2850
  const bgColor = (_ref2 = bgColorProp != null ? bgColorProp : t.bgColor) != null ? _ref2 : '#ffffff';
2851
2851
  const textColor = (_ref3 = textColorProp != null ? textColorProp : t.textColor) != null ? _ref3 : '#09090b';
@@ -2973,7 +2973,7 @@ function Pagination(_ref) {
2973
2973
  }));
2974
2974
  }
2975
2975
 
2976
- const _excluded$V = ["logoText", "links", "showSearch", "showCTA", "ctaText", "ctaHref", "sticky", "height", "padding", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
2976
+ const _excluded$W = ["logoText", "links", "showSearch", "showCTA", "ctaText", "ctaHref", "sticky", "height", "padding", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
2977
2977
  function PrimaryNav(_ref) {
2978
2978
  var _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref0;
2979
2979
  let {
@@ -2994,7 +2994,7 @@ function PrimaryNav(_ref) {
2994
2994
  className,
2995
2995
  style
2996
2996
  } = _ref,
2997
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$V);
2997
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$W);
2998
2998
  const t = useNavTheme();
2999
2999
  const showSearch = (_ref2 = showSearchProp != null ? showSearchProp : t.showSearch) != null ? _ref2 : false;
3000
3000
  const showCTA = (_ref3 = showCTAProp != null ? showCTAProp : t.showCTA) != null ? _ref3 : false;
@@ -3141,7 +3141,7 @@ function PrimaryNav(_ref) {
3141
3141
  }));
3142
3142
  }
3143
3143
 
3144
- const _excluded$U = ["items", "width", "padding", "gap", "radius", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
3144
+ const _excluded$V = ["items", "width", "padding", "gap", "radius", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
3145
3145
  function SidebarMenu(_ref) {
3146
3146
  var _ref2, _ref3, _ref4, _ref5;
3147
3147
  let {
@@ -3158,7 +3158,7 @@ function SidebarMenu(_ref) {
3158
3158
  className,
3159
3159
  style
3160
3160
  } = _ref,
3161
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$U);
3161
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$V);
3162
3162
  const t = useNavTheme();
3163
3163
  const bgColor = (_ref2 = bgColorProp != null ? bgColorProp : t.bgColor) != null ? _ref2 : '#ffffff';
3164
3164
  const textColor = (_ref3 = textColorProp != null ? textColorProp : t.textColor) != null ? _ref3 : '#09090b';
@@ -3289,7 +3289,7 @@ function SidebarMenu(_ref) {
3289
3289
  }));
3290
3290
  }
3291
3291
 
3292
- const _excluded$T = ["links", "width", "padding", "gap", "overlayColor", "position", "logoText", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
3292
+ const _excluded$U = ["links", "width", "padding", "gap", "overlayColor", "position", "logoText", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
3293
3293
  function SideDrawerNav(_ref) {
3294
3294
  var _ref2, _ref3, _ref4, _ref5;
3295
3295
  let {
@@ -3308,7 +3308,7 @@ function SideDrawerNav(_ref) {
3308
3308
  className,
3309
3309
  style
3310
3310
  } = _ref,
3311
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$T);
3311
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$U);
3312
3312
  const t = useNavTheme();
3313
3313
  const bgColor = (_ref2 = bgColorProp != null ? bgColorProp : t.bgColor) != null ? _ref2 : '#ffffff';
3314
3314
  const textColor = (_ref3 = textColorProp != null ? textColorProp : t.textColor) != null ? _ref3 : '#09090b';
@@ -3467,7 +3467,7 @@ function SideDrawerNav(_ref) {
3467
3467
  }));
3468
3468
  }
3469
3469
 
3470
- const _excluded$S = ["steps", "currentStep", "orientation", "showNumbers", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
3470
+ const _excluded$T = ["steps", "currentStep", "orientation", "showNumbers", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
3471
3471
  function Stepper(_ref) {
3472
3472
  var _ref2, _ref3, _ref4, _ref5;
3473
3473
  let {
@@ -3483,7 +3483,7 @@ function Stepper(_ref) {
3483
3483
  className,
3484
3484
  style
3485
3485
  } = _ref,
3486
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$S);
3486
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$T);
3487
3487
  const t = useNavTheme();
3488
3488
  const bgColor = (_ref2 = bgColorProp != null ? bgColorProp : t.bgColor) != null ? _ref2 : '#ffffff';
3489
3489
  const textColor = (_ref3 = textColorProp != null ? textColorProp : t.textColor) != null ? _ref3 : '#09090b';
@@ -3594,7 +3594,7 @@ function Stepper(_ref) {
3594
3594
  }));
3595
3595
  }
3596
3596
 
3597
- const _excluded$R = ["tabs", "defaultTab", "orientation", "showUnderline", "radius", "padding", "gap", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
3597
+ const _excluded$S = ["tabs", "defaultTab", "orientation", "showUnderline", "radius", "padding", "gap", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "className", "style"];
3598
3598
  function Tabs(_ref) {
3599
3599
  var _ref2, _ref3, _ref4, _ref5, _ref6, _tabs$active;
3600
3600
  let {
@@ -3613,7 +3613,7 @@ function Tabs(_ref) {
3613
3613
  className,
3614
3614
  style
3615
3615
  } = _ref,
3616
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$R);
3616
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$S);
3617
3617
  const t = useNavTheme();
3618
3618
  const radius = (_ref2 = radiusProp != null ? radiusProp : t.radius) != null ? _ref2 : 14;
3619
3619
  const bgColor = (_ref3 = bgColorProp != null ? bgColorProp : t.bgColor) != null ? _ref3 : '#ffffff';
@@ -3734,7 +3734,7 @@ function Tabs(_ref) {
3734
3734
  }));
3735
3735
  }
3736
3736
 
3737
- const _excluded$Q = ["columns", "copyright", "socialLinks", "logo", "logoAlt", "tagline", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "children", "className", "style"];
3737
+ const _excluded$R = ["columns", "copyright", "socialLinks", "logo", "logoAlt", "tagline", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "children", "className", "style"];
3738
3738
  function Footer(_ref) {
3739
3739
  var _ref2, _ref3, _ref4, _ref5, _t$radius;
3740
3740
  let {
@@ -3753,7 +3753,7 @@ function Footer(_ref) {
3753
3753
  className,
3754
3754
  style
3755
3755
  } = _ref,
3756
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$Q);
3756
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$R);
3757
3757
  const t = useNavTheme();
3758
3758
  const bg = (_ref2 = bgColor != null ? bgColor : t.bgColor) != null ? _ref2 : '#ffffff';
3759
3759
  const fg = (_ref3 = textColor != null ? textColor : t.textColor) != null ? _ref3 : '#09090b';
@@ -3915,8 +3915,8 @@ function Footer(_ref) {
3915
3915
  }));
3916
3916
  }
3917
3917
 
3918
- const _excluded$P = ["as", "bgColor", "textColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className", "children"];
3919
- const ui$z = {
3918
+ const _excluded$Q = ["as", "bgColor", "textColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className", "children"];
3919
+ const ui$A = {
3920
3920
  white: '#ffffff',
3921
3921
  text: '#18181b',
3922
3922
  border: '#e4e4e7'};
@@ -3938,9 +3938,9 @@ function HeroShell(props) {
3938
3938
  className = '',
3939
3939
  children
3940
3940
  } = props,
3941
- rest = _objectWithoutPropertiesLoose(props, _excluded$P);
3942
- const bg = (_ref = bgColor != null ? bgColor : t.bgColor) != null ? _ref : ui$z.white;
3943
- const fg = (_ref2 = textColor != null ? textColor : t.textColor) != null ? _ref2 : ui$z.text;
3941
+ rest = _objectWithoutPropertiesLoose(props, _excluded$Q);
3942
+ const bg = (_ref = bgColor != null ? bgColor : t.bgColor) != null ? _ref : ui$A.white;
3943
+ const fg = (_ref2 = textColor != null ? textColor : t.textColor) != null ? _ref2 : ui$A.text;
3944
3944
  return jsxs(Tag, _extends({
3945
3945
  className: className
3946
3946
  }, rest, {
@@ -3954,7 +3954,7 @@ function HeroShell(props) {
3954
3954
  paddingInline: px,
3955
3955
  paddingBlock: py,
3956
3956
  borderRadius: radius,
3957
- border: `1px solid ${ui$z.border}`,
3957
+ border: `1px solid ${ui$A.border}`,
3958
3958
  position: 'relative',
3959
3959
  overflow: 'hidden',
3960
3960
  boxShadow: '0 1px 2px rgba(9,9,11,0.04)'
@@ -4007,8 +4007,8 @@ function HeroShell(props) {
4007
4007
  }));
4008
4008
  }
4009
4009
 
4010
- const _excluded$O = ["as", "title", "subtitle", "ctaLabel", "onCta", "titleSize", "subtitleSize", "align", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className"];
4011
- const ui$y = {
4010
+ const _excluded$P = ["as", "title", "subtitle", "ctaLabel", "onCta", "titleSize", "subtitleSize", "align", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className"];
4011
+ const ui$z = {
4012
4012
  white: '#ffffff',
4013
4013
  black: '#09090b',
4014
4014
  text: '#18181b',
@@ -4040,11 +4040,11 @@ function StaticHero(props) {
4040
4040
  style = {},
4041
4041
  className = ''
4042
4042
  } = props,
4043
- rest = _objectWithoutPropertiesLoose(props, _excluded$O);
4044
- const bg = (_ref = bgColor != null ? bgColor : t.bgColor) != null ? _ref : ui$y.white;
4045
- const fg = (_ref2 = textColor != null ? textColor : t.textColor) != null ? _ref2 : ui$y.text;
4046
- const accent = (_ref3 = accentColor != null ? accentColor : t.accentColor) != null ? _ref3 : ui$y.black;
4047
- const border = (_ref4 = (_ref5 = borderColor != null ? borderColor : t.cardBorder) != null ? _ref5 : t.borderColor) != null ? _ref4 : ui$y.border;
4043
+ rest = _objectWithoutPropertiesLoose(props, _excluded$P);
4044
+ const bg = (_ref = bgColor != null ? bgColor : t.bgColor) != null ? _ref : ui$z.white;
4045
+ const fg = (_ref2 = textColor != null ? textColor : t.textColor) != null ? _ref2 : ui$z.text;
4046
+ const accent = (_ref3 = accentColor != null ? accentColor : t.accentColor) != null ? _ref3 : ui$z.black;
4047
+ const border = (_ref4 = (_ref5 = borderColor != null ? borderColor : t.cardBorder) != null ? _ref5 : t.borderColor) != null ? _ref4 : ui$z.border;
4048
4048
  return jsxs(Tag, _extends({
4049
4049
  className: className,
4050
4050
  style: _extends({
@@ -4104,7 +4104,7 @@ function StaticHero(props) {
4104
4104
  gap: 8,
4105
4105
  padding: '8px 16px',
4106
4106
  borderRadius: 999,
4107
- background: ui$y.white,
4107
+ background: ui$z.white,
4108
4108
  border: `1px solid ${border}`,
4109
4109
  marginBottom: 24,
4110
4110
  boxShadow: '0 1px 2px rgba(9,9,11,0.04)'
@@ -4134,7 +4134,7 @@ function StaticHero(props) {
4134
4134
  }), subtitle && jsx("p", {
4135
4135
  style: {
4136
4136
  fontSize: subtitleSize,
4137
- color: ui$y.muted,
4137
+ color: ui$z.muted,
4138
4138
  marginTop: 20,
4139
4139
  marginBottom: 32,
4140
4140
  maxWidth: 600,
@@ -4158,7 +4158,7 @@ function StaticHero(props) {
4158
4158
  borderRadius: 12,
4159
4159
  border: `1px solid ${accent}`,
4160
4160
  background: accent,
4161
- color: ui$y.white,
4161
+ color: ui$z.white,
4162
4162
  cursor: 'pointer',
4163
4163
  fontWeight: 700,
4164
4164
  fontSize: 16,
@@ -4178,7 +4178,7 @@ function StaticHero(props) {
4178
4178
  padding: '16px 28px',
4179
4179
  borderRadius: 12,
4180
4180
  border: `1px solid ${border}`,
4181
- background: ui$y.white,
4181
+ background: ui$z.white,
4182
4182
  color: fg,
4183
4183
  cursor: 'pointer',
4184
4184
  fontWeight: 600,
@@ -4194,8 +4194,8 @@ function StaticHero(props) {
4194
4194
  }));
4195
4195
  }
4196
4196
 
4197
- const _excluded$N = ["as", "slides", "autoplay", "intervalMs", "titleSize", "subtitleSize", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className"];
4198
- const ui$x = {
4197
+ const _excluded$O = ["as", "slides", "autoplay", "intervalMs", "titleSize", "subtitleSize", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className"];
4198
+ const ui$y = {
4199
4199
  white: '#ffffff',
4200
4200
  black: '#09090b',
4201
4201
  text: '#18181b',
@@ -4228,11 +4228,11 @@ function CarouselHero(props) {
4228
4228
  style = {},
4229
4229
  className = ''
4230
4230
  } = props,
4231
- rest = _objectWithoutPropertiesLoose(props, _excluded$N);
4232
- const bg = (_ref = bgColor != null ? bgColor : t.bgColor) != null ? _ref : ui$x.white;
4233
- const fg = (_ref2 = textColor != null ? textColor : t.textColor) != null ? _ref2 : ui$x.text;
4234
- const accent = (_ref3 = accentColor != null ? accentColor : t.accentColor) != null ? _ref3 : ui$x.black;
4235
- const border = (_ref4 = (_ref5 = borderColor != null ? borderColor : t.cardBorder) != null ? _ref5 : t.borderColor) != null ? _ref4 : ui$x.border;
4231
+ rest = _objectWithoutPropertiesLoose(props, _excluded$O);
4232
+ const bg = (_ref = bgColor != null ? bgColor : t.bgColor) != null ? _ref : ui$y.white;
4233
+ const fg = (_ref2 = textColor != null ? textColor : t.textColor) != null ? _ref2 : ui$y.text;
4234
+ const accent = (_ref3 = accentColor != null ? accentColor : t.accentColor) != null ? _ref3 : ui$y.black;
4235
+ const border = (_ref4 = (_ref5 = borderColor != null ? borderColor : t.cardBorder) != null ? _ref5 : t.borderColor) != null ? _ref4 : ui$y.border;
4236
4236
  const slides = Array.isArray(rawSlides) && rawSlides.length > 0 ? rawSlides : [{
4237
4237
  image: '',
4238
4238
  title: 'Welcome to Our Platform',
@@ -4301,7 +4301,7 @@ function CarouselHero(props) {
4301
4301
  height: 400,
4302
4302
  borderRadius: 16,
4303
4303
  overflow: 'hidden',
4304
- background: ui$x.surface,
4304
+ background: ui$y.surface,
4305
4305
  border: `1px solid ${border}`,
4306
4306
  boxShadow: '0 1px 2px rgba(9,9,11,0.04)'
4307
4307
  },
@@ -4322,20 +4322,20 @@ function CarouselHero(props) {
4322
4322
  flexDirection: 'column',
4323
4323
  alignItems: 'center',
4324
4324
  justifyContent: 'center',
4325
- background: ui$x.surface,
4326
- color: ui$x.muted
4325
+ background: ui$y.surface,
4326
+ color: ui$y.muted
4327
4327
  },
4328
4328
  children: [jsx(Icon, {
4329
4329
  name: "image",
4330
4330
  size: 64,
4331
- color: ui$x.muted,
4331
+ color: ui$y.muted,
4332
4332
  style: {
4333
4333
  opacity: 0.55
4334
4334
  }
4335
4335
  }), jsxs("span", {
4336
4336
  style: {
4337
4337
  marginTop: 12,
4338
- color: ui$x.muted,
4338
+ color: ui$y.muted,
4339
4339
  fontSize: 14,
4340
4340
  fontWeight: 500
4341
4341
  },
@@ -4354,8 +4354,8 @@ function CarouselHero(props) {
4354
4354
  height: 44,
4355
4355
  borderRadius: '999px',
4356
4356
  border: '1px solid rgba(255,255,255,0.18)',
4357
- background: ui$x.overlay,
4358
- color: ui$x.white,
4357
+ background: ui$y.overlay,
4358
+ color: ui$y.white,
4359
4359
  cursor: 'pointer',
4360
4360
  display: 'flex',
4361
4361
  alignItems: 'center',
@@ -4380,8 +4380,8 @@ function CarouselHero(props) {
4380
4380
  height: 44,
4381
4381
  borderRadius: '999px',
4382
4382
  border: '1px solid rgba(255,255,255,0.18)',
4383
- background: ui$x.overlay,
4384
- color: ui$x.white,
4383
+ background: ui$y.overlay,
4384
+ color: ui$y.white,
4385
4385
  cursor: 'pointer',
4386
4386
  display: 'flex',
4387
4387
  alignItems: 'center',
@@ -4413,7 +4413,7 @@ function CarouselHero(props) {
4413
4413
  }), current.subtitle && jsx("p", {
4414
4414
  style: {
4415
4415
  fontSize: subtitleSize,
4416
- color: ui$x.muted,
4416
+ color: ui$y.muted,
4417
4417
  marginTop: 12,
4418
4418
  marginBottom: 0,
4419
4419
  lineHeight: 1.6
@@ -4435,7 +4435,7 @@ function CarouselHero(props) {
4435
4435
  height: 10,
4436
4436
  borderRadius: 999,
4437
4437
  border: `1px solid ${i === idx ? accent : border}`,
4438
- background: i === idx ? accent : ui$x.white,
4438
+ background: i === idx ? accent : ui$y.white,
4439
4439
  cursor: 'pointer',
4440
4440
  transition: 'all 0.3s ease',
4441
4441
  boxShadow: i === idx ? '0 1px 2px rgba(9,9,11,0.12)' : '0 1px 2px rgba(9,9,11,0.04)'
@@ -4446,8 +4446,8 @@ function CarouselHero(props) {
4446
4446
  }));
4447
4447
  }
4448
4448
 
4449
- const _excluded$M = ["as", "title", "subtitle", "bgImage", "overlay", "form", "buttonText", "onSubmit", "inputPlaceholder", "titleSize", "subtitleSize", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className"];
4450
- const ui$w = {
4449
+ const _excluded$N = ["as", "title", "subtitle", "bgImage", "overlay", "form", "buttonText", "onSubmit", "inputPlaceholder", "titleSize", "subtitleSize", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className"];
4450
+ const ui$x = {
4451
4451
  white: '#ffffff',
4452
4452
  black: '#09090b',
4453
4453
  text: '#18181b',
@@ -4482,11 +4482,11 @@ function CTAOverlayHero(props) {
4482
4482
  style = {},
4483
4483
  className = ''
4484
4484
  } = props,
4485
- rest = _objectWithoutPropertiesLoose(props, _excluded$M);
4486
- const bg = (_ref = bgColor != null ? bgColor : t.bgColor) != null ? _ref : ui$w.white;
4487
- const fg = (_ref2 = textColor != null ? textColor : t.textColor) != null ? _ref2 : ui$w.text;
4488
- const accent = (_ref3 = accentColor != null ? accentColor : t.accentColor) != null ? _ref3 : ui$w.black;
4489
- const border = (_ref4 = (_ref5 = borderColor != null ? borderColor : t.cardBorder) != null ? _ref5 : t.borderColor) != null ? _ref4 : ui$w.border;
4485
+ rest = _objectWithoutPropertiesLoose(props, _excluded$N);
4486
+ const bg = (_ref = bgColor != null ? bgColor : t.bgColor) != null ? _ref : ui$x.white;
4487
+ const fg = (_ref2 = textColor != null ? textColor : t.textColor) != null ? _ref2 : ui$x.text;
4488
+ const accent = (_ref3 = accentColor != null ? accentColor : t.accentColor) != null ? _ref3 : ui$x.black;
4489
+ const border = (_ref4 = (_ref5 = borderColor != null ? borderColor : t.cardBorder) != null ? _ref5 : t.borderColor) != null ? _ref4 : ui$x.border;
4490
4490
  const [email, setEmail] = useState('');
4491
4491
  const [isHovered, setIsHovered] = useState(false);
4492
4492
  return jsxs(Tag, _extends({
@@ -4498,7 +4498,7 @@ function CTAOverlayHero(props) {
4498
4498
  backgroundImage: bgImage ? `url(${bgImage})` : undefined,
4499
4499
  backgroundSize: 'cover',
4500
4500
  backgroundPosition: 'center',
4501
- color: bgImage ? ui$w.white : fg,
4501
+ color: bgImage ? ui$x.white : fg,
4502
4502
  fontFamily,
4503
4503
  minHeight: typeof minH === 'number' ? `${minH}px` : minH,
4504
4504
  padding: `${py}px ${px}px`,
@@ -4559,13 +4559,13 @@ function CTAOverlayHero(props) {
4559
4559
  fontWeight: 800,
4560
4560
  lineHeight: 1.05,
4561
4561
  letterSpacing: '-0.05em',
4562
- color: bgImage ? ui$w.white : fg
4562
+ color: bgImage ? ui$x.white : fg
4563
4563
  },
4564
4564
  children: title
4565
4565
  }), subtitle && jsx("p", {
4566
4566
  style: {
4567
4567
  fontSize: subtitleSize,
4568
- color: bgImage ? 'rgba(255,255,255,0.78)' : ui$w.muted,
4568
+ color: bgImage ? 'rgba(255,255,255,0.78)' : ui$x.muted,
4569
4569
  marginTop: 20,
4570
4570
  marginBottom: 0,
4571
4571
  maxWidth: 640,
@@ -4585,7 +4585,7 @@ function CTAOverlayHero(props) {
4585
4585
  gap: 6,
4586
4586
  alignItems: 'center',
4587
4587
  justifySelf: 'center',
4588
- background: bgImage ? 'rgba(255,255,255,0.12)' : ui$w.white,
4588
+ background: bgImage ? 'rgba(255,255,255,0.12)' : ui$x.white,
4589
4589
  padding: 6,
4590
4590
  borderRadius: 16,
4591
4591
  border: `1px solid ${bgImage ? 'rgba(255,255,255,0.18)' : border}`,
@@ -4606,7 +4606,7 @@ function CTAOverlayHero(props) {
4606
4606
  style: {
4607
4607
  position: 'absolute',
4608
4608
  left: 16,
4609
- color: bgImage ? 'rgba(255,255,255,0.7)' : ui$w.muted
4609
+ color: bgImage ? 'rgba(255,255,255,0.7)' : ui$x.muted
4610
4610
  }
4611
4611
  }), jsx("input", {
4612
4612
  name: "email",
@@ -4619,7 +4619,7 @@ function CTAOverlayHero(props) {
4619
4619
  border: 'none',
4620
4620
  outline: 'none',
4621
4621
  background: 'transparent',
4622
- color: bgImage ? ui$w.white : fg,
4622
+ color: bgImage ? ui$x.white : fg,
4623
4623
  width: 280,
4624
4624
  fontSize: 15,
4625
4625
  boxSizing: 'border-box'
@@ -4634,7 +4634,7 @@ function CTAOverlayHero(props) {
4634
4634
  borderRadius: 12,
4635
4635
  border: `1px solid ${accent}`,
4636
4636
  background: accent,
4637
- color: ui$w.white,
4637
+ color: ui$x.white,
4638
4638
  cursor: 'pointer',
4639
4639
  fontWeight: 700,
4640
4640
  fontSize: 15,
@@ -4665,7 +4665,7 @@ function CTAOverlayHero(props) {
4665
4665
  borderRadius: 12,
4666
4666
  border: `1px solid ${accent}`,
4667
4667
  background: accent,
4668
- color: ui$w.white,
4668
+ color: ui$x.white,
4669
4669
  cursor: 'pointer',
4670
4670
  fontWeight: 700,
4671
4671
  fontSize: 16,
@@ -4684,8 +4684,8 @@ function CTAOverlayHero(props) {
4684
4684
  padding: '16px 32px',
4685
4685
  borderRadius: 12,
4686
4686
  border: `1px solid ${bgImage ? 'rgba(255,255,255,0.22)' : border}`,
4687
- background: bgImage ? 'rgba(255,255,255,0.1)' : ui$w.white,
4688
- color: bgImage ? ui$w.white : fg,
4687
+ background: bgImage ? 'rgba(255,255,255,0.1)' : ui$x.white,
4688
+ color: bgImage ? ui$x.white : fg,
4689
4689
  cursor: 'pointer',
4690
4690
  fontWeight: 600,
4691
4691
  fontSize: 16,
@@ -4708,7 +4708,7 @@ function CTAOverlayHero(props) {
4708
4708
  justifyContent: 'center',
4709
4709
  gap: 24,
4710
4710
  flexWrap: 'wrap',
4711
- color: bgImage ? 'rgba(255,255,255,0.7)' : ui$w.muted,
4711
+ color: bgImage ? 'rgba(255,255,255,0.7)' : ui$x.muted,
4712
4712
  fontSize: 13,
4713
4713
  fontWeight: 500
4714
4714
  },
@@ -4724,6 +4724,557 @@ function CTAOverlayHero(props) {
4724
4724
  }));
4725
4725
  }
4726
4726
 
4727
+ const _excluded$M = ["as", "eyebrow", "title", "titleAccent", "titleSuffix", "subtitle", "ctaLabel", "ctaHref", "ctaSecondaryLabel", "ctaSecondaryHref", "imageSrc", "imageAlt", "stats", "layout", "titleSize", "subtitleSize", "bgColor", "textColor", "accentColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className", "children"];
4728
+ const ui$w = {
4729
+ white: '#ffffff',
4730
+ black: '#09090b',
4731
+ muted: '#71717a'
4732
+ };
4733
+ /* ── Shared sub-components ──────────────────────────────────────── */
4734
+ function HeroEyebrow({
4735
+ text,
4736
+ accent,
4737
+ fontFamily = 'sans-serif',
4738
+ center,
4739
+ isMobile
4740
+ }) {
4741
+ if (isMobile) {
4742
+ return jsx("span", {
4743
+ style: {
4744
+ color: accent,
4745
+ fontFamily,
4746
+ fontSize: 12,
4747
+ fontWeight: 600,
4748
+ letterSpacing: 6,
4749
+ textTransform: 'uppercase',
4750
+ display: 'block',
4751
+ marginBottom: 24
4752
+ },
4753
+ children: text
4754
+ });
4755
+ }
4756
+ return jsxs("div", {
4757
+ style: {
4758
+ display: 'flex',
4759
+ alignItems: 'center',
4760
+ gap: 12,
4761
+ marginBottom: 32,
4762
+ justifyContent: center ? 'center' : 'flex-start'
4763
+ },
4764
+ children: [jsx("div", {
4765
+ style: {
4766
+ width: 48,
4767
+ height: 1,
4768
+ background: accent
4769
+ }
4770
+ }), jsx("span", {
4771
+ style: {
4772
+ color: accent,
4773
+ fontFamily,
4774
+ fontSize: 12,
4775
+ fontWeight: 600,
4776
+ letterSpacing: 4
4777
+ },
4778
+ children: text
4779
+ }), jsx("div", {
4780
+ style: {
4781
+ width: 48,
4782
+ height: 1,
4783
+ background: accent
4784
+ }
4785
+ })]
4786
+ });
4787
+ }
4788
+ function HeroCTAs({
4789
+ ctaLabel,
4790
+ ctaHref,
4791
+ ctaSecondaryLabel,
4792
+ ctaSecondaryHref,
4793
+ accent,
4794
+ fg,
4795
+ fontFamily = 'sans-serif',
4796
+ radius,
4797
+ isMobile,
4798
+ center
4799
+ }) {
4800
+ if (!ctaLabel && !ctaSecondaryLabel) return null;
4801
+ return jsxs("div", {
4802
+ style: {
4803
+ display: 'flex',
4804
+ flexWrap: 'wrap',
4805
+ gap: 12,
4806
+ justifyContent: center ? 'center' : 'flex-start'
4807
+ },
4808
+ children: [ctaLabel && jsxs("a", {
4809
+ href: ctaHref,
4810
+ style: {
4811
+ display: 'inline-flex',
4812
+ alignItems: 'center',
4813
+ gap: 8,
4814
+ padding: `${isMobile ? 12 : 16}px ${isMobile ? 24 : 32}px`,
4815
+ background: accent,
4816
+ color: ui$w.white,
4817
+ fontFamily,
4818
+ fontWeight: 700,
4819
+ fontSize: isMobile ? 14 : 16,
4820
+ letterSpacing: 1,
4821
+ borderRadius: radius,
4822
+ textDecoration: 'none',
4823
+ transition: 'all 0.2s ease'
4824
+ },
4825
+ children: [ctaLabel, jsx(Icon, {
4826
+ name: "arrow-right",
4827
+ size: 18
4828
+ })]
4829
+ }), ctaSecondaryLabel && jsx("a", {
4830
+ href: ctaSecondaryHref,
4831
+ style: {
4832
+ display: 'inline-flex',
4833
+ alignItems: 'center',
4834
+ gap: 8,
4835
+ padding: `${isMobile ? 12 : 16}px ${isMobile ? 24 : 32}px`,
4836
+ border: '1px solid rgba(255,255,255,0.4)',
4837
+ color: fg,
4838
+ fontFamily,
4839
+ fontWeight: 600,
4840
+ fontSize: isMobile ? 14 : 16,
4841
+ letterSpacing: 1,
4842
+ borderRadius: radius,
4843
+ textDecoration: 'none',
4844
+ transition: 'all 0.2s ease'
4845
+ },
4846
+ children: ctaSecondaryLabel
4847
+ })]
4848
+ });
4849
+ }
4850
+ function HeroStats({
4851
+ stats,
4852
+ accent,
4853
+ fontFamily = 'sans-serif',
4854
+ isMobile,
4855
+ center
4856
+ }) {
4857
+ if (!stats || stats.length === 0) return null;
4858
+ return jsx("div", {
4859
+ style: {
4860
+ display: 'flex',
4861
+ flexWrap: 'wrap',
4862
+ gap: isMobile ? 24 : 32,
4863
+ marginTop: isMobile ? 40 : 48,
4864
+ justifyContent: center ? 'center' : 'flex-start'
4865
+ },
4866
+ children: stats.map(stat => jsxs("div", {
4867
+ children: [jsx("p", {
4868
+ style: {
4869
+ fontFamily,
4870
+ color: accent,
4871
+ fontSize: 24,
4872
+ fontWeight: 700,
4873
+ lineHeight: 1
4874
+ },
4875
+ children: stat.value
4876
+ }), jsx("p", {
4877
+ style: {
4878
+ color: 'rgba(255,255,255,0.5)',
4879
+ fontFamily,
4880
+ fontSize: 10,
4881
+ letterSpacing: 1.5,
4882
+ marginTop: 4
4883
+ },
4884
+ children: stat.label.toUpperCase()
4885
+ })]
4886
+ }, stat.label))
4887
+ });
4888
+ }
4889
+ /* ── Main component ────────────────────────────────────────────── */
4890
+ function ImageHero(props) {
4891
+ var _t$minH, _t$maxW, _t$px, _t$py, _t$cardRadius, _t$gap, _ref, _ref2, _ref3;
4892
+ const t = useHeroTheme();
4893
+ const isMobile = useMediaQuery('(max-width: 768px)');
4894
+ const {
4895
+ as: Tag = 'section',
4896
+ eyebrow = 'Welcome',
4897
+ title = 'Build Something Amazing',
4898
+ titleAccent,
4899
+ titleSuffix,
4900
+ subtitle,
4901
+ ctaLabel,
4902
+ ctaHref = '#',
4903
+ ctaSecondaryLabel,
4904
+ ctaSecondaryHref = '#',
4905
+ imageSrc,
4906
+ imageAlt = 'Hero image',
4907
+ stats,
4908
+ layout = 'split',
4909
+ titleSize = 48,
4910
+ subtitleSize = 18,
4911
+ bgColor,
4912
+ textColor,
4913
+ accentColor,
4914
+ fontFamily = t.fontFamily,
4915
+ minH = (_t$minH = t.minH) != null ? _t$minH : '100vh',
4916
+ maxW = (_t$maxW = t.maxW) != null ? _t$maxW : 1200,
4917
+ px = (_t$px = t.px) != null ? _t$px : 24,
4918
+ py = (_t$py = t.py) != null ? _t$py : 48,
4919
+ radius = (_t$cardRadius = t.cardRadius) != null ? _t$cardRadius : 0,
4920
+ gap = (_t$gap = t.gap) != null ? _t$gap : 24,
4921
+ style = {},
4922
+ className = '',
4923
+ children
4924
+ } = props,
4925
+ rest = _objectWithoutPropertiesLoose(props, _excluded$M);
4926
+ const bg = (_ref = bgColor != null ? bgColor : t.bgColor) != null ? _ref : ui$w.black;
4927
+ const fg = (_ref2 = textColor != null ? textColor : t.textColor) != null ? _ref2 : '#ffffff';
4928
+ const accent = (_ref3 = accentColor != null ? accentColor : t.accentColor) != null ? _ref3 : '#8B5CF6';
4929
+ const rPx = isMobile ? 16 : px;
4930
+ const pyPx = isMobile ? 80 : py;
4931
+ const subSize = isMobile ? Math.max(14, Math.floor(subtitleSize * 0.85)) : subtitleSize;
4932
+ const overlay = `linear-gradient(135deg, ${bg}f2 0%, ${bg}99 60%, ${accent}14 100%)`;
4933
+ const shared = {
4934
+ accent,
4935
+ fontFamily,
4936
+ isMobile,
4937
+ radius
4938
+ };
4939
+ // ── Minimal ──
4940
+ if (layout === 'minimal') {
4941
+ return jsxs(Tag, _extends({
4942
+ className: className,
4943
+ style: _extends({
4944
+ position: 'relative',
4945
+ minHeight: isMobile ? 'auto' : minH,
4946
+ display: 'flex',
4947
+ alignItems: 'center',
4948
+ overflow: 'hidden',
4949
+ background: bg
4950
+ }, style)
4951
+ }, rest, {
4952
+ children: [!isMobile && jsxs(Fragment, {
4953
+ children: [jsx("div", {
4954
+ "aria-hidden": true,
4955
+ style: {
4956
+ position: 'absolute',
4957
+ top: 80,
4958
+ right: 80,
4959
+ width: 160,
4960
+ height: 160,
4961
+ border: `2px solid ${accent}30`
4962
+ }
4963
+ }), jsx("div", {
4964
+ "aria-hidden": true,
4965
+ style: {
4966
+ position: 'absolute',
4967
+ bottom: 128,
4968
+ left: 64,
4969
+ width: 96,
4970
+ height: 256,
4971
+ background: `${accent}10`
4972
+ }
4973
+ }), jsx("div", {
4974
+ "aria-hidden": true,
4975
+ style: {
4976
+ position: 'absolute',
4977
+ top: '50%',
4978
+ right: '33%',
4979
+ width: 1,
4980
+ height: 160,
4981
+ background: accent
4982
+ }
4983
+ })]
4984
+ }), jsx("div", {
4985
+ style: {
4986
+ position: 'relative',
4987
+ zIndex: 1,
4988
+ width: '100%',
4989
+ maxWidth: maxW,
4990
+ margin: '0 auto',
4991
+ padding: `${pyPx}px ${rPx}px`
4992
+ },
4993
+ children: jsxs("div", {
4994
+ style: {
4995
+ maxWidth: 768
4996
+ },
4997
+ children: [jsx(HeroEyebrow, _extends({
4998
+ text: eyebrow
4999
+ }, shared)), jsxs("h1", {
5000
+ style: {
5001
+ fontFamily,
5002
+ color: fg,
5003
+ fontSize: 'clamp(2.2rem, 7vw, 5.5rem)',
5004
+ fontWeight: 400,
5005
+ lineHeight: 0.95,
5006
+ letterSpacing: -1,
5007
+ textTransform: 'uppercase',
5008
+ marginTop: 16,
5009
+ overflowWrap: 'break-word'
5010
+ },
5011
+ children: [title, titleAccent && jsxs(Fragment, {
5012
+ children: [jsx("br", {}), jsx("span", {
5013
+ style: {
5014
+ color: accent
5015
+ },
5016
+ children: titleAccent
5017
+ })]
5018
+ })]
5019
+ }), subtitle && jsx("p", {
5020
+ style: {
5021
+ color: ui$w.muted,
5022
+ fontFamily,
5023
+ fontSize: subSize,
5024
+ lineHeight: 1.8,
5025
+ maxWidth: 400,
5026
+ marginTop: isMobile ? 24 : 32,
5027
+ marginBottom: isMobile ? 32 : 40
5028
+ },
5029
+ children: subtitle
5030
+ }), jsx(HeroCTAs, _extends({
5031
+ ctaLabel: ctaLabel,
5032
+ ctaHref: ctaHref,
5033
+ ctaSecondaryLabel: ctaSecondaryLabel,
5034
+ ctaSecondaryHref: ctaSecondaryHref,
5035
+ fg: fg
5036
+ }, shared)), jsx(HeroStats, _extends({
5037
+ stats: stats
5038
+ }, shared))]
5039
+ })
5040
+ })]
5041
+ }));
5042
+ }
5043
+ // ── Centered ──
5044
+ if (layout === 'centered') {
5045
+ return jsxs(Tag, _extends({
5046
+ className: className,
5047
+ style: _extends({
5048
+ position: 'relative',
5049
+ minHeight: isMobile ? 'auto' : minH,
5050
+ display: 'flex',
5051
+ alignItems: 'center',
5052
+ justifyContent: 'center',
5053
+ overflow: 'hidden',
5054
+ background: bg
5055
+ }, style)
5056
+ }, rest, {
5057
+ children: [imageSrc && jsxs("div", {
5058
+ style: {
5059
+ position: 'absolute',
5060
+ inset: 0
5061
+ },
5062
+ children: [jsx("img", {
5063
+ src: imageSrc,
5064
+ alt: imageAlt,
5065
+ style: {
5066
+ width: '100%',
5067
+ height: '100%',
5068
+ objectFit: 'cover'
5069
+ }
5070
+ }), jsx("div", {
5071
+ "aria-hidden": true,
5072
+ style: {
5073
+ position: 'absolute',
5074
+ inset: 0,
5075
+ background: overlay
5076
+ }
5077
+ })]
5078
+ }), jsxs("div", {
5079
+ style: {
5080
+ position: 'relative',
5081
+ zIndex: 1,
5082
+ width: '100%',
5083
+ maxWidth: isMobile ? '100%' : 800,
5084
+ margin: '0 auto',
5085
+ padding: `${pyPx}px ${rPx}px`,
5086
+ textAlign: 'center'
5087
+ },
5088
+ children: [jsx(HeroEyebrow, _extends({
5089
+ text: eyebrow
5090
+ }, shared, {
5091
+ center: true
5092
+ })), jsxs("h1", {
5093
+ style: {
5094
+ fontFamily,
5095
+ color: fg,
5096
+ fontSize: `clamp(${isMobile ? '2rem' : '2.5rem'}, 6vw, 5.5rem)`,
5097
+ lineHeight: 1.05,
5098
+ letterSpacing: -1,
5099
+ margin: 0
5100
+ },
5101
+ children: [title, titleAccent && jsxs(Fragment, {
5102
+ children: [jsx("br", {}), jsx("em", {
5103
+ style: {
5104
+ color: accent,
5105
+ fontStyle: 'italic'
5106
+ },
5107
+ children: titleAccent
5108
+ })]
5109
+ }), titleSuffix && ` ${titleSuffix}`]
5110
+ }), subtitle && jsx("p", {
5111
+ style: {
5112
+ fontFamily,
5113
+ color: 'rgba(255,255,255,0.7)',
5114
+ fontSize: subSize,
5115
+ lineHeight: 1.7,
5116
+ maxWidth: 520,
5117
+ margin: '20px auto 32px'
5118
+ },
5119
+ children: subtitle
5120
+ }), jsx(HeroCTAs, _extends({
5121
+ ctaLabel: ctaLabel,
5122
+ ctaHref: ctaHref,
5123
+ ctaSecondaryLabel: ctaSecondaryLabel,
5124
+ ctaSecondaryHref: ctaSecondaryHref,
5125
+ fg: fg
5126
+ }, shared, {
5127
+ center: true
5128
+ })), jsx(HeroStats, _extends({
5129
+ stats: stats
5130
+ }, shared, {
5131
+ center: true
5132
+ }))]
5133
+ })]
5134
+ }));
5135
+ }
5136
+ // ── Split (default) ──
5137
+ return jsxs(Tag, _extends({
5138
+ className: className,
5139
+ style: _extends({
5140
+ position: 'relative',
5141
+ minHeight: isMobile ? 'auto' : minH,
5142
+ display: 'flex',
5143
+ alignItems: 'center',
5144
+ overflow: 'hidden',
5145
+ background: bg
5146
+ }, style)
5147
+ }, rest, {
5148
+ children: [imageSrc && jsxs("div", {
5149
+ style: {
5150
+ position: 'absolute',
5151
+ inset: 0
5152
+ },
5153
+ children: [jsx("img", {
5154
+ src: imageSrc,
5155
+ alt: imageAlt,
5156
+ style: {
5157
+ width: '100%',
5158
+ height: '100%',
5159
+ objectFit: 'cover'
5160
+ }
5161
+ }), jsx("div", {
5162
+ "aria-hidden": true,
5163
+ style: {
5164
+ position: 'absolute',
5165
+ inset: 0,
5166
+ background: overlay
5167
+ }
5168
+ })]
5169
+ }), !isMobile && jsxs(Fragment, {
5170
+ children: [jsx("div", {
5171
+ "aria-hidden": true,
5172
+ style: {
5173
+ position: 'absolute',
5174
+ left: 0,
5175
+ top: 0,
5176
+ height: '100%',
5177
+ width: 1,
5178
+ background: `linear-gradient(to bottom, transparent, ${accent}40, transparent)`
5179
+ }
5180
+ }), jsx("div", {
5181
+ "aria-hidden": true,
5182
+ style: {
5183
+ position: 'absolute',
5184
+ right: 0,
5185
+ top: 0,
5186
+ height: '100%',
5187
+ width: 1,
5188
+ background: `linear-gradient(to bottom, transparent, ${accent}40, transparent)`
5189
+ }
5190
+ })]
5191
+ }), jsxs("div", {
5192
+ style: {
5193
+ position: 'relative',
5194
+ zIndex: 1,
5195
+ width: '100%',
5196
+ maxWidth: maxW,
5197
+ margin: '0 auto',
5198
+ padding: `${pyPx}px ${rPx}px`,
5199
+ display: 'grid',
5200
+ gridTemplateColumns: isMobile ? '1fr' : '1fr 1fr',
5201
+ gap: isMobile ? 32 : gap,
5202
+ alignItems: 'center'
5203
+ },
5204
+ children: [jsxs("div", {
5205
+ children: [jsx(HeroEyebrow, _extends({
5206
+ text: eyebrow
5207
+ }, shared)), jsxs("h1", {
5208
+ style: {
5209
+ fontFamily,
5210
+ color: fg,
5211
+ fontSize: `clamp(${isMobile ? '2rem' : '3rem'}, 6vw, 5.5rem)`,
5212
+ lineHeight: 1.05,
5213
+ letterSpacing: -1,
5214
+ margin: 0
5215
+ },
5216
+ children: [title, titleAccent && jsxs(Fragment, {
5217
+ children: [jsx("br", {}), jsx("em", {
5218
+ style: {
5219
+ color: accent,
5220
+ fontStyle: 'italic'
5221
+ },
5222
+ children: titleAccent
5223
+ })]
5224
+ }), titleSuffix && ` ${titleSuffix}`]
5225
+ }), subtitle && jsx("p", {
5226
+ style: {
5227
+ fontFamily,
5228
+ color: 'rgba(255,255,255,0.7)',
5229
+ fontSize: subSize,
5230
+ lineHeight: 1.7,
5231
+ maxWidth: 480,
5232
+ marginTop: isMobile ? 20 : 24,
5233
+ marginBottom: isMobile ? 32 : 40
5234
+ },
5235
+ children: subtitle
5236
+ }), jsx(HeroCTAs, _extends({
5237
+ ctaLabel: ctaLabel,
5238
+ ctaHref: ctaHref,
5239
+ ctaSecondaryLabel: ctaSecondaryLabel,
5240
+ ctaSecondaryHref: ctaSecondaryHref,
5241
+ fg: fg
5242
+ }, shared)), jsx(HeroStats, _extends({
5243
+ stats: stats
5244
+ }, shared))]
5245
+ }), !isMobile && imageSrc && jsx("div", {
5246
+ style: {
5247
+ position: 'relative',
5248
+ height: 580,
5249
+ display: 'flex',
5250
+ justifyContent: 'flex-end'
5251
+ },
5252
+ children: jsx("div", {
5253
+ style: {
5254
+ position: 'absolute',
5255
+ right: 0,
5256
+ top: 0,
5257
+ width: 288,
5258
+ height: 384,
5259
+ overflow: 'hidden',
5260
+ borderRadius: radius || 12,
5261
+ boxShadow: `0 0 60px ${accent}20`
5262
+ },
5263
+ children: jsx("img", {
5264
+ src: imageSrc,
5265
+ alt: imageAlt,
5266
+ style: {
5267
+ width: '100%',
5268
+ height: '100%',
5269
+ objectFit: 'cover'
5270
+ }
5271
+ })
5272
+ })
5273
+ }), children]
5274
+ })]
5275
+ }));
5276
+ }
5277
+
4727
5278
  const _excluded$L = ["as", "title", "subtitle", "pattern", "intensity", "badge", "ctaLabel", "onCta", "stats", "titleSize", "subtitleSize", "bgColor", "textColor", "accentColor", "borderColor", "fontFamily", "minH", "maxW", "px", "py", "radius", "gap", "style", "className"];
4728
5279
  function usePattern(kind, accent, intensity) {
4729
5280
  return useMemo(() => {
@@ -20662,4 +21213,4 @@ function CommentsSection(_ref0) {
20662
21213
  }));
20663
21214
  }
20664
21215
 
20665
- export { Accordion, AccountSettings, AddressAutocomplete, AnchorLinks, AnimatedBrandMark, AppInstallBanner, ArchiveList, ArticleRenderer, AudioEmbed, AuthForm, AuthorByline, AutoSuggest, AvatarProfile, Badge, BadgeGroup, BarChart, BlockShell, BlockquoteTestimonial, BlogBadge, BlogCard, BrandIconGrid, BrandingShell, Breadcrumbs, Button, PrimaryButton as ButtonAlias, ButtonGroup, CTAOverlayHero, CalendarGrid, CalloutBox, Captcha, CarouselHero, CartDrawer, CommentsBox, CommentsSection, ComparisonTable, ConfirmDialog, ContactForm, ContactSupportBlock, CookieConsent, CookieNotice, CountdownTimer, DataTable, DateTimePicker, DownloadBlock, DownloadButton, ElectroplixProvider, EmptyState, FAQAccordion, FacetFilters, FaviconUploader, FeatureGrid, FeatureHighlights, FileUploader, FloatingActionButton, FollowLike, Footer, FormDialog, FormShell, GenericList, GenericModal, HeadingSection, HeroShell, HowItWorks, ICON_NAMES, Icon, IconButton, IconGrid, ImageCropperUploader, ImageGallery, InlineCode, InlineCodeText, InputField, ItemCardGrid, LCTimeline, LanguageSelector, LeadMagnetGate, LightboxGallery, LineChart, LoadingButton, LoadingOverlay, LogoDisplay, LottieOrSVG, MapEmbed, MarketingHeroBlock, MasonryGrid, MediaShell, MegaMenu, MiniCartPanel, MultiFactorAuthInput, MultiStepWizard, NewsletterSignup, OnboardingWizard, OrderSummary, OverlayBase, Pagination, ParagraphBlock, PasswordReset, PatternedHero, PaymentButtons, PieChart, PolaroidImage, PricingTable, PrimaryButton, PrimaryNav, PrintButton, ProductCard, ProductDetail, ProductGrid, ProductTour, ProfileOverview, ProfileSettings, ProgressBar, PromoPopup, QuickAddButton, RSSFeed, RadioGroup, RatingStars, ReactionsBar, ReadingBar, RelatedPosts, ResponsiveVideo, ReviewsForm, RichMarkdown, RoleBadge, ScrollProgressBar, SearchEmptyState, SearchResultCard, SearchResults, SecondaryButton, SelectDropdown, ShareButton, SideDrawerNav, SidebarMenu, SiteSearchBar, SocialEmbed, SocialLoginButtons, SocialShareBar, SortableTable, Sparkline, SplitHero, StaticHero, StatsCounter, Stepper, SupportChat, Tabs, TagList, Taglines, TeamGrid, TertiaryButton, TestimonialsCarousel, TextAreaField, ThemeToggle, Timeline, ToastBanners, ToggleSwitch, Tooltip, TooltipHelp, TrustBadges, ValidationWrapper, VariantSelector, VideoHeaderHero, WelcomePopup, WishlistButton, baseBtn, baseButtonStyle, cn, defaultBlogTheme, defaultButtonTheme, defaultConfig, defaultContentTheme, defaultDataDisplayTheme, defaultEcommerceTheme, defaultFormsTheme, defaultHeroTheme, defaultListsCardsTheme, defaultMarketingTheme, defaultMediaTheme, defaultMiscTheme, defaultModalsTheme, defaultNavigationTheme, defaultOnboardingTheme, defaultSearchTheme, defaultSiteIdentityTheme, defaultSocialTheme, defaultUserAccountsTheme, defineConfig, emailRule, inputStyle, labelStyle, maxLengthRule, mergeTheme, minLengthRule, money, requiredRule, sx, timeAgo, truncate, useBlogTheme, useButtonTheme, useClickOutside, useContentTheme, useDataDisplayTheme, useDebounce, useEcommerceTheme, useElectroplixConfig, useFocusTrap, useFormsTheme, useHeroTheme, useListsCardsTheme, useMarketingTheme, useMediaQuery, useMediaTheme, useMiscTheme, useModalsTheme, useNavTheme, useOnboardingTheme, useSearchTheme, useSiteIdentityTheme, useSocialTheme, useUserAccountsTheme, validate };
21216
+ export { Accordion, AccountSettings, AddressAutocomplete, AnchorLinks, AnimatedBrandMark, AppInstallBanner, ArchiveList, ArticleRenderer, AudioEmbed, AuthForm, AuthorByline, AutoSuggest, AvatarProfile, Badge, BadgeGroup, BarChart, BlockShell, BlockquoteTestimonial, BlogBadge, BlogCard, BrandIconGrid, BrandingShell, Breadcrumbs, Button, PrimaryButton as ButtonAlias, ButtonGroup, CTAOverlayHero, CalendarGrid, CalloutBox, Captcha, CarouselHero, CartDrawer, CommentsBox, CommentsSection, ComparisonTable, ConfirmDialog, ContactForm, ContactSupportBlock, CookieConsent, CookieNotice, CountdownTimer, DataTable, DateTimePicker, DownloadBlock, DownloadButton, ElectroplixProvider, EmptyState, FAQAccordion, FacetFilters, FaviconUploader, FeatureGrid, FeatureHighlights, FileUploader, FloatingActionButton, FollowLike, Footer, FormDialog, FormShell, GenericList, GenericModal, HeadingSection, HeroShell, HowItWorks, ICON_NAMES, Icon, IconButton, IconGrid, ImageCropperUploader, ImageGallery, ImageHero, InlineCode, InlineCodeText, InputField, ItemCardGrid, LCTimeline, LanguageSelector, LeadMagnetGate, LightboxGallery, LineChart, LoadingButton, LoadingOverlay, LogoDisplay, LottieOrSVG, MapEmbed, MarketingHeroBlock, MasonryGrid, MediaShell, MegaMenu, MiniCartPanel, MultiFactorAuthInput, MultiStepWizard, NewsletterSignup, OnboardingWizard, OrderSummary, OverlayBase, Pagination, ParagraphBlock, PasswordReset, PatternedHero, PaymentButtons, PieChart, PolaroidImage, PricingTable, PrimaryButton, PrimaryNav, PrintButton, ProductCard, ProductDetail, ProductGrid, ProductTour, ProfileOverview, ProfileSettings, ProgressBar, PromoPopup, QuickAddButton, RSSFeed, RadioGroup, RatingStars, ReactionsBar, ReadingBar, RelatedPosts, ResponsiveVideo, ReviewsForm, RichMarkdown, RoleBadge, ScrollProgressBar, SearchEmptyState, SearchResultCard, SearchResults, SecondaryButton, SelectDropdown, ShareButton, SideDrawerNav, SidebarMenu, SiteSearchBar, SocialEmbed, SocialLoginButtons, SocialShareBar, SortableTable, Sparkline, SplitHero, StaticHero, StatsCounter, Stepper, SupportChat, Tabs, TagList, Taglines, TeamGrid, TertiaryButton, TestimonialsCarousel, TextAreaField, ThemeToggle, Timeline, ToastBanners, ToggleSwitch, Tooltip, TooltipHelp, TrustBadges, ValidationWrapper, VariantSelector, VideoHeaderHero, WelcomePopup, WishlistButton, baseBtn, baseButtonStyle, cn, defaultBlogTheme, defaultButtonTheme, defaultConfig, defaultContentTheme, defaultDataDisplayTheme, defaultEcommerceTheme, defaultFormsTheme, defaultHeroTheme, defaultListsCardsTheme, defaultMarketingTheme, defaultMediaTheme, defaultMiscTheme, defaultModalsTheme, defaultNavigationTheme, defaultOnboardingTheme, defaultSearchTheme, defaultSiteIdentityTheme, defaultSocialTheme, defaultUserAccountsTheme, defineConfig, emailRule, inputStyle, labelStyle, maxLengthRule, mergeTheme, minLengthRule, money, requiredRule, sx, timeAgo, truncate, useBlogTheme, useButtonTheme, useClickOutside, useContentTheme, useDataDisplayTheme, useDebounce, useEcommerceTheme, useElectroplixConfig, useFocusTrap, useFormsTheme, useHeroTheme, useListsCardsTheme, useMarketingTheme, useMediaQuery, useMediaTheme, useMiscTheme, useModalsTheme, useNavTheme, useOnboardingTheme, useSearchTheme, useSiteIdentityTheme, useSocialTheme, useUserAccountsTheme, validate };
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electroplix/components",
3
- "version": "0.5.0-alpha.9",
3
+ "version": "0.5.0-alpha.10",
4
4
  "description": "Parametric, config-driven UI components by Electroplix. 159 components across 18 categories — navigation, hero, buttons, forms, content, data display, ecommerce, lists/cards, marketing, media, miscellaneous, modals, onboarding, search, site-identity, social, user-accounts, and blog. AI-builder-ready metadata included.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,35 @@
1
+ import type React from 'react';
2
+ export interface ImageHeroProps extends React.ComponentPropsWithoutRef<'section'> {
3
+ as?: React.ElementType;
4
+ eyebrow?: string;
5
+ title?: string;
6
+ titleAccent?: string;
7
+ titleSuffix?: string;
8
+ subtitle?: string;
9
+ ctaLabel?: string;
10
+ ctaHref?: string;
11
+ ctaSecondaryLabel?: string;
12
+ ctaSecondaryHref?: string;
13
+ imageSrc?: string;
14
+ imageAlt?: string;
15
+ stats?: Array<{
16
+ value: string;
17
+ label: string;
18
+ }>;
19
+ layout?: 'split' | 'centered' | 'minimal';
20
+ align?: 'left' | 'center' | 'right';
21
+ titleSize?: number;
22
+ subtitleSize?: number;
23
+ bgColor?: string;
24
+ textColor?: string;
25
+ accentColor?: string;
26
+ fontFamily?: string;
27
+ minH?: string | number;
28
+ maxW?: number;
29
+ px?: number;
30
+ py?: number;
31
+ radius?: number;
32
+ gap?: number;
33
+ }
34
+ export declare function ImageHero(props: ImageHeroProps): import("react/jsx-runtime").JSX.Element;
35
+ //# sourceMappingURL=ImageHero.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageHero.d.ts","sourceRoot":"","sources":["../../../../src/components/hero/ImageHero.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,wBAAwB,CAAC,SAAS,CAAC;IAC/E,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAiND,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CA0Y9C"}
@@ -6,6 +6,8 @@ export { CarouselHero } from './CarouselHero';
6
6
  export type { CarouselHeroProps } from './CarouselHero';
7
7
  export { CTAOverlayHero } from './CTAOverlayHero';
8
8
  export type { CTAOverlayHeroProps } from './CTAOverlayHero';
9
+ export { ImageHero } from './ImageHero';
10
+ export type { ImageHeroProps } from './ImageHero';
9
11
  export { PatternedHero } from './PatternedHero';
10
12
  export type { PatternedHeroProps } from './PatternedHero';
11
13
  export { SplitHero } from './SplitHero';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/hero/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/hero/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electroplix/components",
3
- "version": "0.5.0-alpha.10",
3
+ "version": "0.5.0-alpha.11",
4
4
  "description": "Parametric, config-driven UI components by Electroplix. 159 components across 18 categories — navigation, hero, buttons, forms, content, data display, ecommerce, lists/cards, marketing, media, miscellaneous, modals, onboarding, search, site-identity, social, user-accounts, and blog. AI-builder-ready metadata included.",
5
5
  "type": "module",
6
6
  "license": "MIT",