@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,6 @@
1
+ import { FC } from 'react';
2
+ interface Props {
3
+ label: string;
4
+ }
5
+ export declare const IntroUser: FC<Props>;
6
+ export {};
@@ -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(link_1.default, { href: loggedInUser.route, className: "inline-flex items-center gap-x-2 ".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") },
53
- (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" })),
54
- react_1.default.createElement("span", null, loggedInUser.firstName))),
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(react_2.PopoverButton, { className: "inline-flex items-center gap-x-2 ".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") },
58
- (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" })),
59
- react_1.default.createElement("span", null, loggedInUser.firstName)),
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: "block p-2 hover:text-indigo-600 dark:hover:text-indigo-400" },
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
- isMobileMenuOpen && (react_1.default.createElement("div", { className: "col-span-2 max-h-90 overflow-y-scroll bg-purple-200/90 lg:hidden" },
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.48",
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.48",
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.48",
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",