@opensite/ui 3.3.2 → 3.3.3

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.
@@ -466,7 +466,7 @@ function HeroConversationIntelligence({
466
466
  imageSlot,
467
467
  background,
468
468
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
469
- spacing = "py-32 md:py-32",
469
+ spacing = "hero",
470
470
  pattern,
471
471
  patternOpacity,
472
472
  patternClassName,
@@ -519,7 +519,7 @@ function HeroConversationIntelligence({
519
519
  "div",
520
520
  {
521
521
  className: cn(
522
- "relative z-10 mx-auto flex max-w-220 flex-col gap-7",
522
+ "relative z-10 mx-auto flex max-w-full md:max-w-220 flex-col items-center gap-7",
523
523
  contentClassName
524
524
  ),
525
525
  children: [
@@ -542,7 +542,7 @@ function HeroConversationIntelligence({
542
542
  ),
543
543
  children: description
544
544
  }
545
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
545
+ ) : description),
546
546
  /* @__PURE__ */ jsxRuntime.jsx(
547
547
  BlockActions,
548
548
  {
@@ -460,7 +460,7 @@ function HeroConversationIntelligence({
460
460
  imageSlot,
461
461
  background,
462
462
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
463
- spacing = "py-32 md:py-32",
463
+ spacing = "hero",
464
464
  pattern,
465
465
  patternOpacity,
466
466
  patternClassName,
@@ -513,7 +513,7 @@ function HeroConversationIntelligence({
513
513
  "div",
514
514
  {
515
515
  className: cn(
516
- "relative z-10 mx-auto flex max-w-220 flex-col gap-7",
516
+ "relative z-10 mx-auto flex max-w-full md:max-w-220 flex-col items-center gap-7",
517
517
  contentClassName
518
518
  ),
519
519
  children: [
@@ -536,7 +536,7 @@ function HeroConversationIntelligence({
536
536
  ),
537
537
  children: description
538
538
  }
539
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
539
+ ) : description),
540
540
  /* @__PURE__ */ jsx(
541
541
  BlockActions,
542
542
  {
@@ -7,8 +7,8 @@ var tailwindMerge = require('tailwind-merge');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
  var react = require('motion/react');
9
9
  var img = require('@page-speed/img');
10
- var pressable = require('@page-speed/pressable');
11
10
  var integration = require('@page-speed/forms/integration');
11
+ var pressable = require('@page-speed/pressable');
12
12
 
13
13
  function _interopNamespace(e) {
14
14
  if (e && e.__esModule) return e;
@@ -616,6 +616,70 @@ function CardContent({ className, ...props }) {
616
616
  }
617
617
  );
618
618
  }
619
+ var MOBILE_CLASSES = {
620
+ "fit-left": "items-start md:items-center",
621
+ "fit-center": "items-center",
622
+ "fit-right": "items-end md:items-center",
623
+ "full-left": "items-stretch md:items-center",
624
+ "full-center": "items-stretch md:items-center",
625
+ "full-right": "items-stretch md:items-center"
626
+ };
627
+ function BlockActions({
628
+ mobileConfig,
629
+ actionsClassName,
630
+ verticalSpacing = "mt-4 md:mt-8",
631
+ actions,
632
+ actionsSlot
633
+ }) {
634
+ const width = mobileConfig?.width ?? "full";
635
+ const position = mobileConfig?.position ?? "center";
636
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
637
+ if (actionsSlot) {
638
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { children: actionsSlot });
639
+ } else if (actions && actions?.length > 0) {
640
+ return /* @__PURE__ */ jsxRuntime.jsx(
641
+ "div",
642
+ {
643
+ className: cn(
644
+ "flex flex-col md:flex-row flex-wrap gap-4",
645
+ mobileLayoutClass,
646
+ actionsClassName,
647
+ verticalSpacing
648
+ ),
649
+ children: actions.map((action, index) => /* @__PURE__ */ jsxRuntime.jsx(ActionComponent, { action }, index))
650
+ }
651
+ );
652
+ } else {
653
+ return null;
654
+ }
655
+ }
656
+ function ActionComponent({ action }) {
657
+ const {
658
+ label,
659
+ icon,
660
+ iconAfter,
661
+ children,
662
+ href,
663
+ onClick,
664
+ className: actionClassName,
665
+ ...pressableProps
666
+ } = action;
667
+ return /* @__PURE__ */ jsxRuntime.jsx(
668
+ pressable.Pressable,
669
+ {
670
+ href,
671
+ onClick,
672
+ asButton: action.asButton ?? true,
673
+ className: actionClassName,
674
+ ...pressableProps,
675
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
676
+ icon,
677
+ label,
678
+ iconAfter
679
+ ] })
680
+ }
681
+ );
682
+ }
619
683
  var DEFAULT_STYLE_RULES = {
620
684
  formContainer: "",
621
685
  fieldsContainer: "",
@@ -688,36 +752,6 @@ function HeroImageSlider({
688
752
  privacyNoticeClassName,
689
753
  gridClassName
690
754
  }) {
691
- const renderActions = React3.useMemo(() => {
692
- if (actionsSlot) return actionsSlot;
693
- if (!actions || actions.length === 0) return null;
694
- return actions.map((action, index) => {
695
- const {
696
- label,
697
- icon,
698
- iconAfter,
699
- children,
700
- className: actionClassName,
701
- asButton,
702
- ...pressableProps
703
- } = action;
704
- return /* @__PURE__ */ jsxRuntime.jsx(
705
- pressable.Pressable,
706
- {
707
- asButton: asButton ?? false,
708
- variant: "link",
709
- className: cn("text-primary p-0 h-auto", actionClassName),
710
- ...pressableProps,
711
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
712
- icon,
713
- label,
714
- iconAfter
715
- ] })
716
- },
717
- index
718
- );
719
- });
720
- }, [actionsSlot, actions]);
721
755
  const renderContent = React3.useMemo(() => {
722
756
  if (contentSlot) return contentSlot;
723
757
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -758,16 +792,14 @@ function HeroImageSlider({
758
792
  children: description
759
793
  }
760
794
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description }) : null,
761
- actionsSlot || actions && actions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
762
- "div",
795
+ /* @__PURE__ */ jsxRuntime.jsx(
796
+ BlockActions,
763
797
  {
764
- className: cn(
765
- "mt-6 flex flex-col items-start gap-3 sm:flex-row",
766
- actionsClassName
767
- ),
768
- children: renderActions
798
+ actions,
799
+ actionsSlot,
800
+ actionsClassName
769
801
  }
770
- ) : null
802
+ )
771
803
  ]
772
804
  }
773
805
  );
@@ -782,8 +814,7 @@ function HeroImageSlider({
782
814
  eyebrowClassName,
783
815
  headingClassName,
784
816
  descriptionClassName,
785
- actionsClassName,
786
- renderActions
817
+ actionsClassName
787
818
  ]);
788
819
  const hasForm = formEngineSetup !== void 0;
789
820
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -811,7 +842,7 @@ function HeroImageSlider({
811
842
  "bg-linear-to-r from-black/70 via-black/50 to-black/30",
812
843
  overlayClassName
813
844
  ),
814
- className: "min-h-full w-full rounded-none border-none shadow-none",
845
+ className: "min-h-full w-full rounded-none md:rounded-2xl border-none shadow-none md:shadow-xl overflow-hidden",
815
846
  imageClassName: cn("scale-[1.02]", imageClassName),
816
847
  optixFlowConfig
817
848
  }
@@ -6,8 +6,8 @@ import { twMerge } from 'tailwind-merge';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
  import { AnimatePresence, motion } from 'motion/react';
8
8
  import { Img } from '@page-speed/img';
9
- import { Pressable } from '@page-speed/pressable';
10
9
  import { FormEngine } from '@page-speed/forms/integration';
10
+ import { Pressable } from '@page-speed/pressable';
11
11
 
12
12
  // components/blocks/hero/hero-image-slider.tsx
13
13
  function cn(...inputs) {
@@ -595,6 +595,70 @@ function CardContent({ className, ...props }) {
595
595
  }
596
596
  );
597
597
  }
598
+ var MOBILE_CLASSES = {
599
+ "fit-left": "items-start md:items-center",
600
+ "fit-center": "items-center",
601
+ "fit-right": "items-end md:items-center",
602
+ "full-left": "items-stretch md:items-center",
603
+ "full-center": "items-stretch md:items-center",
604
+ "full-right": "items-stretch md:items-center"
605
+ };
606
+ function BlockActions({
607
+ mobileConfig,
608
+ actionsClassName,
609
+ verticalSpacing = "mt-4 md:mt-8",
610
+ actions,
611
+ actionsSlot
612
+ }) {
613
+ const width = mobileConfig?.width ?? "full";
614
+ const position = mobileConfig?.position ?? "center";
615
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
616
+ if (actionsSlot) {
617
+ return /* @__PURE__ */ jsx("div", { children: actionsSlot });
618
+ } else if (actions && actions?.length > 0) {
619
+ return /* @__PURE__ */ jsx(
620
+ "div",
621
+ {
622
+ className: cn(
623
+ "flex flex-col md:flex-row flex-wrap gap-4",
624
+ mobileLayoutClass,
625
+ actionsClassName,
626
+ verticalSpacing
627
+ ),
628
+ children: actions.map((action, index) => /* @__PURE__ */ jsx(ActionComponent, { action }, index))
629
+ }
630
+ );
631
+ } else {
632
+ return null;
633
+ }
634
+ }
635
+ function ActionComponent({ action }) {
636
+ const {
637
+ label,
638
+ icon,
639
+ iconAfter,
640
+ children,
641
+ href,
642
+ onClick,
643
+ className: actionClassName,
644
+ ...pressableProps
645
+ } = action;
646
+ return /* @__PURE__ */ jsx(
647
+ Pressable,
648
+ {
649
+ href,
650
+ onClick,
651
+ asButton: action.asButton ?? true,
652
+ className: actionClassName,
653
+ ...pressableProps,
654
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
655
+ icon,
656
+ label,
657
+ iconAfter
658
+ ] })
659
+ }
660
+ );
661
+ }
598
662
  var DEFAULT_STYLE_RULES = {
599
663
  formContainer: "",
600
664
  fieldsContainer: "",
@@ -667,36 +731,6 @@ function HeroImageSlider({
667
731
  privacyNoticeClassName,
668
732
  gridClassName
669
733
  }) {
670
- const renderActions = useMemo(() => {
671
- if (actionsSlot) return actionsSlot;
672
- if (!actions || actions.length === 0) return null;
673
- return actions.map((action, index) => {
674
- const {
675
- label,
676
- icon,
677
- iconAfter,
678
- children,
679
- className: actionClassName,
680
- asButton,
681
- ...pressableProps
682
- } = action;
683
- return /* @__PURE__ */ jsx(
684
- Pressable,
685
- {
686
- asButton: asButton ?? false,
687
- variant: "link",
688
- className: cn("text-primary p-0 h-auto", actionClassName),
689
- ...pressableProps,
690
- children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
691
- icon,
692
- label,
693
- iconAfter
694
- ] })
695
- },
696
- index
697
- );
698
- });
699
- }, [actionsSlot, actions]);
700
734
  const renderContent = useMemo(() => {
701
735
  if (contentSlot) return contentSlot;
702
736
  return /* @__PURE__ */ jsxs(
@@ -737,16 +771,14 @@ function HeroImageSlider({
737
771
  children: description
738
772
  }
739
773
  ) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description }) : null,
740
- actionsSlot || actions && actions.length > 0 ? /* @__PURE__ */ jsx(
741
- "div",
774
+ /* @__PURE__ */ jsx(
775
+ BlockActions,
742
776
  {
743
- className: cn(
744
- "mt-6 flex flex-col items-start gap-3 sm:flex-row",
745
- actionsClassName
746
- ),
747
- children: renderActions
777
+ actions,
778
+ actionsSlot,
779
+ actionsClassName
748
780
  }
749
- ) : null
781
+ )
750
782
  ]
751
783
  }
752
784
  );
@@ -761,8 +793,7 @@ function HeroImageSlider({
761
793
  eyebrowClassName,
762
794
  headingClassName,
763
795
  descriptionClassName,
764
- actionsClassName,
765
- renderActions
796
+ actionsClassName
766
797
  ]);
767
798
  const hasForm = formEngineSetup !== void 0;
768
799
  return /* @__PURE__ */ jsxs(
@@ -790,7 +821,7 @@ function HeroImageSlider({
790
821
  "bg-linear-to-r from-black/70 via-black/50 to-black/30",
791
822
  overlayClassName
792
823
  ),
793
- className: "min-h-full w-full rounded-none border-none shadow-none",
824
+ className: "min-h-full w-full rounded-none md:rounded-2xl border-none shadow-none md:shadow-xl overflow-hidden",
794
825
  imageClassName: cn("scale-[1.02]", imageClassName),
795
826
  optixFlowConfig
796
827
  }
package/dist/registry.cjs CHANGED
@@ -50055,36 +50055,6 @@ function HeroImageSlider({
50055
50055
  privacyNoticeClassName,
50056
50056
  gridClassName
50057
50057
  }) {
50058
- const renderActions = React30.useMemo(() => {
50059
- if (actionsSlot) return actionsSlot;
50060
- if (!actions || actions.length === 0) return null;
50061
- return actions.map((action, index) => {
50062
- const {
50063
- label,
50064
- icon,
50065
- iconAfter,
50066
- children,
50067
- className: actionClassName,
50068
- asButton,
50069
- ...pressableProps
50070
- } = action;
50071
- return /* @__PURE__ */ jsxRuntime.jsx(
50072
- pressable.Pressable,
50073
- {
50074
- asButton: asButton ?? false,
50075
- variant: "link",
50076
- className: cn("text-primary p-0 h-auto", actionClassName),
50077
- ...pressableProps,
50078
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
50079
- icon,
50080
- label,
50081
- iconAfter
50082
- ] })
50083
- },
50084
- index
50085
- );
50086
- });
50087
- }, [actionsSlot, actions]);
50088
50058
  const renderContent = React30.useMemo(() => {
50089
50059
  if (contentSlot) return contentSlot;
50090
50060
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -50125,16 +50095,14 @@ function HeroImageSlider({
50125
50095
  children: description
50126
50096
  }
50127
50097
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description }) : null,
50128
- actionsSlot || actions && actions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
50129
- "div",
50098
+ /* @__PURE__ */ jsxRuntime.jsx(
50099
+ BlockActions,
50130
50100
  {
50131
- className: cn(
50132
- "mt-6 flex flex-col items-start gap-3 sm:flex-row",
50133
- actionsClassName
50134
- ),
50135
- children: renderActions
50101
+ actions,
50102
+ actionsSlot,
50103
+ actionsClassName
50136
50104
  }
50137
- ) : null
50105
+ )
50138
50106
  ]
50139
50107
  }
50140
50108
  );
@@ -50149,8 +50117,7 @@ function HeroImageSlider({
50149
50117
  eyebrowClassName,
50150
50118
  headingClassName,
50151
50119
  descriptionClassName,
50152
- actionsClassName,
50153
- renderActions
50120
+ actionsClassName
50154
50121
  ]);
50155
50122
  const hasForm = formEngineSetup !== void 0;
50156
50123
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -50178,7 +50145,7 @@ function HeroImageSlider({
50178
50145
  "bg-linear-to-r from-black/70 via-black/50 to-black/30",
50179
50146
  overlayClassName
50180
50147
  ),
50181
- className: "min-h-full w-full rounded-none border-none shadow-none",
50148
+ className: "min-h-full w-full rounded-none md:rounded-2xl border-none shadow-none md:shadow-xl overflow-hidden",
50182
50149
  imageClassName: cn("scale-[1.02]", imageClassName),
50183
50150
  optixFlowConfig
50184
50151
  }
@@ -59547,7 +59514,7 @@ function HeroConversationIntelligence({
59547
59514
  imageSlot,
59548
59515
  background,
59549
59516
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
59550
- spacing = "py-32 md:py-32",
59517
+ spacing = "hero",
59551
59518
  pattern,
59552
59519
  patternOpacity,
59553
59520
  patternClassName,
@@ -59600,7 +59567,7 @@ function HeroConversationIntelligence({
59600
59567
  "div",
59601
59568
  {
59602
59569
  className: cn(
59603
- "relative z-10 mx-auto flex max-w-220 flex-col gap-7",
59570
+ "relative z-10 mx-auto flex max-w-full md:max-w-220 flex-col items-center gap-7",
59604
59571
  contentClassName
59605
59572
  ),
59606
59573
  children: [
@@ -59623,7 +59590,7 @@ function HeroConversationIntelligence({
59623
59590
  ),
59624
59591
  children: description
59625
59592
  }
59626
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
59593
+ ) : description),
59627
59594
  /* @__PURE__ */ jsxRuntime.jsx(
59628
59595
  BlockActions,
59629
59596
  {
package/dist/registry.js CHANGED
@@ -50015,36 +50015,6 @@ function HeroImageSlider({
50015
50015
  privacyNoticeClassName,
50016
50016
  gridClassName
50017
50017
  }) {
50018
- const renderActions = useMemo(() => {
50019
- if (actionsSlot) return actionsSlot;
50020
- if (!actions || actions.length === 0) return null;
50021
- return actions.map((action, index) => {
50022
- const {
50023
- label,
50024
- icon,
50025
- iconAfter,
50026
- children,
50027
- className: actionClassName,
50028
- asButton,
50029
- ...pressableProps
50030
- } = action;
50031
- return /* @__PURE__ */ jsx(
50032
- Pressable,
50033
- {
50034
- asButton: asButton ?? false,
50035
- variant: "link",
50036
- className: cn("text-primary p-0 h-auto", actionClassName),
50037
- ...pressableProps,
50038
- children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
50039
- icon,
50040
- label,
50041
- iconAfter
50042
- ] })
50043
- },
50044
- index
50045
- );
50046
- });
50047
- }, [actionsSlot, actions]);
50048
50018
  const renderContent = useMemo(() => {
50049
50019
  if (contentSlot) return contentSlot;
50050
50020
  return /* @__PURE__ */ jsxs(
@@ -50085,16 +50055,14 @@ function HeroImageSlider({
50085
50055
  children: description
50086
50056
  }
50087
50057
  ) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description }) : null,
50088
- actionsSlot || actions && actions.length > 0 ? /* @__PURE__ */ jsx(
50089
- "div",
50058
+ /* @__PURE__ */ jsx(
50059
+ BlockActions,
50090
50060
  {
50091
- className: cn(
50092
- "mt-6 flex flex-col items-start gap-3 sm:flex-row",
50093
- actionsClassName
50094
- ),
50095
- children: renderActions
50061
+ actions,
50062
+ actionsSlot,
50063
+ actionsClassName
50096
50064
  }
50097
- ) : null
50065
+ )
50098
50066
  ]
50099
50067
  }
50100
50068
  );
@@ -50109,8 +50077,7 @@ function HeroImageSlider({
50109
50077
  eyebrowClassName,
50110
50078
  headingClassName,
50111
50079
  descriptionClassName,
50112
- actionsClassName,
50113
- renderActions
50080
+ actionsClassName
50114
50081
  ]);
50115
50082
  const hasForm = formEngineSetup !== void 0;
50116
50083
  return /* @__PURE__ */ jsxs(
@@ -50138,7 +50105,7 @@ function HeroImageSlider({
50138
50105
  "bg-linear-to-r from-black/70 via-black/50 to-black/30",
50139
50106
  overlayClassName
50140
50107
  ),
50141
- className: "min-h-full w-full rounded-none border-none shadow-none",
50108
+ className: "min-h-full w-full rounded-none md:rounded-2xl border-none shadow-none md:shadow-xl overflow-hidden",
50142
50109
  imageClassName: cn("scale-[1.02]", imageClassName),
50143
50110
  optixFlowConfig
50144
50111
  }
@@ -59507,7 +59474,7 @@ function HeroConversationIntelligence({
59507
59474
  imageSlot,
59508
59475
  background,
59509
59476
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
59510
- spacing = "py-32 md:py-32",
59477
+ spacing = "hero",
59511
59478
  pattern,
59512
59479
  patternOpacity,
59513
59480
  patternClassName,
@@ -59560,7 +59527,7 @@ function HeroConversationIntelligence({
59560
59527
  "div",
59561
59528
  {
59562
59529
  className: cn(
59563
- "relative z-10 mx-auto flex max-w-220 flex-col gap-7",
59530
+ "relative z-10 mx-auto flex max-w-full md:max-w-220 flex-col items-center gap-7",
59564
59531
  contentClassName
59565
59532
  ),
59566
59533
  children: [
@@ -59583,7 +59550,7 @@ function HeroConversationIntelligence({
59583
59550
  ),
59584
59551
  children: description
59585
59552
  }
59586
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
59553
+ ) : description),
59587
59554
  /* @__PURE__ */ jsx(
59588
59555
  BlockActions,
59589
59556
  {
@@ -77,6 +77,6 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
77
77
  * />
78
78
  * ```
79
79
  */
80
- declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement | HTMLSpanElement>>;
80
+ declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement>>;
81
81
 
82
82
  export { SocialLinkIcon, type SocialLinkIconDynamicIconProps, type SocialLinkIconProps };
@@ -77,6 +77,6 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
77
77
  * />
78
78
  * ```
79
79
  */
80
- declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement | HTMLSpanElement>>;
80
+ declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement>>;
81
81
 
82
82
  export { SocialLinkIcon, type SocialLinkIconDynamicIconProps, type SocialLinkIconProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "3.3.2",
3
+ "version": "3.3.3",
4
4
  "description": "Foundational UI component library for OpenSite Semantic Site Builder with tree-shakable exports and abstract styling",
5
5
  "keywords": [
6
6
  "react",