@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/README.md +1 -5
- package/dist/appLayout/index.d.mts +0 -6
- package/dist/appLayout/index.d.ts +0 -6
- package/dist/appLayout/index.js +44 -15
- package/dist/appLayout/index.js.map +1 -1
- package/dist/appLayout/index.mjs +44 -15
- package/dist/appLayout/index.mjs.map +1 -1
- package/dist/combobox/index.js +1 -1
- package/dist/combobox/index.js.map +1 -1
- package/dist/combobox/index.mjs +1 -1
- package/dist/combobox/index.mjs.map +1 -1
- package/dist/command/index.js +1 -1
- package/dist/command/index.js.map +1 -1
- package/dist/command/index.mjs +1 -1
- package/dist/command/index.mjs.map +1 -1
- package/dist/dataTable/index.js +1 -1
- package/dist/dataTable/index.js.map +1 -1
- package/dist/dataTable/index.mjs +1 -1
- package/dist/dataTable/index.mjs.map +1 -1
- package/dist/dialog/index.js +1 -1
- package/dist/dialog/index.js.map +1 -1
- package/dist/dialog/index.mjs +1 -1
- package/dist/dialog/index.mjs.map +1 -1
- package/dist/elements/index.js +2 -2
- package/dist/elements/index.mjs +2 -2
- package/dist/index.css +6 -0
- package/dist/index.d.mts +0 -6
- package/dist/index.d.ts +0 -6
- package/dist/index.js +44 -17
- package/dist/index.mjs +44 -17
- package/dist/layout/index.d.mts +0 -6
- package/dist/layout/index.d.ts +0 -6
- package/dist/layout/index.js +44 -15
- package/dist/layout/index.mjs +42 -15
- package/package.json +1 -1
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-
|
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 = "
|
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(
|
9051
|
-
|
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(
|
9078
|
-
|
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-
|
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
|
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-
|
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
|
-
|
9283
|
-
|
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
|
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",
|
package/dist/layout/index.d.mts
CHANGED
@@ -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. */
|
package/dist/layout/index.d.ts
CHANGED
@@ -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. */
|
package/dist/layout/index.js
CHANGED
@@ -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)(
|
1554
|
-
|
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(
|
1581
|
-
|
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-
|
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
|
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-
|
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
|
-
|
1786
|
-
|
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
|
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",
|
package/dist/layout/index.mjs
CHANGED
@@ -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(
|
432
|
-
|
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(
|
459
|
-
|
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-
|
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
|
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-
|
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
|
-
|
664
|
-
|
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
|
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",
|