@sikka/hawa 0.36.0-next → 0.36.2-next

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.mjs CHANGED
@@ -1727,7 +1727,7 @@ var DialogContent = React14.forwardRef(({ className, children, persist, hideClos
1727
1727
  },
1728
1728
  ref,
1729
1729
  className: cn(
1730
- "hawa-fixed hawa-left-[50%] hawa-top-[50%] hawa-z-50 hawa-grid hawa-w-full hawa-max-w-lg hawa-translate-x-[-50%] hawa-translate-y-[-50%] hawa-gap-4 hawa-border hawa-bg-background hawa-p-6 hawa-shadow-lg hawa-transition-all hawa-duration-200 data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[state=closed]:hawa-slide-out-to-left-1/2 data-[state=closed]:hawa-slide-out-to-top-[48%] data-[state=open]:hawa-slide-in-from-left-1/2 data-[state=open]:hawa-slide-in-from-top-[48%] hawa-rounded md:hawa-w-full",
1730
+ "hawa-fixed hawa-left-[50%] hawa-top-[50%] hawa-z-50 hawa-grid hawa-w-[90%] hawa-max-w-lg hawa-translate-x-[-50%] hawa-translate-y-[-50%] hawa-gap-4 hawa-border hawa-bg-background hawa-p-6 hawa-shadow-lg hawa-transition-all hawa-duration-200 data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0 data-[state=closed]:hawa-zoom-out-95 data-[state=open]:hawa-zoom-in-95 data-[state=closed]:hawa-slide-out-to-left-1/2 data-[state=closed]:hawa-slide-out-to-top-[48%] data-[state=open]:hawa-slide-in-from-left-1/2 data-[state=open]:hawa-slide-in-from-top-[48%] hawa-rounded md:hawa-w-full",
1731
1731
  className
1732
1732
  ),
1733
1733
  ...props
@@ -2685,7 +2685,7 @@ TableHeader.displayName = "TableHeader";
2685
2685
  TableCaption.displayName = "TableCaption";
2686
2686
 
2687
2687
  // elements/dataTable/DataTable.tsx
2688
- var LOCAL_STORAGE_KEY = "datatable-column-visibility";
2688
+ var LOCAL_STORAGE_KEY = "@sikka/hawa/data-table-columns";
2689
2689
  var DataTable = ({
2690
2690
  columns,
2691
2691
  data,
@@ -9014,6 +9014,8 @@ var Navbar = ({
9014
9014
 
9015
9015
  // layout/appLayout/AppLayout.tsx
9016
9016
  import React76, { useEffect as useEffect29, useState as useState36 } from "react";
9017
+ import * as Dialog2 from "@radix-ui/react-dialog";
9018
+ var LOCAL_STORAGE_KEY2 = "@sikka/hawa/keep-drawer-open";
9017
9019
  var AppLayout = ({
9018
9020
  profileMenuWidth = "default",
9019
9021
  DrawerFooterActions,
@@ -9024,14 +9026,18 @@ var AppLayout = ({
9024
9026
  drawerSize = "md",
9025
9027
  currentPage,
9026
9028
  clickedItem,
9027
- setKeepOpen,
9028
- keepOpen,
9029
9029
  DrawerLinkComponent,
9030
9030
  MenuLinkComponent,
9031
9031
  onAvatarClick,
9032
9032
  ...props
9033
9033
  }) => {
9034
9034
  var _a, _b;
9035
+ useEffect29(() => {
9036
+ let isDrawerOpen = localStorage.getItem(LOCAL_STORAGE_KEY2);
9037
+ if (isDrawerOpen === null) {
9038
+ localStorage.setItem(LOCAL_STORAGE_KEY2, JSON.stringify(false));
9039
+ }
9040
+ }, []);
9035
9041
  let closeDrawerWidth = 56;
9036
9042
  let openDrawerWidth = 200;
9037
9043
  let drawerSizeStyle = {
@@ -9047,8 +9053,15 @@ var AppLayout = ({
9047
9053
  const [size, setSize] = useState36(
9048
9054
  typeof window !== "undefined" && window.innerWidth || 1200
9049
9055
  );
9050
- const [openSideMenu, setOpenSideMenu] = useState36(true);
9051
- const [keepDrawerOpen, setKeepDrawerOpen] = useState36(keepOpen);
9056
+ const [openSideMenu, setOpenSideMenu] = useState36(() => {
9057
+ const savedState = localStorage.getItem(LOCAL_STORAGE_KEY2);
9058
+ return savedState ? JSON.parse(savedState) : false;
9059
+ });
9060
+ const [container, setContainer] = React76.useState(null);
9061
+ const [keepDrawerOpen, setKeepDrawerOpen] = useState36(() => {
9062
+ const savedState = localStorage.getItem(LOCAL_STORAGE_KEY2);
9063
+ return savedState ? JSON.parse(savedState) : false;
9064
+ });
9052
9065
  const handleClickOutside = () => {
9053
9066
  if (typeof window !== "undefined") {
9054
9067
  if (window.innerWidth < 600) {
@@ -9064,6 +9077,8 @@ var AppLayout = ({
9064
9077
  setSize(window.innerWidth);
9065
9078
  if (window.innerWidth > 600) {
9066
9079
  setKeepDrawerOpen(false);
9080
+ } else {
9081
+ localStorage.setItem(LOCAL_STORAGE_KEY2, JSON.stringify(false));
9067
9082
  }
9068
9083
  };
9069
9084
  resize();
@@ -9074,12 +9089,16 @@ var AppLayout = ({
9074
9089
  }
9075
9090
  }, []);
9076
9091
  useEffect29(() => {
9077
- setKeepDrawerOpen(keepOpen);
9078
- }, [setKeepOpen]);
9092
+ setKeepDrawerOpen(() => {
9093
+ const savedState = localStorage.getItem(LOCAL_STORAGE_KEY2);
9094
+ return savedState ? JSON.parse(savedState) : true;
9095
+ });
9096
+ }, [setKeepDrawerOpen]);
9079
9097
  useEffect29(() => {
9080
9098
  if (size > 600) {
9081
9099
  setOpenSideMenu(keepDrawerOpen);
9082
9100
  } else {
9101
+ setKeepDrawerOpen(false);
9083
9102
  setOpenSideMenu(false);
9084
9103
  }
9085
9104
  }, [size, keepDrawerOpen]);
@@ -9089,7 +9108,7 @@ var AppLayout = ({
9089
9108
  {
9090
9109
  dir: direction,
9091
9110
  className: cn(
9092
- "hawa-fixed hawa-end-0 hawa-start-0 hawa-top-0 hawa-z-0 hawa-flex hawa-h-14 hawa-w-full hawa-items-center hawa-justify-between hawa-bg-primary-foreground hawa-p-2",
9111
+ "hawa-fixed hawa-end-0 hawa-start-0 hawa-top-0 hawa-z-10 hawa-flex hawa-h-14 hawa-w-full hawa-items-center hawa-justify-between hawa-bg-primary-foreground hawa-p-2",
9093
9112
  bordered && "hawa-border-b-[1px]"
9094
9113
  )
9095
9114
  },
@@ -9117,7 +9136,7 @@ var AppLayout = ({
9117
9136
  "div",
9118
9137
  {
9119
9138
  onClick: () => setOpenSideMenu(true),
9120
- className: "hawa-z-40 hawa-mx-1 hawa-cursor-pointer hawa-rounded hawa-p-2 hawa-transition-all hover:hawa-bg-gray-100"
9139
+ className: "hawa-z-40 hawa-mx-1 hawa-cursor-pointer hawa-rounded hawa-p-2 hawa-transition-all "
9121
9140
  },
9122
9141
  /* @__PURE__ */ React76.createElement(MenuIcon, null)
9123
9142
  ),
@@ -9162,13 +9181,13 @@ var AppLayout = ({
9162
9181
  )
9163
9182
  }
9164
9183
  ))
9165
- ), /* @__PURE__ */ React76.createElement(
9184
+ ), /* @__PURE__ */ React76.createElement("div", { ref: setContainer }, /* @__PURE__ */ React76.createElement(
9166
9185
  "div",
9167
9186
  {
9168
9187
  className: cn(
9169
- "hawa-fixed hawa-z-0 hawa-flex hawa-flex-col hawa-justify-between hawa-overflow-x-clip hawa-transition-all hawa-top-0 hawa-h-[calc(100dvh)] hawa-bg-primary-foreground",
9188
+ "hawa-fixed hawa-z-40 hawa-flex hawa-flex-col hawa-justify-between hawa-overflow-x-clip hawa-transition-all hawa-top-0 hawa-h-[calc(100dvh)] hawa-bg-primary-foreground",
9170
9189
  isRTL ? "hawa-right-0" : "hawa-left-0",
9171
- bordered ? direction === "rtl" ? "hawa-border-s-[1px]" : "hawa-border-e-[1px]" : ""
9190
+ bordered ? size > 600 ? direction === "rtl" ? "hawa-border-s-[1px]" : "hawa-border-e-[1px]" : "" : ""
9172
9191
  ),
9173
9192
  style: {
9174
9193
  width: size > 600 ? openSideMenu ? `${drawerSizeStyle["opened"][drawerSize]}px` : `${drawerSizeStyle["closed"][drawerSize]}px` : openSideMenu ? `${drawerSizeStyle["opened"][drawerSize]}px` : "0px"
@@ -9279,9 +9298,10 @@ var AppLayout = ({
9279
9298
  size: "smallIcon",
9280
9299
  onClick: () => {
9281
9300
  const newKeepOpenState = !keepDrawerOpen;
9282
- if (props.onDrawerExpand) {
9283
- props.onDrawerExpand(newKeepOpenState);
9284
- }
9301
+ localStorage.setItem(
9302
+ LOCAL_STORAGE_KEY2,
9303
+ JSON.stringify(newKeepOpenState)
9304
+ );
9285
9305
  setKeepDrawerOpen(newKeepOpenState);
9286
9306
  }
9287
9307
  },
@@ -9307,10 +9327,17 @@ var AppLayout = ({
9307
9327
  )
9308
9328
  ) : null
9309
9329
  )
9330
+ )), /* @__PURE__ */ React76.createElement(
9331
+ Dialog2.Root,
9332
+ {
9333
+ open: size < 600 && openSideMenu,
9334
+ onOpenChange: setOpenSideMenu
9335
+ },
9336
+ /* @__PURE__ */ React76.createElement(Dialog2.Portal, { container }, /* @__PURE__ */ React76.createElement(Dialog2.Overlay, { className: "hawa-fixed hawa-inset-0 hawa-bg-foreground/80 hawa-backdrop-blur-sm data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out hawa-z-10 data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0" }))
9310
9337
  ), /* @__PURE__ */ React76.createElement(
9311
9338
  "div",
9312
9339
  {
9313
- className: "hawa-fixed -hawa-z-10 hawa-overflow-y-auto hawa-transition-all",
9340
+ className: "hawa-fixed hawa-overflow-y-auto hawa-transition-all hawa-z-0",
9314
9341
  style: isRTL ? {
9315
9342
  left: "0px",
9316
9343
  top: props.topBar ? "56px" : "0px",
@@ -141,12 +141,6 @@ type AppLayoutTypes$1 = {
141
141
  * - 'parent': Inherits width from parent element.
142
142
  */
143
143
  profileMenuWidth?: "default" | "sm" | "lg" | "parent";
144
- /** Event handler for drawer expansion. */
145
- onDrawerExpand?: (e: any) => void;
146
- /** Specifies whether to keep the drawer open. */
147
- keepOpen: boolean;
148
- /** The method used to control whether the drawer is expanded or not. */
149
- setKeepOpen: (value: boolean) => void;
150
144
  /** Specifies additional actions for the drawer footer. */
151
145
  DrawerFooterActions?: any;
152
146
  /** Specifies the item that was clicked. */
@@ -141,12 +141,6 @@ type AppLayoutTypes$1 = {
141
141
  * - 'parent': Inherits width from parent element.
142
142
  */
143
143
  profileMenuWidth?: "default" | "sm" | "lg" | "parent";
144
- /** Event handler for drawer expansion. */
145
- onDrawerExpand?: (e: any) => void;
146
- /** Specifies whether to keep the drawer open. */
147
- keepOpen: boolean;
148
- /** The method used to control whether the drawer is expanded or not. */
149
- setKeepOpen: (value: boolean) => void;
150
144
  /** Specifies additional actions for the drawer footer. */
151
145
  DrawerFooterActions?: any;
152
146
  /** Specifies the item that was clicked. */
@@ -686,6 +686,9 @@ function useClickOutside(handler, events, nodes) {
686
686
  return ref;
687
687
  }
688
688
 
689
+ // layout/appLayout/AppLayout.tsx
690
+ var Dialog = __toESM(require("@radix-ui/react-dialog"));
691
+
689
692
  // elements/button/Button.tsx
690
693
  var React12 = __toESM(require("react"));
691
694
  var import_class_variance_authority = require("class-variance-authority");
@@ -1517,6 +1520,7 @@ var MenuIcon = () => /* @__PURE__ */ import_react13.default.createElement(
1517
1520
  );
1518
1521
 
1519
1522
  // layout/appLayout/AppLayout.tsx
1523
+ var LOCAL_STORAGE_KEY = "@sikka/hawa/keep-drawer-open";
1520
1524
  var AppLayout = ({
1521
1525
  profileMenuWidth = "default",
1522
1526
  DrawerFooterActions,
@@ -1527,14 +1531,18 @@ var AppLayout = ({
1527
1531
  drawerSize = "md",
1528
1532
  currentPage,
1529
1533
  clickedItem,
1530
- setKeepOpen,
1531
- keepOpen,
1532
1534
  DrawerLinkComponent,
1533
1535
  MenuLinkComponent,
1534
1536
  onAvatarClick,
1535
1537
  ...props
1536
1538
  }) => {
1537
1539
  var _a, _b;
1540
+ (0, import_react14.useEffect)(() => {
1541
+ let isDrawerOpen = localStorage.getItem(LOCAL_STORAGE_KEY);
1542
+ if (isDrawerOpen === null) {
1543
+ localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(false));
1544
+ }
1545
+ }, []);
1538
1546
  let closeDrawerWidth = 56;
1539
1547
  let openDrawerWidth = 200;
1540
1548
  let drawerSizeStyle = {
@@ -1550,8 +1558,15 @@ var AppLayout = ({
1550
1558
  const [size, setSize] = (0, import_react14.useState)(
1551
1559
  typeof window !== "undefined" && window.innerWidth || 1200
1552
1560
  );
1553
- const [openSideMenu, setOpenSideMenu] = (0, import_react14.useState)(true);
1554
- const [keepDrawerOpen, setKeepDrawerOpen] = (0, import_react14.useState)(keepOpen);
1561
+ const [openSideMenu, setOpenSideMenu] = (0, import_react14.useState)(() => {
1562
+ const savedState = localStorage.getItem(LOCAL_STORAGE_KEY);
1563
+ return savedState ? JSON.parse(savedState) : false;
1564
+ });
1565
+ const [container, setContainer] = import_react14.default.useState(null);
1566
+ const [keepDrawerOpen, setKeepDrawerOpen] = (0, import_react14.useState)(() => {
1567
+ const savedState = localStorage.getItem(LOCAL_STORAGE_KEY);
1568
+ return savedState ? JSON.parse(savedState) : false;
1569
+ });
1555
1570
  const handleClickOutside = () => {
1556
1571
  if (typeof window !== "undefined") {
1557
1572
  if (window.innerWidth < 600) {
@@ -1567,6 +1582,8 @@ var AppLayout = ({
1567
1582
  setSize(window.innerWidth);
1568
1583
  if (window.innerWidth > 600) {
1569
1584
  setKeepDrawerOpen(false);
1585
+ } else {
1586
+ localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(false));
1570
1587
  }
1571
1588
  };
1572
1589
  resize();
@@ -1577,12 +1594,16 @@ var AppLayout = ({
1577
1594
  }
1578
1595
  }, []);
1579
1596
  (0, import_react14.useEffect)(() => {
1580
- setKeepDrawerOpen(keepOpen);
1581
- }, [setKeepOpen]);
1597
+ setKeepDrawerOpen(() => {
1598
+ const savedState = localStorage.getItem(LOCAL_STORAGE_KEY);
1599
+ return savedState ? JSON.parse(savedState) : true;
1600
+ });
1601
+ }, [setKeepDrawerOpen]);
1582
1602
  (0, import_react14.useEffect)(() => {
1583
1603
  if (size > 600) {
1584
1604
  setOpenSideMenu(keepDrawerOpen);
1585
1605
  } else {
1606
+ setKeepDrawerOpen(false);
1586
1607
  setOpenSideMenu(false);
1587
1608
  }
1588
1609
  }, [size, keepDrawerOpen]);
@@ -1592,7 +1613,7 @@ var AppLayout = ({
1592
1613
  {
1593
1614
  dir: direction,
1594
1615
  className: cn(
1595
- "hawa-fixed hawa-end-0 hawa-start-0 hawa-top-0 hawa-z-0 hawa-flex hawa-h-14 hawa-w-full hawa-items-center hawa-justify-between hawa-bg-primary-foreground hawa-p-2",
1616
+ "hawa-fixed hawa-end-0 hawa-start-0 hawa-top-0 hawa-z-10 hawa-flex hawa-h-14 hawa-w-full hawa-items-center hawa-justify-between hawa-bg-primary-foreground hawa-p-2",
1596
1617
  bordered && "hawa-border-b-[1px]"
1597
1618
  )
1598
1619
  },
@@ -1620,7 +1641,7 @@ var AppLayout = ({
1620
1641
  "div",
1621
1642
  {
1622
1643
  onClick: () => setOpenSideMenu(true),
1623
- className: "hawa-z-40 hawa-mx-1 hawa-cursor-pointer hawa-rounded hawa-p-2 hawa-transition-all hover:hawa-bg-gray-100"
1644
+ className: "hawa-z-40 hawa-mx-1 hawa-cursor-pointer hawa-rounded hawa-p-2 hawa-transition-all "
1624
1645
  },
1625
1646
  /* @__PURE__ */ import_react14.default.createElement(MenuIcon, null)
1626
1647
  ),
@@ -1665,13 +1686,13 @@ var AppLayout = ({
1665
1686
  )
1666
1687
  }
1667
1688
  ))
1668
- ), /* @__PURE__ */ import_react14.default.createElement(
1689
+ ), /* @__PURE__ */ import_react14.default.createElement("div", { ref: setContainer }, /* @__PURE__ */ import_react14.default.createElement(
1669
1690
  "div",
1670
1691
  {
1671
1692
  className: cn(
1672
- "hawa-fixed hawa-z-0 hawa-flex hawa-flex-col hawa-justify-between hawa-overflow-x-clip hawa-transition-all hawa-top-0 hawa-h-[calc(100dvh)] hawa-bg-primary-foreground",
1693
+ "hawa-fixed hawa-z-40 hawa-flex hawa-flex-col hawa-justify-between hawa-overflow-x-clip hawa-transition-all hawa-top-0 hawa-h-[calc(100dvh)] hawa-bg-primary-foreground",
1673
1694
  isRTL ? "hawa-right-0" : "hawa-left-0",
1674
- bordered ? direction === "rtl" ? "hawa-border-s-[1px]" : "hawa-border-e-[1px]" : ""
1695
+ bordered ? size > 600 ? direction === "rtl" ? "hawa-border-s-[1px]" : "hawa-border-e-[1px]" : "" : ""
1675
1696
  ),
1676
1697
  style: {
1677
1698
  width: size > 600 ? openSideMenu ? `${drawerSizeStyle["opened"][drawerSize]}px` : `${drawerSizeStyle["closed"][drawerSize]}px` : openSideMenu ? `${drawerSizeStyle["opened"][drawerSize]}px` : "0px"
@@ -1782,9 +1803,10 @@ var AppLayout = ({
1782
1803
  size: "smallIcon",
1783
1804
  onClick: () => {
1784
1805
  const newKeepOpenState = !keepDrawerOpen;
1785
- if (props.onDrawerExpand) {
1786
- props.onDrawerExpand(newKeepOpenState);
1787
- }
1806
+ localStorage.setItem(
1807
+ LOCAL_STORAGE_KEY,
1808
+ JSON.stringify(newKeepOpenState)
1809
+ );
1788
1810
  setKeepDrawerOpen(newKeepOpenState);
1789
1811
  }
1790
1812
  },
@@ -1810,10 +1832,17 @@ var AppLayout = ({
1810
1832
  )
1811
1833
  ) : null
1812
1834
  )
1835
+ )), /* @__PURE__ */ import_react14.default.createElement(
1836
+ Dialog.Root,
1837
+ {
1838
+ open: size < 600 && openSideMenu,
1839
+ onOpenChange: setOpenSideMenu
1840
+ },
1841
+ /* @__PURE__ */ import_react14.default.createElement(Dialog.Portal, { container }, /* @__PURE__ */ import_react14.default.createElement(Dialog.Overlay, { className: "hawa-fixed hawa-inset-0 hawa-bg-foreground/80 hawa-backdrop-blur-sm data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out hawa-z-10 data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0" }))
1813
1842
  ), /* @__PURE__ */ import_react14.default.createElement(
1814
1843
  "div",
1815
1844
  {
1816
- className: "hawa-fixed -hawa-z-10 hawa-overflow-y-auto hawa-transition-all",
1845
+ className: "hawa-fixed hawa-overflow-y-auto hawa-transition-all hawa-z-0",
1817
1846
  style: isRTL ? {
1818
1847
  left: "0px",
1819
1848
  top: props.topBar ? "56px" : "0px",
@@ -395,6 +395,8 @@ var Navbar = ({
395
395
 
396
396
  // layout/appLayout/AppLayout.tsx
397
397
  import React5, { useEffect, useState as useState2 } from "react";
398
+ import * as Dialog from "@radix-ui/react-dialog";
399
+ var LOCAL_STORAGE_KEY = "@sikka/hawa/keep-drawer-open";
398
400
  var AppLayout = ({
399
401
  profileMenuWidth = "default",
400
402
  DrawerFooterActions,
@@ -405,14 +407,18 @@ var AppLayout = ({
405
407
  drawerSize = "md",
406
408
  currentPage,
407
409
  clickedItem,
408
- setKeepOpen,
409
- keepOpen,
410
410
  DrawerLinkComponent,
411
411
  MenuLinkComponent,
412
412
  onAvatarClick,
413
413
  ...props
414
414
  }) => {
415
415
  var _a, _b;
416
+ useEffect(() => {
417
+ let isDrawerOpen = localStorage.getItem(LOCAL_STORAGE_KEY);
418
+ if (isDrawerOpen === null) {
419
+ localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(false));
420
+ }
421
+ }, []);
416
422
  let closeDrawerWidth = 56;
417
423
  let openDrawerWidth = 200;
418
424
  let drawerSizeStyle = {
@@ -428,8 +434,15 @@ var AppLayout = ({
428
434
  const [size, setSize] = useState2(
429
435
  typeof window !== "undefined" && window.innerWidth || 1200
430
436
  );
431
- const [openSideMenu, setOpenSideMenu] = useState2(true);
432
- const [keepDrawerOpen, setKeepDrawerOpen] = useState2(keepOpen);
437
+ const [openSideMenu, setOpenSideMenu] = useState2(() => {
438
+ const savedState = localStorage.getItem(LOCAL_STORAGE_KEY);
439
+ return savedState ? JSON.parse(savedState) : false;
440
+ });
441
+ const [container, setContainer] = React5.useState(null);
442
+ const [keepDrawerOpen, setKeepDrawerOpen] = useState2(() => {
443
+ const savedState = localStorage.getItem(LOCAL_STORAGE_KEY);
444
+ return savedState ? JSON.parse(savedState) : false;
445
+ });
433
446
  const handleClickOutside = () => {
434
447
  if (typeof window !== "undefined") {
435
448
  if (window.innerWidth < 600) {
@@ -445,6 +458,8 @@ var AppLayout = ({
445
458
  setSize(window.innerWidth);
446
459
  if (window.innerWidth > 600) {
447
460
  setKeepDrawerOpen(false);
461
+ } else {
462
+ localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(false));
448
463
  }
449
464
  };
450
465
  resize();
@@ -455,12 +470,16 @@ var AppLayout = ({
455
470
  }
456
471
  }, []);
457
472
  useEffect(() => {
458
- setKeepDrawerOpen(keepOpen);
459
- }, [setKeepOpen]);
473
+ setKeepDrawerOpen(() => {
474
+ const savedState = localStorage.getItem(LOCAL_STORAGE_KEY);
475
+ return savedState ? JSON.parse(savedState) : true;
476
+ });
477
+ }, [setKeepDrawerOpen]);
460
478
  useEffect(() => {
461
479
  if (size > 600) {
462
480
  setOpenSideMenu(keepDrawerOpen);
463
481
  } else {
482
+ setKeepDrawerOpen(false);
464
483
  setOpenSideMenu(false);
465
484
  }
466
485
  }, [size, keepDrawerOpen]);
@@ -470,7 +489,7 @@ var AppLayout = ({
470
489
  {
471
490
  dir: direction,
472
491
  className: cn(
473
- "hawa-fixed hawa-end-0 hawa-start-0 hawa-top-0 hawa-z-0 hawa-flex hawa-h-14 hawa-w-full hawa-items-center hawa-justify-between hawa-bg-primary-foreground hawa-p-2",
492
+ "hawa-fixed hawa-end-0 hawa-start-0 hawa-top-0 hawa-z-10 hawa-flex hawa-h-14 hawa-w-full hawa-items-center hawa-justify-between hawa-bg-primary-foreground hawa-p-2",
474
493
  bordered && "hawa-border-b-[1px]"
475
494
  )
476
495
  },
@@ -498,7 +517,7 @@ var AppLayout = ({
498
517
  "div",
499
518
  {
500
519
  onClick: () => setOpenSideMenu(true),
501
- className: "hawa-z-40 hawa-mx-1 hawa-cursor-pointer hawa-rounded hawa-p-2 hawa-transition-all hover:hawa-bg-gray-100"
520
+ className: "hawa-z-40 hawa-mx-1 hawa-cursor-pointer hawa-rounded hawa-p-2 hawa-transition-all "
502
521
  },
503
522
  /* @__PURE__ */ React5.createElement(MenuIcon, null)
504
523
  ),
@@ -543,13 +562,13 @@ var AppLayout = ({
543
562
  )
544
563
  }
545
564
  ))
546
- ), /* @__PURE__ */ React5.createElement(
565
+ ), /* @__PURE__ */ React5.createElement("div", { ref: setContainer }, /* @__PURE__ */ React5.createElement(
547
566
  "div",
548
567
  {
549
568
  className: cn(
550
- "hawa-fixed hawa-z-0 hawa-flex hawa-flex-col hawa-justify-between hawa-overflow-x-clip hawa-transition-all hawa-top-0 hawa-h-[calc(100dvh)] hawa-bg-primary-foreground",
569
+ "hawa-fixed hawa-z-40 hawa-flex hawa-flex-col hawa-justify-between hawa-overflow-x-clip hawa-transition-all hawa-top-0 hawa-h-[calc(100dvh)] hawa-bg-primary-foreground",
551
570
  isRTL ? "hawa-right-0" : "hawa-left-0",
552
- bordered ? direction === "rtl" ? "hawa-border-s-[1px]" : "hawa-border-e-[1px]" : ""
571
+ bordered ? size > 600 ? direction === "rtl" ? "hawa-border-s-[1px]" : "hawa-border-e-[1px]" : "" : ""
553
572
  ),
554
573
  style: {
555
574
  width: size > 600 ? openSideMenu ? `${drawerSizeStyle["opened"][drawerSize]}px` : `${drawerSizeStyle["closed"][drawerSize]}px` : openSideMenu ? `${drawerSizeStyle["opened"][drawerSize]}px` : "0px"
@@ -660,9 +679,10 @@ var AppLayout = ({
660
679
  size: "smallIcon",
661
680
  onClick: () => {
662
681
  const newKeepOpenState = !keepDrawerOpen;
663
- if (props.onDrawerExpand) {
664
- props.onDrawerExpand(newKeepOpenState);
665
- }
682
+ localStorage.setItem(
683
+ LOCAL_STORAGE_KEY,
684
+ JSON.stringify(newKeepOpenState)
685
+ );
666
686
  setKeepDrawerOpen(newKeepOpenState);
667
687
  }
668
688
  },
@@ -688,10 +708,17 @@ var AppLayout = ({
688
708
  )
689
709
  ) : null
690
710
  )
711
+ )), /* @__PURE__ */ React5.createElement(
712
+ Dialog.Root,
713
+ {
714
+ open: size < 600 && openSideMenu,
715
+ onOpenChange: setOpenSideMenu
716
+ },
717
+ /* @__PURE__ */ React5.createElement(Dialog.Portal, { container }, /* @__PURE__ */ React5.createElement(Dialog.Overlay, { className: "hawa-fixed hawa-inset-0 hawa-bg-foreground/80 hawa-backdrop-blur-sm data-[state=open]:hawa-animate-in data-[state=closed]:hawa-animate-out hawa-z-10 data-[state=closed]:hawa-fade-out-0 data-[state=open]:hawa-fade-in-0" }))
691
718
  ), /* @__PURE__ */ React5.createElement(
692
719
  "div",
693
720
  {
694
- className: "hawa-fixed -hawa-z-10 hawa-overflow-y-auto hawa-transition-all",
721
+ className: "hawa-fixed hawa-overflow-y-auto hawa-transition-all hawa-z-0",
695
722
  style: isRTL ? {
696
723
  left: "0px",
697
724
  top: props.topBar ? "56px" : "0px",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sikka/hawa",
3
- "version": "0.36.0-next",
3
+ "version": "0.36.2-next",
4
4
  "description": "Modern UI Kit made with Tailwind",
5
5
  "author": {
6
6
  "name": "Sikka Software",