@luscii-healthtech/web-ui 0.4.2 → 0.4.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.
- package/dist/components/NavMenu/NavMenu.d.ts +9 -1
- package/dist/components/NavMenu/NavMenu.utils.d.ts +3 -0
- package/dist/components/NavMenu/NavMenuContent.d.ts +2 -6
- package/dist/components/NavMenu/NavMenuItem.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/web-ui.cjs.development.js +15 -6
- package/dist/web-ui.cjs.development.js.map +1 -1
- package/dist/web-ui.cjs.production.min.js +1 -1
- package/dist/web-ui.cjs.production.min.js.map +1 -1
- package/dist/web-ui.esm.js +15 -6
- package/dist/web-ui.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/NavMenu/{NavMenu.js → NavMenu.tsx} +7 -3
- package/src/components/NavMenu/NavMenu.utils.ts +6 -0
- package/src/components/NavMenu/NavMenuContent.tsx +8 -8
- package/src/components/NavMenu/NavMenuItem.tsx +1 -1
- package/src/index.tsx +1 -1
package/package.json
CHANGED
|
@@ -4,8 +4,12 @@ import { useState } from "react";
|
|
|
4
4
|
import Button from "../Button/Button";
|
|
5
5
|
|
|
6
6
|
import { NavMenuContent } from "./NavMenuContent";
|
|
7
|
+
import { NavMenuItemProps } from "./NavMenuItem";
|
|
7
8
|
|
|
8
|
-
export
|
|
9
|
+
export type NavMenuElement = NavMenuItemProps | { type: "separator" | "spacer" }
|
|
10
|
+
export type NavMenuProps = { items: NavMenuElement[] };
|
|
11
|
+
|
|
12
|
+
export function NavMenu({ items }: NavMenuProps): JSX.Element {
|
|
9
13
|
const [isOpen, setIsOpen] = useState(false);
|
|
10
14
|
|
|
11
15
|
const handleToggleOpen = () => {
|
|
@@ -15,7 +19,7 @@ export function NavMenu(props) {
|
|
|
15
19
|
return (
|
|
16
20
|
<>
|
|
17
21
|
<div className={"hidden h-screen lg:flex"}>
|
|
18
|
-
<NavMenuContent items={
|
|
22
|
+
<NavMenuContent items={items} />
|
|
19
23
|
</div>
|
|
20
24
|
<div className={"lg:hidden relative bg-nav-header w-screen flex items-center p-2 shadow-lg"}>
|
|
21
25
|
<Button
|
|
@@ -27,7 +31,7 @@ export function NavMenu(props) {
|
|
|
27
31
|
</div>
|
|
28
32
|
{isOpen && (
|
|
29
33
|
<div className="absolute z-20">
|
|
30
|
-
<NavMenuContent items={
|
|
34
|
+
<NavMenuContent items={items} />
|
|
31
35
|
</div>
|
|
32
36
|
)}
|
|
33
37
|
</>
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { NavMenuProps } from "./NavMenu";
|
|
4
|
+
import { NavMenuItem } from "./NavMenuItem";
|
|
5
|
+
import { isNavMenuItem } from "./NavMenu.utils";
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
items: Array<NavMenuItemProps>;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const NavMenuContent = (props: NavMenuContentProps): JSX.Element => {
|
|
7
|
+
export const NavMenuContent = ({ items }: NavMenuProps): JSX.Element => {
|
|
10
8
|
return (
|
|
11
9
|
<div className={"flex flex-col bg-nav-menu w-46 pl-1 py-2 lg:relative shadow-lg"}>
|
|
12
|
-
{
|
|
10
|
+
{items.map((item, index) => {
|
|
13
11
|
if (item.type === "separator") {
|
|
14
12
|
return <div key={`${item.type}-${index}`} className={"border-b ml-3 border-slate-600"} />;
|
|
15
13
|
} else if (item.type === "spacer") {
|
|
16
14
|
return <div key={`${item.type}-${index}`} className={"mt-auto"} />;
|
|
17
|
-
} else {
|
|
15
|
+
} else if (isNavMenuItem(item)) {
|
|
18
16
|
return <NavMenuItem {...item} key={item.title} />;
|
|
17
|
+
} else {
|
|
18
|
+
return null as never;
|
|
19
19
|
}
|
|
20
20
|
})}
|
|
21
21
|
</div>
|
package/src/index.tsx
CHANGED
|
@@ -40,7 +40,7 @@ export {
|
|
|
40
40
|
export { default as Menu } from "./components/Menu/Menu";
|
|
41
41
|
export { MultiSelect } from "./components/MultiSelect/MultiSelect";
|
|
42
42
|
export { NavLayout, NavMenuLayoutProps } from "./components/NavMenu/NavLayout";
|
|
43
|
-
export { NavMenu } from "./components/NavMenu/NavMenu";
|
|
43
|
+
export { NavMenu, NavMenuElement } from "./components/NavMenu/NavMenu";
|
|
44
44
|
export {
|
|
45
45
|
NotificationBanner,
|
|
46
46
|
NotificationBannerColor,
|