@appcorp/kismaa-web-ui 0.2.48 → 0.2.49
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.
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IntroUser = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var IntroUser = function (_a) {
|
|
9
|
+
var label = _a.label;
|
|
10
|
+
return (react_1.default.createElement("div", null,
|
|
11
|
+
react_1.default.createElement("p", { className: "text-xs" },
|
|
12
|
+
"Welcome, ",
|
|
13
|
+
label)));
|
|
14
|
+
};
|
|
15
|
+
exports.IntroUser = IntroUser;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LoggedInUser, NavbarHeaderActionItem, NavLinks } from './type';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
interface Props {
|
|
4
|
+
headerActions: NavbarHeaderActionItem[];
|
|
5
|
+
homeLink: string;
|
|
6
|
+
isMobileMenuOpen: boolean;
|
|
7
|
+
loggedInUser: LoggedInUser | null;
|
|
8
|
+
navLinks: NavLinks[];
|
|
9
|
+
toggleMobileMenu: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const MobileMenu: FC<Props>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MobileMenu = void 0;
|
|
7
|
+
var link_1 = __importDefault(require("next/link"));
|
|
8
|
+
var molecules_1 = require("../../molecules");
|
|
9
|
+
var image_1 = __importDefault(require("next/image"));
|
|
10
|
+
var react_1 = __importDefault(require("react"));
|
|
11
|
+
var atoms_1 = require("../../atoms");
|
|
12
|
+
var intro_user_1 = require("./intro-user");
|
|
13
|
+
var MobileMenu = function (_a) {
|
|
14
|
+
var headerActions = _a.headerActions, isMobileMenuOpen = _a.isMobileMenuOpen, loggedInUser = _a.loggedInUser, navLinks = _a.navLinks, toggleMobileMenu = _a.toggleMobileMenu, homeLink = _a.homeLink;
|
|
15
|
+
return (react_1.default.createElement("div", null, isMobileMenuOpen && (react_1.default.createElement("div", { className: "col-span-2 max-h-90 overflow-y-scroll bg-purple-200/90 lg:hidden" },
|
|
16
|
+
react_1.default.createElement("div", { className: "grid grid-cols-1 gap-4 p-4" },
|
|
17
|
+
react_1.default.createElement("div", null,
|
|
18
|
+
react_1.default.createElement(link_1.default, { className: "flex cursor-pointer flex-row items-center justify-start gap-4", href: navLinks[0].href, onClick: toggleMobileMenu },
|
|
19
|
+
react_1.default.createElement(molecules_1.Typography, { variant: molecules_1.TYPOGRAPHY_VARIANTS.SUBH3 }, navLinks[0].label))),
|
|
20
|
+
react_1.default.createElement("div", null, navLinks[1].megaMenuItems &&
|
|
21
|
+
navLinks[1].megaMenuItems.map(function (link) { return (react_1.default.createElement("div", { key: link.label },
|
|
22
|
+
react_1.default.createElement(link_1.default, { href: link.route, className: "flex cursor-pointer flex-row items-center justify-start gap-4", onClick: toggleMobileMenu },
|
|
23
|
+
react_1.default.createElement("div", { className: "relative my-2 size-7" },
|
|
24
|
+
react_1.default.createElement(image_1.default, { alt: link.imageAlt, fill: true, height: 0, sizes: "10vw", src: link.imageSrc, width: 0 })),
|
|
25
|
+
react_1.default.createElement(molecules_1.Typography, { variant: molecules_1.TYPOGRAPHY_VARIANTS.SUBH3 }, link.label)))); })),
|
|
26
|
+
react_1.default.createElement("div", null,
|
|
27
|
+
react_1.default.createElement(link_1.default, { href: navLinks[2].href, className: "flex cursor-pointer flex-row items-center justify-start gap-4", onClick: toggleMobileMenu },
|
|
28
|
+
react_1.default.createElement(molecules_1.Typography, { variant: molecules_1.TYPOGRAPHY_VARIANTS.SUBH3 }, navLinks[2].label))),
|
|
29
|
+
react_1.default.createElement("div", null, loggedInUser ? (react_1.default.createElement("div", { className: "flex flex-col items-end justify-center" },
|
|
30
|
+
react_1.default.createElement(intro_user_1.IntroUser, { label: loggedInUser.firstName }),
|
|
31
|
+
react_1.default.createElement(link_1.default, { href: homeLink, className: "flex items-center gap-2" }, (loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.avatarUrl) ? (react_1.default.createElement(image_1.default, { src: loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.avatarUrl, alt: loggedInUser.firstName, height: 32, width: 32, className: "h-8 w-8 rounded-full" })) : (react_1.default.createElement(atoms_1.UserIcon, { className: "h-8 w-8 rounded-full" }))))) : (react_1.default.createElement("div", { className: "flex flex-col items-center gap-2" }, headerActions
|
|
32
|
+
.filter(function (_a) {
|
|
33
|
+
var enabled = _a.enabled;
|
|
34
|
+
return enabled;
|
|
35
|
+
})
|
|
36
|
+
.sort(function (a, b) { return a.order - b.order; })
|
|
37
|
+
.map(function (_a) {
|
|
38
|
+
var handleOnClick = _a.handleOnClick, label = _a.label, type = _a.type;
|
|
39
|
+
return (react_1.default.createElement("div", { key: label, className: "w-fit" },
|
|
40
|
+
react_1.default.createElement(molecules_1.Button, { type: type, handleOnClick: handleOnClick, label: label, size: molecules_1.BUTTON_SIZES.SM })));
|
|
41
|
+
})))))))));
|
|
42
|
+
};
|
|
43
|
+
exports.MobileMenu = MobileMenu;
|
|
@@ -15,6 +15,8 @@ var mega_menu_1 = require("../mega-menu");
|
|
|
15
15
|
var header_pointer_icon_1 = require("../../atoms/header-pointer-icon");
|
|
16
16
|
var user_icon_1 = require("../../atoms/user-icon");
|
|
17
17
|
var react_2 = require("@headlessui/react");
|
|
18
|
+
var intro_user_1 = require("./intro-user");
|
|
19
|
+
var mobile_menu_1 = require("./mobile-menu");
|
|
18
20
|
var Navbar = function (_a) {
|
|
19
21
|
var _b, _c;
|
|
20
22
|
var handleMegaMenuToggle = _a.handleMegaMenuToggle, handleSearch = _a.handleSearch, headerActions = _a.headerActions, homeLink = _a.homeLink, isMobileMenuOpen = _a.isMobileMenuOpen, _d = _a.loggedInUser, loggedInUser = _d === void 0 ? null : _d, navLinks = _a.navLinks, _e = _a.showSearch, showSearch = _e === void 0 ? false : _e, toggleMobileMenu = _a.toggleMobileMenu;
|
|
@@ -49,18 +51,20 @@ var Navbar = function (_a) {
|
|
|
49
51
|
loggedInUser ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
50
52
|
(loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.route) &&
|
|
51
53
|
(loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.menuItems) &&
|
|
52
|
-
!((_b = loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.menuItems) === null || _b === void 0 ? void 0 : _b.length) && (react_1.default.createElement(
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
!((_b = loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.menuItems) === null || _b === void 0 ? void 0 : _b.length) && (react_1.default.createElement("div", { className: "flex flex-col items-end justify-center" },
|
|
55
|
+
react_1.default.createElement("span", null,
|
|
56
|
+
"Welcome, ",
|
|
57
|
+
loggedInUser.firstName),
|
|
58
|
+
react_1.default.createElement(link_1.default, { href: loggedInUser.route }, (loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.avatarUrl) ? (react_1.default.createElement(image_1.default, { alt: loggedInUser.firstName, className: "h-8 w-8 rounded-full", height: 32, src: loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.avatarUrl, width: 32 })) : (react_1.default.createElement(user_icon_1.UserIcon, { className: "h-8 w-8 rounded-full" }))))),
|
|
55
59
|
(loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.menuItems) &&
|
|
56
60
|
(loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.menuItems.length) > 0 && (react_1.default.createElement(react_2.Popover, { className: "relative" },
|
|
57
|
-
react_1.default.createElement(
|
|
58
|
-
|
|
59
|
-
react_1.default.createElement("
|
|
61
|
+
react_1.default.createElement("div", { className: "flex flex-col items-end justify-start" },
|
|
62
|
+
react_1.default.createElement(intro_user_1.IntroUser, { label: loggedInUser.firstName }),
|
|
63
|
+
react_1.default.createElement(react_2.PopoverButton, null, (loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.avatarUrl) ? (react_1.default.createElement(image_1.default, { alt: loggedInUser.firstName, className: "h-8 w-8 rounded-full", height: 32, src: loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.avatarUrl, width: 32 })) : (react_1.default.createElement(user_icon_1.UserIcon, { className: "h-8 w-8 rounded-full" })))),
|
|
60
64
|
react_1.default.createElement(react_2.PopoverPanel, { transition: true, className: "absolute left-1/2 z-10 mt-2 flex w-screen max-w-min -translate-x-1/2 bg-transparent px-4 transition data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-200 data-enter:ease-out data-leave:duration-150 data-leave:ease-in" },
|
|
61
65
|
react_1.default.createElement("div", { className: "w-56 shrink rounded-xl bg-white p-4 text-sm/6 font-semibold text-gray-900 shadow-lg outline-1 outline-gray-900/5 dark:bg-gray-800 dark:text-white dark:shadow-none dark:outline dark:-outline-offset-1 dark:outline-white/10" }, (_c = loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.menuItems) === null || _c === void 0 ? void 0 : _c.map(function (_a) {
|
|
62
66
|
var label = _a.label, route = _a.route;
|
|
63
|
-
return (react_1.default.createElement(link_1.default, { key: label, href: route, className: "
|
|
67
|
+
return (react_1.default.createElement(link_1.default, { key: label, href: route, className: "hover:text-primary dark:hover:text-primary/50 block p-2" },
|
|
64
68
|
react_1.default.createElement("p", { className: "text-primary font-bold" }, label)));
|
|
65
69
|
}))))))) : (react_1.default.createElement("div", { className: "flex items-center justify-end" }, headerActions
|
|
66
70
|
.filter(function (_a) {
|
|
@@ -73,33 +77,6 @@ var Navbar = function (_a) {
|
|
|
73
77
|
return (react_1.default.createElement("div", { key: label, className: "w-fit" },
|
|
74
78
|
react_1.default.createElement(molecules_1.Button, { type: type, handleOnClick: handleOnClick, label: label, size: molecules_1.BUTTON_SIZES.SM })));
|
|
75
79
|
})))))),
|
|
76
|
-
|
|
77
|
-
react_1.default.createElement("div", { className: "grid grid-cols-1 gap-4 p-4" },
|
|
78
|
-
react_1.default.createElement("div", null,
|
|
79
|
-
react_1.default.createElement(link_1.default, { className: "flex cursor-pointer flex-row items-center justify-start gap-4", href: navLinks[0].href, onClick: toggleMobileMenu },
|
|
80
|
-
react_1.default.createElement(molecules_1.Typography, { variant: molecules_1.TYPOGRAPHY_VARIANTS.SUBH3 }, navLinks[0].label))),
|
|
81
|
-
react_1.default.createElement("div", null, navLinks[1].megaMenuItems &&
|
|
82
|
-
navLinks[1].megaMenuItems.map(function (link) { return (react_1.default.createElement("div", { key: link.label },
|
|
83
|
-
react_1.default.createElement(link_1.default, { href: link.route, className: "flex cursor-pointer flex-row items-center justify-start gap-4", onClick: toggleMobileMenu },
|
|
84
|
-
react_1.default.createElement("div", { className: "relative my-2 size-7" },
|
|
85
|
-
react_1.default.createElement(image_1.default, { alt: link.imageAlt, fill: true, height: 0, sizes: "10vw", src: link.imageSrc, width: 0 })),
|
|
86
|
-
react_1.default.createElement(molecules_1.Typography, { variant: molecules_1.TYPOGRAPHY_VARIANTS.SUBH3 }, link.label)))); })),
|
|
87
|
-
react_1.default.createElement("div", null,
|
|
88
|
-
react_1.default.createElement(link_1.default, { href: navLinks[2].href, className: "flex cursor-pointer flex-row items-center justify-start gap-4", onClick: toggleMobileMenu },
|
|
89
|
-
react_1.default.createElement(molecules_1.Typography, { variant: molecules_1.TYPOGRAPHY_VARIANTS.SUBH3 }, navLinks[2].label))),
|
|
90
|
-
react_1.default.createElement("div", null, loggedInUser ? (react_1.default.createElement("button", { className: "".concat(molecules_1.colorMap[molecules_1.BUTTON_TYPES.SECONDARY], " ").concat(molecules_1.hoverMap[molecules_1.BUTTON_TYPES.SECONDARY], " ").concat(molecules_1.sizeMap[molecules_1.BUTTON_SIZES.SM], " cursor-pointer rounded-md") },
|
|
91
|
-
react_1.default.createElement(link_1.default, { href: '/user/dashboard', className: "flex items-center gap-2" },
|
|
92
|
-
(loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.avatarUrl) ? (react_1.default.createElement(image_1.default, { src: loggedInUser === null || loggedInUser === void 0 ? void 0 : loggedInUser.avatarUrl, alt: loggedInUser.firstName, height: 32, width: 32, className: "h-8 w-8 rounded-full" })) : (react_1.default.createElement(user_icon_1.UserIcon, { className: "h-8 w-8 rounded-full" })),
|
|
93
|
-
react_1.default.createElement("span", null, loggedInUser.firstName)))) : (react_1.default.createElement("div", { className: "flex flex-col items-center gap-2" }, headerActions
|
|
94
|
-
.filter(function (_a) {
|
|
95
|
-
var enabled = _a.enabled;
|
|
96
|
-
return enabled;
|
|
97
|
-
})
|
|
98
|
-
.sort(function (a, b) { return a.order - b.order; })
|
|
99
|
-
.map(function (_a) {
|
|
100
|
-
var handleOnClick = _a.handleOnClick, label = _a.label, type = _a.type;
|
|
101
|
-
return (react_1.default.createElement("div", { key: label, className: "w-fit" },
|
|
102
|
-
react_1.default.createElement(molecules_1.Button, { type: type, handleOnClick: handleOnClick, label: label, size: molecules_1.BUTTON_SIZES.SM })));
|
|
103
|
-
})))))))));
|
|
80
|
+
react_1.default.createElement(mobile_menu_1.MobileMenu, { headerActions: headerActions, homeLink: homeLink, isMobileMenuOpen: isMobileMenuOpen, loggedInUser: loggedInUser, navLinks: navLinks, toggleMobileMenu: toggleMobileMenu })));
|
|
104
81
|
};
|
|
105
82
|
exports.Navbar = Navbar;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appcorp/kismaa-web-ui",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.49",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "lib/main.js",
|
|
6
6
|
"module": "lib/module.js",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@appcorp/app-corp-designs": "^0.4.92",
|
|
48
48
|
"@appcorp/app-corp-vista": "^0.3.14",
|
|
49
|
-
"@appcorp/kismaa-utils": "^0.2.
|
|
49
|
+
"@appcorp/kismaa-utils": "^0.2.50",
|
|
50
50
|
"@chromatic-com/storybook": "3.2.6",
|
|
51
51
|
"@headlessui/react": "^2",
|
|
52
52
|
"@headlessui/tailwindcss": "^0",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@mdx-js/react": "^3",
|
|
56
56
|
"@next/eslint-plugin-next": "^15",
|
|
57
57
|
"@next/mdx": "^15",
|
|
58
|
-
"@react-pakistan/util-functions": "^1.24.
|
|
58
|
+
"@react-pakistan/util-functions": "^1.24.50",
|
|
59
59
|
"@storybook/addon-essentials": "^8",
|
|
60
60
|
"@storybook/addon-interactions": "^8",
|
|
61
61
|
"@storybook/addon-links": "^8",
|