react-better-html 1.1.183 → 1.1.185

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/index.d.mts CHANGED
@@ -942,6 +942,7 @@ type MenuItem = {
942
942
  };
943
943
  type SideMenuProps = {
944
944
  items: MenuItem[];
945
+ topSpace?: number;
945
946
  logoAssetName?: AssetName | AnyOtherString;
946
947
  logoUrl?: string;
947
948
  logoText?: string;
@@ -952,6 +953,7 @@ type SideMenuProps = {
952
953
  type SideMenuComponentType = {
953
954
  (props: SideMenuProps): React.ReactElement;
954
955
  pageHolder: (props: SideMenuPageHolderProps) => React.ReactElement;
956
+ burgerButton: () => React.ReactElement;
955
957
  };
956
958
  declare const SideMenuComponent: SideMenuComponentType;
957
959
  type SideMenuPageHolderProps = PageHolderProps & {
@@ -959,6 +961,7 @@ type SideMenuPageHolderProps = PageHolderProps & {
959
961
  };
960
962
  declare const SideMenu: typeof SideMenuComponent & {
961
963
  pageHolder: typeof SideMenuComponent.pageHolder;
964
+ burgerButton: typeof SideMenuComponent.burgerButton;
962
965
  };
963
966
 
964
967
  type AppConfig = {
@@ -1058,8 +1061,10 @@ declare const alertControls: {
1058
1061
  declare const sideMenuControls: {
1059
1062
  expand: () => void;
1060
1063
  collapse: () => void;
1064
+ toggleExpanded: () => void;
1061
1065
  open: () => void;
1062
1066
  close: () => void;
1067
+ toggleOpened: () => void;
1063
1068
  };
1064
1069
  declare const colorThemeControls: {
1065
1070
  toggleTheme: (theme?: ColorTheme) => void;
package/dist/index.d.ts CHANGED
@@ -942,6 +942,7 @@ type MenuItem = {
942
942
  };
943
943
  type SideMenuProps = {
944
944
  items: MenuItem[];
945
+ topSpace?: number;
945
946
  logoAssetName?: AssetName | AnyOtherString;
946
947
  logoUrl?: string;
947
948
  logoText?: string;
@@ -952,6 +953,7 @@ type SideMenuProps = {
952
953
  type SideMenuComponentType = {
953
954
  (props: SideMenuProps): React.ReactElement;
954
955
  pageHolder: (props: SideMenuPageHolderProps) => React.ReactElement;
956
+ burgerButton: () => React.ReactElement;
955
957
  };
956
958
  declare const SideMenuComponent: SideMenuComponentType;
957
959
  type SideMenuPageHolderProps = PageHolderProps & {
@@ -959,6 +961,7 @@ type SideMenuPageHolderProps = PageHolderProps & {
959
961
  };
960
962
  declare const SideMenu: typeof SideMenuComponent & {
961
963
  pageHolder: typeof SideMenuComponent.pageHolder;
964
+ burgerButton: typeof SideMenuComponent.burgerButton;
962
965
  };
963
966
 
964
967
  type AppConfig = {
@@ -1058,8 +1061,10 @@ declare const alertControls: {
1058
1061
  declare const sideMenuControls: {
1059
1062
  expand: () => void;
1060
1063
  collapse: () => void;
1064
+ toggleExpanded: () => void;
1061
1065
  open: () => void;
1062
1066
  close: () => void;
1067
+ toggleOpened: () => void;
1063
1068
  };
1064
1069
  declare const colorThemeControls: {
1065
1070
  toggleTheme: (theme?: ColorTheme) => void;
package/dist/index.js CHANGED
@@ -5605,6 +5605,10 @@ var sideMenuControls = {
5605
5605
  if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.collapse")) return;
5606
5606
  externalBetterHtmlContextValue.setSideMenuIsCollapsed.setTrue();
5607
5607
  },
5608
+ toggleExpanded: () => {
5609
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.toggleExpanded")) return;
5610
+ externalBetterHtmlContextValue.setSideMenuIsCollapsed.toggle();
5611
+ },
5608
5612
  open: () => {
5609
5613
  if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.open")) return;
5610
5614
  externalBetterHtmlContextValue.setSideMenuIsOpenMobile.setTrue();
@@ -5612,6 +5616,10 @@ var sideMenuControls = {
5612
5616
  close: () => {
5613
5617
  if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.close")) return;
5614
5618
  externalBetterHtmlContextValue.setSideMenuIsOpenMobile.setFalse();
5619
+ },
5620
+ toggleOpened: () => {
5621
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.toggleOpened")) return;
5622
+ externalBetterHtmlContextValue.setSideMenuIsOpenMobile.toggle();
5615
5623
  }
5616
5624
  };
5617
5625
  var colorThemeControls = {
@@ -9401,7 +9409,7 @@ var MenuItemComponent = (0, import_react29.memo)(function MenuItemComponent2({ i
9401
9409
  alignItems: "center",
9402
9410
  gap: iconGap,
9403
9411
  whiteSpace: "nowrap",
9404
- backgroundColor: isActive ? `${theme2.colors.primary}20` : theme2.colors.backgroundBase,
9412
+ backgroundColor: isActive ? colorTheme === "dark" ? lightenColor(theme2.colors.primary, 0.7) : lightenColor(theme2.colors.primary, 0.85) : theme2.colors.backgroundContent,
9405
9413
  borderRadius: theme2.styles.borderRadius,
9406
9414
  paddingBlock,
9407
9415
  paddingLeft: isCollapsed ? theme2.styles.space : paddingLeft,
@@ -9488,9 +9496,9 @@ var MenuItemComponent = (0, import_react29.memo)(function MenuItemComponent2({ i
9488
9496
  left: 0,
9489
9497
  border: `${lineWidth}px solid ${theme2.colors.border}`,
9490
9498
  borderRadius: 999,
9491
- borderTopColor: theme2.colors.backgroundBase,
9492
- borderLeftColor: theme2.colors.backgroundBase,
9493
- borderRightColor: theme2.colors.backgroundBase,
9499
+ borderTopColor: theme2.colors.backgroundContent,
9500
+ borderLeftColor: theme2.colors.backgroundContent,
9501
+ borderRightColor: theme2.colors.backgroundContent,
9494
9502
  transform: "rotate(45deg)"
9495
9503
  }
9496
9504
  )
@@ -9504,6 +9512,7 @@ var MenuItemComponent = (0, import_react29.memo)(function MenuItemComponent2({ i
9504
9512
  });
9505
9513
  var SideMenuComponent = function SideMenu({
9506
9514
  items,
9515
+ topSpace = 0,
9507
9516
  logoAssetName,
9508
9517
  logoUrl,
9509
9518
  logoText,
@@ -9528,8 +9537,10 @@ var SideMenuComponent = function SideMenu({
9528
9537
  {
9529
9538
  position: "fixed",
9530
9539
  width: mediaQuery.size1000 ? "100%" : isCollapsed ? sideMenuCollapsedWidth : sideMenuWidth,
9531
- height: "100svh",
9532
- backgroundColor: theme2.colors.backgroundBase,
9540
+ height: `calc(100svh - ${topSpace}px)`,
9541
+ top: topSpace,
9542
+ left: 0,
9543
+ backgroundColor: theme2.colors.backgroundContent,
9533
9544
  borderRight: `solid 1px ${theme2.colors.border}`,
9534
9545
  transform: !mediaQuery.size1000 || sideMenuIsOpenMobile ? "translateX(0)" : "translateX(-100%)",
9535
9546
  paddingInline: theme2.styles.space,
@@ -9583,7 +9594,7 @@ var SideMenuComponent = function SideMenu({
9583
9594
  {
9584
9595
  alignItems: "center",
9585
9596
  justifyContent: "center",
9586
- backgroundColor: theme2.colors.backgroundBase,
9597
+ backgroundColor: theme2.colors.backgroundContent,
9587
9598
  borderRadius: theme2.styles.borderRadius,
9588
9599
  marginTop: "auto",
9589
9600
  cursor: "pointer",
@@ -9610,7 +9621,7 @@ var SideMenuComponent = function SideMenu({
9610
9621
  position: "absolute",
9611
9622
  top: theme2.styles.space,
9612
9623
  left: "100%",
9613
- backgroundColor: theme2.colors.backgroundBase,
9624
+ backgroundColor: theme2.colors.backgroundContent,
9614
9625
  border: `solid 1px ${theme2.colors.border}`,
9615
9626
  borderLeft: "none",
9616
9627
  borderTopRightRadius: theme2.styles.borderRadius,
@@ -9660,8 +9671,73 @@ SideMenuComponent.pageHolder = function SideMenuPageHolder({ outsideComponent, .
9660
9671
  }
9661
9672
  );
9662
9673
  };
9674
+ SideMenuComponent.burgerButton = function BurgerButton() {
9675
+ const theme2 = useTheme();
9676
+ const { sideMenuIsOpenMobile, setSideMenuIsOpenMobile } = useBetterHtmlContextInternal();
9677
+ const [isHovered, setIsHovered] = useBooleanState();
9678
+ const width = 2;
9679
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
9680
+ Div_default,
9681
+ {
9682
+ position: "relative",
9683
+ width: 32,
9684
+ height: 20,
9685
+ cursor: "pointer",
9686
+ onMouseOver: setIsHovered.setTrue,
9687
+ onMouseLeave: setIsHovered.setFalse,
9688
+ onMouseOut: setIsHovered.setFalse,
9689
+ onClick: setSideMenuIsOpenMobile.toggle,
9690
+ children: [
9691
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
9692
+ Div_default,
9693
+ {
9694
+ position: "absolute",
9695
+ width: isHovered || sideMenuIsOpenMobile ? "100%" : "50%",
9696
+ height: width,
9697
+ top: sideMenuIsOpenMobile ? `calc(50% - ${width / 2}px)` : 0,
9698
+ left: 0,
9699
+ backgroundColor: theme2.colors.border,
9700
+ borderRadius: 999,
9701
+ transform: sideMenuIsOpenMobile ? "rotate(45deg)" : void 0,
9702
+ transition: theme2.styles.transition
9703
+ }
9704
+ ),
9705
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
9706
+ Div_default,
9707
+ {
9708
+ position: "absolute",
9709
+ width: isHovered ? "100%" : "100%",
9710
+ height: width,
9711
+ top: "50%",
9712
+ left: 0,
9713
+ backgroundColor: theme2.colors.border,
9714
+ borderRadius: 999,
9715
+ transform: "translateY(-50%)",
9716
+ opacity: sideMenuIsOpenMobile ? 0 : void 0,
9717
+ transition: theme2.styles.transition
9718
+ }
9719
+ ),
9720
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
9721
+ Div_default,
9722
+ {
9723
+ position: "absolute",
9724
+ width: isHovered || sideMenuIsOpenMobile ? "100%" : "75%",
9725
+ height: width,
9726
+ bottom: sideMenuIsOpenMobile ? `calc(50% - ${width / 2}px)` : 0,
9727
+ left: 0,
9728
+ backgroundColor: theme2.colors.border,
9729
+ borderRadius: 999,
9730
+ transform: sideMenuIsOpenMobile ? "rotate(-45deg)" : void 0,
9731
+ transition: theme2.styles.transition
9732
+ }
9733
+ )
9734
+ ]
9735
+ }
9736
+ );
9737
+ };
9663
9738
  var SideMenu2 = (0, import_react29.memo)(SideMenuComponent);
9664
9739
  SideMenu2.pageHolder = SideMenuComponent.pageHolder;
9740
+ SideMenu2.burgerButton = SideMenuComponent.burgerButton;
9665
9741
  var SideMenu_default = SideMenu2;
9666
9742
 
9667
9743
  // src/utils/localStorage.ts