@shadow-library/ui 0.1.1 → 0.1.2

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.
Files changed (81) hide show
  1. package/components/AppLayout/AppLayout.d.ts +9 -7
  2. package/components/AppLayout/AppLayout.js +28 -22
  3. package/components/AppLayout/AppLayout.js.map +1 -1
  4. package/components/AppLayout/AppLayout.module.css.js +4 -0
  5. package/components/AppLayout/AppLayout.module.css.js.map +1 -0
  6. package/components/AppLayout/ContentFooter.d.ts +3 -4
  7. package/components/AppLayout/ContentFooter.js +10 -15
  8. package/components/AppLayout/ContentFooter.js.map +1 -1
  9. package/components/AppLayout/SideNavbar.d.ts +8 -8
  10. package/components/AppLayout/SideNavbar.js +41 -17
  11. package/components/AppLayout/SideNavbar.js.map +1 -1
  12. package/components/AppLayout/SideNavbarGroup.d.ts +19 -0
  13. package/components/AppLayout/SideNavbarGroup.js +16 -0
  14. package/components/AppLayout/SideNavbarGroup.js.map +1 -0
  15. package/components/AppLayout/SideNavbarItem.d.ts +8 -3
  16. package/components/AppLayout/SideNavbarItem.js +71 -28
  17. package/components/AppLayout/SideNavbarItem.js.map +1 -1
  18. package/components/AppLayout/TopNavbar.d.ts +7 -3
  19. package/components/AppLayout/TopNavbar.js +37 -18
  20. package/components/AppLayout/TopNavbar.js.map +1 -1
  21. package/components/AppLayout/app-layout.utils.d.ts +14 -0
  22. package/components/AppLayout/app-layout.utils.js +6 -0
  23. package/components/AppLayout/app-layout.utils.js.map +1 -0
  24. package/components/AppLayout/hooks/use-active-nav-label.d.ts +2 -0
  25. package/components/AppLayout/hooks/use-active-nav-label.js +29 -0
  26. package/components/AppLayout/hooks/use-active-nav-label.js.map +1 -0
  27. package/components/AppLayout/hooks/use-layout-state.js +11 -13
  28. package/components/AppLayout/hooks/use-layout-state.js.map +1 -1
  29. package/components/AppLayout/hooks/use-side-navbar-item.d.ts +4 -4
  30. package/components/AppLayout/hooks/use-side-navbar-item.js +21 -32
  31. package/components/AppLayout/hooks/use-side-navbar-item.js.map +1 -1
  32. package/components/AppLayout/index.d.ts +1 -1
  33. package/components/AppLayout/layout.types.d.ts +9 -9
  34. package/components/Logo/Alphabets.d.ts +2 -7
  35. package/components/Logo/Alphabets.js +119 -31
  36. package/components/Logo/Alphabets.js.map +1 -1
  37. package/components/Logo/BrandMark.js +38 -16
  38. package/components/Logo/BrandMark.js.map +1 -1
  39. package/components/Logo/Logo.js +17 -13
  40. package/components/Logo/Logo.js.map +1 -1
  41. package/components/Logo/Logo.module.css.js +4 -0
  42. package/components/Logo/Logo.module.css.js.map +1 -0
  43. package/components/Logo/hooks/use-logo.js +13 -15
  44. package/components/Logo/hooks/use-logo.js.map +1 -1
  45. package/hooks/useSearchParams.js +16 -19
  46. package/hooks/useSearchParams.js.map +1 -1
  47. package/index.d.ts +6 -4
  48. package/index.js +10 -5
  49. package/index.js.map +1 -1
  50. package/lib/api-error.js +16 -20
  51. package/lib/api-error.js.map +1 -1
  52. package/lib/api-request.d.ts +2 -2
  53. package/lib/api-request.js +105 -117
  54. package/lib/api-request.js.map +1 -1
  55. package/lib/generate-api.js +193 -230
  56. package/lib/generate-api.js.map +1 -1
  57. package/lib/utils.js +5 -21
  58. package/lib/utils.js.map +1 -1
  59. package/package.json +12 -5
  60. package/styles/AppLayout.module.css +82 -0
  61. package/{components/Logo → styles}/Logo.module.css +6 -0
  62. package/styles.css +2 -0
  63. package/styles.css.map +1 -0
  64. package/styles.layer.css +4 -0
  65. package/theme.d.ts +6 -6
  66. package/theme.js +111 -114
  67. package/theme.js.map +1 -1
  68. package/types.d.ts +1 -0
  69. package/components/AppLayout/AppLayout.module.css +0 -47
  70. package/components/AppLayout/index.js +0 -3
  71. package/components/AppLayout/index.js.map +0 -1
  72. package/components/AppLayout/layout.types.js +0 -2
  73. package/components/AppLayout/layout.types.js.map +0 -1
  74. package/components/Logo/index.js +0 -3
  75. package/components/Logo/index.js.map +0 -1
  76. package/hooks/index.js +0 -2
  77. package/hooks/index.js.map +0 -1
  78. package/lib/index.js +0 -5
  79. package/lib/index.js.map +0 -1
  80. package/types.js +0 -5
  81. package/types.js.map +0 -1
@@ -1,19 +1,21 @@
1
1
  import { type ReactNode } from 'react';
2
- import { type Alphabet } from '../Logo/index.js';
3
- import { type FooterConfig, type NavItem, type NotificationsConfig, type UserInfo } from './layout.types.js';
2
+ import { type NavGroup, type NavItem, type NotificationsConfig, type UserInfo } from './layout.types';
4
3
  /**
5
4
  * Defining types
6
5
  */
7
6
  interface AppLayoutProps {
8
- children: ReactNode;
9
- productName: Alphabet[];
10
7
  appName: string;
11
- navItems: NavItem[];
8
+ children: ReactNode;
9
+ navItems: (NavItem | NavGroup)[];
10
+ headerContent?: ReactNode;
12
11
  user?: UserInfo;
13
12
  notifications?: NotificationsConfig;
14
- footer?: FooterConfig;
13
+ footer?: ReactNode;
15
14
  showThemeToggle?: boolean;
16
15
  defaultCollapsed?: boolean;
17
16
  }
18
- export declare function AppLayout({ children, appName, productName, navItems, user, notifications, footer, showThemeToggle, defaultCollapsed }: AppLayoutProps): import("react/jsx-runtime").JSX.Element;
17
+ /**
18
+ * Declaring the constants
19
+ */
20
+ export declare function AppLayout({ children, appName, navItems, headerContent, user, notifications, footer, showThemeToggle, defaultCollapsed }: AppLayoutProps): import("react/jsx-runtime").JSX.Element;
19
21
  export {};
@@ -1,28 +1,34 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * Importing npm packages
4
- */
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
3
  import { AppShell } from '@mantine/core';
6
- /**
7
- * Importing user defined packages
8
- */
9
- import styles from './AppLayout.module.css';
4
+ import styles from './AppLayout.module.css.js';
10
5
  import { ContentFooter } from './ContentFooter.js';
11
6
  import { useLayoutState } from './hooks/use-layout-state.js';
12
7
  import { SideNavbar } from './SideNavbar.js';
13
8
  import { TopNavbar } from './TopNavbar.js';
14
- /**
15
- * Declaring the constants
16
- */
17
- const HEADER_HEIGHT = 56;
18
- const NAVBAR_WIDTH_EXPANDED = 260;
19
- const NAVBAR_WIDTH_COLLAPSED = 72;
20
- export function AppLayout({ children, appName, productName, navItems, user, notifications, footer, showThemeToggle = true, defaultCollapsed = false }) {
21
- const { collapsed, toggleCollapsed, mobileOpened, toggleMobile, closeMobile } = useLayoutState({ defaultCollapsed });
22
- return (_jsxs(AppShell, { layout: 'alt', header: { height: HEADER_HEIGHT }, navbar: {
23
- width: collapsed ? NAVBAR_WIDTH_COLLAPSED : NAVBAR_WIDTH_EXPANDED,
24
- breakpoint: 'sm',
25
- collapsed: { mobile: !mobileOpened },
26
- }, padding: 'md', transitionDuration: 200, children: [_jsx(AppShell.Header, { children: _jsx(TopNavbar, { user: user, notifications: notifications, showThemeToggle: showThemeToggle, mobileOpened: mobileOpened, onToggleMobile: toggleMobile }) }), _jsx(AppShell.Navbar, { children: _jsx(SideNavbar, { items: navItems, collapsed: collapsed, onToggleCollapsed: toggleCollapsed, onNavigate: closeMobile, productName: productName, onCloseMobile: closeMobile }) }), _jsxs(AppShell.Main, { className: styles.main, children: [_jsx("div", { className: styles.mainContent, children: children }), _jsx(ContentFooter, { appName: appName, footer: footer })] })] }));
9
+
10
+ function AppLayout({ children, appName, navItems, headerContent, user, notifications, footer, showThemeToggle, defaultCollapsed }) {
11
+ const { collapsed, toggleCollapsed, mobileOpened, toggleMobile, closeMobile } = useLayoutState({ defaultCollapsed });
12
+ return /* @__PURE__ */ jsxs(AppShell, { layout: "alt", header: { height: 56 }, navbar: { width: collapsed ? 56 : 260, breakpoint: "sm", collapsed: { mobile: !mobileOpened } }, padding: "md", children: [
13
+ /* @__PURE__ */ jsx(AppShell.Header, { children: /* @__PURE__ */ jsx(
14
+ TopNavbar,
15
+ {
16
+ navItems,
17
+ headerContent,
18
+ user,
19
+ notifications,
20
+ showThemeToggle,
21
+ mobileOpened,
22
+ onToggleMobile: toggleMobile
23
+ }
24
+ ) }),
25
+ /* @__PURE__ */ jsx(AppShell.Navbar, { children: /* @__PURE__ */ jsx(SideNavbar, { items: navItems, collapsed, onToggleCollapsed: toggleCollapsed, onNavigate: closeMobile, appName, onCloseMobile: closeMobile }) }),
26
+ /* @__PURE__ */ jsxs(AppShell.Main, { className: styles.main, children: [
27
+ /* @__PURE__ */ jsx("div", { className: styles.mainContent, children }),
28
+ footer && /* @__PURE__ */ jsx(ContentFooter, { content: footer })
29
+ ] })
30
+ ] });
27
31
  }
28
- //# sourceMappingURL=AppLayout.js.map
32
+
33
+ export { AppLayout };
34
+ //# sourceMappingURL=AppLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppLayout.js","sourceRoot":"","sources":["../../../src/components/AppLayout/AppLayout.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC;;GAEG;AACH,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkBxC;;GAEG;AACH,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,MAAM,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,gBAAgB,GAAG,KAAK,EAAkB;IACnK,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAErH,OAAO,CACL,MAAC,QAAQ,IACP,MAAM,EAAC,KAAK,EACZ,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EACjC,MAAM,EAAE;YACN,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB;YACjE,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE;SACrC,EACD,OAAO,EAAC,IAAI,EACZ,kBAAkB,EAAE,GAAG,aAEvB,KAAC,QAAQ,CAAC,MAAM,cACd,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,GAAI,GACnI,EAElB,KAAC,QAAQ,CAAC,MAAM,cACd,KAAC,UAAU,IAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,GAAI,GACxJ,EAElB,MAAC,QAAQ,CAAC,IAAI,IAAC,SAAS,EAAE,MAAM,CAAC,IAAI,aACnC,cAAK,SAAS,EAAE,MAAM,CAAC,WAAW,YAAG,QAAQ,GAAO,EACpD,KAAC,aAAa,IAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAI,IACrC,IACP,CACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"AppLayout.js","sources":["../../../src/components/AppLayout/AppLayout.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { AppShell } from '@mantine/core';\nimport { type ReactNode } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport styles from './AppLayout.module.css';\nimport { ContentFooter } from './ContentFooter';\nimport { useLayoutState } from './hooks/use-layout-state';\nimport { type NavGroup, type NavItem, type NotificationsConfig, type UserInfo } from './layout.types';\nimport { SideNavbar } from './SideNavbar';\nimport { TopNavbar } from './TopNavbar';\n\n/**\n * Defining types\n */\n\ninterface AppLayoutProps {\n appName: string;\n children: ReactNode;\n navItems: (NavItem | NavGroup)[];\n headerContent?: ReactNode;\n user?: UserInfo;\n notifications?: NotificationsConfig;\n footer?: ReactNode;\n showThemeToggle?: boolean;\n defaultCollapsed?: boolean;\n}\n\n/**\n * Declaring the constants\n */\n\nexport function AppLayout({ children, appName, navItems, headerContent, user, notifications, footer, showThemeToggle, defaultCollapsed }: AppLayoutProps) {\n const { collapsed, toggleCollapsed, mobileOpened, toggleMobile, closeMobile } = useLayoutState({ defaultCollapsed });\n\n return (\n <AppShell layout='alt' header={{ height: 56 }} navbar={{ width: collapsed ? 56 : 260, breakpoint: 'sm', collapsed: { mobile: !mobileOpened } }} padding='md'>\n <AppShell.Header>\n <TopNavbar\n navItems={navItems}\n headerContent={headerContent}\n user={user}\n notifications={notifications}\n showThemeToggle={showThemeToggle}\n mobileOpened={mobileOpened}\n onToggleMobile={toggleMobile}\n />\n </AppShell.Header>\n\n <AppShell.Navbar>\n <SideNavbar items={navItems} collapsed={collapsed} onToggleCollapsed={toggleCollapsed} onNavigate={closeMobile} appName={appName} onCloseMobile={closeMobile} />\n </AppShell.Navbar>\n\n <AppShell.Main className={styles.main}>\n <div className={styles.mainContent}>{children}</div>\n {footer && <ContentFooter content={footer} />}\n </AppShell.Main>\n </AppShell>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var styles = {"main":"AppLayout-module_main__NgNhZ","mainContent":"AppLayout-module_mainContent__gYUmE","logoSection":"AppLayout-module_logoSection__rOoy-","brandIcon":"AppLayout-module_brandIcon__40dPn","navToggleSection":"AppLayout-module_navToggleSection__gaGZd","navToggleSectionCollapsed":"AppLayout-module_navToggleSectionCollapsed__K7Np2","navGroupDivider":"AppLayout-module_navGroupDivider__q7CSz","collapsedItem":"AppLayout-module_collapsedItem__D3Jai","childNavLink":"AppLayout-module_childNavLink__ppVJS","footer":"AppLayout-module_footer__GpgvI"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=AppLayout.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppLayout.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,13 +1,12 @@
1
- import { type FooterConfig } from './layout.types.js';
1
+ import { type ReactNode } from 'react';
2
2
  /**
3
3
  * Defining types
4
4
  */
5
5
  interface ContentFooterProps {
6
- appName: string;
7
- footer?: FooterConfig;
6
+ content: ReactNode;
8
7
  }
9
8
  /**
10
9
  * Declaring the constants
11
10
  */
12
- export declare function ContentFooter({ appName, footer }: ContentFooterProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function ContentFooter({ content }: ContentFooterProps): import("react/jsx-runtime").JSX.Element;
13
12
  export {};
@@ -1,16 +1,11 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * Importing npm packages
4
- */
5
- import { Box, Text } from '@mantine/core';
6
- /**
7
- * Importing user defined packages
8
- */
9
- import styles from './AppLayout.module.css';
10
- /**
11
- * Declaring the constants
12
- */
13
- export function ContentFooter({ appName, footer }) {
14
- return (_jsx(Box, { component: 'footer', mt: 'xl', py: 'xs', className: styles.footer, children: footer?.content ?? (_jsxs(Text, { size: 'xs', c: 'dimmed', ta: 'center', children: [appName, footer?.version ? ` \u00B7 ${footer.version}` : ''] })) }));
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { Box } from '@mantine/core';
4
+ import styles from './AppLayout.module.css.js';
5
+
6
+ function ContentFooter({ content }) {
7
+ return /* @__PURE__ */ jsx(Box, { component: "footer", mt: "xl", py: "xs", className: styles.footer, children: content });
15
8
  }
16
- //# sourceMappingURL=ContentFooter.js.map
9
+
10
+ export { ContentFooter };
11
+ //# sourceMappingURL=ContentFooter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentFooter.js","sourceRoot":"","sources":["../../../src/components/AppLayout/ContentFooter.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAY5C;;GAEG;AAEH,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAsB;IACnE,OAAO,CACL,KAAC,GAAG,IAAC,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,SAAS,EAAE,MAAM,CAAC,MAAM,YAC7D,MAAM,EAAE,OAAO,IAAI,CAClB,MAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,QAAQ,aACnC,OAAO,EACP,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAC9C,CACR,GACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ContentFooter.js","sources":["../../../src/components/AppLayout/ContentFooter.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { Box } from '@mantine/core';\nimport { type ReactNode } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport styles from './AppLayout.module.css';\n\n/**\n * Defining types\n */\n\ninterface ContentFooterProps {\n content: ReactNode;\n}\n\n/**\n * Declaring the constants\n */\n\nexport function ContentFooter({ content }: ContentFooterProps) {\n return (\n <Box component='footer' mt='xl' py='xs' className={styles.footer}>\n {content}\n </Box>\n );\n}\n"],"names":[],"mappings":";;;;;AAuBO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAuB,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,CAAA,CAAA;AAEJ,CAAA;;"}
@@ -1,21 +1,21 @@
1
1
  /**
2
2
  * Importing user defined packages
3
3
  */
4
- import { type Alphabet } from '../Logo/index.js';
5
- import { type NavItem } from './layout.types.js';
4
+ import { type VoidFn } from '../../types';
5
+ import { type NavGroup, type NavItem } from './layout.types';
6
6
  /**
7
7
  * Defining types
8
8
  */
9
9
  interface SideNavbarProps {
10
- items: NavItem[];
10
+ items: (NavItem | NavGroup)[];
11
11
  collapsed: boolean;
12
- onToggleCollapsed: () => void;
13
- onNavigate?: () => void;
14
- productName?: Alphabet[];
15
- onCloseMobile?: () => void;
12
+ onToggleCollapsed: VoidFn;
13
+ onNavigate?: VoidFn;
14
+ onCloseMobile?: VoidFn;
15
+ appName?: string;
16
16
  }
17
17
  /**
18
18
  * Declaring the constants
19
19
  */
20
- export declare function SideNavbar({ items, collapsed, onToggleCollapsed, onNavigate, productName, onCloseMobile }: SideNavbarProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function SideNavbar({ items, collapsed, onToggleCollapsed, onNavigate, onCloseMobile, appName }: SideNavbarProps): import("react/jsx-runtime").JSX.Element;
21
21
  export {};
@@ -1,19 +1,43 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- /**
3
- * Importing npm packages
4
- */
5
- import { ActionIcon, AppShell, CloseButton, Group, ScrollArea, Stack, Tooltip } from '@mantine/core';
6
- import { ChevronsLeft, ChevronsRight } from 'lucide-react';
7
- /**
8
- * Importing user defined packages
9
- */
10
- import { Logo } from '../Logo/index.js';
11
- import styles from './AppLayout.module.css';
1
+ 'use client';
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
+ import { useMantineTheme, AppShell, Group, Title, CloseButton, ScrollArea, Stack, Tooltip, ActionIcon } from '@mantine/core';
4
+ import { useMediaQuery } from '@mantine/hooks';
5
+ import { clsx } from 'clsx/lite';
6
+ import { ChevronsRight, ChevronsLeft } from 'lucide-react';
7
+ import '../Logo/Alphabets.js';
8
+ import { Logo } from '../Logo/Logo.js';
9
+ import styles from './AppLayout.module.css.js';
10
+ import { isNavGroup } from './app-layout.utils.js';
11
+ import { SideNavbarGroup } from './SideNavbarGroup.js';
12
12
  import { SideNavbarItem } from './SideNavbarItem.js';
13
- /**
14
- * Declaring the constants
15
- */
16
- export function SideNavbar({ items, collapsed, onToggleCollapsed, onNavigate, productName, onCloseMobile }) {
17
- return (_jsxs(_Fragment, { children: [_jsx(AppShell.Section, { className: styles.logoSection, p: collapsed ? 'xs' : 'sm', children: _jsxs(Group, { justify: 'space-between', w: '100%', h: '100%', wrap: 'nowrap', children: [_jsx("div", { className: styles.logoContainer, children: _jsx(Logo, { variant: 'icon', productName: collapsed ? undefined : productName }) }), _jsx(CloseButton, { hiddenFrom: 'sm', onClick: onCloseMobile, "aria-label": 'Close navigation' })] }) }), _jsx(AppShell.Section, { grow: true, component: ScrollArea, scrollbarSize: 6, children: _jsx(Stack, { gap: 4, p: collapsed ? 'xs' : 'sm', align: collapsed ? 'center' : 'stretch', children: items.map(item => (_jsx(SideNavbarItem, { item: item, collapsed: collapsed, onNavigate: onNavigate }, item.key ?? item.path ?? item.label))) }) }), _jsx(AppShell.Section, { p: collapsed ? 'xs' : 'sm', className: `${styles.navToggleSection} ${collapsed ? styles.navToggleSectionCollapsed : ''}`, hiddenFrom: undefined, visibleFrom: 'sm', children: _jsx(Tooltip, { label: collapsed ? 'Expand sidebar' : 'Collapse sidebar', position: 'right', children: _jsx(ActionIcon, { onClick: onToggleCollapsed, size: 'md', "aria-label": 'Toggle sidebar', children: collapsed ? _jsx(ChevronsRight, { size: 16 }) : _jsx(ChevronsLeft, { size: 16 }) }) }) })] }));
13
+
14
+ function SideNavbar({ items, collapsed, onToggleCollapsed, onNavigate, onCloseMobile, appName }) {
15
+ const theme = useMantineTheme();
16
+ const isDesktop = useMediaQuery(`(min-width: ${theme.breakpoints.sm})`);
17
+ const effectiveCollapsed = isDesktop !== false && collapsed;
18
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
19
+ /* @__PURE__ */ jsx(AppShell.Section, { className: styles.logoSection, p: effectiveCollapsed ? "xs" : "sm", children: /* @__PURE__ */ jsxs(Group, { justify: effectiveCollapsed ? "center" : "space-between", w: "100%", h: "100%", wrap: "nowrap", children: [
20
+ /* @__PURE__ */ jsxs(Group, { gap: "sm", wrap: "nowrap", align: "center", style: { minWidth: 0 }, children: [
21
+ /* @__PURE__ */ jsx("div", { className: styles.brandIcon, children: /* @__PURE__ */ jsx(Logo, { variant: "icon", height: "35px" }) }),
22
+ /* @__PURE__ */ jsx(Title, { order: 1, tt: "uppercase", lineClamp: 1, c: "cyan", lts: 5, children: appName })
23
+ ] }),
24
+ /* @__PURE__ */ jsx(CloseButton, { hiddenFrom: "sm", onClick: onCloseMobile, "aria-label": "Close navigation" })
25
+ ] }) }),
26
+ /* @__PURE__ */ jsx(AppShell.Section, { grow: true, component: ScrollArea, scrollbarSize: 6, children: /* @__PURE__ */ jsx(Stack, { gap: 4, p: effectiveCollapsed ? "xs" : "sm", align: effectiveCollapsed ? "center" : "stretch", children: items.map(
27
+ (entry, index) => isNavGroup(entry) ? /* @__PURE__ */ jsx(SideNavbarGroup, { group: entry, collapsed: effectiveCollapsed, showDivider: index > 0, onNavigate }, entry.group) : /* @__PURE__ */ jsx(SideNavbarItem, { item: entry, collapsed: effectiveCollapsed, onNavigate }, entry.key ?? entry.path ?? entry.label)
28
+ ) }) }),
29
+ /* @__PURE__ */ jsx(
30
+ AppShell.Section,
31
+ {
32
+ p: effectiveCollapsed ? "xs" : "sm",
33
+ className: clsx(styles.navToggleSection, effectiveCollapsed && styles.navToggleSectionCollapsed),
34
+ hiddenFrom: void 0,
35
+ visibleFrom: "sm",
36
+ children: /* @__PURE__ */ jsx(Tooltip, { label: effectiveCollapsed ? "Expand sidebar" : "Collapse sidebar", position: "right", children: /* @__PURE__ */ jsx(ActionIcon, { onClick: onToggleCollapsed, size: "md", "aria-label": "Toggle sidebar", children: effectiveCollapsed ? /* @__PURE__ */ jsx(ChevronsRight, { size: 16 }) : /* @__PURE__ */ jsx(ChevronsLeft, { size: 16 }) }) })
37
+ }
38
+ )
39
+ ] });
18
40
  }
19
- //# sourceMappingURL=SideNavbar.js.map
41
+
42
+ export { SideNavbar };
43
+ //# sourceMappingURL=SideNavbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavbar.js","sourceRoot":"","sources":["../../../src/components/AppLayout/SideNavbar.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE3D;;GAEG;AACH,OAAO,EAAiB,IAAI,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAelD;;GAEG;AAEH,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAmB;IACzH,OAAO,CACL,8BACE,KAAC,QAAQ,CAAC,OAAO,IAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,YACzE,MAAC,KAAK,IAAC,OAAO,EAAC,eAAe,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,aAC5D,cAAK,SAAS,EAAE,MAAM,CAAC,aAAa,YAClC,KAAC,IAAI,IAAC,OAAO,EAAC,MAAM,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,GAAI,GACrE,EACN,KAAC,WAAW,IAAC,UAAU,EAAC,IAAI,EAAC,OAAO,EAAE,aAAa,gBAAa,kBAAkB,GAAG,IAC/E,GACS,EAEnB,KAAC,QAAQ,CAAC,OAAO,IAAC,IAAI,QAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,YAC5D,KAAC,KAAK,IAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,YAC/E,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACjB,KAAC,cAAc,IAA2C,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,IAA7F,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAA8D,CACvH,CAAC,GACI,GACS,EAEnB,KAAC,QAAQ,CAAC,OAAO,IACf,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAC1B,SAAS,EAAE,GAAG,MAAM,CAAC,gBAAgB,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,EAC5F,UAAU,EAAE,SAAS,EACrB,WAAW,EAAC,IAAI,YAEhB,KAAC,OAAO,IAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,EAAE,QAAQ,EAAC,OAAO,YACjF,KAAC,UAAU,IAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAC,IAAI,gBAAY,gBAAgB,YAC1E,SAAS,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,GAAI,GAC1D,GACL,GACO,IAClB,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SideNavbar.js","sources":["../../../src/components/AppLayout/SideNavbar.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { ActionIcon, AppShell, CloseButton, Group, ScrollArea, Stack, Title, Tooltip, useMantineTheme } from '@mantine/core';\nimport { useMediaQuery } from '@mantine/hooks';\nimport { clsx } from 'clsx/lite';\nimport { ChevronsLeft, ChevronsRight } from 'lucide-react';\n\n/**\n * Importing user defined packages\n */\nimport { type VoidFn } from '@/types';\n\nimport { Logo } from '../Logo';\nimport styles from './AppLayout.module.css';\nimport { isNavGroup } from './app-layout.utils';\nimport { type NavGroup, type NavItem } from './layout.types';\nimport { SideNavbarGroup } from './SideNavbarGroup';\nimport { SideNavbarItem } from './SideNavbarItem';\n\n/**\n * Defining types\n */\n\ninterface SideNavbarProps {\n items: (NavItem | NavGroup)[];\n collapsed: boolean;\n onToggleCollapsed: VoidFn;\n onNavigate?: VoidFn;\n onCloseMobile?: VoidFn;\n appName?: string;\n}\n\n/**\n * Declaring the constants\n */\n\nexport function SideNavbar({ items, collapsed, onToggleCollapsed, onNavigate, onCloseMobile, appName }: SideNavbarProps) {\n const theme = useMantineTheme();\n const isDesktop = useMediaQuery(`(min-width: ${theme.breakpoints.sm})`);\n const effectiveCollapsed = isDesktop !== false && collapsed;\n\n return (\n <>\n <AppShell.Section className={styles.logoSection} p={effectiveCollapsed ? 'xs' : 'sm'}>\n <Group justify={effectiveCollapsed ? 'center' : 'space-between'} w='100%' h='100%' wrap='nowrap'>\n <Group gap='sm' wrap='nowrap' align='center' style={{ minWidth: 0 }}>\n <div className={styles.brandIcon}>\n <Logo variant='icon' height='35px' />\n </div>\n <Title order={1} tt='uppercase' lineClamp={1} c='cyan' lts={5}>\n {appName}\n </Title>\n </Group>\n <CloseButton hiddenFrom='sm' onClick={onCloseMobile} aria-label='Close navigation' />\n </Group>\n </AppShell.Section>\n\n <AppShell.Section grow component={ScrollArea} scrollbarSize={6}>\n <Stack gap={4} p={effectiveCollapsed ? 'xs' : 'sm'} align={effectiveCollapsed ? 'center' : 'stretch'}>\n {items.map((entry, index) =>\n isNavGroup(entry) ? (\n <SideNavbarGroup key={entry.group} group={entry} collapsed={effectiveCollapsed} showDivider={index > 0} onNavigate={onNavigate} />\n ) : (\n <SideNavbarItem key={entry.key ?? entry.path ?? entry.label} item={entry} collapsed={effectiveCollapsed} onNavigate={onNavigate} />\n ),\n )}\n </Stack>\n </AppShell.Section>\n\n <AppShell.Section\n p={effectiveCollapsed ? 'xs' : 'sm'}\n className={clsx(styles.navToggleSection, effectiveCollapsed && styles.navToggleSectionCollapsed)}\n hiddenFrom={undefined}\n visibleFrom='sm'\n >\n <Tooltip label={effectiveCollapsed ? 'Expand sidebar' : 'Collapse sidebar'} position='right'>\n <ActionIcon onClick={onToggleCollapsed} size='md' aria-label='Toggle sidebar'>\n {effectiveCollapsed ? <ChevronsRight size={16} /> : <ChevronsLeft size={16} />}\n </ActionIcon>\n </Tooltip>\n </AppShell.Section>\n </>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Importing user defined packages
3
+ */
4
+ import { type VoidFn } from '../../types';
5
+ import { type NavGroup } from './layout.types';
6
+ /**
7
+ * Defining types
8
+ */
9
+ interface SideNavbarGroupProps {
10
+ group: NavGroup;
11
+ collapsed: boolean;
12
+ showDivider: boolean;
13
+ onNavigate?: VoidFn;
14
+ }
15
+ /**
16
+ * Declaring the constants
17
+ */
18
+ export declare function SideNavbarGroup({ group, collapsed, showDivider, onNavigate }: SideNavbarGroupProps): import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { Stack, Divider, Text } from '@mantine/core';
4
+ import styles from './AppLayout.module.css.js';
5
+ import { SideNavbarItem } from './SideNavbarItem.js';
6
+
7
+ function SideNavbarGroup({ group, collapsed, showDivider, onNavigate }) {
8
+ return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
9
+ showDivider && /* @__PURE__ */ jsx(Divider, { className: styles.navGroupDivider }),
10
+ !collapsed && /* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, c: "dimmed", tt: "uppercase", px: 4, pt: 4, style: { letterSpacing: "0.07em" }, children: group.group }),
11
+ group.items.map((item) => /* @__PURE__ */ jsx(SideNavbarItem, { item, collapsed, onNavigate }, item.key ?? item.path ?? item.label))
12
+ ] });
13
+ }
14
+
15
+ export { SideNavbarGroup };
16
+ //# sourceMappingURL=SideNavbarGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SideNavbarGroup.js","sources":["../../../src/components/AppLayout/SideNavbarGroup.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { Divider, Stack, Text } from '@mantine/core';\n\n/**\n * Importing user defined packages\n */\nimport { type VoidFn } from '@/types';\n\nimport styles from './AppLayout.module.css';\nimport { type NavGroup } from './layout.types';\nimport { SideNavbarItem } from './SideNavbarItem';\n\n/**\n * Defining types\n */\n\ninterface SideNavbarGroupProps {\n group: NavGroup;\n collapsed: boolean;\n showDivider: boolean;\n onNavigate?: VoidFn;\n}\n\n/**\n * Declaring the constants\n */\n\nexport function SideNavbarGroup({ group, collapsed, showDivider, onNavigate }: SideNavbarGroupProps) {\n return (\n <Stack gap={4}>\n {showDivider && <Divider className={styles.navGroupDivider} />}\n {!collapsed && (\n <Text size='xs' fw={600} c='dimmed' tt='uppercase' px={4} pt={4} style={{ letterSpacing: '0.07em' }}>\n {group.group}\n </Text>\n )}\n {group.items.map(item => (\n <SideNavbarItem key={item.key ?? item.path ?? item.label} item={item} collapsed={collapsed} onNavigate={onNavigate} />\n ))}\n </Stack>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,19 @@
1
- import { type NavItem } from './layout.types.js';
1
+ /**
2
+ * Importing user defined packages
3
+ */
4
+ import { type VoidFn } from '../../types';
5
+ import { type NavItem } from './layout.types';
2
6
  /**
3
7
  * Defining types
4
8
  */
5
9
  interface SideNavbarItemProps {
6
10
  item: NavItem;
7
11
  collapsed: boolean;
8
- onNavigate?: () => void;
12
+ isChild?: boolean;
13
+ onNavigate?: VoidFn;
9
14
  }
10
15
  /**
11
16
  * Declaring the constants
12
17
  */
13
- export declare function SideNavbarItem({ item, collapsed, onNavigate }: SideNavbarItemProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function SideNavbarItem({ item, collapsed, isChild, onNavigate }: SideNavbarItemProps): import("react/jsx-runtime").JSX.Element;
14
19
  export {};
@@ -1,31 +1,74 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * Importing npm packages
4
- */
5
- import { ActionIcon, Menu, NavLink, Tooltip } from '@mantine/core';
6
- /**
7
- * Importing user defined packages
8
- */
9
- import styles from './AppLayout.module.css';
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { Menu, ActionIcon, Tooltip, NavLink } from '@mantine/core';
4
+ import { Link } from '@tanstack/react-router';
5
+ import styles from './AppLayout.module.css.js';
10
6
  import { useSideNavbarItem } from './hooks/use-side-navbar-item.js';
11
- /**
12
- * Declaring the constants
13
- */
14
- export function SideNavbarItem({ item, collapsed, onNavigate }) {
15
- const { isActive, hasChildren, hasActiveChild, handleClick, navigate } = useSideNavbarItem(item, onNavigate);
16
- /** Collapsed mode — icon only */
17
- if (collapsed) {
18
- if (hasChildren) {
19
- return (_jsxs(Menu, { trigger: 'hover', position: 'right-start', offset: 4, children: [_jsx(Menu.Target, { children: _jsx(ActionIcon, { variant: hasActiveChild ? 'light' : 'subtle', size: 'xl', onClick: handleClick, disabled: item.disabled, className: styles.collapsedItem, children: _jsx(item.icon, { size: 20 }) }) }), _jsxs(Menu.Dropdown, { children: [_jsx(Menu.Label, { children: item.label }), item.children?.map(child => (_jsx(Menu.Item, { leftSection: _jsx(child.icon, { size: 16 }), disabled: child.disabled, onClick: () => {
20
- child.onClick?.();
21
- if (child.path)
22
- navigate({ to: child.path });
23
- onNavigate?.();
24
- }, children: child.label }, child.key ?? child.path ?? child.label)))] })] }));
25
- }
26
- return (_jsx(Tooltip, { label: item.label, position: 'right', offset: 8, children: _jsx(ActionIcon, { variant: isActive ? 'light' : 'subtle', size: 'xl', onClick: handleClick, disabled: item.disabled, className: styles.collapsedItem, children: _jsx(item.icon, { size: 20 }) }) }));
7
+
8
+ function SideNavbarItem({ item, collapsed, isChild, onNavigate }) {
9
+ const { isActive, hasChildren, hasActiveChild, onClick } = useSideNavbarItem(item, onNavigate);
10
+ const routeProps = item.path ? { component: Link, to: item.path } : {};
11
+ if (collapsed) {
12
+ if (hasChildren) {
13
+ return /* @__PURE__ */ jsxs(Menu, { trigger: "hover", position: "right-start", offset: 4, children: [
14
+ /* @__PURE__ */ jsx(Menu.Target, { children: /* @__PURE__ */ jsx(
15
+ ActionIcon,
16
+ {
17
+ variant: hasActiveChild ? "light" : "subtle",
18
+ size: "xl",
19
+ onClick,
20
+ disabled: item.disabled,
21
+ className: styles.collapsedItem,
22
+ "aria-label": item.label,
23
+ ...routeProps,
24
+ children: /* @__PURE__ */ jsx(item.icon, { size: 20 })
25
+ }
26
+ ) }),
27
+ /* @__PURE__ */ jsxs(Menu.Dropdown, { children: [
28
+ /* @__PURE__ */ jsx(Menu.Label, { children: item.label }),
29
+ item.children?.map((child) => /* @__PURE__ */ jsx(
30
+ Menu.Item,
31
+ {
32
+ leftSection: /* @__PURE__ */ jsx(child.icon, { size: 16 }),
33
+ disabled: child.disabled,
34
+ onClick,
35
+ ...child.path ? { component: Link, to: child.path } : {},
36
+ children: child.label
37
+ },
38
+ child.key ?? child.path ?? child.label
39
+ ))
40
+ ] })
41
+ ] });
27
42
  }
28
- /** Expanded mode */
29
- return (_jsx(NavLink, { label: item.label, leftSection: _jsx(item.icon, { size: 18 }), active: isActive || hasActiveChild, disabled: item.disabled, onClick: hasChildren ? undefined : handleClick, defaultOpened: hasActiveChild, href: item.path, children: hasChildren && item.children?.map(child => _jsx(SideNavbarItem, { item: child, collapsed: false, onNavigate: onNavigate }, child.key ?? child.path ?? child.label)) }));
43
+ return /* @__PURE__ */ jsx(Tooltip, { label: item.label, position: "right", offset: 8, children: /* @__PURE__ */ jsx(
44
+ ActionIcon,
45
+ {
46
+ variant: isActive ? "light" : "subtle",
47
+ size: "xl",
48
+ onClick,
49
+ disabled: item.disabled,
50
+ className: styles.collapsedItem,
51
+ "aria-label": item.label,
52
+ ...routeProps,
53
+ children: /* @__PURE__ */ jsx(item.icon, { size: 20 })
54
+ }
55
+ ) });
56
+ }
57
+ return /* @__PURE__ */ jsx(
58
+ NavLink,
59
+ {
60
+ label: item.label,
61
+ leftSection: /* @__PURE__ */ jsx(item.icon, { size: 18 }),
62
+ active: isActive || hasActiveChild,
63
+ disabled: item.disabled,
64
+ onClick: hasChildren ? void 0 : onClick,
65
+ defaultOpened: hasActiveChild,
66
+ className: isChild ? styles.childNavLink : void 0,
67
+ ...routeProps,
68
+ children: hasChildren && item.children?.map((child) => /* @__PURE__ */ jsx(SideNavbarItem, { item: child, collapsed: false, isChild: true, onNavigate }, child.key ?? child.path ?? child.label))
69
+ }
70
+ );
30
71
  }
31
- //# sourceMappingURL=SideNavbarItem.js.map
72
+
73
+ export { SideNavbarItem };
74
+ //# sourceMappingURL=SideNavbarItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavbarItem.js","sourceRoot":"","sources":["../../../src/components/AppLayout/SideNavbarItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SideNavbarItem.js","sources":["../../../src/components/AppLayout/SideNavbarItem.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { ActionIcon, Menu, NavLink, Tooltip } from '@mantine/core';\nimport { Link } from '@tanstack/react-router';\n\n/**\n * Importing user defined packages\n */\nimport { type VoidFn } from '@/types';\n\nimport styles from './AppLayout.module.css';\nimport { useSideNavbarItem } from './hooks/use-side-navbar-item';\nimport { type NavItem } from './layout.types';\n\n/**\n * Defining types\n */\n\ninterface SideNavbarItemProps {\n item: NavItem;\n collapsed: boolean;\n isChild?: boolean;\n onNavigate?: VoidFn;\n}\n\n/**\n * Declaring the constants\n */\n\nexport function SideNavbarItem({ item, collapsed, isChild, onNavigate }: SideNavbarItemProps) {\n const { isActive, hasChildren, hasActiveChild, onClick } = useSideNavbarItem(item, onNavigate);\n const routeProps = item.path ? { component: Link, to: item.path } : {};\n\n /** Collapsed mode — icon only */\n if (collapsed) {\n if (hasChildren) {\n return (\n <Menu trigger='hover' position='right-start' offset={4}>\n <Menu.Target>\n <ActionIcon\n variant={hasActiveChild ? 'light' : 'subtle'}\n size='xl'\n onClick={onClick}\n disabled={item.disabled}\n className={styles.collapsedItem}\n aria-label={item.label}\n {...routeProps}\n >\n <item.icon size={20} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n <Menu.Label>{item.label}</Menu.Label>\n {item.children?.map(child => (\n <Menu.Item\n key={child.key ?? child.path ?? child.label}\n leftSection={<child.icon size={16} />}\n disabled={child.disabled}\n onClick={onClick}\n {...(child.path ? { component: Link, to: child.path } : {})}\n >\n {child.label}\n </Menu.Item>\n ))}\n </Menu.Dropdown>\n </Menu>\n );\n }\n\n return (\n <Tooltip label={item.label} position='right' offset={8}>\n <ActionIcon\n variant={isActive ? 'light' : 'subtle'}\n size='xl'\n onClick={onClick}\n disabled={item.disabled}\n className={styles.collapsedItem}\n aria-label={item.label}\n {...routeProps}\n >\n <item.icon size={20} />\n </ActionIcon>\n </Tooltip>\n );\n }\n\n /** Expanded mode */\n return (\n <NavLink\n label={item.label}\n leftSection={<item.icon size={18} />}\n active={isActive || hasActiveChild}\n disabled={item.disabled}\n onClick={hasChildren ? undefined : onClick}\n defaultOpened={hasActiveChild}\n className={isChild ? styles.childNavLink : undefined}\n {...routeProps}\n >\n {hasChildren && item.children?.map(child => <SideNavbarItem key={child.key ?? child.path ?? child.label} item={child} collapsed={false} isChild onNavigate={onNavigate} />)}\n </NavLink>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,20 @@
1
- import { type NotificationsConfig, type UserInfo } from './layout.types.js';
1
+ import { type ReactNode } from 'react';
2
+ import { type VoidFn } from '../../types';
3
+ import { type NavGroup, type NavItem, type NotificationsConfig, type UserInfo } from './layout.types';
2
4
  /**
3
5
  * Defining types
4
6
  */
5
7
  interface TopNavbarProps {
8
+ navItems: (NavItem | NavGroup)[];
9
+ headerContent?: ReactNode;
6
10
  user?: UserInfo;
7
11
  notifications?: NotificationsConfig;
8
12
  showThemeToggle?: boolean;
9
13
  mobileOpened: boolean;
10
- onToggleMobile: () => void;
14
+ onToggleMobile: VoidFn;
11
15
  }
12
16
  /**
13
17
  * Declaring the constants
14
18
  */
15
- export declare function TopNavbar({ user, notifications, showThemeToggle, mobileOpened, onToggleMobile }: TopNavbarProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function TopNavbar({ navItems, headerContent, user, notifications, showThemeToggle, mobileOpened, onToggleMobile }: TopNavbarProps): import("react/jsx-runtime").JSX.Element;
16
20
  export {};